:root{color-scheme:dark;font-family:IBM Plex Sans,Segoe UI,sans-serif;--pos: #5de69a;--neg: #ff8a8a;--warn: #ffc84a;--warn-bg: rgba(160, 100, 0, .42);--warn-bd: rgba(255, 180, 50, .35);--danger-bg: rgba(127, 24, 24, .54);--danger-bd: rgba(218, 87, 87, .38);--info: #7dbfff;--text-dim: #8da1b7;--text-mid: #b2c4d6;--text-main: #edf1f7;--border: rgba(132, 151, 171, .13);--border-hi: rgba(144, 177, 212, .22);--surface: rgba(9, 16, 25, .84);--surface-lo: rgba(6, 10, 16, .72);background:radial-gradient(circle at top left,rgba(255,194,92,.16),transparent 32%),radial-gradient(circle at top right,rgba(66,164,255,.16),transparent 28%),linear-gradient(180deg,#09111a,#06090f);color:var(--text-main)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1480px,calc(100vw - 32px));margin:0 auto;padding:20px 0 40px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:#091019eb;border:1px solid var(--border-hi);border-radius:20px;padding:28px;box-shadow:0 20px 60px #0000004d}.login-card h1{margin:0 0 10px;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:1.5rem}.login-label{display:grid;gap:8px;margin:18px 0 16px;color:var(--text-mid)}.login-label input{border-radius:10px;border:1px solid rgba(122,145,169,.24);background:#0b121ce0;color:#eef4fb;padding:11px 14px}.hero{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.hero h1{margin:0;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:1.35rem;font-weight:700;letter-spacing:-.01em;line-height:1.2}.eyebrow{margin:0 0 4px;letter-spacing:.16em;text-transform:uppercase;color:var(--info);font-size:.7rem;opacity:.8}.subtle{margin:0;color:var(--text-dim);font-size:.83rem;max-width:52rem}.auto-exit-disabled-note{margin-bottom:12px}.broker-note{margin-top:12px;line-height:1.45}.hero-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.grid{display:grid;gap:14px;margin-bottom:14px}.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.data-grid{grid-template-columns:minmax(0,1fr);align-items:start}.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;box-shadow:0 12px 40px #00000038;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-bottom:14px}.grid .panel{margin-bottom:0}.panel h2{margin:0 0 12px;font-size:.9rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-mid)}.panel h3{margin:0 0 8px;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.panel-header h2{margin:0}.panel-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.panel-title-row h2{margin:0}.panel-header>span{font-size:.78rem;font-variant-numeric:tabular-nums;background:#8497ab24;border:1px solid var(--border);border-radius:999px;padding:2px 10px;color:var(--text-dim);min-width:28px;text-align:center}.metric-list{display:grid;gap:0;margin:0 0 8px}.metric-list div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--border)}.metric-list div:last-child{border-bottom:none}.metric-list dt{color:var(--text-dim);font-size:.83rem}.metric-list dd{margin:0;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.83rem;font-variant-numeric:tabular-nums}.metric-inline{display:flex;align-items:center;justify-content:flex-end;gap:6px}.metric-error{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--neg)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot-ok{background:var(--pos);box-shadow:0 0 5px var(--pos)}.status-dot-warn{background:var(--warn);box-shadow:0 0 5px var(--warn)}.status-dot-bad{background:var(--neg);box-shadow:0 0 5px var(--neg)}.status-dot-dim{background:#8497ab66}.mode-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.subscribe-form{display:flex;gap:8px;margin-bottom:12px}.subscribe-form input{flex:1;min-width:0;border-radius:10px;border:1px solid rgba(122,145,169,.24);background:#0b121ce0;color:var(--text-main);padding:7px 12px;font-size:.82rem}.subscribe-form input:focus{outline:none;border-color:#90b1d480}.solid-button,.ghost-button{border-radius:999px;padding:8px 14px;font-size:.82rem;font-weight:600;border:1px solid rgba(128,149,171,.26);transition:transform .1s ease,border-color .1s ease,background .1s ease}.solid-button{background:linear-gradient(180deg,#ffd07a,#f29b54);color:#101722}.solid-button.active{outline:2px solid rgba(255,214,142,.4)}.solid-button.active-mode{background:linear-gradient(180deg,#ffd07a,#f29b54);outline:2px solid rgba(255,214,142,.4)}.ghost-button{background:#0f1825b3;color:var(--text-main)}.ghost-button.kill-arm{background:#7f181866;border-color:#da575761;color:#ffb0b0}.ghost-button.kill-arm.active{background:#c81e1e8c;border-color:#ff505080;color:#fff}.ghost-button.close-position-button,.ghost-button.cancel-order-button{background:#7f181857;border-color:#da575761;color:#ffb0b0;padding-inline:12px}.solid-button:hover,.ghost-button:hover{transform:translateY(-1px)}.solid-button:disabled,.ghost-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.mode-toggle-group{display:flex;gap:0;border:1px solid rgba(128,149,171,.26);border-radius:999px;overflow:hidden;margin-top:14px}.mode-toggle-group button{border-radius:0;border:none;border-right:1px solid rgba(128,149,171,.26);padding:7px 14px;font-size:.8rem;font-weight:600;background:#0f1825b3;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;transition:background .1s ease,color .1s ease;cursor:pointer}.mode-toggle-group button:last-child{border-right:none}.mode-toggle-group button.active-mode-disabled{background:#7d8c9e47;color:var(--text-mid)}.mode-toggle-group button.active-mode-paper{background:#6d9de040;color:#8fc4ff}.mode-toggle-group button.active-mode-live{background:#f55c5c40;color:#ff8e8e}.mode-toggle-group button:disabled{opacity:.5;cursor:not-allowed}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:.83rem;white-space:nowrap}th{color:var(--text-dim);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;padding-top:6px;padding-bottom:6px}tr:last-child td{border-bottom:none}td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,SFMono-Regular,monospace;padding-right:12px}th.num{text-align:right;padding-right:12px}.order-status-badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:.7rem;letter-spacing:.04em;font-weight:700;text-transform:uppercase;white-space:nowrap}.order-status-active{background:#6d9de026;color:#8fc4ff}.order-status-partial{background:#ffbc612e;color:var(--warn)}.order-status-filled{background:#45c47a29;color:var(--pos)}.order-status-cancelled{background:#b88aff29;color:#ccb4ff}.order-status-rejected{background:#f55c5c24;color:var(--neg)}.order-status-unknown{background:#7d8c9e33;color:var(--text-mid)}.attempt-outcome-badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:.7rem;letter-spacing:.04em;font-weight:700;text-transform:uppercase;white-space:nowrap}.attempt-outcome-succeeded{background:#45c47a29;color:var(--pos)}.attempt-outcome-failed{background:#f55c5c24;color:var(--neg)}.attempt-outcome-rate-limited{background:#ffbc612e;color:var(--warn)}.attempt-outcome-disabled{background:#7d8c9e33;color:var(--text-mid)}.mono{font-family:IBM Plex Mono,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}.login-audit-stats{margin-bottom:12px}.login-alert-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.login-ip-card{border-radius:12px;background:var(--surface-lo);border:1px solid var(--warn-bd);padding:12px}.login-ip-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.login-ip-card-body{display:grid;gap:6px;color:var(--text-mid);font-size:.82rem}.login-user-agent{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-row-buy td:first-child{border-left:3px solid rgba(52,199,89,.5)}.order-row-sell td:first-child{border-left:3px solid rgba(255,69,58,.5)}.order-side-buy{color:#4ecb71;font-weight:600}.order-side-sell{color:#ff6057;font-weight:600}.bracket-group-start td{border-top:2px solid rgba(144,177,212,.22)}.bracket-row-entry td{background:#4678c80f}.bracket-row-tp td{background:#32b4640d}.bracket-row-sl td{background:#c83c320d}.bracket-row-tp td:first-child,.bracket-row-sl td:first-child{border-left:3px solid transparent;position:relative}.bracket-row-tp td:first-child:before,.bracket-row-sl td:first-child:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#90b1d440}.bracket-role-badge{display:inline-block;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700;letter-spacing:.06em;font-family:IBM Plex Mono,SFMono-Regular,monospace;white-space:nowrap}.bracket-role-entry{background:#508cdc2e;color:#8ec5ff}.bracket-role-tp{background:#32c86e2e;color:#5de69a}.bracket-role-sl{background:#dc3c322e;color:#ff8a8a}.signal-list,.event-list{display:grid;gap:8px}.signal-card,.event-row{border-radius:12px;background:var(--surface-lo);border:1px solid var(--border);padding:10px 12px}.signal-head,.signal-body,.event-meta{display:flex;justify-content:space-between;gap:10px}.signal-head{margin-bottom:6px;align-items:center}.signal-body{color:var(--text-dim);font-size:.82rem}.signal-card p{margin:8px 0 0;color:#dce5ef;font-size:.85rem;line-height:1.4}.signal-tag,.status-chip{border-radius:999px;padding:3px 9px;text-transform:uppercase;font-size:.68rem;letter-spacing:.08em;font-weight:700;white-space:nowrap}.signal-buy,.status-live{background:#45c47a29;color:var(--pos)}.signal-sell,.status-error,.status-disconnected{background:#f55c5c24;color:var(--neg)}.signal-hold,.status-connecting{background:#6d9de026;color:var(--info)}.reconciliation-ok,.websocket-authenticated{background:#45c47a29;color:var(--pos)}.websocket-connected,.websocket-connecting,.websocket-reconnecting{background:#dfb04929;color:var(--warn)}.websocket-disabled,.websocket-stopped{background:#6d9de026;color:var(--info)}.websocket-error,.reconciliation-mismatch{background:#f55c5c24;color:var(--neg)}.reconciliation-unknown{background:#6d9de026;color:var(--info)}.event-type{font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.8rem;color:var(--warn)}.event-meta{align-items:baseline;gap:12px}.event-meta>span:last-child{font-size:.75rem;color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.event-summary{margin:6px 0 0;color:var(--text-dim);font-size:.8rem;line-height:1.4;font-family:IBM Plex Mono,SFMono-Regular,monospace}.log-viewer{padding-bottom:18px}.log-controls{display:grid;gap:12px}.log-stream-tabs{display:flex;flex-wrap:wrap;gap:6px}.log-stream-tab{border-radius:999px;border:1px solid rgba(128,149,171,.26);background:#0f1825b3;color:var(--text-mid);padding:7px 10px;font-size:.76rem;font-weight:700;white-space:nowrap}.log-stream-tab.active{background:#6d9de03d;border-color:#8dbfff6b;color:#a8d2ff}.log-filter-row{display:grid;grid-template-columns:minmax(90px,120px) minmax(90px,120px) minmax(220px,1fr) auto auto;gap:10px;align-items:end}.log-filter-row label{display:grid;gap:5px;color:var(--text-dim);font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.log-filter-row select,.log-filter-row input{min-width:0;border-radius:10px;border:1px solid rgba(122,145,169,.24);background:#0b121ce0;color:var(--text-main);padding:8px 10px;font-size:.82rem;text-transform:none;letter-spacing:0}.log-file-meta{display:flex;justify-content:space-between;gap:12px;margin:12px 0;color:var(--text-dim);font-size:.78rem;font-family:IBM Plex Mono,SFMono-Regular,monospace}.log-table-wrap{overflow:auto;max-height:calc(100vh - 320px);min-height:360px;border:1px solid var(--border);border-radius:12px}.log-table th{position:sticky;top:0;z-index:1;background:#0b1521}.log-event-cell{color:var(--warn);max-width:280px;overflow:hidden;text-overflow:ellipsis}.log-data-cell{min-width:440px;white-space:normal}.log-data-cell pre{margin:0;max-width:760px;white-space:pre-wrap;word-break:break-word;color:var(--text-mid);font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.76rem;line-height:1.35}.log-level-badge{display:inline-block;min-width:48px;border-radius:999px;padding:3px 8px;text-align:center;font-size:.68rem;letter-spacing:.06em;font-weight:800;text-transform:uppercase;background:#7d8c9e33;color:var(--text-mid)}.log-level-debug{background:#7d8c9e33;color:var(--text-mid)}.log-level-info{background:#6d9de026;color:var(--info)}.log-level-warn{background:#ffbc612e;color:var(--warn)}.log-level-error{background:#f55c5c24;color:var(--neg)}.reconciliation-alert{margin-top:12px;padding:10px 14px;border-radius:12px;background:var(--danger-bg);border:1px solid var(--danger-bd)}.reconciliation-alert strong{display:block;margin-bottom:6px;font-size:.82rem;color:#ffd4d4}.reconciliation-list{margin:0;padding-left:18px;color:#ffb0b0;font-size:.83rem}.info-block{margin-top:12px;padding:10px 14px;border-radius:12px;background:#6d9de014;border:1px solid rgba(109,157,224,.18)}.info-block strong{display:block;margin-bottom:6px;font-size:.8rem;color:var(--text-mid)}.info-block ul{margin:0;padding-left:18px;color:var(--text-dim);font-size:.82rem}.scanner-stale-bars{margin-top:8px}.scanner-stale-bars table{font-size:.82rem}.rejection-reasons-block{padding:10px 14px}.rejection-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.rejection-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:4px 10px 4px 12px;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}.rejection-badge-error{background:#f55c5c24;color:var(--neg);border:1px solid rgba(245,92,92,.25)}.rejection-badge-warn{background:#ffbc6124;color:var(--warn);border:1px solid rgba(255,188,97,.25)}.rejection-badge-filter{background:#6d9de01f;color:#8fc4ff;border:1px solid rgba(109,157,224,.22)}.rejection-badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;font-size:.7rem;font-weight:700;background:#ffffff1f}.rejection-symbols-block{margin-top:8px}.rejection-symbols-table{font-size:.82rem;width:100%}.rejection-symbols-table td .rejection-badge{padding:2px 8px 2px 10px;font-size:.7rem}.alert{padding:10px 14px;border-radius:12px;margin-bottom:12px;font-size:.85rem}.alert.error{background:#7f181852;border:1px solid rgba(218,87,87,.3);color:#ffc0c0}.alert.info{background:#17395c52;border:1px solid rgba(104,163,239,.24);color:#b8d6f5}.alert-banner{border-radius:12px;padding:10px 18px;margin-bottom:8px;font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:10px}.alert-banner:before{content:"▲";font-size:.7rem;opacity:.7;flex-shrink:0}.alert-banner.warning{background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--warn)}.alert-banner.danger{background:var(--danger-bg);border:1px solid var(--danger-bd);color:#ffb0b0}.kill-switch-banner{background:#c81e1ed1;border:1px solid rgba(255,80,80,.5);border-radius:12px;padding:12px 20px;margin-bottom:12px;color:#fff;font-weight:700;font-size:.92rem;letter-spacing:.08em;text-align:center;text-transform:uppercase}.stream-warning-banner{background:var(--warn-bg);border:1px solid var(--warn-bd);border-radius:12px;padding:10px 18px;margin-bottom:12px;color:var(--warn);font-weight:600;font-size:.85rem;text-align:center}.positive{color:var(--pos)}.negative{color:var(--neg)}.risk-blocked{color:var(--neg);font-size:.83rem;margin-top:8px}.empty{color:var(--text-dim);text-align:center;padding:20px 10px;font-size:.83rem;font-style:italic}.mode-badge{border-radius:999px;padding:4px 12px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mode-badge-live{background:#f55c5c2e;color:var(--neg);border:1px solid rgba(245,92,92,.3)}.mode-badge-paper{background:#6d9de026;color:var(--info);border:1px solid rgba(109,157,224,.3)}.mode-badge-disabled{background:#7d8c9e33;color:var(--text-mid);border:1px solid rgba(125,140,158,.3)}.daily-loss-bar-wrap{margin-top:12px}.daily-loss-bar-labels{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-dim);margin-bottom:5px}.daily-loss-bar-track{height:6px;border-radius:999px;background:#ffffff14;overflow:hidden}.daily-loss-bar-fill{height:100%;border-radius:999px;background:var(--pos);transition:width .4s ease}.daily-loss-bar-fill.warning{background:var(--warn)}.daily-loss-bar-fill.danger{background:var(--neg)}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.analytics-grid article{background:#060a1080;border:1px solid var(--border);border-radius:12px;padding:14px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.stats-grid div{display:flex;flex-direction:column;gap:3px}.stats-grid label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:.95rem;font-weight:600;color:var(--text-main);font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,SFMono-Regular,monospace}.stat-value.positive{color:var(--pos)}.stat-value.negative{color:var(--neg)}.symbol-list,.strategy-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.symbol-row,.strategy-row{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:#ffffff05;border-radius:6px;font-size:.82rem}.strategy-id{font-family:IBM Plex Mono,monospace;font-size:.75rem;color:var(--text-dim)}.signal-card-blocked{opacity:.7;border-color:#f55c5c33}.signal-blocked-tag{background:#f55c5c24;color:var(--neg)}.blocked-signals-heading{margin:16px 0 8px;font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.trace-checks{margin-top:6px;display:grid;gap:3px}.trace-check{display:flex;align-items:flex-start;gap:5px;font-size:.77rem;line-height:1.4}.trace-check-pass{color:#6ee7a0}.trace-check-fail{color:var(--neg)}.trace-check-icon{flex-shrink:0;font-size:.72rem;margin-top:1px}.scanner-stats-strip{display:flex;flex-wrap:wrap;gap:0;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.scanner-stat{display:flex;flex-direction:column;gap:2px;padding:8px 14px;border-right:1px solid var(--border);flex:1;min-width:80px}.scanner-stat:last-child{border-right:none}.scanner-stat-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.scanner-stat-value{font-size:.9rem;font-weight:600;font-family:IBM Plex Mono,monospace;font-variant-numeric:tabular-nums;color:var(--text-main)}.stack-form{display:grid;gap:12px}.stack-form label{display:grid;gap:6px;color:var(--text-mid);font-size:.9rem}.stack-form input,.stack-form select{border-radius:10px;border:1px solid rgba(122,145,169,.24);background:#0b121ce0;color:#eef4fb;padding:9px 12px}@media (max-width: 1100px){.top-grid,.data-grid{grid-template-columns:1fr}.hero{flex-direction:column;align-items:flex-start}.analytics-grid{grid-template-columns:1fr}.scanner-stats-strip{flex-wrap:wrap}.scanner-stat{min-width:50%;border-right:none;border-bottom:1px solid var(--border)}.scanner-stat:last-child{border-bottom:none}.log-filter-row{grid-template-columns:1fr 1fr}.log-search-label{grid-column:1 / -1}.log-file-meta{flex-direction:column}.log-data-cell{min-width:320px}}
