:root{--bg: #0b0e11;--bg-top: #0d1116;--bg-panel: #0f1318;--bg-panel-2: #11161c;--bg-inset: #0b0f14;--bg-hover: #171d24;--bg-selected: #1a2028;--border: #1a2027;--border-strong: #232b34;--text: #e7eaf0;--text-dim: #8b95a3;--text-faint: #5b6572;--green: #0ecb81;--red: #f6465d;--amber: #f0b90b;--blue: #4f8cff;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--ui);font-size:12px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}button:focus-visible,input:focus-visible{outline:1px solid rgba(240,185,11,.7);outline-offset:-1px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#232b34;border-radius:4px;border:2px solid var(--bg-panel)}::-webkit-scrollbar-thumb:hover{background:#2f3944}*{scrollbar-width:thin;scrollbar-color:#232b34 transparent}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.1px}.up{color:var(--green)!important}.down{color:var(--red)!important}.flat{color:var(--text-dim)!important}.muted{color:var(--text-dim)}.dim{color:var(--text-faint)}.small{font-size:9px}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.topbar{flex:none;height:40px;display:flex;align-items:center;gap:16px;padding:0 14px;background:var(--bg-top);border-bottom:1px solid var(--border);white-space:nowrap}.brand{display:flex;align-items:center;gap:7px}.brand-mark{width:19px;height:19px;border-radius:3px;background:var(--amber);color:#0b0e11;font-family:var(--mono);font-weight:800;font-size:12px;display:grid;place-items:center}.brand-name{font-size:10px;font-weight:700;letter-spacing:1.2px}.brand-sub{font-size:8.5px;letter-spacing:1.6px;color:var(--text-faint)}.conn{display:flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--border);border-radius:3px;background:#0f141a}.dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint);flex:none}.conn-label{font-size:9.5px;font-weight:700;letter-spacing:1.1px}.conn-live .dot{background:var(--green);box-shadow:0 0 6px #0ecb81cc}.conn-live .conn-label{color:var(--green)}.conn-reconnecting .dot{background:var(--red);box-shadow:0 0 6px #f6465dcc;animation:blink 1s steps(2,start) infinite}.conn-reconnecting .conn-label{color:var(--red)}.conn-demo .dot{background:var(--amber);box-shadow:0 0 6px #f0b90bcc}.conn-demo .conn-label{color:var(--amber)}.conn-connecting .dot{background:var(--text-dim);animation:blink 1.2s steps(2,start) infinite}.conn-connecting .conn-label{color:var(--text-dim)}.conn-reconnects{font-size:8.5px;color:var(--text-faint)}.conn.stale .dot{background:var(--amber);box-shadow:0 0 6px #f0b90bcc;animation:blink 1s steps(2,start) infinite}.conn-stale-tag{font-size:8px;font-weight:700;letter-spacing:.8px;color:var(--amber);border:1px solid rgba(240,185,11,.4);border-radius:2px;padding:0 3px}.topbar-stat{display:flex;align-items:center;gap:5px}.k{font-size:8.5px;letter-spacing:.9px;color:var(--text-faint)}.v{font-size:11px;color:var(--text)}.v.good{color:var(--green)}.mode-badge{font-size:9px;font-weight:700;letter-spacing:1.1px;padding:2px 6px;border-radius:2px;border:1px solid var(--border-strong);color:var(--text-dim)}.mode-paper{color:var(--amber);border-color:#f0b90b66;background:#f0b90b12}.mode-testnet{color:var(--blue);border-color:#4f8cff66;background:#4f8cff12}.mode-live{color:var(--red);border-color:#f6465d73;background:#f6465d14}.mode-unknown{color:var(--text-faint);border-style:dashed}.topbar-spacer{flex:1}.clock{display:flex;align-items:baseline;gap:5px}.clock .v{font-size:11.5px;letter-spacing:0}.topbar-date{font-size:9.5px;color:var(--text-faint)}.demo-banner{flex:none;height:28px;display:flex;align-items:center;gap:12px;padding:0 14px;background:#f0b90b14;border-bottom:1px solid rgba(240,185,11,.3);font-size:10.5px;color:#d8bd63;white-space:nowrap;overflow:hidden}.demo-badge{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:1.1px;background:var(--amber);color:#0b0e11;padding:2px 6px;border-radius:2px;flex:none}.demo-text{overflow:hidden;text-overflow:ellipsis}.demo-text strong{color:var(--amber);font-weight:600}.demo-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none}.demo-hint{font-size:8.5px;color:#f0b90b99}.btn-ghost{font:inherit;font-size:10px;color:var(--amber);background:transparent;border:1px solid rgba(240,185,11,.4);border-radius:2px;padding:2px 8px;cursor:pointer}.btn-ghost:hover{background:#f0b90b1f}.main{flex:1;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr) 340px}.panel{flex:none;border-bottom:1px solid var(--border)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px 6px}.panel-title{font-size:9px;font-weight:600;letter-spacing:1.05px;color:var(--text-dim);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-count{font-size:8.5px;color:var(--text-faint);flex:none}.panel-error{padding:0 12px 6px;font-size:9px;color:var(--red)}.watchlist{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--bg-panel)}.watch-head{padding-bottom:4px}.watch-search{position:relative;margin:0 10px 6px;height:28px;display:flex;align-items:center;background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:3px}.watch-search:focus-within{border-color:#f0b90b80}.search-icon{position:absolute;left:8px;top:50%;transform:translateY(-52%);color:var(--text-faint);font-size:13px;pointer-events:none}.watch-search input{flex:1;height:100%;padding:0 24px 0 26px;background:transparent;border:0;outline:none;color:var(--text);font-family:var(--mono);font-size:11px}.watch-search input::placeholder{color:var(--text-faint)}.search-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--text-faint);font-size:15px;line-height:1;cursor:pointer;padding:2px}.search-clear:hover{color:var(--text)}.watch-sort{display:flex;align-items:center;gap:1px;padding:0 8px 6px}.sort-label{font-size:8px;letter-spacing:1.2px;color:var(--text-faint);margin-right:4px}.sort-btn{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-dim);background:none;border:0;border-radius:2px;padding:3px 6px;cursor:pointer}.sort-btn:hover{background:var(--bg-hover);color:var(--text)}.sort-btn.active{color:var(--amber);background:#f0b90b14}.sort-arrow{font-size:6.5px}.watch-rows{flex:1;min-height:0;overflow-y:auto;border-top:1px solid var(--border)}.watch-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 72px 58px 46px;grid-template-rows:36px;align-items:center;gap:4px;height:36px;padding:0 10px;background:none;border:0;border-bottom:1px solid #12171d;border-left:2px solid transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit;white-space:nowrap;overflow:hidden}.watch-row:hover{background:var(--bg-hover)}.watch-row.selected{background:#f0b90b0e;border-left-color:var(--amber)}.watch-sym{grid-column:1;display:flex;align-items:baseline;gap:3px;min-width:0;overflow:hidden}.watch-base{font-size:12px;font-weight:600;letter-spacing:.2px;flex:none;max-width:100%;overflow:hidden;text-overflow:ellipsis}.watch-quote{font-size:8px;color:var(--text-faint);flex:none}.watch-price{grid-column:2;text-align:right;font-size:11px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watch-change{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:2px;text-align:right;font-size:10.5px;font-weight:600;white-space:nowrap;overflow:hidden}.watch-vol{grid-column:4;text-align:right;font-size:9px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.extreme-tag{flex:none;font-family:var(--mono);font-size:9px;line-height:1;color:var(--amber);cursor:help}.extreme-badge{font-size:8px;font-weight:600;letter-spacing:.3px;color:var(--amber);border:1px solid rgba(240,185,11,.45);background:#f0b90b1a;border-radius:2px;padding:1px 5px;cursor:help;white-space:nowrap}.text-faint{color:var(--text-faint)}.depth-panel .panel-head{gap:6px}.depth-panel .depth-side-legend{margin-left:0}.watch-empty{padding:22px 12px;text-align:center;color:var(--text-faint);font-size:11px}.center{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.symbol-header{flex:none;height:76px;display:flex;align-items:center;gap:18px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg-panel);overflow:hidden}.symbol-header-empty{color:var(--text-faint);font-size:11px}.symbol-title{flex:none;min-width:140px;max-width:190px}.symbol-name{display:flex;align-items:baseline;font-size:17px;font-weight:700;letter-spacing:.4px;white-space:nowrap}.symbol-quote{font-size:11px;color:var(--text-dim);font-weight:500}.symbol-perp{font-size:7.5px;color:var(--amber);border:1px solid rgba(240,185,11,.35);border-radius:2px;padding:1px 4px;margin-left:6px;letter-spacing:1px;transform:translateY(-3px);font-weight:600}.symbol-sub{margin-top:4px;font-size:8.5px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.symbol-price-block{flex:none;display:flex;flex-direction:column;gap:3px;min-width:132px}.symbol-price{font-size:25px;font-weight:600;line-height:1.05;letter-spacing:-.6px}.symbol-change-row{display:flex;align-items:center;gap:6px}.change-chip{font-family:var(--mono);font-size:10.5px;font-weight:600;padding:1px 5px;border-radius:2px}.change-chip.up{background:#0ecb811f;color:var(--green)}.change-chip.down{background:#f6465d1f;color:var(--red)}.change-chip.flat{background:#8b95a31a;color:var(--text-dim)}.symbol-stats{flex:1;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.symbol-stat{display:flex;flex-direction:column;gap:2px;min-width:0}.symbol-stat-label{font-size:8px;letter-spacing:.7px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.symbol-stat-value{font-size:11.5px;font-weight:600;white-space:nowrap}.symbol-stat-sub{font-size:8px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-panel{flex:1;min-height:0;display:flex;flex-direction:column}.chart-head{flex:none;height:36px;display:flex;align-items:center;gap:14px;padding:0 14px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.interval-tabs{display:flex;padding:1px;background:var(--bg-inset);border:1px solid var(--border);border-radius:3px}.interval-tab{font-family:var(--mono);font-size:10px;color:var(--text-dim);background:none;border:0;padding:3px 10px;border-radius:2px;cursor:pointer}.interval-tab:hover{color:var(--text)}.interval-tab.active{color:var(--amber);background:var(--bg-selected);box-shadow:inset 0 0 0 1px #f0b90b40}.indicator-wrap{position:relative;flex:none}.indicator-btn{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--border);border-radius:3px;padding:2px 8px;cursor:pointer}.indicator-btn:hover{color:var(--text);border-color:var(--border-strong)}.indicator-btn.open{color:var(--amber);border-color:#f0b90b73}.indicator-count{font-size:8px;color:var(--amber);background:#f0b90b1f;border-radius:2px;padding:0 4px}.indicator-caret{font-size:8px;color:var(--text-faint)}.indicator-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:226px;padding:6px;background:var(--bg-panel-2);border:1px solid var(--border-strong);border-radius:3px;box-shadow:0 10px 28px #00000080}.indicator-group{display:flex;flex-direction:column;gap:1px;padding:2px 0 6px}.indicator-group+.indicator-group{border-top:1px solid var(--border);padding-top:6px}.indicator-group-title{display:flex;align-items:baseline;gap:6px;padding:2px 6px 4px;font-size:8.5px;font-weight:600;letter-spacing:.5px;color:var(--text-dim)}.indicator-group-title .dim{font-size:7.5px;color:var(--text-faint)}.indicator-item{display:flex;align-items:center;gap:7px;padding:3px 6px;border-radius:2px;font-size:10px;color:var(--text-dim);cursor:pointer}.indicator-item:hover{background:var(--bg-hover);color:var(--text)}.indicator-swatch{flex:none;width:12px;height:2px;border-radius:1px;opacity:.9}.indicator-swatch-sub{background:var(--text-faint)}.indicator-label{flex:1;font-family:var(--mono);font-size:9.5px}.indicator-item input[type=checkbox]{flex:none;width:12px;height:12px;margin:0;accent-color:var(--amber);cursor:pointer}.indicator-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 2px;border-top:1px solid var(--border)}.indicator-reset{font:inherit;font-size:9px;color:var(--amber);background:transparent;border:1px solid rgba(240,185,11,.35);border-radius:2px;padding:2px 7px;cursor:pointer}.indicator-reset:hover{background:#f0b90b1a}.indicator-hint{font-size:7.5px;color:var(--text-faint)}.chart-meta{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:9.5px;color:var(--text-faint)}.chart-meta-sep{color:var(--border-strong)}.chart-src{font-size:8px;letter-spacing:.7px;padding:1px 5px;margin-left:4px;border:1px solid var(--border-strong);border-radius:2px;color:var(--text-dim)}.chart-src.demo{color:var(--amber);border-color:#f0b90b66}.chart-src.live{color:var(--green);border-color:#0ecb8159}.chart-src.reconnecting{color:var(--red);border-color:#f6465d59}.chart-body{position:relative;flex:1;min-height:0}.chart-canvas{position:absolute;inset:0}.chart-legend{position:absolute;top:7px;left:10px;z-index:3;display:flex;flex-wrap:wrap;gap:2px 12px;max-width:calc(100% - 90px);padding:3px 8px;border-radius:2px;background:#0b0e11a8;font-size:9.5px;color:var(--text-dim);pointer-events:none;white-space:nowrap}.chart-legend .legend-ind{font-size:9px}.chart-legend .legend-ind b{color:inherit;font-weight:600}.chart-legend b{color:var(--text);font-weight:500}.chart-legend .legend-time{color:var(--text-faint)}.pane-legend{position:absolute;left:10px;z-index:3;display:flex;align-items:baseline;gap:10px;padding:1px 6px;border-radius:2px;background:#0b0e1199;font-size:9px;color:var(--text-dim);pointer-events:none;white-space:nowrap}.pane-legend-title{font-size:8.5px;color:var(--text-faint);letter-spacing:.3px}.pane-legend b{color:var(--text);font-weight:600}.pane-legend .pane-legend-ref{color:var(--text-faint);font-size:8px}.pane-legend .muted{color:var(--text-dim)}.chart-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0b0e11b8;color:var(--text-dim);font-size:11px}.chart-overlay.error{color:var(--red)}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite}.rail{min-height:0;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--border);background:var(--bg-panel)}.depth-panel{flex:1 1 auto;min-height:190px;display:flex;flex-direction:column;border-bottom:1px solid var(--border)}.depth-cols{display:grid;grid-template-columns:1fr 1fr 1fr;padding:0 12px 3px;font-size:8px;letter-spacing:.6px;color:var(--text-faint);text-align:right}.depth-cols span:first-child{text-align:left}.depth-body{position:relative;flex:1;min-height:0;overflow-y:auto}.depth-row{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;height:14px;padding:0 12px;font-size:9.5px;overflow:hidden}.depth-row.depth-ask{background:#f6465d0b}.depth-row.depth-bid{background:#0ecb810b}.depth-row:hover{background:#ffffff0f}.depth-row.depth-ask .depth-price{color:var(--red)}.depth-row.depth-bid .depth-price{color:var(--green)}.depth-price{position:relative;z-index:1;text-align:left}.depth-qty{position:relative;z-index:1;text-align:right;color:var(--text-dim)}.depth-cum{position:relative;z-index:1;text-align:right;color:var(--text-faint)}.depth-bar{position:absolute;top:0;bottom:0;right:0;z-index:0;pointer-events:none}.depth-bar-ask{background:#f6465d42}.depth-bar-bid{background:#0ecb8142}.depth-empty{opacity:.3}.depth-mid{display:flex;align-items:center;gap:7px;height:26px;padding:0 12px;margin:1px 0;border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);background:#141a22}.mid-tag{font-size:7.5px;font-weight:700;letter-spacing:.8px;color:#0b0e11;background:var(--amber);border-radius:2px;padding:1px 4px;flex:none}.mid-price{font-size:13px;font-weight:600;color:var(--amber)!important;flex:none}.mid-label{margin-left:auto;font-size:8px;color:var(--text-faint);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.depth-side-legend{display:flex;align-items:center;gap:4px;margin-left:auto;font-size:8px;letter-spacing:.6px}.micro-body{padding:1px 12px 10px}.imb-head{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.6px;margin:3px 0 4px}.imb-track{position:relative;height:8px;background:var(--bg-inset);border:1px solid var(--border);border-radius:2px;overflow:hidden}.imb-center{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-strong);z-index:2}.imb-fill{position:absolute;top:0;bottom:0;z-index:1;transition:width .12s linear,left .12s linear}.imb-fill.pos{background:#0ecb818c}.imb-fill.neg{background:#f6465d8c}.micro-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:8px}.micro-cell{display:flex;flex-direction:column;gap:1px}.micro-cell .k{font-size:7.5px;letter-spacing:.75px;color:var(--text-faint)}.micro-cell .v{font-size:10.5px}.micro-foot{display:flex;align-items:center;gap:8px;margin-top:8px}.regime-chip{font-size:8.5px;padding:1px 6px;border:1px solid var(--border-strong);border-radius:2px;color:var(--text-dim);background:#0c1116}.deriv-body{padding:1px 12px 10px}.funding-row{display:flex;align-items:flex-end;justify-content:space-between}.deriv-main{display:flex;flex-direction:column;gap:1px}.funding-rate{font-size:18px;font-weight:600;letter-spacing:-.3px;line-height:1.1}.funding-countdown{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.funding-countdown .v{font-size:11.5px}.funding-progress{height:3px;margin:8px 0;border-radius:2px;background:var(--bg-inset);overflow:hidden}.funding-progress-fill{display:block;height:100%;background:#f0b90b73}.deriv-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.deriv-cell{display:flex;flex-direction:column;gap:1px}.deriv-cell .k{font-size:7.5px;letter-spacing:.75px;color:var(--text-faint)}.deriv-cell .v{font-size:11.5px;font-weight:600}.deriv-cell .sub{font-size:8px;color:var(--text-faint)}.deriv-cell .sub.up{color:var(--green)}.deriv-cell .sub.down{color:var(--red)}.book-chip{font-family:var(--mono);font-size:8.5px;padding:1px 5px;border:1px solid var(--border-strong);border-radius:2px;color:var(--text-dim)}.signals-panel{flex:none;display:flex;flex-direction:column;min-height:0;border-bottom:0}.signal-list{display:flex;flex-direction:column;gap:6px;flex:1;min-height:96px;max-height:clamp(188px,24vh,280px);overflow-y:auto;padding:1px 10px 10px}.signal-card{flex:none;padding:6px 8px 7px;background:#0c1116;border:1px solid var(--border);border-left:2px solid var(--text-faint);border-radius:3px}.signal-card.side-long{border-left-color:var(--green);background:#0ecb8109}.signal-card.side-short{border-left-color:var(--red);background:#f6465d0a}.signal-card.side-flat{border-left-color:var(--text-faint)}.signal-top{display:flex;align-items:center;gap:6px}.side-chip{font-size:9px;font-weight:700;letter-spacing:.5px;padding:1px 6px;border-radius:2px;flex:none}.side-chip.long{color:var(--green);background:#0ecb8124}.side-chip.short{color:var(--red);background:#f6465d24}.side-chip.flat{color:var(--text-dim);background:#8b95a31f}.signal-symbol{font-size:11.5px;font-weight:600;letter-spacing:.2px}.signal-kind{font-size:8px;color:var(--text-faint);border:1px solid var(--border);border-radius:2px;padding:0 4px}.signal-time{margin-left:auto;font-size:8.5px;color:var(--text-faint)}.signal-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:9px;color:var(--text-dim)}.signal-strategy{font-size:9.5px;color:var(--text)}.signal-regime{font-size:8px;color:var(--text-faint)}.signal-conf{margin-left:auto;font-size:8.5px;color:var(--text-faint);letter-spacing:.4px}.signal-conf b{color:var(--text);font-weight:600;margin-left:2px}.signal-age{font-size:8px;color:var(--text-faint)}.conf-track{height:3px;margin:5px 0 6px;border-radius:2px;background:var(--bg-inset);overflow:hidden}.conf-fill{display:block;height:100%;background:var(--text-faint);transition:width .2s ease}.conf-fill.long{background:#0ecb81a6}.conf-fill.short{background:#f6465da6}.conf-fill.flat{background:#8b95a380}.signal-levels{display:grid;grid-template-columns:1fr 1fr;gap:3px 6px;font-size:9px;color:var(--text-dim)}.signal-levels .level-entry{grid-column:1 / 3}.signal-levels i{display:block;font-style:normal;font-size:7.5px;letter-spacing:.6px;color:var(--text-faint)}.signal-levels b{font-weight:600}.reason-codes{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}.reason-chip{font-size:7.5px;color:var(--text-faint);background:#10161d;border:1px solid var(--border);border-radius:2px;padding:1px 4px;white-space:nowrap}.signal-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 10px;border:1px dashed var(--border-strong);border-radius:3px;color:var(--text-faint);font-size:11px}.signal-empty-icon{font-size:20px;opacity:.5}.signal-empty-hint{font-size:8px;letter-spacing:.8px}.engine-badge{gap:6px}.engine-pill{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:8.5px;font-weight:700;letter-spacing:.8px;padding:2px 6px;border-radius:2px;border:1px solid var(--border-strong);color:var(--text-dim);background:#0f141a;white-space:nowrap}.engine-dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint);flex:none}.engine-age{font-size:8px;color:var(--text-faint);min-width:32px}.engine-online .engine-pill{color:var(--green);border-color:#0ecb8173;background:#0ecb8112}.engine-online .engine-dot{background:var(--green);box-shadow:0 0 6px #0ecb81cc}.engine-online .engine-age{color:#0ecb81bf}.engine-waiting .engine-pill{color:var(--text-dim);border-color:var(--border-strong)}.engine-waiting .engine-dot{background:var(--text-faint)}.engine-offline .engine-pill{color:var(--text-faint);border-style:dashed}.engine-offline .engine-dot{background:var(--text-faint);opacity:.6}.engine-halted .engine-pill{color:var(--red);border-color:#f6465d80;background:#f6465d14;animation:blink 1.2s steps(2,start) infinite}.engine-halted .engine-dot{background:var(--red);box-shadow:0 0 6px #f6465dcc}.engine-halted .engine-age{color:#f6465dcc}.logbar{flex:none;height:120px;display:grid;grid-template-columns:minmax(0,1fr) 232px;border-top:1px solid var(--border);background:var(--bg-panel)}.logbar-expanded{height:260px}.console-main{display:flex;flex-direction:column;min-width:0;min-height:0}.console-tabbar{flex:none;height:26px;display:flex;align-items:center;gap:10px;padding:0 10px;background:var(--bg-panel-2);border-bottom:1px solid var(--border);white-space:nowrap}.console-tabs{display:flex;align-items:stretch;gap:2px;height:100%}.console-tab{display:flex;align-items:center;gap:6px;height:100%;padding:0 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-dim);font-family:inherit;font-size:10px;font-weight:600;letter-spacing:.4px;cursor:pointer}.console-tab:hover{color:var(--text);background:var(--bg-hover)}.console-tab.active{color:var(--text);border-bottom-color:var(--amber);background:#f0b90b0d}.console-tab-count{font-size:8px;font-weight:400;color:var(--text-faint)}.console-tab-badge{min-width:15px;height:14px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:var(--red);color:#fff;font-size:8.5px;font-weight:700;line-height:1}.console-meta-slot{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.console-meta{font-size:8.5px;color:var(--text-faint)}.console-meta.amber{color:var(--amber)}.console-expand{flex:none;padding:2px 6px;border:1px solid var(--border-strong);border-radius:2px;background:transparent;color:var(--text-dim);font-family:var(--mono);font-size:8.5px;cursor:pointer}.console-expand:hover{color:var(--text);border-color:var(--text-faint)}.console-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.log-list{flex:1;min-height:0;overflow-y:auto;padding:3px 12px 6px;font-size:10px;line-height:1.5}.log-line{display:flex;gap:8px;white-space:nowrap;align-items:baseline}.log-time{flex:none;color:var(--text-faint);font-size:9px}.log-level{flex:none;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.5px;padding:0 4px;border-radius:2px}.log-level.level-info{color:var(--text-faint);background:#8b95a314}.log-level.level-warn{color:var(--amber);background:#f0b90b1a}.log-level.level-error{color:var(--red);background:#f6465d1f}.log-msg{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis}.log-line.level-warn .log-msg{color:#d8bd63}.log-line.level-error .log-msg{color:var(--red)}.log-stats{display:flex;flex-direction:column;gap:4px;min-height:0;padding:7px 10px;border-left:1px solid var(--border)}.log-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.log-stat{display:flex;align-items:baseline;justify-content:space-between;gap:4px}.log-stat .k{font-size:7px;letter-spacing:.5px}.log-stat .v{font-size:9.5px}.log-stat .v.up{color:var(--green)}.log-stat .v.down{color:var(--red)}.log-stat .v.warn{color:var(--amber)}.log-account{display:flex;align-items:baseline;gap:6px;margin-top:auto;padding-top:4px;border-top:1px solid var(--border);font-size:9px;white-space:nowrap;overflow:hidden}.log-account .k{font-size:7px}.log-account .v{font-size:9px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis}.log-account b{font-weight:600}.log-account-time{margin-left:auto;font-size:8px;color:var(--text-faint)}.paper-console{flex:1;min-height:0;display:grid;grid-template-columns:320px minmax(0,5fr) minmax(0,7fr);grid-template-rows:minmax(0,1fr);min-width:0}.paper-card{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--border);overflow:hidden}.paper-card:last-child{border-right:0}.paper-section-head{flex:none;display:flex;align-items:center;gap:6px;height:18px;padding:0 8px;background:var(--bg-inset);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.paper-section-title{font-size:8px;font-weight:600;letter-spacing:.6px;color:var(--text-dim)}.paper-chip{flex:none;font-size:8px;color:var(--text-faint);border:1px solid var(--border-strong);border-radius:2px;padding:0 4px}.paper-hb{flex:none;margin-left:auto;font-size:8px;color:var(--text-faint);letter-spacing:0}.paper-halt-chip{flex:none;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.8px;color:var(--red);border:1px solid rgba(246,70,93,.5);border-radius:2px;padding:0 4px;background:#f6465d1a}.paper-halt-reason{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:8.5px;color:var(--red);opacity:.85}.paper-demo-chip{flex:none;font-size:8px;color:var(--amber);border:1px dashed rgba(240,185,11,.45);border-radius:2px;padding:1px 5px;background:#f0b90b0f}.paper-metrics{flex:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px 8px;padding:4px 8px 2px}.paper-metric{display:flex;flex-direction:column;min-width:0}.paper-metric .k{font-size:7px;letter-spacing:.5px;color:var(--text-faint)}.paper-metric .v{font-size:10.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.paper-risk{flex:none;display:flex;flex-direction:column;gap:2px;padding:0 8px 2px}.risk-row{display:flex;align-items:center;gap:6px}.risk-label{flex:none;width:64px;font-size:8px;color:var(--text-faint);letter-spacing:.2px;white-space:nowrap}.risk-track{flex:1;height:3px;min-width:20px;border-radius:2px;background:var(--bg-inset);overflow:hidden}.risk-fill{display:block;height:100%;width:0;background:#f0b90b73;transition:width .2s ease}.risk-fill.ok{background:#0ecb8180}.risk-fill.warn{background:#f0b90ba6}.risk-fill.danger{background:var(--red)}.risk-fill.flat{background:#8b95a340}.risk-val{flex:none;width:54px;text-align:right;font-size:8.5px;color:var(--text-dim)}.risk-val.warn{color:var(--amber)}.risk-val.down{color:var(--red)}.paper-empty-account{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 8px;overflow:hidden;text-align:center}.paper-empty-title{font-size:12px;letter-spacing:1px;color:var(--text-dim)}.paper-empty-cmd{font-size:9.5px;color:var(--text);background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:2px;padding:1px 6px;white-space:nowrap}.paper-empty-note{font-size:8px;color:var(--text-faint);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table-wrap{flex:1;min-height:0;overflow:auto;padding-bottom:2px}.paper-table{width:100%;border-collapse:collapse;font-size:9.5px}.paper-table th{position:sticky;top:0;z-index:1;padding:2px 6px;background:var(--bg-panel-2);border-bottom:1px solid var(--border);color:var(--text-faint);font-size:7.5px;font-weight:600;letter-spacing:.5px;text-align:left;white-space:nowrap}.paper-table td{padding:1px 6px;border-bottom:1px solid rgba(26,32,39,.55);color:var(--text-dim);white-space:nowrap;line-height:1.5}.paper-table tbody tr:hover td{background:var(--bg-hover)}.paper-table .num{text-align:right}.paper-table .side-chip{font-size:8px;padding:0 4px}.paper-sym{color:var(--text);font-weight:600}.paper-time{color:var(--text-faint);font-size:8.5px}.paper-reason{max-width:110px;overflow:hidden;text-overflow:ellipsis;color:var(--text-faint);font-size:8.5px}.paper-table-empty{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-faint);font-size:10px;overflow:hidden}.paper-table-empty .dim{font-size:8px}.console-view-orderflow{overflow:hidden}.orderflow-panel{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.orderflow-head{flex:none;display:flex;align-items:center;gap:8px;height:24px;padding:0 10px;background:var(--bg-inset);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.orderflow-title{flex:none;font-size:8px;font-weight:600;letter-spacing:.6px;color:var(--text-dim)}.orderflow-symbol{flex:none;font-size:10.5px;font-weight:600;color:var(--text)}.orderflow-collect{flex:none;font-size:8px;padding:0 5px;border-radius:2px;border:1px solid var(--border-strong);color:var(--text-faint)}.orderflow-collect.on{color:var(--green);border-color:#0ecb8173;background:#0ecb8112}.orderflow-collect.late{color:var(--amber);border-color:#f0b90b73;background:#f0b90b12}.orderflow-collect.none{color:var(--text-faint);border-style:dashed}.orderflow-window{flex:none;font-size:8px;color:var(--text-faint);padding-left:7px;border-left:1px solid var(--border-strong)}.orderflow-meta{flex:none;max-width:320px;overflow:hidden;text-overflow:ellipsis;font-size:8px;color:var(--text-faint)}.orderflow-book{flex:none;font-size:8.5px;color:var(--text-dim)}.orderflow-book b{font-weight:600;color:var(--text)}.orderflow-src{font-style:normal;margin-left:4px;font-size:7.5px;color:var(--text-faint);border:1px solid var(--border);border-radius:2px;padding:0 3px}.orderflow-src.ws{color:var(--green);border-color:#0ecb8166}.orderflow-stale{flex:none;font-size:8px;color:var(--amber);border:1px solid rgba(240,185,11,.4);border-radius:2px;padding:0 4px}.orderflow-chips{flex:1 1 auto;min-width:60px;display:flex;justify-content:flex-end;gap:3px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.orderflow-chips::-webkit-scrollbar{display:none}.orderflow-chip{flex:none;font-family:var(--mono);font-size:8px;line-height:13px;padding:0 5px;border:1px solid var(--border-strong);border-radius:2px;background:transparent;color:var(--text-faint);cursor:pointer;white-space:nowrap}.orderflow-chip:hover{color:var(--text);border-color:var(--text-faint)}.orderflow-chip.active{color:var(--amber);border-color:#f0b90b80;background:#f0b90b14}.orderflow-body{flex:1;min-height:0;display:flex;padding-bottom:6px}.orderflow-charts{flex:1;min-width:0;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.l2-cell{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--border)}.l2-cell:last-child{border-right:0}.l2-cell-head{flex:none;height:16px;display:flex;align-items:center;gap:6px;padding:0 8px;background:#11161c8c;border-bottom:1px solid var(--border);overflow:hidden;white-space:nowrap}.l2-cell-title{flex:none;font-size:7.5px;font-weight:600;letter-spacing:.5px;color:var(--text-faint)}.l2-cell-values{margin-left:auto;display:inline-flex;align-items:baseline;gap:4px;font-size:8.5px;overflow:hidden}.l2-cell-values b{font-weight:600}.l2-cell-values .dim{color:var(--text-faint)}.l2-cell-values .amber{color:var(--amber)}.l2-canvas{flex:1;min-height:0;position:relative}.l2-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.orderflow-empty{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 18px;text-align:center;overflow:hidden;color:var(--text-faint)}.orderflow-empty-icon{font-size:20px;line-height:1;opacity:.5}.orderflow-empty-title{color:var(--text-dim);font-size:12px}.orderflow-empty-sub{max-width:760px;font-size:9px;color:var(--text-faint)}.orderflow-empty-sub b{color:var(--text-dim);font-weight:600}.orderflow-empty-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:100%;overflow:hidden}.orderflow-empty-chips .orderflow-chip{font-size:9px;line-height:16px;padding:0 8px}.orderflow-err{color:var(--red)}@keyframes blink{50%{opacity:.35}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1420px){.main{grid-template-columns:264px minmax(0,1fr) 328px}.symbol-stats{gap:10px}.paper-console{grid-template-columns:300px minmax(0,5fr) minmax(0,7fr)}.orderflow-meta{max-width:250px}}@media(max-width:1260px){.main{grid-template-columns:244px minmax(0,1fr) 312px}.brand-sub{display:none}.symbol-header{gap:12px}.symbol-title{min-width:120px}.symbol-stat-sub{display:none}.chart-legend{gap:8px}.paper-console{grid-template-columns:282px minmax(0,5fr) minmax(0,7fr)}.engine-age{display:none}.orderflow-meta{max-width:195px}.l2-cell-head{padding:0 6px}}@media(max-width:1100px){.main{grid-template-columns:220px minmax(0,1fr) 288px}.topbar-stat:nth-of-type(4){display:none}.logbar{grid-template-columns:minmax(0,1fr) 200px}.paper-console{grid-template-columns:258px minmax(0,5fr) minmax(0,7fr)}.paper-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.orderflow-title{display:none}.orderflow-meta{max-width:150px}.orderflow-book{display:none}}
