.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.student-shell{background:var(--color-bg);min-height:100dvh;color:var(--color-text);flex-direction:column;display:flex}.student-main{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex}.student-shell[data-fullscreen=true] .student-main{padding-bottom:0}.student-page{width:100%;max-width:var(--page-width);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.student-page h1{margin:0;font-size:1.5rem}.student-page h2{margin:0 0 var(--space-2);font-size:1.1rem}.tabbar{background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:10;display:flex;position:fixed;inset:auto 0 0}.tab{min-height:var(--tabbar-height);color:var(--color-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;text-decoration:none;display:flex}.tab[aria-current=page]{color:var(--color-primary);font-weight:600}.offline-banner{z-index:20;padding:var(--space-2) var(--space-4);background:var(--color-hint-bg);color:var(--color-hint);text-align:center;font-size:.85rem;position:sticky;top:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);padding:var(--space-4)}.card-center{gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.card-center>*{margin:0}.button{min-height:var(--touch-target);background:var(--color-primary);color:var(--color-on-primary);text-align:center;font-weight:600;text-decoration:none}.button:active{background:var(--color-primary-pressed)}.button-block{width:100%;display:block}a.button{border-radius:var(--radius-s);padding:.8rem 1rem;display:block}.success{color:var(--color-success);margin:0;font-weight:600}.points{margin:var(--space-2) 0 0;color:var(--color-success);font-weight:700}.greeting{color:var(--color-muted);margin:0}.chips{gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.chip{padding:var(--space-1) var(--space-3);background:var(--color-info-bg);border-radius:999px;font-weight:600}.badge{margin-left:var(--space-2);padding:0 var(--space-2);background:var(--color-primary);color:var(--color-on-primary);border-radius:999px;font-size:.75rem}.today-cards{gap:var(--space-3);flex-direction:column;display:flex}.block-list{margin:var(--space-3) 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.block-list li[data-done=true]{color:var(--color-success)}.invite-parent{gap:var(--space-3);flex-direction:column;display:flex}.invite-parent p{margin:0}.invite-actions{gap:var(--space-2);display:flex}.invite-actions .button{flex:1}.unit summary{align-items:center;gap:var(--space-1) var(--space-2);cursor:pointer;flex-wrap:wrap;display:flex}.unit-title{font-weight:600}.skill-list{margin:var(--space-3) 0 0;gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.skill{gap:var(--space-1) var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);grid-template-columns:1fr auto;align-items:start;display:grid}.level-pill{padding:0 var(--space-2);background:var(--color-key);white-space:nowrap;border-radius:999px;font-size:.8rem}.skill[data-level="1"] .level-pill{background:var(--color-info-bg)}.skill[data-level="2"] .level-pill,.skill[data-level="3"] .level-pill{background:var(--color-success-bg);color:var(--color-success);font-weight:600}.ladder{gap:var(--space-1);grid-column:1/-1;margin:0;padding:0;list-style:none;display:flex}.ladder li{padding:var(--space-1) 0;border-radius:var(--radius-s);border:1px solid var(--color-border);text-align:center;color:var(--color-locked);flex:1;font-size:.78rem}.ladder li[data-status=open]{border-color:var(--color-primary);color:var(--color-primary)}.ladder li[data-status=done]{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-primary)}.balance-value{color:var(--color-primary);margin:0;font-size:2.5rem;font-weight:700}.history{margin:0;padding:0;list-style:none}.history li{gap:0 var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);grid-template-columns:1fr auto;display:grid}.history-date{color:var(--color-muted);grid-column:1;font-size:.8rem}.history-delta{grid-area:1/2/span 2;align-self:center;font-weight:700}.history-delta[data-sign=plus]{color:var(--color-success)}.history-delta[data-sign=minus]{color:var(--color-danger)}.player{width:100%;max-width:var(--page-width);padding:0 var(--space-3) var(--space-3);gap:var(--space-3);flex-direction:column;flex:1;margin:0 auto;display:flex}.player-header{z-index:5;align-items:center;gap:var(--space-2);min-height:var(--touch-target);background:var(--color-bg);display:flex;position:sticky;top:0}.player-title{flex:1;margin:0;font-size:1.05rem}.player-position{color:var(--color-muted);font-size:.9rem}.player-timer{min-width:3.2rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-s);background:var(--color-info-bg);font-variant-numeric:tabular-nums;text-align:center;font-weight:700}.icon-button{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-s);background:var(--color-key);color:inherit;border:0;font-size:1.6rem;line-height:1}.player>.card{margin-top:var(--space-4)}.problem{gap:var(--space-3);flex-direction:column;flex:1;display:flex}.problem-body{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);padding:var(--space-4)}.problem-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1.35rem;line-height:1.4}.problem-image{max-width:100%;height:auto;margin-top:var(--space-3);border-radius:var(--radius-s);display:block}.feedback{border-radius:var(--radius-m);padding:var(--space-3) var(--space-4)}.feedback h2{margin:0 0 var(--space-1);font-size:1rem}.feedback p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.feedback-hint{background:var(--color-hint-bg);color:var(--color-hint)}.feedback-ok{background:var(--color-success-bg);color:var(--color-success)}.feedback-solution{background:var(--color-info-bg)}.feedback-offline{background:var(--color-hint-bg);color:var(--color-hint)}.problem-actions{gap:var(--space-2);flex-direction:column;align-items:stretch;margin-top:auto;display:flex}.problem-actions .link-button{align-self:center}.report-open{align-self:center;font-size:.9rem}.report-form{gap:var(--space-2)}.report-actions{align-items:center;gap:var(--space-4);display:flex}.report-thanks{align-self:center}.visual-problem{margin:0 0 var(--space-3);padding:var(--space-3);border-left:4px solid var(--color-border);background:var(--color-bg);color:var(--color-muted);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}.visual-text{margin:0 0 var(--space-4);padding:var(--space-3);border-radius:var(--radius-m);background:var(--color-hint-bg);color:var(--color-hint);white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.15rem}.keypad{gap:var(--space-2);flex-direction:column;display:flex}.keypad-display{min-height:3.25rem;padding:0 var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-m);background:var(--color-surface);font-variant-numeric:tabular-nums;white-space:pre;justify-content:flex-end;align-items:center;font-size:1.8rem;display:flex;overflow:hidden}.keypad-display[data-empty=true]{color:var(--color-muted);justify-content:flex-start;font-size:1.1rem}.keypad-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.keypad-cell{display:flex}.keypad-cell:last-child{grid-column:span 2}.key{border-radius:var(--radius-m);background:var(--color-key);width:100%;min-height:3.1rem;color:var(--color-text);font:inherit;touch-action:manipulation;border:0;flex:1;font-size:1.45rem}.key:active:not(:disabled){background:var(--color-key-pressed)}.key:disabled{opacity:.45}.key-small{font-size:1.05rem}.keypad-letters{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.key-letter{min-height:4rem;font-size:2rem;font-weight:700}.key-letter[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}.keypad-actions{gap:var(--space-2);grid-template-columns:1fr 2fr;display:grid}.key-submit{background:var(--color-primary);color:var(--color-on-primary);font-size:1.15rem;font-weight:600}.key-submit:active:not(:disabled){background:var(--color-primary-pressed)}.field textarea{font:inherit;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-surface);color:inherit;resize:vertical}.feedback-area{gap:var(--space-2);flex-direction:column;display:flex}.lesson-card-name{margin:0;font-size:1.15rem;font-weight:600}.lesson-card .hint{margin:var(--space-1) 0 var(--space-3)}.lesson-recording{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.lesson-card .lesson-recording:first-child{border-top:0;margin-top:0;padding-top:0}.lesson-recording h2,.lesson-recording h3{margin:0 0 var(--space-2);font-size:1rem}.lesson-recording p{margin:0 0 var(--space-3)}.homework-card-list{margin:var(--space-3) 0 0;gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.homework-card-name{margin:0;font-size:1.15rem;font-weight:600}.homework-card-list .hint{margin:var(--space-1) 0 var(--space-3)}.homework-card [data-overdue=true] .badge{background:var(--color-danger)}.back-link{min-height:var(--touch-target);padding:var(--space-2) 0;color:var(--color-primary);display:inline-block}.homework-page h1{margin-bottom:var(--space-1)}.homework-progress{z-index:5;padding:var(--space-2) 0;background:var(--color-bg);position:sticky;top:0}.homework-progress .hint{margin:0 0 var(--space-1)}.homework-progress progress{width:100%;height:.5rem;accent-color:var(--color-primary);display:block}.homework-problems{margin:var(--space-3) 0;gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.homework-problem{gap:var(--space-3);flex-direction:column;scroll-margin-top:4rem;display:flex}.homework-problem h3{color:var(--color-muted);margin:0;font-size:.95rem}.homework-problem .problem-text{font-size:1.15rem}.homework-answer{margin:0;font-weight:600}.homework-problem[data-answered=false] .homework-answer{color:var(--color-muted);font-weight:400}.homework-photos,.homework-submit,.homework-returned,.homework-sent{margin-top:var(--space-3)}.homework-photos h2,.homework-returned h2,.homework-sent h2{margin:0 0 var(--space-2);font-size:1.1rem}.photo-pick{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.photo-pick label{border-radius:var(--radius-s);cursor:pointer;justify-content:center;align-items:center;padding:.8rem .5rem;display:flex}.photo-pick label[data-disabled=true]{opacity:.6;cursor:default}.photo-pick label:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.photo-list{margin:var(--space-3) 0 0;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.photo-item{gap:var(--space-2);flex-direction:column;display:flex}.photo-item img,.photo-placeholder{aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius-s);background:var(--color-key);width:100%;display:block}.photo-status{color:var(--color-muted);font-size:.85rem}.photo-item[data-status=done] .photo-status{color:var(--color-success)}.photo-item[data-status=failed] .photo-status{color:var(--color-danger);font-weight:600}.photo-item .button{padding:.5rem;font-size:.9rem}.homework-submit .hint{margin:0 0 var(--space-2)}.homework-score{margin:0;font-size:1.25rem;font-weight:700}.homework-results{margin:var(--space-3) 0;gap:var(--space-1);text-align:left;flex-direction:column;padding:0;list-style:none;display:flex}.homework-results li[data-correct=true]{color:var(--color-success)}.homework-results li[data-correct=false]{color:var(--color-danger)}.teacher-comment{margin:0 0 var(--space-3);padding:var(--space-3);border-left:4px solid var(--color-hint);background:var(--color-hint-bg);white-space:pre-wrap;overflow-wrap:anywhere}.parent-shell{background:var(--color-bg);min-height:100dvh;color:var(--color-text);flex-direction:column;display:flex}.refresh-notice{padding:var(--space-2) var(--space-4);background:var(--color-hint-bg);color:var(--color-hint);margin:0}.parent-main{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex}.parent-page{width:100%;max-width:var(--page-width);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.parent-page h1{margin:0;font-size:1.5rem}.parent-page h2{margin:0 0 var(--space-2);font-size:1.1rem}.parent-page p{margin:0}.child-switcher{z-index:5;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0;overflow-x:auto}.child-chip{min-height:var(--touch-target);padding:0 var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;border-radius:999px;flex:none}.child-chip[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:600}.week-picker{align-items:center;gap:var(--space-2);display:flex}.week-picker .icon-button:disabled{opacity:.4}.week-label{text-align:center;flex-direction:column;flex:1;align-items:center;font-weight:600;display:flex}.week-label .hint{margin:0;font-weight:400}.stat-card{gap:var(--space-2);flex-direction:column;display:flex}.stat-card h2{margin:0}.stat-value{color:var(--color-primary);font-size:1.6rem;font-weight:700}.stat-card .hint{margin:0}.dots{gap:var(--space-2);margin:0;padding:0;list-style:none;display:flex}.dots li{border:2px solid var(--color-border);background:var(--color-surface);border-radius:50%;width:1.1rem;height:1.1rem}.dots li[data-on=true]{border-color:var(--color-success);background:var(--color-success)}.confusion-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.confusion-list li{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.confusion-list li:last-child{border-bottom:0}.confusion-count{color:var(--color-muted);white-space:nowrap;flex:none;font-size:.85rem}.no-children{gap:var(--space-3);flex-direction:column;display:flex}.no-children h2{margin:0}:root{--brand-indigo:#3c3489;--brand-amber:#ef9f27;--brand-night:#1b1a3a;--brand-ground:#f6f7fb;--brand-white:#fff;--brand-indigo-pressed:#302a6e;--brand-indigo-soft:#ecebf3;--brand-amber-soft:#fdf1df;--brand-muted:#5d5c74;--brand-line:#dcdbe8;--font-heading:"Geologica Variable", "Onest Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body:"Onest Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-ext-wght-normal-C8B9Chlh.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-wght-normal-DbeVG3Ps.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-ext-wght-normal-DZyYlgcm.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-wght-normal-BBL8hQxZ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#f5f6fb;--color-surface:#fff;--color-text:#1b1f2a;--color-muted:#5c6370;--color-border:#d9deea;--color-primary:#1d4ed8;--color-primary-pressed:#1e40af;--color-on-primary:#fff;--color-success:#15803d;--color-success-bg:#e6f6ec;--color-danger:#b91c1c;--color-danger-bg:#fdeceb;--color-hint:#8a5a00;--color-hint-bg:#fff4d6;--color-info-bg:#e8effe;--color-level-0:#eceff7;--color-level-0-text:#5c6370;--color-level-1:#fff4d6;--color-level-1-text:#8a5a00;--color-level-2:#cfdcfb;--color-level-2-text:#1e3a8a;--color-level-3:#bfe8cd;--color-level-3-text:#14532d;--color-key:#eceff7;--color-key-pressed:#d6ddf0;--color-locked:#9aa1b2;--radius-s:.5rem;--radius-m:.9rem;--radius-l:1.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--tabbar-height:3.75rem;--touch-target:3rem;--page-width:30rem}*,:before,:after{box-sizing:border-box}body{-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{max-width:28rem;margin:0 auto;padding:1.5rem 1rem}.form{flex-direction:column;gap:1rem;display:flex}.field{border:0;flex-direction:column;gap:.3rem;margin:0;padding:0;display:flex}.field input,.field select{font:inherit;border:1px solid #c4c4cc;border-radius:.5rem;padding:.7rem .8rem}.choice{align-items:flex-start;gap:.5rem;display:flex}.button{font:inherit;color:#fff;background:#1d4ed8;border:0;border-radius:.5rem;padding:.8rem 1rem}.button:disabled{opacity:.6}.link-button{font:inherit;color:#1d4ed8;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.error{color:#b91c1c;margin:0}.hint{color:#555;font-size:.85rem}.warning{color:#8a5a00;background:#fff4d6;border-radius:.5rem;margin:0;padding:.6rem .8rem;font-weight:600}.invite-from{flex-direction:column;gap:.6rem;margin:0 0 1rem;display:flex}.invite-from p{margin:0}.page-wide{max-width:60rem}.staff-header{border-bottom:1px solid #e4e4e7;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding:.75rem 1rem;display:flex}.staff-nav{flex-wrap:wrap;flex:1;gap:.25rem 1rem;display:flex}.staff-nav a{color:#1d4ed8;padding:.25rem 0;text-decoration:none}.staff-nav a[aria-current=page]{font-weight:600;text-decoration:underline}.import-summary,.stat-list{flex-wrap:wrap;gap:.75rem 2rem;margin:0 0 1rem;display:flex}.import-summary dt,.stat-list dt{color:#555;font-size:.85rem}.import-summary dd,.stat-list dd{margin:0;font-size:1.5rem;font-weight:600}.alert-list{margin:0 0 1rem;padding:0;list-style:none}.alert-item{border-bottom:1px solid #e4e4e7;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;padding:.6rem 0;display:flex}.alert-item p{margin:.25rem 0}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid #e4e4e7;padding:.4rem .6rem}.table td:first-child{white-space:nowrap}.button-secondary{background:var(--color-info-bg);color:var(--color-primary)}.button-danger{background:var(--color-danger)}.lesson-badge{background:var(--color-info-bg);color:var(--color-primary);border-radius:999px;padding:0 .5rem;font-size:.8rem}.lesson-list{margin:0 0 1rem;padding:0;list-style:none}.lesson-item{border-bottom:1px solid #e4e4e7;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding:.6rem 0;display:flex}.lesson-time{font-variant-numeric:tabular-nums;min-width:4.5rem;font-weight:600}.lesson-name{flex-direction:column;flex:1;min-width:10rem;display:flex}.lesson-tabs{border-bottom:1px solid #e4e4e7;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;display:flex}.lesson-tab{font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:.5rem 1rem}.lesson-tab[aria-selected=true]{border-bottom-color:#1d4ed8;font-weight:600}.skill-picker>legend{padding:0}.skill-picker-list{border:1px solid #c4c4cc;border-radius:.5rem;max-height:18rem;padding:.5rem .75rem;overflow-y:auto}.skill-unit{border:0;flex-direction:column;gap:.25rem;margin:0 0 .75rem;padding:0;display:flex}.skill-unit legend{margin-bottom:.25rem;padding:0;font-weight:600}.attendance-list{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.attendance-list li{align-items:center;gap:.75rem;display:flex}.lesson-delete{border-top:1px solid #e4e4e7;margin-top:2rem;padding-top:1rem}.homework-tab-problems{flex-direction:column;gap:.75rem;margin:1rem 0;padding-left:1.5rem;display:flex}.homework-tab-problems .card{border:1px solid #d9deea;border-radius:.5rem;padding:.75rem}.homework-tab-problems p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 .5rem}.homework-swap{background:#f5f6fb;border-radius:.5rem;margin-top:.5rem;padding:.5rem}.homework-candidates{flex-direction:column;gap:.5rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.homework-candidates li{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.homework-publish{margin-top:1rem}.review-card{flex-direction:column;gap:1rem;display:flex}.review-nav{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.review-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=48rem){.review-layout{grid-template-columns:minmax(0,1fr)}}.review-left h2,.review-card h3{margin:0 0 .5rem}.review-badges{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.review-badge{background:var(--color-info-bg);color:var(--color-primary);border-radius:999px;padding:0 .6rem;font-size:.85rem}.review-badge-ok{background:var(--color-success-bg);color:var(--color-success)}.review-badge-late{background:var(--color-danger-bg);color:var(--color-danger)}.review-results{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.review-result{border:1px solid var(--color-border);border-left-width:.3rem;border-radius:.5rem;padding:.6rem .75rem}.review-wrong{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.review-ok{border-left-color:var(--color-success)}.review-result p{margin:0 0 .25rem}.review-body{white-space:pre-wrap;overflow-wrap:anywhere}.review-verdict{font-size:.85rem}.review-mistake{font-weight:600}.review-photos{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.review-photos img{border:1px solid var(--color-border);border-radius:.5rem;width:100%;height:auto;display:block}.review-decision textarea{font:inherit;border:1px solid #c4c4cc;border-radius:.5rem;width:100%;padding:.6rem .75rem}.review-buttons .button{min-width:11rem}.draft-homeworks{border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-hint-bg);margin:0 0 1.5rem;padding:.75rem 1rem}.draft-homeworks p{margin:0 0 .25rem}.draft-homeworks .lesson-list{margin:0}.progress-picker{max-width:16rem;margin-bottom:1rem}.progress-picker select{font:inherit;border:1px solid #c4c4cc;border-radius:.5rem;padding:.6rem .8rem}.progress-notice{background:var(--color-success-bg);color:var(--color-success);border-radius:.5rem;margin:0 0 1rem;padding:.6rem .75rem}.progress-scroll{margin-bottom:.75rem;overflow-x:auto}.progress-matrix{border-collapse:separate;border-spacing:2px}.progress-matrix th,.progress-matrix td{text-align:center;vertical-align:middle;padding:.4rem .6rem}.progress-matrix thead th{vertical-align:bottom;min-width:5.5rem;max-width:9rem;font-weight:400}.progress-matrix thead th:first-child,.progress-matrix tbody th{z-index:1;background:var(--color-surface);text-align:left;min-width:9rem;font-weight:600;position:sticky;left:0}.progress-action{white-space:nowrap}.progress-action .link-button{font-size:.85rem}.progress-skill-id{font-weight:600;display:block}.progress-skill-title{color:var(--color-muted);font-size:.75rem;display:block}.progress-level{font-variant-numeric:tabular-nums;font-weight:600}.progress-matrix .progress-level{border-radius:.35rem}.level-0{background:var(--color-level-0);color:var(--color-level-0-text)}.level-1{background:var(--color-level-1);color:var(--color-level-1-text)}.level-2{background:var(--color-level-2);color:var(--color-level-2-text)}.level-3{background:var(--color-level-3);color:var(--color-level-3-text)}.progress-legend{flex-wrap:wrap;gap:.5rem 1.25rem;margin:0 0 1.5rem;padding:0;font-size:.85rem;list-style:none;display:flex}.progress-legend li{align-items:center;gap:.4rem;display:flex}.progress-legend .progress-level{text-align:center;border-radius:.35rem;min-width:1.5rem;padding:.1rem .4rem;display:inline-block}.progress-mistakes,.progress-reflections{margin:0 0 1.5rem;padding:0;list-style:none}.progress-mistakes li,.progress-reflections li{border-bottom:1px solid #e4e4e7;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.5rem 0;display:flex}.progress-mistake-title{flex:1;min-width:10rem;font-weight:600}.progress-mistake-count{color:var(--color-muted);font-variant-numeric:tabular-nums}.progress-reflection-date{min-width:6rem;color:var(--color-muted);font-variant-numeric:tabular-nums}.progress-reflection-student{min-width:9rem;font-weight:600}.progress-reflection-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:1;min-width:12rem}.dialog-backdrop{z-index:10;background:#1b1f2a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog{border-radius:var(--radius-m);background:var(--color-surface);width:min(28rem,100%);max-height:100%;padding:1.25rem;overflow-y:auto}.dialog h2{margin:0 0 1rem;font-size:1.15rem}.dialog textarea{font:inherit;border:1px solid #c4c4cc;border-radius:.5rem;padding:.6rem .75rem}.dialog-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.admin-split{grid-template-columns:minmax(0,16rem) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=40rem){.admin-split{grid-template-columns:minmax(0,1fr)}}.admin-list ul{flex-direction:column;gap:.35rem;max-height:60vh;margin:0 0 .75rem;padding:0;list-style:none;display:flex;overflow-y:auto}.admin-list-item{border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-surface);width:100%;font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:.1rem;padding:.6rem .75rem;display:flex}.admin-list-item .hint{margin:0}.admin-list-item[aria-current=true]{border-color:var(--color-primary);background:var(--color-info-bg)}.admin-detail h2{margin-top:0}.group-panel>.form{max-width:28rem}.group-people{margin-top:1.5rem}.group-people h3{margin-bottom:.25rem}.group-people h4{margin:1rem 0 .5rem}.day-row{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.form-actions{flex-wrap:wrap;gap:.5rem;display:flex}.people-search{flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin-bottom:.5rem;display:flex}.people-search .field{flex:1;min-width:12rem}.people-list{margin:0 0 .75rem;padding:0;list-style:none}.people-list>li{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.45rem 0;display:flex}.people-list-stacked>li{display:block}.reset-list{margin:0 0 .75rem;padding-left:1.25rem}.reset-list>li{padding:.2rem 0}.people-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;display:flex}.person{flex-wrap:wrap;align-items:baseline;gap:.15rem .75rem;display:flex}.person .hint{margin:0}.staff-add{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.reset-form{border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-bg);max-width:24rem;margin:.5rem 0 .75rem;padding:.75rem}.parents{margin:.5rem 0 0 1rem}.parents h3{color:var(--color-muted);margin:0 0 .25rem;font-size:.9rem}.curated-group{margin-bottom:1.5rem}.badge-gap{margin-left:.5rem}.report-body{flex:20rem;min-width:0}.report-text{overflow-wrap:anywhere;max-width:40rem}.field-with-hint{flex-direction:column;gap:.25rem;display:flex}.field-with-hint .hint{margin:0}.people-picker .people-list{max-height:18rem;overflow-y:auto}.student-access section{margin-top:1.25rem}.privacy-page h2{margin:1.5rem 0 .5rem;font-size:1.1rem}.privacy-page ul{flex-direction:column;gap:.4rem;margin:0;padding-left:1.2rem;display:flex}
