:root{--bg:#f6f7fb;--card:#fff;--ink:#16181d;--muted:#5d6470;--line:#e2e5ec;--accent:#3d4ee0;--good:#0d7a4a;--goodbg:#eaf7f0;--bad:#b3261e;--badbg:#fdeceb;--warn:#8a5a00;--warnbg:#fff6e0}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.wrap{max-width:820px;margin:0 auto;padding:16px}.card,.runner{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}h1{overflow-wrap:anywhere;margin:0 0 8px;font-size:1.5rem;line-height:1.25}h2{margin:0 0 8px;font-size:1.1rem}p{margin:0 0 12px}.muted{color:var(--muted)}.source,.ref{color:var(--muted);font-size:.85rem}.who{overflow-wrap:anywhere}.error{color:var(--bad);background:var(--badbg);border:1px solid #f3c9c6;border-radius:8px;padding:10px 12px}.notice{color:var(--warn);background:var(--warnbg);border:1px solid #f0dca8;border-radius:8px;padding:10px 12px}.idform{flex-direction:column;gap:6px;margin-top:16px;display:flex}.idform label{margin-top:8px;font-size:.9rem;font-weight:600}.idform input{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;width:100%;min-width:0;padding:10px 12px}.idform input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:44px;margin-top:16px;padding:12px 18px;font-weight:600}button.primary:disabled{opacity:.6;cursor:default}.rules{border:1px solid var(--line);background:#f2f4fb;border-radius:8px;margin:16px 0;padding:12px 12px 12px 8px}.rules ul{margin:0;padding-left:22px}.rules li{margin-bottom:6px}.quizlist{margin:16px 0;padding:0;list-style:none}.quizlist a{border:1px solid var(--line);color:inherit;border-radius:8px;flex-direction:column;gap:2px;margin-bottom:8px;padding:12px;text-decoration:none;display:flex}.adminlink{margin-top:16px;font-size:.9rem}.statusbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px;padding-bottom:12px;font-size:.9rem;display:flex}.strike{color:var(--bad);font-weight:600}.questions{counter-reset:q;margin:0;padding:0;list-style:none}.qcard{border:1px solid var(--line);border-radius:10px;min-width:0;margin-bottom:14px;padding:14px}.questions .qcard:before{counter-increment:q;content:"Question " counter(q);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.78rem;display:block}.prompt{overflow-wrap:anywhere}.choices{flex-direction:column;gap:8px;display:flex}.choice{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;display:flex}.choice span{overflow-wrap:anywhere;min-width:0}.choice input{flex:none;width:18px;height:18px;margin-top:4px}.choice.picked{border-color:var(--accent);background:#f2f4fd}button.submit{width:100%}.overlay{z-index:50;background:#101218b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.warnbox{background:#fff;border-radius:12px;width:min(460px,100vw - 32px);padding:20px}.warnbox h2{color:var(--bad)}.terminated{background:var(--badbg);border:1px solid #f3c9c6;border-radius:8px;margin-bottom:16px;padding:12px}.terminated h2{color:var(--bad)}.reviewhead{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.qcard.right{border-left:4px solid var(--good)}.qcard.wrong{border-left:4px solid var(--bad)}.verdict{margin-bottom:8px;font-weight:700}.qcard.right .verdict{color:var(--good)}.qcard.wrong .verdict{color:var(--bad)}.reviewchoices{margin:0 0 12px;padding:0;list-style:none}.reviewchoices .rc{border:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere;border-radius:8px;margin-bottom:6px;padding:8px 10px}.reviewchoices .correct{background:var(--goodbg);color:var(--ink);border-color:#9ed3b8}.reviewchoices .chosen-wrong{background:var(--badbg);color:var(--ink);border-color:#f3c9c6}.pill{text-transform:uppercase;letter-spacing:.04em;background:#00000014;border-radius:4px;margin-right:8px;padding:2px 6px;font-size:.72rem;font-weight:700;display:inline-block}.unanswered{color:var(--bad);font-size:.9rem}.explain{overflow-wrap:anywhere;background:#f5f6fa;border-radius:8px;margin-bottom:8px;padding:10px 12px}.codeblock{font-variant-ligatures:none;tab-size:2;border-radius:8px;margin:12px 0;padding:12px 0;font-family:ui-monospace,SFMono-Regular,Cascadia Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(.75rem,.7rem + .25vw,.85rem);line-height:1.6;overflow-x:hidden}.linetext span{text-transform:none;letter-spacing:normal;font-weight:inherit;font-size:inherit;background:0 0;border:0;border-radius:0;margin:0;padding:0;display:inline}.codeline{align-items:flex-start;min-width:0;padding:0 12px;display:flex}.lineno{text-align:right;opacity:.4;-webkit-user-select:none;user-select:none;border-right:1px solid #ffffff1f;flex:none;width:1.5em;margin-right:8px;padding-right:8px}.linetext{white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;text-indent:-2ch;flex:auto;min-width:0;padding-left:2ch}code.inline{overflow-wrap:anywhere;background:#eceef5;border:1px solid #dfe2ec;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.tablewrap{margin:16px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap;padding:8px 10px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem}.qlayout{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.qmain{flex:420px;min-width:0}.qcount{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.78rem}.pager{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.qnav{border:1px solid var(--line);border-radius:10px;flex:0 210px;min-width:0;padding:12px;position:sticky;top:12px}.qnavtitle{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.78rem}.navgrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.navbtn{aspect-ratio:1;border:1px solid var(--line);min-height:34px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0;font-size:.85rem}.navbtn:hover{border-color:var(--fg)}.navbtn.answered{background:var(--ok,#1a7f37);border-color:var(--ok,#1a7f37);color:#fff}.navbtn.current{outline:2px solid var(--fg);outline-offset:1px;font-weight:700}.navkey{color:var(--muted);margin:10px 0 0;padding:0;font-size:.75rem;list-style:none}.navkey li{align-items:center;gap:6px;margin-top:4px;display:flex}.swatch{border:1px solid var(--line);border-radius:3px;flex:none;width:12px;height:12px}.swatch.answered{background:var(--ok,#1a7f37);border-color:var(--ok,#1a7f37)}.navprogress{color:var(--muted);margin:10px 0 8px;font-size:.8rem}.qnav .submit{width:100%;margin:0}.playground{min-width:0}.pgbar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.pgbtn{border:1px solid var(--line);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;min-height:36px;padding:6px 12px;font-size:.85rem}.pgbtn:hover:not(:disabled){border-color:var(--fg)}.pgbtn:disabled{opacity:.45;cursor:default}.pgbtn.run{border-color:var(--ok,#1a7f37);color:var(--ok,#1a7f37);font-weight:600}.pgdirty{color:var(--muted);font-size:.75rem;font-style:italic}.pgedit{--pgln:3.1em;color:#d6deeb;letter-spacing:normal;font-variant-ligatures:none;tab-size:2;background:#011627;min-width:0;font-family:ui-monospace,SFMono-Regular,Cascadia Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(.75rem,.7rem + .25vw,.85rem);line-height:1.6;position:relative;overflow:hidden}.pgedit-hl,.pgedit-ta{box-sizing:border-box;width:100%;min-width:0;padding:12px 12px 12px calc(12px + var(--pgln));font:inherit;letter-spacing:inherit;tab-size:inherit;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;border:0;margin:0}.pgedit-hl{counter-reset:pgln;min-height:calc(6.4em + 24px);position:relative}.pgedit-line{min-height:1.6em;display:block;position:relative}.pgedit-line:before{counter-increment:pgln;content:counter(pgln);left:calc(0px - var(--pgln));width:calc(var(--pgln) - 16px);text-align:right;opacity:.4;-webkit-user-select:none;user-select:none;pointer-events:none;border-right:1px solid #ffffff1f;padding-right:7px;position:absolute}.pgedit-line span{font:inherit;letter-spacing:inherit;text-transform:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;display:inline}.pgedit-ta{resize:none;color:#0000;caret-color:#d6deeb;-webkit-text-fill-color:transparent;background:0 0;height:100%;position:absolute;inset:0;overflow:hidden}.pgedit-ta::selection{background:#7aa2f752}.pgedit-ta:focus{outline:none}.pgedit:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.pgout{border:1px solid var(--line);border-radius:8px;min-width:0;margin-top:10px;overflow:hidden}.pgoutlabel{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:#7f7f7f14;padding:6px 10px;font-size:.72rem}.pgframe{background:#fff;border:0;width:100%;min-width:0;height:200px;display:block}.pgpane{border:1px solid var(--line);border-radius:8px;min-width:0;overflow:hidden}.pgpanelabel{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:#7f7f7f14;padding:6px 10px;font-size:.72rem}.pgpane .codeblock{border-radius:0;margin:0}.pglive{letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px;font-size:.68rem;font-style:italic}.clock{font-variant-numeric:tabular-nums;color:var(--muted)}.clock.warn{color:var(--warn);font-weight:600}.clock.danger{color:var(--bad);font-weight:700}.tstep{border-top:1px solid var(--line);min-width:0;margin-top:18px;padding-top:14px}.tstep h2{margin:0 0 6px;font-size:1.02rem}.tstep p{margin:0 0 8px}.tkey{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.tryit{margin-top:12px;font-size:.85rem}.tnav{gap:10px;margin-top:22px}.tnav .primary{margin:0}@media (max-width:640px){.qnav{flex:100%;order:2;position:static}.qmain{flex:100%;order:1}.navgrid{grid-template-columns:repeat(8,minmax(0,1fr))}.pgframe{height:170px}.pager .pgbtn{flex:auto}}@media (max-width:480px){.wrap{padding:10px}.card,.runner{padding:12px}h1{font-size:1.28rem}}
