:root{--bg:#eef3f2;--bg-strong:#dfe9e6;--panel:#ffffff;--panel-soft:#f6faf9;--panel-tint:#edf5f2;--ink:#13201b;--muted:#64736d;--muted-strong:#40524a;--line:#d5e0dc;--line-strong:#b8c8c2;--brand:#176b5b;--brand-strong:#0d4f42;--brand-soft:#dceee9;--accent:#b84a31;--accent-soft:#fae8e2;--blue:#2f5f8f;--blue-soft:#e4eef8;--warning:#8a6200;--warning-soft:#fff2c8;--danger:#a53131;--danger-soft:#f7dddd;--ok:#217245;--ok-soft:#dff0e5;--shadow-sm:0 1px 2px rgba(18,31,26,0.08);--shadow-md:0 10px 30px rgba(18,31,26,0.1);--shadow-lg:0 24px 70px rgba(18,31,26,0.16);--radius-sm:6px;--radius:8px;--radius-lg:14px;--sidebar:#14231e;--sidebar-soft:#20352e}*{box-sizing:border-box}html{background:var(--bg)}body,html{min-height:100%}body{margin:0;background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,0) 280px),var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}::selection{background:var(--brand-soft)}.app-shell{--sidebar-width:272px;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s ease}.app-shell.sidebar-collapsed{--sidebar-width:84px}.sidebar{align-self:start;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0)),var(--sidebar);color:#f6fbf8;display:grid;grid-template-rows:auto 1fr;height:100vh;min-height:100vh;overflow-y:auto;padding:22px 18px;position:fixed;top:0;width:var(--sidebar-width);z-index:30}.brand{align-items:center;display:flex;gap:12px;min-width:0;padding:2px 4px 20px}.sidebar-collapsed .sidebar{padding-inline:14px}.sidebar-collapsed .brand{justify-content:center;padding-inline:0}.sidebar-collapsed .brand span span,.sidebar-collapsed .brand strong,.sidebar-collapsed .brand>span:not(.brand-mark),.sidebar-collapsed .nav-link span,.sidebar-collapsed .nav-section{display:none}.brand strong{display:block;font-size:18px;line-height:1.15}.brand span span{color:#b8c8c2;display:block;font-size:12px;margin-top:3px}.brand-mark{align-items:center;background:#ffffff;border:2px solid rgba(255,255,255,.96);border-radius:12px;box-shadow:0 10px 24px rgba(3,24,18,.18),inset 0 0 0 1px rgba(15,49,40,.08);display:inline-flex;flex:0 0 auto;height:42px;justify-content:center;overflow:hidden;width:42px}.brand-mark img{display:block;height:30px;object-fit:contain;width:30px}.brand-mark.large{border-radius:16px;height:58px;width:58px}.brand-mark.large img{height:44px;width:44px}.nav{align-content:start;grid-gap:4px;gap:4px}.nav,.nav-group{display:grid;min-width:0}.nav-group{grid-gap:5px;gap:5px}.nav-section{color:#aebcb6;font-size:11px;font-weight:800;margin:16px 10px 3px;text-transform:uppercase}.nav-link{align-items:center;border:1px solid transparent;border-radius:var(--radius);color:#f6fbf8;display:flex;gap:10px;min-height:42px;min-width:0;padding:10px 12px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.nav-link svg{color:#b8d7cf;flex:0 0 auto}.nav-link:focus-visible,.nav-link:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.12);outline:none;transform:translateX(2px)}.sidebar-collapsed .nav-link{gap:0;justify-content:center;padding-inline:10px}.sidebar-collapsed .nav-link:focus-visible,.sidebar-collapsed .nav-link:hover{transform:translateY(-1px)}.main{grid-column:2;min-width:0}.topbar{background:rgba(255,255,255,.88);border-bottom:1px solid rgba(213,224,220,.8);gap:16px;justify-content:space-between;min-height:72px;padding:12px 30px;position:-webkit-sticky;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbar,.topbar-left{align-items:center;display:flex}.topbar-left{gap:12px;min-width:0}.sidebar-toggle{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--brand-strong);cursor:pointer;display:inline-flex;flex:0 0 auto;height:40px;justify-content:center;transition:background .16s ease,border-color .16s ease,transform .16s ease;width:40px}.sidebar-toggle:focus-visible,.sidebar-toggle:hover{background:var(--panel-soft);border-color:var(--brand);outline:none;transform:translateY(-1px)}.topbar-title{display:grid;grid-gap:2px;gap:2px;min-width:0}.topbar-title strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.mobile-menu-button,.mobile-menu-panel{display:none}.mobile-menu-button{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--brand-strong);cursor:pointer;flex:0 0 auto;height:40px;justify-content:center;width:40px}.mobile-menu-button:focus-visible,.mobile-menu-button:hover{background:var(--panel-soft);border-color:var(--brand);outline:none}.user-pill{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);display:flex;gap:9px;max-width:min(420px,48vw);min-height:42px;padding:5px 12px 5px 5px}.user-pill span:last-child{display:grid;grid-gap:0;gap:0;min-width:0}.user-pill small,.user-pill strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-pill small{color:var(--muted);font-size:11px}.avatar{align-items:center;background:var(--brand-soft);border-radius:999px;color:var(--brand-strong);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:900;height:32px;justify-content:center;width:32px}.content{margin:0 auto;max-width:1500px;padding:30px;width:100%}.sidebar-collapsed .content{max-width:1740px}.page-title{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:22px}.page-title h1{font-size:clamp(26px,2.3vw,36px);letter-spacing:0;line-height:1.08;margin:0 0 7px}.page-title p{color:var(--muted);margin:0;max-width:780px}.eyebrow{color:var(--brand);font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}h2{font-size:18px;line-height:1.2;margin:0 0 12px}p{margin-top:0}p:last-child{margin-bottom:0}.muted{color:var(--muted)}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-0{margin-bottom:0}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.span-all{grid-column:1/-1}.minw-240{min-width:240px}.minw-260{min-width:260px}.panel{background:rgba(255,255,255,.94);border:1px solid rgba(213,224,220,.92);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel-pad{padding:18px}.copy-panel{margin-bottom:16px}.guided-copy{display:grid;grid-gap:14px;gap:14px}.copy-mode-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.copy-mode{align-items:flex-start;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:10px;padding:12px}.copy-mode input{flex:0 0 auto;margin-top:2px;width:18px}.copy-mode span{display:grid;grid-gap:3px;gap:3px}.copy-mode small{color:var(--muted);font-weight:600}.calendar-groups{display:grid;grid-gap:16px;gap:16px}.timeline-list{display:grid;grid-gap:10px;gap:10px}.timeline-item{align-items:center;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:14px;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;padding:12px}.compact-stats{margin-top:14px}.clash-dashboard{margin-bottom:16px}.dashboard-admin-stats{margin-bottom:18px}.clash-list{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.dashboard-focus,.dashboard-stats{margin-bottom:16px}.dashboard-focus{align-items:start}.dashboard-period,.dashboard-period-list{display:grid;grid-gap:10px;gap:10px}.dashboard-period{border-top:1px solid var(--line);grid-template-columns:92px minmax(0,1fr);padding-top:10px}.dashboard-period:first-child{border-top:0;padding-top:0}.dashboard-period>strong{color:var(--muted-strong);font-size:12px;text-transform:uppercase}.dashboard-card-list{display:grid;grid-gap:8px;gap:8px}.dashboard-item{background:var(--panel-soft);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);display:grid;grid-gap:2px;gap:2px;padding:9px 10px}.dashboard-item span{color:var(--ink);font-weight:800}.dashboard-item small{color:var(--muted);font-weight:650}.dashboard-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.dashboard-note{margin:12px 0 0}.panel:hover{box-shadow:var(--shadow-md)}.grid{display:grid;grid-gap:16px;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{align-items:center;display:flex;min-height:76px;overflow:hidden;padding-right:82px;position:relative}.stat-link{color:inherit;display:block;text-decoration:none}.stat-link:focus-visible,.stat-link:hover{border-color:rgba(23,107,91,.32);transform:translateY(-1px)}.stat:before{content:none}.stat span{color:var(--muted);font-size:12px;font-weight:800;position:relative;text-transform:uppercase}.stat strong{align-items:center;background:var(--brand-soft);border-radius:999px;color:var(--ink);display:inline-flex;font-size:clamp(18px,1.4vw,24px);height:50px;justify-content:center;line-height:1;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:50px}.mini-stat{background:rgba(255,255,255,.62);border:1px solid rgba(90,69,0,.14);border-radius:var(--radius);display:grid;grid-gap:2px;gap:2px;padding:9px 10px}.mini-stat span{color:var(--muted-strong);font-size:11px;font-weight:900;text-transform:uppercase}.mini-stat strong{font-size:22px;line-height:1}.button,.icon-button{align-items:center;background:var(--brand);border:1px solid var(--brand);border-radius:var(--radius);box-shadow:inset 0 1px 0 rgba(255,255,255,.22);color:white;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:40px;padding:9px 13px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;white-space:nowrap}.button:hover,.icon-button:hover{background:var(--brand-strong);border-color:var(--brand-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.button:focus-visible,.icon-button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(23,107,91,.22);outline-offset:2px}.button.secondary{background:var(--panel);border-color:var(--line);color:var(--ink)}.button.secondary:hover{background:var(--panel-soft);border-color:var(--line-strong)}.button.danger{background:var(--danger);border-color:var(--danger)}.button.danger:hover{background:#842525;border-color:#842525}.button.disabled,.button:disabled{cursor:not-allowed;opacity:.58;transform:none}.button.disabled{pointer-events:none}.icon-button{min-width:40px;padding:9px}.form-grid{display:grid;grid-gap:12px;gap:12px}.form-grid.inline{align-items:flex-end;grid-template-columns:repeat(4,minmax(0,1fr)) auto}.day-editor-control-form{align-items:end;display:grid;flex:1 1 780px;grid-gap:12px;gap:12px;grid-template-columns:minmax(160px,.85fr) minmax(220px,1fr) minmax(145px,.7fr) auto;max-width:820px;min-width:min(760px,100%)}.day-editor-control-form label{color:var(--muted-strong);display:grid;font-size:12px;font-weight:900;grid-gap:6px;gap:6px;min-width:0}.day-editor-control-form .button{align-self:end;min-width:120px}.filter-panel{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:1.2fr 1.4fr repeat(5,minmax(130px,1fr)) auto;margin-bottom:16px}.filter-panel.timetable-filter{align-items:start;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) repeat(5,minmax(150px,1fr)) auto;overflow:visible;position:relative;z-index:12}.filter-panel.timetable-control-panel{align-items:stretch;display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr;margin-bottom:16px;overflow:visible;position:relative;z-index:12}.timetable-control-top{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(380px,1fr) minmax(188px,.4fr) minmax(150px,.24fr)}.copy-week-control-field{min-width:0}.copy-week-button{min-height:48px;width:100%}.mobile-filter-toggle{display:none}.timetable-filter-drawer{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(260px,.8fr) minmax(0,2.4fr)}.timetable-filter-row{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(145px,1fr)) auto}.control-field{color:var(--muted-strong);display:grid;font-size:12px;font-weight:900;grid-gap:6px;gap:6px;min-width:0}.control-field>span{line-height:1.2}.week-control-field{min-width:0}.view-toggle{background:var(--panel-tint);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1px 0 rgba(255,255,255,.72);display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));min-height:48px;padding:4px}.view-toggle button{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted-strong);cursor:pointer;font-weight:900;min-height:38px;padding:7px 12px;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.view-toggle button:focus-visible,.view-toggle button:hover{background:rgba(255,255,255,.72);border-color:var(--line);outline:none}.view-toggle button.active{background:var(--brand);border-color:var(--brand);box-shadow:var(--shadow-sm);color:#ffffff}.filter-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.lso-filter-panel{grid-template-columns:minmax(190px,.9fr) minmax(220px,1.05fr) minmax(170px,.75fr) auto}.lso-filter-panel .filter-actions{align-items:flex-end;flex-wrap:nowrap}.week-selector{align-items:stretch;display:grid;grid-gap:8px;gap:8px;grid-template-columns:44px minmax(220px,1fr) 44px;min-width:0}.week-nav-button{min-height:48px}.week-picker-anchor{min-width:0;position:relative}.week-display-button{align-items:center;background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);cursor:pointer;display:flex;gap:9px;min-height:48px;min-width:0;padding:8px 12px;text-align:left;width:100%}.week-display-button:hover,.week-display-button[aria-expanded=true]{border-color:var(--brand);box-shadow:0 0 0 4px rgba(23,107,91,.08)}.week-display-button svg{color:var(--brand);flex:0 0 auto}.week-display-button span{display:grid;min-width:0}.week-display-button small,.week-display-button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-display-button strong{font-size:14px;line-height:1.15}.week-display-button small{color:var(--muted);font-size:12px;font-weight:800}.week-picker{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:grid;grid-gap:10px;gap:10px;left:0;padding:10px;position:absolute;top:calc(100% + 8px);width:min(380px,calc(100vw - 44px));z-index:70}.week-picker-head{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:34px minmax(0,1fr) 34px}.week-picker-head .icon-button{min-height:34px;min-width:34px;padding:7px}.week-picker-head strong{font-size:14px;text-align:center}.week-calendar-head,.week-calendar-row{display:grid;grid-gap:4px;gap:4px;grid-template-columns:58px repeat(5,minmax(0,1fr))}.week-calendar-head{color:var(--muted-strong);font-size:11px;font-weight:900;text-align:center}.week-calendar{display:grid;grid-gap:4px;gap:4px}.week-calendar-row{border-radius:var(--radius-sm)}.week-calendar-row.selected{background:var(--brand-soft)}.week-day-button,.week-row-button{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;font-size:12px;font-weight:850;min-height:32px;padding:4px}.week-row-button{color:var(--muted-strong);font-size:11px}.week-day-button.has-data,.week-row-button.has-data{border-color:rgba(23,107,91,.22)}.week-day-button.selected,.week-day-button:hover,.week-row-button:hover{background:var(--brand);border-color:var(--brand);color:#ffffff}.week-day-button.muted-day{color:var(--muted);opacity:.64}.multi-filter{background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);min-width:0;position:relative}.multi-filter[open]{border-color:var(--brand);box-shadow:0 0 0 4px rgba(23,107,91,.08);z-index:30}.multi-filter summary{align-items:center;cursor:pointer;display:flex;gap:10px;justify-content:space-between;min-height:40px;padding:9px 11px}.multi-filter summary::-webkit-details-marker{display:none}.multi-filter summary:after{border-color:var(--muted-strong) transparent transparent transparent;border-style:solid;border-width:5px 4px 0;content:"";flex:0 0 auto}.multi-filter[open] summary:after{transform:rotate(180deg)}.multi-filter summary span{color:var(--muted-strong);font-size:12px;font-weight:900}.multi-filter summary strong{color:var(--ink);font-size:12px;font-weight:900;margin-left:auto}.multi-filter-options{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:grid;grid-gap:2px;gap:2px;left:0;max-height:230px;min-width:max(100%,220px);overflow:auto;padding:8px;position:absolute;top:calc(100% + 6px);z-index:40}.multi-filter-options .checkbox-line{border-radius:var(--radius-sm);color:var(--ink);font-size:13px;font-weight:750;min-height:30px;padding:4px 6px}.multi-filter-options .checkbox-line:hover{background:var(--panel-soft)}.filter-panel.audit-filter,.filter-panel.compact-filter,.filter-panel.data-filter{grid-template-columns:repeat(4,minmax(150px,1fr)) auto}.filter-panel.audit-filter{grid-template-columns:minmax(260px,1.5fr) minmax(180px,1fr) auto}.filter-panel.data-filter{grid-template-columns:minmax(180px,1.4fr) minmax(140px,.8fr) minmax(120px,.8fr) auto}.inline-admin-form{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(4,minmax(110px,1fr)) auto}.bulk-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.audit-details summary{cursor:pointer;font-weight:900}.audit-details pre{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);color:var(--muted-strong);font-size:11px;margin:8px 0 0;max-height:220px;overflow:auto;padding:10px;white-space:pre-wrap}.audit-change-cell{min-width:360px}.audit-change-cell span,.audit-change-cell strong{display:block}.audit-change-cell strong{color:var(--ink);font-size:14px}.audit-change-cell span{color:var(--muted-strong);font-size:12px;font-weight:800;margin-top:2px}.audit-change-cell ul{color:var(--muted-strong);display:grid;grid-gap:3px;gap:3px;margin:7px 0 0;padding-left:18px}.audit-change-cell li{line-height:1.35}.pagination{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.pagination>span{color:var(--muted-strong);font-size:13px;font-weight:800}.pagination>div{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.page-count{color:var(--muted-strong);font-size:13px;font-weight:900;padding:0 4px}.admin-stats{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,minmax(120px,1fr));margin-bottom:14px}.admin-stats .mini-stat{min-height:58px}.admin-section{margin-bottom:16px;overflow:visible}.admin-section-summary{align-items:center;cursor:pointer;display:flex;gap:16px;justify-content:space-between;list-style:none;min-height:68px;padding:16px 18px}.admin-section-summary::-webkit-details-marker{display:none}.admin-section-summary h2{margin:0}.admin-section-summary p{color:var(--muted);font-size:13px;margin:4px 0 0}.admin-section-summary svg{color:var(--brand-strong);flex:0 0 auto;transition:transform .16s ease}.admin-section[open] .admin-section-summary svg{transform:rotate(180deg)}.admin-section-body{border-top:1px solid var(--line);display:grid;grid-gap:14px;gap:14px;padding:16px 18px 18px}.admin-table-wrap table{min-width:780px}.admin-role-form{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(140px,1fr) auto}.admin-add-inline{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-add-inline summary{color:var(--brand-strong);cursor:pointer;font-size:13px;font-weight:900;list-style:none;padding:10px 12px}.admin-add-inline summary::-webkit-details-marker{display:none}.admin-add-inline[open] summary{border-bottom:1px solid var(--line)}.admin-activity-form,.admin-lso-add-form{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1.2fr) minmax(86px,.35fr) auto;padding:12px}.admin-activity-form{grid-template-columns:minmax(190px,1fr) auto;padding:0}.admin-lso-filter{grid-template-columns:minmax(220px,1.4fr) minmax(150px,.5fr) auto}.admin-lso-grid{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-lso-grid-head,.admin-lso-grid-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:58px minmax(150px,1fr) minmax(190px,1.3fr) 90px 120px 86px}.admin-lso-grid-head{background:var(--panel-tint);color:var(--muted-strong);font-size:11px;font-weight:900;padding:11px 12px;text-transform:uppercase}.admin-lso-grid-row{align-items:center;background:#ffffff;border-top:1px solid var(--line);padding:8px 12px}.admin-lso-grid-row:hover{background:#fbfdfc}.admin-lso-grid-row label{gap:4px}.admin-lso-grid-row label>span{display:none}.admin-row-checkbox{align-items:center;display:flex;justify-content:center}.admin-colour-field input[type=color]{min-height:40px;padding:4px;width:100%}.admin-status-field select{min-width:0}.admin-empty-row{background:#ffffff;border-top:1px solid var(--line);color:var(--muted);padding:14px 12px}.admin-activity-layout{display:grid;grid-gap:14px;gap:14px}.admin-activity-grid{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-activity-grid-head,.admin-activity-grid-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(220px,1fr) 130px 86px 96px}.admin-activity-grid-head{background:var(--panel-tint);color:var(--muted-strong);font-size:11px;font-weight:900;padding:11px 12px;text-transform:uppercase}.admin-activity-grid-row{align-items:center;background:#ffffff;border-top:1px solid var(--line);padding:8px 12px}.admin-activity-grid-row:hover{background:#fbfdfc}.admin-activity-edit-form{display:contents}.admin-activity-edit-form label{gap:4px}.admin-activity-edit-form label>span{display:none}.admin-activity-archive-form{align-items:center;display:flex}.admin-config-layout{display:grid;grid-gap:14px;gap:14px}.admin-config-add-form{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(220px,1fr) auto}.admin-config-grid{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-config-grid-head,.admin-config-grid-row{display:grid;grid-gap:8px;gap:8px}.admin-duty-options-grid .admin-config-grid-head,.admin-duty-options-grid .admin-config-grid-row{grid-template-columns:minmax(220px,1fr) 140px 140px 90px 86px}.admin-support-sections-grid .admin-config-grid-head,.admin-support-sections-grid .admin-config-grid-row{grid-template-columns:minmax(220px,1fr) minmax(280px,1.2fr) 130px 90px 86px}.admin-config-grid-head{background:var(--panel-tint);color:var(--muted-strong);font-size:11px;font-weight:900;padding:11px 12px;text-transform:uppercase}.admin-config-grid-row{align-items:center;background:#ffffff;border-top:1px solid var(--line);padding:8px 12px}.admin-config-grid-row:hover{background:#fbfdfc}.admin-config-grid-row label{gap:4px}.admin-config-grid-row label>span{display:none}.admin-weekday-checks{border:0;display:flex;flex-wrap:wrap;gap:6px;margin:0;min-width:0;padding:0}.admin-weekday-checks legend{display:none}.admin-weekday-checks label{align-items:center;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);display:inline-flex;font-size:12px;font-weight:900;gap:5px;min-height:36px;padding:6px 8px}.admin-weekday-checks input{margin:0;min-height:16px;width:16px}.admin-weekday-checks span{line-height:1}.segmented-control{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:inline-flex;gap:3px;padding:4px}.segmented-control a{border-radius:var(--radius-sm);color:var(--muted-strong);font-weight:900;min-height:34px;padding:7px 12px}.segmented-control a.active,.segmented-control a:hover{background:var(--brand-soft);color:var(--brand-strong)}.section-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px}.checkbox-line{align-items:center;display:flex;flex-direction:row;gap:8px;min-height:40px}.checkbox-line input[type=checkbox]{flex:0 0 auto;width:18px}.button-slot{align-items:flex-end;display:flex}.version-edit{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}label{color:var(--muted-strong);display:grid;font-size:12px;font-weight:900;grid-gap:6px;gap:6px}input,select,textarea{background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);min-height:40px;padding:9px 11px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;width:100%}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(23,107,91,.08)}input[type=checkbox]{accent-color:var(--brand);min-height:18px}input[type=color]{min-height:44px;padding:4px}textarea{min-height:88px;resize:vertical}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:auto;background:var(--panel)}table{border-collapse:collapse;min-width:720px;width:100%}td,th{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}th{background:var(--panel-tint);color:var(--muted-strong);font-size:11px;font-weight:900;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:1}tbody tr{transition:background .14s ease}tbody tr:hover{background:#fbfdfc}tbody tr:last-child td{border-bottom:0}.lso-timetable-wrap{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain}.lso-timetable-table{table-layout:fixed;min-width:1040px}.lso-timetable-table .lso-day-col{width:150px}.lso-timetable-table .lso-duty-col{width:190px}.lso-timetable-table td,.lso-timetable-table th{overflow:visible}.lso-timetable-table th{text-align:center}.lso-timetable-table td:first-child,.lso-timetable-table th:first-child{text-align:left}.lso-timetable-table td{min-height:44px}.lso-week-toolbar{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:44px minmax(220px,1fr) 44px minmax(260px,1fr);margin-bottom:14px}.lso-week-toolbar.with-toolbar-actions{grid-template-columns:44px minmax(220px,1fr) 44px minmax(260px,1fr) auto}.lso-week-toolbar .icon-button{min-height:52px}.lso-toolbar-actions{align-items:flex-end;display:flex;gap:8px;justify-content:flex-end}.lso-week-jump{align-items:end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto}.lso-week-jump:has(.shared-week-picker),.weekly-duties-jump:has(.shared-week-picker){grid-template-columns:minmax(220px,1fr)}.lso-toolbar-menu{position:relative}.lso-toolbar-menu[open]{z-index:80}.lso-toolbar-menu summary{list-style:none;min-height:52px}.lso-toolbar-menu summary::-webkit-details-marker{display:none}.lso-toolbar-popover{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:0 18px 38px rgba(12,28,22,.18);display:grid;grid-gap:12px;gap:12px;min-width:300px;padding:12px;position:absolute;right:0;top:calc(100% + 8px);z-index:90}.lso-toolbar-form{display:grid;grid-gap:10px;gap:10px}.lso-toolbar-form strong{color:var(--ink)}.lso-toolbar-activity-list{border-top:1px solid var(--line);display:grid;grid-gap:5px;gap:5px;max-height:190px;overflow:auto;padding-top:10px}.lso-toolbar-activity-list span{align-items:center;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);display:flex;font-size:12px;font-weight:850;gap:8px;justify-content:space-between;padding:6px 8px}.lso-toolbar-activity-list small{color:var(--muted);font-size:11px;font-weight:800}.lso-card{overflow:visible}.lso-card.editing{border-color:rgba(23,107,91,.38);box-shadow:0 0 0 3px rgba(23,107,91,.08),var(--shadow-sm)}.lso-card-head{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:12px}.lso-card-head h2{margin:0}.lso-card-title{align-items:center;display:inline-flex;gap:9px;min-width:0}.lso-name-dot{box-shadow:0 0 0 3px rgba(23,107,91,.08);height:14px;width:14px}.lso-card-actions{align-items:flex-end;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.lso-copy-form{align-items:flex-end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(150px,1fr) auto auto;max-width:520px}.lso-day-cell{align-items:center;display:grid;grid-gap:3px 7px;gap:3px 7px;grid-template-columns:minmax(0,1fr);min-width:0}.lso-day-cell.with-day-action{grid-template-areas:"name action" "meta action";grid-template-columns:minmax(0,1fr) 28px}.lso-day-name{font-weight:950;line-height:1.1;min-width:0}.lso-day-cell.with-day-action .lso-day-name{grid-area:name}.lso-day-meta{align-items:center;display:flex;flex-wrap:wrap;gap:4px;min-height:18px;min-width:0}.lso-day-cell.with-day-action .lso-day-meta{grid-area:meta}.lso-day-badge{background:#fff3c4;border:1px solid #ecc84f;border-radius:999px;color:#6b5200;display:inline-flex;font-size:9px;font-weight:900;line-height:1;max-width:100%;padding:3px 6px;text-transform:uppercase}.lso-day-off-form{grid-area:action;justify-self:end}.lso-day-off-button{align-items:center;background:#fff7df;border:1px solid #e5c553;border-radius:999px;color:#6b5200;cursor:pointer;display:inline-flex;height:28px;justify-content:center;padding:0;width:28px}.lso-day-off-button:hover{background:#ffe8a3}.lso-cell-menu{display:block;position:relative}.lso-cell-menu[open]{z-index:40}.lso-cell-menu summary{align-items:center;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-wrap:wrap;gap:5px;list-style:none;min-height:34px;padding:3px}.lso-cell-menu summary::-webkit-details-marker{display:none}.lso-cell-menu summary:hover,.lso-cell-menu[open] summary{background:rgba(23,107,91,.08);border-color:rgba(23,107,91,.22)}.lso-empty-cell{align-items:center;color:var(--muted-strong);display:inline-flex;font-size:12px;font-weight:850;gap:5px}.lso-cell-popover{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:0 18px 38px rgba(12,28,22,.18);min-width:250px;padding:12px;position:absolute;right:0;top:calc(100% + 6px);z-index:90}.lso-cell-menu[open]:not(.popover-positioned) .lso-cell-popover{visibility:hidden}.lso-cell-menu[open].popover-positioned .lso-cell-popover{left:var(--details-popover-left);max-width:calc(100vw - 24px);position:fixed;right:auto;top:var(--details-popover-top);z-index:1800}.lso-duty-menu .lso-cell-popover{min-width:280px}.lso-cell-form{display:grid;grid-gap:10px;gap:10px}.lso-cell-form strong{color:var(--ink);font-size:13px}.lso-duty-section-grid{display:grid;grid-gap:8px;gap:8px}.lso-duty-section-grid label{display:grid;grid-gap:5px;gap:5px}.lso-duty-section-grid label>span{align-items:baseline;display:flex;gap:8px;justify-content:space-between}.lso-duty-section-grid small{color:var(--muted);font-size:10px;font-weight:800}.lso-timetable-table td.lso-unavailable-cell{background:#d5ddd9;color:rgba(7,17,13,.78)}.lso-timetable-table tbody tr:hover td.lso-unavailable-cell{background:#d0d9d4}.lso-unavailable-cell .assignment-chip{filter:saturate(.8)}.lso-unavailable-row td{background:#d5ddd9;color:rgba(7,17,13,.78)}.lso-unavailable-row:hover td{background:#d0d9d4}.lso-unavailable-row .assignment-chip{filter:saturate(.8)}.lso-timetable-table .assignment-chip{max-width:100%;min-width:0;overflow-wrap:anywhere;white-space:normal}.weekly-duties-toolbar{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:44px minmax(240px,1fr) 44px minmax(280px,.75fr);margin-bottom:16px}.weekly-duties-toolbar .icon-button{min-height:48px}.weekly-duties-range{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:2px;gap:2px;min-height:48px;padding:8px 12px}.weekly-duties-range span{color:var(--muted-strong);font-size:11px;font-weight:950;text-transform:uppercase}.weekly-duties-range strong{font-size:16px;line-height:1.15}.weekly-duties-range small{color:var(--muted);font-size:12px;font-weight:750}.weekly-duties-jump{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto}.weekly-duties-table-wrap{-webkit-overflow-scrolling:touch;margin-top:10px}.weekly-duties-table{border-collapse:separate;border-spacing:0;min-width:760px}.weekly-duties-table th{background:var(--sidebar-soft);border-bottom:2px solid var(--brand-strong);color:#ffffff;font-size:24px;font-weight:950;letter-spacing:0;line-height:1.08;padding:6px 8px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:none;top:0}.weekly-duties-table th:first-child{width:154px}.weekly-duties-table td:not(:last-child),.weekly-duties-table th:not(:last-child){border-right:1px solid rgba(23,107,91,.18)}.weekly-duties-table td{background:#ffffff;border-bottom:1px solid rgba(23,107,91,.18);color:#07110d;font-size:22px;line-height:1.12;min-height:34px;padding:6px 8px;vertical-align:top}.weekly-duties-table tr.weekly-duties-day-start td{border-top:2px solid var(--brand-strong)}.weekly-duties-table tbody tr:first-child td{border-top:0}.weekly-duties-table tbody tr:nth-child(2n) td{background:var(--panel-tint)}.weekly-duties-table tbody tr:hover td{background:var(--brand-soft)}.weekly-duties-day{background:#ffffff!important;font-size:24px!important;font-weight:950}.weekly-duties-day small,.weekly-duties-day span,.weekly-duty-name{display:grid;grid-gap:2px;gap:2px}.weekly-duties-day small{color:var(--brand);font-size:11px;font-weight:950;text-transform:uppercase}.weekly-duty-name strong{font-weight:500}.weekly-duty-name{background:var(--staff-soft,#ffffff);border-left:5px solid var(--staff-color,var(--brand));border-radius:var(--radius-sm);color:#07110d;padding:4px 7px}.weekly-duty-name small,.weekly-duty-name strong{color:#07110d}.weekly-duty-name small{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.tag{align-items:center;background:var(--panel-tint);border:1px solid rgba(64,82,74,.08);border-radius:999px;color:#31423b;display:inline-flex;font-size:12px;font-weight:900;gap:6px;min-height:26px;padding:4px 9px;white-space:nowrap}.tag.ok{background:var(--ok-soft);color:var(--ok)}.tag.warn{background:var(--warning-soft);color:var(--warning)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.data-workbook{display:grid;grid-gap:16px;gap:16px}.data-context-bar{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(240px,1fr) auto;min-width:min(420px,100%)}.data-sheet-tabs{align-items:center;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:6px;overflow-x:auto;padding:6px;position:-webkit-sticky;position:sticky;top:86px;z-index:15}.data-sheet-tabs a{border-radius:var(--radius);color:var(--muted-strong);flex:0 0 auto;font-size:12px;font-weight:900;min-height:34px;padding:8px 11px}.data-sheet-tabs a:focus-visible,.data-sheet-tabs a:hover{background:var(--brand-soft);color:var(--brand-strong)}.data-summary-strip{display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden}.data-summary-strip>div{background:rgba(255,255,255,.92);border:1px solid var(--line);display:grid;grid-gap:2px;gap:2px;min-height:72px;padding:12px 14px}.data-summary-strip>div:first-child{border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.data-summary-strip>div:last-child{border-radius:0 var(--radius-lg) var(--radius-lg) 0}.data-summary-strip span{color:var(--muted-strong);font-size:11px;font-weight:900;text-transform:uppercase}.data-summary-strip strong{font-size:25px;line-height:1}.data-sheet{background:rgba(255,255,255,.94);border:1px solid rgba(213,224,220,.95);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:grid;grid-gap:12px;gap:12px;overflow:hidden;padding:16px;scroll-margin-top:152px}.data-sheet-head{align-items:end;display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(220px,1fr) minmax(0,auto)}.data-sheet-head h2{margin-bottom:0}.sheet-filter-bar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.sheet-filter-bar label{min-width:150px}.input-with-icon{align-items:center;display:flex;position:relative}.input-with-icon svg{color:var(--muted);left:10px;pointer-events:none;position:absolute}.input-with-icon input{padding-left:32px;width:100%}.membership-editor,.sheet-add-row{align-items:end;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:10px;gap:10px;grid-template-columns:auto repeat(3,minmax(110px,1fr)) auto;padding:10px}.sheet-add-row strong{align-self:center;color:var(--muted-strong);font-size:12px;text-transform:uppercase}.session-add-row{grid-template-columns:auto minmax(140px,1fr) minmax(140px,1fr) minmax(120px,.8fr) minmax(100px,.8fr) minmax(100px,.8fr) minmax(80px,.6fr) auto}.sheet-bulk-actions{margin:0}.sheet-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.sheet-table{font-size:13px;min-width:920px}.sheet-table td,.sheet-table th{padding:8px 9px;vertical-align:middle}.sheet-table th{background:#e7f0ed;border-bottom-color:var(--line-strong)}.sheet-table input,.sheet-table select{min-height:34px}.sheet-group-row td{background:var(--sidebar-soft);color:#f6fbf8;font-size:12px;font-weight:900;letter-spacing:.02em;padding:7px 10px;text-transform:uppercase}.sheet-row-form{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(110px,1fr) minmax(82px,.55fr) minmax(100px,.8fr) minmax(110px,.8fr) auto}.student-row-form{grid-template-columns:minmax(180px,1.4fr) minmax(100px,.7fr) minmax(120px,.8fr) auto}.session-row-form{grid-template-columns:minmax(90px,.7fr) minmax(100px,.8fr) minmax(80px,.55fr) auto}.support-list-table td:nth-child(2),.support-list-table td:nth-child(3){min-width:260px}.membership-editor{align-items:center;grid-template-columns:minmax(170px,.8fr) minmax(300px,1fr) minmax(280px,1fr)}.membership-editor>div:first-child{display:grid;grid-gap:2px;gap:2px}.membership-editor>div:first-child strong{font-size:18px;line-height:1}.membership-editor>div:first-child span{color:var(--muted);font-size:12px;font-weight:800}.membership-editor form{align-items:end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(180px,1fr) auto}.membership-chip-list{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.membership-chip{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer;display:inline-flex;font-size:12px;font-weight:900;gap:5px;min-height:30px;padding:6px 8px}.membership-chip:hover{background:var(--danger-soft);border-color:#e5b7b7;color:var(--danger)}.schedule-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:grid;grid-gap:1px;gap:1px;grid-template-columns:116px repeat(5,minmax(220px,1fr));overflow-x:auto}.schedule-grid.daily-schedule{grid-template-columns:104px minmax(0,1fr)}.schedule-grid.daily-schedule .schedule-cell:not(.schedule-head){align-content:start;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.schedule-grid.daily-schedule .class-card{margin-bottom:0}.schedule-grid.daily-schedule .assignment-chip{align-self:start;justify-self:start}.timetable-day-stack{display:grid;grid-gap:20px;gap:20px}.day-switcher{align-items:center;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px;padding:6px}.day-switcher button{background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--muted-strong);cursor:pointer;font-weight:900;min-height:42px;padding:8px 10px;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.day-switcher button:focus-visible,.day-switcher button:hover{background:var(--panel-soft);border-color:var(--line);outline:none}.day-switcher button.active{background:var(--brand);border-color:var(--brand);color:#ffffff;box-shadow:var(--shadow-sm)}.day-label-short{display:none}.school-timetable-wrap{--school-duty-col:76px;--school-pastoral-col:82px;--school-period-col:minmax(204px,1fr);--school-table-min-width:1298px;--school-pastoral-table-min-width:1382px;--school-year-col:42px;display:grid;grid-gap:12px;gap:12px;min-width:0}.school-timetable-wrap h2{color:var(--ink);font-size:18px;font-weight:950;margin:0}.school-timetable-title{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.school-timetable-title form{margin-left:auto}.school-timetable-scroll{-webkit-overflow-scrolling:touch;margin-inline:-2px;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;padding:2px 2px 12px;scrollbar-color:var(--brand) rgba(23,107,91,.14);scrollbar-width:thin;touch-action:pan-x pan-y}.school-timetable-scroll:focus-visible{border-radius:var(--radius-lg);box-shadow:0 0 0 3px rgba(23,107,91,.18);outline:none}.school-timetable-scroll::-webkit-scrollbar{height:12px}.school-timetable-scroll::-webkit-scrollbar-track{background:rgba(23,107,91,.12);border-radius:999px}.school-timetable-scroll::-webkit-scrollbar-thumb{background:var(--brand);border:3px solid rgba(235,243,240,.98);border-radius:999px}.school-timetable-inner{display:grid;grid-gap:8px;gap:8px;min-width:var(--school-table-min-width);width:100%}.school-timetable-inner.pastoral-grid{min-width:var(--school-pastoral-table-min-width)}.pastoral-info-button,.pastoral-toggle{align-items:center;border-radius:999px;cursor:pointer;display:inline-flex;font-weight:900;justify-content:center}.pastoral-info-button{background:#fff7cc;border:1px solid #d9b92f;color:#6b5200;height:30px;width:30px}.pastoral-info-button:focus-visible,.pastoral-info-button:hover{background:#ffe66a;outline:none}.pastoral-toggle{background:#ffffff;border:1px solid var(--line);color:var(--muted-strong);min-height:30px;padding:6px 10px;white-space:nowrap;width:180px}.pastoral-toggle.active{background:#fff7cc;border-color:#d9b92f;color:#5f4600}.school-duty-action-grid,.school-timetable-grid{background:var(--line-strong);display:grid;grid-gap:1px;gap:1px;grid-template-columns:var(--school-year-col) repeat(2,var(--school-period-col)) var(--school-duty-col) var(--school-duty-col) repeat(2,var(--school-period-col)) var(--school-duty-col) var(--school-period-col);min-width:0;width:100%}.school-timetable-grid{border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:visible}.school-duty-action-grid{background:transparent;margin-bottom:-8px;overflow:visible;padding:0 1px}.school-duty-action-grid.pastoral-grid,.school-timetable-grid.pastoral-grid{grid-template-columns:var(--school-year-col) repeat(2,var(--school-period-col)) var(--school-pastoral-col) var(--school-duty-col) var(--school-duty-col) repeat(2,var(--school-period-col)) var(--school-duty-col) var(--school-period-col)}.school-duty-action-cell,.school-duty-action-spacer{min-height:28px}.school-duty-action-cell{align-items:center;display:flex;justify-content:center;overflow:visible;position:relative}.school-duty-cell,.school-pastoral-cell,.school-period-cell,.school-timetable-head,.school-year-cell{background:rgba(255,255,255,.98);min-width:0}.school-timetable-head{align-items:center;background:var(--sidebar-soft);color:#f6fbf8;display:flex;font-weight:950;min-height:38px;padding:7px 8px}.school-timetable-head.centered{justify-content:center}.school-timetable-head.duty-head,.school-timetable-head.pastoral-head{background:#07110d;color:#ffffff;display:grid;grid-gap:2px;gap:2px;justify-items:center;min-width:0;padding:5px 4px}.school-timetable-head.duty-head small,.school-timetable-head.pastoral-head small{color:#cde5dc;font-size:8px;font-weight:850;line-height:1.15;text-align:center}.school-timetable-head.pastoral-head{background:#151b16}.school-year-cell{align-items:flex-start;background:#edf5f2;border-top:2px solid rgba(23,107,91,.2);color:var(--brand-strong);display:flex;font-size:13px;font-weight:950;padding:8px 5px}.learning-hub-year-cell{align-items:flex-start;background:#e2f2ed;color:#0e4f43;font-size:clamp(8px,.62vw,10px);line-height:1;overflow-wrap:normal;padding:7px 4px;word-break:normal}.school-period-cell{align-content:start;display:grid;border-top:2px solid rgba(23,107,91,.2);grid-gap:3px;gap:3px;min-height:40px;padding:4px}.learning-hub-period-cell{background:#f3faf7}.school-duty-cell{align-content:start;background:#07110d;display:grid;grid-gap:3px;gap:3px;margin-top:-1px;min-height:40px;padding:4px 3px 3px}.school-duty-cell.with-duty-cards{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,0)),#07110d}.school-duty-alignment-slot{align-content:start;display:grid;grid-gap:3px;gap:3px;min-height:51px}.school-duty-card{background:var(--staff-soft,#ffffff);border:1px solid rgba(255,255,255,.24);border-left:4px solid var(--staff-color,#ffd84d);border-radius:var(--radius-sm);color:#07110d;display:grid;grid-gap:1px;gap:1px;padding:4px}.school-duty-card strong{font-size:10px;font-weight:950;line-height:1.1;overflow-wrap:anywhere}.school-duty-card span{font-size:9px;font-weight:850;line-height:1.1;color:var(--muted)}.assignment-overlap-toggle{background:#fff8df;border:1px solid #e8c75d;border-radius:var(--radius-sm);margin-bottom:6px;padding:7px}.lso-additional-assignment-form{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.school-duty-empty{color:#cde5dc;font-size:10px;font-weight:850;line-height:1.2;text-align:center}.compact-lso-section{display:grid;grid-gap:8px;gap:8px;margin-top:2px}.compact-lso-title{align-items:center;display:flex;gap:10px;justify-content:space-between}.compact-lso-title h3{color:var(--ink);font-size:15px;font-weight:950;margin:0}.compact-lso-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow-x:auto;scrollbar-color:var(--brand) rgba(23,107,91,.14);scrollbar-width:thin;touch-action:pan-x pan-y}.compact-lso-table{border-collapse:separate;border-spacing:0;min-width:1130px;table-layout:fixed;width:100%}.compact-lso-table.pastoral{min-width:1190px}.compact-lso-name-col{width:88px}.compact-lso-period-col{width:164px}.compact-lso-duty-col,.compact-lso-pastoral-col{width:74px}.compact-lso-table td,.compact-lso-table th{border-bottom:1px solid #d7dedb;border-right:2px solid #111814;color:#07110d;font-size:12px;height:30px;padding:0;vertical-align:middle}.compact-lso-table thead th{background:#ffffff;font-weight:950;padding:4px 5px;text-align:center}.compact-lso-table thead th:first-child{text-align:left}.compact-lso-duty-head{background:#f3dce6!important;color:#07110d!important}.compact-lso-duty-head small,.compact-lso-duty-head span{display:block}.compact-lso-duty-head small{font-size:8px;font-weight:850;line-height:1.1}.compact-lso-name{background:var(--staff-color,var(--brand-soft));color:#07110d!important;font-weight:950;padding:4px 5px!important;text-align:left}.compact-lso-table td{background:#ffffff;position:relative}.compact-lso-duty-cell,.compact-lso-pastoral-cell{background:#f5f7f6!important}.compact-lso-cell-form{height:100%;margin:0}.compact-lso-cell-form select{background:transparent;border:0;border-radius:0;color:#07110d;cursor:pointer;font-size:12px;font-weight:650;height:100%;min-height:30px;outline:none;padding:4px 7px;width:100%}.compact-lso-cell-form select:focus-visible{background:#ffffff;box-shadow:inset 0 0 0 2px var(--brand)}.compact-lso-cell-form select:disabled{cursor:not-allowed;opacity:.55}.compact-lso-unavailable-cell,.compact-lso-unavailable-row td{background:#d5ddd9!important}.compact-lso-chip,.compact-lso-duty-chip{color:#07110d;display:block;font-size:12px;font-weight:750;padding:4px 7px}.compact-lso-duty-chip{font-size:10px;line-height:1.15}.compact-lso-extra{bottom:2px;color:var(--muted-strong);font-size:10px;font-weight:900;position:absolute;right:4px}.school-pastoral-cell{background:#151b16;margin-top:-1px;min-height:40px}.learning-hub-pastoral-cell{background:#101711}.duty-heading-label{display:grid;grid-gap:1px;gap:1px;justify-items:center;min-width:0;text-align:center}.duty-heading-label span,.school-timetable-head.pastoral-head>span{font-size:11px;line-height:1.05;overflow-wrap:anywhere}.duty-assignment-menu{position:relative;z-index:19}.duty-assignment-menu[open]{z-index:19}.duty-assignment-menu summary{align-items:center;background:var(--brand);border:1px solid var(--brand-strong);border-radius:999px;color:#ffffff;cursor:pointer;display:inline-flex;height:23px;justify-content:center;list-style:none;width:23px}.duty-assignment-menu summary::-webkit-details-marker{display:none}.duty-assignment-menu summary:hover,.duty-assignment-menu[open] summary{background:var(--brand-strong);color:#ffffff}.duty-assignment-popover{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow-lg);color:var(--ink);display:grid;grid-gap:8px;gap:8px;min-width:220px;padding:10px;position:absolute;right:0;top:calc(100% + 6px);z-index:110}.duty-assignment-popover strong{font-size:13px}.duty-assignment-popover label{display:grid;grid-gap:4px;gap:4px;font-size:12px;font-weight:900;text-align:left}.duty-assignment-popover select{min-height:34px}.school-class{background:#ffffff;border:1px solid rgba(19,32,27,.1);border-left:4px solid rgba(23,107,91,.22);border-radius:var(--radius-sm);box-shadow:0 1px 1px rgba(18,31,26,.04);color:#07110d;display:grid;grid-gap:2px;gap:2px;min-height:51px;padding:4px 6px;position:relative}.school-class.assigned{border-color:rgba(0,0,0,.16);box-shadow:0 2px 8px rgba(18,31,26,.12);background:var(--staff-soft,#ffffff);border-left-color:var(--staff-color,rgba(23,107,91,.22));color:#07110d}.school-class.multi-assigned{background:#ffffff;color:#07110d}.school-class.assigned .school-class-lso,.school-class.assigned .school-class-main,.school-class.assigned .school-class-main span,.school-class.assigned .school-class-main strong,.school-class.assigned .school-class-students{color:#07110d}.school-class.overridden{border-style:dashed}.school-class.cancelled{background:#cfd7d3;border-color:rgba(19,32,27,.22) rgba(19,32,27,.22) rgba(19,32,27,.22) #6f7b75;box-shadow:none;color:#35423c}.school-class.cancelled .school-class-main,.school-class.cancelled .school-class-students{opacity:.62}.school-class.cancelled .school-class-main strong{text-decoration:line-through;text-decoration-thickness:2px}.school-class.learning-hub-class{border-left-color:rgba(23,107,91,.38)}.school-class.learning-hub-class.unassigned{background:#fbfdfc;color:#3a4f48}.school-class.learning-hub-class.missing-lso{background:#fff1f0;border-color:rgba(186,38,38,.35) rgba(186,38,38,.35) rgba(186,38,38,.35) #c73333}.assignment-colour-strip{border-radius:var(--radius-sm) var(--radius-sm) 0 0;display:flex;height:5px;inset:0 0 auto 0;overflow:hidden;position:absolute}.assignment-colour-segment{background:var(--staff-color,var(--brand));flex:1 1}.school-class-main{display:grid;grid-gap:5px;gap:5px;grid-template-columns:minmax(76px,1.35fr) minmax(48px,.85fr) minmax(44px,.8fr)}.school-class-main.learning-hub-main{grid-template-columns:1fr;padding-right:28px}.school-class-main span,.school-class-main strong{font-size:12px;line-height:1.12;overflow-wrap:anywhere}.school-class-main strong{font-weight:950}.school-class-lso,.school-class-status,.school-class-students{font-size:10px;line-height:1.16;min-height:11px;overflow-wrap:anywhere}.school-class-lso,.school-class-status{font-size:10px;font-weight:900}.school-class-status{color:var(--danger);text-transform:uppercase}.learning-hub-empty,.learning-hub-notes,.learning-hub-warning{font-size:10px;font-weight:850;line-height:1.18;overflow-wrap:anywhere}.learning-hub-notes{color:var(--muted-strong)}.learning-hub-warning{color:#b42318}.learning-hub-empty{color:var(--muted)}.class-assignment-menu{position:absolute;right:4px;top:4px;z-index:18}.class-assignment-menu[open]{z-index:80}.class-assignment-menu>summary{align-items:center;background:rgba(255,255,255,.86);border:1px solid rgba(19,32,27,.12);border-radius:999px;box-shadow:var(--shadow-sm);color:var(--brand-strong);cursor:pointer;display:inline-flex;height:25px;justify-content:center;list-style:none;width:25px}.class-assignment-menu>summary::-webkit-details-marker{display:none}.class-assignment-menu>summary:hover,.class-assignment-menu[open]>summary{background:var(--brand);border-color:var(--brand);color:#ffffff}.class-assignment-popover{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow-lg);color:var(--ink);display:grid;grid-gap:8px;gap:8px;min-width:220px;padding:10px;position:absolute;right:0;top:calc(100% + 6px);z-index:90}.class-assignment-menu[open]:not(.popover-positioned) .class-assignment-popover,.class-override-menu[open]:not(.popover-positioned) .class-override-popover{visibility:hidden}.class-assignment-menu[open].popover-positioned .class-assignment-popover{bottom:auto;left:var(--popover-left);position:fixed;right:auto;top:var(--popover-top)}.class-assignment-menu.open-up .class-assignment-popover{bottom:auto}.class-assignment-popover-head{align-items:center;display:flex;gap:8px;justify-content:space-between;min-width:0}.class-assignment-popover-head>strong{font-size:13px;line-height:1.2;min-width:0;overflow-wrap:anywhere}.learning-hub-popover{min-width:260px}.learning-hub-details-form{border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;padding-top:8px}.learning-hub-details-form label{display:grid;grid-gap:4px;gap:4px;font-size:12px;font-weight:900}.learning-hub-details-form textarea{min-height:70px;resize:vertical}.learning-hub-student-options{max-height:190px}.learning-hub-details-form .class-assignment-options .checkbox-line{align-items:center;display:flex;grid-template-columns:none}.learning-hub-details-form .class-assignment-options .checkbox-line input[type=checkbox]{flex:0 0 auto}.learning-hub-details-form .class-assignment-options .checkbox-line-text{min-width:0}.modal-backdrop{background:rgba(7,17,13,.44);padding:18px;z-index:2200}.copy-week-modal{display:grid;grid-gap:16px;gap:16px;max-height:calc(100vh - 36px);max-width:720px;overflow:auto;width:min(720px,100%)}.copy-week-modal-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.copy-week-modal-head h2{margin-bottom:6px}.copy-week-modal-head .icon-button{flex:0 0 auto;min-height:36px;min-width:36px}.copy-week-form{display:grid;grid-gap:14px;gap:14px}.copy-week-route{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.copy-week-route>div{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:5px;gap:5px;padding:12px}.copy-week-preview-grid span,.copy-week-route span{color:var(--muted-strong);font-size:11px;font-weight:950;text-transform:uppercase}.copy-week-route strong{font-size:17px;line-height:1.15}.copy-week-route small{color:var(--muted);font-weight:750}.copy-week-preview-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.copy-week-preview-grid>div{background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:5px;gap:5px;padding:12px}.copy-week-preview-grid strong{font-size:26px;line-height:1}.copy-week-warning{align-items:flex-start;display:flex;gap:9px;margin:0}.copy-week-warning svg{color:var(--warning);flex:0 0 auto;margin-top:1px}.copy-week-confirm{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.copy-week-actions{display:flex;gap:10px;justify-content:flex-end}.copy-week-actions .button{width:auto}.copy-week-same-week{margin-top:-6px;text-align:right}.popover-section-title{color:var(--muted-strong);font-size:11px;font-weight:950;letter-spacing:0;text-transform:uppercase}.class-override-menu{flex:0 0 auto;position:relative}.class-override-menu-card-action{position:absolute;right:4px;top:4px;z-index:18}.class-override-menu[open]{z-index:120}.class-override-menu summary{align-items:center;background:var(--panel-soft);border:1px solid var(--line);border-radius:999px;color:var(--brand-strong);cursor:pointer;display:inline-flex;height:26px;justify-content:center;list-style:none;width:26px}.class-override-menu summary::-webkit-details-marker{display:none}.class-override-menu summary:hover,.class-override-menu[open] summary{background:var(--brand);border-color:var(--brand);color:#ffffff}.school-class.cancelled .class-override-menu-card-action summary{background:rgba(255,255,255,.92);border-color:rgba(19,32,27,.22);box-shadow:var(--shadow-sm);color:var(--brand-strong)}.school-class.cancelled .class-override-menu-card-action summary:hover,.school-class.cancelled .class-override-menu-card-action[open] summary{background:var(--brand);border-color:var(--brand);color:#ffffff}.class-override-popover{background:#ffffff;border:1px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow-lg);color:var(--ink);display:grid;grid-gap:8px;gap:8px;min-width:230px;padding:10px;position:absolute;right:0;top:calc(100% + 6px);z-index:130}.class-override-menu[open].popover-positioned .class-override-popover{bottom:auto;left:var(--popover-left);position:fixed;right:auto;top:var(--popover-top)}.class-override-menu.open-up .class-override-popover{bottom:auto}.class-override-popover strong{font-size:13px}.class-override-popover label{display:grid;grid-gap:4px;gap:4px;font-size:12px;font-weight:900}.class-override-popover .checkbox-line{align-items:center;display:flex;min-height:28px}.class-override-popover input:not([type=checkbox]){min-height:34px}.class-override-actions{display:grid;grid-gap:8px;gap:8px;grid-template-columns:1fr 1fr}.class-assignment-options{display:grid;grid-gap:2px;gap:2px;max-height:230px;overflow:auto}.class-assignment-options .checkbox-line{border-radius:var(--radius-sm);font-size:13px;font-weight:850;min-height:30px;padding:4px 5px}.class-assignment-options .checkbox-line:hover{background:var(--panel-soft)}.class-assignment-options .checkbox-line.disabled{color:var(--muted);cursor:not-allowed}.class-assignment-options .checkbox-line.disabled:hover{background:transparent}.checkbox-line-text{display:grid;grid-gap:2px;gap:2px;line-height:1.1;min-width:0}.checkbox-line-text small{color:var(--muted);font-size:11px;font-weight:750}.class-assignment-popover .button{min-height:34px;padding:7px 10px;width:100%}.staff-colour-dot{border:1px solid rgba(19,32,27,.18);border-radius:999px;flex:0 0 auto;height:12px;width:12px}.school-empty{color:var(--muted);font-size:12px;padding:7px 6px}.modal-backdrop{align-items:center;background:rgba(5,16,12,.42);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:120}.pastoral-modal{background:#ffffff;border:1px solid rgba(19,32,27,.14);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:min(720px,calc(100vh - 40px));max-width:760px;overflow:hidden;width:min(100%,760px)}.pastoral-modal-head{align-items:center;background:var(--sidebar-soft);color:#ffffff;display:flex;gap:16px;justify-content:space-between;padding:16px 18px}.pastoral-modal-head span{color:#bdf0dc;font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.pastoral-modal-head h2{color:#ffffff;font-size:24px;margin:2px 0 0}.pastoral-times-table-wrap{overflow:auto}.pastoral-times-table{border-collapse:collapse;width:100%}.pastoral-times-table td,.pastoral-times-table th{border:1px solid #0c1712;padding:8px 10px;text-align:left}.pastoral-times-table thead th{background:#f7faf8;color:#0b1712;font-weight:950}.pastoral-times-table tbody th{font-weight:900}.pastoral-times-table tr.highlight td,.pastoral-times-table tr.highlight th{background:#fff200;color:#0b1712;font-weight:950}.pastoral-times-table td:last-child{color:#df0000;font-weight:900}.staff-colour-dot{background:var(--staff-color,var(--brand))}.staff-colour-1{--staff-color:#3366cc;--staff-soft:#dce7ff;--staff-text:#ffffff}.staff-colour-2{--staff-color:#dc3912;--staff-soft:#ffe1d9;--staff-text:#ffffff}.staff-colour-3{--staff-color:#ff9900;--staff-soft:#fff0d4;--staff-text:#10201a}.staff-colour-4{--staff-color:#109618;--staff-soft:#dff4e1;--staff-text:#ffffff}.staff-colour-5{--staff-color:#990099;--staff-soft:#f4d8f4;--staff-text:#ffffff}.staff-colour-6{--staff-color:#0099c6;--staff-soft:#d8f3fb;--staff-text:#ffffff}.staff-colour-7{--staff-color:#dd4477;--staff-soft:#ffe0eb;--staff-text:#ffffff}.staff-colour-8{--staff-color:#66aa00;--staff-soft:#e8f5d8;--staff-text:#10201a}.staff-colour-9{--staff-color:#b82e2e;--staff-soft:#f7dddd;--staff-text:#ffffff}.staff-colour-10{--staff-color:#316395;--staff-soft:#dfeaf4;--staff-text:#ffffff}.staff-colour-11{--staff-color:#994499;--staff-soft:#f0e0f0;--staff-text:#ffffff}.staff-colour-12{--staff-color:#22aa99;--staff-soft:#ddf5f2;--staff-text:#10201a}.staff-colour-13{--staff-color:#aaaa11;--staff-soft:#f7f7dc;--staff-text:#10201a}.staff-colour-14{--staff-color:#6633cc;--staff-soft:#e6ddff;--staff-text:#ffffff}.staff-colour-15{--staff-color:#e67300;--staff-soft:#ffe8cf;--staff-text:#10201a}.staff-colour-16{--staff-color:#8b0707;--staff-soft:#f2d7d7;--staff-text:#ffffff}.staff-colour-17{--staff-color:#651067;--staff-soft:#ead8eb;--staff-text:#ffffff}.staff-colour-18{--staff-color:#329262;--staff-soft:#dff1e8;--staff-text:#ffffff}.staff-colour-19{--staff-color:#5574a6;--staff-soft:#e4ebf5;--staff-text:#ffffff}.staff-colour-20{--staff-color:#3b3eac;--staff-soft:#e0e1f6;--staff-text:#ffffff}.staff-colour-21{--staff-color:#b77322;--staff-soft:#f6eadc;--staff-text:#10201a}.staff-colour-22{--staff-color:#16d620;--staff-soft:#dcfadb;--staff-text:#10201a}.staff-colour-23{--staff-color:#b91383;--staff-soft:#f6d9ec;--staff-text:#ffffff}.staff-colour-24{--staff-color:#f4359e;--staff-soft:#fedfed;--staff-text:#10201a}.staff-colour-default,.staff-colour-fallback{--staff-color:var(--brand);--staff-soft:var(--brand-soft);--staff-text:#ffffff}.schedule-cell{background:rgba(255,255,255,.96);min-height:132px;min-width:0;padding:12px}.schedule-head{align-items:center;background:var(--sidebar-soft);color:#f6fbf8;display:flex;font-weight:900;min-height:48px}.class-card{background:var(--panel-soft);border-left:4px solid var(--brand);display:grid;grid-gap:4px;gap:4px;margin-bottom:8px;padding:8px 9px}.class-card strong{font-size:14px;line-height:1.2}.class-card small{color:var(--muted);line-height:1.35}.assignment-chip{background:var(--blue-soft);border:1px solid rgba(47,95,143,.12);border-radius:999px;color:var(--blue);display:inline-flex;font-size:12px;font-weight:900;line-height:1.25;margin:4px 4px 0 0;padding:5px 8px}.assignment-workspace{display:grid;grid-gap:12px;gap:12px}.assignment-grid-wrap{background:#1d1d1d;border:2px solid #1d1d1d;border-radius:var(--radius);overflow:auto}.assignment-grid-table{border-collapse:separate;border-spacing:0;min-width:1160px}.assignment-grid-table td,.assignment-grid-table th{border-bottom:1px solid #d7dedb;border-right:2px solid #1d1d1d;padding:0;vertical-align:middle}.assignment-grid-table thead th{background:#ffffff;color:#07110d;font-size:13px;font-weight:950;height:30px;padding:4px 6px;text-align:center}.assignment-grid-table thead th small{display:block;font-size:9px;font-weight:850;line-height:1.15;margin-top:2px}.assignment-grid-table thead th.assignment-duty-head{background:#07110d;color:#ffffff;min-width:82px}.assignment-grid-table thead th.assignment-duty-head small{color:#cde5dc}.assignment-grid-table thead th.assignment-pastoral-head{background:#151b16;color:#ffffff;min-width:86px}.assignment-grid-table thead th.assignment-pastoral-head small{color:#cde5dc}.assignment-grid-table thead th:first-child{text-align:left;width:86px}.assignment-grid-table tbody th.assignment-staff-cell{background:var(--staff-color,var(--panel-tint));color:var(--staff-text,var(--ink));font-size:13px;font-weight:950;min-width:70px;padding:4px 5px;position:-webkit-sticky;position:sticky;left:0;z-index:2}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-default{background-color:var(--brand);color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-1{background-color:#3366cc;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-2{background-color:#dc3912;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-3{background-color:#ff9900;color:#10201a}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-4{background-color:#109618;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-5{background-color:#990099;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-6{background-color:#0099c6;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-7{background-color:#dd4477;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-8{background-color:#66aa00;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-9{background-color:#b82e2e;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-10{background-color:#316395;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-11{background-color:#994499;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-12{background-color:#22aa99;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-13{background-color:#aaaa11;color:#10201a}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-14{background-color:#6633cc;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-15{background-color:#e67300;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-16{background-color:#8b0707;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-17{background-color:#651067;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-18{background-color:#329262;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-19{background-color:#5574a6;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-20{background-color:#3b3eac;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-21{background-color:#b77322;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-22{background-color:#16d620;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-23{background-color:#b91383;color:#ffffff}.assignment-grid-table tbody th.assignment-staff-cell.staff-colour-24{background-color:#f4359e;color:#ffffff}.assignment-grid-table td{background:#ffffff;min-width:175px}.assignment-grid-table td.assignment-duty-cell{background:#07110d;min-width:82px}.assignment-grid-table td.assignment-pastoral-cell{background:#151b16;min-width:86px}.assignment-grid-table tbody tr:hover td{background:#fbfdfc}.assignment-grid-table tbody tr:hover td.assignment-unavailable-cell,.assignment-grid-table td.assignment-unavailable-cell{background:#d5ddd9;color:rgba(7,17,13,.78)}.assignment-grid-table tbody tr:hover td.assignment-duty-cell{background:#07110d}.assignment-grid-table tbody tr:hover td.assignment-pastoral-cell{background:#151b16}.assignment-cell-form{align-items:center;display:grid;grid-gap:4px;gap:4px;grid-template-columns:minmax(0,1fr) 34px;min-height:34px;padding:2px}.assignment-cell-form.has-break-note{row-gap:1px}.assignment-cell-form select{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);box-shadow:none;min-height:30px;padding:3px 5px}.assignment-cell-form select:focus,.assignment-cell-form select:hover{background:#ffffff;border-color:var(--brand);box-shadow:0 0 0 3px rgba(23,107,91,.08)}.assignment-cell-form .icon-button{min-height:30px;min-width:30px;padding:6px}.icon-button:disabled{cursor:not-allowed;opacity:.58;transform:none}.assignment-duty-form{align-items:center;display:grid;grid-gap:4px;gap:4px;grid-template-columns:minmax(0,1fr) 30px;min-height:34px;padding:2px}.assignment-duty-form select{background:#ffffff;border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-sm);min-height:30px;padding:3px 5px}.assignment-duty-form .icon-button{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#ffffff;min-height:30px;min-width:30px;padding:6px}.assignment-duty-form .icon-button:focus-visible,.assignment-duty-form .icon-button:hover{background:#ffffff;color:var(--brand)}.assignment-duty-cell>span{color:#ffffff;display:block;font-size:12px;font-weight:900;padding:8px 7px}.assignment-cell-form small{color:var(--warning);font-size:10px;font-weight:900;grid-column:1/-1}.assignment-cell-form .assignment-break-note{line-height:1.1;margin-top:-2px}.option-manager{display:grid;grid-gap:12px;gap:12px}.option-chip-list{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.duty-inline-form{align-items:end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(120px,1fr) minmax(110px,.8fr) minmax(110px,.8fr) minmax(90px,.7fr) minmax(90px,.7fr) auto;margin-bottom:12px}.login-wrap{align-items:center;background:linear-gradient(135deg,rgba(23,107,91,.12),rgba(184,74,49,.1)),var(--bg);display:grid;min-height:100vh;padding:28px}.auth-card{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) minmax(360px,450px);margin:0 auto;max-width:980px;width:100%}.auth-summary{align-content:center;background:var(--sidebar);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#f6fbf8;display:grid;grid-gap:14px;gap:14px;min-height:520px;padding:clamp(24px,5vw,48px)}.auth-summary h1{font-size:clamp(34px,5vw,56px);letter-spacing:0;line-height:1;margin:0}.auth-summary p{color:#c9d7d2;font-size:16px;max-width:520px}.auth-summary .eyebrow{color:#94cfc1}.auth-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.auth-points span{align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#f6fbf8;display:inline-flex;font-size:12px;font-weight:900;gap:7px;padding:7px 10px}.auth-form{align-content:center;box-shadow:var(--shadow-lg);min-height:520px}.auth-form h2{font-size:26px;margin-bottom:4px}.notice{background:var(--warning-soft);border:1px solid #ecd590;border-radius:var(--radius);color:#5a4500;padding:12px 14px}.notice.success{background:var(--ok-soft);border-color:#b7ddc5;color:#174d2e}.notice.danger{background:var(--danger-soft);border-color:#e5b7b7}.danger-text,.notice.danger{color:var(--danger)}.restore-action{display:grid;grid-gap:10px;gap:10px}.restore-action summary{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);cursor:pointer;display:inline-flex;font-weight:800;min-height:40px;padding:9px 13px;width:-moz-fit-content;width:fit-content}.restore-action summary:hover{background:var(--panel-soft);border-color:var(--line-strong)}.restore-action-body{display:grid;grid-gap:8px;gap:8px;max-width:280px}.review-card{display:grid;grid-gap:16px;gap:16px}.review-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.review-head h2{margin-bottom:4px}.review-head p{color:var(--muted)}.review-meta{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.review-meta>div{background:rgba(255,255,255,.72);display:grid;grid-gap:6px;gap:6px;min-width:0;padding:12px}.review-meta span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.review-meta strong{overflow-wrap:anywhere}.slot-list{display:flex;flex-wrap:wrap;gap:6px}.repair-form{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:12px;gap:12px;padding:14px}.repair-form h3{font-size:15px;line-height:1.25;margin:0}.inline-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.print-title{display:none}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}}@media (max-width:1120px){.app-shell{--sidebar-width:232px}.filter-panel,.filter-panel.timetable-filter,.grid.four,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.lso-filter-panel{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(150px,.8fr) auto}.timetable-control-top{grid-template-columns:minmax(320px,1fr) minmax(180px,.5fr) minmax(140px,.36fr)}.search-control-field{grid-column:1/-1}.admin-activity-form,.admin-config-add-form,.admin-lso-add-form,.admin-lso-filter,.admin-stats,.data-summary-strip,.filter-panel.audit-filter,.filter-panel.compact-filter,.filter-panel.data-filter,.inline-admin-form,.timetable-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-lso-grid-head,.admin-lso-grid-row{grid-template-columns:52px minmax(140px,1fr) minmax(180px,1fr) 82px 110px 78px}.admin-duty-options-grid .admin-config-grid-head,.admin-duty-options-grid .admin-config-grid-row{grid-template-columns:minmax(180px,1fr) 120px 120px 80px 78px}.admin-support-sections-grid .admin-config-grid-head,.admin-support-sections-grid .admin-config-grid-row{grid-template-columns:minmax(180px,1fr) minmax(210px,1.1fr) 110px 74px 78px}.data-summary-strip>div,.data-summary-strip>div:first-child,.data-summary-strip>div:last-child{border-radius:var(--radius)}.data-sheet-head,.duty-inline-form,.membership-editor,.session-add-row,.sheet-add-row{grid-template-columns:1fr}.day-editor-control-form{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;min-width:0;width:100%}.sheet-filter-bar{justify-content:flex-start}.user-pill{max-width:320px}}@media (max-width:900px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.main{grid-column:1}.sidebar{display:none}.topbar{align-items:center;min-height:58px;padding:10px 12px}.topbar-left{align-items:center;width:100%}.desktop-sidebar-toggle,.topbar-actions{display:none}.mobile-menu-button{display:inline-flex}.mobile-menu-panel.open{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);display:grid;grid-gap:12px;gap:12px;padding:12px;position:-webkit-sticky;position:sticky;top:58px;z-index:140}.mobile-nav{display:grid;grid-gap:5px 8px;gap:5px 8px;grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav .nav-group{display:contents}.mobile-nav .nav-section{color:var(--muted);display:block;font-size:11px;font-weight:900;grid-column:1/-1;margin:8px 8px 2px;text-transform:uppercase}.mobile-nav .nav-link{background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);gap:7px;min-height:46px;padding:8px 9px;white-space:normal}.mobile-nav .nav-link svg{color:var(--brand)}.mobile-menu-account{border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;padding-top:12px}.mobile-menu-account .user-pill{max-width:none;width:100%}.mobile-menu-account .mobile-user-pill{border-radius:999px;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto;padding:6px 8px 6px 0}.mobile-user-pill .avatar{display:none}.mobile-user-pill>span:not(.avatar){padding-left:10px}.mobile-user-pill strong{display:none}.mobile-user-pill .button{min-height:36px;padding:7px 11px;width:auto}.content{padding:14px 12px 18px}.admin-activity-form,.admin-config-add-form,.admin-lso-add-form,.admin-lso-filter,.copy-mode-grid,.data-context-bar,.data-summary-strip,.day-editor-control-form,.filter-panel,.filter-panel.audit-filter,.filter-panel.compact-filter,.filter-panel.data-filter,.filter-panel.timetable-filter,.form-grid.inline,.grid.four,.grid.three,.grid.two,.inline-admin-form,.review-meta,.session-row-form,.sheet-row-form,.student-row-form,.timeline-item{grid-template-columns:1fr}.lso-filter-panel .filter-actions{justify-content:flex-start}.admin-section-body,.admin-section-summary{padding-left:14px;padding-right:14px}.admin-lso-grid{border:0;display:grid;grid-gap:10px;gap:10px;overflow:visible}.admin-lso-grid-head{display:none}.admin-lso-grid-row{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) minmax(86px,.45fr);padding:12px}.admin-lso-grid-row label{min-width:0}.admin-lso-grid-row label>span{color:var(--muted-strong);display:inline;font-size:11px;font-weight:900}.admin-row-checkbox{grid-column:1/-1;justify-content:flex-start}.admin-lso-grid-row .admin-status-field,.admin-lso-grid-row button{grid-column:auto}.admin-activity-grid{border:0;display:grid;grid-gap:10px;gap:10px;overflow:visible}.admin-activity-grid-head{display:none}.admin-activity-grid-row{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr;padding:12px}.admin-activity-edit-form{display:grid;grid-gap:8px;gap:8px;grid-template-columns:1fr}.admin-activity-edit-form label>span{color:var(--muted-strong);display:inline;font-size:11px;font-weight:900}.admin-activity-archive-form,.admin-activity-archive-form .button{width:100%}.admin-config-grid{border:0;display:grid;grid-gap:10px;gap:10px;overflow:visible}.admin-config-grid-head{display:none}.admin-config-grid-row{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr;padding:12px}.admin-config-grid-row label>span{color:var(--muted-strong);display:inline;font-size:11px;font-weight:900}.admin-weekday-checks{gap:5px}.admin-weekday-checks legend{color:var(--muted-strong);display:block;flex:0 0 100%;font-size:11px;font-weight:900}.timetable-control-top,.timetable-filter-row{grid-template-columns:1fr}.mobile-filter-toggle{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);cursor:pointer;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:42px;width:100%}.mobile-filter-toggle[aria-expanded=true]{border-color:var(--brand);box-shadow:0 0 0 4px rgba(23,107,91,.08)}.timetable-filter-drawer{display:none;grid-template-columns:1fr}.timetable-filter-drawer.open{display:grid}.lso-week-toolbar,.lso-week-toolbar.with-toolbar-actions,.week-selector,.weekly-duties-toolbar{grid-template-columns:44px minmax(180px,1fr) 44px}.lso-toolbar-actions,.lso-week-toolbar .weekly-duties-range,.weekly-duties-jump{grid-column:1/-1}.lso-toolbar-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.lso-toolbar-menu summary{width:100%}.lso-toolbar-popover{left:0;min-width:0;right:0}.day-switcher{gap:4px;grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:visible;padding:4px}.day-switcher button{min-height:40px;padding:7px 4px}.day-label-full{display:none}.day-label-short{display:inline}.data-sheet-tabs{top:0}.page-title{display:grid}.auth-card{grid-template-columns:1fr;max-width:560px}.auth-form,.auth-summary{min-height:auto}.auth-summary{padding:28px}}@media (max-width:620px){body{font-size:13px}.login-wrap{padding:14px}.topbar{display:grid}.topbar-actions{justify-items:stretch}.user-pill{max-width:none;width:100%}.button{width:100%}.panel-pad{padding:14px}.schedule-grid{grid-template-columns:92px repeat(5,minmax(210px,1fr))}.weekly-duties-table{min-width:700px}.weekly-duties-table th{font-size:20px}.weekly-duties-day,.weekly-duties-table td{font-size:19px!important}.weekly-duties-jump{grid-template-columns:1fr}.copy-week-modal{max-height:calc(100vh - 20px)}.copy-week-actions,.copy-week-modal-head{display:grid;justify-content:stretch}.copy-week-modal-head .icon-button{justify-self:end}.copy-week-preview-grid,.copy-week-route{grid-template-columns:1fr}.lso-card{overflow:hidden}.lso-card .lso-timetable-wrap{border-radius:var(--radius);margin-inline:-2px;padding-bottom:8px;touch-action:pan-x pan-y}.lso-timetable-table{min-width:860px}.lso-timetable-table .lso-day-col{width:118px}.lso-timetable-table .lso-duty-col{width:150px}.class-assignment-menu>summary,.duty-assignment-menu summary{height:34px;width:34px}}@media print{body{background:white;color:black;font-size:11px}.filter-panel,.no-print,.sidebar,.topbar{display:none!important}.app-shell,.content,.main{display:block;max-width:none;padding:0}.panel,.table-wrap{border-color:#999;box-shadow:none}.print-title{display:block;margin-bottom:12px}.print-title h1{margin:0}.print-grid{display:block}.print-card{break-inside:avoid;margin-bottom:14px;page-break-inside:avoid}.assignment-chip{border-color:#aaa;color:black}th{color:black}}.data-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap}.data-header h1{font-size:clamp(24px,2.2vw,34px);letter-spacing:0;line-height:1.1;margin:0 0 6px}.data-header p{color:var(--muted);margin:0}.data-version-form{align-items:flex-end;display:flex;flex-shrink:0;gap:8px}.data-version-form label{align-items:flex-start;display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--muted-strong);text-transform:uppercase;letter-spacing:.04em}.data-version-form select{min-width:200px}.data-tabs-nav{align-items:center;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;padding:5px;position:-webkit-sticky;position:sticky;top:80px;z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.data-tabs-nav a{border-radius:var(--radius);color:var(--muted-strong);flex:0 0 auto;font-size:12px;font-weight:800;letter-spacing:.02em;min-height:32px;padding:6px 14px;text-transform:uppercase;transition:background .12s,color .12s}.data-tabs-nav a:focus-visible,.data-tabs-nav a:hover{background:var(--brand-soft);color:var(--brand-strong)}.data-stats-strip{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;margin-bottom:20px;overflow:hidden}.data-stats-strip>div{border-right:1px solid var(--line);display:flex;flex:1 1;flex-direction:column;gap:2px;min-height:64px;justify-content:center;padding:10px 18px}.data-stats-strip>div:last-child{border-right:none}.data-stats-strip strong{display:block;font-size:22px;line-height:1}.data-stats-strip span{color:var(--muted-strong);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.data-section{background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:0;margin-bottom:20px;overflow:hidden;scroll-margin-top:140px}.data-section-head{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:16px 20px}.data-section-head h2{margin:0}.data-section-subtitle{color:var(--muted);font-size:13px;margin:0}.data-filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.data-filter-row .input-with-icon input{min-width:190px}.data-filter-row select{min-width:110px}.add-panel{border-bottom:1px solid var(--line)}.add-panel-trigger{align-items:center;background:var(--panel-soft);color:var(--brand-strong);cursor:pointer;display:flex;font-size:13px;font-weight:700;gap:7px;list-style:none;padding:10px 20px;transition:background .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.add-panel-trigger::-webkit-details-marker{display:none}.add-panel-trigger:hover{background:var(--brand-soft)}details[open]>.add-panel-trigger{background:var(--brand-soft);border-bottom:1px solid var(--line);color:var(--brand-strong)}.add-panel-form{align-items:flex-end;background:var(--panel-soft);display:flex;flex-wrap:wrap;gap:12px;padding:14px 20px}.add-panel-form label{display:flex;flex-direction:column;flex:1 1 140px;gap:4px;max-width:260px}.add-panel-form label>span{color:var(--muted-strong);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.data-bulk-row{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;padding:8px 20px;background:var(--panel-soft)}.data-bulk-label{color:var(--muted-strong);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.data-empty,.data-notice{color:var(--muted);font-size:13px;margin:0;padding:24px 20px;text-align:center}.class-year-group{border-bottom:1px solid var(--line)}.class-year-group:last-child{border-bottom:none}.class-year-label{align-items:center;cursor:pointer;display:flex;gap:8px;list-style:none;padding:10px 20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.class-year-label::-webkit-details-marker{display:none}.class-year-label>span:first-child{color:var(--muted-strong);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.class-year-count,.class-year-label:hover>span:first-child{color:var(--brand-strong)}.class-year-count{background:var(--brand-soft);border-radius:10px;font-size:11px;font-weight:800;padding:1px 7px}.class-year-chevron{color:var(--muted);flex-shrink:0;margin-left:auto;transition:transform .2s}details[open]>.class-year-label .class-year-chevron{transform:rotate(180deg)}.class-year-body{padding:10px 20px 16px}.class-card-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.class-card-wrapper{align-items:flex-start;display:flex;gap:8px;min-width:0}.class-card-wrapper:has(.class-card[open]){grid-column:1/-1}.class-card-wrapper .class-card{flex:1 1;min-width:0}.class-card-wrapper>.class-card-check{flex-shrink:0;height:16px;margin-top:14px;width:16px}.class-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .12s,box-shadow .12s}.class-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}details[open].class-card{border-color:var(--brand);overflow:visible}.class-card-summary{align-items:center;cursor:pointer;display:flex;gap:8px;list-style:none;min-height:44px;padding:8px 12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.class-card-summary::-webkit-details-marker{display:none}.class-card-code{flex-shrink:0;font-size:14px;font-weight:900;min-width:72px}.class-card-year{background:var(--brand-soft);border-radius:4px;color:var(--brand-strong);flex-shrink:0;font-size:11px;font-weight:800;padding:2px 6px}.class-card-subject{color:var(--muted);flex:1 1;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-card-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}details[open] .class-card-chevron{transform:rotate(180deg)}.class-card-body{border-top:1px solid var(--line)}.class-card-body>.class-edit-form{background:var(--panel-soft);padding:10px 12px 12px}.class-edit-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:8px}.class-edit-form label{display:flex;flex-direction:column;flex:1 1 90px;gap:4px;max-width:200px}.class-edit-form input,.class-edit-form select,.class-sub-session-form input,.class-sub-session-form select{min-width:0;width:100%}.class-edit-form label>span{color:var(--muted-strong);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.class-edit-actions{display:flex;gap:6px}.status-badge{border-radius:4px;flex-shrink:0;font-size:10px;font-weight:900;letter-spacing:.04em;padding:2px 7px;text-transform:uppercase}.status-badge.active{background:var(--ok-soft);color:var(--ok)}.status-badge.archived{background:var(--bg-strong);color:var(--muted-strong)}.class-card-sub{border-top:1px solid var(--line)}.class-card-sub-head{align-items:center;background:var(--panel-soft);cursor:pointer;display:flex;font-size:11px;font-weight:800;gap:6px;letter-spacing:.04em;list-style:none;min-height:34px;padding:6px 12px;text-transform:uppercase;transition:background .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.class-card-sub-head::-webkit-details-marker{display:none}.class-card-sub-head:hover{background:var(--panel-tint)}details[open]>.class-card-sub-head{border-bottom:1px solid var(--line)}.class-card-sub-count{background:var(--brand-soft);border-radius:10px;color:var(--brand-strong);font-size:10px;font-weight:800;padding:1px 6px}.class-card-sub-body{background:var(--panel);padding:10px 12px}.class-sub-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;min-height:24px}.class-sub-chip-form{display:contents}.class-sub-chip{align-items:center;background:var(--brand-soft);border:none;border-radius:4px;color:var(--brand-strong);cursor:pointer;display:inline-flex;font-size:11px;font-weight:800;gap:4px;padding:3px 7px;transition:background .12s,color .12s}.class-sub-chip:hover{background:var(--danger-soft);color:var(--danger)}.class-sub-add-row{align-items:center;border-top:1px dashed var(--line);display:flex;gap:6px;padding-top:8px}.class-sub-select{flex:1 1;min-width:0}.class-sub-sessions{border-collapse:collapse;font-size:12px;margin-bottom:8px;width:100%}.class-sub-day-row td{background:var(--sidebar-soft);color:#e8f3ef;font-size:10px;font-weight:900;letter-spacing:.06em;padding:3px 8px;text-transform:uppercase}.class-sub-session-row td{border-top:1px solid var(--line);padding:4px 6px;vertical-align:middle}.class-sub-period{color:var(--brand-strong);font-size:11px;font-weight:900;min-width:26px;white-space:nowrap}.class-sub-session-actions{text-align:right;width:32px}.class-sub-add-panel{border-top:1px dashed var(--line);margin-top:4px}.class-sub-add-trigger{align-items:center;color:var(--brand);cursor:pointer;display:flex;font-size:11px;font-weight:700;gap:4px;list-style:none;padding:6px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.class-sub-add-trigger::-webkit-details-marker{display:none}.class-sub-add-trigger:hover{color:var(--brand-strong)}.class-sub-session-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:6px;padding-bottom:4px;padding-top:6px}.class-sub-session-form label{display:flex;flex-direction:column;flex:1 1 80px;gap:3px;max-width:160px}.class-sub-session-form label>span{color:var(--muted-strong);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.data-muted-note{color:var(--muted);font-size:12px;font-style:italic}.student-list{list-style:none;margin:0;padding:0}.student-item{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:8px;padding:0 4px 0 12px}.student-item:last-child{border-bottom:none}.student-check{flex-shrink:0;height:16px;margin-top:14px;width:16px}.student-details{flex:1 1;min-width:0}.student-summary{align-items:center;cursor:pointer;display:flex;gap:10px;list-style:none;min-height:46px;padding:6px 12px 6px 0;transition:background .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.student-summary::-webkit-details-marker{display:none}.student-summary:hover{background:var(--panel-soft)}.student-avatar{align-items:center;background:var(--brand-soft);border-radius:50%;color:var(--brand-strong);display:inline-flex;flex-shrink:0;font-size:11px;font-weight:900;height:32px;justify-content:center;width:32px}.student-name{flex:1 1;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}details[open] .student-chevron{transform:rotate(180deg)}.student-edit-panel{background:var(--panel-soft);border-top:1px solid var(--line);padding:12px 20px}.student-week-open{margin-bottom:10px}.student-week-modal-backdrop{z-index:70}.student-week-modal{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:grid;grid-gap:14px;gap:14px;max-height:min(760px,calc(100vh - 32px));max-width:920px;overflow:auto;padding:18px;width:calc(100% - 32px)}.student-week-class-head,.student-week-lso-list,.student-week-modal-head,.student-week-session,.student-week-toolbar{align-items:center;display:flex}.student-week-modal-head{justify-content:space-between}.student-week-modal-head h2{margin:2px 0 0}.student-week-toolbar{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-sm);gap:12px;padding:10px}.student-week-toolbar>label,.student-week-version{display:grid;grid-gap:3px;gap:3px}.student-week-toolbar>label>span:first-child,.student-week-version span{color:var(--muted-strong);font-size:10px;font-weight:800;text-transform:uppercase}.student-week-date-field{align-items:center;display:flex;gap:6px}.student-week-date-field input{min-width:170px}.student-week-version{flex:1 1}.student-week-message{background:var(--ok-soft);border:1px solid var(--ok);border-radius:var(--radius-sm);color:var(--ok);font-weight:750;padding:8px 10px}.student-week-loading{align-items:center;color:var(--muted);display:flex;gap:8px;justify-content:center;padding:30px}.student-week-class-list{display:grid;grid-gap:8px;gap:8px}.student-week-class{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.student-week-class-head{background:var(--panel-soft);gap:10px;padding:8px 10px}.student-week-class-head span{color:var(--muted);font-size:12px}.student-week-session-list{display:grid}.student-week-session{border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:80px minmax(80px,1fr) minmax(140px,2fr);min-height:38px;padding:6px 10px}.student-week-lso-list{flex-wrap:wrap;gap:5px}.student-week-lso{background:var(--staff-soft,var(--brand-soft));border:1px solid var(--staff-color,var(--brand));border-radius:999px;color:#07110d;display:inline-flex;font-size:11px;font-weight:850;gap:3px;padding:2px 6px}.student-week-class-options,.student-week-edit{display:grid;grid-gap:10px;gap:10px}.student-week-class-options{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.student-week-class-options fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;grid-gap:5px;gap:5px;margin:0;padding:8px}.student-week-class-options legend{color:var(--brand-strong);font-size:11px;font-weight:900;padding:0 5px}.student-week-save{justify-self:end}.action-feedback-toast{align-items:center;background:#fff4d6;border:1px solid #d99d16;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);color:#5b3a00;display:flex;gap:9px;left:50%;max-width:min(460px,calc(100vw - 24px));padding:11px 12px;position:fixed;top:78px;transform:translateX(-50%);width:max-content;z-index:80}.action-feedback-toast span{font-weight:750}.action-feedback-toast button{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;margin-left:auto;padding:3px}.student-edit-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px}.student-edit-form label{display:flex;flex-direction:column;flex:1 1 140px;gap:4px;max-width:260px}.student-edit-form label>span{color:var(--muted-strong);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.icon-btn{align-items:center;display:inline-flex;justify-content:center;min-height:30px;min-width:30px;padding:0!important}@media (max-width:900px){.data-stats-strip{display:grid;grid-template-columns:repeat(2,1fr)}.data-stats-strip>div{border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.data-stats-strip>div:nth-child(2n){border-right:none}.data-stats-strip>div:nth-last-child(-n+2){border-bottom:none}.class-card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (max-width:640px){.data-header{flex-direction:column}.data-version-form{width:100%}.data-version-form select{flex:1 1;min-width:0}.data-section-head{flex-direction:column;align-items:flex-start;gap:10px}.class-card-grid{grid-template-columns:1fr}.class-card-wrapper:has(.class-card[open]){grid-column:1/-1}.class-year-body{padding:8px 12px 12px}.add-panel-form{flex-direction:column}.add-panel-form label{max-width:none;width:100%}.class-sub-session-form{flex-direction:column}.class-sub-session-form label{max-width:none;width:100%}.student-summary{padding:6px 8px 6px 0}.student-edit-panel{padding:12px}.student-week-toolbar{align-items:stretch;flex-direction:column}.student-week-session{grid-template-columns:70px 1fr}.student-week-lso-list{grid-column:1/-1}}