/* Shared typography, spacing, surfaces and brand tokens from the school director cabinet. */
:root{--radius:16px;--canvas:#f4f6fa;--surface:#fff;--surface2:#f9fafc;--ink:#182338;--ink2:#334155;--muted:#65748b;--border:#e1e7ef;--accent:#365bd6;--soft:#edf1ff}
body{font-family:"Segoe UI","PT Sans",system-ui,sans-serif;font-size:14px}a{color:inherit}button,a,input,select{touch-action:manipulation}.app{grid-template-columns:248px minmax(0,1fr);height:100dvh}.sidebar{background:var(--surface);border-right:1px solid var(--border);color:var(--ink);padding:28px 16px 20px}.brand{text-decoration:none;padding:0 6px 28px;gap:11px}.brand-icon{width:42px;height:42px;border-radius:13px;background:#365bd6;color:white}.brand-name{font-size:15px;font-weight:700;letter-spacing:-.35px;line-height:1.25;color:var(--ink)}.brand-name small{font-size:8px;letter-spacing:.045em;display:block;color:var(--muted);margin-top:7px}.workspace-label{color:var(--muted);padding:17px 13px 9px;font-size:9px;letter-spacing:.09em;font-weight:650}.nav-item{font-size:13px;color:var(--ink2);min-height:44px;border-radius:10px;margin:2px 0;padding:10px 13px;gap:11px}.nav-item:hover{color:var(--accent);background:var(--surface2)}.nav-item.active{background:var(--soft);color:#2d4db8;font-weight:650}.nav-count{color:var(--muted);font-size:10px}.sidebar-bottom{padding:14px 5px 0}.sidebar-school{position:relative;margin-top:20px;padding:18px 0 0 17px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);line-height:1.7}.sidebar-school .status-dot{position:absolute;left:0;top:25px;width:6px;height:6px;background:#365bd6}.school-cabinet-link{display:flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-size:12px;padding:9px 6px}.school-cabinet-link:hover{color:var(--accent)}.topbar{height:84px;padding:16px 32px;background:var(--surface);border-bottom:1px solid var(--border)}.web-page-label{display:flex;align-items:center;gap:12px;min-width:0}.web-page-label>div{display:flex;flex-direction:column;gap:3px}.web-page-label small{font-size:11px;color:var(--muted)}.web-page-label b{font-size:14px;font-weight:650}.topbar-actions{gap:16px}.web-user{display:flex;align-items:center;gap:10px}.web-user>span:last-child{display:flex;flex-direction:column;max-width:190px}.web-user strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.web-user small{font-size:10px;color:var(--muted)}.profile-avatar{background:var(--soft);color:var(--accent);width:34px;height:34px;border-radius:50%;font-size:11px}.content{padding:30px 32px 24px;max-width:1800px;margin:auto}.page-heading{margin-bottom:25px;gap:20px}.page-heading h1{font-size:30px;letter-spacing:-.035em;line-height:1.2}.eyebrow{font-size:10px;letter-spacing:.08em}.subtitle{font-size:13px;margin-top:7px}.button{min-height:39px;font-size:12px;border-radius:10px;padding:9px 13px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600}.button.small{min-height:33px;font-size:11px;padding:7px 11px}.heading-actions{align-items:center;flex-wrap:wrap}.panel,.kpi{border-radius:16px;box-shadow:0 3px 12px #18233804}.kpi{padding:21px}.kpi-label{font-size:12px}.kpi-value{font-size:34px;letter-spacing:-.035em}.kpi-sub{font-size:11px}.panel-header{padding:20px 22px}.panel-header h2{font-size:16px}.panel-header .subtitle{font-size:12px}.data-table{font-size:12px}.data-table th{font-size:10px;padding-block:13px}.data-table td{padding-block:13px}.tab{font-size:12px;padding:8px 13px}.filter-bar{min-height:58px;flex-wrap:wrap;gap:10px;padding:11px 15px}.filter-group{font-size:12px}.filter-bar input,.filter-bar select{font-size:12px}.filter-period-note{font-size:10px}.search input{font-size:12px;width:160px}.footer-note{font-size:10px;margin-top:24px}.settings-section{padding:24px}.settings-section h3{font-size:17px}.settings-section p{font-size:13px}.settings-row label{font-size:13px}.web-about{margin-top:20px}.view-note{font-size:12px;padding:15px 17px}.dialog{padding:30px;width:680px}.dialog h2{font-size:25px;margin-top:15px}.dialog-intro{font-size:13px}.dialog .icon-button{min-width:32px;min-height:32px}.web-update-step{display:flex;gap:17px;padding:22px 0;border-top:1px solid var(--border)}.web-update-step>b{color:var(--accent);font-size:16px;background:var(--soft);width:38px;height:38px;flex-shrink:0;border-radius:11px;display:grid;place-items:center}.web-update-step h3{font-size:16px;margin:0 0 6px}.web-update-step p{font-size:13px;color:var(--muted);line-height:1.7}.web-muted{font-size:12px;line-height:1.7;color:var(--muted);margin:14px 0}.snapshot-banner{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 16px;border:1px solid #d7e0fa;background:var(--soft);border-radius:10px;font-size:12px;margin-bottom:20px}.history-trend,.compare-panel,.manage-section{margin-bottom:22px}.history-bars{display:flex;align-items:flex-end;gap:24px;padding:20px 28px 24px;overflow-x:auto;min-height:220px}.history-bars button{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:72px;color:var(--ink);font-size:14px}.history-bars button:hover{color:var(--accent)}.history-bar-track{height:125px;width:40px;background:var(--surface2);border-radius:7px;display:flex;align-items:flex-end;overflow:hidden}.history-bar-track i{display:block;width:100%;background:#365bd6;border-radius:6px}.history-bars small{white-space:nowrap;font-size:11px;color:var(--muted)}.history-trend>.web-muted{padding:0 24px 20px;margin:0}.history-table .tag{margin-left:8px}.history-table td{white-space:nowrap}#compare-form{display:flex;gap:15px;align-items:flex-end;padding:0 22px 24px;flex-wrap:wrap}#compare-form>span{align-self:center;margin-top:20px}#compare-form label,.web-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:var(--ink2)}#compare-form select,.web-form select,.web-form input{padding:10px 12px;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:9px;font-size:13px;min-width:190px;max-width:100%}#compare-result>.web-muted{padding:0 22px 15px}.web-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0 22px 24px}.web-form [hidden]{display:none}.web-form select[multiple]{min-height:120px}.web-form select[multiple] option{padding:6px 8px}.web-form-submit{align-self:end}.key-form{display:flex;align-items:flex-end}.key-form label{flex:1}.new-key{margin:0 22px 24px;padding:18px;background:var(--soft);border:1px solid #d7e0fa;border-radius:12px}.new-key p{font-size:12px;color:var(--muted);line-height:1.7}.new-key input{font-size:12px}.web-loading{padding:60px;text-align:center;color:var(--muted)}.report-frame{position:fixed;left:-20000px;top:0;width:1080px;height:2200px;border:0;pointer-events:none}.busy-line{left:248px}#toast-root{left:calc(50% + 124px)}.toast{font-size:12px}.mobile-toggle{display:none}.acc-summary,.risk-summary{gap:15px}.audit-intro p,.audit-method,.audit-bottom-note{font-size:12px}.audit-tools .search input{width:210px}.audit-issue h3{font-size:14px}.audit-teacher strong{font-size:12px}.audit-teacher small{font-size:10px}.audit-details .audit-detail-heading h2{font-size:20px}.empty-state p{font-size:13px}.empty-state h3{font-size:19px}.loading-screen p{font-size:13px}.login-layout{display:grid;grid-template-columns:minmax(380px,1fr) minmax(400px,1fr);min-height:100dvh}.login-story{padding:46px clamp(30px,5vw,90px);background:#182338;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:65px;position:relative;overflow:hidden}.login-story:after{content:'';width:420px;height:420px;border:1px solid #ffffff0a;border-radius:50%;position:absolute;right:-200px;bottom:40px;box-shadow:0 0 0 80px #ffffff03,0 0 0 160px #ffffff02;pointer-events:none}.school-brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:12px;color:#d7e0fa;line-height:1.4;position:relative;z-index:1}.school-brand b{color:white;font-size:15px}.school-mark{width:43px;height:43px;background:#365bd6;color:white;border-radius:12px;display:grid;place-items:center;font-size:17px;font-weight:750}.login-eyebrow{color:#9cabcb;letter-spacing:.13em;font-size:10px;font-weight:600;margin:0 0 21px}.login-story h1{font-size:clamp(40px,4.5vw,70px);font-weight:650;letter-spacing:-.045em;line-height:1.1;margin:0 0 24px}.login-description{font-size:15px;line-height:1.85;color:#b9c5da;max-width:420px}.login-features{margin-top:38px;display:flex;flex-direction:column;gap:18px}.login-features span{display:flex;gap:17px;color:#7f96cc;font-size:11px;align-items:center}.login-features b{font-size:13px;font-weight:500;color:#e3eaff}.login-footer{color:#8697b5;font-size:11px}.login-area{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:42px;background:#f4f6fa}.login-card{width:100%;max-width:398px}.login-pill{display:inline-flex;padding:6px 10px;border-radius:7px;background:#e6ecff;color:#2d4db8;font-size:11px;font-weight:600;margin-bottom:20px}.login-card h2{font-size:29px;letter-spacing:-.035em;color:#182338;margin:0 0 10px}.login-card>p{font-size:13px;line-height:1.7;color:#65748b;margin:0 0 30px}.login-card>label{display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:9px;margin-bottom:19px;color:#334155}.login-card input{border:1px solid #d6deea;background:white;color:#182338;border-radius:10px;padding:13px 14px;min-height:46px;outline:none;font-size:14px}.login-card input:focus{border-color:#365bd6;box-shadow:0 0 0 3px #365bd614}.login-card .button{width:100%;min-height:46px;justify-content:space-between;font-size:13px}.login-error{font-size:12px;line-height:1.6;color:#b91c1c;margin:0 0 14px}.login-error:empty{display:none}.login-help{font-size:11px;color:#65748b;line-height:1.8;margin-top:19px;padding-top:19px;border-top:1px solid #e1e7ef}.login-back{display:inline-block;font-size:12px;color:#526176;text-decoration:none;margin-top:25px}.login-back:hover{color:#365bd6}.login-version{font-size:10px;color:#8a96aa;position:absolute;bottom:20px}.skip-link{position:fixed;top:-100px;left:20px;z-index:1000;background:white;color:#182338;padding:12px}.skip-link:focus{top:12px}
html[data-theme=dark] .sidebar{background:var(--surface)}html[data-theme=dark] .brand-name{color:var(--ink)}html[data-theme=dark] .nav-item{color:var(--ink2)}html[data-theme=dark] .nav-item.active{background:var(--soft);color:var(--accent)}html[data-theme=dark] .topbar{background:var(--surface)}html[data-theme=dark] .profile-avatar{background:var(--soft);color:var(--accent)}html[data-theme=dark] .history-bar-track i{background:#88a3ff}html[data-theme=dark] .snapshot-banner,html[data-theme=dark] .new-key{border-color:var(--border)}
@media(min-width:1600px){.content{padding:36px 44px}.topbar{padding-inline:44px}.kpi{padding:25px}}
@media(max-width:1250px){.web-user>span:last-child{display:none}.topbar-actions{gap:12px}.heading-actions{gap:7px}.content{padding:25px}.page-heading h1{font-size:27px}.sidebar{padding-inline:12px}.app{grid-template-columns:225px minmax(0,1fr)}.busy-line{left:225px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}#toast-root{left:calc(50% + 112px)}}
@media(max-width:1050px){.topbar .search{display:none}.page-heading{align-items:flex-start;flex-direction:column}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding-inline:24px}.filter-period-note{display:none}.audit-summary{flex-wrap:wrap}.two-column{grid-template-columns:1fr}.web-form{grid-template-columns:1fr}.key-form{display:flex}.login-story{padding:38px}.login-story h1{font-size:45px}.login-area{padding:35px}.login-layout{grid-template-columns:1fr 1fr}.nav-item{font-size:12px}.audit-workspace{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:800px){.app{display:block;min-width:0}.sidebar{position:fixed;left:-270px;top:72px;bottom:0;width:248px;z-index:95;transition:left .18s;box-shadow:10px 0 30px #18233812}.menu-open .sidebar{left:0}.workspace{height:100dvh}.topbar{height:72px;padding:12px 18px;gap:12px}.web-page-label b{font-size:13px}.web-page-label small{font-size:10px}.mobile-toggle{display:flex;min-width:30px;min-height:32px;font-size:19px;color:var(--ink)}.web-user{display:none}.topbar-actions{gap:8px}.content{padding:22px 18px}.page-heading h1{font-size:28px}.heading-actions{width:100%;gap:8px}.heading-actions .button{flex:1}.kpi-grid{gap:12px}.kpi{padding:17px}.kpi-value{font-size:30px}.dashboard-grid{gap:16px}.filter-bar{gap:8px;padding:11px}.filter-group{flex:1;min-width:0}.filter-group:first-child{flex-basis:100%;justify-content:center}.filter-bar input[type=date]{width:120px}.filter-bar select{max-width:100%;width:100%;min-width:0}.filter-bar>.button{flex:1}.content-scroll{height:calc(100dvh - 72px)}.busy-line{left:0}#toast-root{left:50%;width:calc(100% - 30px)}.toast{width:100%;max-width:none;align-items:flex-start;padding:14px;font-size:12px}.footer-note{flex-wrap:wrap;gap:8px}.audit-workspace{display:flex;flex-direction:column}.audit-teachers{max-height:240px;overflow-y:auto;width:100%}.audit-details{width:100%}.audit-intro{flex-direction:column;align-items:stretch;gap:15px}.audit-official{text-align:left;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.audit-official strong{font-size:28px}.audit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.audit-summary>div{padding:14px;min-width:0}.audit-summary .audit-export-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.audit-summary .audit-export-actions button{flex:1}.audit-tools{flex-direction:column;align-items:stretch}.audit-tools .search{margin-bottom:14px}.audit-tools .search input{width:100%}.audit-detail-heading{gap:12px;flex-direction:column}.audit-detail-heading .button{width:100%}.audit-issue-top{gap:7px}.audit-timeline{grid-template-columns:1fr}.audit-method{font-size:12px}.tabs{gap:7px}.tab{font-size:11px;flex:1;justify-content:center;white-space:nowrap}.risk-toolbar,.acc-toolbar{flex-wrap:wrap;gap:12px}.acc-teachers-grid{grid-template-columns:1fr}.snapshot-banner{flex-direction:column;align-items:flex-start}.web-form,.key-form{display:flex;flex-direction:column;align-items:stretch}.new-key .code-row{flex-direction:column}.dialog{padding:24px 20px;border-radius:16px}.overlay{padding:14px}.web-update-step{gap:12px}.web-update-step>b{width:30px;height:30px;font-size:13px}.drawer{width:100%;max-width:470px;padding:24px}.login-layout{display:flex;flex-direction:column;min-height:100dvh}.login-story{padding:24px;gap:25px;min-height:260px}.login-story h1{font-size:37px;margin-bottom:13px}.login-description{font-size:13px;line-height:1.65;margin-bottom:0;max-width:100%}.login-eyebrow{font-size:9px;margin-bottom:12px}.login-features,.login-footer{display:none}.school-brand{font-size:11px}.school-brand b{font-size:13px}.school-mark{width:36px;height:36px;font-size:14px}.login-area{padding:32px 24px 50px;flex:1}.login-card{max-width:430px}.login-card h2{font-size:27px}.login-pill{margin-bottom:16px}.login-card>p{margin-bottom:22px}.login-version{position:static;margin-top:30px}.logout-button{padding-inline:9px}.compare-panel #compare-form{padding:0 17px 20px}.compare-panel select{min-width:0;width:100%}.compare-panel label{width:100%}.compare-panel #compare-form>span{display:none}.panel-header{padding:18px;gap:12px;flex-wrap:wrap}.panel-header h2{font-size:16px}.history-bars{gap:18px;padding-inline:18px}.history-table .tag{display:block;width:max-content;margin:5px 0 0}.web-form{padding-inline:18px}.new-key{margin-inline:18px}.web-form input,.web-form select{min-width:0;width:100%}.web-about{margin-top:16px}.line-chart{height:190px}.donut{margin:auto}.distribution{grid-template-columns:130px minmax(0,1fr)}}
@media(max-width:390px){.content{padding-inline:13px}.topbar{padding-inline:13px}.kpi{padding:14px}.kpi-value{font-size:27px}.kpi-label{font-size:11px}.heading-actions .button{font-size:11px}.web-page-label b{font-size:12px}.topbar .icon-button[data-action=theme]{display:none}.distribution{grid-template-columns:110px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
@media(max-width:800px){.sidebar{visibility:hidden}.menu-open .sidebar{visibility:visible}}
