.exam-room{--tcf-focus:#2459e0;--tcf-warn-ink:#7a4a00;--tcf-frame:#7b93ff;--tcf-body:#6f8cff;--tcf-title-a:#eef3ff;--tcf-title-b:#b9cbfb;--tcf-sub:#b0c8ff;--tcf-panel:#c5d3f5;--tcf-right:#a3b4e3;--tcf-line:#7489cc;--tcf-white:#ffffff;--tcf-ink:#111827;--tcf-label:#333d5c;--tcf-value:#0d1a4a;--tcf-green:#177a17;--tcf-green-a:#8fdc7a;--tcf-green-b:#3c9a2c;--tcf-red:#b30000;--tcf-gray-bar:#e3e7ef;--tcf-clock-a:#c4b5c4;--tcf-clock-b:#85767f;--tcf-clock-line:#8a6a7a;--tcf-clock-ink:#000000;--tcf-prog:#2fb52f;--tcf-key-a:#ffffff;--tcf-key-b:#dde2ea;--tcf-key-line:#7f889c;--tcf-btn-a:#5f9ae8;--tcf-btn-b:#2c64c4;--tcf-quit-a:#ff8c7f;--tcf-quit-b:#f0523f;--tcf-quit-fg:#1a0000;--tcf-bottom:#a9bbea;--tcf-dlg-head:#c9d8ff;--tcf-warn:#f2b01e;--tcf-overlay:rgb(20 40 110/0.45);--room-exam-field:#a87400;--room-warn-mark:#e3a21a;--room-font-reading:"Iowan Old Style",Charter,"Source Serif Pro",Georgia,"Times New Roman",serif;--room-font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}[data-theme=dark] .exam-room{--room-exam-field:#f6c25a;--room-warn-mark:#f6c25a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .exam-room{--room-exam-field:#f6c25a;--room-warn-mark:#f6c25a}}main:has([data-room])~footer{display:none}.exam-room textarea{outline:none}.room-toast{inset-block-end:24px;left:50%;transform:translateX(-50%);gap:8px;padding:10px 16px;border-radius:8px;background:var(--ink);color:var(--surface);font-weight:600;font-size:14px;box-shadow:0 8px 24px rgb(0 0 0/.2);z-index:80}.room-overlay,.room-toast{position:fixed;display:flex;align-items:center}.room-overlay{inset:0;z-index:60;justify-content:center;padding:16px}.tcf-page{box-sizing:border-box;height:100vh;min-height:640px;display:flex;flex-direction:column;gap:8px;padding:12px;color:var(--tcf-ink);font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:13px;line-height:1.35}.tcf-win{flex:1;min-height:0;width:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:var(--tcf-body);border:1px solid var(--tcf-frame);box-shadow:0 2px 10px rgb(0 0 0/.25)}.tcf-win.locked textarea{background:var(--tcf-gray-bar)}.tcf-title{display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;background:linear-gradient(var(--tcf-title-a),var(--tcf-title-b))}.tcf-title svg{width:34px;height:34px;border-radius:8px}.tcf-title h1{font-size:18px;font-weight:700;color:var(--tcf-ink)}.tcf-x{margin-inline-start:auto;width:26px;height:24px;display:grid;place-items:center;border:1px solid var(--tcf-key-line);border-radius:3px;background:var(--tcf-white);cursor:pointer;font:inherit;font-size:15px}.tcf-sub,.tcf-x{color:var(--tcf-ink)}.tcf-sub{height:32px;display:flex;align-items:center;padding:0 70px;background:var(--tcf-sub);font-weight:700;font-size:14px}.tcf-cols{display:grid;grid-template-columns:146px minmax(0,1fr) 210px;gap:10px;padding:10px 10px 8px;min-height:0}.tcf-left{display:flex;flex-direction:column;background:var(--tcf-panel);border:1px solid var(--tcf-line);border-radius:3px;overflow:hidden}.tcf-nav{display:grid;grid-template-columns:12px 30px 1fr 30px 12px;align-items:center;gap:2px;height:44px;padding:0 4px;background:var(--tcf-white)}.tcf-nav .side{font-size:10px;color:var(--tcf-red);text-align:center}.tcf-round{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--tcf-btn-b);background:radial-gradient(circle at 50% 30%,var(--tcf-btn-a),var(--tcf-btn-b));color:var(--tcf-white);cursor:pointer;padding:0}.tcf-round svg{width:18px;height:18px;stroke-width:3}.tcf-round[disabled]{cursor:default}.tcf-current{font-size:24px;color:var(--tcf-green);text-align:center}.tcf-cap{padding:7px 6px 5px;font-size:11px;background:var(--tcf-gray-bar);border-block:1px solid var(--tcf-line)}.tcf-cap,.tcf-q{color:var(--tcf-ink)}.tcf-q{display:grid;grid-template-columns:1fr 26px 1fr;align-items:center;width:100%;height:19px;padding:0 2px;border:0;border-block-end:1px solid var(--tcf-gray-bar);background:var(--tcf-white);cursor:pointer;font:inherit;font-size:13px}.tcf-q>b{font-weight:400;text-align:center}.tcf-q[data-state=empty]{color:var(--tcf-red)}.tcf-q[aria-selected=true]{color:var(--tcf-green);font-weight:700}.tcf-q .arr{visibility:hidden;height:13px;border-radius:2px;background:linear-gradient(var(--tcf-green-a),var(--tcf-green-b));display:grid;place-items:center;color:var(--tcf-white)}.tcf-q .arr svg{width:11px;height:11px;stroke-width:3}.tcf-q[aria-selected=true] .arr{visibility:visible}.tcf-center{display:grid;grid-template-rows:72px 146px auto minmax(0,1fr) auto;min-height:0}.tcf-center.zoomed{grid-template-rows:0 0 auto minmax(0,1fr) auto}.tcf-center.zoomed .tcf-instr,.tcf-center.zoomed .tcf-situ{visibility:hidden;border:0;padding:0;margin:0;overflow:hidden}.tcf-instr{padding:8px 10px;font-weight:700;font-size:13px}.tcf-instr,.tcf-situ{background:var(--tcf-white);border:1px solid var(--tcf-line);border-radius:3px}.tcf-situ{margin-block-start:8px;padding:10px;font-family:Times New Roman,Times,serif;font-size:15px;line-height:1.45;overflow-y:auto}.tcf-situ p+p{margin-block-start:12px}.tcf-tabhead{display:flex;align-items:end;height:36px;margin-block-start:8px}.tcf-tabhead span{display:grid;place-items:center;min-width:36px;height:28px;background:var(--tcf-white);border-radius:3px 3px 0 0;font-weight:700;font-size:16px}.tcf-editor{position:relative;display:flex;flex-direction:column;min-height:0;padding:34px 8px 8px;background:var(--tcf-white);border-radius:0 3px 3px 3px}.tcf-editor textarea{flex:1;min-height:100px;resize:none;padding:6px 8px;border:1px solid var(--tcf-line);border-radius:0;background:var(--tcf-white);color:var(--tcf-ink);font-family:Arial,sans-serif;font-size:14px;line-height:1.5}.tcf-editor textarea:focus{outline:2px solid var(--tcf-focus);outline-offset:-1px}.tcf-editor textarea[readonly]{background:var(--tcf-gray-bar)}.tcf-zoom{position:absolute;top:6px;right:10px;width:24px;height:24px;display:grid;place-items:center;border:0;background:transparent;color:var(--tcf-btn-b);cursor:pointer;padding:0}.tcf-zoom svg{width:22px;height:22px}.tcf-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;height:30px;margin-block-start:6px;padding:0 4px;background:var(--tcf-bottom)}.tcf-btn{height:22px;padding:0 12px;border:1px solid #45506a;border-radius:2px;background:linear-gradient(var(--tcf-key-a),var(--tcf-key-b));color:var(--tcf-ink);cursor:pointer;font:inherit;font-weight:700}.tcf-btn.quit{min-width:108px;border-color:#a52a1f;background:linear-gradient(var(--tcf-quit-a),var(--tcf-quit-b));color:var(--tcf-quit-fg)}.tcf-answered{font-size:11px;color:var(--tcf-ink)}.tcf-right{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:8px 6px 6px;background:var(--tcf-right);border:1px solid var(--tcf-line);border-radius:3px;min-height:0}.tcf-cand{margin:0 0 20px;padding-inline-start:22px;display:grid;gap:6px}.tcf-cand dt{color:var(--tcf-label)}.tcf-cand dd{margin:-4px 0 0;font-weight:700;color:var(--tcf-value)}.tcf-clock,.tcf-timer{border:2px solid var(--tcf-clock-line);border-radius:3px;background:linear-gradient(var(--tcf-clock-a) 55%,var(--tcf-clock-b) 55%);color:var(--tcf-clock-ink);text-align:center;font-weight:700}.tcf-clock{padding:7px 4px 5px;font-size:14px;background:linear-gradient(var(--tcf-clock-a) 45%,var(--tcf-clock-b) 45%)}.tcf-clock span{display:inline-block;padding:0 4px;background:var(--tcf-clock-a);border-radius:2px}.tcf-timer{padding:6px;background:linear-gradient(var(--tcf-clock-a) 45%,var(--tcf-clock-b) 45%)}.tcf-timer .lbl{font-size:11px;font-weight:400}.tcf-timer .val{margin-block-start:6px;display:inline-block;padding:0 4px;font-size:17px;font-variant-numeric:tabular-nums;background:var(--tcf-clock-a);border-radius:2px}.tcf-timer[data-warn=true] .val{color:var(--tcf-red);background:var(--tcf-white)}.tcf-prog{height:7px;margin:6px 4px 0;border:1px solid var(--tcf-white);background:var(--tcf-white)}.tcf-prog>i{display:block;height:100%;background:var(--tcf-prog)}.tcf-saved{font-size:11px;color:var(--tcf-ink)}.tcf-tools{padding:8px 6px;display:grid;gap:4px;background:linear-gradient(var(--tcf-white),#eef2fb);border:1px solid var(--tcf-line);border-radius:3px}.tcf-count{text-align:center;font-weight:700;font-size:14px}.tcf-range{display:flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:700;min-height:16px}.tcf-range svg{width:13px;height:13px}.tcf-range[data-s=short]{color:var(--tcf-warn-ink)}.tcf-range[data-s=ok]{color:var(--tcf-green)}.tcf-range[data-s=long]{color:var(--tcf-red)}.tcf-keys{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.tcf-keys button{height:24px;padding:0;border:1px solid var(--tcf-key-line);border-radius:2px;background:linear-gradient(var(--tcf-key-a),var(--tcf-key-b));color:var(--tcf-ink);cursor:pointer;font:inherit;font-size:13px}.tcf-keys .gap{visibility:hidden}.tcf-keys .wide{grid-column:span 2;height:28px;margin-block-start:4px}.tcf-keys .wide svg{width:22px;height:16px;margin:auto;stroke-width:1.6}.tcf-keys [aria-pressed=true]{background:linear-gradient(var(--tcf-key-b),var(--tcf-key-a));box-shadow:inset 0 1px 3px rgb(0 0 0/.3)}.tcf-keys sub{font-size:9px}.tcf-dlg{width:496px;padding:0;border:1px solid var(--tcf-line);border-radius:3px;background:var(--tcf-white);color:var(--tcf-ink);font-family:Arial,sans-serif;font-size:13px;box-shadow:0 6px 24px rgb(0 0 0/.35)}.tcf-backdrop{background:var(--tcf-overlay)}.tcf-dlg h2{padding:7px 12px;background:linear-gradient(var(--tcf-title-a),var(--tcf-dlg-head));font-size:14px;font-weight:700;border-block-end:1px solid var(--tcf-line)}.tcf-dlg .b{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:16px 20px}.tcf-dlg .warn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 40% 35%,#ffe08a,var(--tcf-warn));color:var(--tcf-white);font-weight:900;font-size:24px;box-shadow:inset 0 0 0 1px #c88a00}.tcf-dlg .serif{font-family:Times New Roman,Times,serif;font-size:15px;line-height:1.45;display:grid;gap:8px}.tcf-dlg hr{border:0;margin:2px 0;width:100%}.tcf-dlg .f,.tcf-dlg hr{border-block-start:1px solid var(--tcf-line)}.tcf-dlg .f{display:flex;justify-content:flex-end;gap:10px;padding:10px 14px;background:linear-gradient(#f1f5ff,var(--tcf-panel))}.tcf-dlg .f button{min-width:92px;height:28px;border:1px solid #7a8299;border-radius:3px;background:linear-gradient(var(--tcf-key-a),var(--tcf-key-b));color:var(--tcf-ink);cursor:pointer;font:inherit;font-weight:700}.tcf-dlg{position:relative}.tcf-dlg h2,.tcf-dlg p,.tcf-sub,.tcf-title h1{margin:0}.tcf-cand dd{margin-inline-start:0}.tef-page{box-sizing:border-box;height:100vh;min-height:620px;display:flex;flex-direction:column;width:100%;max-width:1180px;margin:0 auto;padding:12px 24px;background:var(--surface);color:var(--ink);font-size:calc(1rem * var(--zoom, 1))}.tef-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:16px}.tef-brand{flex-direction:column;gap:6px}.tef-brand,.tef-brand .mark{display:flex;align-items:center}.tef-brand .mark{gap:8px;font-weight:800;color:var(--accent);font-size:1.25em}.tef-brand .sim-tag{font-size:11px;font-weight:750;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong)}.tef-zoom{display:flex;gap:4px}.tef-zoom button{min-width:32px;height:28px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);cursor:pointer;font-size:13px;font-weight:700;color:var(--ink)}.tef-meta{font-size:.875em;line-height:1.6}.tef-meta b{font-weight:750}.tef-right{display:flex;flex-direction:column;align-items:stretch;gap:8px}.tef-timer{height:34px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:4px;background:var(--subtle);font-family:var(--room-font-mono);font-size:1em;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.tef-timer[data-warning=true]{color:var(--warn);border-color:var(--room-warn-mark)}.tef-end{align-self:flex-end;height:32px;padding:0 14px;border:0;border-radius:6px;background:var(--accent);color:var(--on-accent);font-weight:650;font-size:14px;cursor:pointer}.tef-end:disabled{opacity:.5;cursor:default}.tef-body{flex:1;min-height:0;margin-block-start:12px;border:1px solid var(--line);border-radius:4px;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.tef-body .fr-text{font-family:var(--room-font-reading);font-size:1.0625em;line-height:1.6;overflow-y:auto;max-height:34vh;white-space:pre-wrap}.tef-body .min{font-weight:800}.tef-body .wcount{text-align:right;font-size:.85em;color:var(--muted);font-variant-numeric:tabular-nums}.tef-body textarea{flex:1;min-height:120px;resize:none;padding:10px;border:2px solid var(--room-exam-field);border-radius:3px;background:var(--surface);color:var(--ink);font-family:var(--room-font-reading);font-size:1.0625em;line-height:1.7}.tef-body textarea[readonly]{background:var(--subtle)}.tef-keys{display:flex;flex-wrap:wrap;gap:4px}.tef-keys button{min-width:32px;height:30px;padding:0 7px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);cursor:pointer;font-size:.95em;font-family:var(--room-font-reading);color:var(--ink)}.tef-keys button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.tef-section{font-weight:750}.tef-dlg{width:min(460px,calc(100vw - 32px));border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:0 12px 32px rgb(0 0 0/.25)}.tef-dlg .dh{margin:0;border-block-end:1px solid var(--line);font-weight:650;font-size:16px}.tef-dlg .db,.tef-dlg .dh{padding:16px 20px;text-align:center}.tef-dlg .db{font-size:14px;display:grid;gap:8px}.tef-dlg .db p{margin:0}.tef-dlg .df{padding:12px 20px;border-block-start:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.tef-dlg .df button{height:32px;padding:0 14px;border-radius:6px;font-weight:650;font-size:14px;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.tef-dlg .df button.primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.tef-backdrop{background:rgb(17 19 23/.45)}