.record-grid[data-v-2373b5d2]{display:grid;grid-template-columns:minmax(0,1fr) 88px 100px 126px;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) var(--sp-4);min-width:0;font-size:var(--fs-sm)}.record-head[data-v-2373b5d2]{color:var(--ink-2);background:var(--sheet-sunk);border-radius:var(--radius) var(--radius) 0 0;font-size:var(--fs-xs)}.record-head.removable[data-v-2373b5d2]{grid-template-columns:minmax(0,1fr) 88px 100px 126px 52px}.record-row[data-v-2373b5d2]{position:relative;border-top:1px solid var(--line)}.record-row a[data-v-2373b5d2]{color:var(--ink);text-decoration:none;overflow-wrap:anywhere}.record-row a[data-v-2373b5d2]:hover{background:var(--blue-soft)}.record-row.removable a[data-v-2373b5d2]{padding-inline-end:80px}.record-row .btn[data-v-2373b5d2]{position:absolute;inset-inline-end:var(--sp-4);top:50%;translate:0 -50%}.record-score[data-v-2373b5d2]{font-size:var(--fs-lg);font-weight:700}.record-score small[data-v-2373b5d2]{font-size:var(--fs-xs);font-weight:400}@media(max-width:740px){.record-head[data-v-2373b5d2]{display:none}.record-grid[data-v-2373b5d2]{grid-template-columns:minmax(0,1fr) auto}.record-row[data-v-2373b5d2]:first-of-type{border-top:0}.record-row time[data-v-2373b5d2]{justify-self:end}.record-row.removable a[data-v-2373b5d2]{padding-inline-end:var(--sp-4)}.record-row.removable[data-v-2373b5d2]{padding-bottom:var(--sp-2)}.record-row .btn[data-v-2373b5d2]{position:static;translate:none;margin-inline-start:var(--sp-4)}}.home-title[data-v-99b76d20]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--sp-3)}.resume[data-v-99b76d20]{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--sp-6);border-inline-start:4px solid var(--blue)}.resume h2[data-v-99b76d20]{font-size:var(--fs-xl);margin:var(--sp-1) 0 var(--sp-2)}.resume-meta[data-v-99b76d20]{display:flex;gap:var(--sp-5)}.resume-meta dt[data-v-99b76d20],.facts dt[data-v-99b76d20]{color:var(--muted);font-size:var(--fs-xs)}.resume-meta dd[data-v-99b76d20],.facts dd[data-v-99b76d20]{font-size:var(--fs-xl);font-weight:700}.subjects[data-v-99b76d20]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);margin-top:var(--sp-4)}.subject-head[data-v-99b76d20]{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:var(--sp-2)}.facts[data-v-99b76d20]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-block:var(--sp-4);padding-block:var(--sp-3);border-block:1px solid var(--line)}.facts div+div[data-v-99b76d20]{border-inline-start:1px solid var(--line);padding-inline-start:var(--sp-4)}.facts dd[data-v-99b76d20]{white-space:nowrap}.facts dd span[data-v-99b76d20]{font-size:var(--fs-sm);font-weight:400}.rules[data-v-99b76d20]{margin-top:var(--sp-3)}.rules summary[data-v-99b76d20]{width:fit-content;padding-block:var(--sp-1);color:var(--blue);font-size:var(--fs-sm)}.rules td[data-v-99b76d20]:last-child{text-align:right;white-space:nowrap}.recent[data-v-99b76d20]{margin-top:var(--sp-6)}.start-error[data-v-99b76d20]{margin-block:var(--sp-3)}@media(max-width:980px){.subjects[data-v-99b76d20]{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.resume[data-v-99b76d20]{grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2);padding-block:var(--sp-3)}.resume>div[data-v-99b76d20]:first-child{grid-column:1 / -1}.resume-meta[data-v-99b76d20]{gap:var(--sp-3)}.subject[data-v-99b76d20]{padding-block:var(--sp-3)}.facts[data-v-99b76d20]{margin-block:var(--sp-3);padding-block:var(--sp-2)}.facts div+div[data-v-99b76d20]{padding-inline-start:var(--sp-2)}.rules[data-v-99b76d20]{margin-top:var(--sp-2)}}.drawer .rail-heading[data-v-529923b9]{display:none}.sheet-group+.sheet-group[data-v-529923b9]{margin-top:var(--sp-2)}.sheet-fold[data-v-529923b9],.sheet-item[data-v-529923b9]{width:100%;border-radius:var(--radius-sm);color:var(--ink);font-size:var(--fs-sm)}.sheet-fold[data-v-529923b9]{display:flex;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2);margin-bottom:var(--sp-2);border:1px solid var(--line-strong);background:var(--sheet-sunk)}.sheet-items[data-v-529923b9]{display:grid;gap:var(--sp-2)}.sheet-items.compact[data-v-529923b9]{grid-template-columns:repeat(4,minmax(0,1fr))}.sheet-item[data-v-529923b9]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 var(--sp-1);padding:var(--sp-2);min-height:42px;text-align:start;background:var(--sheet);border:1px solid var(--control-line);border-inline-start-width:3px}.sheet-item span[data-v-529923b9],.sheet-item small[data-v-529923b9]{font-size:var(--fs-xs)}.sheet-item small[data-v-529923b9]{grid-column:1 / -1;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sheet-item.complete[data-v-529923b9]{border-inline-start-color:var(--ok)}.sheet-item.partial[data-v-529923b9]{border-inline-start-color:var(--warn)}.sheet-item.current[data-v-529923b9],.sheet-item[data-v-529923b9]:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-soft)}.sheet-items.compact .sheet-item[data-v-529923b9]{grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:var(--sp-1);min-height:44px;padding:var(--sp-1);border-inline-start-width:1px;line-height:1.15;text-align:center;white-space:nowrap}.sheet-items.compact .complete[data-v-529923b9]:not(.current,:hover){color:var(--ok);background:var(--ok-soft)}.sheet-items.compact .correct[data-v-529923b9]{color:var(--ok);background:var(--ok-soft)}.sheet-items.compact .incorrect[data-v-529923b9]{color:var(--seal);background:var(--seal-soft)}.sheet-items.compact .current[data-v-529923b9]{outline:var(--focus);outline-offset:-2px}.sheet-items.compact .current[data-v-529923b9]:focus-visible{outline-offset:2px}.sheet-item.marked:not(.incorrect,.correct) .sheet-mark[data-v-529923b9]{color:var(--warn)}.sheet-legend[data-v-529923b9]{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-3)}.qc-table-wrap[data-v-d4a4bc83]{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.practice-content[data-v-f36ae1c5]{min-width:0;line-height:1.8}.paper-outline[data-v-f36ae1c5]{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin-block:var(--sp-3) var(--sp-5);padding-block:var(--sp-2);border-block:1px solid var(--line)}.paper-outline a[data-v-f36ae1c5]{padding-block:var(--sp-1);font-size:var(--fs-sm)}.paper-section+.paper-section[data-v-f36ae1c5]{margin-top:var(--sp-6)}.paper-section>h3[data-v-f36ae1c5]{display:flex;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);font-size:var(--fs-lg);scroll-margin-block-start:var(--sp-4)}.section-number[data-v-f36ae1c5]{color:var(--blue);font-family:var(--font-sans)}.practice-content[data-v-f36ae1c5] .qc{margin:0}.practice-content[data-v-f36ae1c5] p:last-child{margin-bottom:0}.practice-content[data-v-f36ae1c5] .qc-list{margin-block:var(--sp-3)}.practice-content[data-v-f36ae1c5] .qc-list:last-child{margin-bottom:0}.practice-content[data-v-f36ae1c5] .qc-list>li{column-gap:var(--sp-3);margin-block:var(--sp-3)}.practice-content[data-v-f36ae1c5] .qc-list>li:last-child{margin-bottom:0}.practice-content[data-v-f36ae1c5] .qc-marker{font-weight:600}.practice-content[data-v-f36ae1c5] .qc-note{padding-inline-start:var(--sp-3);border-inline-start:2px solid var(--line-strong)}.practice-content[data-v-f36ae1c5] .qc-table-wrap{margin-block:var(--sp-4)}.practice-content[data-v-f36ae1c5] table{margin:0;line-height:1.55}.practice-content[data-v-f36ae1c5] td:last-child{overflow-wrap:normal}.practice-content[data-v-f36ae1c5] tbody tr:nth-child(2n){background:var(--paper)}@media(max-width:560px){.paper-outline[data-v-f36ae1c5]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-3)}.paper-outline a[data-v-f36ae1c5]{padding-block:var(--sp-2)}.paper-section+.paper-section[data-v-f36ae1c5]{margin-top:var(--sp-5)}.practice-content[data-v-f36ae1c5] th,.practice-content[data-v-f36ae1c5] td{padding-inline:var(--sp-2);font-size:13px}}.directory-heading[data-v-70aa5bda]{font:700 var(--fs-md)/1.4 var(--font-sans);margin-bottom:var(--sp-1)}.drawer .directory-heading[data-v-70aa5bda]{display:none}.directory-actions[data-v-70aa5bda]{margin-block:var(--sp-2) var(--sp-4)}.directory-module+.directory-module[data-v-70aa5bda]{margin-top:var(--sp-2)}.directory-toggle[data-v-70aa5bda],.directory-question[data-v-70aa5bda]{width:100%;border-radius:var(--radius-sm);text-align:start;color:var(--ink)}.directory-toggle[data-v-70aa5bda]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--sp-2);padding:var(--sp-2);line-height:1.4}.directory-toggle strong[data-v-70aa5bda]{display:block;font-size:var(--fs-sm)}.directory-toggle small[data-v-70aa5bda]{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.module-toggle[data-v-70aa5bda]{border:1px solid var(--line-strong);background:var(--sheet-sunk)}.fold-icon[data-v-70aa5bda]{color:var(--blue);font:700 var(--fs-md)/1.1 var(--font-sans)}.module-units[data-v-70aa5bda]{margin:var(--sp-2) 0 var(--sp-3) var(--sp-2);padding-inline-start:var(--sp-2);border-inline-start:1px solid var(--line-strong)}.directory-unit+.directory-unit[data-v-70aa5bda]{margin-top:var(--sp-2)}.unit-toggle[data-v-70aa5bda]{border:1px solid var(--line);background:var(--sheet)}.unit-meta[data-v-70aa5bda]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);margin-top:var(--sp-1)}.directory-toggle[data-v-70aa5bda]:hover,.directory-toggle.contains-current[data-v-70aa5bda]{border-color:var(--blue)}.directory-questions[data-v-70aa5bda]{display:grid;gap:var(--sp-1);margin:var(--sp-1) 0 var(--sp-2);padding:0;list-style:none}.directory-question[data-v-70aa5bda]{display:grid;gap:var(--sp-1);padding:var(--sp-2);border:1px solid var(--line);background:var(--sheet)}.question-meta[data-v-70aa5bda]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);color:var(--muted)}.question-meta strong[data-v-70aa5bda]{color:var(--ink)}.question-meta[data-v-70aa5bda]>:last-child{margin-inline-start:auto;white-space:nowrap}.question-title[data-v-70aa5bda]{font-size:var(--fs-sm);line-height:1.4;overflow-wrap:anywhere}.directory-question.complete .question-state[data-v-70aa5bda]{color:var(--ok)}.directory-question.partial .question-state[data-v-70aa5bda]{color:var(--warn)}.directory-question[data-v-70aa5bda]:hover,.directory-question[aria-current][data-v-70aa5bda]{border-color:var(--blue)}.directory-question[aria-current][data-v-70aa5bda]{background:var(--blue-soft);box-shadow:inset 3px 0 var(--blue)}.answer-text[data-v-e6bc4a9f]{field-sizing:content}.practice-body[data-v-e6bc4a9f]{grid-template-columns:276px minmax(0,1fr) clamp(290px,23vw,360px)}.practice-body>.exam-rail[data-v-e6bc4a9f]{padding-inline:var(--sp-4)}.practice-paper .exam-paper-inner[data-v-e6bc4a9f]{max-width:44rem;padding-bottom:var(--sp-5)}.practice-paper h2[data-v-e6bc4a9f]{margin-block:var(--sp-2) var(--sp-4);line-height:1.35}.paper-position[data-v-e6bc4a9f]{color:var(--blue);font-weight:700}.paper-position span[data-v-e6bc4a9f]{font-weight:400}.paper-facts[data-v-e6bc4a9f]{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin-bottom:var(--sp-4)}.paper-facts>div[data-v-e6bc4a9f]{display:flex;align-items:baseline;gap:var(--sp-2)}.paper-facts dt[data-v-e6bc4a9f]{color:var(--muted);font-size:var(--fs-xs)}.paper-facts dd[data-v-e6bc4a9f]{font-size:var(--fs-sm);font-weight:600}.practice-paper .exam-attachment[data-v-e6bc4a9f]{align-items:center;padding:var(--sp-2) var(--sp-3)}.practice-paper .exam-attachment strong[data-v-e6bc4a9f]{font-size:var(--fs-sm)}.practice-paper .exam-attachment small[data-v-e6bc4a9f]{font-size:var(--fs-xs)}.theory-paper[data-v-85183e5e]{max-width:min(72ic,56rem);margin-inline-start:0}.question-meta[data-v-85183e5e]{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.theory-paper .theory-stem[data-v-85183e5e]{font:700 var(--fs-lg)/1.7 var(--font-sans)}.theory-options[data-v-85183e5e]{display:grid;gap:var(--sp-3)}.theory-options label[data-v-85183e5e]{display:flex;align-items:baseline;gap:var(--sp-3);min-height:44px;padding:var(--sp-2) var(--sp-3);background:var(--sheet);border:1px solid var(--control-line);border-radius:var(--radius);cursor:pointer;overflow-wrap:anywhere}.theory-options label[data-v-85183e5e]:hover,.theory-options label.picked[data-v-85183e5e]{border-color:var(--blue);background:var(--blue-soft)}.theory-options label[data-v-85183e5e]:has(:disabled){cursor:default}.theory-result[data-v-85183e5e]{margin-top:var(--sp-4);padding:var(--sp-3);border-radius:var(--radius-sm)}.theory-result.correct[data-v-85183e5e]{color:var(--ok);background:var(--ok-soft)}.theory-result.incorrect[data-v-85183e5e]{color:var(--seal);background:var(--seal-soft)}.question-nav[data-v-85183e5e]{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-top:var(--sp-3)}.question-nav .btn[data-v-85183e5e]{width:100%}.theory-tools[data-v-85183e5e],.review-tools[data-v-85183e5e]{margin-top:var(--sp-3)}.review-tools .btn[data-v-85183e5e]{margin-top:var(--sp-2)}.review-filter[data-v-85183e5e]{margin-bottom:var(--sp-3)}.grade .actions[data-v-85183e5e]{margin-top:var(--sp-2)}.mobile-review[data-v-85183e5e]{display:none}@media(max-width:980px){.mobile-review[data-v-85183e5e]{display:inline-flex}}.mistake-search[data-v-d5a4f81b]{display:grid;gap:var(--sp-1);width:min(100%,20rem);font-size:var(--fs-sm)}.mistake-list[data-v-d5a4f81b]{list-style:none;margin:0;padding:0}.mistake-list li[data-v-d5a4f81b]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);padding:var(--sp-4)}.mistake-list li+li[data-v-d5a4f81b]{border-top:1px solid var(--line)}.mistake-list p[data-v-d5a4f81b]{margin-top:var(--sp-1);overflow-wrap:anywhere}.note-node[data-v-cf41fe25]{margin-bottom:var(--sp-3)}.note-node>h3[data-v-cf41fe25]{margin-bottom:var(--sp-3)}.note-node>h4[data-v-cf41fe25]{margin-bottom:var(--sp-2)}.note-text[data-v-cf41fe25]{white-space:pre-wrap}.note-accent[data-v-cf41fe25]{color:var(--note-source-color);color:color-mix(in srgb,var(--note-source-color) 45%,var(--ink))}.note-emphasis[data-v-cf41fe25]{font-weight:700}.note-children[data-v-cf41fe25]{padding-inline-start:var(--sp-3);border-inline-start:2px solid var(--line)}.note-node img[data-v-cf41fe25]{display:block;width:min(100%,540px);height:auto;margin-top:var(--sp-3)}.code-block[data-v-cf41fe25]{min-width:0;margin-block:var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--sheet-sunk)}.code-block header[data-v-cf41fe25]{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);padding-inline:var(--sp-3);border-bottom:1px solid var(--line-strong)}.code-block pre[data-v-cf41fe25]{white-space:pre;overflow-wrap:normal}.notes[data-v-7bd70e22]{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--sp-5);align-items:start}.note-index[data-v-7bd70e22]{display:grid;gap:var(--sp-2);padding:var(--sp-3);position:sticky;top:84px;max-height:calc(100dvh - 100px);overflow:auto}.note-modules[data-v-7bd70e22]{display:grid;gap:var(--sp-2)}.note-index button[data-v-7bd70e22]{width:100%;padding:var(--sp-2);text-align:start;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent}.note-index .note-module[data-v-7bd70e22]{display:flex;justify-content:space-between;gap:var(--sp-2);background:var(--sheet-sunk);color:var(--ink-2);font-size:var(--fs-sm);font-weight:700}.note-questions[data-v-7bd70e22]{display:grid;padding:var(--sp-1) 0 0 var(--sp-2);gap:var(--sp-1)}.note-questions button[data-v-7bd70e22]{display:grid;font-size:var(--fs-sm)}.note-questions button[data-v-7bd70e22]:hover,.note-questions button[aria-current][data-v-7bd70e22]{background:var(--blue-soft);color:var(--blue);border-color:var(--blue)}.note-sheet[data-v-7bd70e22]{padding:var(--sp-6);overflow-wrap:anywhere}.note-id[data-v-7bd70e22]{color:var(--seal);font-weight:700;margin-bottom:var(--sp-2)}.note-sheet>h2[data-v-7bd70e22]{margin-bottom:var(--sp-5)}.notes-picker[data-v-7bd70e22]{display:none}@media(max-width:980px){.notes[data-v-7bd70e22]{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.note-index[data-v-7bd70e22]{position:static;max-height:none;overflow:visible}.note-modules[data-v-7bd70e22]{display:none}.notes-picker[data-v-7bd70e22]{display:grid;gap:var(--sp-1)}.note-sheet[data-v-7bd70e22]{padding:var(--sp-4)}}.sign-in[data-v-d7c13942]{width:min(100%,400px);margin:var(--sp-5) auto 0}.sign-in h1[data-v-d7c13942]{margin-bottom:var(--sp-2);font-size:var(--fs-2xl)}.account-tabs[data-v-d7c13942]{display:flex;gap:var(--sp-5);margin:var(--sp-5) 0 var(--sp-4);border-bottom:1px solid var(--line)}.account-tabs button[data-v-d7c13942]{min-height:40px;padding:0 var(--sp-1);border:0;border-bottom:2px solid transparent;background:transparent}.account-tabs button[aria-pressed=true][data-v-d7c13942]{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}.captcha[data-v-d7c13942]{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,142px);gap:var(--sp-2);align-items:center;margin-top:var(--sp-2)}.captcha-art[data-v-d7c13942]{display:block;overflow:hidden;border:1px solid var(--control-line);border-radius:var(--radius-sm)}.captcha-art[data-v-d7c13942] svg{display:block;width:100%;height:40px}.account-overview[data-v-d7c13942],.return-action[data-v-d7c13942]{margin-bottom:var(--sp-5)}.account-summaries[data-v-d7c13942]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.summary-facts[data-v-d7c13942]{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}.summary-facts>div[data-v-d7c13942]{display:grid;grid-template-columns:minmax(6.5em,1fr) minmax(0,2fr);gap:var(--sp-2)}.summary-facts dt[data-v-d7c13942]{color:var(--muted)}@media(max-width:720px){.account-summaries[data-v-d7c13942]{grid-template-columns:minmax(0,1fr)}}.stat-grid[data-v-f43e0b55]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}.stat-value[data-v-f43e0b55]{font-size:var(--fs-3xl);line-height:1.25}.admin-section[data-v-f43e0b55]{margin-top:var(--sp-6)}.admin-table[data-v-f43e0b55]{font-size:var(--fs-sm)}.admin-table td[data-v-f43e0b55]{overflow-wrap:anywhere}.admin-table tr:last-child td[data-v-f43e0b55]{border-bottom:0}.model-form[data-v-f43e0b55]{max-width:560px}@media(max-width:980px){.stat-grid[data-v-f43e0b55]{grid-template-columns:minmax(0,1fr)}}:root{--paper: #f5f2ea;--sheet: #fffdf8;--sheet-sunk: #efebe1;--line: #e0d9c9;--line-strong: #c9bfaa;--control-line: #8a7b65;--ink: #1c2026;--ink-2: #444b55;--muted: #646975;--blue: #1f4e8c;--blue-hover: #183f72;--blue-soft: #e6edf6;--seal: #b23a2e;--seal-soft: #f7e7e3;--ok: #24663e;--ok-soft: #e5f1e9;--warn: #8b540e;--warn-soft: #f8eedb;--on-action: #fff;--font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", STSong, SimSun, serif;--font-sans: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 36px;--fs-4xl: 48px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--radius-sm: 4px;--radius: 6px;--shadow-pop: 0 12px 32px rgb(28 32 38 / 12%);--scrim: rgb(28 32 38 / 45%);--focus: 2px solid var(--blue);color:var(--ink);background:var(--paper);font:400 var(--fs-md)/1.65 var(--font-sans)}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,p,dl,dd{margin:0}a{color:var(--blue);text-underline-offset:.2em}button,input,textarea,select{font:inherit;color:inherit}button,summary{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:var(--focus);outline-offset:3px}h1,h2,h3{font-family:var(--font-serif);font-weight:700;line-height:1.25}h1{font-size:clamp(var(--fs-3xl),4vw,var(--fs-4xl))}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}small,.small{font-size:var(--fs-sm)}.nums{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.page{width:min(1200px,calc(100% - 2 * var(--sp-6)));margin-inline:auto;padding-block:var(--sp-6) var(--sp-8)}.page-title{margin-bottom:var(--sp-5)}.page-title p{margin-top:var(--sp-2);color:var(--ink-2)}.section-title{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin-bottom:var(--sp-3)}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.sheet{min-width:0;background:var(--sheet);border:1px solid var(--line-strong);border-radius:var(--radius)}.panel{padding:var(--sp-5)}.panel>h2{margin-bottom:var(--sp-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:40px;padding:var(--sp-1) var(--sp-4);background:var(--blue);border:1px solid var(--blue);border-radius:var(--radius);color:var(--on-action);font:600 var(--fs-sm)/1.3 var(--font-sans);text-decoration:none;text-align:center}.btn:hover,.btn:active{background:var(--blue-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.ghost{color:var(--ink);background:var(--sheet);border-color:var(--control-line)}.btn.ghost:hover,.btn.ghost:active{background:var(--sheet-sunk)}.btn.entry{color:var(--blue);background:var(--blue-soft)}.btn.entry:hover,.btn.entry:active{color:var(--on-action);background:var(--blue)}.btn.seal{color:var(--on-action);background:var(--seal);border-color:var(--seal)}.btn.remove{color:var(--seal);background:var(--sheet);border-color:var(--seal)}.btn.seal:hover,.btn.seal:active,.btn.remove:hover,.btn.remove:active{color:var(--seal);background:var(--seal-soft)}.btn.text{color:var(--blue);background:transparent;border-color:transparent;padding-inline:var(--sp-1)}.btn.text:hover{text-decoration:underline}.btn.compact{min-height:32px;padding-inline:var(--sp-3)}.btn:disabled{opacity:.55}.tag{display:inline-block;width:fit-content;border-radius:999px;padding:2px var(--sp-2);color:var(--ink-2);background:var(--sheet-sunk);font-size:var(--fs-xs);white-space:nowrap}.tag.blue{color:var(--blue);background:var(--blue-soft)}.tag.ok{color:var(--ok);background:var(--ok-soft)}.tag.warn{color:var(--warn);background:var(--warn-soft)}.tag.seal{color:var(--seal);background:var(--seal-soft)}.form{display:grid;gap:var(--sp-4)}.form label,.field{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);min-width:0}.form label{font-size:var(--fs-sm);font-weight:600}input:not([type=checkbox],[type=radio],[type=file]),select,textarea{width:100%;min-width:0;min-height:40px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--control-line);border-radius:var(--radius-sm);background:var(--sheet)}input::placeholder,textarea::placeholder{color:var(--muted)}input[type=checkbox],input[type=radio]{accent-color:var(--blue)}input[type=file]{width:100%;min-width:0}input[type=file]::file-selector-button{padding:var(--sp-1) var(--sp-2);margin-inline-end:var(--sp-2);border:1px solid var(--control-line);border-radius:var(--radius-sm);background:var(--sheet);color:var(--ink);font:600 var(--fs-sm)/1.4 var(--font-sans);cursor:pointer}input[type=file]::file-selector-button:hover{background:var(--blue-soft)}input[type=file]:disabled::file-selector-button{cursor:default}textarea{min-height:120px;resize:vertical}.field{margin-top:var(--sp-3)}.error{color:var(--seal)}.success{color:var(--ok)}.warning{padding:var(--sp-3);border-radius:var(--radius-sm);color:var(--warn);background:var(--warn-soft)}.state{display:grid;justify-items:start;gap:var(--sp-2);padding:var(--sp-5)}.state strong{font-weight:700}.loading-bars{display:grid;gap:var(--sp-2);width:100%}.loading-bars span{width:min(100%,22rem);height:10px;border-radius:var(--radius-sm);background:var(--sheet-sunk)}.loading-bars span:last-child{width:min(70%,14rem)}.rule-table,.table-scroll,.qc-table-wrap{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;text-align:left}td,th{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--ink-2);background:var(--sheet-sunk);font-weight:600}pre{margin:0;padding:var(--sp-3);overflow:auto;background:var(--sheet-sunk)}code,pre{font-family:var(--font-mono);font-size:var(--fs-sm)}.top{position:sticky;top:0;z-index:2;background:var(--sheet);border-bottom:1px solid var(--line-strong)}.top-inner{width:min(1200px,calc(100% - 2 * var(--sp-6)));min-height:68px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.brand{display:flex;align-items:center;gap:var(--sp-3);color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;flex:0 0 36px;height:36px;color:var(--seal);border:2px solid var(--seal);border-radius:var(--radius-sm);font:700 var(--fs-xl)/1 var(--font-serif)}.brand small{display:block;color:var(--ink-2);font-size:var(--fs-xs);line-height:1.4}.brand strong{display:block;font:700 var(--fs-lg)/1.3 var(--font-serif)}.top nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-2) var(--sp-5);font-size:var(--fs-sm)}.top nav>a,.account-menu>summary{color:var(--ink-2);text-decoration:none;padding-block:var(--sp-2)}.top nav>a:hover,.top nav>.nav-current,.account-menu>summary:hover{color:var(--blue);text-decoration:underline;text-underline-offset:6px}.account-menu{position:relative}.account-menu>summary{max-width:14ch;overflow-wrap:anywhere}.account-menu-panel{position:absolute;z-index:3;inset-inline-end:0;top:100%;display:grid;justify-items:start;gap:var(--sp-2);width:12rem;padding:var(--sp-3);box-shadow:var(--shadow-pop)}dialog{width:min(420px,calc(100% - 2 * var(--sp-4)));max-height:min(85dvh,44rem);overflow:auto;padding:var(--sp-5);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);background:var(--sheet);box-shadow:var(--shadow-pop)}dialog::backdrop{background:var(--scrim)}dialog h2{margin-bottom:var(--sp-3)}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-5)}dialog.drawer{width:min(100%,540px);margin-block:auto 0;border-radius:var(--radius) var(--radius) 0 0}.exam-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100dvh}.exam-top,.exam-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2) var(--sp-4);padding:var(--sp-3) var(--sp-5);background:var(--sheet)}.exam-top{border-bottom:1px solid var(--line-strong)}.exam-top h1{font:700 var(--fs-md)/1.35 var(--font-sans)}.exam-heading{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4)}.exam-heading>a{font-size:var(--fs-sm)}.exam-top .progress{font-size:var(--fs-sm)}.exam-clock{white-space:nowrap;font-weight:700}.exam-clock span{color:var(--muted);font-weight:400;font-size:var(--fs-xs);margin-inline-end:var(--sp-1)}.exam-clock.urgent,.exam-clock.urgent span{color:var(--seal)}.exam-clock.urgent{background:var(--seal-soft);border-radius:var(--radius-sm);padding-inline:var(--sp-2)}@media(prefers-reduced-motion:no-preference){.exam-clock.final-minute{animation:clock-pulse .55s ease-out}@keyframes clock-pulse{50%{transform:scale(1.07)}}}.exam-body{display:grid;grid-template-columns:220px minmax(0,1fr) clamp(290px,23vw,360px);min-width:0;min-height:0}.exam-body.theory{grid-template-columns:260px minmax(0,1fr)}.exam-rail,.exam-paper,.exam-answer{min-width:0;overflow:auto;padding:var(--sp-5)}.exam-rail{border-inline-end:1px solid var(--line-strong)}.exam-paper,.exam-answer{background:var(--sheet)}.exam-answer{border-inline-start:1px solid var(--line-strong)}.exam-paper-inner{max-width:72ic;margin-inline:auto}.exam-paper h2{margin-block:var(--sp-2) var(--sp-4);font-size:clamp(var(--fs-xl),2.3vw,var(--fs-2xl));overflow-wrap:anywhere}.exam-footer{border-top:1px solid var(--line-strong)}.exam-footer>.actions{justify-content:flex-end}.save-status{font-size:var(--fs-sm);text-align:center}.save-status .btn{margin-inline-start:var(--sp-1)}.exam-top .drawer-trigger{display:none}.exam-attachment{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--sheet-sunk);border:1px solid var(--line);border-radius:var(--radius-sm)}.exam-attachment small{display:block}.exam-answer>h2,.answer-sheet h2{font:700 var(--fs-md)/1.4 var(--font-sans);margin-bottom:var(--sp-3)}.answer-group{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--line)}.answer-group h3{font:700 var(--fs-md)/1.4 var(--font-sans)}.answer-text{min-height:200px}.drop-zone{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:var(--sp-2);padding:var(--sp-3);color:var(--ink-2);border:1px dashed var(--control-line);border-radius:var(--radius)}.drop-zone.dragging{background:var(--blue-soft);border-color:var(--blue)}.attachment-list{display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none}.attachment-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);overflow-wrap:anywhere}.grade{margin-bottom:var(--sp-4);padding:var(--sp-3);background:var(--sheet-sunk);border-radius:var(--radius-sm)}.grade strong{font-size:var(--fs-xl)}.qc{margin-top:var(--sp-5);overflow-wrap:anywhere}.qc p{margin-bottom:var(--sp-3)}.qc h3,.qc h4{margin:var(--sp-4) 0 var(--sp-2)}.qc-note{color:var(--ink-2)}.qc-list{list-style:none;padding:0}.qc-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-2);margin-block:var(--sp-2)}.qc-marker{color:var(--blue)}.qc-options{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}.qc-choice{padding-block:var(--sp-1);border-bottom:1px solid var(--line)}.qc table{margin-block:var(--sp-3);font-size:var(--fs-sm)}.qc td,.qc th{border:1px solid var(--line)}@media(max-width:980px){.page,.top-inner{width:calc(100% - 2 * var(--sp-4))}.exam-body,.exam-body.theory{display:block;overflow:auto;background:var(--sheet)}.exam-rail{display:none}.exam-top .drawer-trigger{display:inline-flex}.exam-paper,.exam-answer{overflow:visible}.exam-answer{border-inline-start:0;border-top:1px solid var(--line-strong)}.exam-top{flex-wrap:wrap}}@media(max-width:560px){.page{padding-top:var(--sp-4)}.page-title{margin-bottom:var(--sp-4)}.top-inner{gap:var(--sp-2);min-height:60px}.top nav{gap:var(--sp-1) var(--sp-2);font-size:var(--fs-xs)}.brand{gap:var(--sp-2)}.brand-mark{flex-basis:30px;height:30px;font-size:var(--fs-lg)}.brand strong{font-size:var(--fs-md)}.btn{min-height:44px}.panel,.exam-paper,.exam-answer{padding:var(--sp-4)}.exam-top,.exam-footer{padding:var(--sp-2) var(--sp-3)}.exam-top>.actions{width:100%;justify-content:space-between}.exam-top .progress,.exam-footer .save-status{font-size:var(--fs-xs)}.exam-top .btn,.exam-footer .btn{padding-inline:var(--sp-2)}.exam-footer{flex-wrap:wrap}}
