:root{color-scheme:light;--page-background:#eef1f4;--border:#d6d9df;--border-strong:#9cabb8;--day-border:#8b9aaf;--text:#18202f;--text-secondary:#46546a;--muted:#626d7f;--surface:#ffffff;--surface-muted:#f8fafc;--surface-hover:#e8eef4;--accent:#0f766e;--accent-border:#0d5f59;--accent-hover:#115e59;--accent-text:#0f4f4a;--danger:#b42318;--danger-fill:#b42318;--danger-hover:#991b1b;--error-surface:#fff0ee;--error-text:#8d1d14;--warning-border:#d97706;--warning-surface:#fff7ed;--warning-text:#7c2d12;--success-text:#246047;--focus:#0d7a72;--cell-hover:#0d7a7210;--selection-surface:#d0e9e5;--day-alternate:#e8f0f8;--day-alternate-heading:#dbe7f3;--closed-stripe:#6f7b8d25}:root[data-theme=dark]{color-scheme:dark;--page-background:#111827;--border:#3b4a60;--border-strong:#687c97;--day-border:#7a8ea9;--text:#eef2f7;--text-secondary:#c1cddb;--muted:#afbdd0;--surface:#1b2637;--surface-muted:#263244;--surface-hover:#34445b;--accent-border:#54b7ac;--accent-hover:#126a62;--accent-text:#8de5d5;--danger:#ffa69c;--error-surface:#42272e;--error-text:#ffd0c9;--warning-border:#d49a58;--warning-surface:#3c3020;--warning-text:#ffcf92;--success-text:#9ce4be;--focus:#78e2d3;--cell-hover:#78e2d31c;--selection-surface:#254d4c;--day-alternate:#25354b;--day-alternate-heading:#30445e;--closed-stripe:#b6c4d52a}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--page-background)}.loading{padding:24px}.authShell{min-height:100vh;display:grid;place-items:center;padding:24px}.loginPanel{display:grid;grid-gap:14px;gap:14px;width:min(100%,360px);padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.loginPanel label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:13px}.appHeader{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 28px;background:var(--surface);border-bottom:1px solid var(--border)}h1,h2,p{margin:0}h1{font-size:26px;font-weight:720}h2{font-size:15px;margin-bottom:10px}.appHeader p{margin-top:4px;color:var(--muted)}main{padding:18px 24px 28px}button,input,select{font:inherit}button{border:1px solid var(--accent-border);background:var(--accent);color:white;min-height:36px;padding:0 12px;border-radius:6px;cursor:pointer}button:hover{background:var(--accent-hover)}button:disabled{cursor:not-allowed;opacity:.45}input,select,textarea{min-height:36px;border:1px solid var(--border);border-radius:6px;padding:0 10px;background:var(--surface);color:var(--text)}select{height:32px;min-height:32px;min-width:0;max-width:100%;padding:0 8px;font-size:13px}input[type=color]{width:44px;padding:3px}.authControls,.employeeAddForm,.inlineForm,.toolbar,.viewTabs,.weekControls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.weekControls{justify-content:flex-end}.authControls{gap:8px}.lockStatus{min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted);color:var(--muted);font-size:13px}.lockStatus.editing{border-color:var(--accent-border);color:var(--accent-text)}.secondaryButton{border-color:var(--border-strong);background:var(--surface);color:var(--text)}.secondaryButton:hover{background:var(--surface-hover)}.toolbar{justify-content:space-between;padding:12px;background:var(--surface)}.toolbar,.viewTabs{border:1px solid var(--border);border-radius:8px}.viewTabs{gap:2px;padding:3px;background:var(--surface-muted)}.viewTabs button{min-height:30px;border-color:transparent;background:transparent;color:var(--muted);padding:0 10px}.viewTabs .activeTab,.viewTabs button:hover{border-color:var(--accent-border);background:var(--accent);color:#fff}.check{display:inline-flex;align-items:center;gap:6px}.check,.muted{color:var(--muted)}.muted{font-size:13px}.dangerButton{border-color:var(--danger-hover);background:var(--danger-fill)}.dangerButton:hover{background:var(--danger-hover)}.layout{display:grid;grid-gap:14px;gap:14px;margin-top:18px}.adminManagement{display:grid;grid-gap:16px;gap:16px}.adminPanel{display:grid;grid-gap:12px;gap:12px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.sectionHeader{display:flex;align-items:center;justify-content:space-between;gap:16px}.sectionHeader h2{margin-bottom:4px}.hoursWorkspace{display:grid;grid-template-columns:minmax(720px,1.6fr) minmax(300px,.8fr);grid-gap:24px;gap:24px;align-items:start}.hoursWorkspace h3{margin:0 0 8px;font-size:13px}.defaultsHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:8px}.defaultsHeader h3{margin:0}.defaultsHeader label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.defaultsHeader input{min-height:32px;font-size:12px}.hoursRows{border-top:1px solid var(--border)}.hoursRow{display:grid;grid-template-columns:125px 74px 94px 20px 94px minmax(140px,1fr) 64px;align-items:center;grid-gap:7px;gap:7px;min-height:48px;border-bottom:1px solid var(--border)}.hoursDay span,.hoursDay strong{display:block}.hoursDay strong{font-size:13px}.hoursDay span{margin-top:2px;color:var(--muted);font-size:10px}.hoursRow .check,.hoursRow button,.hoursRow input,.hoursRow select{min-height:32px;font-size:12px}.hoursRow input,.hoursRow select{min-width:0}.hoursTo{color:var(--muted);font-size:12px;text-align:center}.specialHours{min-width:0}.specialHoursForm{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.specialHoursForm>label{display:grid;grid-gap:4px;gap:4px;color:var(--muted);font-size:12px}.specialHoursForm>.check{display:flex;align-self:end;min-height:36px}.specialHoursForm .specialHoursReason,.specialHoursForm>button{grid-column:1/-1}.overrideList{display:grid;grid-gap:7px;gap:7px;margin-top:14px;padding-top:10px;border-top:1px solid var(--border)}.overrideRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.overrideRow span,.overrideRow strong{display:block;font-size:12px}.overrideRow span{margin-top:2px;color:var(--muted)}.overrideRow button{min-height:30px;padding:0 8px;font-size:12px;white-space:nowrap}.hoursWarning{padding:10px 12px;border:1px solid var(--warning-border);border-radius:6px;background:var(--warning-surface);color:var(--warning-text);font-size:13px}.hoursWarning ul{margin:6px 0 0;padding-left:18px}.tableScroller{overflow-x:auto}.adminTable{width:100%;border-collapse:collapse;background:var(--surface)}.adminTable td,.adminTable th{border-top:1px solid var(--border);padding:10px 8px;text-align:left;font-size:13px;vertical-align:middle}.adminTable th{color:var(--muted);font-weight:720;background:var(--surface-muted)}.adminTable .actionCell{width:1%;white-space:nowrap;text-align:right}.tableHint{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.detailList{margin:0;padding-left:16px;color:var(--text)}@media (max-width:1050px){.hoursWorkspace{grid-template-columns:1fr}}@media (max-width:760px){.defaultsHeader{align-items:flex-start;flex-direction:column}.hoursRow{grid-template-columns:minmax(125px,1fr) 74px 1fr 20px 1fr 64px;padding:8px 0}.hoursRow>input{grid-column:1/-1;grid-row:2}.sectionHeader{align-items:flex-start;flex-wrap:wrap}}.detailList li+li{margin-top:3px}.bottomPanel{display:grid;grid-template-columns:minmax(320px,1.4fr) minmax(280px,.9fr);grid-gap:14px;gap:14px}.bottomPanel section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px;min-width:0}.bottomPanel section:first-child{align-self:stretch}.bottomPanel section:first-child>div{display:inline-block;min-width:220px;margin-right:12px;vertical-align:top}.employeeManagement{display:grid;grid-gap:14px;gap:14px;max-width:1120px;margin:0 auto}.employeeAddForm,.employeeManagement>section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px}.employeeAddForm{justify-content:flex-start}.compactField{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.employeeList{display:grid;grid-gap:0;gap:0}.employeeEditor{display:grid;grid-gap:8px;gap:8px;padding:12px 0;border-top:1px solid var(--border)}.employeeEditor:first-child{padding-top:0;border-top:0}.employeeDetailsForm{display:grid;grid-template-columns:minmax(130px,1fr) 90px 170px 58px 72px 64px;align-items:end;grid-gap:8px;gap:8px}.employeeDetailsForm>label:not(.check){display:grid;grid-gap:4px;gap:4px;color:var(--muted);font-size:11px}.employeeDetailsForm button,.employeeDetailsForm input{min-width:0;min-height:32px;font-size:12px}.employeeDetailsForm input[type=color]{width:44px}.employeeDetailsForm .check{min-height:32px;font-size:12px}.employeeStatus,.inactivateControls{display:flex;align-items:center;justify-content:space-between;gap:10px}.employeeStatus span,.employeeStatus strong{display:block;font-size:12px}.employeeStatus span{margin-top:2px;color:var(--muted)}.employeeStatus button,.inactivateControls input{min-height:30px;font-size:12px}.employeeRow{display:grid;grid-template-columns:minmax(120px,1fr) 82px 38px minmax(72px,auto) minmax(72px,auto) 82px;align-items:center;grid-gap:6px;gap:6px;padding:6px 0;border-top:1px solid var(--border)}.employeeRow:first-child{border-top:0;padding-top:0}.employeeRow input{min-width:0;min-height:30px;padding:0 6px;font-size:12px}.employeeRow input[type=color]{width:38px}.employeeRow .check{font-size:12px}.employeeRow button{min-height:30px;padding:0 8px;font-size:12px}.inactiveEmployee{opacity:.62}@media (max-width:900px){.employeeDetailsForm{grid-template-columns:minmax(130px,1fr) 90px 170px 58px 72px 64px;overflow-x:auto}}.gap{padding:8px 0;border-top:1px solid var(--border)}.gap:first-of-type{border-top:0}.gap strong{color:var(--danger)}.gap span,.gap strong{display:block;font-size:13px}.gap span{color:var(--muted);margin-top:2px}dl{display:grid;grid-template-columns:1fr auto;grid-gap:8px 14px;gap:8px 14px;margin:0}dt{color:var(--muted)}dd{margin:0;font-weight:700}.varianceFail{color:var(--danger)}.summaryTable{width:100%;border-collapse:collapse}.summaryTable td,.summaryTable th{padding:8px 6px;border-top:1px solid var(--border);text-align:left;font-size:13px}.toast{position:fixed;right:18px;bottom:18px;max-width:420px;padding:10px 12px;background:#111827;color:white;border-radius:6px;opacity:0;transform:translateY(8px);transition:opacity .15s ease,transform .15s ease}.toast.visible{opacity:1;transform:translateY(0)}.dialogActions,.weekNavigation{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.saveStatus{min-height:32px;padding:6px 0;color:var(--text-secondary);font-size:13px}.errorBanner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:12px;border:1px solid var(--danger);border-radius:8px;background:var(--error-surface);color:var(--error-text)}.gridHelp{margin:12px 0;font-size:13px;color:var(--text-secondary)}.copyWeekPanel{margin-top:12px;padding:12px;border:1px solid var(--border);background:var(--surface);border-radius:8px}summary{cursor:pointer;font-weight:650;padding:6px 0}.copyWeekPanel form{margin-top:12px}.confirmation{flex-basis:100%;padding:12px;background:var(--warning-surface);border:1px solid var(--warning-border);border-radius:6px;margin:8px 0}.confirmation button+button,.deleteShiftArea button+button{margin-left:8px}.scheduleShell{max-height:min(75vh,920px)}.scheduleGrid tbody td,.scheduleGrid tbody th,.scheduleGrid tbody tr{height:40px;min-height:40px;max-height:none}.scheduleGrid thead tr:first-child th{top:0;height:64px}.scheduleGrid thead tr:nth-child(2) th{top:64px;height:44px}.scheduleGrid tfoot td,.scheduleGrid tfoot th{position:static;height:auto;min-height:38px;padding:8px 4px;font-size:12px;background:var(--surface-muted)}.scheduleGrid .slotHeader{font-size:10px}.slotHeader>span{display:block}.dayAddButton,.slotControlButton{display:inline-block;min-height:28px;padding:2px 6px;margin-left:4px;font-size:11px}.slotControlButton{min-height:24px;min-width:24px;padding:0 4px;margin-left:2px}.removeSlotButton{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-strong)}.removeSlotButton:hover:not(:disabled){background:var(--surface-hover)}.dayAddButton{display:block;margin:5px auto 0}.scheduleGrid .cell{padding:0}.emptyCellButton{display:block;width:100%;height:39px;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--text-secondary);cursor:cell;touch-action:none}.emptyCellButton span{opacity:0}.emptyCellButton:hover:not(:disabled){background:var(--cell-hover)}.emptyCellButton:focus-visible span,.emptyCellButton:hover span{opacity:.7}.emptyCellButton:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.emptyCellButton:disabled{background:transparent;cursor:default}.scheduleGrid .cell.selectedCell{background-color:var(--selection-surface);box-shadow:inset 0 0 0 2px var(--focus)}.cellPersonPicker{position:fixed;z-index:10;width:min(260px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow:auto;padding:12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:0 5px 20px #14203330;font-size:13px}.cellPickerHeading{display:flex;align-items:center;justify-content:space-between}.cellPickerClose{min-height:24px;width:24px;padding:0;border:0;background:transparent;color:var(--text-secondary);font-size:19px}.cellPickerClose:hover{background:var(--surface-hover)}.cellPersonPicker p{margin:4px 0 10px;line-height:1.4}.cellPersonPicker input{width:100%;min-height:32px;font-size:13px}.cellPickerPeople{max-height:184px;overflow-y:auto;margin-top:8px}.cellPickerPeople button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px;padding:5px 8px;border:0;background:var(--surface);color:var(--text);text-align:left}.cellPickerPeople button:hover,.cellPickerPeople button[aria-selected=true]{background:var(--selection-surface)}.cellPickerPeople button span{margin-left:6px;color:var(--text-secondary);font-size:11px}.cellPersonPicker .cellPickerHint{margin:8px 0 0;font-size:11px;color:var(--text-secondary)}.cellPersonPicker .cellPickerError{padding:8px;background:var(--error-surface);color:var(--error-text)}.scheduleGrid .shiftBlock{overflow:visible;vertical-align:middle}.shiftEditButton{position:absolute;inset:8px 0;width:100%;height:calc(100% - 16px);min-height:0;display:flex;align-items:center;justify-content:center;padding:0 2px;border:0;background:transparent;color:inherit;white-space:normal;line-height:1.15;font-size:11px;cursor:-webkit-grab;cursor:grab;touch-action:none}.shiftEditButton:hover:not(:disabled){background:var(--shift-hover,transparent)}.shiftEditButton:disabled{opacity:1;cursor:default;background:transparent}.shiftLabel{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%;padding:0 1px;color:inherit;font-weight:500}.shiftLabel strong{font-size:12px;line-height:1.1;overflow-wrap:anywhere}.shortShift .shiftLabel{gap:0;padding:0}.shortShift .shiftLabel strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shortShift .shiftTime{font-size:10px;white-space:nowrap}.shortShift .shiftNote{display:none}.resizeHandle{position:absolute;left:0;right:0;width:100%;height:8px;min-height:8px;border:0;border-radius:0;padding:0;background:transparent;color:inherit;cursor:ns-resize;touch-action:none}.resizeHandle:hover:not(:disabled){background:var(--shift-hover,transparent)}.resizeHandle:after{content:"";display:block;height:2px;width:30px;margin:auto;background:currentColor;opacity:.75}.resizeStart{top:0}.resizeEnd{bottom:0}.resizeHandle:disabled{display:none}.dragStatus{height:20px;min-height:20px;margin:-8px 0 4px;font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scheduleCanvas{position:relative}.isDragging,.isDragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.dragSource{opacity:.2}.scheduleGrid .reorderPreview{position:relative;z-index:1;transition:transform .12s ease}.dragSource.reorderPreview{opacity:0}@media (prefers-reduced-motion:reduce){.scheduleGrid .reorderPreview{transition:none}}.dragPreview{position:absolute;z-index:1;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:1px;border:2px solid;box-shadow:0 3px 10px #14203350;font-size:11px;line-height:1.15;text-align:center;overflow:hidden}.dragPreview.invalidDrop{outline:3px dashed var(--danger);outline-offset:-3px}.dragSaving{font-size:10px}.invalidShiftBlock{outline:3px dashed var(--warning-border);outline-offset:-3px}.coverageMix{display:block;font-size:10px;font-weight:400;margin:3px 0 6px}.hoursWarning{margin-bottom:12px}.hoursWarning button{min-height:30px;margin:4px 0}.appDialog{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;padding:24px;border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 16px 80px #14203340;background:var(--surface);color:var(--text)}.appDialog::-webkit-backdrop{background:#11182780}.appDialog::backdrop{background:#11182780}.appDialog form{display:grid;grid-gap:16px;gap:16px}.appDialog label{display:grid;grid-gap:6px;gap:6px;font-size:14px}.appDialog label.check{display:flex}.dialogColumns{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.dialogActions{justify-content:flex-end}.dialogError{padding:12px;border-radius:6px;background:var(--error-surface);color:var(--error-text)}.deleteShiftArea{border-top:1px solid var(--border);padding-top:16px}.deleteShiftArea p{margin-bottom:10px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.payrollPeriod{border-top:1px solid var(--border);padding-top:16px}.payrollPeriod h3{margin:0 0 8px}.payrollPeriod>p{margin-bottom:14px}.exportPreview{width:100%;min-height:380px;resize:vertical;border:1px solid var(--border);padding:16px;border-radius:6px;line-height:1.5;font:13px ui-monospace,monospace}.employeeAddForm>label{display:grid;grid-gap:4px;gap:4px;font-size:13px}.employeeAddForm>label.check{display:flex}.adminPanel+.adminManagement{margin-top:16px}@media (max-width:1100px){.appHeader{align-items:flex-start;flex-direction:column;gap:12px}.weekControls{justify-content:flex-start}.hoursWorkspace{grid-template-columns:1fr}}.appHeader{display:grid;grid-template-columns:minmax(230px,1fr) minmax(0,3fr);align-items:start}.weekControls{display:grid;grid-template-columns:minmax(0,1fr);justify-items:end;min-width:0;width:100%}.authControls,.viewTabs,.weekNavigation,main>div{max-width:100%}main>div{min-width:0}.scheduleShell{width:-moz-fit-content;width:fit-content;max-width:100%;overflow:auto;overflow-anchor:none;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.scheduleGrid{border-collapse:separate;border-spacing:0;table-layout:fixed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.scheduleGrid td,.scheduleGrid th{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;padding:0 4px}.scheduleGrid thead th{z-index:2;font-size:11px}.scheduleGrid .hour,.scheduleGrid .hourHeader,.scheduleGrid thead th{position:-webkit-sticky;position:sticky;background:var(--surface-muted)}.scheduleGrid .hour,.scheduleGrid .hourHeader{left:0;z-index:1;color:var(--text-secondary);font-size:12px}.scheduleGrid .hourHeader{z-index:3}.scheduleGrid .shiftBlock{position:relative;padding:0}.scheduleGrid .dayStandard{--day-surface:var(--surface);--day-heading:var(--surface-muted);background-color:var(--day-surface)}.scheduleGrid .dayAlternate{--day-surface:var(--day-alternate);--day-heading:var(--day-alternate-heading);background-color:var(--day-surface)}.scheduleGrid tfoot .dayAlternate,.scheduleGrid tfoot .dayStandard,.scheduleGrid thead .dayAlternate,.scheduleGrid thead .dayStandard{background-color:var(--day-heading)}.scheduleGrid .dayEnd{border-right:2px solid var(--day-border)}.closedCell{background-color:var(--day-surface,var(--surface-muted));background-image:repeating-linear-gradient(135deg,transparent,transparent 6px,var(--closed-stripe) 6px,var(--closed-stripe) 7px)}.needsCoverage{color:var(--warning-text);background:var(--warning-surface)!important}.coverageMet{color:var(--success-text)}.bottomPanel{margin-top:16px}@media (max-width:1100px){.appHeader{grid-template-columns:minmax(0,1fr)}.weekControls{justify-items:start}}.dragPreview,.scheduleGrid .shiftBlock{background-color:var(--shift-light-background);color:var(--shift-light-text);--shift-hover:var(--shift-light-hover)}:root[data-theme=dark] .dragPreview,:root[data-theme=dark] .shiftBlock{background-color:var(--shift-dark-background);color:var(--shift-dark-text);--shift-hover:var(--shift-dark-hover)}.themeToggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 10px;font-size:12px;white-space:nowrap}.themeToggle svg{flex-shrink:0}.loginHeading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}