:root{--bg: #ffffff;--fg: #1a1a1a;--muted: #6b6b6b;--line: #d4d4d4;--panel: #f1f2f2;--accent: #2160c4;--accent-soft: #e6eefb;--hl: #fff176;--note: #ffd180;--ok: #2e7d32;--fs: 16px;font-family:Arial,Helvetica,PingFang SC,Microsoft YaHei,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--fg)}button{font:inherit;cursor:pointer}.muted{color:var(--muted)}.small{font-size:13px}.error{color:#c62828}.link{background:none;border:none;color:var(--accent);text-decoration:underline;padding:4px 0}.btn-primary{background:#222;color:#fff;border:none;border-radius:3px;padding:10px 22px;font-size:15px;text-decoration:none;display:inline-block}.btn-primary:disabled{background:#999;cursor:not-allowed}.center-msg{padding:80px 24px;text-align:center;line-height:2}.exam-root{--fs: 16px;display:flex;flex-direction:column;height:100vh;background:var(--bg);color:var(--fg)}.exam-root[data-textsize=large]{--fs: 19px}.exam-root[data-textsize=xlarge]{--fs: 22px}.exam-root[data-contrast=inverse]{--bg: #000;--fg: #fff;--muted: #bbb;--line: #555;--panel: #1c1c1c;--accent: #8ab4ff;--accent-soft: #1c2a44;--hl: #6b5d00;--note: #7a4a00}.exam-root[data-contrast=yellow]{--bg: #000;--fg: #ffeb3b;--muted: #d6c640;--line: #6b6200;--panel: #1a1a00;--accent: #fff59d;--accent-soft: #333000;--hl: #4a4a4a;--note: #5c3d00}.exam-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:52px;padding:0 16px;border-bottom:1px solid var(--line);flex:none}.hdr-left{display:flex;gap:14px;align-items:baseline}.brand{font-weight:700;letter-spacing:.5px}.candidate{font-size:14px}.hdr-center{text-align:center}.timer{background:none;border:none;color:var(--fg);font-size:15px;font-weight:700;padding:4px 10px}.timer.urgent{color:#d32f2f}.hdr-right{display:flex;gap:10px;align-items:center;justify-content:flex-end}.save-status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.save-status .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}.save-status.saving .dot{background:#f9a825}.save-status.offline{color:#d32f2f}.save-status.offline .dot{background:#d32f2f}.hdr-btn{background:none;border:1px solid var(--line);color:var(--fg);border-radius:3px;padding:4px 10px;font-size:14px}.hdr-btn.on{background:var(--accent-soft);border-color:var(--accent)}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:36px;background:var(--bg);border:1px solid var(--line);box-shadow:0 4px 16px #00000026;padding:8px 14px;z-index:50;min-width:190px}.menu-title{font-weight:700;font-size:13px;margin:8px 0 4px}.menu label{display:flex;gap:8px;align-items:center;font-size:14px;padding:3px 0}.part-banner{margin:10px 16px 0;padding:10px 14px;background:var(--panel);border:1px solid var(--line);display:flex;gap:14px;align-items:baseline;flex:none;font-size:var(--fs)}.exam-body{flex:1;display:flex;min-height:0;margin:10px 16px 0}.split{flex:1;display:flex;min-width:0;min-height:0}.pane{overflow-y:auto;overflow-x:hidden;min-width:0;padding:4px 20px 40px 4px}.pane+.divider+.pane{padding:4px 4px 40px 20px}.divider{width:10px;flex:none;background:var(--panel);border-left:1px solid var(--line);border-right:1px solid var(--line);cursor:col-resize;display:flex;align-items:center;justify-content:center;touch-action:none}.divider-handle{font-size:12px;background:var(--bg);border:1px solid var(--line);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex:none}.passage{font-size:var(--fs);line-height:1.65}.passage-title{font-size:calc(var(--fs) + 6px);margin:8px 0 4px}.passage-subtitle{font-style:italic;margin:0 0 14px}.para p{margin:0 0 14px}.para-label{margin-right:10px}.passage mark{background:var(--hl);color:inherit}.passage mark.has-note{background:var(--note)}.heading-slot{margin:4px 0 6px}.questions{font-size:var(--fs);line-height:1.55}.q-group{margin-bottom:28px}.q-group-title{font-size:var(--fs);margin:8px 0 6px}.q-instruction{margin:0 0 6px}.q-block{padding:8px 10px;margin:6px -10px;border:1px solid transparent;border-radius:3px}.q-block.current{border-color:var(--accent);background:var(--accent-soft)}.q-stem{display:flex;gap:10px;align-items:baseline}.qno{font-weight:700;min-width:28px;white-space:nowrap;flex:none;display:inline-block;border:1px solid var(--fg);text-align:center;font-size:calc(var(--fs) - 2px);padding:0 4px;line-height:1.5}.q-options{margin:6px 0 0 38px;display:flex;flex-direction:column;gap:2px}.opt{display:flex;gap:8px;align-items:baseline;padding:3px 6px;border-radius:3px;cursor:pointer}.opt:hover{background:var(--panel)}.opt.selected{background:var(--accent-soft)}.opt input{margin:0;transform:translateY(2px)}.opt-id{min-width:16px}.gap-lines p{margin:0 0 12px}.gap-lines p.bullet{padding-left:18px;position:relative}.gap-lines p.bullet:before{content:"•";position:absolute;left:4px}.gap-heading{text-align:center;margin:6px 0 10px;font-size:var(--fs)}.gap-wrap{display:inline-block}.gap-input{font:inherit;font-size:var(--fs);width:150px;padding:1px 6px;border:1px solid var(--fg);border-radius:2px;background:var(--bg);color:var(--fg);text-align:center}.gap-input::placeholder{color:var(--fg);font-weight:700;opacity:1}.gap-input:focus{outline:2px solid var(--accent);outline-offset:1px}.gap-input:focus::placeholder{opacity:0}.gap-wrap.current .gap-input{border-color:var(--accent)}.hint{font-size:13px;color:var(--muted)}.drop-gap{display:inline-flex;align-items:center;justify-content:center;min-width:120px;min-height:30px;padding:1px 4px;border:1px dashed var(--fg);border-radius:2px;vertical-align:middle;cursor:pointer}.drop-gap.wide{min-width:320px;max-width:100%}.drop-gap.over{background:var(--accent-soft);border-style:solid;border-color:var(--accent)}.drop-gap.current{outline:2px solid var(--accent);outline-offset:1px}.drop-gap.filled{border-style:solid}.gap-no{font-weight:700;font-size:calc(var(--fs) - 2px)}.option-bank{margin-top:14px;border:1px solid var(--line);padding:10px 12px;border-radius:3px}.option-bank.over{background:var(--accent-soft)}.bank-title{font-weight:700;margin-bottom:8px}.bank-items{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;gap:10px;align-items:baseline;padding:3px 10px;border:1px solid var(--fg);border-radius:2px;background:var(--bg);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;font-size:var(--fs)}.option-bank .chip{flex:0 1 auto}.chip.dragging{opacity:.35}.chip.picked{background:var(--accent-soft);border-color:var(--accent);outline:2px solid var(--accent)}.chip.overlay{cursor:grabbing;box-shadow:0 6px 18px #00000040}.chip-id{min-width:26px}.drop-gap .chip{border:none;padding:0 4px}.ctx-menu{position:fixed;z-index:100;background:var(--bg);border:1px solid var(--line);box-shadow:0 4px 16px #0003;display:flex;flex-direction:column;min-width:130px}.ctx-menu button{background:none;border:none;color:var(--fg);text-align:left;padding:8px 14px;font-size:14px}.ctx-menu button:hover{background:var(--accent-soft)}.notes-panel{width:260px;flex:none;border-left:1px solid var(--line);padding:4px 0 20px 14px;margin-left:14px;overflow-y:auto;font-size:14px}.notes-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.notes-head button{background:none;border:none;font-size:20px;color:var(--fg)}.note-item{border-bottom:1px solid var(--line);padding:8px 0}.note-quote{color:var(--muted);font-size:13px;margin-bottom:4px}.note-item textarea{width:100%;font:inherit;background:var(--bg);color:var(--fg);border:1px solid var(--line);padding:4px 6px;resize:vertical}.bottom-nav{flex:none;display:flex;align-items:center;gap:14px;height:60px;padding:0 16px;border-top:1px solid var(--line);margin-top:8px;background:var(--bg)}.nav-flag{background:none;border:1px solid var(--line);color:var(--fg);border-radius:3px;padding:5px 10px;font-size:13px;white-space:nowrap}.nav-flag.on{background:#fff3cd;color:#7a5b00;border-color:#e0b100}.nav-flag:disabled{opacity:.4;cursor:default}.nav-parts{flex:1;display:flex;gap:18px;align-items:center;overflow-x:auto;min-width:0}.nav-part{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--fg);padding:4px 6px;white-space:nowrap}button.nav-part:hover{background:var(--panel)}.nav-part-title{font-weight:700;margin-right:8px;font-size:14px}.nav-count{font-size:13px;color:var(--muted)}.nav-q{position:relative;width:28px;height:28px;border:1px solid transparent;background:none;color:var(--fg);font-size:13px;padding:0;border-bottom:3px solid transparent}.nav-q:hover{border-color:var(--line)}.nav-q.answered{border-bottom-color:var(--fg)}.nav-q.current{outline:2px solid var(--accent);outline-offset:-2px}.nav-q.flagged:after{content:"";position:absolute;top:-1px;right:-1px;border-top:8px solid #e0a800;border-left:8px solid transparent}.nav-arrows{display:flex;gap:6px}.nav-arrows button{width:40px;height:36px;background:#333;color:#fff;border:none;border-radius:3px;font-size:18px}.nav-submit{background:#333;color:#fff;border:none;border-radius:3px;padding:8px 14px;font-size:14px;white-space:nowrap}.writing-prompt{font-size:var(--fs);line-height:1.6}.writing-prompt h3{font-size:var(--fs)}.prompt-box{border:1px solid var(--line);padding:4px 16px}.prompt-topic{font-weight:700}.writing-editor{display:flex;flex-direction:column;height:100%}.writing-editor textarea{flex:1;min-height:300px;font-family:Arial,Helvetica,sans-serif;font-size:var(--fs);line-height:1.6;padding:10px 12px;border:1px solid var(--fg);background:var(--bg);color:var(--fg);resize:none}.word-count{text-align:right;padding:6px 2px;font-size:14px}.module-intro{max-width:760px;margin:40px auto;padding:0 24px;font-size:var(--fs);line-height:1.7}.module-intro h1{margin-bottom:4px}.module-intro .btn-primary{margin-top:18px}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--bg);color:var(--fg);padding:22px 26px;border-radius:4px;max-width:420px;width:calc(100% - 32px)}.modal h3{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions button:not(.btn-primary){background:none;border:1px solid var(--line);padding:9px 16px;border-radius:3px;color:var(--fg)}.start-page,.result-page{min-height:100%;background:#f5f6f8;display:flex;justify-content:center;padding:40px 16px}.start-card,.result-card{background:#fff;max-width:560px;width:100%;padding:32px 36px;border-radius:6px;box-shadow:0 2px 12px #0000000f;align-self:flex-start}.brand-line{color:#8a6d1d;font-weight:700;font-size:13px;letter-spacing:1px}.start-card h1,.result-card h1{margin:6px 0 4px}.start-facts{padding-left:18px;line-height:1.8;font-size:14px;color:#444}.start-form{display:flex;flex-direction:column;gap:14px;margin-top:18px}.start-form label{display:flex;flex-direction:column;gap:6px;font-size:14px}.start-form input:not([type=checkbox]),.start-form select{font:inherit;padding:9px 10px;border:1px solid #ccc;border-radius:3px}.start-form .consent{flex-direction:row;align-items:flex-start;gap:8px;font-size:13px;color:#555}.resume-box{background:#fff8e1;border:1px solid #f0d58c;padding:12px 14px;margin:14px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px}.disclaimer{font-size:12px;color:#888;margin-top:22px;line-height:1.6}.result-card section{border-top:1px solid #eee;padding-top:10px;margin-top:16px}.result-card h2{font-size:18px}.score-row{display:flex;gap:28px;align-items:center}.score-big{font-size:44px;font-weight:700}.score-big span{font-size:18px;color:#888;margin-left:4px}.band b{font-size:22px}.type-table{width:100%;border-collapse:collapse;font-size:14px}.type-table td{padding:6px 4px}.bar-cell{width:45%}.bar{height:8px;background:#eee;border-radius:4px;overflow:hidden}.bar>div{height:100%;background:#3b6fd1}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.cta{background:#f6f1e4;border-radius:6px;padding:16px 18px;margin:22px 0 12px}.cta p{margin:6px 0 12px;font-size:14px}.admin{padding:16px 20px;font-size:14px}.admin-head{display:flex;gap:20px;align-items:center;margin-bottom:14px}.admin-head nav button{background:none;border:1px solid #ccc;padding:5px 12px;margin-right:6px;border-radius:3px}.admin-head nav button.on{background:#222;color:#fff;border-color:#222}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{border-bottom:1px solid #e5e5e5;padding:6px 8px;text-align:left;vertical-align:top}.admin-table th{background:#f5f5f5;font-weight:600;white-space:nowrap}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover,.admin-table tr.sel{background:#f0f5ff}.admin-table.compact td{padding:4px 6px}.admin-detail{border:1px solid #e5e5e5;padding:12px 16px;border-radius:4px}.admin-detail h3{margin-top:0}.para-bars{display:flex;flex-direction:column;gap:4px}.para-bar{display:grid;grid-template-columns:110px 1fr 70px;gap:8px;align-items:center}.small-bar{width:80px;display:inline-block;margin-right:6px;vertical-align:middle}.essay{white-space:pre-wrap;font-family:inherit;background:#fafafa;border:1px solid #eee;padding:10px;max-height:300px;overflow:auto}@media(max-width:900px){.admin-grid{grid-template-columns:1fr}}@media(max-width:600px){.start-card,.result-card{padding:22px 18px}}.letter-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0 38px}.letter{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:30px;border:1px solid var(--fg);border-radius:2px;cursor:pointer;font-weight:700;font-size:calc(var(--fs) - 2px)}.letter input{position:absolute;opacity:0;pointer-events:none}.letter:hover{background:var(--panel)}.letter.selected{background:var(--accent);border-color:var(--accent);color:var(--bg)}.letter.used{opacity:.45}.letter:focus-within{outline:2px solid var(--accent);outline-offset:1px}.option-list{border:1px solid var(--line);padding:8px 12px;margin:8px 0 12px;border-radius:3px}.option-row{display:flex;gap:12px;padding:2px 0}.opt.disabled{opacity:.45;cursor:default}.gap-table{border-collapse:collapse;width:100%;margin:6px 0 12px}.gap-table th,.gap-table td{border:1px solid var(--fg);padding:6px 8px;text-align:left;vertical-align:top}.gap-table th{background:var(--panel)}.gap-table .gap-input{width:130px}.group-image,.task-image{display:block;max-width:100%;margin:8px 0 12px;border:1px solid var(--line);background:#fff}.doc-page{min-height:100%;background:#f5f6f8;display:flex;justify-content:center;padding:32px 16px}.doc-card{background:#fff;max-width:820px;width:100%;padding:32px 40px;border-radius:6px;box-shadow:0 2px 12px #0000000f;line-height:1.75;font-size:15px}.doc-card h1{margin:6px 0 2px}.doc-card h2{font-size:17px;margin-top:26px}.draft-banner{background:#fff3cd;border:1px solid #e0b100;color:#6b4e00;padding:10px 14px;border-radius:4px;margin-bottom:16px}.doc-table{width:100%;border-collapse:collapse;font-size:14px}.doc-table th,.doc-table td{border:1px solid #ddd;padding:6px 8px;text-align:left;vertical-align:top}.doc-table th{background:#f5f5f5}@media(max-width:600px){.doc-card{padding:22px 16px}}.radio-line{border:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}.radio-line legend{padding:0;margin-bottom:6px}.start-form .radio-line label{display:inline-flex;flex-direction:row;gap:6px;align-items:center}.ok-note{color:#2e7d32;font-size:13px}.btn-secondary{background:#fff;border:1px solid #222;border-radius:3px;padding:7px 16px}.link-box{border:1px dashed #bbb;border-radius:6px;padding:12px 16px;margin-top:18px}.link-box p{margin:6px 0 10px;color:#555}.writing-total{margin-left:12px;font-size:16px;color:#3b6fd1}.writing-task h3{font-size:15px;margin:14px 0 4px}.feedback{background:#fafbfc;border:1px solid #eee;border-radius:6px;padding:12px 14px;margin-top:6px}.fb-comment{white-space:pre-wrap}.fb-issues{padding-left:20px}.fb-issues li{margin-bottom:10px}.fb-issues blockquote,.issue-edit blockquote{margin:4px 0;padding:4px 10px;border-left:3px solid #c9d6ef;background:#f4f7fd;font-style:italic}.fb-suggest{color:#2e5e2e}.fb-rewrite{margin-top:8px}.rw-before{text-decoration:line-through;color:#888}.rw-after{color:#1b5e20}.admin-head{flex-wrap:wrap}.admin-head nav{display:flex;flex-wrap:wrap;gap:4px}.admin-user{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:13px}.warn-box{background:#fff3cd;border:1px solid #e0b100;padding:8px 12px;border-radius:4px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.toolbar button,.admin button:not(.link):not(.btn-primary):not(.btn-danger):not(.on){background:#fff;border:1px solid #ccc;padding:5px 12px;border-radius:3px}.admin button.on{background:#222;color:#fff;border:1px solid #222;padding:5px 12px;border-radius:3px}.toolbar button.on{background:#222;color:#fff;border-color:#222}.toolbar select,.session-form input,.session-form select{font:inherit;padding:5px 8px;border:1px solid #ccc;border-radius:3px}.tag{display:inline-block;font-size:12px;padding:0 6px;border-radius:3px;margin-left:6px}.tag.warn{background:#fff3cd;color:#7a5b00}.warn{color:#a15c00}.session-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:#fafafa;border:1px solid #eee;padding:12px;border-radius:4px;margin-bottom:14px}.session-form label{display:flex;flex-direction:column;gap:4px;font-size:13px}.exam-code{font-family:Consolas,monospace;font-size:17px;font-weight:700;letter-spacing:2px}.actions{white-space:nowrap}.actions .link{margin-right:10px}.link.danger,.danger{color:#c62828}.btn-danger{background:#c62828;color:#fff;border:none;border-radius:3px;padding:7px 14px}.essays-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.flag-list{padding-left:18px;font-size:13px}.flag-list .warn{color:#a15c00}.flag-list .info{color:#555}.score-inputs{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:10px}.score-inputs label{display:flex;flex-direction:column;gap:4px;font-size:13px}.score-inputs input{width:80px;font:inherit;padding:5px 6px;border:1px solid #ccc;border-radius:3px}.overall-preview b{font-size:20px;margin:0 6px}.review label.block{display:flex;flex-direction:column;gap:4px;font-size:13px;margin:10px 0}.review textarea,.review .issue-edit input,.review label.block input{font:inherit;padding:6px 8px;border:1px solid #ccc;border-radius:3px;width:100%}.issue-edit{border:1px solid #eee;border-radius:4px;padding:8px 10px;margin:8px 0;display:flex;flex-direction:column;gap:4px}.issue-edit.off{opacity:.45}.evidence{margin:8px 0;font-size:13px}.evidence ul{margin:4px 0;padding-left:18px}.agg-row td{font-weight:700;background:#f5f8ff}.login-card{max-width:400px}.admin-detail details{margin:8px 0}.admin-detail summary{cursor:pointer;color:#2160c4}.report-note{background:#f4f7fd;border-radius:4px;padding:8px 12px;font-size:14px;line-height:1.6}.q-grid{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}.q-cell{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;border-radius:3px;font-size:13px;font-weight:600;padding:0 4px}.q-cell.correct{background:#e3f3e5;color:#1b5e20}.q-cell.wrong{background:#fde4e4;color:#b71c1c}.q-cell.blank{background:#eee;color:#888}.q-legend .q-cell{min-width:20px;height:18px;margin-right:2px;vertical-align:middle}.sub-h{font-size:14px;margin:14px 0 4px}.structure-box{border:1px solid var(--line);background:var(--panel);padding:10px 16px;margin:14px 0}.structure-box ul{margin:6px 0}.next-part{background:var(--bg);color:var(--fg);border:2px solid var(--fg);border-radius:3px;padding:7px 14px;font-weight:700;margin:8px 0 20px}.next-part:hover{background:var(--panel)}.editor-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.editor-foot .next-part{margin:6px 0}.nav-part.other{border:1px solid var(--fg);border-radius:3px;padding:4px 10px}.submit-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px}.submit-table td{padding:6px 4px;border-bottom:1px solid var(--line)}.submit-table tr.todo td{color:#c62828;font-weight:600}.result-card.report{max-width:760px}.summary-tiles{display:flex;gap:12px;margin:16px 0 6px}.tile{flex:1;border:1px solid #e6e6e6;border-radius:6px;padding:12px 16px}.tile-label{font-size:13px;color:#666}.tile-value{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3}.dots{font-size:18px;color:#3b6fd1}.dots:after{content:"";animation:dots 1.4s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.page-tabs{display:flex;border-bottom:1px solid #ddd;margin:18px 0 0}.page-tabs button{background:none;border:none;border-bottom:3px solid transparent;padding:10px 14px;font-size:15px;color:#666}.page-tabs button.on{color:#000;font-weight:700;border-bottom-color:#3b6fd1}.report-page>section:first-child{border-top:none}.type-table th{text-align:left;font-weight:400;color:#888;font-size:13px;padding:4px}.type-table th:not(:first-child){text-align:right}.findings{padding-left:20px;margin:6px 0}.findings>li{margin-bottom:12px;line-height:1.6}.findings>li>div{font-size:14px;color:#333}.finding-nos{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.crit-table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}.crit-table td{padding:4px}.feedback h4{font-size:14px;margin:12px 0 4px}.page-next{text-align:right;margin-top:18px}.scoring{margin-top:12px;display:flex;gap:18px;align-items:center;border:1px solid #dfe7f5;background:#f7f9fd;border-radius:6px;padding:16px 18px}.scoring-sheet{position:relative;flex:none;width:64px;height:82px;background:#fff;border:1px solid #cfd8e6;border-radius:3px;padding:10px 8px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.scoring-sheet span{display:block;height:3px;background:#dbe2ec;border-radius:2px;position:relative;overflow:hidden}.scoring-sheet span:nth-child(3n){width:70%}.scoring-sheet span:after{content:"";position:absolute;inset:0;background:#3b6fd1;transform:scaleX(0);transform-origin:left;animation:underline 2.45s ease-in-out infinite;animation-delay:inherit}@keyframes underline{0%{transform:scaleX(0)}40%,70%{transform:scaleX(1);opacity:1}to{transform:scaleX(1);opacity:0}}.scoring-scan{position:absolute;left:0;right:0;height:14px;top:-14px;background:linear-gradient(transparent,rgba(59,111,209,.18),transparent);animation:scan 2.45s linear infinite}@keyframes scan{to{top:100%}}.scoring-text{display:flex;flex-direction:column;gap:4px;min-width:0}.scoring-stage{color:#3b6fd1;font-size:15px}.scoring-runs{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.scoring-runs>.dot{width:10px;height:10px;border-radius:50%;border:2px solid #3b6fd1;transition:background .3s}.scoring-runs>.dot.done{background:#3b6fd1}@media(prefers-reduced-motion:reduce){.scoring-sheet span:after,.scoring-scan,.dots:after{animation:none}}.priorities{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:14px}.priorities>li{border:1px solid #e6e6e6;border-radius:6px;padding:14px 18px}.prio-head{display:flex;gap:12px;align-items:center}.prio-no{flex:none;width:32px;height:32px;border-radius:50%;background:#1f1f1f;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.prio-area{font-size:12px;color:#8a6d1d;font-weight:700;letter-spacing:1px}.prio-focus{font-size:17px}.prio-evidence{font-size:13px;color:#666;margin:8px 0 4px}.priorities ul{margin:6px 0 0;padding-left:20px;font-size:14px;line-height:1.7}.prio-course{font-size:13px;margin-top:6px;color:#2e5e2e}.print-only{display:none}@media print{.no-print,.page-tabs{display:none!important}.print-only{display:block}.result-page{background:#fff;padding:0}.result-card.report{box-shadow:none;max-width:none;padding:0}.report-page+.report-page{break-before:page}}@media(max-width:560px){.summary-tiles{flex-direction:column}.scoring{flex-direction:column;align-items:flex-start}}.trace-strip{width:100%;height:auto;display:block;background:#fafafa;border:1px solid #eee;border-radius:4px}.trace-lbl{font-size:10px;fill:#666}.trace-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 10px}.trace-legend i{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:-1px;border-radius:2px}.trace-log{margin:8px 0}.trace-log table{max-height:360px;display:block;overflow:auto}.trace-answer td{font-weight:600}.level{display:inline-block;margin-left:8px;padding:0 6px;border-radius:3px;font-size:12px;font-weight:400;vertical-align:1px}.level.clear{background:#fde4e4;color:#b71c1c}.level.likely{background:#fff3d6;color:#8a5a00}.evidence{margin:6px 0 0;padding-left:18px;font-size:13px;color:#333;line-height:1.6}.evidence li{margin-bottom:4px}.time-chart{display:flex;flex-direction:column;gap:8px;margin:6px 0}.time-row{display:grid;grid-template-columns:120px 1fr 90px;gap:10px;align-items:center;font-size:14px}.time-name{display:flex;flex-direction:column}.time-bars{display:flex;flex-direction:column;gap:3px}.time-bar{height:7px;border-radius:3px}.time-bar.plan,.time-key.plan{background:#cfd8e6}.time-bar.real,.time-key.real{background:#3b6fd1}.time-bar.real.over{background:#e08a1e}.time-key{display:inline-block;width:12px;height:7px;border-radius:2px;margin-right:4px;vertical-align:1px}.bar.loss>div{background:#d9534f}.prio-sub{font-size:13px;font-weight:700;margin-top:10px}@media(max-width:560px){.time-row{grid-template-columns:80px 1fr 70px}}.exam-root{--fs: 16px;--lh: 24px;--blue: #418ec8;--rubric: #f1f2ec;--rubric-line: #d5d5d5;--nav-fg: #333;--nav-muted: #757575;font-family:Arial,Helvetica,sans-serif;color:#000}.exam-root[data-textsize=large]{--fs: 19px;--lh: 28px}.exam-root[data-textsize=xlarge]{--fs: 22px;--lh: 32px}.exam-root .exam-header{height:56px;padding:0 16px;border-bottom:none}.exam-root .hdr-left{gap:22px;align-items:center}.exam-root .brand{font-size:20px;font-weight:700;letter-spacing:1px;color:#000}.exam-root .candidate{display:flex;flex-direction:column;font-size:14px;line-height:18px}.exam-root .candidate span{color:#333}.exam-root .timer{font-size:16px;font-weight:700}.exam-root .hdr-right{gap:18px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:#000;padding:0;border-radius:3px}button.icon-btn:hover{background:#f0f0f0}.icon-btn.on{background:#e8eef6}.icon-btn.wifi.offline{color:#c62828}.icon-btn.wifi.saving{color:#757575}.exam-root .part-banner{display:block;margin:16px 16px 0;padding:12px 16px;background:var(--rubric);border:1px solid var(--rubric-line);border-radius:4px;font-size:var(--fs);line-height:var(--lh)}.exam-root .part-banner b,.exam-root .part-banner span{display:block}.exam-root .exam-body{position:relative;margin:16px 0 0}.exam-root .pane{padding:0 16px 90px}.exam-root .pane+.divider+.pane{padding:0 24px 90px 16px}.exam-root .divider{width:2px;background:#00000080;border:none;overflow:visible;position:relative}.exam-root .divider-handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:2px;border:1px solid #555;background:#fff;font-size:12px}.exam-root .passage{font-size:var(--fs);line-height:var(--lh)}.exam-root .passage-title{font-size:calc(var(--fs) * 1.3);line-height:1.2;margin:0 0 14px}.exam-root .passage-subtitle{margin:-6px 0 14px}.exam-root .para p{margin:0 0 16px}.exam-root [data-para-text]{white-space:pre-line}.exam-root .passage-footnote{font-size:calc(var(--fs) * .85);color:#333;margin:0 0 6px}.exam-root .passage mark{background:#ffeb3b}.exam-root .passage mark.has-note{background:#ffcc80}.exam-root .questions{font-size:var(--fs);line-height:var(--lh)}.exam-root .q-group-title{font-size:var(--fs);margin:0 0 8px}.exam-root .q-instruction{margin:0 0 8px}.exam-root .q-block{margin:0 0 14px;padding:0;border:none;background:none}.exam-root .q-block.current{border:none;background:none}.exam-root .qno{border:2px solid transparent;border-radius:3px;padding:1px 2px 0;min-width:29px;font-size:var(--fs);line-height:var(--lh)}.exam-root .q-block.current .qno,.exam-root .gap-wrap.current .gap-input,.exam-root .drop-gap.current{border-color:var(--blue)}.exam-root .q-stem{gap:8px}.exam-root .q-options{margin:6px 0 0;gap:0}.exam-root .opt{padding:9px 4px;border-radius:3px;align-items:center}.exam-root .opt.selected,.exam-root .opt:hover{background:none}.exam-root .opt input{transform:none;width:16px;height:16px;margin:0 6px 0 0}.exam-root .gap-input{border:1px solid #919191;border-radius:4px;height:28px;font-weight:400}.exam-root .gap-input::placeholder{font-weight:700;color:#000}.exam-root .gap-wrap.current .gap-input{border-width:2px}.exam-root .letter{border:1px solid #919191;border-radius:4px}.exam-root .letter.selected{background:var(--blue);border-color:var(--blue);color:#fff}.exam-root .hint{display:none}.exam-root .option-bank{border:none;padding:0;margin-top:10px}.exam-root .bank-title{margin-bottom:6px}.exam-root .bank-items{flex-direction:column;align-items:flex-start;gap:0}.exam-root .chip{font-size:calc(var(--fs) * 1.1);font-weight:700;border:1px solid #919191;border-radius:4px;background:#fff;padding:0 9px;margin:3px 3px 8px;line-height:1.3}.exam-root .drop-gap .chip{font-weight:700}.exam-root .chip.picked{outline:2px solid var(--blue);border-color:var(--blue);background:#fff}.exam-root .drop-gap{border:2px dashed var(--blue);border-radius:5px;min-height:26px;background:#fff}.exam-root .drop-gap.filled{border-style:solid;border-color:#919191;border-width:1px}.exam-root .drop-gap.over{background:#eef5fb}.exam-root .drop-gap.wide{display:flex;width:100%}.exam-root .drop-gap .chip{border:none;margin:0}.exam-root .writing-prompt{font-weight:700;line-height:1.5;font-size:var(--fs)}.exam-root .writing-prompt p{margin:0 0 16px}.exam-root .task-image{border:none}.exam-root .writing-editor{height:auto}.exam-root .writing-editor textarea{min-height:360px;height:60vh;border:1px solid #919191;border-radius:3px;font-size:var(--fs);line-height:var(--lh);padding:8px 10px;resize:vertical}.exam-root .word-count{font-size:14px}.nav-arrows{position:absolute;right:32px;bottom:35px;display:flex;gap:2px;z-index:20}.nav-arrows button{width:56px;height:56px;border:none;border-radius:3px;color:#fff;font-size:30px;line-height:1;padding:0 0 4px}.nav-arrows .prev{background:#4c4c4c}.nav-arrows .next{background:#000}.nav-arrows button:disabled{background:#d9d9d9;color:#fff;cursor:default}.exam-root .bottom-nav{height:53px;padding:0;gap:0;border-top:1px solid #e3e3e3;margin-top:0;color:var(--nav-fg)}.exam-root .nav-part{flex:1;display:flex;align-items:center;justify-content:center;gap:2px;min-width:0;padding:0 8px;border:none}.exam-root .nav-part.active{flex:2.4;justify-content:flex-start}.exam-root .nav-part-title{background:none;border:none;color:var(--nav-fg);font-size:16px;padding:4px 8px;white-space:nowrap}.exam-root .nav-part.active .nav-part-title{font-weight:700}.exam-root .nav-count{color:var(--nav-muted);margin-left:10px;font-weight:400}.exam-root .nav-q{position:relative;width:auto;min-width:21px;height:27px;padding:2px 4px;font-size:16px;color:var(--nav-fg);border:2px solid transparent;border-radius:3px;background:none;outline:none}.exam-root .nav-q:before{content:"";position:absolute;left:1px;right:1px;top:-9px;height:3px;background:#d9d9d9}.exam-root .nav-q.answered:before{background:#3c9c46}.exam-root .nav-q.answered{border-bottom-color:transparent}.exam-root .nav-q.current{border-color:var(--blue);font-weight:700;outline:none}.exam-root .nav-review{width:77px;height:53px;border:none;background:#efefef;color:#535353;font-size:20px;flex:none;margin-left:auto}.exam-root .nav-review:hover{background:#e2e2e2}.review-page{flex:1;overflow:auto;padding:24px 16px;font-size:16px}.review-top{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:900px;margin:0 auto 20px;padding-bottom:24px;border-bottom:1px solid #ddd}.review-next{background:#000;color:#fff;border:none;border-radius:3px;padding:10px 26px;font-size:16px}.review-page .submit-table{max-width:900px;margin:0 auto}.review-page .submit-table td{vertical-align:middle}.review-back{background:#fff;color:#000;border:1px solid #4c4c4c;border-radius:3px;padding:5px 14px;font-size:14px;font-weight:400}.review-back:hover{background:#f0f0f0}.submit-table tr.todo .review-back{border-color:#000;font-weight:700}.review-page>p{max-width:900px;margin:12px auto}.options-page{position:fixed;inset:0;background:#fff;z-index:300;display:flex;flex-direction:column;align-items:center;padding-top:20px;font-family:Arial,Helvetica,sans-serif;color:#000}.options-page h2{font-size:22px;font-weight:400;margin:0 0 20px}.options-close{position:absolute;right:24px;top:16px;background:none;border:none;font-size:22px}.options-list{width:min(520px,calc(100% - 32px));border:1px solid #e3e3e3;border-radius:3px}.options-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 24px;background:#fff;border:none;border-bottom:1px solid #e3e3e3;font-size:15px;text-align:left}.options-row:last-child{border-bottom:none}.options-row:hover{background:#f6f6f6}.options-row.primary{background:#1f1f1f;color:#fff}.options-row.primary:hover{background:#333}.options-row.checked{font-weight:700}.exam-root .module-intro{font-size:var(--fs);line-height:var(--lh)}.exam-root .structure-box{background:var(--rubric);border:1px solid var(--rubric-line);border-radius:4px}.exam-root[data-contrast=inverse],.exam-root[data-contrast=yellow]{--rubric: #1c1c1c;--rubric-line: #555;--nav-fg: currentColor}.exam-root[data-contrast=inverse] .chip,.exam-root[data-contrast=yellow] .chip,.exam-root[data-contrast=inverse] .drop-gap,.exam-root[data-contrast=yellow] .drop-gap{background:transparent;color:inherit}.exam-root[data-contrast=inverse] .icon-btn,.exam-root[data-contrast=yellow] .icon-btn,.exam-root[data-contrast=inverse] .brand,.exam-root[data-contrast=yellow] .brand{color:inherit}.exam-root{overflow:hidden}html:has(.exam-root),body:has(.exam-root){overflow:hidden}
