:root{--bg:#0b0f17;--panel:#121826;--line:#1f2a3d;--text:#e6ebf5;--mut:#8a97b1;--buy:#22c55e;--sell:#ef4444;--warn:#f59e0b;--acc:#3b82f6}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}.wrap{max-width:1100px;margin:0 auto;padding:0 16px}.nav{border-bottom:1px solid var(--line);background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:5}.nav .wrap{display:flex;gap:4px 12px;align-items:center;min-height:52px;padding-top:6px;padding-bottom:6px}.nav a.tab{padding:6px 10px;border-radius:8px;color:var(--mut)}.nav a.tab.on{background:#1b2540;color:var(--text)}.sp{flex:1 1}.btn{background:#1b2540;border:1px solid var(--line);color:var(--text);padding:6px 12px;border-radius:8px;cursor:pointer;font:inherit}.btn.pri,.btn:hover{border-color:var(--acc)}.btn.pri{background:var(--acc)}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700}.BUY{background:#14532d;color:#86efac}.SELL{background:#7f1d1d;color:#fca5a5}.HOLD,.NO_TRADE,.WAIT{background:#3b3f4a;color:#cbd5e1}.mut{color:var(--mut)}.row{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.fresh{font-size:12px;padding:3px 8px;border-radius:999px;border:1px solid var(--line)}.fresh.live{color:var(--buy)}.fresh.delayed{color:var(--warn)}.fresh.stale{color:var(--sell)}input,select{background:#0e1422;border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:8px;font:inherit}.login{max-width:380px;margin:12vh auto}.login input{width:100%;margin:6px 0 12px}.err{color:#fca5a5;min-height:1.4em}ul.reasons{margin:8px 0 0;padding-left:18px;color:var(--mut)}.note{font-size:12px;color:var(--mut);margin-top:16px}h1{font-size:20px;margin:18px 0 4px}table.dv{width:100%;border-collapse:collapse;font-size:13px}table.dv td,table.dv th{padding:4px 8px;border-bottom:1px solid rgba(128,128,128,.2);white-space:nowrap}table.dv th{color:var(--mut,#8d98aa);font-weight:600}.kv .row{padding:2px 0}.nav .wrap{flex-wrap:wrap}