/* SchoolFlow v2.5.0 — authoritative WaveLedger shell and typography */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-latin-variable.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/inter-latin-variable-italic.woff2') format('woff2')}
html{font-size:16px}
html,body,button,input,select,textarea{font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif!important}
body{font-size:.875rem;line-height:1.55;background:var(--bg);color:var(--text)}
.app-shell{display:block!important;min-height:100vh!important;width:100%!important;background:var(--bg)!important}
.sidebar{display:flex!important;position:fixed!important;left:0!important;top:var(--topbar-height)!important;bottom:0!important;width:var(--sidebar-width)!important;height:auto!important;padding:0!important;transform:none!important;background:var(--sidebar-bg)!important;z-index:40!important;overflow:hidden!important}
.sidebar .brand{display:flex!important;position:fixed!important;left:0!important;top:0!important;width:var(--sidebar-width)!important;height:var(--topbar-height)!important;padding:0 1rem!important;background:var(--sidebar-bg)!important;z-index:45!important}
.sidebar .nav-list{width:100%!important;min-width:0!important;overflow-x:hidden!important;overflow-y:auto!important}
.sidebar .nav-list a{width:100%!important;min-width:0!important;white-space:normal!important}
.main-column{display:flex!important;position:relative!important;margin-left:var(--sidebar-width)!important;width:calc(100% - var(--sidebar-width))!important;min-width:0!important;min-height:100vh!important;background:var(--bg)!important}
.topbar{display:flex!important;position:fixed!important;top:0!important;left:var(--sidebar-width)!important;right:0!important;width:auto!important;height:var(--topbar-height)!important;min-height:var(--topbar-height)!important;margin:0!important;padding:0 1.25rem!important;background:var(--sidebar-bg)!important;z-index:35!important}
.content{display:block!important;width:100%!important;max-width:1600px!important;min-width:0!important;margin:0!important;padding:calc(var(--topbar-height) + 1.6rem) 1.75rem 3rem!important}
.welcome-strip,.stat-grid,.dashboard-grid,.academic-layout,.profile-grid{min-width:0;width:100%}
.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
[data-theme="dark"] .app-shell,[data-theme="dark"] .main-column,[data-theme="dark"] .content{background:var(--bg)!important;color:var(--text)}
@media(max-width:1100px) and (min-width:801px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
  .sidebar{left:0!important;top:var(--topbar-height)!important;width:var(--sidebar-width)!important;transform:translateX(-100%)!important;transition:transform .25s ease!important}
  .sidebar.open{left:0!important;transform:translateX(0)!important;box-shadow:20px 0 50px rgba(0,0,0,.25)!important}
  .main-column{margin-left:0!important;width:100%!important}
  .topbar{left:0!important;width:auto!important;padding:0 14px!important}
  .content{padding:calc(var(--topbar-height) + 1rem) 16px 2rem!important}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:440px){.stat-grid{grid-template-columns:1fr}}
@media print{.app-shell,.main-column{display:block!important;margin:0!important;width:100%!important}.content{padding:0!important}}

