/* Four desktop Home entries; compact linked planner, native controls, content-sized cards. */
@media(min-width:1000px){.home .function-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home .priority-functions:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
.teacher-options .teacher-choice{display:block;width:100%;border:0;border-radius:3px;text-align:left;padding:8px 10px;min-height:40px;flex:none}.teacher-options .teacher-choice[aria-selected=true]{background:#e0f1e9;font-weight:650}.teacher-options .teacher-choice[aria-selected=true]:after{content:'✓';float:right;color:#1d684f}
.planner-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 12px;background:#25394b;color:#fff;border-radius:6px 6px 0 0}.planner-heading h2{font-size:23px;margin:0}.planner-heading .hint{color:#d7e2ec;font-size:12px}.planner-pills{display:flex;gap:7px;flex-wrap:wrap}.planner-pills button{border-radius:22px;min-height:34px;font-size:13px;padding:5px 13px;color:#d7e2ec;border-color:#718292;background:transparent}.planner-pills [aria-pressed=true]{background:#1763d7;border-color:#1763d7;color:white}.planner-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:7px;background:#edf2f7;padding:8px 10px;border:1px solid #c9d4de}.planner-toolbar label{font-size:11px}.planner-toolbar button,.planner-toolbar input{min-height:34px;padding:5px 9px;font-size:13px}.planner-toolbar [data-source]{margin:auto 0 auto auto;font-size:12px}.planner-confirm{background:#166e5b;color:white;border-color:#166e5b}.planner-confirm:hover{background:#125a4b}.planner-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:12px;height:var(--planner-height,78vh);min-height:460px}.planner-workspace.no-pit{grid-template-columns:minmax(0,1fr)}.planner-workspace.pit-only{grid-template-columns:minmax(0,1fr)}.planner-left{display:grid;grid-template-rows:minmax(0,.55fr) 14px minmax(0,.45fr);min-height:0;min-width:0}.planner-left.single-view{display:flex;flex-direction:column}.planner-left.single-view>.planner-pane:not([hidden]){flex:1;min-height:0}.planner-pane{min-height:0;min-width:0;overflow:hidden;border:1px solid #c9d4de;border-radius:5px;background:white}.planner-scroll{height:100%;overflow:auto;overscroll-behavior:contain}.planner-grid{width:max-content;min-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:11px}.planner-grid th,.planner-grid td{width:116px;min-width:116px;max-width:116px;border:0;border-right:1px solid #d8e1e9;border-bottom:1px solid #d8e1e9;padding:3px;vertical-align:top}.planner-grid td{position:relative;background:#fff}.planner-grid th{background:#eef3f8;color:#28455d;font-weight:600}.planner-grid thead th{position:sticky;top:0;z-index:4;padding:6px 3px;font-size:11px}.planner-grid tfoot th{position:sticky;bottom:0;z-index:4;padding:5px 3px}.planner-grid .planner-name{width:154px;min-width:154px;max-width:154px;position:sticky;left:0;z-index:3;padding:7px;background:#edf3f8}.planner-grid .planner-name input{width:100%;padding:5px;min-height:30px;font-size:12px}.planner-grid thead .planner-name,.planner-grid tfoot .planner-name{z-index:5}.planner-grid tbody .planner-name span{display:inline}.planner-class-edit{font-size:14px;padding:1px 5px;min-height:24px;margin:3px 4px 0 0}.planner-small{display:block;font-size:11px;min-height:25px;padding:2px 5px;margin-top:6px}.planner-grid td:focus-visible{outline:3px solid #c07c00;outline-offset:-3px}.planner-tile{position:relative;width:108px;height:auto;min-width:108px;max-width:108px;min-height:0;max-height:none;border:1px solid #6e94a5;border-radius:5px;background:#e8f5fb;padding:5px;font-size:10px;line-height:1.2;color:#102f41;overflow:visible;cursor:grab;user-select:none;margin:2px 0;flex:0 0 108px;align-self:flex-start}.planner-tile strong{display:block;border-bottom:1px solid #a4bfcb;padding-bottom:3px;margin-bottom:3px;padding-right:14px;font-size:11px}.planner-tile span,.planner-tile small{display:block;overflow-wrap:anywhere;min-height:1.2em}.planner-tile small{font-size:10px}.planner-tile.edited{background:#def3df;border-color:#559860}.planner-tile.transfer{background:#ffe0aa;border-color:#c88326}.planner-tile.recess{background:#e7d9f7;border-color:#9876bd;color:#452563}.planner-tile.ghost{background:#e8e8e8;border-color:#b9b9b9;color:#6c7279;opacity:.72;cursor:default;position:relative;height:36px;min-height:36px;max-height:36px;overflow:hidden;font-size:9px}.planner-tile.ghost strong{border:0;font-size:9px;padding:0;margin:0}.planner-tile.ghost em{position:absolute;right:3px;bottom:2px;font-size:8px}.planner-tile.selected{outline:3px solid #d8a31b;outline-offset:1px}.planner-tile:focus-visible{outline:3px solid #c07c00;outline-offset:2px}.tile-edit{position:absolute;right:2px;top:2px;border:0;background:#ffffff99;color:#304a5c;font-size:12px;min-height:20px;width:20px;padding:0;line-height:20px;cursor:pointer}.planner-grid .deskmat{background:#d9dadd}.deskmat-label{display:block;color:#525961;font-size:10px;font-style:italic;padding:2px;max-width:108px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-divider{background:#dce5ed;border:1px solid #c5d1da;border-radius:7px;cursor:move;touch-action:none;display:flex;align-items:center;justify-content:center}.planner-divider span{width:46px;height:3px;background:#8297a8;border-radius:3px}.planner-pit{display:flex;flex-direction:column;min-height:0;background:#edf2f7;padding:8px;border:1px solid #cbd8e1;border-radius:5px;overflow:auto}.planner-pit-heading{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}.planner-pit-heading h3{font-size:15px;margin:0}.planner-pit-heading input{width:100%;font-size:12px;padding:6px;min-height:32px}.planner-pit-cards{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;min-height:150px;flex:1;overflow:auto;border:1px dashed #9fb3c3;border-radius:5px;padding:6px}.planner-pit-cards .planner-tile{margin:0}.planner-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px}.planner-actions button{font-size:12px;padding:5px 7px;min-height:34px;flex:1 1 42%}.planner-pit .hint{font-size:11px;margin:8px 0 0}.planner-dialog{border:1px solid #c3d0da;border-radius:8px;width:min(660px,calc(100vw - 30px));max-height:90vh;overflow:auto;color:#304a5c;padding:18px;box-shadow:0 16px 60px #102f4140}.planner-dialog::backdrop{background:#172c4660;backdrop-filter:blur(3px)}.planner-dialog form{border:0;padding:0;margin:10px 0;background:transparent}.planner-dialog form>button{margin-top:14px}.planner-dialog label{margin:7px 0}.planner-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.planner-dialog-heading h3{margin:0}.planner-dialog-heading>button{font-size:23px;padding:0;min-width:34px;min-height:34px}.planner-dialog [data-dialog-message]{color:#9c3219;font-size:14px}.planner-class-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:210px;overflow:auto;gap:5px 15px}.planner-class-options label{display:flex;flex-direction:row;align-items:center;gap:6px;margin:3px 0}.planner-class-options input{width:17px;min-height:17px}.planner-class-picker{border:1px solid #cbd8e1;border-radius:5px;padding:8px 10px}.planner-class-picker summary{cursor:pointer;overflow-wrap:anywhere}.planner-custom-class{display:flex;align-items:end;gap:8px}.planner-custom-class label{flex:1}.planner-custom-class button{margin-bottom:7px}.planner-resizer{height:18px;background:#dce5ed;border:1px solid #b7c9d7;border-radius:6px;cursor:ns-resize;touch-action:none;display:flex;align-items:center;justify-content:center;margin-top:4px}.planner-resizer span{width:64px;height:4px;background:#587e96;border-radius:4px}.planner-resizer:focus-visible,.planner-divider:focus-visible{outline:3px solid #c07c00}.planner-request{display:flex;align-items:center;gap:10px;padding:7px 0}.planner-request span{margin-right:auto}.planner-request button{font-size:13px;min-height:32px;padding:4px 8px}.planner-busy{position:fixed;inset:0;background:#e8eff8a8;backdrop-filter:blur(3px);z-index:1100;display:flex;align-items:center;justify-content:center;gap:14px;color:#173f5b;font-weight:650}.planner-spinner{width:32px;height:32px;border:4px solid #c0d4e1;border-top-color:#166bb0;border-radius:50%;animation:planner-spin .75s linear infinite;display:inline-block;flex:none}@keyframes planner-spin{to{transform:rotate(360deg)}}.duty-roster-form{max-width:820px}.duty-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.duty-members>label{display:flex;flex-direction:row;align-items:center;gap:10px;padding:10px 12px;border:1px solid #cbd8e1;border-radius:5px;cursor:pointer}.duty-members>label:has(input:checked){border-color:#287e68;background:#e7f4ef}.duty-members input{width:19px;height:19px}.duty-time{margin-top:20px}.duty-roster-form legend{font-weight:650;font-size:19px}.daily-comparison{overflow-x:auto}.daily-comparison table{min-width:800px}.daily-comparison td{font-size:12px;white-space:pre-line}.daily-comparison .changed{background:#e0f2e6}
@media(max-width:1100px){.planner-workspace{grid-template-columns:minmax(0,1fr) 252px}.planner-toolbar [data-source]{display:none}.planner-grid .planner-name{width:135px;min-width:135px;max-width:135px}.planner-pills button{font-size:12px;padding:5px 10px}}
@media(max-width:760px){.planner-heading{align-items:flex-start;flex-direction:column;gap:8px}.planner-pills{width:100%}.planner-pills button{flex:1}.planner-workspace{display:flex;flex-direction:column;height:auto;min-height:0}.planner-left{height:var(--planner-height,620px);flex:none}.planner-pit{max-height:430px;min-height:260px}.planner-toolbar{gap:5px}.planner-toolbar button{font-size:12px}.planner-grid .planner-name{width:120px;min-width:120px;max-width:120px}.planner-dialog .fields>label{width:100%}}
@media(prefers-reduced-motion:reduce){.planner-flying{display:none}.planner-spinner{animation-duration:1.5s}}

.planner-recess-continuation{min-height:72px;border:1px dashed #9876bd;border-radius:5px;background:#e7d9f7;color:#452563;padding:8px;font-size:11px}

.availability-table .baseline-common-free>*{background:#eaf4ef}.availability-table .baseline-common-free .common-label{color:#416658}
.planner-date-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:16px 0}
.planner-date-controls label{display:flex;flex-direction:column;gap:5px}
.planner-dates{width:100%;border-collapse:collapse}
.planner-dates th,.planner-dates td{padding:10px 12px;text-align:left}
.planner-dates tbody tr{border-bottom:1px solid #dce3eb}
.planner-dates tbody tr:hover{background:#f2f6fa}

/* One placed level cohort, spanning its visible class rows and full duration. */
.planner-grid .planner-recess-cell{position:relative;background:#e7d9f7}
.planner-recess-cell::before{content:"";display:block;height:112px}
.planner-level-recess{position:absolute;inset:3px;border:1px solid #9876bd;border-radius:5px;background:#e7d9f7;color:#452563;padding:8px;cursor:grab;user-select:none;font-size:11px;line-height:1.3}
.planner-recess-label{position:sticky;top:8px;overflow-wrap:anywhere}
.planner-recess-label strong,.planner-recess-label span,.planner-recess-label small{display:block}
.planner-recess-label strong{font-size:12px;margin-bottom:6px}
.planner-recess-label small{margin-top:5px;font-size:10px}
.planner-level-recess.selected{outline:3px solid #d8a31b;outline-offset:1px}
.planner-level-recess:focus-visible{outline:3px solid #c07c00;outline-offset:2px}
.planner-recess-markers{font-style:italic}

/* Keep confirmed timetable actions visible on narrow screens. */
.confirmed-suspension-list{table-layout:fixed}
.confirmed-suspension-list th:first-child{width:7.5rem}
.confirmed-suspension-list td{overflow-wrap:anywhere}
.confirmed-suspension-list button{max-width:100%;margin-top:6px;white-space:normal}
/* Class fields apply independently without opening a dialog. */
.planner-class-fields{margin-top:5px}
.planner-class-fields .planner-class-field{display:flex;gap:3px;padding:0;margin:3px 0 0;border:0;background:none}
.planner-grid .planner-class-fields input{width:0;min-width:0;flex:1;min-height:24px;height:24px;padding:2px 4px;font-size:10px}
.planner-class-fields button{flex:0 0 25px;width:25px;min-height:24px;height:24px;padding:0;font-size:16px;line-height:1;border-radius:4px;background:#1763d7;border-color:#1763d7;color:#fff}

/* Fresh absence facts are a separate overlay; loading never blocks planner edits. */
.planner-absence-status{background:#fff4c4;color:#392f00;border:1px solid #d6bd60;border-radius:.4rem;padding:.55rem .75rem;margin:.6rem 0;font-size:.9rem}
.planner-absence-status .planner-spinner{display:inline-block;width:1em;height:1em;vertical-align:middle;border-color:#a88c35;border-top-color:#392f00}
.planner-absence-label{background:#fff0ac;color:#493900;border:1px solid #d6bd60}
.planner-tile [data-remove-relief],.planner-tile [data-edit-tile]:not(.tile-edit){font-size:.75rem;padding:.25rem .35rem;min-height:2rem;margin-top:.2rem}
@media(prefers-reduced-motion:reduce){.planner-absence-status .planner-spinner{animation:none}}

.planner-recess-mode{display:flex;align-items:center;gap:6px;font-size:13px}.planner-recess-mode select{max-width:165px}

/* Recovery controls follow the planner's existing forms and disclosure styling. */
.planner-comparison{margin:.6rem 0}
.planner-comparison>label,.planner-dialog .planner-review-check{display:flex;flex-direction:row;align-items:center;gap:.6rem}
.planner-comparison input[type=checkbox],.planner-review-check input[type=checkbox]{width:1.2rem;min-height:1.2rem;flex:none}
.planner-comparison .hint{margin:.3rem 0}
.planner-period-row{display:flex;align-items:flex-end;gap:.75rem;margin:.5rem 0}
.planner-period-row label{flex:1;min-width:0}
.planner-period-row button{margin-bottom:7px}
.planner-dialog [data-archive-preview] .table-scroll{max-width:100%;overflow:auto;margin:.75rem 0}
.planner-dialog [data-archive-preview] .planner-grid{min-width:640px}
.planner-dialog [data-archive-preview] .planner-name{position:static}
[data-reset-history]{margin:1rem 0}
[data-reset-history] p{overflow-wrap:anywhere}
[data-reset-history] button{margin:.3rem 0}
@media(max-width:480px){.planner-period-row{flex-wrap:wrap}.planner-period-row label{flex-basis:40%}.planner-period-row button{margin:0}.planner-review-check{align-items:flex-start}}
