:root{color-scheme:light;--navy:#123c69;--navy-dark:#0b2a4a;--blue:#2563a6;--bg:#f3f6f9;--card:#fff;--line:#dbe3eb;--text:#182533;--muted:#657587;--green:#1d7a4a;--red:#b4232f;--amber:#a85b00;--shadow:0 8px 24px rgba(19,46,72,.08)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:Aptos,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{touch-action:manipulation}.hidden{display:none!important}
.app-header{position:sticky;top:0;z-index:20;color:#fff;background:linear-gradient(120deg,var(--navy-dark),var(--navy));box-shadow:0 4px 18px rgba(5,28,51,.22)}.header-inner{width:min(1800px,100%);min-height:78px;margin:0 auto;padding:12px clamp(14px,2vw,28px);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand img{flex:0 0 auto;border-radius:12px;box-shadow:0 3px 12px rgba(0,0,0,.16)}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(19px,2vw,25px);letter-spacing:-.02em}h2{margin-bottom:0;font-size:20px;letter-spacing:-.01em}.eyebrow{margin-bottom:3px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.brand .eyebrow{color:rgba(255,255,255,.68)}.header-actions{display:flex;align-items:center;gap:10px}.version-badge{padding:7px 10px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.1);font-size:12px;font-weight:700;white-space:nowrap}
main{width:min(1800px,100%);margin:0 auto;padding:18px clamp(10px,2vw,28px) 34px}.panel,.metric{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}.panel{margin-bottom:14px;border-radius:16px;padding:18px}.section-heading,.list-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.section-heading{margin-bottom:15px}.save-state{color:var(--green);font-size:12px;font-weight:700}.save-state.saving{color:var(--muted)}
.form-grid{display:grid;gap:12px}.context-grid{grid-template-columns:150px minmax(170px,.8fr) minmax(280px,1.8fr) 150px 190px 170px minmax(230px,1fr)}.field{display:flex;min-width:0;flex-direction:column;gap:6px}.field span{color:var(--muted);font-size:12px;font-weight:800}.field input,.field select,td input{width:100%;min-height:42px;border:1px solid #c7d2dd;border-radius:9px;outline:none;background:#fff;color:var(--text);transition:border-color .15s,box-shadow .15s}.field input,.field select{padding:9px 10px}.field input:focus,.field select:focus,td input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,166,.13)}.field-search{min-width:220px}
.day-badge{display:block;min-height:20px;margin-top:1px;padding:4px 7px;border-radius:7px;color:#3e5266;background:#edf2f6;font-size:10px;font-weight:800;line-height:1.25}.day-badge.weekend{color:#7a4800;background:#fff0d4}.day-badge.holiday{color:#8d1721;background:#fdecee}.day-badge.pending{outline:1px dashed currentColor;outline-offset:1px}
.metrics{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-bottom:14px}.metric{position:relative;overflow:hidden;min-height:118px;border-radius:15px;padding:16px}.metric::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#8594a4}.metric span{display:block;color:var(--muted);font-size:12px;font-weight:800}.metric strong{display:block;margin:5px 0 2px;font-size:31px;line-height:1.1;font-variant-numeric:tabular-nums}.metric small{color:var(--muted);font-size:11px}.metric-blue::before{background:var(--blue)}.metric-green::before{background:var(--green)}.metric-red::before{background:var(--red)}.metric-amber::before{background:#e19228}.metric-blue strong{color:var(--blue)}.metric-green strong{color:var(--green)}.metric-red strong{color:var(--red)}.metric-amber strong{color:var(--amber)}
.list-panel{padding:0;overflow:hidden}.list-toolbar{padding:17px 18px 14px}.summary{margin:5px 0 0;color:var(--muted);font-size:12px}.toolbar-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px}.button{min-height:39px;border:1px solid transparent;border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer;transition:transform .12s,background .12s,border-color .12s}.button:active{transform:translateY(1px)}.button.primary{color:#fff;background:var(--navy)}.button.primary:hover{background:var(--navy-dark)}.button.secondary{border-color:#cbd6e0;color:#34465a;background:#f7f9fb}.button.secondary:hover{border-color:#a9b8c6;background:#eef3f7}.button.danger-text{border-color:#f0c8cc;color:var(--red);background:#fff}.button.ghost{border-color:rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.1)}
.progress-track{height:4px;background:#e8edf2}.progress-bar{width:0;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .25s ease}.table-wrap{max-height:calc(100vh - 150px);overflow:auto;background:#fff}table{width:100%;min-width:1380px;border-collapse:separate;border-spacing:0}th{position:sticky;top:0;z-index:4;padding:10px 8px;border-bottom:1px solid #cbd7e2;background:#edf3f8;color:#385067;font-size:11px;letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap}td{padding:8px;border-bottom:1px solid #e9eef3;background:#fff;font-size:13px;vertical-align:middle}tbody tr.data-row:hover td{background:#f8fbfd}tbody tr.row-missing td{background:#fff7f7}tbody tr.row-warning td{background:#fffaf0}.group-row td{position:sticky;left:0;z-index:2;padding:8px 10px;border-bottom-color:#cbd9e6;background:#e7f0f8;color:#284968;font-size:12px;font-weight:850}.position-cell{min-width:290px;max-width:370px}.position-title{display:block;font-weight:720;line-height:1.3}.position-time{display:block;margin-top:3px;color:var(--muted);font-size:11px}.soll-cell{width:60px;font-weight:850;text-align:center}.input-cell{width:125px}.notes-cell{width:190px}td input{min-height:38px;padding:7px 8px}.toggle-group{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px}.toggle{min-width:48px;min-height:38px;border:1px solid #c7d2dd;border-radius:8px;background:#fff;color:#526579;font-size:12px;font-weight:850;cursor:pointer}.toggle.yes[aria-pressed="true"]{border-color:var(--green);color:#fff;background:var(--green)}.toggle.no[aria-pressed="true"]{border-color:var(--red);color:#fff;background:var(--red)}.status-pill{display:inline-flex;align-items:center;min-height:27px;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}.status-unchecked{color:#526170;background:#edf1f4}.status-missing{color:#8d1721;background:#fdecee}.status-warning{color:#845000;background:#fff3dc}.status-ok{color:#17613b;background:#e8f6ee}.empty-state{padding:48px 16px;flex-direction:column;align-items:center;gap:5px;color:var(--muted);text-align:center}.empty-state:not(.hidden){display:flex}.empty-state strong{color:var(--text)}.storage-note{margin:16px auto 0;color:var(--muted);font-size:12px;text-align:center}.toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:min(390px,calc(100vw - 36px));padding:11px 14px;border-radius:10px;opacity:0;transform:translateY(10px);pointer-events:none;color:#fff;background:#24384d;box-shadow:0 10px 30px rgba(0,0,0,.22);font-size:13px;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translateY(0)}
.position-note{display:block;margin-top:4px;color:#795200;font-size:11px;font-weight:750}
@media(max-width:1400px){.context-grid{grid-template-columns:repeat(6,minmax(140px,1fr))}.field-wide,.field-search{grid-column:span 2}}@media(max-width:1000px){.context-grid{grid-template-columns:repeat(3,1fr)}.metrics{grid-template-columns:repeat(3,1fr)}.list-toolbar{flex-direction:column}.toolbar-actions{justify-content:flex-start}.table-wrap{max-height:none}}
@media(max-width:680px){.header-inner{min-height:68px}.brand img{width:38px;height:38px}.header-actions .version-badge{display:none}main{padding-top:10px}.panel{padding:14px;border-radius:12px}.context-grid{grid-template-columns:1fr 1fr}.field-wide,.field-search{grid-column:1/-1}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{min-height:100px;padding:13px}.metric strong{font-size:27px}.list-panel{padding:0}.list-toolbar{padding:14px}.toolbar-actions .button{flex:1 1 calc(50% - 7px)}.table-wrap{overflow:visible}table{min-width:0;display:block}thead{display:none}tbody{display:block}.group-row,.data-row{display:block}.group-row td{display:block;position:static;padding:9px 12px}.data-row{margin:10px;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 3px 10px rgba(20,45,70,.06)}.data-row td{width:100%;max-width:none;min-width:0;display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:9px;border-bottom:1px solid #edf1f4}.data-row td::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.03em;text-transform:uppercase}.data-row td:last-child{border-bottom:0}.soll-cell{text-align:left}.toggle-group{justify-self:start}}
@media(max-width:420px){.context-grid{grid-template-columns:1fr}.field-wide,.field-search{grid-column:auto}.section-heading{flex-direction:column;gap:5px}}
@media print{@page{size:landscape;margin:8mm}body{background:#fff}.app-header,.context-panel,.toolbar-actions,.progress-track,.storage-note,.toast{display:none!important}main{width:100%;padding:0}.panel,.metric{box-shadow:none}.metrics{grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:8px}.metric{min-height:auto;padding:7px}.metric strong{font-size:18px}.list-panel{border:0}.list-toolbar{padding:5px 0}.table-wrap{max-height:none;overflow:visible}table{min-width:0}th,td{padding:3px;font-size:8px}th{position:static}td input{min-height:0;padding:0;border:0;font-size:8px}.toggle{min-width:23px;min-height:18px;padding:1px;font-size:7px}.status-pill{min-height:0;padding:2px 4px;font-size:7px}}

.save-wrap{display:flex;align-items:flex-end;flex-direction:column;gap:3px}.text-button{padding:0;border:0;color:var(--blue);background:transparent;font-size:11px;font-weight:750;cursor:pointer}.text-button:disabled,.button:disabled{opacity:.5;cursor:not-allowed}.sync-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid rgba(255,255,255,.2);border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.sync-badge::before{width:8px;height:8px;border-radius:50%;content:"";background:#91a0ae}.sync-badge.online::before{background:#5ee39d}.sync-badge.pending::before{background:#ffc45c}.sync-badge.offline::before{background:#ff8c94}.sync-badge.error::before{background:#ff626d}.modal{width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:16px;background:transparent;box-shadow:0 24px 70px rgba(7,25,44,.3)}.modal::backdrop{background:rgba(8,28,47,.58);backdrop-filter:blur(3px)}.modal-card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff}.modal-card h2,.modal-card h3{margin:0}.modal-copy,.security-note,.form-message,.form-error{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.security-note{padding:10px;border-radius:8px;color:#765000;background:#fff4dc;font-size:11px}.form-error{min-height:19px;color:var(--red);font-weight:700}.form-message{min-height:19px}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.icon-button{width:36px;height:36px;border:0;border-radius:9px;color:#41566a;background:#edf2f6;font-size:24px;line-height:1;cursor:pointer}#accountDialog{width:min(760px,calc(100vw - 24px))}.account-details{display:grid;gap:8px;margin:0}.account-details div{display:grid;grid-template-columns:145px 1fr;gap:10px}.account-details dt{color:var(--muted);font-size:12px;font-weight:800}.account-details dd{margin:0;font-size:13px}.admin-area hr{margin:4px 0 17px;border:0;border-top:1px solid var(--line)}.invite-form{display:grid;grid-template-columns:1fr 1.25fr 1fr auto;align-items:end;gap:10px;margin-top:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.auth-modal .button.primary{width:100%}@media(max-width:760px){.sync-badge{max-width:115px;overflow:hidden;text-overflow:ellipsis}.invite-form{grid-template-columns:1fr}.save-wrap{align-items:flex-start}.section-heading{flex-direction:column}.header-actions{gap:5px}.header-actions .button{padding:7px 9px}}@media print{.sync-badge,.modal{display:none!important}}
