:root{--text:#1f2430;--text-muted:#6b7280;--bg:#f7f8fa;--surface:#fff;--border:#e2e4e9;--accent:#2b6cb0;--accent-contrast:#fff;--danger:#c0392b;--attention:#b45309;--attention-tint:#fef3e2;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:16px/1.5 var(--sans);--role-accent:var(--accent);--role-accent-contrast:var(--accent-contrast)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--text:#e5e7eb;--text-muted:#9ca3af;--bg:#14161c;--surface:#1c1f27;--border:#2e313b;--accent:#5b9bd5;--accent-contrast:#0b0d12;--attention:#f0b458;--attention-tint:#332510}}:root[data-theme=dark]{--text:#e5e7eb;--text-muted:#9ca3af;--bg:#14161c;--surface:#1c1f27;--border:#2e313b;--accent:#5b9bd5;--accent-contrast:#0b0d12;--attention:#f0b458;--attention-tint:#332510}[data-role=teacher]{--role-accent:#2563eb;--role-accent-contrast:#fff}[data-role=parent]{--role-accent:#16a34a;--role-accent-contrast:#fff}[data-role=student]{--role-accent:#ea580c;--role-accent-contrast:#fff}[data-role=admin]{--role-accent:#db2777;--role-accent-contrast:#fff}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}#root{min-height:100svh}.page{max-width:720px;margin:0 auto;padding:56px 16px 16px}@media (width>=900px){.page{max-width:1100px;padding-left:40px;padding-right:40px}}.page--centered{justify-content:center;align-items:center;min-height:100svh;display:flex}.page-header{border-bottom:3px solid var(--role-accent);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.page-header__title{align-items:baseline;gap:10px;display:flex}.page-header__title h1{margin:0}.role-badge{background:var(--role-accent);color:var(--role-accent-contrast);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.link-button{color:var(--role-accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.error-text{color:var(--danger)}.login-form{flex-direction:column;gap:12px;width:100%;max-width:320px;padding:24px;display:flex}.login-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}.login-form input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px}.login-form button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;margin-top:8px;padding:10px 12px}.google-signin-button{justify-content:center;display:flex}.login-form__divider{color:var(--text-muted);align-items:center;gap:10px;font-size:.8rem;display:flex}.login-form__divider:before,.login-form__divider:after{content:"";background:var(--border);flex:1;height:1px}.login-form__chosen-email{color:var(--text);justify-content:space-between;align-items:center;gap:10px;font-size:.9rem;display:flex}.login-form button.link-button{color:var(--role-accent);background:0 0;margin-top:0;padding:0;font-size:.85rem}.card-list{flex-direction:column;gap:12px;display:flex}@media (width>=720px){.card-list{gap:16px}}.collapsible-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden}.collapsible-card__header{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.collapsible-card__title{font-weight:600}.collapsible-card__subtitle{color:var(--text-muted);font-weight:400}.collapsible-card__alert{background:var(--attention-tint);color:var(--attention);vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.collapsible-card__arrow{color:var(--text-muted);transition:transform .15s}.collapsible-card__arrow--open{color:var(--role-accent);transform:rotate(90deg)}.collapsible-card__body{border-top:1px solid var(--border);padding:12px 16px 14px}.teach-btn{background:var(--role-accent);width:100%;color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-bottom:14px;padding:11px;font-size:.92rem;font-weight:700;display:flex}.attention-banner{background:var(--attention-tint);border-radius:10px;flex-direction:column;gap:10px;margin-bottom:16px;padding:12px;display:flex}.attention-banner__label{color:var(--attention);align-items:center;gap:6px;font-size:.85rem;font-weight:700;display:flex}.student-summary__meta{color:var(--text-muted);margin:0;font-size:.85rem}.tab-nav{background:var(--bg);z-index:150;flex-direction:column;gap:10px;width:min(300px,84vw);padding:16px;transition:transform .25s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:2px 0 24px #0003}.tab-nav__scroll{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.tab-nav--open{transform:translate(0)}.mobile-nav-backdrop{z-index:140;background:#0006;border:none;padding:0;position:fixed;inset:0}.tab-nav__masthead{background:#334155;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:12px 14px;display:flex}.tab-nav__close{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:50%;width:30px;height:30px;font-size:1rem}.workspace-account{margin-top:4px}.workspace-account__summary{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.workspace-account__summary:hover{background:var(--surface)}.workspace-account__identity{align-items:center;gap:8px;min-width:0;display:flex}.workspace-account__email{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.workspace-account__plan-badge{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.72rem;font-weight:700}.workspace-account__panel{border-left:2px solid var(--border);flex-direction:column;gap:2px;margin:2px 0 4px 10px;padding:8px 0 0 10px;display:flex}.workspace-account__row{justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:.85rem;display:flex}.workspace-account__row--muted{color:var(--text-muted)}.workspace-account__soon{color:var(--text-muted);font-size:.72rem;font-style:italic}.workspace-account__logout{align-self:flex-start;padding:4px 8px;font-size:.85rem}.tab-nav__brand{letter-spacing:.02em;color:#fff;align-items:center;gap:8px;font-size:1.1rem;font-weight:800;display:flex}.tab-nav__brand-mark{flex-shrink:0}.mobile-nav-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;font-weight:600;display:flex}.focus-mode-toggle{display:none}.workspace-section{flex-direction:column;display:flex}.workspace-section__header{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px;font-size:.95rem;font-weight:600;display:flex}.workspace-section__header:hover{background:var(--surface)}.workspace-section__label{align-items:center;gap:10px;display:flex}.workspace-section__icon{background:color-mix(in srgb, var(--role-accent) 16%, transparent);border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.85rem;display:inline-flex}.workspace-section__header--active{background:var(--surface);color:var(--role-accent)}.workspace-section__body{flex-direction:column;gap:2px;padding-left:4px;display:flex}.workspace-empty-hint{font-size:.85rem}.workspace-student-item{text-align:left;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.workspace-student-item--active{background:var(--surface);font-weight:600}.workspace-student-item__badge{background:var(--attention);color:#fff;border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:.72rem;font-weight:700}.workspace-student-group{flex-direction:column;display:flex}.workspace-subject-list{border-left:2px solid var(--border);flex-direction:column;gap:1px;margin:2px 0 4px 14px;padding-left:8px;display:flex}.workspace-subject-group{flex-direction:column;display:flex}.workspace-subject-item{text-align:left;width:100%;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;font-size:.85rem;display:flex}.workspace-subject-item:hover{background:var(--surface)}.workspace-subject-item--active{background:var(--surface);color:var(--text);font-weight:600}.workspace-group-list{border-left:2px solid var(--border);flex-direction:column;gap:1px;margin:2px 0 4px 14px;padding-left:8px;display:flex}.workspace-group{flex-direction:column;display:flex}.workspace-group-item{text-align:left;width:100%;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;font-size:.85rem;display:flex}.workspace-tree-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.workspace-tree-arrow--open{color:var(--role-accent);transform:rotate(90deg)}.workspace-group-item:hover{background:var(--surface)}.workspace-group-item--active{background:var(--surface);color:var(--text);font-weight:600}.workspace-lesson-list{border-left:2px solid var(--border);flex-direction:column;gap:1px;margin:2px 0 4px 14px;padding-left:8px;display:flex}.workspace-lesson-item{text-align:left;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 8px;font-size:.85rem}.workspace-lesson-item:hover{background:var(--surface)}.workspace-lesson-item--active{background:var(--surface);color:var(--text);font-weight:600}.workspace-lesson-list--inline{border-left:none;gap:8px;margin:4px 0 8px;padding:0}.workspace-lesson-list--inline .workspace-lesson-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:1rem;display:flex}.workspace-lesson-list--inline .workspace-lesson-item:hover{border-color:var(--text-muted)}.workspace-lesson-item--static{cursor:default}.workspace-lesson-item--static:hover{border-color:var(--border)}.workspace-subject-list--inline{border-left:none;flex-flow:wrap;gap:8px;margin:4px 0 8px;padding:0}.workspace-subject-list--inline .workspace-subject-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:auto;padding:10px 16px;font-size:1rem}.workspace-subject-list--inline .workspace-subject-item:hover{border-color:var(--text-muted)}.workspace-add-student-toggle{align-self:flex-start;padding:6px 10px;font-size:.85rem}.workspace-add-student-form{background:var(--surface);border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.based-on-banner{background:var(--surface);border:1px solid var(--role-accent);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:.9rem;display:flex}.workspace-student-item:hover{background:var(--surface)}.working-empty{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.examples-intro h2{margin:0 0 4px}.examples-grid{grid-template-columns:1fr;gap:16px;margin-top:20px;display:grid}@media (width>=640px){.examples-grid{grid-template-columns:1fr 1fr}}.example-card{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;flex-direction:column;align-items:stretch;padding:0;display:flex;overflow:hidden;box-shadow:0 2px 8px #0000000a}.example-card:hover{border-color:var(--role-accent)}.example-card__thumb{aspect-ratio:3/2;object-fit:cover;object-position:top;border-bottom:1px solid var(--border);background:#fff;width:100%}.example-card__body{flex-direction:column;align-items:flex-start;gap:6px;padding:16px 20px 20px;display:flex}.example-card__title{color:var(--text);text-align:start;align-self:stretch;font-size:1.05rem;font-weight:700}.example-card__meta{color:var(--text-muted);font-size:.85rem}.example-card__blurb{color:var(--text);text-align:start;margin:4px 0 0;font-size:.88rem;line-height:1.5}.example-card__cta{color:var(--role-accent);margin-top:8px;font-weight:600}.working-material__header{flex-direction:column;gap:2px;margin-bottom:16px;display:flex}.working-material__header h2{margin:0}@media (width>=900px){.teacher-shell{align-items:flex-start;display:flex}.teacher-shell>.page{flex:1;min-width:0;padding-top:32px}.mobile-nav-toggle,.mobile-nav-backdrop,.tab-nav__close{display:none}.focus-mode-toggle{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;margin-bottom:16px;font-size:1.1rem;display:flex}.focus-mode-toggle:hover{color:var(--text);border-color:var(--text-muted)}.teacher-shell--focus .tab-nav{display:none}.tab-nav{border-right:1px solid var(--border);top:0;width:240px;height:100svh;box-shadow:none;z-index:auto;flex-shrink:0;gap:8px;margin:0;padding:70px 14px 16px;transition:none;position:sticky;inset:auto;transform:none}}.generate-form{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.generate-form fieldset{border:none;flex-direction:column;gap:12px;margin:0;padding:0;display:flex}.generate-form fieldset:disabled{opacity:.6}.generate-form label,.field-group{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}.field-group__label{color:var(--text-muted);font-size:.9rem}.source-doc-checklist{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:8px 10px;display:flex}.generate-form label.admin-checkbox{text-align:left;flex-direction:row;justify-content:flex-start;align-items:center}.generate-form__grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.generate-form__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}.field-hint{color:var(--role-accent);font-size:.8rem;font-style:italic}.field-hint--muted{color:var(--text-muted)}.generating-indicator{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.9rem;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--role-accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.generate-form input,.generate-form select,.generate-form textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);resize:vertical;border-radius:8px;padding:10px 12px}.generate-form input[type=file]{border:none;padding:6px 0}.doc-loading-indicator{background:var(--surface);color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;font-style:normal;display:flex}.source-page-picker{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.generate-form .source-page-picker button.link-button,.generate-form button.generate-form-link-toggle{color:var(--role-accent);background:0 0;align-self:flex-start;padding:0;font-size:.85rem}.source-page-picker__range{gap:12px;display:flex}.source-page-picker__field{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.source-page-picker__field input{width:80px}.source-page-picker__previews summary{cursor:pointer;color:var(--role-accent);font-size:.85rem}.source-page-picker__previews ul{flex-direction:column;gap:6px;max-height:220px;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.source-page-picker__previews li{color:var(--text-muted);font-size:.8rem;line-height:1.4}.source-page-picker__previews li strong{color:var(--text)}.generate-form button,.material-review>button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:10px 16px;font-weight:600}.generate-form button:disabled,.material-review>button:disabled{opacity:.6;cursor:default}.material-review{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding-top:16px;display:flex}.assign-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assign-row select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px}.assign-row button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-weight:600}.assign-row button:disabled{opacity:.6;cursor:default}.material-subject-editor{color:var(--text-muted);flex-direction:column;gap:6px;margin-bottom:14px;font-size:.85rem;display:flex}.material-subject-editor__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.material-subject-editor__row select,.material-subject-editor__row input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px}.material-subject-editor__row button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-weight:600}.material-subject-editor__row button:disabled{opacity:.6;cursor:default}.text-muted{color:var(--text-muted)}.success-text{color:var(--role-accent);font-weight:600}.material-review__header{align-items:center;gap:10px;display:flex}.material-review__header h2{margin:0}.status-pill{text-transform:uppercase;background:var(--border);color:var(--text-muted);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-block}.status-pill--approved{background:var(--role-accent);color:var(--role-accent-contrast)}.block-list{flex-direction:column;gap:14px;display:flex}.block{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin:0;padding:12px 14px}.block--hint{color:var(--text-muted);background:0 0;border-style:dashed}.block--steps{padding-left:32px}.block__svg{overflow-x:auto}.block__svg svg{max-width:100%;height:auto}.block--image figcaption{color:var(--text-muted);margin-top:6px;font-size:.85rem}.block__answer{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.speak-button{border:1px solid var(--border);background:var(--surface);vertical-align:middle;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;margin-right:8px;font-size:.9rem;line-height:1;display:inline-flex}.block-with-speak{flex-direction:column;gap:8px;display:flex}.block-with-speak .speak-button{align-self:flex-start;margin-right:0}.block__choices{flex-direction:column;gap:8px;margin-top:10px;display:flex}.choice-button{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:10px 12px}.choice-button:disabled{cursor:default}.choice-button--correct{background:#16a34a1f;border-color:#16a34a}.choice-button--incorrect{background:#dc26261a;border-color:#dc2626}.choice-button--selected{border-color:var(--role-accent);background:color-mix(in srgb, var(--role-accent) 12%, var(--surface))}.block__exam-input,.block__exam-textarea{width:100%;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px}.block__exam-textarea{resize:vertical}.fill-blank-slot{border-bottom:2px solid var(--role-accent);text-align:center;min-width:60px;padding:0 4px;font-weight:600;display:inline-block}.fill-blank-slot--correct{color:#16a34a;border-color:#16a34a}.fill-blank-slot--incorrect{color:#dc2626;border-color:#dc2626}.fill-blank-input{width:120px;font:inherit;border:none;border-bottom:2px solid var(--role-accent);color:var(--text);text-align:center;background:0 0;padding:2px 6px;display:inline-block}.exam-status-banner{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:10px;margin-bottom:16px;padding:12px 14px}.submit-exam-button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;margin-top:16px;padding:10px 16px;font-weight:600}.submit-exam-button:disabled{opacity:.6;cursor:default}.progress-panel{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:16px;padding-top:12px;display:flex}.progress-panel__tabs{gap:6px;display:flex}.progress-panel__tab{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600}.progress-panel__tab--active{background:var(--role-accent);border-color:var(--role-accent);color:var(--role-accent-contrast)}.progress-form{flex-direction:column;gap:8px;display:flex}.progress-form input,.progress-form textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);resize:vertical;border-radius:8px;padding:8px 10px}.progress-panel button:not(.progress-panel__tab),.progress-form button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:8px 14px;font-weight:600}.progress-panel button:disabled,.progress-form button:disabled{opacity:.6;cursor:default}.progress-summary{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px 12px}.progress-summary p{margin:0 0 6px}.trend-pill{text-transform:capitalize;background:var(--border);color:var(--text-muted);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-block}.trend-pill--improving{color:#fff;background:#16a34a}.trend-pill--needs_attention{color:#fff;background:#dc2626}.trend-pill--steady{color:#fff;background:#6b7280}.trend-chart-wrap{margin-top:10px}.trend-chart{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:12px}.trend-chart__title{margin-bottom:4px;font-weight:600}.trend-chart__svg{width:100%;height:auto;display:block}.trend-chart__grid{stroke:var(--border);stroke-width:1px}.trend-chart__axis-text{fill:var(--text-muted);font-size:9px}.trend-chart__end-label{fill:var(--text);font-size:11px;font-weight:600}.trend-chart__crosshair{stroke:var(--text-muted);stroke-width:1px;stroke-dasharray:2 2}.trend-chart__tooltip{color:var(--text-muted);margin-top:4px;font-size:.85rem}.trend-chart__tooltip strong{color:var(--text)}.trend-chart__toggle{margin-top:6px;font-size:.8rem}.trend-chart__table{border-collapse:collapse;width:100%;margin-top:8px;font-size:.85rem}.trend-chart__table th,.trend-chart__table td{text-align:left;border-bottom:1px solid var(--border);color:var(--text-muted);padding:4px 8px}.record-score-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.record-score-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.record-score-form input,.record-score-form select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:100px;padding:8px 10px}.record-score-form button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-weight:600}.record-score-form button:disabled{opacity:.6;cursor:default}.exam-score-summary{background:var(--role-accent);color:var(--role-accent-contrast);border-radius:999px;margin-bottom:12px;padding:6px 12px;font-size:.9rem;font-weight:600;display:inline-block}.html-lesson__frame{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;height:70vh;min-height:480px}.score-breakdown{margin-top:10px}.score-breakdown__list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.score-breakdown__list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:6px;padding:8px 10px;font-size:.85rem;display:flex}.score-breakdown__mark{font-weight:700}.score-breakdown__item--correct .score-breakdown__mark{color:var(--good,#16a34a)}.score-breakdown__item--wrong .score-breakdown__mark{color:var(--attention)}.score-breakdown__topic{text-transform:capitalize;color:var(--text-muted);font-weight:600}.score-breakdown__question{flex:1;min-width:140px}.score-breakdown__answer{color:var(--text-muted);font-size:.8rem;font-style:italic}.install-button{z-index:100;background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:999px;padding:8px 14px;font-size:.8rem;font-weight:600;position:fixed;top:10px;right:10px;box-shadow:0 2px 8px #00000026}.theme-toggle{z-index:100;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;line-height:1;display:flex;position:fixed;top:10px;left:10px;box-shadow:0 2px 8px #00000026}.force-update-button{z-index:100;border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--role-accent);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;line-height:1;display:flex;position:fixed;top:10px;left:54px;box-shadow:0 2px 8px #00000026}.force-update-button:disabled{opacity:.6;cursor:default}.install-help-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.install-help-card{background:var(--surface);max-width:320px;color:var(--text);border-radius:12px;padding:20px}.install-help-card ol{margin:10px 0;padding-left:20px}.install-help-card li{margin-bottom:8px}.matching-columns{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.matching-column{flex-direction:column;gap:8px;display:flex}.matching-item{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:8px 10px;font-size:.9rem}.matching-item:disabled{cursor:default}.matching-item--active{border-color:var(--role-accent);background:color-mix(in srgb, var(--role-accent) 15%, var(--surface))}.matching-item--paired{opacity:.6}.matching-item--correct{opacity:1;background:#16a34a1f;border-color:#16a34a}.matching-item--incorrect{opacity:1;background:#dc26261a;border-color:#dc2626}.ordering-list{counter-reset:ordering-counter;flex-direction:column;gap:8px;margin:10px 0;padding:0;list-style:none;display:flex}.ordering-list li{counter-increment:ordering-counter;align-items:center;gap:8px;display:flex}.ordering-list li:before{content:counter(ordering-counter) ".";color:var(--text-muted);flex-shrink:0;width:18px;font-weight:600}.ordering-pool{flex-wrap:wrap;gap:8px;display:flex}.ordering-item{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:8px 12px;font-size:.9rem}.ordering-pool .ordering-item{flex:none}.ordering-item:disabled{cursor:default}.ordering-item--correct{background:#16a34a1f;border-color:#16a34a}.ordering-item--incorrect{background:#dc26261a;border-color:#dc2626}.admin-form{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.admin-form input,.admin-form select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px}.admin-form button{background:var(--role-accent);color:var(--role-accent-contrast);font:inherit;cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:8px 14px;font-weight:600}.admin-form button:disabled{opacity:.6;cursor:default}.admin-checkbox{color:var(--text-muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.subject-checklist{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-wrap:wrap;gap:4px 14px;padding:8px 10px;display:flex}.add-custom-subject{gap:8px;display:flex}.add-custom-subject input{flex:1}.admin-list{color:var(--text-muted);flex-direction:column;gap:6px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.admin-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.reset-password-toggle{white-space:nowrap;font-size:.8rem}.remove-lesson-toggle{color:var(--attention);margin-top:10px;font-size:.8rem}.remove-lesson-confirm{background:var(--attention-tint);border-radius:8px;flex-direction:column;gap:8px;margin-top:10px;padding:10px;font-size:.85rem;display:flex}.remove-lesson-confirm__actions{align-items:center;gap:10px;display:flex}.remove-lesson-confirm__actions button[type=button]:not(.link-button){background:var(--attention);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:6px 14px;font-weight:600}.student-invite-link{background:var(--surface-muted,var(--border));border-radius:8px;flex-direction:column;gap:8px;margin-top:10px;padding:10px;font-size:.85rem;display:flex}.student-invite-link__row{gap:8px;display:flex}.student-invite-link__row input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;flex:1;padding:6px 8px;font-size:.8rem}.reset-password-form{align-items:center;gap:6px;display:flex}.reset-password-form input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;width:140px;padding:4px 8px;font-size:.85rem}.reset-password-form button,.reset-password-done{font-size:.8rem}.schedule-grid-scroll{overflow-x:auto}.schedule-grid{border:1px solid var(--border);border-radius:8px;min-width:640px;display:grid;overflow:hidden}.schedule-grid__corner{border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface)}.schedule-grid__day-header{color:var(--text-muted);background:var(--surface);border-bottom:1px solid var(--border);border-left:1px solid var(--border);justify-content:center;align-items:center;padding:8px 4px;font-size:.8rem;font-weight:700;display:flex}.schedule-grid__time-label{color:var(--text-muted);border-right:1px solid var(--border);border-top:1px solid var(--border);justify-content:flex-end;align-items:flex-start;padding:0 6px;font-size:.7rem;display:flex;transform:translateY(-.5em)}.schedule-grid__cell{border-top:1px solid var(--border);border-left:1px solid var(--border);cursor:pointer;background:0 0;padding:0}.schedule-grid__cell:hover:not(:disabled){background:var(--surface)}.schedule-grid__cell:disabled{cursor:default}.schedule-grid__session{background:color-mix(in srgb, var(--role-accent) 20%, var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;border:none;border-radius:6px;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;margin:1px;padding:4px 6px;font-size:.72rem;font-weight:600;display:flex;overflow:hidden}.schedule-grid__session:hover{background:color-mix(in srgb, var(--role-accent) 32%, var(--surface))}.schedule-grid__session-subject{color:var(--text-muted);font-weight:400}.schedule-editor{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;padding:14px;display:flex}.schedule-editor label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.schedule-editor select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:8px 10px}.schedule-editor__actions{align-items:center;gap:14px;display:flex}.schedule-push-banner{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:.85rem;display:flex}.draft-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.modify-regenerate{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;width:100%;padding:14px;display:flex}.modify-regenerate label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.modify-regenerate textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;border-radius:8px;padding:8px 10px}.modify-regenerate__actions{align-items:center;gap:14px;display:flex}.edit-student-form{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;max-width:320px;padding:14px;display:flex}.edit-student-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.edit-student-form input,.edit-student-form select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:8px 10px}.edit-student-form__actions{align-items:center;gap:14px;display:flex}.live-session-toggle{border:1px solid var(--border);background:var(--bg-subtle,var(--bg));border-radius:10px;flex-direction:column;gap:8px;margin-bottom:14px;padding:12px 14px;display:flex}.live-session-toggle__checkbox{align-items:center;gap:8px;font-weight:600;display:flex}.live-session-toggle__checkbox input{width:auto}.live-session-toggle__minutes{align-items:center;gap:8px;font-size:.9em;display:flex}.live-session-toggle__minutes input{width:80px;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:6px 8px}.manage-student{flex-direction:column;gap:16px;display:flex}.manage-student__label{color:var(--text-muted);font-size:.9em;font-weight:600}.manage-student__subjects{flex-direction:column;gap:8px;display:flex}.manage-student__danger{border-top:1px solid var(--border);padding-top:8px}.manage-student__rename{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:8px;display:flex}.manage-student__rename-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.manage-student__rename-row select,.manage-student__rename-row input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:6px 8px}
