:root{--bg:#f6f7f9;--card:#fff;--text:#16181d;--muted:#6b7280;--line:#e5e7eb;--good:#0f8a4b;--bad:#c62828;--warn:#b26a00;--accent:#3b5bdb;color-scheme:light dark;font:14px/1.45 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--card:#171a21;--text:#e6e8ec;--muted:#8b93a1;--line:#262b35;--good:#3fbf7f;--bad:#ef5350;--warn:#f0a63a;--accent:#7c95ff}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.page{gap:12px;max-width:1280px;margin:0 auto;padding:16px;display:grid}header{flex-wrap:wrap;align-items:center;gap:12px;display:flex}header h1{margin:0;font-size:20px}.spacer{flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:0;padding:14px;overflow-x:auto}.grid{gap:12px;display:grid}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.two{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.three{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}h2{margin:0 0 8px;font-size:15px}h3{margin:12px 0 6px;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.good{color:var(--good)}.bad{color:var(--bad)}.stat .value{font-variant-numeric:tabular-nums;margin:2px 0 6px;font-size:22px;font-weight:600}.bar{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.bar .fill{background:var(--accent);height:100%}.bar .fill.hot{background:var(--bad)}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:4px 6px}th{color:var(--muted);font-weight:500}.banner{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 14px;display:flex}.banner strong{font-size:16px}.banner.trading{border-left:6px solid var(--good)}.banner.pulled{border-left:6px solid var(--warn)}.banner.halted,.banner.offline{border-left:6px solid var(--bad)}.banner.unknown{border-left:6px solid var(--muted)}.pill{border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px}.pill.sim{color:var(--accent)}.pill.live{color:var(--bad);font-weight:600}b.trading{color:var(--good)}b.pulled{color:var(--warn)}b.halted{color:var(--bad)}.timeline{gap:4px;margin:0;padding:0;list-style:none;display:grid}.chart{margin:0}.chart figcaption{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.chart svg{width:100%;height:140px;display:block}.chart .line{fill:none;stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.chart .zero{stroke:var(--muted);stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.chart.empty{color:var(--muted);text-align:center;padding:40px 0}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 12px}button.link{color:var(--accent);background:0 0;border:none;padding:4px}.ranges button{border-radius:0;margin-left:-1px}.ranges button.on{background:var(--accent);color:#fff}select,input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:8px;padding:8px}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.signin{gap:10px;width:min(360px,100%);display:grid}.signin h1{margin:0}.signin label{gap:4px;display:grid}.signin button:not(.link){background:var(--accent);color:#fff;border:none;padding:10px}.error{color:var(--bad);margin:0}code{font-size:12px}.signals td:first-child{width:42%}.sigbar{width:40%;height:14px;position:relative}.sigbar:before{content:"";border-left:1px solid var(--line);position:absolute;top:2px;bottom:2px;left:50%}.sb{border-radius:2px;position:absolute;top:3px;bottom:3px}.sb.pos{background:var(--good)}.sb.neg{background:var(--bad)}.pairs{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.card.pair{text-align:left;cursor:pointer;font:inherit;color:inherit;gap:4px;display:grid}.card.pair:hover{border-color:var(--accent)}.card.pair.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.pair-head{justify-content:space-between;align-items:center;font-size:15px;display:flex}.pair-state{font-size:12px;font-weight:600}.pair-state.trading{color:var(--good)}.pair-state.pulled{color:var(--warn)}.pair-state.halted,.pair-state.offline{color:var(--bad)}.pair-state.unknown{color:var(--muted)}.pair-num{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;display:flex}h2.section{margin:8px 0 0;font-size:17px}.warn{color:var(--warn)}button.danger{background:var(--bad);color:#fff;border:none}button.danger:disabled{opacity:.4;cursor:not-allowed}.confirm{gap:8px;display:grid}.confirm .row{gap:8px;display:flex}.portfolio td.num,.portfolio th{text-align:right}.portfolio td:first-child,.portfolio th:first-child{text-align:left}.portfolio tfoot td{border-top:2px solid var(--line);border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:color-mix(in srgb, var(--accent) 8%, transparent)}tr.sel td{background:color-mix(in srgb, var(--accent) 14%, transparent)}.conn-banner{z-index:10;background:var(--warn);color:#111;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;display:flex;position:sticky;top:0}.conn-banner code{background:#00000014;border-radius:4px;padding:0 4px}.conn-banner button.link{color:#111;text-decoration:underline}
