:root{--bg:#070b14;--card:#0e1524;--card2:#131c2f;--line:#1f2a40;--txt:#e6edf7;--mut:#8a97ad;--acc:#10b981;--acc2:#0ea5e9;--neg:#f43f5e;--warn:#f59e0b;--r:14px}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--acc2);text-decoration:none}.mut{color:var(--mut)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.pos{color:var(--acc)}.neg{color:var(--neg)}.warn{color:var(--warn)}
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;border:1px solid var(--line);background:var(--card2);color:var(--txt);padding:8px 14px;border-radius:10px;cursor:pointer;font-weight:600;font-size:13px}
.btn:hover{border-color:#334155}.btn.p{background:linear-gradient(135deg,#059669,#0284c7);border:0}.btn.d{background:#3b0d18;border-color:#5b1526;color:#fecdd3}.btn.sm{padding:5px 10px;font-size:12px}.btn.wide{width:100%;padding:12px}
.btn[disabled]{opacity:.5;cursor:default}
.msg{margin-top:10px;font-size:13px}.msg.err{color:var(--neg)}.msg.ok{color:var(--acc)}
/* login */
body.login{display:grid;place-items:center;min-height:100vh;background:radial-gradient(1000px 500px at 20% -10%,#0f2a2a,transparent),radial-gradient(800px 400px at 110% 110%,#0c1d3a,transparent),var(--bg)}
.login-card{width:min(420px,92vw);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:30px}
.login-card h1{font-size:24px;margin:18px 0 8px}.brand{display:flex;align-items:center;gap:8px}.brand img{width:30px;height:30px}.brand span{color:var(--mut);font-weight:600}
.login-card .btn{margin-top:18px}
/* app */
header{position:sticky;top:0;z-index:5;background:rgba(7,11,20,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hwrap{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:12px 18px}
.tabs{display:flex;gap:4px;flex:1;overflow-x:auto}.tab{padding:7px 12px;border-radius:9px;color:var(--mut);cursor:pointer;white-space:nowrap;font-weight:600}
.tab.on{background:var(--card2);color:var(--txt)}
.pill{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.3px}
.pill.paper{background:#1e293b;color:#93c5fd}.pill.live{background:#052e1f;color:#6ee7b7}.pill.kill{background:#4c0519;color:#fda4af}
.avatar{width:30px;height:30px;border-radius:50%;background:#1e293b}
main{max-width:1280px;margin:0 auto;padding:18px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.g2,.g4{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.card h3{margin:0 0 10px;font-size:14px;display:flex;align-items:center;gap:8px}.card h3 .grow{flex:1}
.kpi .v{font-size:22px;font-weight:800;margin-top:4px}.kpi .s{font-size:12px;color:var(--mut);margin-top:2px}
.chain{display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)}
.dot.off{background:#64748b;box-shadow:none}.dot.bad{background:var(--neg);box-shadow:0 0 8px var(--neg)}
table{width:100%;border-collapse:collapse;font-size:13px}th{color:var(--mut);font-weight:600;text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:8px;border-bottom:1px solid #141d30;vertical-align:middle;white-space:nowrap}tr:hover td{background:#0b1322}
.tw{overflow-x:auto}
.bar{height:6px;background:#1e293b;border-radius:4px;overflow:hidden;min-width:70px}.bar i{display:block;height:100%;background:var(--acc2)}
.tag{display:inline-block;padding:2px 7px;border-radius:6px;background:#1e293b;color:#cbd5e1;font-size:11px;font-weight:600}
.tag.in{background:#052e1f;color:#6ee7b7}.tag.below{background:#3b0d18;color:#fda4af}.tag.above{background:#1e2a4a;color:#93c5fd}
.feed{max-height:420px;overflow:auto}.ev{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid #141d30;font-size:12.5px}.ev .t{color:var(--mut);min-width:86px}
.ev.trade .m{color:#e2e8f0}.ev.warn .m{color:var(--warn)}.ev.error .m{color:var(--neg)}
canvas{width:100%;height:180px}
.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}
.form input,.form select{background:#0a1120;border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:8px;font-size:13px}
.sw{display:flex;align-items:center;gap:8px;cursor:pointer}
.empty{padding:26px;text-align:center;color:var(--mut)}
.wopt{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card2);cursor:pointer;width:100%;color:var(--txt);text-align:left}
.wopt img{width:26px;height:26px;border-radius:6px}
dialog{background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:16px;width:min(460px,94vw);padding:18px}
dialog::backdrop{background:rgba(0,0,0,.6)}
.note{background:#0b1a2e;border:1px solid #16304f;border-radius:10px;padding:10px 12px;color:#bcd3f0;font-size:12.5px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.segopt{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card2);cursor:pointer;text-align:left;color:var(--txt)}
.segopt>b{display:block;font-size:15px;margin-bottom:4px}.segopt span b{color:var(--txt)}.segopt>span{font-size:12.5px;color:var(--mut)}
.segopt.on{border-color:var(--acc);background:linear-gradient(135deg,rgba(16,185,129,.14),rgba(14,165,233,.08))}
@media(max-width:700px){.seg{grid-template-columns:1fr}}
.pill.auto{background:#052e1f;color:#6ee7b7}.pill.manual{background:#2a1f05;color:#fcd34d}
.ro input,.ro select{opacity:.65;pointer-events:none}
.ev.auto .m{color:#a7f3d0}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--card2);border:1px solid var(--line);padding:10px 16px;border-radius:10px;z-index:50}
