:root{--bg:#0c1018;--card:#141a26;--line:#222b3b;--fg:#e6edf6;--mut:#7d8aa3;--cyan:#22d3ee;--green:#22c55e;--red:#ef4444;--orange:#f59e0b}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,system-ui,sans-serif}
header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:rgba(12,16,24,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:18px}.badge{font-size:11px;padding:2px 8px;border-radius:99px;background:#334155;margin-left:6px;vertical-align:middle}
.badge.paper{background:#1e3a8a}.badge.live{background:var(--red)}
.dot{width:10px;height:10px;border-radius:50%;background:var(--mut)}.dot.ok{background:var(--green)}.dot.err{background:var(--red)}
main{padding:12px 12px calc(80px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#0f1520;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1;background:none;border:0;color:var(--mut);padding:14px 0;font-size:13px}nav button.on{color:var(--cyan);font-weight:600}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}
.card h3{margin:0 0 6px;font-size:13px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.04em;display:flex;justify-content:space-between}
.big{font-size:30px;font-weight:700}.mut{color:var(--mut)}.g{color:var(--green)}.r{color:var(--red)}.c{color:var(--cyan)}.o{color:var(--orange)}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--line)}.row:first-of-type{border-top:0}
.row .l{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row small{display:block;color:var(--mut);font-size:12px}
.kill .l{color:var(--mut);text-decoration:line-through;text-decoration-color:var(--red)}
.btn{display:inline-block;background:var(--cyan);color:#001018;border:0;border-radius:10px;padding:9px 12px;font-weight:700;text-decoration:none;font-size:14px}
.btn.sell{background:var(--orange)}.btn.ghost{background:#1f2937;color:var(--fg)}
.pill{display:inline-block;font-size:12px;padding:2px 8px;border-radius:99px;border:1px solid}.pill.r{border-color:var(--red)}.pill.g{border-color:var(--green)}
.strips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.strip{height:30px;border-radius:7px;background:#1f2937;font-size:10px;display:flex;align-items:center;justify-content:center;text-align:center;padding:2px;color:var(--mut)}
.strip.ok{background:rgba(34,197,94,.18);color:var(--green)}.strip.bad{background:rgba(239,68,68,.2);color:var(--red)}.strip.run{background:rgba(34,211,238,.2);color:var(--cyan);animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.5}}
.disc{width:220px;height:220px;margin:8px auto;position:relative}.disc svg{width:100%;height:100%}
.ring{width:84px;height:84px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bar{height:8px;background:#1f2937;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--cyan)}
canvas{width:100%;display:block}
.set{padding:10px 0;border-top:1px solid var(--line)}.set label{display:flex;justify-content:space-between;font-size:13px}
.set .ctl{display:flex;gap:8px;align-items:center;margin-top:6px}.set input[type=range]{flex:1}.set input[type=number],.set input[type=text],.set select{width:110px;background:#0f1520;color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:6px}
.empty{color:var(--mut);text-align:center;padding:40px 12px}.error{color:var(--red);text-align:center;padding:30px 12px}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#1f2937;padding:10px 14px;border-radius:10px;display:none;max-width:90%;white-space:pre-wrap}
a{color:var(--cyan)}.back{background:none;border:0;color:var(--cyan);font-size:15px;padding:4px 0 10px}
