:root{--bg: #000;--panel: #111;--panel-light: #181818;--text: #fff;--text-dim: #aaa;--accent: #00e676;--border: #222;--danger: #d50000;--warn: #ffab00;--success: #00c853;--radius: 8px;--transition: .18s ease;--drawer-width: 320px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#root{width:100%;height:100%;padding:0;margin:0;text-align:left}h1,h2,h3{margin:0 0 .5rem;font-weight:600}h1{font-size:2rem}h2{font-size:1.4rem}h3{font-size:1.1rem}.card,.gex-status-card,.today-card{background:var(--panel);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);transition:var(--transition)}.card:hover,.gex-status-card:hover,.today-card:hover{border-color:var(--accent)}button{background:var(--panel-light);color:var(--text);border:1px solid var(--border);padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;transition:var(--transition);font-size:.9rem}button:hover{background:var(--accent);color:#000;border-color:var(--accent)}button:active{transform:scale(.97)}.toggle-btn{padding:6px 12px;border-radius:6px;border:1px solid var(--border);cursor:pointer;font-size:.85rem;margin-right:6px;transition:var(--transition)}.toggle-btn.on{background:var(--success);color:#000;border-color:var(--accent);font-weight:600}.toggle-btn.off{background:var(--panel-light);color:var(--text-dim);border-color:var(--border)}.toggle-btn:hover{filter:brightness(1.15)}select{background:var(--panel-light);color:var(--text);border:1px solid var(--border);padding:.5rem;border-radius:var(--radius);width:100%;transition:var(--transition)}select:hover{border-color:var(--accent)}.gex-field{display:flex;justify-content:space-between;margin:.4rem 0;font-size:.95rem}.gex-field label{color:var(--text-dim)}.today-card{min-width:200px;background:var(--panel-light)}.today-card h3{margin-bottom:.25rem}.today-card .regime{font-size:.85rem;opacity:.8}.regime-green{color:var(--success)}.regime-adjusted{color:var(--warn)}.regime-nogo{color:var(--danger)}.regime-unknown{color:var(--text-dim)}.pulse{display:inline-block;margin-left:6px;color:var(--accent);font-size:1rem}.flex{display:flex;gap:1rem}.wrap{flex-wrap:wrap}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.layout{display:flex;flex-direction:row;gap:1.5rem;min-height:0;overflow:hidden}.main{flex:1;padding:1rem;margin-left:360px;margin-right:var(--drawer-width);min-height:0;overflow-y:auto}.manual-drawer{width:var(--drawer-width);position:fixed;right:0;top:0;bottom:0;overflow-y:auto;background:var(--panel);border-left:1px solid var(--border);padding:1rem;z-index:999}.drawer-mobile-close,.mobile-drawer-toggles{display:none}@media(max-width:1600px){:root{--drawer-width: 300px}.left-drawer{width:300px}.main{margin-left:304px;margin-right:304px}.gex-grid{grid-template-columns:repeat(3,1fr)}.operator-grid{margin-right:0;margin-top:20px}}@media(max-width:1280px){:root{--drawer-width: 280px}.left-drawer{width:280px}.main{margin-left:286px;margin-right:286px;padding:.75rem}.gex-grid{grid-template-columns:repeat(2,1fr)}.gex-header{align-items:flex-start;flex-direction:column;gap:6px}}@media(max-width:1024px){.main{margin-left:0;margin-right:0;padding:.6rem}.mobile-drawer-toggles{display:flex;gap:8px;position:sticky;top:0;z-index:900;background:#000;padding:8px 0;margin-bottom:8px}.mobile-drawer-toggles button{flex:1;font-size:12px;padding:8px}.left-drawer,.manual-drawer{width:min(86vw,360px)!important;max-width:min(86vw,360px)!important;top:0;bottom:0;height:100vh;z-index:1200;transition:transform .2s ease;box-shadow:0 8px 30px #00000073}.left-drawer{left:0!important;transform:translate(-110%)}.manual-drawer{right:0!important;transform:translate(110%)}.left-drawer.mobile-open,.manual-drawer.mobile-open{transform:translate(0)}.drawer-mobile-close{display:inline-block;margin-bottom:10px;width:100%;font-size:12px;padding:7px 10px}.operator-grid{grid-template-columns:1fr;gap:.9rem;margin-top:10px}}@media(max-width:768px){.panel{padding:.7rem;margin-bottom:.9rem}.gex-grid{grid-template-columns:1fr}.scc-row{grid-template-columns:1fr!important;gap:6px}.backtest-card-grid,.scc-cards-wrap,.promotion-ticker-cards-wrap{display:grid;grid-template-columns:1fr;width:100%}.backtest-card-wrap,.promotion-ticker-card{width:100%}}.gex-fixed{position:fixed;top:72px;left:360px;width:300px;background:var(--panel);border-right:1px solid var(--border);padding:1rem;z-index:900}.operator-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:240px;margin-right:380px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1.5rem;transition:var(--transition)}.panel:hover{border-color:var(--accent)}.panel-header{border-bottom:1px solid var(--border);padding-bottom:.5rem;margin-bottom:1rem}.panel-header h2{margin:0;font-size:1.2rem;font-weight:600}.panel-body{padding:.25rem 0}.trade-card-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-bottom:.75rem}.trade-card-slot{flex:1 1 360px;min-width:320px;max-width:420px}.trade-card-slot>.panel{margin-bottom:0}@media(max-width:900px){.trade-card-slot{min-width:100%;max-width:100%}}.orb-overlay{position:absolute;inset:0;pointer-events:none;z-index:50;font-size:.85rem}.orb-window-shade{position:absolute;top:0;left:0;width:100%;height:100%;background:#ffd70014;border-left:2px solid var(--warn);border-right:2px solid var(--warn);color:var(--warn);padding:4px 8px;font-weight:600}.orb-line{position:absolute;left:0;width:100%;height:1px;background:var(--accent);opacity:.8}.orb-marker{position:absolute;right:6px;padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:600;background:var(--panel-light);border:1px solid var(--border)}.gex-header{width:100%;background:var(--panel-light);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.gex-header h2{margin:0;font-size:1.1rem;font-weight:600}.gex-header .gex-meta{font-size:.85rem;color:var(--text-dim);opacity:.8}.gex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:2rem}.gex-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.85rem;transition:var(--transition)}.gex-card:hover{border-color:var(--accent)}.gex-title{font-size:1rem;font-weight:600;margin-bottom:.5rem}.gex-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.gex-badge.greenlight{background:#00c85326;color:var(--success);border:1px solid var(--success)}.gex-badge.adjusted{background:#ffab0026;color:var(--warn);border:1px solid var(--warn)}.gex-badge.nogo{background:#d5000026;color:var(--danger);border:1px solid var(--danger)}.gex-badge.neutral{background:#aaaaaa26;color:var(--text-dim);border:1px solid var(--border)}.gex-heat{height:6px;width:100%;border-radius:4px;margin:6px 0 10px;background:linear-gradient(90deg,#00c853,#ffab00,#d50000);position:relative}.gex-heat-indicator{position:absolute;top:-3px;width:10px;height:12px;background:var(--text);border-radius:2px;transform:translate(-50%)}.risk-panel{background:var(--panel-light, #1a1a1a);border:1px solid var(--border, #333);border-radius:var(--radius, 8px);padding:14px;margin-bottom:12px;color:var(--text, #eee);font-size:.84rem;width:100%;min-width:0;box-sizing:border-box}.risk-panel .rp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.risk-panel .rp-header-title{font-size:.92rem;font-weight:700;color:var(--text, #fff)}.risk-panel .rp-trades-badge{font-size:.72rem;font-weight:600;color:var(--text-dim, #888);background:var(--panel, #111);border:1px solid var(--border, #333);border-radius:20px;padding:2px 8px;white-space:nowrap}.risk-panel .rp-account-section{border:1px solid var(--border, #333);border-radius:8px;padding:10px;margin-bottom:10px;background:var(--panel, #111)}.risk-panel .rp-section-live{border-left:3px solid #4caf7d}.risk-panel .rp-section-paper{border-left:3px solid #5b8dd9}.risk-panel .rp-account-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--text-dim, #888);margin-bottom:8px;text-transform:uppercase}.risk-panel .rp-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:5px 0;min-width:0}.risk-panel .rp-row-input{margin:7px 0}.risk-panel .rp-label{color:var(--text-dim, #aaa);white-space:nowrap;flex-shrink:0;min-width:0}.risk-panel .rp-value-readonly{color:var(--text, #eee);font-variant-numeric:tabular-nums;white-space:nowrap}.risk-panel .rp-value-warn{color:#ff8a80}.risk-panel .rp-value-pos{color:var(--success, #4caf50)}.risk-panel .rp-computed-block{margin-top:8px;padding-top:8px;border-top:1px solid var(--border, #2a2a2a)}.risk-panel .rp-computed{color:#7ecfb0;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.risk-panel .rp-computed-dim{color:var(--text-dim, #666);font-weight:400}.risk-panel .rp-pct-wrap{display:flex;align-items:center;gap:4px}.risk-panel .rp-pct-input{width:68px;padding:4px 6px;background:var(--panel, #1e1e1e);border:1px solid var(--border, #444);border-radius:4px;color:var(--text, #fff);font-size:.84rem;text-align:right;-moz-appearance:textfield}.risk-panel .rp-pct-input::-webkit-inner-spin-button,.risk-panel .rp-pct-input::-webkit-outer-spin-button{opacity:.6}.risk-panel .rp-pct-input:disabled{opacity:.4;cursor:not-allowed}.risk-panel .rp-pct-symbol{color:var(--text-dim, #888);font-size:.84rem;width:12px}.risk-panel .rp-dollar-input,.risk-panel .rp-time-input{width:90px;padding:4px 6px;background:var(--panel, #1e1e1e);border:1px solid var(--border, #444);border-radius:4px;color:var(--text, #fff);font-size:.84rem;text-align:right}.risk-panel .rp-dollar-input::-webkit-inner-spin-button,.risk-panel .rp-dollar-input::-webkit-outer-spin-button{opacity:.6}.risk-panel .rp-shared-section{border:1px solid var(--border, #333);border-radius:8px;padding:10px;margin-bottom:10px;background:var(--panel, #111)}.risk-panel .rp-shared-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--text-dim, #888);margin-bottom:8px;text-transform:uppercase}.risk-panel .rp-safety-section{border:1px solid rgba(255,80,80,.2);border-radius:8px;padding:10px;margin-bottom:10px;background:#ff28280a}.risk-panel .rp-safety-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:#ff7878b3;margin-bottom:8px;text-transform:uppercase}.risk-panel .rp-warn-banner{background:#ff50001f;border:1px solid rgba(255,120,40,.3);color:#ffab76;border-radius:5px;padding:5px 8px;font-size:.76rem;margin:6px 0;line-height:1.4}.risk-panel .rp-error{background:#d500001f;border:1px solid rgba(213,0,0,.3);color:#ff8a80;border-radius:5px;padding:6px 8px;font-size:.78rem;margin:8px 0}.risk-panel .rp-actions{display:flex;gap:8px;margin-top:12px}.risk-panel .rp-btn{flex:1;padding:8px 10px;border:1px solid var(--border, #555);border-radius:5px;cursor:pointer;font-size:.82rem;font-weight:600;transition:background .15s,opacity .15s;color:var(--text, #fff)}.risk-panel .rp-btn:disabled{opacity:.5;cursor:not-allowed}.risk-panel .rp-btn-save{background:#1e4033;border-color:#2d6e52}.risk-panel .rp-btn-save:hover:not(:disabled){background:#255043}.risk-panel .rp-btn-reset{background:var(--panel, #222)}.risk-panel .rp-btn-reset:hover:not(:disabled){background:#2a2a2a}.left-drawer .account-balances-panel{background:var(--panel-light);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:16px;width:100%;max-width:100%;min-width:0;position:static;overflow:hidden}.left-drawer .abp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.left-drawer .abp-title{margin:0;font-size:.92rem;font-weight:700;color:var(--text);line-height:1.2}.left-drawer .abp-heartbeat{width:9px;height:9px;border-radius:999px;background:#38503f;display:inline-block;flex:0 0 auto}.left-drawer .abp-heartbeat-pulse{background:var(--success);box-shadow:0 0 #00c853b3;animation:abpPulse .7s ease-out}@keyframes abpPulse{0%{box-shadow:0 0 #00c853b3}to{box-shadow:0 0 0 10px #00c85300}}.left-drawer .abp-error{background:#d5000026;border:1px solid rgba(213,0,0,.45);color:#ff8a80;padding:6px 8px;border-radius:6px;font-size:.8rem;margin-bottom:8px}.left-drawer .abp-grid{display:grid;grid-template-columns:1fr;gap:8px}.left-drawer .abp-card{border:1px solid var(--border);border-radius:8px;background:var(--panel);padding:8px;min-width:0}.left-drawer .abp-card-dim{opacity:.45;filter:grayscale(.5)}.left-drawer .abp-live-hidden{display:none}.left-drawer .abp-card-title{font-size:.75rem;font-weight:700;letter-spacing:.04em;color:var(--text-dim);margin-bottom:6px}.left-drawer .abp-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.82rem;margin:4px 0}.left-drawer .abp-label{color:var(--text-dim)}.left-drawer .abp-value{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.left-drawer .abp-pnl-pos{color:var(--success)}.left-drawer .abp-pnl-neg{color:#ff6b6b}.left-drawer .abp-tooltip-wrap{cursor:help}.left-drawer .abp-updated{margin-top:8px;font-size:.75rem;color:var(--text-dim)}.left-drawer .abp-card-skeleton{overflow:hidden}.left-drawer .abp-skeleton{background:linear-gradient(90deg,#ffffff0f,#ffffff21,#ffffff0f);background-size:220% 100%;border-radius:6px;animation:abpSkeleton 1.2s linear infinite}.left-drawer .abp-skeleton-title{height:14px;width:70px;margin-bottom:8px}.left-drawer .abp-skeleton-line{height:12px;margin:7px 0}@keyframes abpSkeleton{0%{background-position:100% 0}to{background-position:-100% 0}}.left-drawer .abp-flash-up{animation:abpFlashUp .45s ease-out}.left-drawer .abp-flash-down{animation:abpFlashDown .45s ease-out}@keyframes abpFlashUp{0%{background-color:#00c8531f}to{background-color:transparent}}@keyframes abpFlashDown{0%{background-color:#d500001f}to{background-color:transparent}}.left-drawer{width:360px;background:var(--panel);height:100vh;position:fixed;left:0;top:0;padding:30px 20px;overflow-y:auto;border-right:1px solid var(--border);z-index:1000}.drawer-mobile-close{display:none}.drawer-divider{height:1px;background:var(--border);margin:20px 0}@media(max-width:1600px){.left-drawer{width:300px}}@media(max-width:1280px){.left-drawer{width:280px}}@media(max-width:1024px){.left-drawer{width:min(86vw,360px)!important;max-width:min(86vw,360px)!important;top:0;bottom:0;height:100vh;z-index:1200;transition:transform .2s ease;box-shadow:0 8px 30px #00000073;transform:translate(-110%)}.left-drawer.mobile-open{transform:translate(0)}.drawer-mobile-close{display:inline-block;margin-bottom:10px;width:100%;font-size:12px;padding:7px 10px}}.manual-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin-bottom:1rem}.manual-header{display:flex;justify-content:flex-start;align-items:center;padding:12px;background:var(--panel-light);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;cursor:default}.manual-header h3{margin:0;color:var(--text);font-size:1.1rem}.chevron{display:none}.manual-body{margin-top:.5rem}.manual-row,.manual-panel .row{display:flex;gap:.5rem;margin-bottom:.75rem}select,.num-input{background:var(--panel-light);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem;width:100%}.slider-block{margin-bottom:1rem}.slider-row{display:flex;gap:.5rem}input[type=range]{flex:1}.submit-btn{width:100%;background:var(--accent);color:#000;border:none;padding:.75rem;border-radius:var(--radius);font-weight:600;cursor:pointer;margin-top:1rem}.scalp-toggle-label{display:inline-flex;align-items:center;gap:6px;font-size:13px}.quick-scalp-block{margin-top:8px;border:1px solid #2f2f2f;border-radius:var(--radius);background:#151515;padding:8px;display:grid;gap:6px}.quick-scalp-block.scalp-active{border-color:#3b3b3b;box-shadow:inset 0 0 0 1px #ffffff08}.quick-scalp-block.flash-up{animation:scalp-flash-up .7s ease-in-out infinite}.quick-scalp-block.flash-down{animation:scalp-flash-down .7s ease-in-out infinite}@keyframes scalp-flash-up{0%{box-shadow:inset 0 0 0 1px #10b9811a,0 0 #10b98100}50%{box-shadow:inset 0 0 0 1px #10b9814d,0 0 14px #10b98147}to{box-shadow:inset 0 0 0 1px #10b9811a,0 0 #10b98100}}@keyframes scalp-flash-down{0%{box-shadow:inset 0 0 0 1px #ef44441a,0 0 #ef444400}50%{box-shadow:inset 0 0 0 1px #ef44444d,0 0 14px #ef444442}to{box-shadow:inset 0 0 0 1px #ef44441a,0 0 #ef444400}}.quick-scalp-block.scalp-bull{background:linear-gradient(180deg,#16a34a29,#151515)}.quick-scalp-block.scalp-bear{background:linear-gradient(180deg,#dc262626,#151515)}.quick-scalp-title{font-size:12px;font-weight:700;color:var(--text)}.quote-freshness{display:grid;grid-template-columns:auto auto auto;gap:8px;align-items:center;width:fit-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.01em;text-transform:uppercase;border:1px solid #4b5563;color:#e5e7eb;background:#4b556338}.quote-freshness.quote-fresh{border-color:#16a34ab3;color:#86efac;background:#16a34a29}.quote-freshness.quote-stale{border-color:#dc2626b3;color:#fecaca;background:#dc262629}.quote-freshness.quote-unknown{border-color:#f59e0bb3;color:#fde68a;background:#f59e0b29}.quick-scalp-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.quick-scalp-btn{border:1px solid #3a3a3a;background:#1d1d1d;color:#f3f4f6;border-radius:6px;padding:6px 8px;font-size:12px;font-weight:700}.quick-scalp-btn.hotkey-enabled{border-color:#4b5563}.quick-scalp-block.scalp-bull .quick-scalp-btn{border-color:#16a34a8c;background:#16a34a2e}.quick-scalp-block.scalp-bear .quick-scalp-btn{border-color:#dc26268c;background:#dc262629}.quick-scalp-hints{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px;color:#9ca3af;text-align:center}.scalp-summary-panel{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-light);padding:10px;display:grid;gap:6px}.scalp-summary-title{font-size:13px;font-weight:700;color:var(--text)}.scalp-summary-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text)}.scalp-summary-badge{margin-top:4px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:11px;font-weight:700;padding:4px 8px;border:1px solid transparent}.scalp-badge-good{color:#86efac;background:#16a34a38;border-color:#16a34a80}.scalp-badge-warn{color:#fcd34d;background:#ca8a0433;border-color:#ca8a0473}.scalp-badge-bad{color:#fca5a5;background:#dc262638;border-color:#dc262680}.broker-mini-strip{display:flex;align-items:center;gap:12px;background:#0d0d0d;padding:6px 12px;border-bottom:1px solid #222;font-family:monospace;font-size:13px;color:#eee}.mini-status{padding:2px 8px;border-radius:4px;font-weight:700}.mini-status.ok{background:#4caf50}.mini-status.degraded{background:#ff9800}.mini-status.offline{background:#f44336}.mini-latency{opacity:.8}.mini-queue,.mini-open-filled{opacity:.9}.mini-queue strong{color:#ffb74d}.mini-open-filled strong{color:#81c784}.mini-last{display:flex;align-items:center;gap:6px;margin-left:auto;opacity:.7}.mini-last-time{font-size:11px;color:#90caf9;opacity:.85}:root{--broker-bg: #111;--broker-fg: #eee;--broker-accent: #6cf;--ok: #4caf50;--warn: #ff9800;--error: #f44336;--info: #2196f3;--panel-radius: 6px;--panel-padding: 10px;--font-mono: monospace}.broker-panel-base{background:var(--broker-bg);color:var(--broker-fg);padding:var(--panel-padding);border-radius:var(--panel-radius);font-family:var(--font-mono);margin-bottom:10px}.broker-title{font-size:16px;color:var(--broker-accent);margin-bottom:6px}.broker-ok{border-left:4px solid var(--ok)}.broker-warn{border-left:4px solid var(--warn)}.broker-error{border-left:4px solid var(--error)}.broker-info{border-left:4px solid var(--info)}.broker-toast{position:fixed;top:20px;right:20px;background:var(--error);color:#fff;padding:12px 16px;border-radius:var(--panel-radius);font-family:var(--font-mono);z-index:9999;box-shadow:0 0 10px #0006;max-width:300px}:root{--neon-green: #00ff95;--neon-red: #ff4d4d;--neon-amber: #ffb347;--neon-gray: #d1d5db;--bg-deep-1: #0b0b0b;--bg-deep-2: #111111;--bg-deep-3: #0f0f0f}.neon-card{background-color:var(--bg-deep-1);border:1px solid #1f1f1f;color:#fff}.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.6)}}
