:root{--bg: #EDF0EC;--surface: #F8FAF7;--ink: #16201B;--muted: #5B6861;--line: #D3DAD4;--accent: #2747D0;--accent-soft: #DCE2FA;--pause: #C98510;--pause-soft: #F6E6C6;--good: #2E8A57;--bad: #B83A26;--f-display: "Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--f-body: "Atkinson Hyperlegible", system-ui, -apple-system, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #101412;--surface: #181E1B;--ink: #E3EAE5;--muted: #95A39B;--line: #2A332E;--accent: #8CA2FF;--accent-soft: #222C4D;--pause: #EDB54A;--pause-soft: #3A2F17;--good: #5CC08A;--bad: #F07C68;color-scheme:dark}}:root[data-theme=dark]{--bg: #101412;--surface: #181E1B;--ink: #E3EAE5;--muted: #95A39B;--line: #2A332E;--accent: #8CA2FF;--accent-soft: #222C4D;--pause: #EDB54A;--pause-soft: #3A2F17;--good: #5CC08A;--bad: #F07C68;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5}.wrap{max-width:560px;margin:0 auto;padding-inline:16px;padding-block:calc(14px + env(safe-area-inset-top,0px)) calc(24px + env(safe-area-inset-bottom,0px))}header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:6px 14px}.brand{font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:-.02em}.brand b{color:var(--accent);font-weight:800}.chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.chip{font-family:var(--f-mono);font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.chip.good{color:var(--good);border-color:var(--good)}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}h1,h2{font-family:var(--f-display);letter-spacing:-.01em;margin:0 0 8px}h1{font-size:26px;font-weight:800}h2{font-size:18px;font-weight:600}p{margin:0 0 10px}.muted{color:var(--muted);font-size:14px}.err{color:var(--bad);font-size:14px}.ok{color:var(--good);font-size:14px}.mono{font-family:var(--f-mono)}label{display:block;font-size:14px;color:var(--muted);margin-bottom:4px}input,textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}input.code{font-family:var(--f-mono);font-size:24px;letter-spacing:.3em;text-align:center}textarea{min-height:110px;resize:vertical}button{font:inherit;font-weight:700;border-radius:10px;padding:12px 16px;cursor:pointer;border:1px solid transparent;background:var(--accent);color:var(--surface);min-height:44px}button.ghost{background:transparent;color:var(--ink);border-color:var(--line)}button.link{background:none;border:0;color:var(--accent);padding:8px 0;min-height:0;font-weight:400}button:disabled{opacity:.5;cursor:default}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.wide{width:100%}button.flag{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px;min-height:32px;font-weight:400}.sheet-bg{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-end;z-index:10}.sheet{background:var(--surface);width:100%;max-width:560px;margin:0 auto;max-height:88vh;overflow-y:auto;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px))}.sheet ol{padding-left:0;list-style:none;margin:12px 0 0}.sheet li{border-top:1px solid var(--line);padding:10px 0;font-size:14px}.sheet li .meta{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.status{font-family:var(--f-mono);font-size:12px;padding:1px 7px;border-radius:999px;border:1px solid var(--line)}.status.shipped{color:var(--good);border-color:var(--good)}.status.in_progress{color:var(--pause);border-color:var(--pause)}main{display:flex;flex-direction:column;gap:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700}.small{font-size:13px}.row.between{justify-content:space-between}.row.end{align-items:flex-end}button.primary{background:var(--accent);color:var(--surface)}.row .wide{flex:1 1 140px;width:auto}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.steps span{height:5px;border-radius:3px;background:var(--line)}.steps span.on{background:var(--accent)}.steps span.done{background:var(--ink);opacity:.55}.prompt{font-family:var(--f-display);font-weight:600;font-size:21px;line-height:1.3;letter-spacing:-.01em;text-wrap:pretty}.timer{font-family:var(--f-mono);font-weight:600;font-size:56px;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.timer.over{color:var(--pause)}.timer small{font-size:16px;color:var(--muted);font-weight:400;letter-spacing:0}.live{display:flex;gap:8px;align-items:center;font-family:var(--f-mono);font-size:13px;color:var(--muted)}.recdot{width:10px;height:10px;border-radius:50%;background:var(--bad);animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}@media(prefers-reduced-motion:reduce){.recdot{animation:none}}.pmap{position:relative;height:26px;border-radius:6px;background:var(--pause-soft);overflow:hidden}.pmap i{position:absolute;top:0;bottom:0;background:var(--accent);border-radius:2px}.pmap.pending{display:flex;align-items:center;padding-inline:8px;font-family:var(--f-mono);font-size:12px;color:var(--muted);background:var(--bg)}.pmap-legend{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:11px;color:var(--muted)}.mrow{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center}.mrow .tg{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.takeerr p{margin:0 0 6px}.tw{overflow-x:auto}table.cmp{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}table.cmp th,table.cmp td{text-align:right;padding:7px 6px;border-bottom:1px solid var(--line)}table.cmp th:first-child,table.cmp td:first-child{text-align:left;color:var(--muted);font-weight:400}table.cmp th{font-family:var(--f-mono);font-size:12px;color:var(--muted);font-weight:600}table.cmp td{font-family:var(--f-mono)}
