:root{--bg: #0f1216;--card: #1a1f26;--card2: #232a33;--text: #e8eaed;--muted: #9aa0a6;--accent: #3b82f6;--green: #22c55e;--amber: #f59e0b;--red: #ef4444;--border: #2a313b}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#root{max-width:640px;margin:0 auto;padding:12px 12px 84px}h1{font-size:18px;margin:4px 0 12px}h2{font-size:15px;margin:0 0 8px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row+.row{margin-top:10px}.muted{color:var(--muted);font-size:13px}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}.pos{font-size:22px;font-weight:700}.pos.good{color:var(--green)}.pos.mid{color:var(--amber)}.pos.bad{color:var(--muted)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:var(--card2);color:var(--muted)}.badge.on{background:#22c55e26;color:var(--green)}.badge.off{background:#ef444426;color:var(--red)}input,select{width:100%;background:var(--card2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:15px;outline:none}input:focus{border-color:var(--accent)}label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}button{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer}button.sec{background:var(--card2);color:var(--text);border:1px solid var(--border)}button.danger{background:#ef444426;color:var(--red)}button.ghost{background:transparent;color:var(--muted);padding:6px 8px}button:active{opacity:.8}button.full{width:100%}button:disabled{opacity:.5}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;background:#12161c;border-top:1px solid var(--border);max-width:640px;margin:0 auto;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabs button{flex:1;background:none;color:var(--muted);font-size:11px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}.tabs button.active{color:var(--accent)}.tabs .ic{font-size:18px}.picker{position:relative}.picker .drop{position:absolute;z-index:20;left:0;right:0;top:46px;background:var(--card2);border:1px solid var(--border);border-radius:10px;max-height:220px;overflow-y:auto}.picker .drop div{padding:9px 12px;font-size:14px;cursor:pointer;border-bottom:1px solid var(--border)}.picker .drop div:active{background:var(--card)}.toggle{width:44px;height:26px;border-radius:999px;background:var(--card2);position:relative;transition:background .15s;flex:none}.toggle.on{background:var(--green)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.toggle.on:after{left:21px}.err{background:#ef44441f;color:var(--red);padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:12px}.ok{background:#22c55e1f;color:var(--green);padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:12px}.center{text-align:center}.spin{color:var(--muted);text-align:center;padding:40px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hr{height:1px;background:var(--border);margin:12px 0}.tag{font-size:11px;color:var(--muted)}.title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.boardrow{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px}.boardrow+.boardrow{margin-top:2px}.boardrow.ours{background:#22c55e29;color:var(--green);font-weight:700}.bpos{width:26px;color:var(--muted);text-align:right;flex:none;font-variant-numeric:tabular-nums}.boardrow.ours .bpos{color:var(--green)}.bname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brate{flex:none;color:var(--text)}.boardrow.ours .brate{color:var(--green)}
