:root{color:#172026;background:#f5f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--line: #d8dee4;--line-strong: #b8c3cc;--surface: #ffffff;--surface-soft: #eef3f2;--text-muted: #5d6972;--accent: #006d63;--accent-dark: #04564f;--accent-soft: #cfeee8;--danger: #b42318;--danger-soft: #f9dedb;--header: #e8eef6;--sticky-width-1: 73.92px;--sticky-width-2: 37.8px;--sticky-width-3: 53.76px;--sticky-width-4: 64.8px;--collapsed-name-width: 60.8px;--summary-width-1: 48px;--summary-width-2: 38px;--summary-width-3: 38px;--summary-columns-width: calc( var(--summary-width-1) + var(--summary-width-2) + var(--summary-width-3) );--date-width: 36px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{border:0}button:disabled{cursor:wait;opacity:.68}.appShell{display:flex;flex-direction:column;gap:18px;width:100%;margin:0;padding:24px 0}.topBar,.controlBand,.editorBand,.previewBand,.alertBand{border:1px solid var(--line);background:var(--surface);box-shadow:0 10px 30px #1720260f}.topBar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px}.titleBlock{min-width:0}h1,h2,p{margin:0}h1{color:#101820;font-size:32px;font-weight:800;letter-spacing:0}h2{font-size:20px;letter-spacing:0}.topBar p{margin-top:8px;color:var(--text-muted);font-size:15px}.storageNotice{max-width:780px;font-size:13px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.topActions,.panelActions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.primaryButton,.ghostButton,.smallButton,.iconButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border-radius:7px;cursor:pointer;font-weight:700;white-space:nowrap}.primaryButton{padding:0 16px;background:var(--accent);color:#fff}.primaryButton:hover{background:var(--accent-dark)}.ghostButton,.smallButton{border:1px solid var(--line);background:#fff;color:#1f2a33}.ghostButton{padding:0 14px}.smallButton{min-height:34px;padding:0 12px;font-size:14px}.ghostButton:hover,.smallButton:hover{background:var(--surface-soft)}.iconButton{width:34px;min-height:34px;border:1px solid var(--line);background:#fff;color:#33404a}.dangerButton{color:var(--danger)}.dangerButton:hover{background:var(--danger-soft);border-color:#efb4ad}.controlBand{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;padding:18px 20px}.field{display:flex;flex-direction:column;gap:6px;color:var(--text-muted);font-size:13px;font-weight:700}.field input,.field select,.dutyLabelRow input,.workerGrid input,.workerGrid select{width:100%;min-height:38px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:#111827;padding:8px 10px}.field input:focus,.field select:focus,.dutyLabelRow input:focus,.workerGrid input:focus,.workerGrid select:focus{border-color:var(--accent);outline:3px solid rgba(0,109,99,.16)}.yearField{width:130px}.compactField{width:110px}.listField{width:min(100%,260px)}.settingsRows{display:grid;gap:14px;max-width:520px}.settingsFieldRow,.settingsCycleRow{width:100%}.settingsCycleRow{display:grid;gap:8px}.cycleFields{display:flex;flex-wrap:wrap;gap:10px}.settingsRows .listField{max-width:100%;width:100%}.alertBand{display:grid;gap:6px;padding:14px 18px;border-color:#f3c47d;background:#fff7e7;color:#654100;font-weight:700}.editorBand,.previewBand{padding:20px}.previewBand{padding-right:0;padding-left:0}.previewBand .sectionHeader{padding-right:20px;padding-left:20px}.sectionHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sectionTitle{display:grid;gap:4px}.scheduleTitleGroup{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-width:0}.sectionHeader span{color:var(--text-muted);font-size:14px;font-weight:700}.workerGrid{display:grid;gap:8px}.workerGridHead,.workerGridRow{display:grid;grid-template-columns:minmax(120px,1fr) minmax(68px,.45fr) minmax(100px,.8fr) minmax(120px,1fr) minmax(160px,1fr) 42px;gap:8px;align-items:center}.workerGridHead{color:var(--text-muted);font-size:12px;font-weight:800;padding:0 2px}.tableFrame{position:relative;padding-bottom:var(--cell-menu-space, 0)}.tableWrap{max-height:68vh;overflow:auto;border:1px solid var(--line);background:#fff}.visibleMonthOverlay{position:absolute;inset:0 0 auto;z-index:70;height:0;pointer-events:none}.visibleMonthChip{position:absolute;top:6px;display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:22px;padding:0 9px;border:0;border-radius:999px;background:transparent;color:#9ca3af;font-size:13px;font-weight:800;line-height:1;box-shadow:none}.visibleMonthChipLeft{left:0}.visibleMonthChipRight{right:6px}.scheduleTable{width:calc(var(--sticky-width-1) + var(--sticky-width-2) + var(--sticky-width-3) + var(--sticky-width-4) + var(--summary-columns-width) + var(--date-columns-width));min-width:calc(var(--sticky-width-1) + var(--sticky-width-2) + var(--sticky-width-3) + var(--sticky-width-4) + var(--summary-columns-width) + var(--date-columns-width));border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}.scheduleTable.leftColumnsCollapsed{width:calc(var(--collapsed-name-width) + var(--summary-columns-width) + var(--date-columns-width));min-width:calc(var(--collapsed-name-width) + var(--summary-columns-width) + var(--date-columns-width))}.scheduleTable th,.scheduleTable td{width:var(--date-width);min-width:var(--date-width);max-width:var(--date-width);height:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 6px;text-align:center;vertical-align:middle}.collapsedNameTableCol{width:var(--collapsed-name-width)}.stickyTableCol1{width:var(--sticky-width-1)}.stickyTableCol2{width:var(--sticky-width-2)}.stickyTableCol3{width:var(--sticky-width-3)}.stickyTableCol4{width:var(--sticky-width-4)}.summaryTableCol1{width:var(--summary-width-1)}.summaryTableCol2{width:var(--summary-width-2)}.summaryTableCol3{width:var(--summary-width-3)}.dateTableCol{width:var(--date-width)}.scheduleTable thead th{position:sticky;top:0;z-index:10;background:var(--header);color:#1f2937;font-weight:800}.scheduleTable thead tr:nth-child(2) th{top:28px}.scheduleTable thead tr:nth-child(3) th{top:56px;border-bottom:2px solid var(--line-strong)}.monthHeader{height:28px}.dateHeader{width:var(--date-width)}.weekday-0{color:#b91c1c!important}.weekday-6{color:#1d4ed8!important}.scheduleTable .stickyCol{position:sticky;z-index:20;background:#f8fafc;background-clip:padding-box;padding-right:0;padding-left:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduleTable thead .stickyCol{z-index:40;background:#dbe7f3;border-bottom:2px solid var(--line-strong)}.scheduleTable .collapsedNameHeader,.scheduleTable .collapsedNameCell{position:sticky;left:0;width:var(--collapsed-name-width)!important;min-width:var(--collapsed-name-width)!important;max-width:var(--collapsed-name-width)!important;padding:2px 0;background:transparent;border-right:0!important;border-bottom:0!important}.scheduleTable.leftColumnsCollapsed .collapsedNameHeader{z-index:45;background:transparent}.scheduleTable.leftColumnsCollapsed .collapsedNameCell{z-index:25}.collapsedNameChip{display:block;width:100%;min-height:20px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:#1f2937;font-size:12px;font-weight:800;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduleTable .stickyCol1{left:0;width:var(--sticky-width-1)!important;min-width:var(--sticky-width-1)!important;max-width:var(--sticky-width-1)!important}.scheduleTable .stickyCol2{left:var(--sticky-width-1);width:var(--sticky-width-2)!important;min-width:var(--sticky-width-2)!important;max-width:var(--sticky-width-2)!important;font-size:12px}.scheduleTable .stickyCol3{left:calc(var(--sticky-width-1) + var(--sticky-width-2));width:var(--sticky-width-3)!important;min-width:var(--sticky-width-3)!important;max-width:var(--sticky-width-3)!important}.scheduleTable .stickyCol4{left:calc(var(--sticky-width-1) + var(--sticky-width-2) + var(--sticky-width-3));width:var(--sticky-width-4)!important;min-width:var(--sticky-width-4)!important;max-width:var(--sticky-width-4)!important;border-right:2px solid var(--line-strong)!important}.scheduleTable .summaryCol{background:#f8fafc;color:#374151;font-size:12px;font-weight:800}.scheduleTable thead .summaryCol{background:#dbe7f3}.scheduleTable .summaryCol1{width:var(--summary-width-1)!important;min-width:var(--summary-width-1)!important;max-width:var(--summary-width-1)!important}.scheduleTable .summaryCol2{width:var(--summary-width-2)!important;min-width:var(--summary-width-2)!important;max-width:var(--summary-width-2)!important}.scheduleTable .summaryDutyGroupHeader{width:calc(var(--summary-width-2) + var(--summary-width-3))!important;min-width:calc(var(--summary-width-2) + var(--summary-width-3))!important;max-width:calc(var(--summary-width-2) + var(--summary-width-3))!important}.scheduleTable .summaryCol3{width:var(--summary-width-3)!important;min-width:var(--summary-width-3)!important;max-width:var(--summary-width-3)!important;border-right:2px solid var(--line-strong)!important}.scheduleTable tbody .summaryBodyCell{background:#fff}.leftColumnsCollapsed .stickyCol1,.leftColumnsCollapsed .stickyCol2,.leftColumnsCollapsed .stickyCol3,.leftColumnsCollapsed .stickyCol4{display:none}.leftColumnsCollapsed .stickyTableCol1,.leftColumnsCollapsed .stickyTableCol2,.leftColumnsCollapsed .stickyTableCol3,.leftColumnsCollapsed .stickyTableCol4{visibility:collapse;width:0}.scheduleTable tbody tr.shelterDividerRow th,.scheduleTable tbody tr.shelterDividerRow td{border-top:2px solid var(--line-strong)}.scheduleTable tbody tr.shelterCountRow th,.scheduleTable tbody tr.shelterCountRow td{border-top:0}.shelterMergedCell{white-space:normal!important;word-break:keep-all;overflow-wrap:anywhere}.shelterNameText,.shelterWorkerCount{display:block;overflow:visible;text-overflow:clip;white-space:normal}.shelterWorkerCount{margin-top:3px;color:var(--text-muted);font-size:12px;font-weight:800}.rowHeader{color:#1f2937;font-weight:700}.workCell{background:#fff}.editableScheduleCell{cursor:pointer}.editableScheduleCell:hover{outline:2px solid rgba(0,109,99,.22);outline-offset:-2px}.lastWorkCell{background:repeating-linear-gradient(135deg,#fff 0,#fff 5px,#e5e7eb 5px,#e5e7eb 7px)}.attendanceCell{background:#fed7aa;color:var(--danger)}.attendanceCell .dutyCellLabel{color:var(--danger)}.shelterCountCell{background:var(--surface-soft);color:#374151;font-weight:800}.shelterCountWarningCell{color:var(--danger)}.shelterCountDutyShortageCell{background:#fef3c7}.shelterCountLabelCell{background:var(--surface-soft)!important;color:#374151;font-size:12px;font-weight:800}.summaryCountCell{background:var(--surface-soft)!important}.shortageSummaryCell{color:var(--danger)}.shelterMinimumLabelCell{left:var(--sticky-width-1);width:calc(var(--sticky-width-2) + var(--sticky-width-3))!important;min-width:calc(var(--sticky-width-2) + var(--sticky-width-3))!important;max-width:calc(var(--sticky-width-2) + var(--sticky-width-3))!important}.dutyCellLabel{color:#4b5563;font-size:10px;font-weight:800;line-height:1;white-space:nowrap}.offCell{background:#c8c8c8}.cellMenu{position:absolute;z-index:120;display:grid;gap:10px;width:min(220px,calc(100vw - 16px));max-height:min(320px,calc(100vh - 16px));overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:0 16px 40px #17202638;padding:12px 36px 10px 10px}.cellMenuClose{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text-muted)}.cellMenuClose:hover{border-color:var(--accent);color:var(--accent-dark)}.cellMenuSection{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.cellMenuSection span{flex:0 0 100%;color:var(--text-muted);font-size:12px;font-weight:800}.cellMenuSection button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:26px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#172026;font-size:12px;font-weight:800;line-height:1;text-align:center;padding:5px 8px;white-space:nowrap}.cellMenuSection button:hover{border-color:var(--accent);color:var(--accent-dark)}.cellMenuSection em{color:var(--text-muted);font-size:12px;font-style:normal;font-weight:700}.emptyState{height:96px!important;color:var(--text-muted);font-weight:700}.editorOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;overflow:auto;padding:24px;background:#1720266b}.editorPage{display:grid;gap:18px;width:min(100%,1400px);min-height:calc(100vh - 48px);margin:0 auto;border:1px solid var(--line);background:var(--surface);box-shadow:0 24px 60px #1720263d;padding:20px}.editorPageHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.editorControlBand,.editorWorkerBand{border:0;box-shadow:none;padding:0}.editorControlBand{align-content:start}.rulesBand,.ruleList{display:grid;gap:14px}.rulePanel{display:grid;gap:12px;border:1px solid var(--line);background:#fff;padding:14px}.rulePanelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.rulePanelActions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.compactActionButton{min-height:32px;padding:6px 10px;font-size:13px}.rulePanelHeader h3{margin:0;color:#111827;font-size:16px;font-weight:800}.ruleFields{display:flex;flex-wrap:wrap;gap:10px}.dateField{width:160px}.dutyLabelRows{display:grid;gap:8px}.dutyLabelRow{display:grid;grid-template-columns:70px repeat(5,minmax(64px,1fr));gap:8px;align-items:center}.dutyLabelRow span{color:var(--text-muted);font-size:13px;font-weight:800}.dutyLabelRow input{min-width:0}@media(max-width:900px){.appShell{padding:12px 0}.previewBand .sectionHeader{padding-right:12px;padding-left:12px}.topBar,.sectionHeader{align-items:stretch;flex-direction:column}.topActions,.panelActions{justify-content:flex-start}h1{font-size:26px}.workerGridHead{display:none}.workerGridRow{grid-template-columns:1fr;padding:10px;border:1px solid var(--line);background:#fff}.workerGridRow .iconButton{justify-self:end}.ruleFields,.dutyLabelRow{grid-template-columns:1fr}.ruleFields{display:grid}.dateField,.compactField{width:100%}.editorOverlay{padding:10px}.editorPage{min-height:calc(100vh - 20px);padding:14px}.editorPageHeader{align-items:stretch;flex-direction:column}:root{--sticky-width-1: 58.24px;--sticky-width-2: 32.4px;--sticky-width-3: 46.08px;--sticky-width-4: 52.8px;--collapsed-name-width: 51.2px}}
