:root{--bg:#0f1115;--card:#181b22;--line:#2a2f3a;--fg:#e8eaf0;--mute:#9aa3b2;--acc:#4f8cff;--ok:#3ecf8e;--bad:#ff6b6b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,sans-serif;line-height:1.5}main{max-width:760px;margin:0 auto;padding:32px 16px}h1{margin:0 0 4px}.mute{color:var(--mute)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.card.sel{border-color:var(--acc)}button{background:var(--acc);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-size:16px;cursor:pointer}button.ghost{background:transparent;border:1px solid var(--line);color:var(--fg)}button:disabled{opacity:.5;cursor:default}.row{display:flex;gap:8px;flex-wrap:wrap}.err{color:var(--bad)}.score{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.score div{text-align:center}.score b{font-size:28px;display:block}label{margin:12px 0 0;color:var(--mute);font-size:14px}input,label{display:block}input{width:100%;margin-top:4px;padding:10px 12px;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:8px;font-size:16px}input:focus{outline:2px solid var(--acc)}