:root{color-scheme:light dark;--paper: #f6f7f5;--surface: #ffffff;--surface-2: #eef1ef;--ink: #16303a;--ink-2: #4f6368;--ink-3: #8a9a9e;--line: #d5dcda;--line-2: #e6ebe9;--action: #1c6b85;--action-ink: #ffffff;--clock: #b56a06;--clock-soft: #fbefd9;--mic: #bf3a2b;--mic-soft: #f9e3df;--good: #2b7a4b;--good-soft: #dff0e5;--focus: #1c6b85;--radius: 6px;--radius-lg: 10px;--measure: 68ch;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--paper: #111a1d;--surface: #182225;--surface-2: #1f2b2f;--ink: #e4ebe9;--ink-2: #a9b8bb;--ink-3: #74868a;--line: #2d3b3f;--line-2: #233034;--action: #5fb0cc;--action-ink: #0d1a1f;--clock: #e4a04a;--clock-soft: #3a2a12;--mic: #e8705f;--mic-soft: #3d1c18;--good: #6cc58c;--good-soft: #1b3324;--focus: #5fb0cc}}*{box-sizing:border-box}html{font-family:var(--font);font-size:17px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0 0 .5em}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1rem}p{margin:0 0 1em;max-width:var(--measure)}a{color:var(--action);text-underline-offset:.15em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.small{font-size:.875rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--line-2);background:var(--surface)}.topbar .brand{font-weight:600;text-decoration:none;color:var(--ink);letter-spacing:-.01em}.topbar nav{display:flex;gap:1rem;margin-left:auto}.topbar nav a{color:var(--ink-2);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}.topbar nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.page{width:min(100% - 2.5rem,64rem);margin:0 auto;padding:2rem 0 4rem;flex:1}.page.narrow{width:min(100% - 2.5rem,40rem)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1.1rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;line-height:1.2}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--action);border-color:var(--action);color:var(--action-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.quiet{border-color:transparent;background:transparent;color:var(--action);padding-inline:.5rem}.btn.mic{background:var(--mic);border-color:var(--mic);color:#fff}.btn.lg{padding:.8rem 1.6rem;font-size:1.05rem}.field{display:grid;gap:.35rem;margin-bottom:1rem;max-width:28rem}.field label{font-size:.9rem;color:var(--ink-2)}.input{padding:.55rem .7rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%}.input:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}textarea.input{min-height:14rem;resize:vertical;line-height:1.6}.error{color:var(--mic);margin:.5rem 0}.notice{border-left:3px solid var(--clock);background:var(--clock-soft);padding:.75rem 1rem;border-radius:0 var(--radius) var(--radius) 0;margin:1rem 0;max-width:var(--measure)}.notice p{margin:0}.notice.gate{border-left-color:var(--danger, #b3261e);background:var(--danger-soft, rgba(179, 38, 30, .08))}.sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.25rem;margin:1.5rem 0 2.5rem}.section-card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column}.section-card h2{margin-bottom:.25rem}.section-card .time{color:var(--ink-3);font-size:.85rem;margin-bottom:.75rem}.section-card ul{list-style:none;margin:0 0 1rem;padding:0;flex:1}.section-card li{display:flex;align-items:baseline;gap:.6rem;padding:.3rem 0;border-top:1px solid var(--line-2)}.section-card li a{text-decoration:none;color:var(--ink)}.section-card li a:hover{color:var(--action)}.code{font-size:.72rem;color:var(--ink-3);min-width:3.6rem;font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap}.recent{list-style:none;padding:0;margin:0;max-width:var(--measure)}.recent li{display:grid;grid-template-columns:4rem 1fr auto;gap:1rem;align-items:baseline;padding:.5rem 0;border-top:1px solid var(--line-2)}.recent li a{text-decoration:none;color:var(--ink)}.empty{color:var(--ink-2);border:1px dashed var(--line);padding:1rem;border-radius:var(--radius);max-width:var(--measure)}.exam{display:flex;flex-direction:column;flex:1}.exam-head{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line-2)}.exam-head .row{display:flex;align-items:center;gap:1.25rem;padding:.6rem 1.25rem}.exam-head .type{font-weight:600}.exam-head .phase{color:var(--ink-2)}.exam-head .phase.live{color:var(--mic);font-weight:600}.exam-head .clock{margin-left:auto;font-size:1.6rem;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:.02em}.exam-head .clock.low{color:var(--clock);font-weight:500}.exam-head .clock.mic{color:var(--mic)}.band{height:4px;background:var(--line-2)}.band>i{display:block;height:100%;background:var(--ink-3);transition:background-color .3s}.band>i.low{background:var(--clock)}.band>i.mic{background:var(--mic)}.exam-body{width:min(100% - 2.5rem,52rem);margin:0 auto;padding:1.75rem 0 5rem;flex:1}.instructions{color:var(--ink-2);margin-bottom:1.5rem}.prompt-text{font-size:1.15rem;line-height:1.7;max-width:var(--measure)}.prompt-card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.exam-foot{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line-2);padding:.75rem 1.25rem;display:flex;gap:1rem;align-items:center;justify-content:flex-end}.toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer}.countdown-big{font-size:4rem;font-weight:300;font-variant-numeric:tabular-nums;line-height:1;color:var(--clock);margin:1rem 0}.waiting{display:flex;align-items:center;gap:.75rem;color:var(--ink-2)}.waiting i{width:10px;height:10px;border-radius:50%;background:var(--ink-3);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.player{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);margin-bottom:1.5rem}.player .bar{flex:1;height:6px;background:var(--line-2);border-radius:3px;overflow:hidden}.player .bar>i{display:block;height:100%;background:var(--ink);width:0;transition:width .25s linear}.player .label{min-width:6rem;color:var(--ink-2)}.recorder{display:grid;gap:1rem;padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--line-2);background:var(--surface)}.recorder.live{border-color:var(--mic);background:var(--mic-soft)}.recorder .status{display:flex;align-items:center;gap:.75rem;font-weight:600}.recorder.live .status{color:var(--mic)}.recorder .dot{width:12px;height:12px;border-radius:50%;background:var(--ink-3)}.recorder.live .dot{background:var(--mic);animation:pulse 1s ease-in-out infinite}.meter{display:flex;gap:3px;align-items:flex-end;height:40px}.meter i{flex:1;background:var(--line);border-radius:2px;min-height:3px;transition:height .08s}.recorder.live .meter i{background:var(--mic)}.recorder .actions{display:flex;gap:.75rem;flex-wrap:wrap}.wordcount{display:flex;justify-content:space-between;color:var(--ink-2);font-size:.9rem;margin-top:.4rem;max-width:none}.wordcount.out{color:var(--mic)}.choices{list-style:none;padding:0;margin:0;display:grid;gap:.5rem;max-width:var(--measure)}.choices label{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer}.choices label:has(input:checked){border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}.choices input{margin-top:.3rem}.choices .para{white-space:pre-wrap}.question{font-weight:600;margin:1.25rem 0 .75rem;max-width:var(--measure)}.gapped{font-size:1.1rem;line-height:2.1;max-width:var(--measure)}.gapped select,.gapped input{font-size:1rem;padding:.15rem .4rem;border:1px solid var(--action);border-radius:4px;background:var(--surface);margin:0 .15rem;min-width:7rem}.gap-slot{display:inline-flex;align-items:center;justify-content:center;min-width:7rem;height:1.9rem;margin:0 .15rem;border:1px dashed var(--action);border-radius:4px;vertical-align:middle;padding:0 .5rem;background:var(--surface);cursor:pointer}.gap-slot.filled{border-style:solid}.gap-slot.target{background:color-mix(in srgb,var(--action) 15%,transparent)}.bank{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;margin-top:1.5rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-2);min-height:4rem}.chip{padding:.3rem .75rem;border:1px solid var(--line);background:var(--surface);border-radius:999px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.chip.picked{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}.chip.ghost{position:fixed;pointer-events:none;z-index:10;opacity:.9;box-shadow:0 4px 16px #0003}.reorder{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;max-width:var(--measure)}.reorder li{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);touch-action:none}.reorder li.dragging{opacity:.4}.reorder li.over{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}.reorder .handle{cursor:grab;color:var(--ink-3);-webkit-user-select:none;user-select:none;padding-top:.1rem}.reorder .text{flex:1}.reorder .moves{display:flex;flex-direction:column;gap:.25rem}.reorder .moves button{width:2rem;height:1.6rem;border:1px solid var(--line);border-radius:4px;background:var(--surface);cursor:pointer;line-height:1}.reorder .moves button:disabled{opacity:.3;cursor:default}.clickable{font-size:1.1rem;line-height:2;max-width:var(--measure)}.clickable button{font:inherit;background:none;border:0;padding:0 .15rem;border-radius:3px;cursor:pointer;color:inherit}.clickable button:hover{background:var(--surface-2)}.clickable button.on{background:var(--clock-soft);box-shadow:inset 0 -2px 0 var(--clock)}.figure{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:1rem 1.25rem .75rem;margin-bottom:1.5rem}.figure figcaption{font-weight:600;margin-bottom:.5rem}.figure .chart{overflow-x:auto}.figure svg{width:100%;min-width:30rem;height:auto;display:block}.figure table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.figure th,.figure td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--line-2)}.figure th{color:var(--ink-2);font-weight:600}.figure td.n,.figure th.n{text-align:right}.process{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem 0}.process .step{padding:.5rem .9rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface)}.process .arrow{color:var(--ink-3)}.picture{aspect-ratio:16 / 9;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2);border-radius:var(--radius);font-style:italic;padding:1rem;text-align:center}.result-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}@media(min-width:56rem){.result-grid{grid-template-columns:2fr 1fr;align-items:start}}.total{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1rem}.total .big{font-size:3rem;font-weight:300;font-variant-numeric:tabular-nums;line-height:1}.total .of{color:var(--ink-2)}.traits{list-style:none;padding:0;margin:0 0 2rem;display:grid;gap:.9rem}.traits li{display:grid;gap:.3rem}.traits .head{display:flex;justify-content:space-between;align-items:baseline}.traits .name{font-weight:600}.traits .bar{height:8px;background:var(--line-2);border-radius:4px;overflow:hidden}.traits .bar>i{display:block;height:100%;background:var(--ink)}.traits .bar>i.full{background:var(--good)}.traits .bar>i.zero{background:var(--mic)}.traits .reason{color:var(--ink-2);font-size:.95rem;max-width:var(--measure)}.answer-box{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem;white-space:pre-wrap;line-height:1.7}.answer-box h3{margin-bottom:.75rem}.pause{color:var(--clock);font-weight:600}.workon{padding-left:1.2rem}.workon li{margin-bottom:.4rem}.aside{background:var(--surface-2);border-radius:var(--radius-lg);padding:1.25rem}.aside h3{margin-bottom:.5rem}.aside dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem}.aside dt{color:var(--ink-2)}.aside dd{margin:0}.mark-right{color:var(--good);font-weight:600}.mark-wrong{color:var(--mic);text-decoration:line-through}.mark-missed{color:var(--clock);font-weight:600}.mark-hit{background:var(--good-soft);border-radius:3px;padding:0 .15rem}.mark-false{background:var(--mic-soft);border-radius:3px;padding:0 .15rem;text-decoration:line-through}.mark-wanted{box-shadow:inset 0 -2px 0 var(--clock)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line-2);vertical-align:top}.table th{color:var(--ink-2);font-weight:600;font-size:.9rem}.table td.n{font-variant-numeric:tabular-nums}.table a{text-decoration:none;color:var(--ink)}.table a:hover{color:var(--action)}.trends{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem;margin:1rem 0 2rem}.trend{padding:.75rem;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface)}.trend .label{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink-2);margin-bottom:.3rem}.trend svg{width:100%;height:36px;display:block}.filters{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.filters select{max-width:100%}.summary{list-style:none;padding:0;margin:1rem 0 2rem;max-width:var(--measure)}.summary li{display:grid;grid-template-columns:4rem 1fr auto;gap:1rem;padding:.5rem 0;border-top:1px solid var(--line-2);align-items:baseline}.kv{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.5rem;margin:1rem 0 1.5rem;max-width:36rem}.kv dt{color:var(--ink-2)}.kv dd{margin:0}hr{border:0;border-top:1px solid var(--line-2);margin:2rem 0}.exam-body.split{width:min(100% - 2.5rem,80rem)}@media(min-width:56.25rem){.exam-body.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2.5rem;align-items:start}.exam-body.split>.pane{min-width:0}.exam-body.split>.pane.sticky{position:sticky;top:4.5rem}}.sections{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:64rem){.sections{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:40rem){.sections{grid-template-columns:1fr}}.btn,.chip,.gap-slot,.reorder .moves button,.choices label,.clickable button,.gapped select,.gapped input{min-height:44px}.clickable button{padding-block:.2rem}.reorder .moves button{width:44px}@media(max-width:40rem){html{font-size:16px}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block}.table tr{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);padding:.6rem .8rem;margin-bottom:.6rem}.table td{border:0;padding:.15rem 0}.table td[data-label]:before{content:attr(data-label) ": ";color:var(--ink-2)}.topbar{padding:.6rem 1rem;gap:1rem}.topbar nav{gap:.75rem;font-size:.95rem}.exam-head .row{padding:.5rem 1rem;gap:.75rem}.exam-head .clock{font-size:1.3rem}.recent li,.summary li{grid-template-columns:3.5rem 1fr auto;gap:.5rem}.countdown-big{font-size:3rem}}
