:root{--bg: #070e12;--panel: #0e1a20;--panel-2: #122229;--border: #1b2e36;--text: #e6f0f2;--muted: #8ca3ab;--accent: #6fd3d8;--accent-hover: #8fe6ea;--accent-muted: rgba(111, 211, 216, .16);--up: #26a69a;--down: #ef5350;--topbar-h: 52px;--header-h: 34px;--topnav-h: 50px;--display: "Instrument Serif", Georgia, serif;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:20px;height:var(--topbar-h);padding:0 16px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto}.brand{margin:0;font-size:14px;font-weight:600;letter-spacing:.02em}.count-selector{display:flex;align-items:center;gap:4px}.count-label{color:var(--muted);margin-right:4px;text-transform:uppercase;font-size:11px;letter-spacing:.08em}.count-btn{min-width:30px;height:26px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font:inherit}.count-btn:hover{color:var(--text);border-color:#2d3748}.count-btn.active{background:#1f6feb;border-color:#1f6feb;color:#fff}.status{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted)}.status-error{color:var(--down);max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status-open{background:var(--up)}.status-connecting{background:#d29922}.status-closed{background:var(--down)}.grid{flex:1 1 auto;display:grid;gap:1px;padding:1px;background:var(--border);min-height:0}.grid[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr}.grid[data-count="2"]{grid-template-columns:repeat(2,1fr);grid-template-rows:1fr}.grid[data-count="4"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.grid[data-count="6"]{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.grid[data-count="8"]{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr)}@media(max-width:1200px){.grid[data-count="6"],.grid[data-count="8"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(auto-fit,minmax(0,1fr))}}@media(max-width:768px){.grid[data-count="2"],.grid[data-count="4"],.grid[data-count="6"],.grid[data-count="8"]{grid-template-columns:1fr;grid-template-rows:repeat(auto-fit,minmax(220px,1fr));overflow-y:auto}}.pane{display:flex;flex-direction:column;background:var(--bg);min-width:0;min-height:0;overflow:hidden;container-type:inline-size}.pane-header{display:flex;align-items:center;gap:8px;height:var(--header-h);padding:0 6px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto;min-width:0}.pane-controls{display:flex;gap:4px;margin-left:auto;flex:0 0 auto}.pane-labels{display:flex;align-items:center;gap:3px;font-size:11px;color:#8b949e;white-space:nowrap}@container (max-width: 430px){.ticker-symbol{display:none}.pane-controls select,.symbol-input{max-width:74px}.symbol-input{width:74px}}@container (max-width: 320px){.pane-controls{gap:2px}.pane-controls select,.symbol-input{max-width:60px;font-size:11px}.symbol-input{width:60px}}.pane-controls select,.symbol-input{height:22px;max-width:108px;border:1px solid var(--border);border-radius:3px;background:#0b0f16;color:var(--text);font:inherit;padding:0 4px;min-width:0}.symbol-input{width:92px;text-transform:uppercase}.pane-controls select:focus,.symbol-input:focus{outline:1px solid #1f6feb}.ticker{display:flex;align-items:baseline;gap:8px;padding:2px 6px;border-radius:3px;flex:1 1 auto;min-width:0;overflow:hidden;transition:background-color .14s ease-out}.ticker-symbol{color:var(--muted);font-size:11px;letter-spacing:.06em;white-space:nowrap}.ticker-price{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.flash-up{animation:flash-up .42s ease-out}.flash-down{animation:flash-down .42s ease-out}@keyframes flash-up{0%{background-color:#26a69a8c;color:#fff}to{background-color:transparent;color:var(--text)}}@keyframes flash-down{0%{background-color:#ef53508c;color:#fff}to{background-color:transparent;color:var(--text)}}@media(prefers-reduced-motion:reduce){.flash-up,.flash-down{animation-duration:1ms}}.pane-body{position:relative;flex:1 1 auto;min-height:0}.chart{position:absolute;top:0;right:0;bottom:0;left:0}.pane-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);background:#0e111799;pointer-events:none;padding:8px;text-align:center}.pane-overlay-error{color:var(--down)}.boot,.boot-error{padding:24px;color:var(--muted)}.boot-error{color:var(--down)}.boot-full{display:grid;place-items:center;height:100vh}.auth{min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(111,211,216,.07),transparent 60%),var(--bg)}.auth-card{width:min(420px,100%)}.auth-brand{display:inline-flex;align-items:center;gap:9px;margin-bottom:30px;color:var(--text);text-decoration:none;font-family:var(--display);font-size:23px}.auth-brand svg{width:19px;height:19px;color:var(--accent)}.auth-title{font-family:var(--display);font-size:34px;font-weight:400;margin:0 0 8px;line-height:1.15}.auth-sub{color:var(--muted);font-size:14px;margin:0 0 26px}.auth-form{display:flex;flex-direction:column;gap:7px}.auth-form label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:12px}.auth-form input{height:42px;padding:0 13px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text);font:inherit;font-size:15px;transition:border-color .3s var(--ease)}.auth-form input:focus{outline:none;border-color:var(--accent)}.auth-hint{color:var(--muted);font-size:12px;margin:2px 0 0}.auth-error{margin:14px 0 0;padding:10px 12px;border-radius:3px;font-size:13px;background:#ef53501a;border:1px solid rgba(239,83,80,.34);color:#ffb4b2}.auth-btn{margin-top:22px;height:44px;border:0;border-radius:3px;cursor:pointer;background:var(--accent);color:#04262a;font:500 14px/1 inherit;letter-spacing:.03em;transition:background .3s var(--ease)}.auth-btn:hover:not(:disabled){background:var(--accent-hover)}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-alt{margin-top:20px;font-size:13px;color:var(--muted)}.auth-alt a{color:var(--accent)}.auth-alt-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.shell{display:grid;grid-template-rows:var(--topnav-h) minmax(0,1fr);height:100%}.topnav{display:flex;align-items:center;gap:22px;min-width:0;border-bottom:1px solid var(--border);background:var(--panel);padding:0 16px}.topnav-brand{display:flex;align-items:center;gap:9px;color:var(--accent);text-decoration:none;font-family:var(--display);font-size:19px;flex:0 0 auto}.topnav-brand svg{width:18px;height:18px}.topnav-links{display:flex;align-items:center;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.topnav-links::-webkit-scrollbar{display:none}.topnav-link{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px;color:var(--muted);text-decoration:none;font-size:13.5px;white-space:nowrap;transition:background .25s var(--ease),color .25s var(--ease)}.topnav-link svg{width:16px;height:16px;flex:0 0 auto}.topnav-link:hover{color:var(--text);background:var(--panel-2)}.topnav-link.active{color:var(--accent);background:var(--accent-muted)}.topnav-foot{margin-left:auto;display:flex;align-items:center;gap:11px;flex:0 0 auto}.topnav-email{font-size:12px;color:var(--muted);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topnav-burger{display:none;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--muted);font-size:15px;line-height:1;padding:6px 9px;cursor:pointer}.rail-out{background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer;transition:color .25s var(--ease),border-color .25s var(--ease)}.rail-out:hover{color:var(--text);border-color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:var(--muted);flex:0 0 auto}.dot-open{background:var(--up)}.dot-connecting{background:#d29922}.dot-closed{background:var(--down)}.pane-main{min-width:0;min-height:0;overflow:auto;display:flex;flex-direction:column}.tab{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.tab:not(.tab-charts){padding:24px clamp(18px,3vw,40px) 48px;gap:22px}.tab-bar{display:flex;align-items:center;gap:20px;flex:0 0 auto;padding:14px clamp(18px,3vw,40px);border-bottom:1px solid var(--border)}.tab:not(.tab-charts) .tab-bar{padding:0 0 16px}.tab-title{font-family:var(--display);font-size:26px;font-weight:400;margin:0}.tab-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.as-of{font-size:11px;color:var(--muted)}.btn-ghost,.btn-solid,.btn-danger{border-radius:3px;padding:8px 14px;font:500 13px/1 inherit;cursor:pointer;transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.btn-solid{background:var(--accent);border:1px solid var(--accent);color:#04262a}.btn-solid:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:transparent;border:1px solid rgba(239,83,80,.42);color:#ff9c99}.btn-danger:hover:not(:disabled){background:#ef53501f}.btn-ghost:disabled,.btn-solid:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}.empty{border:1px solid var(--border);border-radius:4px;padding:30px;background:var(--panel);max-width:62ch}.empty h2{font-family:var(--display);font-size:22px;font-weight:400;margin:0 0 10px}.empty p{color:var(--muted);font-size:14px;margin:0;line-height:1.65}.empty a{color:var(--accent)}.total{display:flex;align-items:baseline;gap:14px}.total-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.total-value{font-family:var(--display);font-size:clamp(30px,4vw,44px)}.src-grid{display:flex;flex-direction:column;gap:20px}.src{border:1px solid var(--border);border-radius:4px;background:var(--panel);overflow:hidden;flex-shrink:0}.src-head{display:flex;align-items:baseline;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border)}.src-head h2{font-family:var(--display);font-size:19px;font-weight:400;margin:0}.src-total{margin-left:auto;color:var(--accent);font-size:14px}.src-error{margin:0;padding:14px 18px;color:#ff9c99;font-size:13px}.src-empty{margin:0;padding:18px;color:var(--muted);font-size:13px}.wallet-tag{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.09em}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;padding:10px 18px;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border)}.tbl th.right{text-align:right}.tbl td{padding:11px 18px;border-bottom:1px solid var(--border);vertical-align:baseline}.tbl tr:last-child td{border-bottom:0}.tbl .up{color:var(--up)}.tbl .down{color:var(--down)}.lev{margin-left:7px;font-size:10px;color:var(--muted)}.panel{border:1px solid var(--border);border-radius:4px;background:var(--panel);padding:22px}.panel-h{font-family:var(--display);font-size:19px;font-weight:400;margin:0 0 6px}.panel-note{color:var(--muted);font-size:13px;margin:0 0 18px;max-width:70ch;line-height:1.6}.kv{display:flex;flex-wrap:wrap;gap:28px;margin:14px 0 0}.kv dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.kv dd{margin:0;font-size:14px}.conns{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}.conn{border:1px solid var(--border);border-radius:4px;padding:18px;background:var(--bg)}.conn.connected{border-color:#6fd3d857}.conn-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.conn-head h3{font-family:var(--display);font-size:18px;font-weight:400;margin:0}.conn-state{margin-left:auto;font-size:11px;color:var(--accent)}.conn-state.off{color:var(--muted)}.conn-guide{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 10px}.conn-warn{font-size:12px;line-height:1.55;margin:0 0 14px;padding:9px 11px;border-radius:3px;background:#ef535014;border:1px solid rgba(239,83,80,.26);color:#ffb4b2}.conn-actions{display:flex;gap:9px;flex-wrap:wrap}.conn-form{display:flex;flex-direction:column;gap:6px;margin-top:14px}.conn-form label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:8px}.conn-form input{height:38px;padding:0 11px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text);font:inherit;font-size:14px}.conn-form input:focus{outline:none;border-color:var(--accent)}.conn-error{margin:12px 0 0;font-size:12px;color:#ff9c99;line-height:1.55}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.right{text-align:right}.right-anchor{text-anchor:end}.boot-warn{margin:0 0 4px;padding:10px 13px;border-radius:3px;font-size:13px;line-height:1.5;background:#d2992217;border:1px solid rgba(210,153,34,.32);color:#e8c877}.boot-note{margin:0 0 4px;padding:10px 13px;border-radius:3px;font-size:13px;line-height:1.5;background:var(--accent-muted);border:1px solid rgba(111,211,216,.28);color:var(--text)}.boot-note a{color:var(--accent)}.banner{display:flex;align-items:baseline;gap:12px}.banner-x{margin-left:auto;background:none;border:0;color:inherit;cursor:pointer;font:inherit;font-size:16px;line-height:1;padding:0 4px;border-radius:3px;opacity:.75}.banner-x:hover{opacity:1}.card{border:1px solid var(--border);border-radius:4px;background:var(--panel);padding:16px 18px;min-width:0}.card-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px}.card-h{font-family:var(--display);font-size:17px;font-weight:400;margin:0}.card-head .as-of{margin-left:auto;flex:0 0 auto}.card-value{font-family:var(--display);font-size:27px;margin:4px 0 0;display:flex;align-items:baseline;gap:11px}.card-sub,.card-delta{font-family:ui-sans-serif,system-ui,sans-serif;font-size:12.5px;color:var(--muted)}.card-delta.up{color:var(--up)}.card-delta.down{color:var(--down)}.card-empty{color:var(--muted);font-size:13px;margin:0;padding:14px 0}.card-note{color:var(--muted);font-size:11.5px;line-height:1.5;margin:10px 0 0}.card-table{padding:0}.card-table .card-head{padding:15px 18px 0;margin-bottom:8px}.card-table .card-empty{padding:14px 18px 18px}.card-table .card-head .card-note{margin-top:4px}.series-chart,.candle-chart{width:100%}.chart-resize{height:320px;min-height:180px;resize:vertical;overflow:hidden}.bt-bars{font-size:12px;color:var(--muted);align-self:center;white-space:nowrap}.bt-bars-warn{color:#ffa726}.mode-summary{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;margin:12px 0}.mode-card{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:132px;padding:10px 14px 10px 17px;cursor:pointer;background:var(--panel, #101c22);color:inherit;border:1px solid var(--line, #1b2e36);border-radius:6px;font:inherit;text-align:left}.mode-paper{box-shadow:inset 3px 0 #6fd3d8}.mode-testnet{box-shadow:inset 3px 0 #ffa726}.mode-live{box-shadow:inset 3px 0 #ef5350}.mode-card:hover{border-color:var(--accent)}.live-mode-paper,.live-mode-testnet,.live-mode-live{font-size:10.5px;letter-spacing:.08em;font-weight:600}.live-mode-paper{border-color:#6fd3d8;color:#6fd3d8}.live-mode-testnet{border-color:#ffa726;color:#ffa726}.live-mode-live{border-color:#ef5350;color:#ef5350}.mode-active{border-color:var(--accent);background:#6fd3d814}.mode-name{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.mode-count{font-family:var(--display),serif;font-size:22px;line-height:1.1}.mode-sub{font-size:11.5px;color:var(--muted)}.field-hint{font-size:11.5px;color:var(--muted);margin-top:3px}.field-hint-warn{color:var(--down)}.instance-history{display:flex;flex-direction:column;gap:14px;margin-top:14px}.row-clickable{cursor:pointer}.row-clickable:hover{background:#6fd3d80f}.row-selected{background:#6fd3d81a}.event-list{list-style:none;margin:0;padding:0}.event-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12.5px;border-bottom:1px solid var(--line, #1b2e36)}.event-row:last-child{border-bottom:none}.event-kind{font-family:ui-monospace,monospace}.event-ts{color:var(--muted)}.event-warn .event-kind{color:#ffa726}.event-error .event-kind{color:var(--down, #ef5350)}.chart-controls{margin-left:auto;flex:0 0 auto;display:flex;align-items:center;gap:12px}.chart-controls .as-of{margin-left:0}.toggle-label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px;color:var(--muted);-webkit-user-select:none;user-select:none}.toggle-label:hover{color:var(--text)}.toggle-label input{accent-color:var(--accent);cursor:pointer;margin:0}.kpi-strip{display:grid;gap:10px;flex:0 0 auto;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.kpi{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:4px;background:var(--panel);transition:background-color .14s ease-out}.kpi-head{display:flex;align-items:center;gap:8px}.kpi-symbol{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.kpi-head .star{margin-left:auto}.kpi-price{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.kpi-change{font-size:12.5px;font-variant-numeric:tabular-nums}.dash-focus{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,1fr);gap:16px}.dom-panel{display:flex;flex-direction:column;gap:16px;min-width:0}.dom-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:11px}.dom-row{display:grid;align-items:center;gap:4px 10px;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"key pct cap" "track track track";font-size:12.5px}.dom-key{grid-area:key;display:flex;align-items:center;gap:7px;color:var(--text);min-width:0}.dom-swatch{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.dom-pct{grid-area:pct;font-variant-numeric:tabular-nums}.dom-cap{grid-area:cap;color:var(--muted);font-variant-numeric:tabular-nums;min-width:6ch;text-align:right}.dom-track{grid-area:track;height:5px;border-radius:3px;background:var(--panel-2);overflow:hidden}.dom-fill{display:block;height:100%;border-radius:3px;transition:width .6s var(--ease)}.dash-tables{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.table-wide{display:flex;flex-direction:column;gap:10px;min-width:0}.dash-side{display:flex;flex-direction:column;gap:16px;min-width:0;align-self:stretch}.dash-movers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.table-filter{display:flex;align-items:center;gap:12px}.filter-input{flex:1 1 auto;height:34px;padding:0 12px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text);font:inherit;font-size:13px}.filter-input:focus{outline:none;border-color:var(--accent)}.tbl-scroll{overflow-x:auto}.tbl-scroll-y{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dash-scan-fill{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.dash-scan-fill .tbl-scroll-y{flex:1 1 0;min-height:300px}.tbl-scroll-y thead th{position:sticky;top:0;z-index:1;background:var(--panel);box-shadow:inset 0 -1px 0 var(--border)}.tbl-scroll-y::-webkit-scrollbar{width:8px;height:8px}.tbl-scroll-y::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.tbl-scroll-y::-webkit-scrollbar-thumb:hover{background:var(--muted)}.card-pager{padding:9px 18px 11px;border-top:1px solid var(--border)}.tbl-market td,.tbl-market th{padding:9px 12px;white-space:nowrap}.tbl-scan td,.tbl-scan th{padding-left:8px;padding-right:8px}.tbl-market tbody tr{cursor:pointer;transition:background .18s var(--ease)}.tbl-market tbody tr:hover,.tbl-market tbody tr:focus-visible{background:var(--panel-2);outline:none}.tbl-market tbody tr:focus-visible{box-shadow:inset 2px 0 0 var(--accent)}.col-star,.col-rank{width:1%;padding-right:0!important}.col-rank{color:var(--muted);font-variant-numeric:tabular-nums}.mkt-base{font-weight:600}.mkt-quote{color:var(--muted);font-size:11px}.th-sort{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit;text-transform:inherit}.th-sort:hover{color:var(--text)}.th-sort.active{color:var(--accent)}.star{display:grid;place-items:center;width:24px;height:24px;padding:0;background:none;border:0;cursor:pointer;color:var(--muted);border-radius:3px;transition:color .2s var(--ease)}.star svg{width:15px;height:15px}.star:hover{color:var(--accent)}.star.on{color:#e8c877}.pager{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:2px 0}.pg{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--border);border-radius:3px;background:transparent;color:var(--muted);font:inherit;font-size:12.5px;cursor:pointer;font-variant-numeric:tabular-nums;transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}.pg:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.pg:disabled{opacity:.35;cursor:not-allowed}.pg-num.active{background:var(--accent-muted);border-color:#6fd3d873;color:var(--accent)}.pg-info{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.charts-body{display:flex;flex:1 1 auto;min-height:0;min-width:0}.charts-body .grid{flex:1 1 auto;min-width:0}.pane.active{box-shadow:inset 0 0 0 1px var(--accent)}.pane.active .pane-header{background:var(--panel-2)}.wl{flex:0 0 var(--wl-w, 320px);display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--border);background:var(--panel);overflow:hidden;position:relative}.wl-resize{position:absolute;left:0;top:0;bottom:0;width:7px;z-index:2;cursor:col-resize;touch-action:none;background:transparent;transition:background .18s var(--ease)}.wl-resize:hover,.wl-resize:focus-visible{background:var(--accent-muted);outline:none}.wl-resize:focus-visible{box-shadow:inset 2px 0 0 var(--accent)}.wl-head{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border)}.wl-title{font-family:var(--display);font-size:15px;font-weight:400;margin:0}.wl-count{font-size:11px;color:var(--muted)}.wl-collapse,.wl-x,.wl-dismiss{background:none;border:0;color:var(--muted);cursor:pointer;padding:2px 5px;font:inherit;line-height:1;border-radius:3px}.wl-collapse{margin-left:auto;font-size:16px}.wl-collapse:hover,.wl-x:hover,.wl-dismiss:hover{color:var(--text);background:var(--panel-2)}.wl-empty,.wl-foot{color:var(--muted);font-size:12px;padding:14px 12px;margin:0;line-height:1.55}.wl-foot{border-top:1px solid var(--border);font-size:11px;padding:8px 12px}.wl-error{display:flex;align-items:baseline;gap:8px;margin:8px;padding:8px 10px;border-radius:3px;font-size:11.5px;line-height:1.45;background:#ef53501a;border:1px solid rgba(239,83,80,.3);color:#ffb4b2}.wl-dismiss{margin-left:auto;color:#ffb4b2}.wl-cols,.wl-row{display:grid;align-items:center;gap:5px;grid-template-columns:minmax(0,3.6fr) minmax(0,2.35fr) minmax(0,2.35fr) minmax(0,1.75fr) 16px}.wl-cols{padding:7px 10px;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border)}.wl-cols>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-cols-scan,.wl-row-scan{grid-template-columns:22px minmax(0,3.2fr) minmax(0,1.3fr) minmax(0,2.5fr) minmax(0,1.6fr) minmax(0,1.5fr)}.wl-row-scan>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.wl-row-scan .star{width:20px;height:20px}.wl-row-scan .star svg{width:13px;height:13px}.wl-tf{color:var(--muted)}.wl-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1 auto;min-height:0}.wl-list-paged{overflow:hidden;flex:1 1 0}.wl-pager{padding:6px 10px;border-top:1px solid var(--border)}.wl-pager .pager{gap:3px}.wl-pager .pg{min-width:22px;height:22px;padding:0 5px;font-size:11px}.wl-pager .pg-info{font-size:10px}.wl-cols .th-sort{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-row{padding:7px 10px;font-size:11.5px;cursor:pointer;border-bottom:1px solid transparent;transition:background .18s var(--ease)}.wl-row:hover,.wl-row:focus-visible{background:var(--panel-2);outline:none}.wl-row:focus-visible{box-shadow:inset 2px 0 0 var(--accent)}.wl-row>.num{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-sym{display:flex;align-items:baseline;gap:5px;min-width:0;font-weight:600}.wl-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.wl-src{flex:0 0 auto}.wl-src{font-size:9px;color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:0 3px}.wl-x{opacity:0;font-size:15px}.wl-row:hover .wl-x,.wl-row:focus-within .wl-x,.wl-x:focus-visible{opacity:1}.wl-reopen{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--panel);border:1px solid var(--border);border-right:0;border-radius:4px 0 0 4px;color:var(--muted);cursor:pointer;padding:10px 6px;font:inherit}.wl-reopen:hover{color:var(--accent)}.wl-reopen-count{font-size:10px}.charts-body{position:relative}.bt-section{display:flex;flex-direction:column;gap:14px}.bt-h{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:0;padding-bottom:8px;border-bottom:1px solid var(--border)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}.stat{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border:1px solid var(--border);border-radius:4px;background:var(--panel)}.stat-label{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.stat-value{font-family:var(--display);font-size:25px;font-variant-numeric:tabular-nums}.stat-value.accent{color:var(--accent)}.stat-sub{font-size:11.5px;color:var(--muted)}.bt-split{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:16px;align-items:start}.bt-split-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}.tab-backtest .tab-actions select{height:32px;padding:0 8px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text);font:inherit;font-size:13px}.svg-chart{width:100%;height:auto;display:block}.svg-chart .ax{stroke:var(--border);stroke-width:1}.svg-chart .grid{stroke:var(--border);stroke-width:1;stroke-dasharray:2 4}.svg-chart .ax-zero{stroke:var(--muted);stroke-width:1;opacity:.5}.svg-chart .ax-t{fill:var(--muted);font-size:10px}.svg-chart .bar-up{fill:var(--up)}.svg-chart .bar-down{fill:var(--down)}.svg-chart .mark{stroke-width:1.5;stroke-dasharray:5 4}.svg-chart .mark.mark-up{stroke:var(--accent)}.svg-chart .mark.mark-down{stroke:var(--down)}.svg-chart .mark-t{font-size:10px}.svg-chart text.mark-up{fill:var(--accent)}.svg-chart text.mark-down{fill:var(--down)}.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.donut{width:190px;height:190px;flex:0 0 auto}.donut-track{stroke:var(--panel-2)}.donut-slice{transition:stroke-dasharray .5s var(--ease)}.donut-slice.sl-up{stroke:var(--accent)}.donut-slice.sl-down{stroke:var(--down)}.donut-slice.sl-flat{stroke:#41616d}.donut-num{fill:var(--text);font-family:var(--display);font-size:30px}.donut-cap{fill:var(--muted);font-size:9px;letter-spacing:.16em}.donut-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;font-size:12.5px}.donut-legend li{display:flex;align-items:center;gap:9px}.donut-swatch{width:9px;height:9px;border-radius:2px;flex:0 0 auto}.donut-swatch.sl-up{background:var(--accent)}.donut-swatch.sl-down{background:var(--down)}.donut-swatch.sl-flat{background:#41616d}.donut-key{color:var(--muted);min-width:8ch}.donut-val{font-variant-numeric:tabular-nums}.donut-pct{color:var(--muted)}@media(prefers-reduced-motion:reduce){.dom-fill,.donut-slice{transition:none}}.scanner-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.date-range{display:flex;align-items:center;gap:10px}.scanner-controls select{width:170px}.fee-input{width:74px;font-variant-numeric:tabular-nums}.scan-gates{display:flex;align-items:center;gap:12px;margin:8px 0 4px;font-size:12px}.gate-note{color:var(--muted);font-size:11.5px}.gate-hidden{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.applied-fee{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.scanner-progress{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}.scanner-progress .num{min-width:3ch;text-align:right}.scanner-track{width:110px;height:6px;border-radius:3px;background:var(--panel-2);overflow:hidden;flex:0 0 auto}.scanner-track-fill{display:block;height:100%;background:var(--accent);transition:width .3s var(--ease)}.scanner-current{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:0 0 auto;width:175px;overflow:hidden;text-overflow:ellipsis}.scan-clear-confirm{display:inline-flex;align-items:center;gap:8px;color:#ff9c99;font-size:12.5px}.scan-tables{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.scan-symbol{font-weight:600}.scan-tf{color:var(--muted);font-size:11px;margin-left:6px}.scan-age{color:var(--muted);font-size:11.5px}.tbl .scan-oos-dim{color:var(--muted)}@media(max-width:1180px){.dash-focus,.bt-split{grid-template-columns:minmax(0,1fr)}.dom-panel{flex-direction:row}.dom-panel>.card{flex:1 1 0}.dash-tables{grid-template-columns:minmax(0,1fr)}.dash-scan-fill .tbl-scroll-y{flex:0 1 auto;max-height:340px;min-height:0}}@media(max-width:860px){.topnav{gap:12px}.topnav-links{display:none;position:absolute;left:0;right:0;top:var(--topnav-h);z-index:20;flex-direction:column;align-items:stretch;gap:0;overflow:visible;background:var(--panel);border-bottom:1px solid var(--border);padding:6px}.topnav-links.open{display:flex}.topnav-link{padding:11px 12px;font-size:14px}.topnav-burger{display:block}.topnav-email{display:none}.dom-panel{flex-direction:column}.dash-movers{grid-template-columns:minmax(0,1fr)}.charts-body{flex-direction:column;overflow-y:auto}.wl{flex:0 0 auto;border-left:0;border-top:1px solid var(--border);max-height:46vh}.wl-resize{display:none}.wl-reopen{position:static;transform:none;flex-direction:row;border:0;border-top:1px solid var(--border);border-radius:0;width:100%;justify-content:center}}.killswitch-on{font-size:11px;color:#ff9c99}.live-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.live-badge{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:1px 5px}.live-status{display:inline-flex;align-items:center;gap:7px}.live-status .dot{width:7px;height:7px;border-radius:50%}.live-status.running,.live-status.armed{color:var(--up)}.live-status.running .dot,.live-status.armed .dot{background:var(--up)}.live-status.locked,.live-status.error{color:var(--down)}.live-status.locked .dot,.live-status.error .dot{background:var(--down)}.live-status.idle,.live-status.disarmed{color:var(--muted)}.live-status.idle .dot,.live-status.disarmed .dot{background:var(--muted)}.live-status.open{color:var(--up)}.live-status.open .dot{background:var(--up)}.live-status.closed{color:var(--muted)}.live-status.closed .dot{background:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:#040e11a8}.modal{width:min(480px,100%);max-height:calc(100vh - 40px);overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 24px 70px #00000080;padding:20px;display:flex;flex-direction:column;gap:16px}.modal-head{display:flex;align-items:baseline;gap:12px}.modal-title{font-family:var(--display);font-size:19px;font-weight:400;margin:0}.modal-x{margin-left:auto;background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;font-size:17px;line-height:1;padding:2px 5px;border-radius:3px}.modal-x:hover{color:var(--text);background:var(--panel-2)}.modal-body{display:flex;flex-direction:column;gap:12px}.modal-actions{display:flex;gap:9px;justify-content:flex-end}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.form-field input,.form-field select{height:38px;padding:0 11px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;width:100%}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--accent)}.form-hint{color:var(--muted);font-size:12px;margin:0}.radio-row{display:flex;gap:16px;align-items:center}.radio-row label{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.check-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text);cursor:pointer}.check-row input,.radio-row input{margin:0;accent-color:var(--accent)}.check-row input{margin-top:2px}.crash-panel{max-width:640px;margin:12vh auto;padding:28px 32px;border:1px solid rgba(239,83,80,.42);border-radius:10px;background:var(--panel)}.crash-title{margin:0 0 12px;font-size:18px;color:#ff9c99}.crash-body{margin:0 0 20px;font-size:13px;line-height:1.6;color:var(--muted)}.crash-actions{display:flex;gap:12px}@media(max-width:860px){.tbl-live thead{display:none}.tbl-live,.tbl-live tbody,.tbl-live tr,.tbl-live td{display:block;width:100%}.tbl-live tr{padding:12px 16px;border-bottom:1px solid var(--border)}.tbl-live tr:last-child{border-bottom:0}.tbl-live td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border:0}.tbl-live td:before{content:attr(data-label);flex:0 0 auto;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tbl-live td.right{justify-content:flex-start;padding-top:10px}.tbl-live td.right:before{display:none}.tbl-live .live-actions{justify-content:flex-start;width:100%}.chart-resize{height:240px;resize:none}.form-grid{grid-template-columns:1fr}}@media(max-width:860px){.tab-bar{flex-wrap:wrap;row-gap:10px}.tab-actions{margin-left:0;width:100%;flex-wrap:wrap}.tab-actions>select,.tab-actions>input{flex:1 1 auto;min-width:0}.date-range{flex-wrap:wrap;row-gap:8px}.scanner-controls select{width:auto;flex:1 1 140px}.bt-input,input[type=date]{min-width:0}}
