:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-text:#1c2430;--color-muted:#4e5a68;--color-border:#d5dbe3;--color-primary:#1f5fae;--color-primary-hover:#194e8f;--color-primary-soft:#e8f0fb;--color-focus:#b3410e;--color-danger:#a8231a;--color-danger-soft:#fdf0ef;--color-badge-bg:#eef1f5;--color-success:#1e6b34;--color-success-soft:#eaf5ed;--color-warn:#8a4500;--color-warn-soft:#fff3e0;--radius:10px;--sidebar-width:240px;--sidebar-collapsed:72px;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{font-size:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:1rem;line-height:1.6;overflow-x:hidden}h1{margin:0 0 .75rem;font-size:1.75rem;line-height:1.3}p{margin:0 0 1rem}a{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:4px}.muted{color:var(--color-muted)}.skip-link{z-index:10;background:var(--color-surface);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:-100px;left:.5rem}.skip-link:focus{top:.5rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.card.narrow{width:100%;max-width:420px}.btn{min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{cursor:progress;opacity:.75}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover{background:var(--color-primary-soft)}.btn-block{width:100%}.field{margin-bottom:1rem}.field label{margin-bottom:.25rem;font-weight:600;display:block}.field input{width:100%;min-height:44px;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid #8a96a3;border-radius:8px;padding:.5rem .75rem}.field input[aria-invalid=true]{border-color:var(--color-danger)}.alert{border:1px solid;border-radius:8px;padding:.75rem 1rem}.alert-error{color:var(--color-danger);background:var(--color-danger-soft);border-color:var(--color-danger)}.badge{background:var(--color-badge-bg);color:var(--color-text);border-radius:999px;padding:.125rem .75rem;font-weight:600;display:inline-block}.center-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.brand-line{color:var(--color-primary);align-items:center;gap:.5rem;font-weight:700;display:flex}.brand-mark{background:var(--color-primary-soft);width:2rem;height:2rem;color:var(--color-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;gap:1rem;height:100vh;padding:1rem .75rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:.5rem;margin:0 0 .5rem;padding:0 .5rem;font-weight:700;display:flex}.nav-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-link{width:100%;min-height:44px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.75rem;padding:.5rem .75rem;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-bg)}.nav-link[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary);box-shadow:inset 4px 0 0 var(--color-primary);font-weight:700}.icon{flex:none}.sidebar-footer{border-top:1px solid var(--color-border);margin-top:auto;padding-top:.75rem}.sidebar-user{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;padding:0 .75rem;overflow:hidden}.main{min-width:0;padding:2rem}.main:focus{outline:none}.page{max-width:960px}.empty-state{max-width:560px}@media (width<=1023.98px){.shell{grid-template-columns:var(--sidebar-collapsed) minmax(0, 1fr)}.sidebar{align-items:center;padding:1rem .5rem}.sidebar-brand{padding:0}.nav-list{width:100%}.nav-link{justify-content:center;padding:.5rem}.sidebar-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar-footer{width:100%}.main{padding:1.25rem 1rem}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.alert-info{color:var(--color-text);background:var(--color-primary-soft);border-color:var(--color-primary)}.link-button{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:0;padding:.25rem 0;text-decoration:underline}kbd{background:var(--color-surface);min-width:1.5em;font:inherit;text-align:center;border:1px solid #8a96a3;border-bottom-width:2px;border-radius:4px;padding:0 .3em;font-size:.875em;display:inline-block}.rich-text .math{white-space:nowrap}.rich-text .exam-figure{background:#fff;max-width:100%;height:auto;margin:.5rem 0;display:block}.katex{font-size:1.1em}.save-status{white-space:nowrap;align-items:center;gap:.375rem;margin:0;font-weight:600;display:inline-flex}.save-icon{border:2px solid;border-radius:999px;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.8rem;line-height:1;display:inline-flex}.save-idle,.save-pending,.save-saving{color:var(--color-muted)}.save-saved{color:var(--color-success)}.save-retrying{color:var(--color-warn)}.save-stopped{color:var(--color-danger)}.card.lobby{max-width:560px}.lobby-actions{flex-wrap:wrap;gap:.75rem;display:flex}.exam{flex-direction:column;min-height:100vh;display:flex}.exam-top{z-index:5;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.exam-title{flex:16rem;min-width:0}.exam-title p{margin:0}.exam-subject{font-weight:700}.exam-name{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.exam-timer{border:2px solid #0000;border-radius:8px;align-items:baseline;gap:.5rem;padding:.25rem .75rem;display:flex}.exam-timer-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.exam-timer-label{color:var(--color-muted)}.exam-timer.warn{color:var(--color-warn);background:var(--color-warn-soft);border-color:var(--color-warn)}.exam-timer.warn .exam-timer-label{color:var(--color-warn);font-weight:700}.exam-small-notice{background:var(--color-warn-soft);color:var(--color-text);border-bottom:1px solid var(--color-warn);margin:0;padding:.75rem 1rem;display:none}.exam-banner{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:1rem 1.5rem 0;display:flex}.exam-banner p{margin:0}details.exam-banner{display:block}details.exam-banner summary{cursor:pointer;font-weight:600}details.exam-banner ul{margin:.5rem 0 0;padding-left:1.25rem}.exam-body{flex:1;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;width:100%;max-width:1280px;margin:0 auto;padding:1.5rem;display:grid}.exam-main{flex-direction:column;gap:1rem;min-width:0;display:flex}.question{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.question-section{color:var(--color-muted);margin:0 0 .25rem;font-size:.9375rem}.question-heading{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:1.375rem;display:flex}.flag-tag{color:var(--color-warn);background:var(--color-warn-soft);border:1px solid var(--color-warn);border-radius:999px;padding:0 .625rem;font-size:.9375rem;font-weight:600}.question-stem{white-space:pre-wrap;margin-bottom:1.25rem;font-size:1.0625rem}fieldset{border:0;min-width:0;margin:0;padding:0}.choices{flex-direction:column;gap:.5rem;display:flex}.choice{cursor:pointer;border:1px solid #8a96a3;border-radius:8px;align-items:center;gap:.75rem;min-height:52px;padding:.5rem .875rem;display:flex}.choice:hover{background:var(--color-bg)}.choice.selected{background:var(--color-primary-soft);border:2px solid var(--color-primary);font-weight:600}.choice input,.tf-option input{width:1.125rem;height:1.125rem;accent-color:var(--color-primary);flex:none;margin:0}.choice-letter{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;flex:none;justify-content:center;align-items:center;width:2rem;height:2rem;font-weight:700;display:inline-flex}.choice.selected .choice-letter{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.choice-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.key-hint{color:var(--color-muted);margin:.5rem 0 0;font-size:.9375rem}.tf-group{flex-direction:column;gap:.5rem;display:flex}.tf-row{border:1px solid var(--color-border);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.625rem .875rem;display:grid}.tf-row.active{border:2px solid var(--color-primary)}.tf-statement{float:left;padding:0}.tf-label{font-weight:700}.tf-options{gap:.5rem;display:flex}.tf-option{cursor:pointer;border:1px solid #8a96a3;border-radius:8px;align-items:center;gap:.5rem;min-height:44px;padding:.25rem .875rem;display:inline-flex}.tf-option.selected{background:var(--color-primary-soft);border:2px solid var(--color-primary);font-weight:700}.short-answer input{font-variant-numeric:tabular-nums;max-width:16rem;font-size:1.25rem}.exam-actions{flex-wrap:wrap;justify-content:space-between;gap:.75rem;display:flex}.btn:disabled:not(.btn-primary){cursor:not-allowed}.btn-flag{background:var(--color-surface);color:var(--color-warn);border-color:var(--color-warn)}.btn-flag.on{background:var(--color-warn-soft);box-shadow:inset 0 0 0 1px var(--color-warn)}.exam-nav{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-self:start;padding:1rem;position:sticky;top:6rem}.exam-nav h2{margin:0 0 .25rem;font-size:1.125rem}.exam-nav-summary{color:var(--color-muted);margin-bottom:.75rem;font-size:.9375rem}.nav-group h3{margin:.75rem 0 .375rem;font-size:.9375rem}.nav-grid{grid-template-columns:repeat(auto-fill,minmax(3.5rem,1fr));gap:.375rem;margin:0;padding:0;list-style:none;display:grid}.nav-q{background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;border:1px solid #8a96a3;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;padding:.125rem;font-size:.875rem;line-height:1.2;display:flex}.nav-q-num{font-weight:700}.nav-q-icons{font-size:.8125rem}.nav-q.answered{background:var(--color-primary-soft);border-color:var(--color-primary)}.nav-q.partial{background:linear-gradient(135deg, var(--color-primary-soft) 50%, var(--color-surface) 50%)}.nav-q.flagged{border:2px solid var(--color-warn)}.nav-q.flagged .nav-q-icons{color:var(--color-warn)}.nav-q[aria-current=step]{outline:3px solid var(--color-primary);outline-offset:1px}.nav-legend{border-top:1px solid var(--color-border);color:var(--color-muted);grid-template-columns:1fr 1fr;gap:.25rem .5rem;margin:1rem 0 0;padding:.75rem 0 0;font-size:.875rem;list-style:none;display:grid}.nav-icon{text-align:center;width:1.25rem;color:var(--color-text);display:inline-block}.key-legend{margin-top:.75rem;font-size:.9375rem}.key-legend summary{cursor:pointer;font-weight:600}.key-legend ul{margin:.5rem 0 0;padding-left:1.125rem}.modal{border:1px solid var(--color-border);border-radius:var(--radius);width:min(480px,100vw - 2rem);color:var(--color-text);background:var(--color-surface);padding:1.5rem}.modal::backdrop{background:#0f17228c}.modal h2{margin:0 0 .75rem;font-size:1.375rem}.confirm-counts{margin:0 0 1rem;padding-left:1.25rem}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.back-link{margin:0 0 1rem}.result-summary{margin-bottom:2rem}.result-score{margin:0 0 .5rem}.result-score-value{font-size:2.75rem;font-weight:700;line-height:1}.result-score-max{color:var(--color-muted);font-size:1.25rem}.scoring-note{background:var(--color-warn-soft);color:var(--color-warn);border-radius:8px;padding:.375rem .75rem;font-weight:600;display:inline-block}.scoring-note p{margin:0}.scoring-note ul{color:var(--color-text);margin:.25rem 0 0;padding-left:1.25rem;font-weight:400}.result-sections{border-collapse:collapse;width:100%}.result-sections th,.result-sections td,.result-tf th,.result-tf td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.5rem .75rem}.result-sections th[scope=row],.result-tf th[scope=row]{font-weight:400}.result-sections td{white-space:nowrap;font-variant-numeric:tabular-nums}.result-sections-note{margin:.75rem 0 0;font-size:.9375rem}.result-part h2{margin:2rem 0 .75rem;font-size:1.25rem}.result-q{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem;padding:1.25rem}.result-q-head{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:.5rem;display:flex}.result-q-head h3{margin:0;font-size:1.125rem}.result-q-points{margin-left:auto;font-weight:600}.verdict{font-weight:700}.verdict-right,.mark-right{color:var(--color-success)}.verdict-wrong,.mark-wrong{color:var(--color-danger)}.verdict-partial{color:var(--color-warn)}.verdict-none{color:var(--color-muted)}.result-options{flex-direction:column;gap:.375rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.result-options li{border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.625rem;padding:.375rem .75rem;display:flex}.result-options li.is-correct{border:2px solid var(--color-success);background:var(--color-success-soft)}.result-options li.is-wrong{border:2px solid var(--color-danger);background:var(--color-danger-soft)}.tag{border:1px solid;border-radius:999px;padding:0 .5rem;font-size:.875rem;font-weight:700}.tag-given{color:var(--color-primary)}.tag-correct{color:var(--color-success)}.result-tf{border-collapse:collapse;width:100%;margin-bottom:1rem}.result-short{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0 0 1rem;display:grid}.result-short dt{color:var(--color-muted)}.result-short dd{margin:0;font-weight:600}.explanation{border-top:1px solid var(--color-border);padding-top:.75rem}.explanation-title{margin:0 0 .25rem;font-weight:700}@media (width<=1023.98px){.exam-small-notice{display:block}.exam-body{grid-template-columns:minmax(0,1fr);padding:1rem}.exam-top{padding:.75rem 1rem}.exam-nav{position:static}.tf-row{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.home-block h2,.empty-state h2{margin:0 0 .75rem;font-size:1.25rem;line-height:1.35}.load-error p{margin-bottom:.75rem}.home-block{margin-bottom:2rem}.continue-card h3{margin:.5rem 0;font-size:1.125rem}.status{color:var(--color-text);align-items:center;gap:.375rem;font-weight:600;display:inline-flex}.status-icon{border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.8125rem;line-height:1;display:inline-flex}.status-in_progress{color:var(--color-primary)}.status-submitted{color:var(--color-success)}.status-overdue{color:var(--color-danger)}.upcoming-list,.assignment-list,.stat-grid{margin:0;padding:0;list-style:none}.upcoming-item{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:.75rem 0;display:flex}.upcoming-item p{margin:0}.upcoming-title{font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.stat-card p{margin:0}.stat-label{color:var(--color-muted);font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700}.stat-unit{color:var(--color-muted);font-size:1rem;font-weight:400}.stat-empty{color:var(--color-muted);margin-top:.5rem!important}.assignment-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.assignment-card{flex-direction:column;gap:.75rem;display:flex}.assignment-card h2{margin:0;font-size:1.125rem}.assignment-card .btn{align-self:flex-start;margin-top:auto}.assignment-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.assignment-meta{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;display:flex}.assignment-meta dt{color:var(--color-muted);white-space:nowrap;font-size:.9375rem}.assignment-meta dd{white-space:nowrap;margin:0;font-weight:600}.assignment-note{margin:auto 0 0}.table-scroll{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.75rem 1rem}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody th{font-weight:600}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .nowrap{white-space:nowrap}.auto-note{font-size:.9375rem;font-weight:400;display:block}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.topbar-inner{flex-wrap:wrap;align-items:center;gap:.75rem 2rem;padding:.75rem 1.5rem;display:flex}.brand{color:var(--color-text);align-items:center;gap:.625rem;font-size:1.125rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-logo{border-radius:999px;flex:none;display:block}.topnav{flex-wrap:wrap;flex:auto;gap:.25rem 1.5rem;font-weight:600;display:flex}.topnav-link{color:var(--color-text);border-bottom:2px solid #0000;align-items:center;min-height:44px;padding:.5rem 0;text-decoration:none;display:inline-flex}.topnav-link:hover{color:var(--color-primary)}.topnav-link[aria-current=page]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.topbar-actions{gap:.5rem;display:flex}.account{position:relative}.account summary{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;min-height:44px;padding:.25rem .875rem .25rem .25rem;font-weight:600;list-style:none;display:flex}.account summary::-webkit-details-marker{display:none}.avatar{background:var(--color-primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:inline-flex}.account-menu{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);gap:.75rem;width:240px;padding:1rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.account-menu p{margin:0}.app .shell{flex:1;min-height:0}.app .sidebar{gap:1.5rem;padding:1.25rem .75rem}.side-group{flex-direction:column;gap:.25rem;display:flex}.side-title{color:var(--color-muted);margin:0 0 .25rem .75rem;font-size:.875rem;font-weight:600}.subject-code{background:var(--color-badge-bg);width:28px;height:28px;color:var(--color-text);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.subject-code-lg{border-radius:var(--radius);background:var(--color-primary-soft);width:48px;height:48px;color:var(--color-primary);font-size:1.0625rem}.footer{background:var(--color-surface);border-top:1px solid var(--color-border)}.footer-inner{color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.25rem;padding:1rem 1.5rem;display:flex}.footer-nav{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}@media (width<=1023.98px){.app .sidebar{padding:1rem .5rem}.side-title{margin:0}.topbar-inner{gap:.5rem 1rem;padding:.5rem 1rem}.account-name{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.account summary{padding:.25rem}.footer-inner{padding:1rem}}.page-wide{max-width:1200px}.home{flex-direction:column;gap:1.5rem;display:flex}.home h1,.home h2,.page h2{text-wrap:balance}.home-section{flex-direction:column;gap:1rem;display:flex}.home-section h2,.card>h2,.section-head h2{margin:0;font-size:1.25rem;line-height:1.35}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 1rem;display:flex}.section-head p{margin:.25rem 0 0}.card{flex-direction:column;gap:.75rem;display:flex}.card>*{margin-top:0;margin-bottom:0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card-link{color:var(--color-text);height:100%;text-decoration:none}.card-link:hover{border-color:var(--color-primary)}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary)}.badge-warn{background:var(--color-warn-soft);color:var(--color-warn);font-size:.875rem}.badge{margin:0;font-size:.875rem}.tone-success{color:var(--color-success)}.tone-warn{color:var(--color-warn)}.tone-danger{color:var(--color-danger)}.tone-muted{color:var(--color-muted)}.tone-primary{color:var(--color-primary)}.badge.tone-warn{background:var(--color-warn-soft)}.badge.tone-danger{background:var(--color-danger-soft)}.num{font-variant-numeric:tabular-nums}.empty-inline p{margin:0 0 .5rem}.clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.table-plain{border:0}.eyebrow{color:var(--color-primary);margin:0;font-weight:600}.prose{max-width:760px}.prose h2{margin:1.5rem 0 .5rem}.prose h3{margin:1rem 0 .25rem;font-size:1.0625rem}.trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.check-field{align-items:flex-start;gap:.625rem;display:flex}.check-field input{width:1.25rem;height:1.25rem;min-height:0;accent-color:var(--color-primary);flex:none;margin-top:.2rem}.check-field label{font-weight:400}.field select,.field textarea,.ask-ai textarea,.report-form textarea,.queue-actions input,.q-editor textarea{width:100%;min-height:44px;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid #8a96a3;border-radius:8px;padding:.5rem .75rem}.btn-lg{min-height:52px;padding:0 2rem;font-size:1.0625rem}.progress{background:var(--color-badge-bg);border-radius:999px;height:8px;margin-top:.375rem}.progress-fill{background:var(--color-primary);border-radius:999px;height:100%}.progress-success .progress-fill{background:var(--color-success)}.progress-row{color:var(--color-muted);justify-content:space-between;gap:.5rem;font-size:.9375rem;display:flex}.countdown{flex-flow:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;padding:1.25rem 1.5rem}.countdown h2{margin:0;font-size:1.125rem}.countdown p{margin:.25rem 0 0}.countdown-cells{gap:.5rem;display:flex}.countdown-cell{text-align:center;background:var(--color-primary-soft);border-radius:8px;min-width:72px;padding:.5rem .5rem .375rem}.countdown-value{color:var(--color-primary);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700;line-height:1.2}.countdown-unit{color:var(--color-muted);font-size:.875rem}.home-welcome{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.home-welcome h1{margin:0}.home-welcome p{margin:.25rem 0 0}.home-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:1rem;display:grid}.home-grid h3{margin:0;font-size:1.125rem}.week-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.week-stats div{background:var(--color-bg);border-radius:8px;padding:.75rem}.week-stats dt{color:var(--color-muted);font-size:.9375rem}.week-stats dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.5rem;font-weight:700}.split-bar{background:var(--color-badge-bg);border-radius:999px;height:10px;margin-top:.375rem;display:flex;overflow:hidden}.split-review,.swatch-review{background:var(--color-success)}.split-practice,.swatch-practice{background:var(--color-primary)}.split-legend{color:var(--color-muted);flex-wrap:wrap;gap:.25rem 1rem;margin-top:.375rem;font-size:.875rem;display:flex}.swatch{border-radius:2px;width:10px;height:10px;margin-right:.375rem;display:inline-block}.week-bars{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:.5rem;height:84px;display:grid}.week-bar{color:var(--color-muted);flex-direction:column;justify-content:flex-end;align-items:center;gap:.25rem;font-size:.8125rem;display:flex}.week-bar-fill{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:4px 4px 0 0;width:100%;max-width:28px}.week-bar-fill.today{background:var(--color-primary)}.week-note{font-size:.875rem}.goal-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.goal-form label{font-weight:600}.goal-form input{width:6rem;min-height:44px;font:inherit;border:1px solid #8a96a3;border-radius:8px;padding:.25rem .5rem}.subject-card{min-height:170px}.subject-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.subject-card h3,.exam-card h3,.chapter-card h3{margin:0;font-size:1.125rem;line-height:1.4}.subject-card p{margin:0;font-size:.9375rem}.subject-progress{margin-top:auto}.exam-card-tags{flex-wrap:wrap;align-items:center;gap:.375rem;display:flex}.exam-card-desc{font-size:.9375rem}.exam-card-meta{gap:1.5rem;margin:0;display:flex}.exam-card-meta dt{color:var(--color-muted);font-size:.875rem}.exam-card-meta dd{margin:0;font-weight:600}.exam-card-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:auto;display:flex}.tab-group{background:var(--color-badge-bg);border-radius:var(--radius);flex-wrap:wrap;align-self:flex-start;gap:.25rem;margin-bottom:1rem;padding:.25rem;display:flex}.tab{min-height:44px;font:inherit;cursor:pointer;color:var(--color-text);background:0 0;border:2px solid #0000;border-radius:8px;padding:0 1rem;font-weight:600}.tab[aria-pressed=true]{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.exam-tabs{flex-direction:column;display:flex}.hero{flex-flow:wrap;align-items:center;gap:2rem;padding:2.5rem}.hero-copy{flex-direction:column;flex:380px;gap:1rem;min-width:0;display:flex}.hero-copy h1{margin:0;font-size:2.25rem;line-height:1.25}.hero-copy p{margin:0}.sample-q{background:var(--color-bg);flex:360px;min-width:0}.steps{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.steps li{flex-direction:row;align-items:flex-start}.steps h3{margin:0 0 .25rem;font-size:1.125rem}.steps p{margin:0}.step-num{background:var(--color-primary);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-weight:700;display:inline-flex}.signup-cta{flex-flow:wrap;justify-content:space-between;align-items:center;gap:1rem}.signup-cta h2{margin:0}.signup-cta p{margin:.25rem 0 0}.crumbs{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .25rem;display:flex}.keyword-chips{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.keyword-chips li{background:var(--color-badge-bg);border-radius:999px;padding:.125rem .75rem;font-size:.9375rem}.review-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:1.5rem;margin:1rem 0 1.5rem;display:grid}.keyword-panel h2{font-size:1.125rem}.keyword-list{margin:0;padding:0;list-style:none}.keyword-list li{border-bottom:1px solid var(--color-border);border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;min-height:44px;padding:0 .5rem;display:flex}.keyword-list li.current{background:var(--color-primary-soft);font-weight:700}.kw-status{white-space:nowrap;font-size:.875rem;font-weight:600}.keyword-actions{flex-direction:column;gap:.5rem;display:flex}.mindmap{grid-template-columns:minmax(0,1fr) 200px minmax(0,1fr);align-items:center;gap:1.5rem;display:grid;position:relative}.mindmap-side{flex-direction:column;gap:1rem;display:flex}.mindmap-branch{font-size:.9375rem;line-height:1.45;position:relative}.mindmap-branch h3{color:var(--color-primary);margin:0;font-size:1.0625rem}.mindmap-branch ul{margin:0;padding-left:1.125rem}.mindmap-side:first-child .mindmap-branch:after,.mindmap-side:last-child .mindmap-branch:before{content:"";border-top:2px solid #8a96a3;width:1.5rem;position:absolute;top:50%}.mindmap-side:first-child .mindmap-branch:after{right:-1.5rem}.mindmap-side:last-child .mindmap-branch:before{left:-1.5rem}.mindmap-center{background:var(--color-primary);color:#fff;border-radius:var(--radius);text-align:center;justify-content:center;align-items:center;min-height:96px;padding:.75rem;font-size:1.125rem;font-weight:700;display:flex}.mindmap-center p{margin:0}@media (width<=1100px){.review-layout,.mindmap{grid-template-columns:minmax(0,1fr)}.mindmap-center{order:-1}.mindmap-branch:before,.mindmap-branch:after{display:none}}.study-clock{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:.5rem;margin:0;padding:.25rem .75rem;display:flex}.study-clock .num{font-size:1.25rem;font-weight:700}.flash-layout{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;margin-top:1rem;display:flex}.flash-main{flex-direction:column;flex:999 560px;gap:1rem;min-width:0;display:flex}.flash-layout .keyword-panel{flex:280px}.flashcard{min-height:360px;padding:2rem}.flash-front{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;min-height:300px;display:flex}.flash-front p{max-width:460px;margin:0}.flash-term{color:var(--color-text);font-size:2.25rem;font-weight:700;line-height:1.25}.flash-back{flex-direction:column;gap:.875rem;display:flex}.flash-back h2{margin:0;font-size:1.375rem}.flash-back p{margin:0}.flash-def{font-size:1.0625rem}.flash-key,.flash-example{border-radius:8px;padding:.75rem 1rem}.flash-key{background:var(--color-primary-soft)}.flash-example{background:var(--color-bg)}.flash-label{color:var(--color-primary);font-size:.875rem;font-weight:600}.flash-example .flash-label{color:var(--color-muted)}.rate-group legend{margin-bottom:.5rem;padding:0;font-weight:700}.rate-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.btn-rate{border:2px solid;min-height:52px;font-weight:700}.btn-rate.tone-danger{background:var(--color-danger-soft)}.btn-rate.tone-warn{background:var(--color-warn-soft)}.btn-rate.tone-success{background:var(--color-success-soft)}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.summary-grid div{background:var(--color-bg);border-radius:8px;padding:.75rem}.summary-grid div.tone-success{background:var(--color-success-soft)}.summary-grid div.tone-warn{background:var(--color-warn-soft)}.summary-grid div.tone-danger{background:var(--color-danger-soft)}.summary-grid dt{font-size:.9375rem}.summary-grid dd{color:var(--color-text);margin:0;font-size:1.5rem;font-weight:700}@media (width<=600px){.rate-buttons,.summary-grid,.week-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero{padding:1.25rem}.hero-copy h1{font-size:1.75rem}.countdown-cell{flex:1 1 0;min-width:0}.countdown-value{font-size:1.5rem}}.ask-ai{border-top:1px solid var(--color-border);flex-direction:column;gap:.75rem;padding-top:.75rem;display:flex}.ask-ai label{margin-bottom:.25rem;font-weight:600;display:block}.ask-ai-row{align-items:flex-start;gap:.5rem;display:flex}.ask-ai-row textarea{resize:vertical;flex:1}.ask-ai .key-hint{margin:.25rem 0 0}.ai-answer{background:var(--color-bg);border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.ai-asked,.ai-usage{margin:0;font-size:.9375rem}.ai-text p{margin:0 0 .625rem}.ai-text ul{margin:0 0 .625rem;padding-left:1.25rem}.report-form{flex-direction:column;gap:.5rem;display:flex}.report-form label{font-weight:600}.report-form .btn{align-self:flex-start}.result-q-tools{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.75rem;display:flex}.result-q-tools .ask-ai{align-self:stretch}.flagged-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.flagged-list h2{margin:0;font-size:1.125rem}.stat-grid dt,.stat-grid dd{margin:0}.stat-grid dd{font-size:1.75rem;font-weight:700}.queue-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.queue-item{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.5rem;padding:1rem 0;display:flex}.queue-item:last-child{border-bottom:0}.queue-item p{margin:0}.queue-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.queue-actions input{flex:260px;width:auto}.report-messages{color:var(--color-text);margin:0;padding-left:1.25rem}.ai-report{background:var(--color-bg);border-radius:8px;padding:.75rem 1rem}.q-preview .result-options{margin-bottom:.5rem}.q-editor{flex-direction:column;gap:.25rem;display:flex}.option-field{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem .75rem;display:grid}.option-field label:first-child{grid-column:1/-1}.inline-radio{white-space:nowrap;align-items:center;gap:.375rem;display:inline-flex;font-weight:400!important}.inline-radio input{width:1.125rem;height:1.125rem;min-height:0}.draft-form{grid-template-columns:220px minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.draft-form .field{margin:0}@media (width<=700px){.draft-form{grid-template-columns:minmax(0,1fr)}}.card .link-button,.ai-answer .link-button,.result-q-tools .link-button{align-self:flex-start}.exam-card-desc{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.generate-exam{flex-direction:column;gap:.25rem;display:inline-flex}.field-error{color:var(--color-danger);font-size:.875rem}.recommendation-list,.mock-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.recommendation,.mock-item{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.recommendation:first-child,.mock-item:first-child{border-top:0}.recommendation h3,.mock-item h3{margin:0 0 .25rem;font-size:1rem}.recommendation p,.mock-item p{margin:0}.recommendation>div:first-child,.mock-item>div:first-child{flex:18rem;min-width:0}.mock-panel{margin-bottom:1.5rem}.exam-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.passage{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);max-height:calc(100vh - 7rem);padding:.75rem 1rem;position:sticky;top:.5rem;overflow:auto}.passage summary{cursor:pointer;font-weight:600}.passage-instruction{color:var(--color-muted);margin:.5rem 0}.passage-text{white-space:pre-wrap;line-height:1.6}.essay-input textarea{width:100%;min-height:6rem;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;padding:.6rem .75rem;line-height:1.6}.essay-count{color:var(--color-muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;margin:.25rem 0 0;display:flex}.essay-limit.full{color:var(--color-danger);font-weight:600}@media (width<=1023.98px){.exam-split{grid-template-columns:minmax(0,1fr)}.passage{max-height:none;position:static}}.essay-result{gap:.75rem;margin-top:.75rem;display:grid}.essay-answer-title{margin:0 0 .25rem;font-weight:600}.essay-answer-text,.essay-guide-text{white-space:pre-wrap;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6rem .75rem;line-height:1.6}.essay-items{border-collapse:collapse;width:100%}.essay-items th,.essay-items td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:.4rem .5rem}.essay-items td.num{text-align:right;white-space:nowrap}.essay-quote{border-left:3px solid var(--color-border);color:var(--color-muted);margin:.25rem 0 0;padding-left:.6rem}.essay-guide summary{cursor:pointer;font-weight:600}.essay-rubric{margin:.5rem 0 0;padding-left:1.2rem}.dispute-card textarea,.dispute-card input{font:inherit}.rich-text .math-pending{font-family:inherit;font-size:inherit;opacity:.8;background:0 0;padding:0}
