:root{--stage:#0b1020;--card:#ffffff0f;--stroke:#ffffff17;--text:#f3f4f8;--muted:#9aa0b4;--accent:#6366f1;--gold:#facc15;--orange:#fb923c}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--stage);color:var(--text);-webkit-font-smoothing:antialiased;font:15px/1.4 -apple-system,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif}button{font:inherit;color:inherit;background:var(--card);border:1px solid var(--stroke);cursor:pointer;border-radius:999px;padding:8px 14px}button:hover:not(:disabled){background:#ffffff1a}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}a{color:#a5b4fc}.app{max-width:720px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));flex-direction:column;gap:8px;height:100dvh;margin:0 auto;display:flex}.top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand h1{margin:0;font-size:18px}.orb{background:radial-gradient(circle at 35% 30%,#9ec5ff,#3b82f6 45%,#0f2d8c 100%);border-radius:50%;width:26px;height:26px;display:inline-block;box-shadow:0 2px 8px #3b82f680}.levels{flex-wrap:wrap;gap:6px;display:flex}.levels button{padding:6px 12px;font-size:13px}.levels button.on{background:var(--accent);border-color:var(--accent);color:#fff}.icons{gap:6px;margin-left:auto;display:flex}.icons button{padding:6px 10px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.card{background:var(--card);border:1px solid var(--stroke);border-radius:14px;padding:6px 12px}.label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1.1}.row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.counts{flex-wrap:wrap;gap:6px;display:flex}.count{background:var(--card);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:13px;font-weight:600;display:inline-flex}.count i{border-radius:50%;width:10px;height:10px;display:inline-block}.count.empty{color:var(--muted)}.count.empty i{opacity:.35}.code{color:var(--muted);margin-left:auto;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.statusline{height:20px;font-size:13px}.status{color:var(--muted)}.status.selected{color:#a5b4fc;font-weight:500}.status.target{color:var(--orange);font-weight:500}.status.hinted{color:var(--gold);font-weight:500}.stage{border:1px solid var(--stroke);background:var(--stage);border-radius:20px;flex:1;min-height:0;position:relative;overflow:hidden}.board3d{position:absolute;inset:0}.board3d canvas{display:block;width:100%!important;height:100%!important}.overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0b1020bf;place-items:center;display:grid;position:absolute;inset:0}.panel{text-align:center;border:1px solid var(--stroke);background:#141a2cf2;border-radius:24px;width:calc(100% - 32px);max-width:360px;padding:20px}.panel h2{margin:6px 0}.panel .big{font-size:40px}.total{font-variant-numeric:tabular-nums;margin:4px 0;font-size:36px;font-weight:900}.actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.appstore{margin-top:12px;font-size:13px;display:inline-block}.muted{color:var(--muted)}.gold{color:var(--gold);font-weight:600}.orange{color:var(--orange);font-weight:600}.bar{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.bar button{padding:10px 6px;font-size:14px}.fine{text-align:center;color:var(--muted);margin:0;font-size:12px}.sheet-backdrop{z-index:20;background:#0000008c;place-items:end center;display:grid;position:fixed;inset:0}.sheet-backdrop.replay{background:var(--stage);place-items:stretch stretch;overflow:auto}.sheet{width:min(720px,100%);max-height:88vh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#141a2c;border-radius:20px 20px 0 0;overflow:auto}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet h2{margin:0}.sheet h3{margin:14px 0 4px;font-size:14px}.list{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.rowbtn{text-align:left;border-radius:14px;justify-content:space-between;align-items:center;width:100%;padding:10px 14px;display:flex}.rowbtn.static{cursor:default;background:var(--card);border:1px solid var(--stroke)}.rowbtn .right{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-weight:600;display:flex}.rowbtn .right button{padding:4px 10px;font-size:12px}.codeinput{text-transform:uppercase;border:1px solid var(--stroke);background:var(--card);width:100%;color:var(--text);border-radius:12px;margin:8px 0;padding:12px;font:20px ui-monospace,SFMono-Regular,Menlo,monospace}.toggle{align-items:center;gap:8px;font-weight:500;display:flex}@media (width<=420px){.levels button{padding:5px 10px;font-size:12px}.icons button{padding:5px 8px}.fine{display:none}.bar button{padding:8px 4px;font-size:13px}}@media (width>=900px){.app{grid-template-columns:1fr 340px;grid-template-areas:"top top""stage stats""stage row""stage status""stage bar""stage fine";align-content:start;max-width:1100px;display:grid}.top{grid-area:top}.stage{grid-area:stage;min-height:78vh}.stats{grid-area:stats;grid-template-columns:1fr}.row{grid-area:row}.statusline{grid-area:status}.bar{grid-area:bar;grid-template-columns:repeat(5,1fr)}.fine{grid-area:fine}}