/* SchoolFlow 2.0 — WaveLedger-aligned product modules and accessibility */
:root{--brand:var(--theme-color,#40516f);--brand-dark:color-mix(in srgb,var(--theme-color,#40516f) 82%,black);--brand-light:color-mix(in srgb,var(--theme-color,#40516f) 10%,white);--brand-muted:color-mix(in srgb,var(--theme-color,#40516f) 16%,transparent);--sidebar-active:color-mix(in srgb,var(--theme-color,#40516f) 20%,transparent)}
.skip-link{position:fixed;z-index:9999;left:16px;top:10px;transform:translateY(-160%);background:#fff;color:#172033;border:2px solid var(--theme-color);border-radius:8px;padding:10px 14px;font-weight:800;box-shadow:var(--shadow)}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--theme-color) 55%,white);outline-offset:3px}
:where(button,.btn,input,select){min-height:38px}
[hidden]{display:none!important}
.topbar-popover button{display:block;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:10px 13px;font:inherit;cursor:pointer}
.topbar-popover button:hover{background:var(--surface-2)}
.user-popover :is(a,button){display:block;width:100%;min-height:0;padding:10px!important;border:0;border-radius:8px;text-align:left;color:#4a5264!important;font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif!important;font-size:11px!important;font-style:normal!important;font-weight:400!important;line-height:1.45!important;letter-spacing:0!important;text-transform:none!important}
.user-popover :is(a,button):hover{background:#faf5ff!important;color:var(--primary)!important}
.user-popover a.danger{color:#dc4c64!important}

.charge-scope{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:0 0 18px}
.charge-scope legend{font-size:.72rem;font-weight:800;color:var(--text);margin-bottom:8px}
.charge-scope label{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer}
.charge-scope label:has(input:checked){border-color:var(--theme-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-color) 13%,transparent);background:var(--brand-light)}
.charge-scope input{min-height:auto;margin-top:3px;accent-color:var(--theme-color)}
.charge-scope strong,.charge-scope small{display:block}.charge-scope small{color:var(--muted);margin-top:3px;font-size:.69rem}
.check-card{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}
.check-card input{min-height:auto;margin-top:3px;accent-color:var(--theme-color)}.check-card strong,.check-card small{display:block}.check-card small{color:var(--muted);margin-top:3px}
.setup-details{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.setup-details summary{cursor:pointer;font-weight:800}.setup-details li{margin:7px 0;color:var(--muted)}

.assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}
.assignment-card{display:flex;flex-direction:column;gap:10px;margin:0}.assignment-card>header{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:.72rem}.assignment-card h2{font-size:1.05rem;margin:0}.assignment-card>p{color:var(--muted);margin:0;flex:1}.assignment-submit{border-top:1px solid var(--border);padding-top:13px;margin-top:4px}.assignment-submit textarea{min-height:86px}.assignment-resource{align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-submission-locked{border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:4px;padding-top:13px}.submission-state{border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.04em;padding:7px 11px;text-transform:uppercase}.submission-state.submitted{background:color-mix(in srgb,var(--success) 12%,var(--surface));border-color:color-mix(in srgb,var(--success) 38%,var(--border));color:var(--success)}
.certificate-sheet{max-width:900px;min-height:620px;margin:0 auto;background:var(--surface);border:10px double var(--theme-color);padding:70px;text-align:center;box-shadow:var(--shadow)}
.certificate-sheet h1{font-size:2.2rem;margin:20px 0 45px}.certificate-sheet h2{font-size:2rem;color:var(--theme-color);margin:20px 0}.certificate-sheet p{font-size:1rem;line-height:1.8}.certificate-sheet footer{display:flex;justify-content:space-between;margin-top:100px;border-top:1px solid var(--border);padding-top:16px}.transcript-sheet h2{margin-top:28px}.link-danger{border:0;background:none;color:var(--danger);font-weight:700;cursor:pointer}.admission-row{min-width:360px}

.native-classroom .video-tile.video-off video{opacity:0}.native-classroom .video-tile.video-off:before{content:'Camera off';position:absolute;inset:0;display:grid;place-items:center;color:#60798e;font-size:.72rem;background:#02060a;z-index:0}.native-classroom .video-tile footer{z-index:2}
.native-classroom .participant-grid.screen-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,190px);grid-template-rows:minmax(0,1fr);gap:10px;overflow:hidden}
.native-classroom .participant-grid.screen-layout>.screen-presenter{grid-column:1;grid-row:1;min-height:0;height:100%;border-color:#4d79c7;background:#000}.native-classroom .participant-grid.screen-layout>.screen-presenter video{object-fit:contain;background:#000}
.native-classroom .participant-filmstrip{grid-column:2;grid-row:1}.native-classroom .participant-filmstrip .video-tile{flex:0 0 108px;min-height:108px}

[data-theme="dark"] .certificate-sheet{background:var(--surface);color:var(--text)}
@media(max-width:700px){.charge-scope{grid-template-columns:1fr}.assignment-grid{grid-template-columns:1fr}.certificate-sheet{padding:28px 18px;min-height:520px}.certificate-sheet footer{display:grid;gap:18px;margin-top:60px}.admission-row{min-width:280px}}
@media(max-width:620px){.native-classroom .participant-grid.screen-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 105px}.native-classroom .participant-filmstrip{grid-column:1;grid-row:2}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.certificate-sheet{box-shadow:none;max-width:none}.skip-link{display:none}}

/* v2.1 contrast safeguards: keep browser controls and floating menus readable in both modes. */
.topbar-popover{color:var(--text,#273142)}
.topbar-popover button{background:transparent!important;color:var(--text,#273142)!important}
.topbar-popover button:hover{background:var(--surface-2,#f3f6f8)!important}
.form-group input,.form-group select,.form-group textarea,.row-edit-form input,.row-edit-form select,.class-edit-form input,.class-edit-form select,.online-actions select,.assessment-picker,.assessment-picker select,.date-picker,.date-picker input,.status-form select,.table-input{background:#fff!important;color:#263244!important;border-color:#c6d2dd!important;opacity:1}
.form-group option,.row-edit-form option,.class-edit-form option,.online-actions option,.assessment-picker option,.status-form option{background:#fff;color:#263244}
.assessment-picker select,.date-picker input{border:0!important;box-shadow:none!important}
.status-form{border-color:#dce4eb!important}.status-form span{color:#526174!important}.status-form select{min-height:36px}
.form-group input[type="file"]{padding:7px!important}.form-group input[type="file"]::file-selector-button{border:0;border-radius:7px;background:var(--theme-color);color:#fff;padding:7px 10px;margin-right:10px;font:700 .72rem/1 'Inter','Segoe UI',system-ui,sans-serif;cursor:pointer}
.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f5f7f9!important;color:#526174!important;-webkit-text-fill-color:#526174;opacity:1}
input[type="date"],input[type="time"],input[type="datetime-local"]{color-scheme:light}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator,input[type="datetime-local"]::-webkit-calendar-picker-indicator{display:block;opacity:1;cursor:pointer}
.badge-locked,.badge-completed,.badge-closed{background:#d9e7f5!important;color:#214b73!important;border:1px solid #b8cfe5}
.lesson-countdown{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 9px;border-radius:999px;background:#fff1d6;color:#80520a;font-size:.7rem;font-weight:800}
.lesson-countdown.finished{background:#e8edf3;color:#4b5f75}
.lesson-toast{position:fixed;right:22px;bottom:22px;z-index:9999;max-width:390px;padding:15px 17px;border:1px solid #e0bd64;border-radius:12px;background:#fff7df;color:#66440d;box-shadow:0 16px 46px rgba(29,37,51,.24);font-weight:750}
.finished-label{display:inline-flex;align-items:center;min-height:38px;padding:0 10px;color:var(--muted);font-weight:800;cursor:default}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.permission-grid .check-card{min-width:0}
.video-tile.play-blocked:after{content:'Click to play';position:absolute;right:10px;top:10px;z-index:4;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:.65rem;font-weight:800}
.classroom-notice{position:fixed;right:22px;bottom:22px;z-index:9998;max-width:360px;padding:13px 15px;border:1px solid #bfd2e5;border-radius:11px;background:#f3f8fd;color:#234c70;box-shadow:0 14px 38px rgba(25,43,62,.2);font:700 12px/1.45 'Inter','Segoe UI',system-ui,sans-serif}

.brand-mark.has-logo,.report-emblem.has-logo,.settings-logo-preview.has-logo,.document-logo.has-logo{overflow:hidden;background:#fff!important;color:transparent!important;border:1px solid #dce5ec}
.brand-mark.has-logo img,.report-emblem.has-logo img,.settings-logo-preview.has-logo img,.document-logo.has-logo img{display:block;width:100%;height:100%;object-fit:contain}
.sidebar .brand-mark.has-logo{padding:3px}.login-brand .brand-mark.has-logo{padding:5px}
.settings-logo-preview{display:grid;place-items:center;width:76px;height:76px;flex:0 0 76px;border-radius:15px;background:var(--theme-color);color:#fff;font-size:1.15rem;font-weight:900}
.logo-upload-card{display:flex;align-items:center;gap:15px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.logo-upload-card>div{flex:1}.logo-upload-card strong,.logo-upload-card p,.logo-upload-card small{display:block}.logo-upload-card p{margin:3px 0;color:var(--muted)}.logo-upload-card small{color:var(--muted);font-size:.69rem}
.file-button{position:relative;overflow:hidden;white-space:nowrap}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}
.document-brand-header{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:25px}.document-brand-header>div{text-align:left}.document-brand-header strong,.document-brand-header span{display:block}.document-brand-header span{color:var(--muted);font-size:.72rem}.document-logo{display:grid;place-items:center;width:74px;height:74px;border-radius:14px;background:var(--theme-color);color:#fff;font-weight:900}

.level-performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:11px}
.level-performance-card{padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.level-performance-card>span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;font-weight:800}.level-performance-card>strong{display:block;margin:5px 0;font-size:1.6rem}.level-performance-card small{color:var(--muted)}
.overall-score small{display:block;margin-top:3px;color:rgba(255,255,255,.78);font-size:.65rem;font-weight:650}

.document-filter{display:grid;grid-template-columns:minmax(240px,2fr) minmax(220px,1fr) auto;align-items:end;gap:12px;margin-bottom:18px}
.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.document-card{display:flex;flex-direction:column;min-width:0;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-soft)}
.document-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.document-extension{display:grid;place-items:center;min-width:42px;height:34px;padding:0 7px;border-radius:8px;background:var(--brand-light);color:var(--theme-color);font-size:.68rem;font-weight:900}
.visibility-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eaf2f8;color:#385b78;font-size:.62rem;font-weight:800}.visibility-staff{background:#ede9fe;color:#5b4a93}.visibility-private{background:#f2f3f5;color:#5b6674}
.document-card h2{margin:14px 0 5px;font-size:1rem}.document-card p{min-height:42px;margin:0;color:var(--muted);font-size:.76rem}.document-card dl{margin:14px 0;border-top:1px solid var(--border)}.document-card dl>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--border-light)}.document-card dt{color:var(--muted);font-size:.66rem;text-transform:uppercase}.document-card dd{margin:0;overflow-wrap:anywhere;font-size:.72rem}.document-card>footer{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:12px}.document-card>footer form{margin:0}
.document-empty{grid-column:1/-1}
.native-classroom .prejoin-controls .form-group select{background:#142637!important;color:#fff!important;border-color:#2b4255!important}.native-classroom .prejoin-controls .form-group option{background:#142637!important;color:#fff!important}

[data-theme="dark"] .topbar-popover button{color:#dce5ee!important}
[data-theme="dark"] .topbar-popover button:hover{background:#1b2c40!important}
[data-theme="dark"] .user-popover :is(a,button){color:#dce5ee!important}
[data-theme="dark"] .user-popover :is(a,button):hover{background:#1b2c40!important;color:#fff!important}
[data-theme="dark"] .user-popover a.danger{color:#ff8da0!important}
[data-theme="dark"] .form-group input,[data-theme="dark"] .form-group select,[data-theme="dark"] .form-group textarea,[data-theme="dark"] .row-edit-form input,[data-theme="dark"] .row-edit-form select,[data-theme="dark"] .class-edit-form input,[data-theme="dark"] .class-edit-form select,[data-theme="dark"] .online-actions select,[data-theme="dark"] .assessment-picker,[data-theme="dark"] .assessment-picker select,[data-theme="dark"] .date-picker,[data-theme="dark"] .date-picker input,[data-theme="dark"] .status-form select,[data-theme="dark"] .table-input{background:#0f1b29!important;color:#e7edf5!important;border-color:#405269!important}
[data-theme="dark"] .form-group option,[data-theme="dark"] .row-edit-form option,[data-theme="dark"] .class-edit-form option,[data-theme="dark"] .online-actions option,[data-theme="dark"] .assessment-picker option,[data-theme="dark"] .status-form option{background:#0f1b29;color:#e7edf5}
[data-theme="dark"] .status-form{border-color:#2d4054!important}[data-theme="dark"] .status-form span{color:#b4c2cf!important}
[data-theme="dark"] .logo-upload-card,[data-theme="dark"] .level-performance-card,[data-theme="dark"] .document-card{background:#142131;color:var(--text);border-color:#2a3a4c}
[data-theme="dark"] .visibility-pill{background:#1c3b50;color:#b9dcef}[data-theme="dark"] .visibility-staff{background:#332d59;color:#d6ccff}[data-theme="dark"] .visibility-private{background:#243142;color:#c2ccd8}
[data-theme="dark"] .form-group input:disabled,[data-theme="dark"] .form-group select:disabled,[data-theme="dark"] .form-group textarea:disabled{background:#172536!important;color:#aebdcb!important;-webkit-text-fill-color:#aebdcb}
[data-theme="dark"] input[type="date"],[data-theme="dark"] input[type="time"],[data-theme="dark"] input[type="datetime-local"]{color-scheme:dark}
[data-theme="dark"] .badge-locked,[data-theme="dark"] .badge-completed,[data-theme="dark"] .badge-closed{background:#1d3a55!important;color:#c8e3fb!important;border-color:#315b7d}
[data-theme="dark"] .lesson-countdown{background:#3a3018;color:#f2d487}
[data-theme="dark"] .lesson-countdown.finished{background:#233244;color:#b8c5d2}
[data-theme="dark"] .lesson-toast{background:#332b19;color:#ead7a3;border-color:#5d4b22}
[data-theme="dark"] .classroom-notice{background:#182b3d;color:#cce5fa;border-color:#315673}
@media(max-width:980px){.document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.permission-grid,.document-grid{grid-template-columns:1fr}.document-filter{grid-template-columns:1fr}.logo-upload-card{align-items:flex-start;flex-wrap:wrap}.logo-upload-card>div{min-width:calc(100% - 96px)}}
@media print{.certificate-sheet{background:#fff!important;color:#17283b!important}.certificate-sheet h1,.certificate-sheet h2,.certificate-sheet strong{color:#17283b!important}.document-brand-header{break-inside:avoid}.document-logo{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* SchoolFlow 2.3 learning, communication, finance, resources, planning and safeguarding */
.filter-summary{display:flex;flex-direction:column;justify-content:center;padding:0 12px}.filter-summary span{color:var(--muted);font-size:.7rem}.curriculum-workspace{align-items:start}.coverage-list,.weight-list,.requirement-list,.aged-debt-list{display:grid;gap:8px;margin-top:16px}.coverage-list article,.weight-list>div,.requirement-list>div,.aged-debt-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border-light)}.coverage-list strong,.coverage-list small,.weight-list span,.weight-list small,.requirement-list span,.requirement-list small,.aged-debt-list span,.aged-debt-list small{display:block}.coverage-list small,.weight-list small,.requirement-list small,.aged-debt-list small{color:var(--muted);font-size:.67rem}.competency-timeline{display:grid;gap:10px}.competency-timeline article{display:grid;grid-template-columns:95px minmax(0,1fr);gap:13px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.competency-timeline p,.competency-timeline blockquote{margin:3px 0}.competency-timeline small{color:var(--muted)}.competency-timeline blockquote{padding:8px 11px;border-left:3px solid var(--theme-color);background:var(--surface);font-size:.74rem}.competency-rating{align-self:start;padding:6px 8px;border-radius:999px;text-align:center;font-size:.66rem;font-weight:850}.rating-emerging{background:#fff0df;color:#87510c}.rating-developing{background:#f6efcb;color:#6e5a09}.rating-secure{background:#dff3ed;color:#1d6a58}.rating-mastered{background:#dce9fb;color:#27588d}
.communication-layout{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:18px}.conversation-list{padding:0;overflow:hidden}.conversation-list>.panel-header,.conversation-list>.slide-panel{padding:16px}.conversation-list nav{display:grid;max-height:650px;overflow:auto}.conversation-list nav>a{position:relative;display:grid;gap:2px;padding:13px 16px;border-top:1px solid var(--border-light);color:var(--text)}.conversation-list nav>a:hover,.conversation-list nav>a.active{background:var(--brand-light)}.conversation-list nav>a span,.conversation-list nav>a small{color:var(--muted);font-size:.69rem}.conversation-list nav>a b{position:absolute;right:12px;top:12px;display:grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:var(--theme-color);color:#fff;font-size:.62rem}.conversation-view{min-height:520px}.message-placeholder{display:grid;place-items:center;align-content:center;min-height:350px;text-align:center;color:var(--muted)}.message-placeholder>span{font-size:2rem}.message-stream{display:grid;gap:10px;max-height:500px;overflow:auto;padding:4px}.message-stream article{max-width:78%;padding:11px 13px;border:1px solid var(--border);border-radius:4px 14px 14px;background:var(--surface-2)}.message-stream article.mine{justify-self:end;border-color:color-mix(in srgb,var(--theme-color) 28%,var(--border));border-radius:14px 4px 14px 14px;background:var(--brand-light)}.message-stream header{display:flex;justify-content:space-between;gap:15px;font-size:.68rem}.message-stream header span{color:var(--muted)}.message-stream p{margin:5px 0 0}.message-reply{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.consent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.consent-card{padding:16px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}.consent-card>header{display:flex;justify-content:space-between;gap:12px}.consent-card>header strong,.consent-card>header span{display:block}.consent-card>header span,.consent-card>small{color:var(--muted);font-size:.69rem}.consent-card>p{min-height:42px}.consent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0}.consent-stats span{padding:8px;border-radius:8px;background:var(--surface);text-align:center;font-size:.65rem}.consent-stats strong{display:block;font-size:1rem}
.payment-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:18px 0}.payment-plan-card>header{display:flex;justify-content:space-between;gap:12px}.payment-plan-card h2,.payment-plan-card p{margin:2px 0}.payment-plan-card p{color:var(--muted)}.plan-progress{margin:15px 0}.plan-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px}.instalment-list{display:grid;gap:7px;margin:14px 0}.instalment-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border-left:4px solid #aab6c2;border-radius:7px;background:var(--surface-2)}.instalment-list span,.instalment-list small{display:block}.instalment-list small{color:var(--muted)}.instalment-list .instalment-paid{border-color:#2f9e88}.instalment-list .instalment-overdue{border-color:#d45f72}.instalment-list .instalment-part_paid{border-color:#e49a52}.statement-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.statement-summary>div{padding:14px;border:1px solid var(--border);border-radius:10px}.statement-summary span,.statement-summary strong{display:block}.statement-summary span{color:var(--muted);font-size:.68rem}.statement-summary strong{margin-top:5px;font-size:1rem}.void-row{text-decoration:line-through;color:var(--muted)}
.document-overview{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin:0 0 14px}.document-overview>div{padding:13px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.document-overview span,.document-overview strong{display:block}.document-overview span{color:var(--muted);font-size:.66rem;text-transform:uppercase;font-weight:800}.document-overview strong{margin:3px 0}.folder-strip{display:flex;gap:8px;overflow:auto;margin-bottom:14px;padding-bottom:3px}.folder-strip a{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-weight:750}.folder-strip a.active{border-color:var(--theme-color);background:var(--brand-light);color:var(--theme-color)}.folder-strip small{display:grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:var(--surface-2)}.document-pills,.document-targets,.approval-actions{display:flex;flex-wrap:wrap;gap:6px}.document-targets{margin:9px 0}.document-targets span{padding:4px 7px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:.63rem}.approval-pending{background:#fff0cf;color:#7a5409}.approval-rejected{background:#fde6ea;color:#923245}.document-version-form{margin-top:12px;border-top:1px solid var(--border);padding-top:9px}.document-version-form summary{cursor:pointer;color:var(--theme-color);font-size:.7rem;font-weight:800}.document-version-form form{margin-top:10px}
.availability-strip{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.availability-strip span{padding:7px 9px;border-radius:999px;font-size:.66rem;font-weight:750}.availability-strip .available{background:#dff3ed;color:#1d6a58}.availability-strip .blocked{background:#fde6ea;color:#923245}
.safeguarding-layout{display:grid;grid-template-columns:minmax(290px,370px) minmax(0,1fr);gap:16px;align-items:start}.case-list{padding:0;overflow:hidden}.case-list>.panel-header{padding:16px}.case-list>a{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;padding:13px 16px;border-top:1px solid var(--border-light);color:var(--text)}.case-list>a.active,.case-list>a:hover{background:var(--brand-light)}.case-list>a div>*{display:block}.case-list>a span,.case-list>a small{color:var(--muted);font-size:.69rem}.case-list>a>b{position:absolute;right:10px;top:10px;color:#a14623;font-size:.62rem}.risk-dot{width:9px;height:9px;margin-top:5px;border-radius:50%;background:#8090a0}.risk-low{background:#2f9e88!important}.risk-medium{background:#e49a52!important}.risk-high{background:#d46f4f!important}.risk-critical{background:#c83e57!important}.case-workspace{display:grid;gap:15px}.case-summary>header{display:flex;justify-content:space-between;gap:12px}.case-summary>header>div:last-child{display:flex;gap:7px;align-items:center}.risk-pill{padding:6px 9px;border-radius:999px;color:#fff;font-size:.65rem;font-weight:850}.case-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted)}.case-timeline{display:grid}.case-timeline article{display:grid;grid-template-columns:12px minmax(0,1fr);gap:11px;padding:13px 0;border-bottom:1px solid var(--border-light)}.case-timeline article>div>header{display:flex;justify-content:space-between;gap:10px}.case-timeline p{margin:6px 0}.case-timeline small{color:var(--muted)}.acknowledgement-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px;border-radius:8px;background:var(--surface-2);font-size:.68rem}.case-team{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 15px}.case-team>span{padding:7px 9px;border-radius:8px;background:var(--surface-2);font-weight:750}.case-team small{display:block;color:var(--muted)}.evidence-list{display:grid}.evidence-list a{display:grid;padding:9px 0;border-top:1px solid var(--border-light);color:var(--text)}.evidence-list small{color:var(--muted)}
[data-theme="dark"] .competency-timeline article,[data-theme="dark"] .consent-card,[data-theme="dark"] .instalment-list>div,[data-theme="dark"] .document-overview>div,[data-theme="dark"] .folder-strip a{background:#142131;border-color:#2a3a4c}.report-sheet.finance-statement,.report-sheet.safeguarding-pack{background:var(--surface);color:var(--text)}
@media(max-width:1000px){.communication-layout,.safeguarding-layout{grid-template-columns:1fr}.conversation-list nav,.case-list{max-height:420px;overflow:auto}.payment-plan-grid,.consent-grid{grid-template-columns:1fr}.document-overview{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.competency-timeline article{grid-template-columns:1fr}.message-stream article{max-width:92%}.statement-summary,.document-overview{grid-template-columns:1fr}.case-summary>header,.case-meta{align-items:flex-start;flex-direction:column}}
@media print{.finance-statement,.safeguarding-pack{background:#fff!important;color:#17283b!important}.finance-statement .statement-summary>div,.safeguarding-pack .statement-summary>div{border-color:#cfd8e2!important}}
.message-read-state{display:block;margin-top:5px;text-align:right;color:var(--muted);font-size:.61rem}
.continuous-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:15px}.continuous-result-grid article{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.continuous-result-grid span,.continuous-result-grid strong,.continuous-result-grid small{display:block}.continuous-result-grid strong{font-size:1.35rem}.continuous-result-grid small{color:var(--muted)}

/* v2.4 first-party classroom teaching board */
.teaching-board{min-width:0;min-height:0;height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #344b5f;border-radius:14px;background:#edf2f6;color:#253548;box-shadow:0 18px 44px rgba(0,0,0,.22);font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif}
.teaching-board[hidden]{display:none!important}
.board-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 13px;border-bottom:1px solid #d4dee7;background:#fff}
.board-header>div:first-child{min-width:0}.board-header .eyebrow{display:block;color:var(--theme-color);font-size:.56rem;font-weight:850;letter-spacing:.11em}.board-header strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#223247;font-size:.82rem}
.board-header>div:last-child{display:flex;align-items:center;gap:9px}.board-header button{display:grid;place-items:center;width:31px;min-height:31px;padding:0;border:1px solid #cfdae4;border-radius:8px;background:#f4f7f9;color:#405166;font-size:1.15rem;line-height:1;cursor:pointer}
.board-sync{padding:4px 8px;border-radius:999px;background:#e6f3ee;color:#296853;font-size:.61rem;font-weight:800}.board-sync.failed{background:#fde7e9;color:#a43b4d}
.board-toolbar{display:flex;align-items:center;gap:7px;overflow-x:auto;overflow-y:hidden;padding:7px 9px;border-bottom:1px solid #d4dee7;background:#f8fafb;scrollbar-width:thin}
.board-tool-group{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding-right:7px;border-right:1px solid #d8e1e8}.board-tool-group:last-child{padding-right:0;border-right:0}
.board-toolbar button,.board-toolbar select{min-height:31px;border:1px solid #cbd7e1;border-radius:7px;background:#fff;color:#34465a;font:750 .62rem/1 'Inter','Segoe UI',system-ui,-apple-system,sans-serif;white-space:nowrap}
.board-toolbar button{padding:0 8px;cursor:pointer}.board-toolbar button:hover,.board-toolbar button.active{border-color:var(--theme-color);background:color-mix(in srgb,var(--theme-color) 11%,white);color:var(--theme-color)}.board-toolbar button:disabled,.board-toolbar select:disabled,.board-toolbar input:disabled{cursor:not-allowed;opacity:.45}
.board-toolbar select{max-width:105px;padding:0 23px 0 7px}.board-toolbar option{background:#fff;color:#263244}.board-toolbar input[type="color"]{display:block;width:31px;height:31px;min-height:31px;padding:3px;border:1px solid #cbd7e1;border-radius:7px;background:#fff;cursor:pointer}
.board-page-tools span{min-width:70px;text-align:center;color:#526275;font-size:.62rem}.board-permission{display:flex;align-items:center;gap:6px;min-height:31px;padding:0 8px;border:1px solid #cbd7e1;border-radius:7px;background:#fff;color:#405166;font-size:.62rem;font-weight:750;white-space:nowrap}.board-permission input{min-height:auto;accent-color:var(--theme-color)}
.board-canvas-wrap{position:relative;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;padding:10px;background:#d8e0e7}
.board-canvas-wrap canvas{display:block;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:16/9;background:#fff;box-shadow:0 6px 24px rgba(37,53,72,.2);touch-action:none;user-select:none}
.board-canvas-wrap canvas[data-tool="stroke"],.board-canvas-wrap canvas[data-tool="highlighter"],.board-canvas-wrap canvas[data-tool="line"],.board-canvas-wrap canvas[data-tool="rectangle"],.board-canvas-wrap canvas[data-tool="ellipse"],.board-canvas-wrap canvas[data-tool="text"],.board-canvas-wrap canvas[data-tool="note"]{cursor:crosshair}.board-canvas-wrap canvas[data-tool="select"]{cursor:default}.board-canvas-wrap canvas[data-tool="eraser"]{cursor:not-allowed}
.board-empty{position:absolute;left:50%;top:50%;display:grid;gap:4px;max-width:360px;padding:13px 16px;transform:translate(-50%,-50%);border:1px solid #d3dee7;border-radius:11px;background:rgba(255,255,255,.91);box-shadow:0 8px 26px rgba(38,53,70,.12);color:#314256;text-align:center;pointer-events:none}.board-empty strong{font-size:.78rem}.board-empty span{color:#657589;font-size:.65rem}
.board-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;padding:6px 11px;border-top:1px solid #d4dee7;background:#fff;color:#67778a;font-size:.59rem}.board-footer span:first-child{font-weight:750;color:#465a70}
.lite-stage.board-mode,.video-stage.board-mode{display:grid!important;grid-template-columns:minmax(0,1fr) 165px!important;grid-template-rows:minmax(0,1fr)!important;gap:10px;overflow:hidden}
.lite-stage.board-mode>.teaching-board,.video-stage.board-mode>.teaching-board{grid-column:1;grid-row:1}
.lite-stage.board-mode>.participant-grid,.video-stage.board-mode>.participant-grid{grid-column:2!important;grid-row:1!important;display:flex!important;flex-direction:column!important;align-content:stretch!important;gap:8px!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important}
.board-mode>.participant-grid>.participant-filmstrip{display:contents!important}
.board-mode>.participant-grid .video-tile{flex:0 0 104px!important;width:100%!important;min-width:0!important;min-height:104px!important;height:104px!important;border-radius:9px!important}
.board-mode>.participant-grid .video-tile video{object-fit:cover!important}.board-mode>.participant-grid .video-tile footer{left:5px;right:5px;bottom:5px;padding:5px 6px;font-size:.58rem}
.classroom-toolbar [data-board-toggle].active{border-color:color-mix(in srgb,var(--theme-color) 70%,white);background:var(--theme-color);color:#fff}.classroom-toolbar [data-board-toggle]:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.board-header{padding:8px 10px}.board-footer{align-items:flex-start;flex-direction:column;gap:1px}.lite-stage.board-mode,.video-stage.board-mode{grid-template-columns:1fr!important;grid-template-rows:minmax(0,1fr) 92px!important}.lite-stage.board-mode>.teaching-board,.video-stage.board-mode>.teaching-board{grid-column:1;grid-row:1}.lite-stage.board-mode>.participant-grid,.video-stage.board-mode>.participant-grid{grid-column:1!important;grid-row:2!important;flex-direction:row!important;overflow-x:auto!important;overflow-y:hidden!important}.board-mode>.participant-grid .video-tile{flex:0 0 130px!important;width:130px!important;min-height:82px!important;height:82px!important}.board-toolbar{padding:5px}.board-toolbar button,.board-toolbar select{min-height:29px}.board-canvas-wrap{padding:5px}}
@media(max-width:480px){.board-header .eyebrow,.board-footer span:last-child{display:none}.board-header strong{font-size:.72rem}.board-empty{max-width:260px;padding:9px}.board-empty span{display:none}}

/* v2.5 protected recovery and teacher access controls */
.permission-section,.permission-editor>section{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-light)}
.permission-section h4,.permission-editor h3{margin:0;color:var(--text);font-size:.72rem;font-weight:850;letter-spacing:.04em}
.permission-editor{margin:18px 0}.delegated-access,.permission-editor{background:var(--surface-2);color:var(--text);border-color:var(--border)}
.delegated-access .check-row,.permission-editor .check-row{background:var(--surface);border-color:var(--border);color:var(--text)}
.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.feature-grid article{padding:14px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.feature-grid strong,.feature-grid p{display:block;margin:0}.feature-grid p{margin-top:5px;color:var(--muted);font-size:.7rem}
.backup-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:16px}.backup-overview .metric-card{display:flex;flex-direction:column;min-height:120px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-soft)}.backup-overview .metric-card span{color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.backup-overview .metric-card strong{margin:7px 0 3px;color:var(--text);font-size:1rem}.backup-overview .metric-card small{margin-top:auto;color:var(--muted);font-size:.67rem}
.backup-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.backup-layout>.panel{margin:0}.backup-layout form>.check-row{margin-bottom:16px}.scheduler-details{margin-top:16px;padding-top:13px;border-top:1px solid var(--border)}.scheduler-details summary{cursor:pointer;color:var(--theme-color);font-size:.72rem;font-weight:850}.scheduler-details p{color:var(--muted);font-size:.7rem}.scheduler-details code{display:block;max-width:100%;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font:600 .65rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}
.restore-panel{margin-bottom:16px}.restore-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.restore-options>form+form{padding-left:22px;border-left:1px solid var(--border)}.restore-confirmation{margin-bottom:16px;border-color:color-mix(in srgb,#2f9e88 42%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,#2f9e88 8%,transparent)}.restore-confirm-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end;margin:15px 0}.restore-confirm-form .form-group{margin:0}
.btn-danger{border:1px solid color-mix(in srgb,var(--red,#c84747) 65%,black);background:var(--red,#c84747);color:#fff}.btn-danger:hover{filter:brightness(.92)}.text-danger,.row-actions .danger{color:var(--red,#c84747)!important}.row-actions button.danger{font:inherit}
[data-theme="dark"] .delegated-access,[data-theme="dark"] .permission-editor,[data-theme="dark"] .feature-grid article,[data-theme="dark"] .backup-overview .metric-card,[data-theme="dark"] .scheduler-details code{background:#142131;color:var(--text);border-color:#2a3a4c}[data-theme="dark"] .delegated-access .check-row,[data-theme="dark"] .permission-editor .check-row{background:#0f1b29;border-color:#33465a}[data-theme="dark"] .restore-confirmation{border-color:#315f55}
@media(max-width:1050px){.feature-grid,.backup-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.restore-confirm-form{grid-template-columns:1fr 1fr}.restore-confirm-form .btn{grid-column:1/-1;justify-self:start}}
@media(max-width:760px){.backup-layout,.restore-options{grid-template-columns:1fr}.restore-options>form+form{padding:18px 0 0;border-top:1px solid var(--border);border-left:0}.restore-confirm-form{grid-template-columns:1fr}.feature-grid,.backup-overview{grid-template-columns:1fr}}
