:root{--font-ui:"Public Sans", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:Literata, "Iowan Old Style", Georgia, "Times New Roman", serif;--font-mono:"IBM Plex Mono", "Cascadia Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;--radius-s:4px;--radius-m:8px;--radius-l:12px;--shadow-1:0 1px 2px #00000040;--shadow-2:0 6px 24px #00000059;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--topbar-h:48px;--statusbar-h:26px;--rail-w:232px;--rail-w-collapsed:56px;--dur:.14s;--bg:#0b1014;--bg-elev:#111820;--bg-elev-2:#182129;--bg-inset:#070b0e;--border:#223039;--border-strong:#2f4350;--text:#e6edf1;--text-muted:#9fb1bd;--text-faint:#6b7d89;--accent:#2dd4bf;--accent-strong:#14b8a6;--accent-text:#052925;--accent-soft:#2dd4bf24;--info:#60a5fa;--info-soft:#60a5fa29;--ok:#4ade80;--ok-soft:#4ade8029;--warn:#fbbf24;--warn-soft:#fbbf2429;--danger:#f87171;--danger-soft:#f8717129;--buy:#4ade80;--sell:#f87171;--focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--selection:#2dd4bf4d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f7f8;--bg-elev:#fff;--bg-elev-2:#eef2f4;--bg-inset:#e9eef1;--border:#d8e0e5;--border-strong:#b9c6ce;--text:#12202a;--text-muted:#4b5f6b;--text-faint:#7f929d;--accent:#0f766e;--accent-strong:#0d5f59;--accent-text:#fff;--accent-soft:#0f766e1f;--info:#1d4ed8;--info-soft:#1d4ed81f;--ok:#15803d;--ok-soft:#15803d1f;--warn:#b45309;--warn-soft:#b4530924;--danger:#b91c1c;--danger-soft:#b91c1c1f;--buy:#15803d;--sell:#b91c1c;--shadow-1:0 1px 2px #10202814;--shadow-2:0 6px 24px #1020281f;--selection:#0f766e33;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#f5f7f8;--bg-elev:#fff;--bg-elev-2:#eef2f4;--bg-inset:#e9eef1;--border:#d8e0e5;--border-strong:#b9c6ce;--text:#12202a;--text-muted:#4b5f6b;--text-faint:#7f929d;--accent:#0f766e;--accent-strong:#0d5f59;--accent-text:#fff;--accent-soft:#0f766e1f;--info:#1d4ed8;--info-soft:#1d4ed81f;--ok:#15803d;--ok-soft:#15803d1f;--warn:#b45309;--warn-soft:#b4530924;--danger:#b91c1c;--danger-soft:#b91c1c1f;--buy:#15803d;--sell:#b91c1c;--shadow-1:0 1px 2px #10202814;--shadow-2:0 6px 24px #1020281f;--selection:#0f766e33;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}::selection{background:var(--selection)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-family:var(--font-display);font-size:24px;font-weight:500}h2{font-size:16px}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:13px}code,.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num{text-align:right}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:12px}.danger-text{color:var(--danger)}.ok-text{color:var(--ok)}:focus-visible{box-shadow:var(--focus);border-radius:var(--radius-s);outline:none}.shell{grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h);grid-template-columns:var(--rail-w) 1fr;height:100%;transition:grid-template-columns var(--dur) ease;grid-template-areas:"top top""rail main""status status";display:grid}.shell.rail-collapsed{grid-template-columns:var(--rail-w-collapsed) 1fr}.topbar{align-items:center;gap:var(--space-3);padding:0 var(--space-3) 0 var(--space-2);background:var(--bg-elev);border-bottom:1px solid var(--border);grid-area:top;display:flex}.brand{padding:0 var(--space-2);color:var(--text);font-family:var(--font-display);letter-spacing:.01em;align-items:center;gap:10px;font-size:17px;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:var(--accent-strong);border-radius:7px;place-items:center;width:26px;height:26px;display:grid}.brand-mark svg{width:18px;height:18px}.topbar-spacer{flex:1}.topbar .search{width:min(420px,34vw)}.rail{background:var(--bg-elev);border-right:1px solid var(--border);padding:var(--space-2) 0;flex-direction:column;grid-area:rail;display:flex;overflow:hidden auto}.rail-group{padding:var(--space-2) var(--space-2) var(--space-1)}.rail-group h3{white-space:nowrap;padding:6px 10px 4px;font-size:11px;overflow:hidden}.rail-collapsed .rail-group h3{visibility:hidden;height:8px;padding:0}.rail-item{border-radius:var(--radius-m);color:var(--text-muted);white-space:nowrap;border:1px solid #0000;align-items:center;gap:10px;margin:1px 0;padding:7px 10px;display:flex;overflow:hidden}.rail-item:hover{background:var(--bg-elev-2);color:var(--text);text-decoration:none}.rail-item.active{background:var(--accent-soft);color:var(--text);border-color:#0000}.rail-item.soon{color:var(--text-faint);cursor:default}.rail-item .icon{flex:0 0 18px;place-items:center;width:18px;height:18px;display:grid}.rail-item .icon svg{width:18px;height:18px}.rail-item .label{text-overflow:ellipsis;flex:1;overflow:hidden}.rail-collapsed .rail-item .label,.rail-collapsed .rail-item .badge{display:none}.rail-collapsed .rail-item{justify-content:center;padding:8px 0}.rail-foot{padding:var(--space-2);margin-top:auto}.main{padding:var(--space-5) var(--space-6);grid-area:main;min-width:0;overflow:auto}.main.tight{padding:var(--space-4)}.statusbar{align-items:center;gap:var(--space-4);padding:0 var(--space-4);color:var(--text-muted);background:var(--bg-elev);border-top:1px solid var(--border);white-space:nowrap;grid-area:status;font-size:12px;display:flex;overflow:hidden}.statusbar .spacer{flex:1}.dot{background:var(--text-faint);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--danger)}.dot.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-head .sub{color:var(--text-muted);margin-top:4px}.actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1)}.panel-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.panel-head h2{flex:1}.panel-body{padding:var(--space-4)}.panel.collapsed .panel-body{display:none}.chev{transition:transform var(--dur);display:inline-block}.panel.collapsed .chev{transform:rotate(-90deg)}.grid-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--space-4);gap:var(--space-2);color:inherit;flex-direction:column;min-height:118px;display:flex}a.card:hover{border-color:var(--border-strong);background:var(--bg-elev-2);text-decoration:none}.card .kpi{font-family:var(--font-mono);font-size:26px;font-weight:500;line-height:1.1}.card .title{font-weight:600}.btn{appearance:none;border-radius:var(--radius-m);border:1px solid var(--border-strong);background:var(--bg-elev-2);height:32px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;transition:background var(--dur), border-color var(--dur), opacity var(--dur);justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--text-faint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn.danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn.danger:hover{background:var(--danger-soft)}.btn.ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-elev-2);color:var(--text)}.btn.sm{height:26px;padding:0 8px;font-size:12px}.btn.icon-only{width:32px;padding:0}.btn.icon-only.sm{width:26px}.btn svg{width:16px;height:16px}input,select,textarea{font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:var(--radius-m);min-width:0;height:32px;padding:0 10px}input[type=number],input.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}textarea{resize:vertical;height:auto;font-family:var(--font-mono);padding:8px 10px;font-size:12px;line-height:1.5}input:disabled,select:disabled{opacity:.55}input.invalid,select.invalid{border-color:var(--danger)}input[type=checkbox]{width:16px;height:auto;accent-color:var(--accent)}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.field .hint{color:var(--text-faint);font-size:11px}.field .help{cursor:help;color:var(--text-faint);border:1px solid var(--border-strong);border-radius:50%;place-items:center;width:14px;height:14px;font-size:9px;line-height:1;display:inline-grid}.form-grid{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fill,minmax(176px,1fr));display:grid}.form-grid.narrow{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.field>.segmented{width:100%}.field>.segmented button{text-overflow:ellipsis;flex:1 1 0;min-width:0;padding:0 6px;overflow:hidden}.field.fixed>.segmented{width:auto}.field.fixed>.segmented button{flex:none;padding:0 10px}.form-row{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.form-row>*{flex:140px}.form-row>.fixed{flex:none}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius-m);background:var(--bg-inset);height:32px;display:inline-flex;overflow:hidden}.segmented button{appearance:none;color:var(--text-muted);font:inherit;cursor:pointer;border:0;border-right:1px solid var(--border);white-space:nowrap;background:0 0;padding:0 10px}.segmented button:last-child{border-right:0}.segmented button.on{background:var(--accent-soft);color:var(--text);font-weight:600}.segmented button:disabled{opacity:.5;cursor:not-allowed}.segmented.sm{height:26px}.segmented.sm button{padding:0 8px;font-size:12px}.segmented button.on.buy{background:var(--ok-soft);color:var(--buy)}.segmented button.on.sell{background:var(--danger-soft);color:var(--sell)}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.switch .track{background:var(--border-strong);width:32px;height:18px;transition:background var(--dur);border-radius:9px;flex:none;position:relative}.switch .track:after{content:"";width:14px;height:14px;transition:left var(--dur);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch.on .track{background:var(--accent)}.switch.on .track:after{left:16px}.badge{background:var(--bg-elev-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.badge.info{background:var(--info-soft);color:var(--info);border-color:#0000}.badge.buy{background:var(--ok-soft);color:var(--buy);border-color:#0000}.badge.sell{background:var(--danger-soft);color:var(--sell);border-color:#0000}.chip{cursor:pointer}.chip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.callout{border-radius:var(--radius-m);padding:var(--space-3) var(--space-4);border:1px solid var(--border);background:var(--bg-elev-2);gap:var(--space-3);align-items:flex-start;display:flex}.callout.info{border-color:var(--info);background:var(--info-soft)}.callout.warn{border-color:var(--warn);background:var(--warn-soft)}.callout.danger{border-color:var(--danger);background:var(--danger-soft)}.callout.ok{border-color:var(--ok);background:var(--ok-soft)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-l);background:var(--bg-elev);overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;vertical-align:middle;padding:8px 12px}table.data th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg-elev-2);font-size:11px;font-weight:600;position:sticky;top:0}table.data tbody tr:hover{background:var(--bg-elev-2)}table.data tr.clickable{cursor:pointer}table.data td.num,table.data th.num{text-align:right}table.data .row-actions{opacity:.35;justify-content:flex-end;gap:4px;display:flex}table.data tr:hover .row-actions{opacity:1}.table-foot{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--text-muted);border-top:1px solid var(--border);font-size:12px;display:flex}.table-foot .spacer{flex:1}.empty{padding:var(--space-6);text-align:center;color:var(--text-muted)}.toolbar{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.toolbar .spacer{flex:1}.chips{flex-wrap:wrap;gap:6px;display:flex}.designer{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.designer-head{top:calc(-1 * var(--space-5));z-index:5;margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-6)) var(--space-4);padding:var(--space-3) var(--space-6);background:var(--bg);border-bottom:1px solid var(--border);position:sticky}.designer-head .page-head{margin-bottom:0}@media (max-width:1100px){.designer{grid-template-columns:1fr}}.designer-main{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.designer-side{gap:var(--space-4);flex-direction:column;display:flex;position:sticky;top:0}.leg-card{border:1px solid var(--border);border-radius:var(--radius-l);background:var(--bg-elev-2);margin-bottom:var(--space-3)}.leg-card.buy{border-left:3px solid var(--buy)}.leg-card.sell{border-left:3px solid var(--sell)}.leg-card.invalid{border-color:var(--danger)}.leg-head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);cursor:pointer;display:flex}.leg-head .summary{flex-wrap:wrap;flex:1;align-items:center;gap:6px;font-size:13px;display:flex}.leg-body{padding:var(--space-3);gap:var(--space-4);flex-direction:column;display:flex}.leg-card.collapsed .leg-body{display:none}.subframe{border:1px dashed var(--border);border-radius:var(--radius-m);padding:var(--space-3)}.subframe-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.subframe-head h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);flex:1;font-size:12px}.subframe.off{opacity:.75}.subframe.off .subframe-body{display:none}.issues{flex-direction:column;gap:6px;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.issues li{grid-template-columns:8px 1fr;align-items:start;gap:8px;font-size:12px;display:grid}.issues .sev{background:var(--text-faint);border-radius:50%;width:8px;height:8px;margin-top:5px}.issues .sev.Error{background:var(--danger)}.issues .sev.Warning{background:var(--warn)}.issues .sev.Info{background:var(--info)}.issues .path{color:var(--text-faint);font-family:var(--font-mono);font-size:11px}pre.json{padding:var(--space-3);background:var(--bg-inset);border-radius:var(--radius-m);font-family:var(--font-mono);white-space:pre;max-height:50vh;margin:0;font-size:11.5px;line-height:1.5;overflow:auto}.toasts{right:var(--space-4);bottom:calc(var(--statusbar-h) + var(--space-3));z-index:50;flex-direction:column;gap:8px;display:flex;position:fixed}.toast{background:var(--bg-elev);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius-m);box-shadow:var(--shadow-2);min-width:260px;max-width:420px;padding:10px 14px;font-size:13px}.toast.error{border-left-color:var(--danger)}.toast.ok{border-left-color:var(--ok)}.modal-backdrop{z-index:40;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius-l);width:min(720px,92vw);max-height:86vh;box-shadow:var(--shadow-2);overflow:auto}.modal-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);align-items:center;display:flex}.modal-head h2{flex:1}.modal-body{padding:var(--space-4)}.modal-foot{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);display:flex}.signin{background:radial-gradient(1200px 600px at 20% -10%, var(--accent-soft), transparent 60%), var(--bg);min-height:100%;padding:var(--space-5);place-items:center;display:grid}.signin .panel{width:min(400px,100%)}.signin .panel-body{gap:var(--space-3);flex-direction:column;display:flex}.kv{grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13px;display:grid}.kv dt{color:var(--text-muted)}.kv dd{margin:0}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius-m);padding:var(--space-4);text-align:center;color:var(--text-muted);cursor:pointer}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.split{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:900px){.split{grid-template-columns:1fr}}.list-plain{margin:0;padding:0;list-style:none}.list-plain li{border-bottom:1px solid var(--border);gap:var(--space-3);align-items:center;padding:8px 0;display:flex}.list-plain li:last-child{border-bottom:0}kbd{font-family:var(--font-mono);border:1px solid var(--border-strong);background:var(--bg-inset);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:11px}.spt-summary{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.tile{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-m);padding:var(--space-3) var(--space-4)}.tile-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.tile-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.tile.ok .tile-value{color:var(--ok)}.tile.danger .tile-value{color:var(--danger)}.spt-filter{margin:var(--space-4) 0 var(--space-2)}.btn.sm.active{background:var(--accent-soft);border-color:var(--accent)}.spt-cases{gap:var(--space-1);flex-direction:column;display:flex}.spt-case{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-m);overflow:hidden}.spt-case.failed{border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.spt-case-head{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.spt-case-head:hover{background:var(--bg-elev-2)}.spt-case-head .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.spt-case-head svg.rot{transform:rotate(90deg)}.spt-failures{padding:0 var(--space-3) var(--space-2) var(--space-6);color:var(--danger);margin:0;font-size:13px}.spt-failures code{color:var(--text-muted);margin-right:6px}.spt-detail{border-top:1px solid var(--border);padding:var(--space-3);gap:var(--space-4);flex-direction:column;display:flex;overflow-x:auto}.spt-detail caption{text-align:left;color:var(--text-muted);padding-bottom:var(--space-1);font-size:12px}.spt-detail table.data th,.spt-detail table.data td{padding:3px 8px}.spt-detail .num{text-align:right;font-variant-numeric:tabular-nums}.spt-detail .pos{color:var(--ok)}.spt-detail .neg{color:var(--danger)}.tiles{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(128px,1fr));display:grid}.strong{font-weight:600}.pnl{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.pnl.up{color:var(--ok)}.pnl.down{color:var(--danger)}.pnl.flat{color:var(--text-muted)}.worker-strip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-elev);flex-wrap:wrap;font-size:12px;display:flex}.worker-strip .worker{align-items:center;gap:6px;display:inline-flex}.worker-strip .worker.draining{opacity:.6}.seg{border:1px solid var(--border);border-radius:var(--radius-m);display:inline-flex;overflow:hidden}.seg button{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:5px 12px;font-size:12px}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent-soft);color:var(--text)}table.data td.pick,table.data th.pick{width:28px;padding-right:0}table.data tr.picked{background:var(--accent-soft)}table.data.dense th,table.data.dense td{padding:5px 10px;font-size:12px}.table-wrap.tall{max-height:420px}.callout.decision{align-items:center;gap:var(--space-3);display:flex}.callout.decision .spacer{flex:1}.kpis{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-m);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:1px;display:grid;overflow:hidden}.kpi{background:var(--bg-elev);padding:var(--space-3)}.kpi .v{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.kpi.big .v{font-size:22px}.kpi .l{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:10.5px}.risk-strip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-elev);flex-wrap:wrap;display:flex}.risk-strip .spacer{flex:1}.risk-strip .cycle-pnl{font-size:15px;font-weight:600}.gauge{align-items:center;gap:6px;font-size:11px;display:inline-flex}.gauge .g-label{color:var(--text-muted);letter-spacing:.04em;min-width:34px}.gauge .g-track{background:var(--bg-inset);border-radius:3px;width:64px;height:5px;overflow:hidden}.gauge .g-fill{background:var(--text-faint);height:100%;display:block}.gauge.ok .g-fill{background:var(--ok)}.gauge.danger .g-fill{background:var(--danger)}.gauge.warn .g-fill{background:var(--warn)}.gauge.info .g-fill{background:var(--info)}.gauge.reached .g-label{color:var(--text);font-weight:600}.gauge .g-at{color:var(--text-faint)}.risk-strip .re{color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:11px}.combo-band{align-items:center;gap:var(--space-3);padding:6px var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-m);background:var(--bg-elev);flex-wrap:wrap;display:flex}.combo-band .spacer{flex:1}.quote-rail{gap:var(--space-4);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-inset);flex-wrap:wrap;display:flex;overflow-x:auto}.quote-rail .quote{white-space:nowrap;flex-direction:column;gap:1px;display:inline-flex}.messages{max-height:320px;margin:0;padding:0;list-style:none;overflow:auto}.messages li{align-items:baseline;gap:var(--space-2);border-bottom:1px solid var(--border);padding:4px 0;font-size:12.5px;display:flex}.messages li.error{color:var(--danger)}.messages li.handled{background:var(--warn-soft)}.stop-choices{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.stop-choice{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-m);cursor:pointer;align-items:flex-start;display:flex}.stop-choice.on{border-color:var(--accent);background:var(--accent-soft)}.deploy-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.pick-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.pick-list a{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-elev);color:inherit;text-decoration:none;display:flex}.pick-list a:hover{border-color:var(--accent)}.pick-list .num{margin-left:auto}table.data tr.closed td{color:var(--text-muted)}.perf-section-title{color:var(--text-muted);text-transform:none;margin:2px 0 6px;font-size:12px;font-weight:600}table.data.perf th{white-space:nowrap}table.data.perf tr.long td,table.data.perf tr.short td{color:inherit}table.data.perf tr.long td.mono,table.data.perf tr.long td:first-child,table.data.perf tr.long td:nth-child(2){color:var(--buy)}table.data.perf tr.short td.mono,table.data.perf tr.short td:first-child,table.data.perf tr.short td:nth-child(2){color:var(--sell)}table.data.perf tr.total td{border-top:1px solid var(--border);background:var(--bg-elev)}@media (max-width:720px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.risk-strip,.combo-band{font-size:11px}}.split:has(>.panel.narrow){grid-template-columns:minmax(240px,22rem) 1fr}@media (max-width:900px){.split:has(>.panel.narrow){grid-template-columns:1fr}}.stack{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.grid.two{gap:var(--space-3) var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:720px){.grid.two{grid-template-columns:1fr}}ul.list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}ul.list>li>.row{align-items:center;gap:var(--space-2);border-radius:var(--radius-m);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;padding:8px 10px;display:flex}ul.list>li>.row:hover{background:var(--bg-elev-2)}ul.list>li.on>.row{background:var(--bg-elev-2);border-color:var(--accent)}ul.list .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}ul.list .grow strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}ul.list .faint{font-size:12px}.bar{background:var(--bg-elev-2);border-radius:3px;height:6px;overflow:hidden}.bar>span{background:var(--accent);height:100%;transition:width .2s linear;display:block}svg.equity{width:100%;height:120px;margin:var(--space-3) 0;display:block}svg.equity .line{fill:none;stroke-width:1.5px;vector-effect:non-scaling-stroke}svg.equity .line.up{stroke:var(--ok)}svg.equity .line.down{stroke:var(--danger)}svg.equity .area{stroke:none;opacity:.12}svg.equity .area.up{fill:var(--ok)}svg.equity .area.down{fill:var(--danger)}svg.equity .zero{stroke:var(--border);stroke-dasharray:3 3;vector-effect:non-scaling-stroke}pre.log{max-height:60vh;padding:var(--space-3);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-m);font-family:var(--font-mono);white-space:pre;font-size:12px;line-height:1.5;overflow:auto}.spinner{border:2px solid var(--border,#cfd6dd);border-top-color:var(--accent,#2f6f6a);border-radius:50%;flex:none;width:14px;height:14px;margin-top:3px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tabs button{color:var(--fg-muted,#8aa0ad);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.tabs button.on{color:var(--fg,#e6edf3);border-bottom-color:var(--accent)}.warn-text{color:var(--warn,#d9a441)}.danger{color:var(--danger,#e5534b)}.settings-table input,.settings-table select{width:100%;min-width:120px}.settings-table tr.pending td{background:color-mix(in srgb, var(--warn,#d9a441) 10%, transparent)}.log-viewer{flex-direction:column;gap:8px;display:flex}.log-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.log-search{flex:1;min-width:200px}.chips,.log-sources{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);color:var(--fg-muted,#8aa0ad);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;display:inline-flex}.chip.on{color:var(--fg,#e6edf3);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.chip .count{opacity:.7}.chip.lvl-error.on{border-color:var(--danger,#e5534b)}.chip.lvl-warn.on{border-color:var(--warn,#d9a441)}.log-levels{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.log-list{border:1px solid var(--border);background:var(--bg-sunken,#0b1216);border-radius:8px;height:60vh;padding:6px 0;overflow:auto}.log-row{white-space:pre-wrap;word-break:break-word;grid-template-columns:96px 34px minmax(120px,max-content) 1fr;gap:8px;padding:1px 10px;line-height:1.45;display:grid}.log-row:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.log-row.lvl-warn{color:var(--warn,#d9a441)}.log-row.lvl-error{color:var(--danger,#e5534b)}.log-row.lvl-debug,.log-row.lvl-trace{opacity:.7}.log-time{color:var(--fg-muted,#8aa0ad)}.log-level{font-weight:600}.log-source{color:var(--accent);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:0}.log-exc{opacity:.85;font-style:italic}.kv dd.mono.small,.kv dd.small{word-break:break-all}.chart-toolbar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin:var(--space-3) 0;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-elev);flex-wrap:wrap;display:flex}.chart-toolbar>.faint{letter-spacing:.06em;text-transform:uppercase;font-size:11px}.chart-toolbar .day-picker{align-items:center;gap:var(--space-2);display:inline-flex}.chart-toolbar .day-picker select{max-width:320px}.session-charts{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-elev);width:100%;padding:var(--space-2);margin-bottom:var(--space-3)}.session-charts canvas{border-radius:var(--radius-s)}.session-charts-wrap{position:relative}.session-charts-wrap .pane-label{align-items:center;gap:var(--space-3);pointer-events:none;z-index:2;border-radius:var(--radius-s);background:color-mix(in srgb, var(--bg-elev) 80%, transparent);padding:2px 6px;font-size:12px;display:flex;position:absolute;left:14px}.session-charts-wrap .pane-label .legend{color:var(--text-muted);font-family:var(--font-mono);align-items:center;gap:4px;font-size:11px;display:inline-flex}.session-charts-wrap .pane-label .legend i{width:14px;height:2px;display:inline-block}
