:root{color-scheme:dark;--bg:#0f0b1e;--panel:#1b1535;--fg:#ece7ff;--muted:#a79fcf;--line:#3a2f6b;--accent:#f0c24b;--err:#ff5c80;--c-bg:#fff;--c-given:#e8e4f4;--c-peer:#f0edfa;--c-sel:#cfc3ff;--c-line:#cdc6e2;--c-strong:#2b2150}
*{box-sizing:border-box}
html{background:#0f0b1e}
body{margin:0;background:radial-gradient(ellipse at top,#241a4d,#0f0b1e 60%) fixed;color:var(--fg);font:16px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif;min-height:100vh;padding:14px max(16px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-bottom))}
[hidden]{display:none!important}
.wrap{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}
h1{font-size:1.5rem;margin:0;letter-spacing:.04em;text-wrap:balance}
header p{margin:0;color:var(--muted);font-size:.9rem}
.nav{display:flex;gap:6px 14px;flex-wrap:wrap;justify-content:center;font-size:.85rem;margin-bottom:4px}
.nav a{color:var(--muted);text-decoration:none;padding:2px 2px;border-bottom:1px solid transparent}
.nav a:hover{color:var(--fg)}.nav a[aria-current]{color:var(--accent);border-bottom-color:var(--accent)}
.stats{display:flex;gap:16px;justify-content:center;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;margin-top:4px;min-height:18px}
.bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
button,select{font:inherit;font-size:14px;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer}
button:focus-visible,select:focus-visible,.cell:focus-visible,.tok:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button[aria-pressed="true"],button.pri{background:var(--accent);color:#241a00;border-color:var(--accent);font-weight:600}
button:hover{filter:brightness(1.15)}button:disabled{opacity:.5;cursor:default}
.sym{filter:drop-shadow(0 1px 2px #0009);aspect-ratio:1;background-size:contain;background-repeat:no-repeat;background-position:center;position:relative;display:block}
.tok{box-shadow:0 2px 8px #0006;position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:0}
.tok .sym{width:100%}
.tok small{font:700 12px/1 system-ui,sans-serif;color:var(--fg);font-variant-numeric:tabular-nums}
.tok.done{opacity:.3}
.hint{color:var(--muted);font-size:12.5px;line-height:1.5;margin:0}
.estado{color:var(--accent);font-size:13px;font-weight:600}
.win{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,8,24,.62);padding:20px;z-index:20}
.win div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 28px;max-width:360px;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}
.win h2{margin:0;font-size:24px;color:var(--accent)}.win p{margin:0;color:var(--muted)}
body.embed h1,body.embed .hint,body.embed .nav{display:none}
@media (prefers-reduced-motion:no-preference){.cell,.slot{transition:background .12s}}
.volver{font-size:.85rem;text-align:center}.volver a{color:var(--muted);text-decoration:none}.volver a:hover{color:var(--fg)}
body.embed .volver{display:none}
.marcador{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.marcador div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 10px;text-align:center;min-width:72px}
.marcador small{display:block;color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.marcador b{font-size:17px;font-variant-numeric:tabular-nums}
.disc{aspect-ratio:1;background-size:contain;background-repeat:no-repeat;background-position:center;display:block}
