:root{--navy:#17263f;--blue:#315b8a;--blue2:#eaf1f8;--ink:#1f2937;--muted:#667085;--line:#d7dde5;--panel:#fff;--bg:#f4f6f9;--good:#18794e;--warn:#a15c00;--bad:#b42318;--radius:12px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;text-transform:capitalize}
header{background:var(--navy);color:#fff;padding:18px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:relative}header h1{font-size:20px;margin:0}header .sub{opacity:.8;font-size:12px}
nav{background:#fff;border-bottom:1px solid var(--line);display:flex;gap:4px;padding:0 18px;overflow:auto;position:sticky;top:0;z-index:5}.tab{border:0;background:none;padding:14px 13px;border-bottom:3px solid transparent;color:#445;white-space:nowrap}.tab.active{border-color:var(--blue);color:var(--navy);font-weight:700}
main{max-width:1500px;margin:0 auto;padding:22px}.panel{display:none}.panel.active{display:block}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:18px}.card h2,.card h3{margin:0 0 14px}.gridmetrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.metric{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px}.metric .n{font-size:28px;font-weight:750;color:var(--navy)}.metric .l{font-size:12px;color:var(--muted);margin-top:4px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.download-menu{position:relative;display:inline-block}.download-menu>summary{list-style:none}.download-menu>summary::-webkit-details-marker{display:none}.download-menu[open]>summary{background:#eef3f8;border-color:#7d8da0}.download-menu-options{position:absolute;right:0;top:calc(100% + 5px);z-index:40;min-width:150px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px rgba(23,38,63,.18);padding:6px}.download-menu-options a{display:block;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--ink);white-space:nowrap;font-size:12px;font-weight:600}.download-menu-options a:hover{background:var(--blue2);color:var(--navy)}.teacher-actions .download-menu-options,.student-actions .download-menu-options{position:static;margin-top:4px;box-shadow:none}.btn{border:1px solid #9aa6b2;background:#fff;padding:9px 13px;border-radius:8px;color:var(--ink);text-decoration:none;display:inline-block;text-transform:capitalize}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:650}.btn.danger{color:var(--bad);border-color:#e6b5b1}.btn.small{padding:5px 8px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.status{min-height:20px;color:var(--muted)}
.formgrid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:span 2}.field.full{grid-column:1/-1}label{font-size:12px;font-weight:650;color:#465260}input,select,textarea{border:1px solid #b9c2cc;border-radius:7px;padding:9px;background:#fff;color:var(--ink);min-width:0}textarea{min-height:78px;resize:vertical}.hint{font-size:11px;color:var(--muted);line-height:1.4}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:9px 10px;border-bottom:1px solid #e5e9ef;text-align:left;vertical-align:top}th{background:#f8fafc;color:#475467;font-size:12px;position:sticky;top:0}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.pill{display:inline-block;border-radius:999px;background:var(--blue2);padding:3px 7px;margin:1px 2px 1px 0;font-size:11px}.lockpill{background:#fff4d6;color:#704d00}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.hero .callout{background:linear-gradient(135deg,#fff,#edf3f9);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.hero h2{font-size:26px;margin:0 0 8px;color:var(--navy)}.hero p{line-height:1.55;color:#485568}.steps{margin:12px 0 0;padding-left:20px;line-height:1.8}
.result-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0}.result-summary .metric .n{font-size:23px}.daybuttons{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.daybtn{border:1px solid var(--line);background:#fff;padding:7px 10px;border-radius:7px}.daybtn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.timetable{min-width:850px}.timetable th:first-child{width:80px}.session{background:#edf3f9;border-left:4px solid var(--blue);padding:6px 7px;border-radius:5px;min-width:165px;cursor:grab;user-select:none}.session:active{cursor:grabbing}.session.dragging{opacity:.42}.session.locked{background:#fff8e8;border-left-color:#b98000}.session strong{display:block}.session .meta{font-size:11px;color:#536273;margin-top:3px}.session .actions{margin-top:6px;display:flex;gap:5px;flex-wrap:wrap}.session .drag-hint{font-size:10px;color:#6b7785;margin-top:5px;letter-spacing:.01em}.session .move-pill{display:inline-block;font-size:10px;font-weight:700;color:#5f4a00;background:#fff0bd;border-radius:999px;padding:2px 6px;margin-left:4px}.continuation{background:#f7f9fb;color:#a0a8b2;text-align:center}.empty{color:#c3c8ce}.room-unavailable{background:#f1f2f4;color:#8a9099;text-align:center;font-size:11px;font-style:italic}.timetable td[data-drop-studio]{transition:background .12s,outline-color .12s}.timetable td.drop-ok{outline:3px solid var(--good);outline-offset:-3px;background:#effaf4}.timetable td.drop-bad{outline:2px solid var(--bad);outline-offset:-2px;background:#fff2f1}.daybtn.drag-ok{outline:3px solid var(--good);outline-offset:2px}.daybtn.drag-bad{outline:2px solid var(--bad);outline-offset:2px}.timetable-edit-note{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.timetable-edit-note strong{color:var(--navy)}.move-status{min-height:22px;margin:8px 0}.move-status.busy{color:var(--blue)}
.notice{border-left:4px solid var(--blue);background:#f5f9fd;padding:10px 12px;border-radius:6px;margin:10px 0}.errorbox{border-left-color:var(--bad);background:#fff5f4}.successbox{border-left-color:var(--good);background:#f2fbf6}.loading{display:inline-flex;gap:8px;align-items:center}.spinner{width:14px;height:14px;border:2px solid #c5ced8;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.importbox{border:1px dashed #aeb8c4;background:#fbfcfe;border-radius:10px;padding:16px;margin-bottom:16px}.importrow{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.importrow .field{min-width:190px}.issues{max-height:190px;overflow:auto;margin:8px 0 0;padding-left:20px;color:var(--warn);font-size:12px}.locked-note{font-size:11px;color:#7a5b0b;margin-top:4px}.checkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;border:1px solid #b9c2cc;border-radius:7px;padding:10px;background:#fff;min-height:44px}.multiselect{position:relative}.multiselect>summary{list-style:none;border:1px solid #b9c2cc;border-radius:7px;padding:9px 34px 9px 10px;background:#fff;color:var(--ink);min-height:38px;cursor:pointer;position:relative}.multiselect>summary::-webkit-details-marker{display:none}.multiselect>summary:after{content:'⌄';position:absolute;right:11px;top:7px;font-size:18px;color:#52606d}.multiselect[open]>summary{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}.multiselect-menu{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);max-height:250px;overflow:auto;border:1px solid #b9c2cc;border-radius:8px;background:#fff;box-shadow:0 10px 28px rgba(23,38,63,.15);padding:8px}.multiselect-menu .checkitem{padding:6px 5px;border-radius:5px}.multiselect-menu .checkitem:hover{background:#f4f7fa}.checkitem{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--ink)}.checkitem input{margin:0}.emptychoice{color:var(--muted);font-size:12px;padding:3px}.formtitlebar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.student-class-options{border:1px solid #b9c2cc;border-radius:7px;background:#fff;min-height:48px;overflow:hidden}.student-class-row{display:grid;grid-template-columns:minmax(220px,1fr) 130px;gap:12px;align-items:center;padding:9px 11px;border-bottom:1px solid #e5e9ef}.student-class-row:last-child{border-bottom:0}.student-class-row label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);font-weight:600}.student-class-row input{margin:0}.student-class-row .age-note{font-size:11px;color:var(--muted);font-weight:400}.student-class-row select:disabled{opacity:.45}.student-class-empty{padding:12px;color:var(--muted);font-size:12px}@media(max-width:560px){.student-class-row{grid-template-columns:1fr}.student-class-row select{width:100%}}
.student-filter-panel{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:14px;margin-bottom:14px}.student-filter-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.student-filter-head h3{margin:0}.student-search-row{display:flex;align-items:end;gap:10px;margin:0 0 12px}.student-search-field{width:min(460px,100%)}.student-search-field label{display:block;margin-bottom:6px}.student-search-field input{width:100%}.student-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.student-page-email-status{display:block;margin-top:6px;text-align:right}.student-filter-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(250px,1fr) minmax(280px,1.3fr);gap:12px;align-items:start}.student-filter-group{min-width:0}.student-filter-group>label{display:block;margin-bottom:6px}.student-filter-checks{display:flex;gap:7px;flex-wrap:wrap}.student-filter-checks .checkitem{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px 9px}.student-filter-count{font-size:12px;color:var(--muted);font-weight:600}.student-sort-select{width:100%}@media(max-width:900px){.student-filter-grid{grid-template-columns:1fr}}
.availability-master-option{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:12px;font-weight:650;color:var(--navy)}.studio-formgrid{align-items:start}.studio-availability-master{margin-top:-2px}.studio-availability-master .availability-master-option{margin-top:0}.availability-master-option input{margin:0}.availability-day-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.availability-all-day.is-all-day{background:var(--blue);border-color:var(--blue);color:#fff}.availability-editor{display:grid;gap:9px}.availability-day{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;overflow:hidden}.availability-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px}.availability-day-head label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.availability-day-head input{margin:0}.availability-windows{border-top:1px solid var(--line);padding:10px 12px;display:grid;gap:10px}.availability-day.disabled .availability-windows{display:none}.availability-window{display:grid;grid-template-columns:82px minmax(150px,1fr) 82px minmax(150px,1fr) auto;gap:8px;align-items:center}.availability-window .timevalue{font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy);text-align:center;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px}.availability-window input[type=range]{width:100%;padding:0;border:0;accent-color:var(--blue)}.availability-add{justify-self:start}.availability-empty{font-size:12px;color:var(--muted)}.hidden{display:none!important}
@media(max-width:760px){.availability-window{grid-template-columns:70px 1fr auto}.availability-window .endvalue{grid-column:1}.availability-window .endrange{grid-column:2}.availability-window .remove-window{grid-column:3;grid-row:1 / span 2}}

.high-impact{margin:18px 0 22px;border:1px solid #b9cbe0;background:linear-gradient(135deg,#f8fbff,#eef5fc);border-radius:11px;padding:16px}.high-impact-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:11px}.high-impact-head h3{margin:0 0 4px;color:var(--navy)}.high-impact-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#dcebf9;color:#214f7d;padding:5px 9px;font-size:11px;font-weight:800}.high-impact-list{display:grid;gap:10px}.high-impact-item{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:9px;padding:12px 13px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.high-impact-item.top{border-left-color:var(--good);box-shadow:0 3px 12px rgba(23,38,63,.06)}.high-impact-title{font-weight:800;color:var(--navy);font-size:14px}.high-impact-meta{display:flex;gap:7px;flex-wrap:wrap;margin:5px 0}.impact-pill{display:inline-block;border-radius:999px;background:#edf3f9;color:#345b83;padding:3px 7px;font-size:10px;font-weight:800}.impact-pill.strong{background:#dff5e9;color:#12623f}.high-impact-detail{font-size:12px;color:#58677a;line-height:1.5}.high-impact-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.high-impact-status{margin-top:10px}.individual-unmet-head{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:800px){.high-impact-item{grid-template-columns:1fr}.high-impact-actions{justify-content:flex-start}}

.fix-summary{margin:18px 0}.fix-summary h3{margin-bottom:8px}.fix-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.fix-summary-item{border:1px solid var(--line);border-radius:8px;background:#fbfcfe;padding:10px 12px}.fix-summary-item strong{display:block;color:var(--navy);font-size:18px}.fix-summary-item span{font-size:12px;color:var(--muted)}
.fix-list{display:grid;gap:7px;min-width:300px}.fix-item{border-left:3px solid var(--blue);background:#f8fafc;border-radius:5px;padding:8px 9px}.fix-item.fix-direct{border-left-color:var(--good);background:#f2fbf6}.fix-item.fix-required{border-left-color:var(--bad);background:#fff5f4}.fix-item.fix-trade{border-left-color:var(--warn);background:#fff9ef}.fix-title{font-weight:700;color:var(--ink);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.fix-detail{font-size:11px;color:#5e6b78;line-height:1.45;margin-top:3px}.fix-strength{display:inline-block;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700;background:#e9eef4;color:#475467}.fix-direct .fix-strength{background:#dff5e9;color:#12623f}.fix-required .fix-strength{background:#fde7e5;color:#922b22}.fix-trade .fix-strength{background:#fff0cf;color:#805400}.unmet-main td{background:#fff}.unmet-fixes td{padding-top:0;background:#fbfcfe}.unmet-reason{max-width:310px}.exception-fixes{margin-top:7px}.fix-heading{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:5px}
@media(max-width:760px){.fix-list{min-width:0}.unmet-reason{max-width:none}}
.resolution-workspace{border:2px solid #b9c9d9;background:#fff;margin:18px 0;padding:16px;border-radius:11px}.resolution-workspace h3{margin:0 0 5px;color:var(--navy)}.resolution-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}.resolution-grid{display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:12px}.resolution-panel{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px;min-width:0}.resolution-panel h4{margin:0 0 9px;color:var(--navy);font-size:14px}.resolution-fields{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px}.resolution-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.resolution-status{min-height:20px;color:var(--muted)}.resolve-btn{white-space:nowrap}.resolution-suggestions{margin-top:12px}.resolution-workspace .availability-editor{margin-top:8px}.resolution-workspace .availability-window{grid-template-columns:72px minmax(100px,1fr) 72px minmax(100px,1fr) auto}.resolution-select-row{display:grid;grid-template-columns:minmax(150px,1fr) 120px;gap:8px;align-items:end}.resolution-class-days,.resolution-teachers{margin-top:8px}.resolution-summary{font-size:12px;color:var(--muted);line-height:1.5}.resolved-flash{border-left:4px solid var(--good);background:#f2fbf6;padding:10px 12px;border-radius:6px;margin:12px 0}@media(max-width:900px){.resolution-grid{grid-template-columns:1fr}.resolution-workspace .availability-window{grid-template-columns:70px 1fr auto}.resolution-workspace .availability-window .endvalue{grid-column:1}.resolution-workspace .availability-window .endrange{grid-column:2}.resolution-workspace .availability-window .remove-window{grid-column:3;grid-row:1 / span 2}}
.modal-backdrop{position:fixed;inset:0;background:rgba(20,31,48,.52);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:6vh 18px 24px;overflow:auto}.modal-card{width:min(920px,100%);background:#fff;border-radius:12px;border:1px solid var(--line);box-shadow:0 18px 55px rgba(0,0,0,.22);padding:18px}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.modal-head h2{margin:0 0 4px}.modal-close{font-size:18px;line-height:1;padding:7px 10px}.roster-contact{font-size:11px;color:var(--muted);margin-top:2px}.email-workspace{margin-top:18px}.email-workspace-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.email-ready-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:8px;margin:12px 0}.email-ready-item{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfe}.email-ready-item strong{display:block;font-size:20px;color:var(--navy)}.email-actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.email-actions .field{min-width:220px}.email-result{margin-top:10px}.email-student-table button{white-space:nowrap}.session .view-hint{font-size:10px;color:var(--blue);margin-top:3px;font-weight:650}@media(max-width:700px){.email-ready-grid{grid-template-columns:1fr}.modal-backdrop{padding:12px}.modal-card{padding:13px}}

.post-setup-flow{border-color:#b9cadb;background:linear-gradient(135deg,#fff,#f5f8fc)}.post-setup-flow h2{color:var(--navy);font-size:23px;margin-bottom:6px}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.live-dashboard-head{display:grid;grid-template-columns:minmax(280px,auto) minmax(0,1fr) auto;align-items:center;gap:18px}.live-dashboard-head h2{margin-bottom:4px}.live-dashboard-badges{text-align:right;white-space:nowrap}.dashboard-header-metrics{display:flex;align-items:stretch;justify-content:flex-start;gap:8px;min-width:0;overflow-x:auto;padding:2px 0}.dashboard-header-metric{min-width:76px;padding:7px 9px;border:1px solid #dce3eb;border-radius:8px;background:#f8fafc;text-align:center;flex:0 0 auto}.dashboard-header-metric .n{font-size:18px;line-height:1;font-weight:800;color:var(--navy)}.dashboard-header-metric .l{font-size:9px;line-height:1.25;color:var(--muted);margin-top:4px;white-space:nowrap}.live-badge{display:inline-block;border-radius:999px;background:#e4f5eb;color:var(--good);padding:5px 9px;font-size:11px;font-weight:800}.working-badge{display:inline-block;border-radius:999px;background:#fff0cf;color:#805400;padding:5px 9px;font-size:11px;font-weight:800}@media(max-width:1180px){.live-dashboard-head{grid-template-columns:1fr auto}.dashboard-header-metrics{grid-column:1/-1;grid-row:2}.live-dashboard-badges{grid-column:2;grid-row:1}}@media(max-width:700px){.live-dashboard-head{grid-template-columns:1fr}.live-dashboard-badges{grid-column:1;grid-row:auto;text-align:left}.dashboard-header-metrics{grid-column:1;grid-row:auto}}.live-week{display:grid;gap:8px;margin-top:14px;overflow:auto}.live-day{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;min-width:0;padding:9px}.live-day h4{margin:0 0 8px;color:var(--navy);font-size:13px}.live-session{border-left:3px solid var(--blue);background:#fff;border-radius:6px;padding:6px 7px;margin-bottom:6px;box-shadow:0 1px 2px rgba(23,38,63,.04)}.live-session:last-child{margin-bottom:0}.live-session strong{display:block;font-size:11px;color:var(--ink)}.live-session span{display:block;font-size:10px;color:var(--muted);line-height:1.35;margin-top:2px}.dashboard-workload{margin-top:18px}.workload-row{display:grid;grid-template-columns:minmax(140px,1.1fr) 72px 72px 1.7fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0f3}.workload-row:last-child{border-bottom:0}.workload-row.head{font-size:11px;font-weight:700;color:var(--muted);padding-top:0}.workload-bar-track{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden}.workload-bar-fill{height:100%;background:var(--blue);border-radius:999px;min-width:2px}.timetable-lifecycle{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:13px;margin:14px 0}.timetable-lifecycle .toolbar{margin:10px 0 0}.stale-banner{border-left-color:var(--warn);background:#fff9ef}.live-stale{border-left-color:var(--warn);background:#fff9ef}.state-meta{font-size:11px;color:var(--muted);margin-top:4px}.dashboard-summary-line{font-size:15px;line-height:1.6;color:#405064}.dashboard-summary-line strong{color:var(--navy)}
.room-utilisation{margin-top:18px}.util-row{display:grid;grid-template-columns:minmax(150px,1fr) 78px 95px 1.7fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0f3}.util-row.head{font-size:11px;font-weight:700;color:var(--muted);padding-top:0}.util-bar-track{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden}.util-bar-fill{height:100%;background:var(--blue);border-radius:999px;min-width:2px}.quality-section{margin-top:18px}.quality-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:10px;margin-top:10px}.quality-box{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px}.quality-box.warnbox{border-color:#e6c995;background:#fffaf0}.quality-box h4{margin:0 0 8px;color:var(--navy)}.quality-list{margin:0;padding-left:18px;line-height:1.5;font-size:12px}.quality-list li{margin-bottom:5px}.timetable-review-head{margin:18px 0 8px;padding-top:4px;border-top:1px solid var(--line)}.timetable-review-head h3,.calendar-workspace-head h3{margin:14px 0 4px;color:var(--navy)}.calendar-workspace{margin-top:24px;padding-top:4px;border-top:2px solid #c9d4e1}.calendar-workspace-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.calendar-workspace-head .muted{max-width:820px}.rules-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(160px,.7fr) minmax(160px,.7fr);gap:12px;align-items:end}.lock-time-editor{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:10px}.lock-time-editor .availability-window{grid-template-columns:82px minmax(130px,1fr) 82px minmax(130px,1fr)}.lock-time-editor .availability-window .remove-window{display:none}.lock-time-toggle{display:flex;align-items:center;gap:8px;margin-bottom:8px}.lock-time-toggle input{margin:0}
@media(max-width:900px){.workload-row{grid-template-columns:1fr 60px 60px}.util-row{grid-template-columns:1fr 70px 85px}.util-row .util-visual{grid-column:1/-1}.quality-grid{grid-template-columns:1fr}.workload-row .workload-visual{grid-column:1/-1}.live-week{grid-template-columns:repeat(2,minmax(190px,1fr))!important}}
@media(max-width:560px){.live-week{grid-template-columns:1fr!important}.workload-row{grid-template-columns:1fr 55px 55px}}

footer{padding:10px 22px 30px;color:var(--muted);font-size:11px;text-align:center}
@media(max-width:1000px){.gridmetrics,.result-summary{grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr 1fr}.field.wide{grid-column:span 2}}

.auth-overlay{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:30px}.auth-card{width:min(560px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}.auth-card h1{margin:0 0 6px;color:var(--navy)}.mfa-qr{width:220px;height:220px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px;margin:12px auto;display:block}.mfa-key{font-family:Consolas,monospace;word-break:break-all;background:#f5f7fa;border:1px solid var(--line);border-radius:7px;padding:9px}.recovery-codes{font-family:Consolas,monospace;white-space:pre-wrap;background:#f5f7fa;border:1px solid var(--line);border-radius:8px;padding:12px;line-height:1.7;font-size:13px}.auth-card .brand{font-size:30px;font-weight:800;color:var(--navy);margin-bottom:18px}.auth-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}.header-logo{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:8px;padding:3px;display:none}.header-logo.visible{display:block}.header-main{display:flex;align-items:center;gap:12px;min-width:0}.header-account{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.platform-header-brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:9px;pointer-events:none;white-space:nowrap}.platform-header-brand img{width:42px;height:42px;object-fit:contain}.platform-header-wordmark{font-size:23px;font-weight:850;letter-spacing:-.6px;color:#fff}.platform-header-wordmark .sync{color:#ff426c}@media(max-width:1050px){.platform-header-brand{display:none}}.header-account .who{text-align:right;font-size:12px}.header-account .who strong{display:block;color:#fff}.header-account .btn{background:transparent;color:#fff;border-color:#8290a3}.config-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.configuration-heading{margin:0 0 12px}.configuration-heading h2{margin:0 0 4px;color:var(--navy)}.setup-guide{border-color:#b9cadb;background:linear-gradient(135deg,#fff,#f4f8fc)}.setup-progress{font-weight:750;color:var(--navy);font-size:12px}.setup-steps{display:grid;gap:8px}.setup-step{display:grid;grid-template-columns:36px minmax(180px,1fr) 110px auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff}.setup-step.done{background:#f4fbf7}.setup-step .step-number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--blue2);font-weight:800;color:var(--navy)}.setup-step.done .step-number{background:#e4f5eb;color:var(--good)}.setup-step .step-label strong{display:block;color:var(--navy)}.setup-step .step-count{font-size:12px;color:var(--muted);font-weight:700}.prereq-notice{margin:0 0 14px}.prereq-notice .btn{margin-left:8px}@media(max-width:700px){.setup-step{grid-template-columns:36px 1fr}.setup-step .step-count,.setup-step .btn{grid-column:2;justify-self:start}}.logo-preview{width:180px;height:120px;border:1px dashed var(--line);border-radius:10px;background:#fbfcfe;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.role-pill{display:inline-block;padding:3px 7px;border-radius:999px;background:var(--blue2);font-size:11px}.platform-card{border-color:#c8b27d;background:#fffdf7}.db-badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#edf7ed;color:#276749;font-size:11px;font-weight:700}@media(max-width:900px){.config-columns{grid-template-columns:1fr}.header-account{width:100%;margin-left:58px}.header-account .who{text-align:left}}
.skill-form-actions{margin-bottom:0;align-self:end}.class-primary-field{align-self:start}.term-calendar-intro{margin:0 0 14px;line-height:1.5}.term-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.term-date-card{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:13px 14px;min-width:0}.term-date-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.term-date-card-title strong{display:block;color:var(--navy);font-size:14px;margin:0}.term-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.term-date-fields>div{min-width:0}.term-date-fields label{display:block;margin-bottom:5px}.term-date-fields input{display:block;width:100%;max-width:100%;min-width:0}.holiday-option{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:12px 14px}.holiday-option label{display:grid;grid-template-columns:20px minmax(0,1fr);gap:9px;align-items:start;cursor:pointer}.holiday-option input{width:17px;height:17px;margin:1px 0 0;padding:0}.holiday-option strong{display:block;color:var(--navy);font-size:12px;margin-bottom:3px}.holiday-option .hint{display:block}.holiday-summary{margin-top:9px;border-left:3px solid var(--blue);background:#f5f9fd;border-radius:6px;padding:8px 10px;font-size:11px;color:#52606d;line-height:1.45}.term-calendar-actions{margin-top:12px;margin-bottom:0}@media(max-width:700px){.term-date-grid{grid-template-columns:1fr}}@media(max-width:440px){.term-date-fields{grid-template-columns:1fr}}.operating-hours-box{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:12px;margin-top:8px}.operating-hours-box .availability-window{grid-template-columns:82px minmax(150px,1fr) 82px minmax(150px,1fr)}.operating-hours-box .remove-window{display:none}@media(max-width:700px){.operating-hours-box .availability-window{grid-template-columns:70px 1fr}.operating-hours-box .endvalue{grid-column:1}.operating-hours-box .endrange{grid-column:2}}@media(max-width:560px){main{padding:12px}.gridmetrics,.result-summary,.formgrid{grid-template-columns:1fr}.field.wide{grid-column:span 1}header{padding:14px}.card{padding:13px}}

.optimisation-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 8px}.optimisation-proof-item{border:1px solid var(--line);border-radius:9px;background:linear-gradient(135deg,#fbfcfe,#f4f8fc);padding:12px}.optimisation-proof-item strong{display:block;color:var(--navy);font-size:20px;line-height:1.15}.optimisation-proof-item span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.optimisation-proof-detail{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 14px}.optimisation-proof-detail strong{color:var(--ink)}@media(max-width:760px){.optimisation-proof{grid-template-columns:1fr}}

.teacher-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.teacher-timetable-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.teacher-timetable-head h2{margin:0 0 4px}.teacher-timetable-summary{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.teacher-timetable-stat{border:1px solid var(--line);border-radius:9px;background:#f7f9fc;padding:8px 11px;min-width:105px}.teacher-timetable-stat strong{display:block;color:var(--navy);font-size:18px}.teacher-week{display:grid;gap:9px;margin-top:12px}.teacher-week-day{border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0;padding:10px}.teacher-week-day h4{margin:0 0 8px;color:var(--navy)}.teacher-week-session{border-left:3px solid var(--blue);background:#f4f8fc;border-radius:6px;padding:7px 8px;margin-bottom:7px}.teacher-week-session strong,.teacher-week-session span{display:block}.teacher-week-session span{font-size:12px;color:var(--muted);margin-top:2px}@media(min-width:900px){.teacher-week{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1250px){.teacher-week{grid-template-columns:repeat(6,minmax(0,1fr))}}.all-teacher-timetables-intro{margin:8px 0 16px}.all-teacher-timetable{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.all-teacher-timetable:first-of-type{border-top:0;padding-top:0;margin-top:0}.all-teacher-timetable h3{margin:0 0 3px;color:var(--navy)}.all-teacher-timetable .teacher-week{margin-top:10px}.all-teacher-classlist{margin-top:12px}.all-teacher-classlist h4{margin:0 0 8px;color:var(--navy)}

.audit-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end;margin-top:12px}.audit-sev{display:inline-block;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.audit-sev.info{background:#e7f2fb;color:#215f8d}.audit-sev.warning{background:#fff3dc;color:#8a5a00}.audit-sev.critical{background:#f8e7e7;color:#963838}.audit-outcome.failed,.audit-outcome.denied{color:#a53232;font-weight:800}.audit-integrity{font-weight:800}.audit-integrity.ok{color:#237a48}.audit-integrity.bad{color:#a53232}@media(max-width:1000px){.audit-filters{grid-template-columns:1fr 1fr 1fr}}@media(max-width:650px){.audit-filters{grid-template-columns:1fr 1fr}}

.job-button{position:relative;background:transparent!important;color:#fff!important;border-color:#8190aa!important}.job-button:hover{background:rgba(255,255,255,.08)!important}.job-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#ef476f;color:#fff;font-size:10px;font-weight:800}.job-overlay{position:fixed;inset:0;background:rgba(12,22,40,.38);z-index:150;display:flex;justify-content:flex-end}.job-drawer{width:min(620px,96vw);height:100%;background:#f7f9fc;box-shadow:-12px 0 40px rgba(15,28,48,.24);overflow:auto;padding:18px}.job-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.job-drawer-head h2{margin:0;color:var(--navy)}.job-worker{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 11px;margin-bottom:12px;font-size:12px}.job-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;margin:0 0 10px}.job-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.job-card h3{margin:0 0 3px;font-size:14px;color:var(--navy)}.job-state{display:inline-block;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;background:#edf1f6;color:#556273}.job-state.processing,.job-state.retrying{background:#e8f1ff;color:#1f5c9c}.job-state.complete{background:#e9f8ef;color:#18794e}.job-state.complete_with_warnings{background:#fff4dd;color:#8a5800}.job-state.failed,.job-state.superseded{background:#fff0ef;color:#a92d23}.job-state.cancelled{background:#f0f1f3;color:#667085}.job-progress{height:8px;background:#e9edf2;border-radius:999px;overflow:hidden;margin:9px 0 5px}.job-progress>span{display:block;height:100%;background:var(--blue);transition:width .25s}.job-meta{font-size:11px;color:var(--muted);line-height:1.45}.job-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.job-items{margin-top:9px;border-top:1px solid #edf0f3;padding-top:8px;max-height:190px;overflow:auto}.job-item{display:grid;grid-template-columns:minmax(130px,1fr) 90px;gap:8px;padding:5px 2px;border-bottom:1px solid #f0f2f4;font-size:11px}.job-item:last-child{border-bottom:0}.job-item-status{font-weight:700;text-align:right}.job-empty{padding:28px 12px;text-align:center;color:var(--muted)}
@media(max-width:720px){.job-drawer{width:100vw}.job-button{order:-1}.platform-header-brand{display:none}}
.help-link{border:0;background:transparent;color:var(--blue);font:inherit;font-size:12px;font-weight:800;padding:0 0 0 7px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.help-link:hover{color:var(--navy)}.help-overlay{position:fixed;inset:0;background:rgba(14,28,45,.35);display:flex;justify-content:flex-end;z-index:220}.help-drawer{width:min(440px,92vw);height:100%;background:#fff;box-shadow:-12px 0 40px rgba(0,0,0,.18);padding:22px;overflow:auto}.help-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px}.help-head h2{margin:3px 0 0;color:var(--navy)}.help-kicker{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.help-body{font-size:14px;line-height:1.55}.help-guide{margin-top:18px;border:1px solid var(--line);background:#f8fbfd;border-radius:9px;padding:12px;color:var(--muted)}
