@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color:#dbe8ef;font-synthesis:none;text-rendering:optimizelegibility;background:#090d14;font-family:Space Grotesk,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#090d14;min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.gate-shell{background:radial-gradient(circle at 50% -10%,#173244 0,#0b111a 42%,#090d14 72%);place-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.gate-grid{opacity:.2;background-image:linear-gradient(#1a3443 1px,#0000 1px),linear-gradient(90deg,#1a3443 1px,#0000 1px);background-size:54px 54px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.gate-card{background:#0b121be0;border:1px solid #263b4b;width:min(438px,100% - 32px);padding:36px;position:relative;box-shadow:0 24px 90px #0006,inset 0 1px #ffffff0a}.brand-mark{color:#53d8ff;letter-spacing:.14em;align-items:center;gap:9px;font:600 12px IBM Plex Mono,monospace;display:flex}.gate-icon{color:#53d8ff;background:#0d2531;border:1px solid #2b596d;place-items:center;width:58px;height:58px;margin:58px 0 20px;display:grid;box-shadow:0 0 34px #35d0ff29}.eyebrow{color:#6f8295;letter-spacing:.16em;margin:0 0 9px;font:600 10px IBM Plex Mono,monospace}h1,h2,p{margin-top:0}.gate-card h1{letter-spacing:-.02em;margin-bottom:9px;font-size:29px}.gate-copy{color:#8da2b2;margin-bottom:34px;font-size:13px}.gate-form label{color:#a8bdc9;margin-bottom:8px;font-size:12px;display:block}.gate-form input{color:#e8f7fc;background:#0a121b;border:1px solid #2a4052;outline:none;width:100%;padding:13px 14px;transition:border-color .2s}.gate-form input:focus{border-color:#53d8ff;box-shadow:0 0 0 3px #35d0ff1a}.primary-button{color:#051118;background:#35bfe7;border:1px solid #53d8ff;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:14px;padding:13px 16px;font-weight:700;display:flex}.primary-button:hover{background:#68ddff}.primary-button:disabled{cursor:wait;opacity:.7}.form-error{color:#ff887b;margin:12px 0 0;font-size:12px}.gate-footer{color:#718797;border-top:1px solid #1e2e3b;justify-content:space-between;gap:12px;margin-top:32px;padding-top:18px;font:10px IBM Plex Mono,monospace;display:flex}.gate-footer span{align-items:center;gap:6px;display:flex}.app-shell{background:#090d14;min-height:100vh;display:flex}.sidebar{background:#0b121b;border-right:1px solid #1a2b38;flex-direction:column;flex:0 0 232px;width:232px;min-height:100vh;padding:24px 15px 16px;display:flex}.sidebar-brand{align-items:center;gap:11px;padding:0 10px 28px;display:flex}.sidebar-brand strong{color:#e2f4f9;letter-spacing:.1em;font:600 12px IBM Plex Mono,monospace;display:block}.sidebar-brand span{color:#60788a;letter-spacing:.16em;margin-top:4px;font:9px IBM Plex Mono,monospace;display:block}.brand-mark.compact{background:#0e2734;border:1px solid #31586b;place-items:center;width:30px;height:30px;display:grid}nav{gap:5px;display:grid}.nav-item{color:#7790a1;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:11px;padding:11px 12px;font-size:13px;text-decoration:none;display:flex}.nav-item.active,.nav-item:hover{color:#d7f2f8;background:#102430;border-color:#234759}.nav-item.active{box-shadow:inset 2px 0 #42d1f8}.nav-count{text-align:center;color:#61dcff;background:#123342;min-width:20px;margin-left:auto;padding:2px 5px;font:10px IBM Plex Mono,monospace}.sidebar-bottom{margin-top:auto}.connection-card{background:#0c1721;border:1px solid #213543;padding:13px 12px}.connection-title{color:#76e5b1;align-items:center;gap:7px;margin-bottom:13px;font:11px IBM Plex Mono,monospace;display:flex}.live-dot{background:#52e5a0;border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 10px #52e5a0cc}.connection-row{color:#668091;justify-content:space-between;gap:8px;margin-top:8px;font-size:10px;display:flex}.connection-row b{color:#b6ccd7;font:10px IBM Plex Mono,monospace}.logout-button{color:#718898;background:0 0;border:1px solid #0000;align-items:center;gap:8px;width:100%;margin-top:13px;padding:10px 12px;font-size:12px;display:flex}.logout-button:hover{color:#d6e7ed;background:#0f1a24;border-color:#263c4b}.main-content{width:min(100%,1460px);padding:28px 34px 18px}.topbar{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px;display:flex}.topbar h1{letter-spacing:-.03em;margin:0;font-size:25px}.topbar-actions{align-items:center;gap:18px;display:flex}.mode-switch{background:#0c1822;border:1px solid #263d4c;padding:3px;display:inline-flex}.mode-switch button{color:#6e8797;background:0 0;border:0;padding:6px 9px;font-size:11px}.mode-switch button.active{color:#74e7b2;background:#123128}.mode-switch button.active.live{color:#ff9b88;background:#442126}.mode-switch button:hover{color:#d7edf3}.topbar-time{color:#7890a0;align-items:center;gap:6px;font:11px IBM Plex Mono,monospace;display:flex}.icon-button{color:#8ea9b7;background:#0d1721;border:1px solid #293f4d;place-items:center;width:33px;height:33px;display:grid}.icon-button:hover{color:#59dcff;border-color:#3f7185}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.operator{align-items:center;gap:9px;display:flex}.operator-avatar{color:#071118;background:#67e2ff;place-items:center;width:28px;height:28px;font:600 10px IBM Plex Mono,monospace;display:grid}.operator b,.operator small{display:block}.operator b{color:#c8d9e1;font-size:12px}.operator small{color:#667e8e;margin-top:2px;font-size:10px}.scope-banner{background:linear-gradient(90deg,#102631,#0e1a23);border:1px solid #285063;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:12px 15px;display:flex}.scope-main{color:#58dfff;align-items:center;gap:11px;display:flex}.scope-main b,.scope-main span{display:block}.scope-main b{color:#d4edf3;font-size:12px}.scope-main span{color:#7899aa;margin-top:4px;font-size:11px}.mode-pill,.health-badge{color:#7de8b9;white-space:nowrap;background:#102720;border:1px solid #2b5a50;align-items:center;gap:7px;padding:6px 9px;font:10px IBM Plex Mono,monospace;display:inline-flex}.mode-pill.live{color:#ff9c89;background:#321b20;border-color:#754047}.mode-pill.live .live-dot{background:#ff917f;box-shadow:0 0 10px #ff917fb3}.mode-error{color:#ff9c8c;background:#321d22;border:1px solid #714047;align-items:center;gap:7px;margin:-7px 0 14px;padding:9px 12px;font-size:11px;display:flex}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.stat-card{background:#0d1721;border:1px solid #1e3442;min-height:128px;padding:15px 16px}.stat-card.cyan{border-top:2px solid #39c8ed}.stat-card.green{border-top:2px solid #48d29a}.stat-card.violet{border-top:2px solid #ae9bff}.stat-card.amber{border-top:2px solid #e9b768}.stat-top{color:#7e96a6;justify-content:space-between;font:11px IBM Plex Mono,monospace;display:flex}.stat-top svg{color:#4c91a9}.stat-value{color:#e3f1f5;letter-spacing:-.04em;margin-top:17px;font:600 26px IBM Plex Mono,monospace}.stat-value small{color:#70dcb0;letter-spacing:0;margin-left:6px;font-size:12px}.green .stat-value small{color:#66dfaa}.violet .stat-value small{color:#c0b3ff}.amber .stat-value small{color:#efc77f}.stat-detail{color:#607888;margin-top:8px;font-size:10px}.dashboard-grid,.lower-grid{grid-template-columns:minmax(0,1.75fr) minmax(320px,.9fr);gap:12px;margin-bottom:12px;display:grid}.panel{background:#0c151f;border:1px solid #1c303d;scroll-margin-top:18px}.panel-header{justify-content:space-between;align-items:flex-start;gap:15px;padding:17px 18px 0;display:flex}.panel-header h2{color:#dbe9ee;letter-spacing:-.02em;margin:0;font-size:16px}.panel-meta{color:#6d8594;font:10px IBM Plex Mono,monospace}.panel-kpi{text-align:right}.panel-kpi b{color:#6ce0aa;font:600 17px IBM Plex Mono,monospace;display:block}.panel-kpi span{color:#698190;margin-top:3px;font-size:10px;display:block}.equity-panel{min-height:360px}.chart-wrap{height:255px;margin:15px 12px 0 0}.chart-legend{color:#6b8392;gap:17px;padding:0 18px 14px;font:10px IBM Plex Mono,monospace;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.legend-line{width:15px;height:2px;display:inline-block}.legend-line.cyan{background:#35d0ff}.legend-dot{background:#6b8392;border-radius:50%;width:5px;height:5px}.health-panel{min-height:360px}.health-list{padding:25px 18px 15px}.health-row{border-bottom:1px solid #192a36;grid-template-columns:28px 1fr auto auto;align-items:center;gap:9px;padding:13px 0;display:grid}.health-icon{color:#599bb2}.health-label{color:#97acb8;font-size:12px}.health-row b{color:#d0e2e8;font:11px IBM Plex Mono,monospace}.health-status{color:#6adca8;align-items:center;gap:5px;font:10px IBM Plex Mono,monospace;display:inline-flex}.health-status.ready{color:#e8bd72}.health-status.ready .live-dot{background:#e8bd72;box-shadow:0 0 8px #e8bd7280}.health-status.degraded{color:#ffbd78}.health-status.degraded .live-dot{background:#ffbd78;box-shadow:0 0 8px #ffbd7880}.health-foot{color:#6b8493;border-top:1px solid #192a36;justify-content:space-between;margin:12px 18px 17px;padding:11px 0 0;font-size:11px;display:flex}.health-foot b{color:#d4e6eb;font:11px IBM Plex Mono,monospace}.market-panel{margin-bottom:12px}.table-wrap{padding:14px 9px 8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th{color:#607888;text-align:left;padding:8px 9px;font:500 10px IBM Plex Mono,monospace}td{color:#9bb0ba;border-top:1px solid #182a35;padding:11px 9px;font:12px IBM Plex Mono,monospace}tbody tr:hover{background:#0f1e28}.symbol-cell{align-items:center;gap:9px;display:flex}.symbol-cell b,.symbol-cell small{display:block}.symbol-cell b{color:#d4e7ed;font-size:12px}.symbol-cell small{color:#66808f;margin-top:3px;font-size:9px}.symbol-chip{color:#63dafe;background:#102d3a;border:1px solid #2e5e70;place-items:center;width:27px;height:27px;font-size:10px;display:grid}.number-cell{color:#d3e7ec}.positive{color:#6fe1ac!important}.negative{color:#fa8e87!important}.funding{color:#c0afff}.status-tag{color:#6ed9a6;align-items:center;gap:6px;font-size:10px;display:inline-flex}.collapsible-panel{margin-bottom:12px;overflow:hidden}.collapsible-trigger{width:100%;color:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:15px;padding:15px 18px;display:flex}.collapsible-trigger:hover{background:#10202b}.collapsible-trigger:focus-visible{outline-offset:-2px;outline:2px solid #53d8ff}.collapsible-heading{flex-direction:column;gap:5px;min-width:0;display:flex}.collapsible-heading .eyebrow{margin:0}.collapsible-title{color:#dbe9ee;font-size:16px}.collapsible-meta{color:#6d8594;text-align:right;justify-content:flex-end;align-items:center;gap:10px;min-width:0;font:10px IBM Plex Mono,monospace;display:inline-flex}.collapsible-meta span{overflow-wrap:anywhere}.collapsible-meta svg{flex:none;transition:transform .2s}.collapsible-panel.is-open .collapsible-meta svg{transform:rotate(180deg)}.collapsible-content{border-top:1px solid #192a36}.collapsible-content .table-wrap{padding-top:12px}.candidate-panel{margin-bottom:12px}.sync-strip{color:#77909d;border-bottom:1px solid #192a36;flex-wrap:wrap;gap:14px;padding:12px 18px;font-size:10px;display:flex}.sync-strip span{align-items:center;gap:5px;display:inline-flex}.sync-strip b{color:#c7dce3;font-family:IBM Plex Mono,monospace;font-weight:500}.sync-error{color:#ff9d91;background:#291a20;align-items:center;gap:7px;padding:10px 18px;font-size:11px;display:flex}.rank-badge{color:#8be8ff;background:#0d2935;border:1px solid #24566a;justify-content:center;min-width:34px;padding:3px 6px;font:10px IBM Plex Mono,monospace;display:inline-flex}.mono{color:#c7dce3;font:11px IBM Plex Mono,monospace}.muted{color:#748b98;font-size:10px}.empty-cell,.empty-state{color:#728895;text-align:center;padding:24px;font-size:11px}.health-badge.degraded{color:#ffbd78;background:#2a2115;border-color:#6b4a27}.lower-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.position-list{padding:13px 18px 9px}.position-row{border-bottom:1px solid #192a36;grid-template-columns:minmax(170px,1.3fr) repeat(3,minmax(75px,.65fr)) minmax(0,1fr);align-items:center;gap:14px;padding:13px 0;display:grid}.position-row:last-child{border-bottom:0}.position-symbol{align-items:center;gap:9px;display:flex}.position-symbol b,.position-symbol small,.position-row small,.position-row>div>b{display:block}.position-symbol b{color:#d3e6eb;font:12px IBM Plex Mono,monospace}.position-symbol small,.position-row small{color:#6a8290;margin-top:4px;font-size:10px}.position-row>div>b{color:#c7dce3;margin-top:4px;font:11px IBM Plex Mono,monospace}.direction-icon{place-items:center;width:28px;height:28px;display:grid}.direction-icon.long{color:#6cdda9;background:#12352c}.direction-icon.short{color:#fa8d85;background:#3b2225}.rebuild-label{color:#91a4ad;white-space:nowrap;align-items:center;gap:4px;font:9px IBM Plex Mono,monospace;display:inline-flex}.rebuild-select{color:#c7dce3;background:#14232d;border:1px solid #39505e;height:22px;padding:0 5px;font:10px IBM Plex Mono,monospace}.position-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.protection-tag{color:#91a4ad;white-space:nowrap;align-items:center;gap:4px;font:9px IBM Plex Mono,monospace;display:inline-flex}.protection-tag.active{color:#e9bd72}.icon-button.danger{color:#ff9d91;background:#2d1920;border-color:#6d3d47}.icon-button.danger:hover{background:#472128}.strategy-list{padding:14px 18px 4px}.strategy-row{border-bottom:1px solid #192a36;align-items:center;gap:10px;padding:12px 0;display:flex}.strategy-icon{color:#b8a8ff;background:#211c37;border:1px solid #4b426a;place-items:center;width:31px;height:31px;display:grid}.strategy-info{flex:1}.strategy-info b,.strategy-info small{display:block}.strategy-info b{color:#d1e0e5;font-size:12px}.strategy-info small{color:#738997;margin-top:4px;font:10px IBM Plex Mono,monospace}.toggle{background:#14232d;border:1px solid #39505e;width:35px;height:20px;padding:2px}.toggle span{background:#6d8390;width:14px;height:14px;transition:transform .2s,background .2s;display:block}.toggle.on{background:#123b2d;border-color:#2c8b68}.toggle.on span{background:#65dda9;transform:translate(15px)}.template-note{color:#88a0ad;background:#171b2d;border:1px solid #2b3554;align-items:flex-start;gap:8px;margin:14px 18px 16px;padding:10px;font-size:10px;line-height:1.5;display:flex}.template-note svg{color:#b8a8ff;flex:none;margin-top:1px}.template-note code{color:#d2c7ff;font:10px IBM Plex Mono,monospace}.strategy-params{border-top:1px solid #192a36;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:8px;margin:12px 18px 0;padding-top:12px;display:grid}.strategy-params label span{color:#6d8695;margin-bottom:5px;font-size:9px;display:block}.strategy-params label div{background:#0a141d;border:1px solid #2b4150;align-items:center;display:flex}.strategy-params input{color:#d3e8ee;background:0 0;border:0;outline:none;width:100%;min-width:0;padding:7px 6px;font:11px IBM Plex Mono,monospace}.strategy-params em{color:#617d8c;padding-right:6px;font:9px IBM Plex Mono,monospace}.save-params{color:#72defc;background:#102b35;border:1px solid #315f6d;justify-content:center;align-items:center;gap:5px;height:29px;padding:0 8px;font-size:10px;display:inline-flex}.save-params:hover:not(:disabled){background:#153e4b}.save-params:disabled{cursor:not-allowed;opacity:.45}.blocklist-panel{margin-bottom:12px}.blocklist-content{padding:12px 18px 16px}.blocklist-content p{color:#718b9a;margin:0 0 12px;font-size:10px}.asset-chips{flex-wrap:wrap;gap:7px;display:flex}.asset-chip{color:#c6bdff;background:#1b1b31;border:1px solid #3b3d5c;align-items:center;gap:7px;padding:6px 8px;font:10px IBM Plex Mono,monospace;display:inline-flex}.asset-chip span{color:#8c86bc;font-size:13px;line-height:10px}.asset-chip:hover{color:#ffaaa0;border-color:#e58d8a}.blocklist-actions{gap:8px;margin-top:13px;display:flex}.blocklist-actions input{color:#d3e8ee;background:#0a141d;border:1px solid #2b4150;outline:none;flex:1;min-width:0;padding:7px 9px;font:11px IBM Plex Mono,monospace}.secondary-button{color:#9bd9e8;background:#102b35;border:1px solid #315f6d;padding:0 11px;font-size:10px}.secondary-button:hover{background:#153e4b}.events-panel{margin-bottom:11px}.event-list{padding:13px 18px 8px}.event-row{border-bottom:1px solid #192a36;align-items:center;gap:10px;padding:10px 0;display:flex}.event-row:last-child{border-bottom:0}.event-icon{place-items:center;width:24px;height:24px;display:grid}.event-icon.info{color:#54ceee;background:#11303c}.event-icon.warn{color:#efc174;background:#392d19}.event-icon.success{color:#65dba8;background:#12362b}.event-time{color:#657e8e;font:10px IBM Plex Mono,monospace}.event-text{color:#a5b9c2;font-size:11px}.app-footer{color:#526977;letter-spacing:.03em;justify-content:space-between;gap:15px;font:9px IBM Plex Mono,monospace;display:flex}.loading-shell{color:#67dafa;background:#090d14;place-content:center;justify-items:center;gap:12px;min-height:100vh;font:12px IBM Plex Mono,monospace;display:grid}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35;transform:scale(.92)}}@media (width<=1080px){.sidebar{flex-basis:190px;width:190px}.main-content{padding:24px 20px 16px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.lower-grid{grid-template-columns:1fr}}@media (width<=720px){.app-shell{display:block}.sidebar{border-bottom:1px solid #1a2b38;border-right:0;width:100%;min-height:auto;padding:13px 14px}.sidebar-brand{padding:0 4px 13px}.sidebar nav{gap:4px;display:flex;overflow-x:auto}.nav-item{flex:none;padding:8px 10px;font-size:11px}.sidebar-bottom{display:none}.main-content{padding:20px 13px 15px}.topbar{align-items:flex-start}.topbar-actions{gap:8px}.topbar-time,.operator{display:none}.topbar h1{font-size:22px}.scope-banner{align-items:flex-start}.scope-main span{line-height:1.45}.stat-grid{gap:8px}.stat-card{min-height:116px;padding:12px}.stat-value{font-size:20px}.panel-header{padding:14px 13px 0}.collapsible-trigger{align-items:flex-start;padding:13px}.collapsible-meta{max-width:48%;line-height:1.45}.position-row{grid-template-columns:1fr 1fr;gap:10px}.position-row>div:nth-child(3),.position-row>div:nth-child(4){text-align:right}.position-actions{grid-column:1/-1;justify-content:flex-start;gap:7px;padding-top:3px}.app-footer{flex-direction:column;gap:6px}.gate-card{padding:28px 23px}.gate-footer{flex-direction:column}.chart-wrap{height:220px}.mode-switch button{padding:6px 7px;font-size:10px}.strategy-params{grid-template-columns:1fr 1fr}.strategy-params label:last-of-type{grid-column:1/-1}.save-params{grid-column:1/-1;width:100%}.blocklist-actions{flex-wrap:wrap}.blocklist-actions input{flex-basis:100%}.secondary-button,.blocklist-actions .save-params{flex:1}}
