@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f7f9;--surface:#fff;--surface-selected:#efeefb;--backdrop:#16202e80;--text:#16202e;--text-soft:#3d4a5c;--text-muted:#536173;--border:#d5dbe3;--divider:#e6eaf0;--border-input:#9aa6b5;--border-control:#c3cbd6;--primary:#3730a3;--primary-hover:#2a2484;--on-primary:#fff;--selected:#16202e;--on-selected:#fff;--ok:#1d6b3a;--ok-border:#b9d9c4;--warning:#9a4a00;--warning-border:#e8b98a;--danger:#a3261b;--danger-border:#e3b4ae;--focus:#3730a3;--brand:#3730a3;--on-brand:#fff;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Roboto Mono", monospace;--radius-card:12px;--radius-control:8px;--radius-small:6px;--touch:44px;--page-max:1120px;--gutter:24px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f141b;--surface:#171e28;--surface-selected:#26244a;--backdrop:#000000a6;--text:#e6ebf2;--text-soft:#c2ccd8;--text-muted:#9fadbf;--border:#2c3644;--divider:#232c38;--border-input:#56657a;--border-control:#3a4656;--primary:#a9a5f5;--primary-hover:#c9c6fa;--on-primary:#0f141b;--selected:#e6ebf2;--on-selected:#0f141b;--ok:#6cc58f;--ok-border:#2f5a3f;--warning:#f0a85a;--warning-border:#6b4a24;--danger:#ff8a7a;--danger-border:#6e2f29;--focus:#a9a5f5}}@media (width<=600px){:root{--gutter:16px}}:root{--print-paper:#fff;--print-ink:#000}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);margin:0;font-size:15px;line-height:1.45}h1{margin:0;font-size:28px;font-weight:700;line-height:1.2}h2{margin:0;font-size:17px;font-weight:600}p{margin:0}a{color:var(--primary)}a:hover{color:var(--primary-hover)}input,select,button,textarea{font:inherit;color:inherit}button{min-height:var(--touch);cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}[tabindex="-1"]:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.num{font-family:var(--font-mono)}.muted{color:var(--text-muted)}[hidden]{display:none!important}.skip-link{left:var(--gutter);z-index:10;background:var(--surface);border:2px solid var(--focus);border-radius:var(--radius-control);padding:10px 14px;font-weight:600;position:absolute;top:-100px}.skip-link:focus{top:8px}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header__inner{max-width:var(--page-max);padding:14px var(--gutter);flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 auto;display:flex}.brand{min-height:var(--touch);color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{color:var(--text)}.brand__logo{flex-shrink:0}.brand__logo-tile{fill:var(--brand)}.brand__logo-mark{stroke:var(--on-brand)}.brand__name{letter-spacing:-.01em;font-size:20px;font-weight:700}.status-pill{color:var(--ok);border:1px solid var(--ok-border);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.main-nav{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.main-nav a{min-height:var(--touch);border-radius:var(--radius-control);color:var(--text);align-items:center;padding:0 14px;font-weight:500;text-decoration:none;display:inline-flex}.main-nav a:hover{background:var(--surface-selected);color:var(--text)}.main-nav a[aria-current=page]{background:var(--surface-selected);color:var(--primary);font-weight:600}.page{max-width:var(--page-max);padding:28px var(--gutter) 64px;margin:0 auto}@media (width<=600px){.main-nav{width:100%;margin-left:0}.main-nav a{flex:auto;justify-content:center}.page{padding-top:20px}}.is-setup .main-nav{display:none}.setup{max-width:640px}.setup__progress{color:var(--text-muted);margin-bottom:4px;font-size:14px;font-weight:600}.setup__list-heading{font-size:15px}.quick-add{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quick-add p{width:100%;font-size:14px}.page-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:20px;display:flex}.page-head p{color:var(--text-muted);width:100%}.back-link{min-height:var(--touch);align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px}.card>*+*{margin-top:8px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-bottom:22px;display:flex}.tabs a{min-height:var(--touch);color:var(--text-soft);border-bottom:3px solid #0000;align-items:center;padding:0 16px;font-weight:500;text-decoration:none;display:inline-flex}.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{border-bottom-color:var(--primary);color:var(--primary);font-weight:600}@media (width<=600px){.tabs a{flex:auto;justify-content:center;padding:0 10px}}.button{min-height:var(--touch);border-radius:var(--radius-control);background:var(--primary);color:var(--on-primary);border:none;padding:0 18px;font-weight:600}.button:hover{background:var(--primary-hover)}a.button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}a.button:hover{color:var(--on-primary)}.button:disabled{opacity:.6;cursor:wait}.button--secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-control)}.button--secondary:hover{background:var(--surface-selected)}a.button--secondary,a.button--secondary:hover{color:var(--text)}.button--danger{background:var(--danger);color:var(--on-primary)}.button--danger:hover{background:var(--danger);text-decoration:underline}.button--text{color:var(--primary);background:0 0;padding:0 10px}.button--text:hover{background:0 0;text-decoration:underline}.button--text-danger{color:var(--danger);background:0 0;padding:0 10px}.button--text-danger:hover{background:0 0;text-decoration:underline}.note{border-left:4px solid var(--primary);background:var(--surface-selected);border-radius:var(--radius-small);padding:10px 14px;font-weight:500}.settings~.form-section,.stack-form~.form-section{margin-top:16px}.settings,.stack-form{flex-direction:column;gap:16px;max-width:720px;display:flex}.form-section{max-width:720px}.form-section>*+*{margin-top:12px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--text-muted);font-size:14px}.field__hint{color:var(--text-muted);margin-top:-4px;font-size:13px}.field input,.field select{width:100%;height:var(--touch);border:1px solid var(--border-input);border-radius:var(--radius-control);background:var(--surface);padding:0 12px;font-size:15px}.field input[aria-invalid=true]{border:2px solid var(--danger)}.field__error{color:var(--danger);font-size:14px;font-weight:600}.input-short input{max-width:120px}.form-row{flex-wrap:wrap;gap:12px 16px;display:flex}.form-row>.field{flex:200px}.grade-bands{border:none;margin:20px 0 0;padding:0}.grade-bands legend{margin-bottom:8px;padding:0;font-weight:600}.grade-bands__grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:12px;margin-bottom:8px;display:grid}.grade-bands__grid .field label{color:var(--text);font-size:15px;font-weight:700}.form-actions{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.form-actions__end{margin-left:auto}.form-status[data-kind=ok]{color:var(--ok);font-weight:600}.form-status[data-kind=error]{color:var(--danger);font-weight:600}.facts{gap:8px;margin:0;display:grid}.facts>div{gap:12px;display:flex}.facts dt{min-width:110px;color:var(--text-muted)}.facts dd{margin:0}.input-with-button{flex-wrap:wrap;gap:8px;display:flex}.input-with-button input,.input-with-button select{flex:160px;min-width:0}.input-with-button .button{flex:none}.subject-list{margin:0;padding:0;list-style:none}.subject-list li{min-height:var(--touch);border-top:1px solid var(--divider);justify-content:space-between;align-items:center;gap:12px;display:flex}.subject-list li:last-child{border-bottom:1px solid var(--divider)}.subject-list li.muted{padding:10px 0}.subject-row>div:first-child{flex:auto;min-width:0}.subject-row__use{font-size:13px}.subject-row__actions{flex:none;display:flex}.subject-list li.subject-row--editing{padding:10px 0;display:block}.dialog{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:min(480px,100vw - 32px);color:var(--text);padding:20px}.dialog::backdrop{background:var(--backdrop)}.dialog h2{font-size:18px}.dialog>*+*{margin-top:10px}.dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:10px;display:flex}.danger-zone{border-color:var(--danger-border)}.page-head__actions{flex-wrap:wrap;gap:0 20px;display:inline-flex}.page-head__actions a{min-height:var(--touch);align-items:center;font-weight:500;display:inline-flex}.marks-head__actions{flex-wrap:wrap;gap:0 8px;display:flex}.class-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.class-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);color:var(--text);flex-direction:column;gap:14px;padding:20px;text-decoration:none;display:flex}.class-card:hover{color:var(--text);border-color:var(--primary)}.class-card__name{font-size:20px;font-weight:700}.class-card__meta{color:var(--text-muted);font-size:14px}.class-card__stats{border-top:1px solid var(--divider);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding-top:14px;display:grid}.class-card__stats dt{color:var(--text-muted);font-size:12px}.class-card__stats dd{margin:0;font-size:18px}.class-card__stats div:last-child dd{color:var(--warning)}.class-card--add{border:1px dashed var(--border-input);min-height:160px;color:var(--primary);background:0 0;justify-content:center;align-items:center;font-weight:600}.class-card--add:hover{color:var(--primary-hover)}.learners-layout{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.table-card{flex:999 600px;min-width:0;padding:0;overflow-x:auto}.learner-form-card{flex:280px}@media (width>=900px){.learner-form-card{order:2}}.learner-form-card form{flex-direction:column;gap:12px;margin-top:8px;display:flex}.data-table{border-collapse:collapse;width:100%;min-width:680px}.data-table th{border-bottom:1px solid var(--border);color:var(--text-muted);text-align:left;white-space:nowrap;padding:12px 16px;font-size:13px;font-weight:600}.data-table td{border-bottom:1px solid var(--divider);padding:8px 16px}.data-table td.num{font-size:14px}.data-table .align-end{text-align:right}.learner-link{text-underline-offset:3px;padding:8px 0;font-weight:600;text-decoration:underline;display:inline-block}.row-actions{justify-content:flex-end;gap:6px;display:flex}.row-actions .button{padding:0 12px;font-weight:500}.button--outline-danger{background:var(--surface);color:var(--danger);border:1px solid var(--danger-border)}.button--outline-danger:hover{background:var(--surface);text-decoration:underline}.badge{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-block}.badge--warning{color:var(--warning);border:1px solid var(--warning-border)}.status{white-space:nowrap;font-size:13px}.status--ok{color:var(--ok)}.status--none{color:var(--text-muted)}.choice-group{border:none;margin:0;padding:0}.choice-group legend{color:var(--text-muted);margin-bottom:6px;padding:0;font-size:14px}.choice-group__options{gap:8px;display:flex}.choice{min-height:var(--touch);border:1px solid var(--border-input);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;flex:1 1 0;justify-content:center;align-items:center;gap:8px;display:flex}.choice:has(input:checked){border:2px solid var(--primary);background:var(--surface-selected);font-weight:600}.choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.choice-group .field__error{margin-top:6px}.data-table th:first-child,.data-table td:first-child{z-index:1;background:var(--surface);white-space:nowrap;position:sticky;left:0}.backup-grid{flex-wrap:wrap;align-items:stretch;gap:20px;display:flex}.backup-card{flex-direction:column;flex:320px;gap:10px;display:flex}.backup-card>*+*{margin-top:0}.backup-card .muted{font-size:14px}.backup-card__action{margin-top:auto}.strong{font-weight:600}.review,.snapshots,[data-restored],[data-restored]+.backup-grid{margin-top:20px}.review{border:2px solid var(--primary);max-width:720px}.review>*+*{margin-top:10px}.problems{font-family:var(--font-mono);margin:8px 0 0;padding-left:20px;font-size:13px}.banner{border:1px solid var(--warning-border);border-left:4px solid var(--warning);border-radius:var(--radius-control);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:20px;padding:14px 16px;display:flex}.banner p{flex:260px;font-weight:500}details summary{min-height:var(--touch);cursor:pointer;align-items:center;display:flex}.pills{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.pill{min-height:var(--touch);border:1px solid var(--border-control);border-radius:var(--radius-control);background:var(--surface);color:var(--text);text-align:left;flex-direction:column;align-items:flex-start;padding:6px 14px;display:flex}.pill__title{font-size:14px;font-weight:500}.pill__meta{color:var(--text-muted);font-size:12px}.pill[aria-pressed=true]{border:2px solid var(--primary);background:var(--surface-selected)}.pill[aria-pressed=true] .pill__title{font-weight:600}.pill[aria-pressed=true] .pill__meta{color:var(--text-soft)}.pill--add{border:1px dashed var(--border-input);color:var(--primary);background:0 0;justify-content:center;font-weight:600}.assessment-form-card{max-width:720px;margin-bottom:16px}.assessment-form-card form{flex-direction:column;gap:12px;margin-top:8px;display:flex}.choice-group__options--wrap{flex-wrap:wrap}.choice-group__options--wrap .choice{flex:130px}.marks-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:4px 16px;margin-bottom:12px;display:flex}.marks-head h2{font-size:18px}.marks-head .muted{font-size:14px}.marks-table{min-width:480px}.mark-cell{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.mark-input{width:88px;height:var(--touch);border:1px solid var(--border-input);border-radius:var(--radius-small);background:var(--surface);padding:0 10px;font-size:15px}.mark-input[aria-invalid=true]{border:2px solid var(--danger)}.mark-note{font-size:13px}.mark-note[data-kind=none]{color:var(--text-muted)}.mark-note[data-kind=invalid],.mark-note[data-kind=save-error]{color:var(--danger);font-weight:600}.marks-footer{margin:10px 2px 0;font-size:14px}.marks-footer strong{color:var(--text)}.save-state[data-kind=error]{color:var(--danger);font-weight:600}@media (width<=600px){.marks-table{min-width:0}.marks-table th,.marks-table td{padding-left:8px;padding-right:8px}.marks-table th:first-child,.marks-table td:first-child{white-space:normal;position:static}.marks-table .mark-cell{flex-direction:column;align-items:flex-start}.marks-table .mark-input{width:72px}.marks-table .badge{width:max-content;margin-top:4px;padding:1px 6px;font-size:12px;display:block}}.lesson-open{margin-bottom:16px}.lesson-open .form-status:empty{display:none}.lesson-open .form-status{margin-top:8px}.attendance-layout{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.lesson-card{flex:999 560px;min-width:0}.lesson-log-card{flex:280px}.lesson-card__head{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.lesson-card__label{color:var(--text-muted);font-size:13px;font-weight:400}.lesson-card__date{font-size:18px;font-weight:700}.lesson-card__summary{margin-left:auto;font-size:14px}.lesson-card form{flex-direction:column;gap:12px;margin-top:12px;display:flex}.attendance-row{border:none;border-top:1px solid var(--divider);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;padding:8px 0;display:flex}.attendance-row__name{float:left;flex:160px;padding:0;font-weight:500}.attendance-options{gap:6px;display:flex}.attendance-option{min-width:76px;min-height:var(--touch);border:1px solid var(--border-control);border-radius:var(--radius-small);background:var(--surface);color:var(--text-soft);cursor:pointer;justify-content:center;align-items:center;padding:0 8px;font-size:14px;display:flex}.attendance-option input{opacity:0;width:1px;height:1px;position:absolute}.attendance-option:has(input:checked){border:2px solid var(--selected);background:var(--selected);color:var(--on-selected);font-weight:600}.attendance-option:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.lesson-log{margin:8px 0 0;padding:0;list-style:none}.lesson-entry{width:100%;min-height:var(--touch);border:none;border-top:1px solid var(--divider);color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border-radius:0;flex-direction:column;gap:2px;padding:10px 8px;display:flex}.lesson-entry:hover{background:var(--surface-selected)}.lesson-entry[aria-current=true]{background:var(--surface-selected);box-shadow:inset 3px 0 0 var(--primary)}.lesson-entry__meta{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:13px;display:flex}.lesson-entry__topic{font-weight:500}.lesson-entry__topic.muted{font-style:italic;font-weight:400}.lesson-entry__main{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.lesson-entry__edit{color:var(--primary);flex-shrink:0;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}@media (width<=600px){.attendance-options{width:100%}.attendance-option{flex:1 1 0;min-width:0}}.stats-controls{flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin-bottom:12px;display:flex}.stats-controls .choice{text-align:center;padding:0 10px}.stats-controls .field{flex:0 240px}.stats-scope{margin:0 0 12px;font-size:14px}.stats-scope+.note{margin-bottom:12px}.stat-tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-tile{padding:16px}.stat-tile>*+*{margin-top:0}.stat-tile__label,.stat-tile__note{color:var(--text-muted);font-size:13px}.stat-tile__value{font-size:30px}.stats-layout{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.stats-card{flex:380px;min-width:0}.grade-bars{margin:14px 0 0;padding:0;list-style:none}.grade-bars li{align-items:center;gap:10px;margin-bottom:8px;display:flex}.grade-bars__grade{width:22px;font-weight:700}.grade-bars__track{border:1px solid var(--border-control);border-radius:4px;flex:1;height:22px}.grade-bars__bar{background:var(--primary);border-radius:3px;height:100%;display:block}.grade-bars__count{text-align:right;width:28px}.stats-card__legend{font-size:13px}.attention-list{margin:0;padding:0;list-style:none}.attention-list li{border-top:1px solid var(--divider);padding:10px 0}.attention-list .learner-link{font-weight:600}.attention-list__reasons{color:var(--warning);font-size:14px}@media (width<=600px){.stat-tiles{grid-template-columns:1fr 1fr}.stat-tile__value{font-size:26px}}.period-picker{flex-direction:column;flex:360px;gap:10px;max-width:620px;display:flex}.period-picker .choice{flex:120px}.period-picker__dates .field{flex:140px}.th-note{font-weight:400}.profile-head{flex-wrap:wrap;align-items:flex-end;gap:12px 20px;display:flex}.profile-head>div:first-child{flex:auto}.view-switch{border:1px solid var(--border-control);border-radius:var(--radius-control);display:flex;overflow:hidden}.view-switch button{min-height:var(--touch);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border:none;padding:0 18px}.view-switch button[aria-pressed=true]{background:var(--selected);color:var(--on-selected);font-weight:600}.view-switch button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.profile-subjects .table-card{flex:none}.profile-subjects,.profile-charts{flex-direction:column;gap:20px;display:flex}.profile-charts{flex-flow:wrap;margin-top:20px}.profile-subject__head{flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:16px 16px 8px;display:flex}.profile-subject__head h2{font-size:18px}.profile-subject__head strong{color:var(--text)}.profile-subject__empty{padding:0 16px 16px}.profile-table{min-width:560px}.profile-table__kind{margin-left:6px;font-size:13px}.profile-chart{flex:420px;min-width:0}.profile-chart h2{font-size:18px}.subject-bars{margin:14px 0 0;padding:0;list-style:none}.subject-bars li{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:12px;display:flex}.subject-bars__name{flex:0 0 170px;font-weight:500}.subject-bars__track{border:1px solid var(--border-control);border-radius:4px;flex:200px;height:26px;position:relative}.subject-bars__bar{background:var(--primary);border-radius:3px;height:100%;display:block}.subject-bars__class{border-left:3px solid var(--selected);position:absolute;top:-4px;bottom:-4px}.subject-bars__pass{border-left:1px dashed var(--warning);position:absolute;top:0;bottom:0}.subject-bars__value{text-align:right;flex:0 0 52px}.chart-legend{color:var(--text-soft);flex-wrap:wrap;gap:6px 20px;margin-top:8px;font-size:13px;display:flex}.chart-legend>span{align-items:center;gap:6px;display:inline-flex}.chart-key{width:18px;height:0;display:inline-block}.chart-key--bar{background:var(--primary);border-radius:2px;width:14px;height:14px}.chart-key--class-marker{border-left:3px solid var(--selected);width:0;height:14px}.chart-key--pass{border-top:1px dashed var(--warning)}.chart-key--line{border-top:3px solid var(--primary)}.chart-key--class-line{border-top:2px dashed var(--selected)}.line-chart__scroll{padding-bottom:4px;overflow-x:auto}.line-chart__body{padding:26px 8px 0 40px}.line-chart__plot{height:180px;position:relative}.line-chart__svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.line-chart__grid{stroke:var(--divider);stroke-width:1px}.line-chart__pass{stroke:var(--warning);stroke-width:1px;stroke-dasharray:3 3}.line-chart__class{fill:none;stroke:var(--selected);stroke-width:2px;stroke-dasharray:6 4}.line-chart__learner{fill:none;stroke:var(--primary);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.line-chart__y{text-align:right;width:28px;color:var(--text-muted);font-size:11px;position:absolute;left:-36px;transform:translateY(-50%)}.line-chart__y--pass{color:var(--warning)}.line-chart__dot{border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.line-chart__dot--class{border:2px solid var(--selected);background:var(--surface);width:9px;height:9px}.line-chart__dot--learner{border:2px solid var(--surface);background:var(--primary);width:12px;height:12px}.line-chart__value{background:var(--surface);color:var(--primary);white-space:nowrap;padding:0 2px;font-size:12px;font-weight:600;position:absolute;transform:translate(-50%,-26px)}.line-chart__x{height:40px;position:relative}.line-chart__x>span{text-align:center;white-space:nowrap;color:var(--text-soft);font-size:12px;line-height:1.2;position:absolute;top:6px;transform:translate(-50%)}.line-chart__unmarked{color:var(--text-muted);display:block}@media (width<=600px){.subject-bars__name{flex-basis:100%}.profile-head .view-switch{width:100%}.view-switch button{flex:1}}.grading-list{margin:0;padding:0;list-style:none}.grading-item{border-top:1px solid var(--divider);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.grading-item:last-child{border-bottom:1px solid var(--divider)}.grading-item--open{display:block}.grading-item__text{flex-direction:column;gap:2px;min-width:0;display:flex}.grading-item__title{font-weight:600}.grading-item__summary{color:var(--text-soft);font-size:14px}.grading-item__edit{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.grading-box{border:1px solid var(--border);border-radius:var(--radius-card);padding:16px}.grading-list+.field__error,.grading-list~.grading-box,.grading-list~div,.grading-box>*+*{margin-top:12px}.grading-box h3{font-size:16px}.grading-box .grade-bands{margin-top:16px}.update-banner{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;background:var(--surface);border:2px solid var(--primary);border-radius:var(--radius-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;max-width:560px;margin:0 auto;padding:12px 16px;display:flex;position:fixed}.update-banner__text{font-weight:600}.update-banner__actions{gap:8px;display:flex}.print-controls{margin-bottom:20px}.print-controls>*+*{margin-top:14px}.print-controls .choice{text-align:center;padding:0 8px}.print-controls__hint{font-size:13px}.print-preview{flex-direction:column;gap:20px;display:flex}.sheet{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:24px;overflow-x:auto}.sheet h1{font-size:20px}.sheet h2{font-size:16px}.sheet__facts{flex-wrap:wrap;gap:2px 20px;margin:6px 0 14px;font-size:13px;display:flex}.sheet__facts div{gap:4px;display:flex}.sheet__facts dt{font-weight:600}.sheet__facts dt:after{content:":"}.sheet__facts dd{margin:0}.sheet-table{border-collapse:collapse;width:100%;font-size:13px}.sheet-table th,.sheet-table td{border:1px solid var(--border-input);text-align:left;vertical-align:top;padding:4px 6px}.sheet-table thead th,.sheet-table tfoot th,.sheet-table tfoot td{font-weight:700}.sheet-table tbody th{white-space:nowrap;font-weight:400}.sheet-table__num{font-family:var(--font-mono);white-space:nowrap;text-align:right!important}.sheet-table thead .sheet-table__num{font-family:var(--font-sans)}.sheet-table__total{font-weight:400;display:block}.sheet-table__no{width:2.5em}.sheet-table--small{font-size:11px}.sheet__key{margin-top:10px;font-size:12px}.report__summary{border:1px solid var(--border-input);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0 0 8px;display:grid}.report__summary div{border:1px solid var(--border-input);padding:6px 10px}.report__summary dt{font-size:12px}.report__summary dd{margin:0;font-weight:700}.report__subject{margin-top:14px}.report__subject h2{margin-bottom:6px}.report__subject-figures{margin-left:8px;font-size:13px;font-weight:400}.report__writing{margin-top:20px}.report__line{border-bottom:1px solid var(--border-input);height:28px}.report__sign{flex-wrap:wrap;gap:12px 40px;margin-top:24px;display:flex}.report__blank{border-bottom:1px solid var(--border-input);width:160px;display:inline-block}@page{size:A4 portrait;margin:12mm;@bottom-right{content:"Page " counter(page) " of " counter(pages);font-size:9pt}}@page landscape{size:A4 landscape}@media print{.skip-link,.site-header,.update-banner,[data-no-print]{display:none!important}html,body,.page{background:var(--print-paper);max-width:none;color:var(--print-ink);margin:0;padding:0}.print-preview{display:block}.sheet{color:var(--print-ink);background:0 0;border:none;border-radius:0;padding:0;overflow:visible}.sheet--landscape{page:landscape}.report__summary{grid-template-columns:repeat(4,1fr)}.report{break-after:page}.report:last-child{break-after:auto}.sheet-table th,.sheet-table td,.report__summary,.report__summary div,.report__line,.report__blank{border-color:var(--print-ink)}.sheet-table thead{display:table-header-group}.sheet-table tr,.report__summary,.report__writing{break-inside:avoid}.report__subject h2{break-after:avoid}}
