:root{--bg:#0c0e14;--panel:#13161f;--panel-2:#1a1e2a;--line:#242a38;--text:#d7dbe6;--dim:#7b8498;--accent:#4c8dff;--up:#26a69a;--down:#ef5350;--hot:#ffb547;--pin:#ffb547;--binance:#f0b90b;--bybit:#ff7a45;--gate:#3b7bff;--mexc:#13c2a3;--kucoin:#8bd64a;--bitget:#b58cff;--okx:#e4e7ee;--htx:#ff6b9a;--lbank:#d9b38c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font:12px/1.35 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,sans-serif;overflow:hidden}.boot{height:100%;color:var(--dim);place-items:center;display:grid}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:14px;padding:6px 10px;display:flex}.topbar .group{align-items:center;gap:5px;display:flex}.topbar .group.right{margin-left:auto}.topbar label{color:var(--dim);white-space:nowrap;font-size:11px}.brand .logo{letter-spacing:.3px;font-weight:700}.brand .link{background:var(--panel-2);white-space:nowrap;border-radius:3px;padding:1px 5px;font-size:10px}.brand .link.live{color:var(--up)}.brand .link.connecting{color:var(--dim)}.brand .link.stale,.brand .link.reconnecting{color:var(--hot)}.brand .link.offline{color:var(--down)}.seg{border:1px solid var(--line);border-radius:4px;display:flex;overflow:hidden}.seg button{color:var(--dim);border:0;border-right:1px solid var(--line);font:inherit;cursor:pointer;background:0 0;padding:3px 7px;font-size:11px}.seg button:last-child{border-right:0}.seg button:hover{background:var(--panel-2);color:var(--text)}.seg button.on{background:var(--accent);color:#fff}.topbar select,.topbar input.num{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:4px;padding:2px 4px;font-size:11px}.topbar input.num{text-align:right;width:50px}.topbar input.num.wide{width:78px}.topbar .unit,.topbar .x{color:var(--dim);font-size:11px}.venues{gap:4px}.venue-toggle{background:var(--panel-2);color:var(--dim);border:1px solid var(--line);font:inherit;cursor:pointer;opacity:.5;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;display:flex}.venue-toggle.on{opacity:1;color:var(--text)}.venue-toggle .dot{background:var(--up);border-radius:50%;flex:none;width:6px;height:6px}.venue-toggle.reconnecting .dot,.venue-toggle.warming .dot{background:var(--hot)}.venue-toggle.down .dot{background:var(--down)}.badge-sm{background:var(--line);color:var(--dim);border-radius:2px;padding:0 3px;font-size:9px}.counts{color:var(--dim);font-variant-numeric:tabular-nums;font-size:11px}.meta{border:1px solid var(--line);border-radius:3px;padding:1px 6px;font-size:10px}.meta.found{color:var(--up);border-color:color-mix(in srgb, var(--up) 40%, transparent)}.meta.searching{color:var(--dim)}.meta.missing{color:var(--down);border-color:color-mix(in srgb, var(--down) 40%, transparent)}.link-banner{color:#10131a;background:var(--hot);z-index:20;flex:none;align-items:center;gap:10px;padding:7px 12px;font-size:12px;font-weight:600;display:flex;box-shadow:0 2px 12px #00000073}.link-banner.offline{background:var(--down);color:#fff}.link-banner.connecting{background:var(--panel-2);color:var(--dim);font-weight:500}.link-banner .pulse{background:currentColor;border-radius:50%;flex:none;width:9px;height:9px;animation:1.1s ease-in-out infinite link-pulse}@keyframes link-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.65)}}@media (prefers-reduced-motion:reduce){.link-banner .pulse{animation:none}}.link-banner .link-text{flex:auto}.link-banner .retry{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;flex:none;padding:2px 9px;font-size:11px}.link-banner .retry:hover{background:#0000001f}.app.stale .grid{filter:grayscale(.55)brightness(.62);transition:filter .18s ease-out}.grid{background:var(--line);flex:auto;gap:1px;min-height:0;display:grid}.cell{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.cell.empty{background:#0a0c11}.cell.pinned{outline:1px solid var(--pin);outline-offset:-1px}.cell-head{background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap;flex:none;align-items:center;gap:6px;min-height:20px;padding:2px 4px;font-size:11px;display:flex;overflow:hidden}.cell-head.compact{gap:4px;min-height:17px;padding:1px 3px;font-size:10px}.venue{color:var(--dim);flex:none;align-items:center;gap:3px;display:flex}.venue .dot{border-radius:2px;flex:none;width:7px;height:7px}.dot.binance{background:var(--binance)}.dot.bybit{background:var(--bybit)}.dot.gate{background:var(--gate)}.dot.mexc{background:var(--mexc)}.dot.kucoin{background:var(--kucoin)}.dot.bitget{background:var(--bitget)}.dot.okx{background:var(--okx)}.dot.htx{background:var(--htx)}.dot.lbank{background:var(--lbank)}.venue-name{font-size:10px}.cell-head.compact .venue-name{letter-spacing:.3px;color:#9aa3b8;font-size:9px;font-weight:700}.badge{border-radius:2px;padding:0 3px;font-size:9px;font-weight:700}.badge.s{color:#8ebbff;background:#2b3c55}.badge.f{color:#d8a6ff;background:#4a3356}.badge.a{color:#f0c94a;background:#4a4220}.ticker{font:inherit;color:var(--text);cursor:pointer;text-overflow:ellipsis;background:0 0;border:0;min-width:0;padding:0;font-weight:700;overflow:hidden}.ticker:hover{color:var(--accent);text-decoration:underline}.gv{font-variant-numeric:tabular-nums;flex:none;align-items:baseline;gap:3px;margin-left:auto;display:flex}.gv-label{color:var(--dim);font-size:10px}.gv b{color:var(--accent)}.gv b.hot{color:var(--hot)}.gv .approx{color:var(--dim);cursor:help;font-style:normal}.price{color:var(--dim);font-variant-numeric:tabular-nums;flex:none}.funding{font-variant-numeric:tabular-nums;flex:none;font-size:10px}.funding.up{color:var(--up)}.funding.down{color:var(--down)}.pin{color:var(--dim);cursor:pointer;background:0 0;border:0;flex:none;align-items:center;padding:0 1px;display:flex}.pin:hover{color:var(--text)}.pin.on{color:var(--pin)}.chart{flex:auto;min-height:0;position:relative}.chart-host{position:absolute;inset:0}.ruler-box{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);pointer-events:none;z-index:3;position:absolute}.hover-vol{background:color-mix(in srgb, var(--panel-2) 88%, transparent);border:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;z-index:3;border-radius:3px;padding:0 4px;font-size:10px;line-height:15px;position:absolute}.cell .flash{border:2px solid var(--accent);box-shadow:inset 0 0 14px color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;z-index:6;animation:4s ease-out forwards cell-flash;position:absolute;inset:0}@keyframes cell-flash{0%,55%{opacity:1}to{opacity:0}}.ruler-label{background:var(--panel-2);border:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;z-index:3;border-radius:3px;padding:1px 5px;font-size:10px;position:absolute}.ruler-label.up{color:var(--up)}.ruler-label.down{color:var(--down)}.backlog{position:relative}.backlog-toggle{font:inherit;border:1px solid color-mix(in srgb, var(--hot) 50%, transparent);background:color-mix(in srgb, var(--hot) 12%, transparent);color:var(--hot);cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 8px;font-size:11px}.backlog-toggle:hover,.backlog-toggle.on{background:color-mix(in srgb, var(--hot) 22%, transparent)}.backlog-list{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:6px;min-width:300px;max-height:60vh;padding:4px;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto;box-shadow:0 8px 24px #0000008c}.backlog-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:4px;grid-template-columns:7px 20px auto 1fr auto auto 44px;align-items:center;gap:6px;padding:3px 6px;font-size:11px;display:grid}.backlog-item:hover{background:var(--panel-2)}.backlog-item .dot{border-radius:2px;width:7px;height:7px}.backlog-item .bl-venue{color:#9aa3b8;font-size:9px;font-weight:700}.backlog-item .bl-symbol{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.backlog-item .bl-gv{color:var(--accent)}.backlog-item .bl-vol,.backlog-item .bl-ago{color:var(--dim);text-align:right}.backlog-item.ended{opacity:.55}.backlog-item.ended .bl-gv{color:var(--dim)}.backlog-sep{border-top:1px solid var(--line);color:var(--dim);margin:4px 6px 2px;padding-top:4px;font-size:10px}.login{place-items:center;height:100%;display:grid}.login form{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:10px;width:260px;padding:24px;display:flex}.login h1{text-align:center;margin:0 0 6px;font-size:18px}.login input,.login button{font:inherit;border:1px solid var(--line);border-radius:5px;padding:7px 9px}.login input{background:var(--panel-2);color:var(--text)}.login button{background:var(--accent);color:#fff;cursor:pointer;border-color:#0000}.login button:disabled{opacity:.5;cursor:default}.login .err{color:var(--down);text-align:center;margin:0}.toast{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--hot);cursor:pointer;z-index:10;border-radius:5px;max-width:70vw;padding:8px 14px;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000080}
