:root,:root[data-theme=dark]{--bg-primary:#1f1e1d;--bg-secondary:#262624;--bg-tertiary:#30302e;--text-primary:#f5f4ee;--text-secondary:#b8b5ad;--border-color:#3a3937;--accent:#d97757;--up-color:#4a9782;--down-color:#c96442}:root[data-theme=light]{--bg-primary:#f5f4ee;--bg-secondary:#eceae1;--bg-tertiary:#e3e0d5;--text-primary:#1f1e1d;--text-secondary:#6b6258;--border-color:#d6d3c8;--accent:#c15f3c;--up-color:#3e7d6b;--down-color:#b55031}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.app-layout{flex-direction:column;height:100%;display:flex;overflow:hidden}.chart-container{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;display:flex}.symbol-btn{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);text-align:left;border-radius:4px;align-items:center;gap:6px;min-width:140px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.symbol-btn:hover{border-color:var(--accent)}.symbol-placeholder{color:var(--text-secondary);font-weight:400}.exchange-badge{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);letter-spacing:.3px;text-transform:uppercase;border-radius:3px;align-items:center;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.symbol-dropdown{z-index:100;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;min-width:260px;margin-top:4px;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0006}.symbol-search{background:var(--bg-primary);border:none;border-bottom:1px solid var(--border-color);width:100%;color:var(--text-primary);outline:none;padding:8px 12px;font-size:13px}.symbol-list{max-height:300px;overflow-y:auto}.symbol-option{width:100%;color:var(--text-secondary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.symbol-option:hover,.symbol-option.active{background:var(--bg-primary);color:var(--text-primary)}.symbol-code{color:var(--text-primary);min-width:110px;font-weight:600}.symbol-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.backtest-symbol-field .symbol-btn{width:100%;min-width:0;padding:6px 10px;font-weight:400}.interval-group{gap:2px;display:flex}.interval-btn{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0;padding:4px 10px;font-size:12px}.interval-btn:first-child{border-radius:4px 0 0 4px}.interval-btn:last-child{border-radius:0 4px 4px 0}.interval-btn:hover{color:var(--text-primary)}.interval-btn.active{background:var(--bg-primary);color:var(--text-primary);border-color:var(--accent)}.indicator-group{gap:4px;display:flex}.indicator-btn{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.indicator-btn:hover{color:var(--text-primary)}.indicator-btn.active{background:#ffffff0d}.symbol-list::-webkit-scrollbar{width:6px}.symbol-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.strategy-select{background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;border-radius:4px;margin-left:8px;padding:5px 8px;font-size:12px}.strategy-select:hover{border-color:var(--accent);color:var(--text-primary)}.strategy-select:disabled{opacity:.5;cursor:wait}.chart-ohlcv-legend{z-index:10;color:var(--text-secondary);pointer-events:none;flex-direction:column;gap:4px;font-family:SF Mono,Fira Code,monospace;font-size:12px;display:flex;position:absolute;top:8px;left:8px}.chart-ohlcv-legend .legend-row{white-space:nowrap;gap:12px;display:flex}.chart-ohlcv-legend b{color:var(--text-primary)}.chart-ohlcv-legend .ohlcv-time{color:var(--text-muted,#888);margin-right:4px}.chart-overlay{color:var(--text-secondary);pointer-events:none;z-index:10;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;inset:0}.chart-error{color:var(--down-color)}.chart-history-loading,.chart-history-end{color:var(--text-secondary);pointer-events:none;z-index:11;background:#00000073;border-radius:4px;padding:2px 8px;font-size:11px;position:absolute;top:8px;left:8px}.app-shell{flex-direction:column;height:100%;display:flex}.app-nav{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;gap:2px;padding:0 16px;display:flex}.app-nav a{color:var(--text-secondary);border-bottom:2px solid #0000;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s}.app-nav a:hover{color:var(--text-primary)}.app-nav a.active{color:var(--text-primary);border-bottom-color:var(--accent)}.monitor-page{flex:1;padding:20px 24px;overflow-y:auto}.monitor-header{justify-content:space-between;align-items:baseline;margin-bottom:20px;display:flex}.monitor-page h2{font-size:18px;font-weight:600}.utc-clock{color:var(--text-secondary);letter-spacing:.5px;font-size:14px}.live-clock{color:var(--text-secondary);font-variant-numeric:tabular-nums;letter-spacing:.3px;white-space:nowrap;font-size:13px}.monitor-card{background:color-mix(in srgb, var(--bg-secondary) 50%, transparent);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;padding:16px}.monitor-section{margin-bottom:24px}.section-header{align-items:center;gap:12px;margin-bottom:10px;display:flex}.section-header h3{color:var(--text-primary);font-size:15px;font-weight:600}.refresh-indicator,.section-subtitle{color:var(--text-secondary);font-size:11px}.table-wrap{background:#ffffff03;border:1px solid #2b2b4399;border-radius:6px;overflow-x:auto}.monitor-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.monitor-table thead th{z-index:1;background:color-mix(in srgb, var(--bg-secondary) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left;text-transform:uppercase;letter-spacing:.7px;color:var(--text-secondary);border-bottom:1px solid var(--border-color);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:9px 12px;font-size:10.5px;font-weight:600;position:sticky;top:0}.monitor-table thead th.num{text-align:right;letter-spacing:.6px;font-family:SF Mono,Cascadia Code,Consolas,monospace}.monitor-table thead th.center{text-align:center}.monitor-table tbody td{white-space:nowrap;vertical-align:middle;border-bottom:1px solid #2b2b4352;padding:8px 12px}.monitor-table tbody tr:last-child td{border-bottom:none}.monitor-table tbody tr{cursor:pointer;transition:background .12s}.monitor-table tbody tr:nth-child(2n) td{background:#ffffff03}.monitor-table tbody tr:hover td{background:#26a69a0f}.monitor-table .mono{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:12px}.monitor-table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:SF Mono,Cascadia Code,Consolas,monospace}.monitor-table .center{text-align:center}.monitor-table tfoot td{color:var(--text-secondary);border-bottom:none;border-top:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-secondary) 40%, transparent);padding:10px 12px;font-size:12px}.monitor-table tbody tr.row-warn td:first-child{box-shadow:inset 3px 0 #ffa726}.monitor-table tbody tr.row-error td:first-child{box-shadow:inset 3px 0 #ef5350}.monitor-table tbody tr.row-expanded td{background:#26a69a0a}.monitor-table tbody tr.row-expanded:hover td{background:#26a69a14}.monitor-table .next-run-cell{line-height:1.2}.monitor-table .next-run-humanized{color:var(--text-primary);font-size:12px}.monitor-table .next-run-time{color:var(--text-secondary);opacity:.75;font-size:11px}.age-fresh{color:var(--up-color)}.age-warn{color:#ffa726}.age-stale{color:var(--down-color)}.age-neutral{color:var(--text-secondary)}.integrity-ok{color:var(--up-color)}.integrity-warn{color:#ffa726}.integrity-error,.text-error{color:var(--down-color)}.status-pill{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.status-pill:before{content:"";border-radius:50%;width:6px;height:6px}.status-pill--ok{color:#26a69a;background:#26a69a26}.status-pill--ok:before{background:#26a69a}.status-pill--warn{color:#ffa726;background:#ffa72626}.status-pill--warn:before{background:#ffa726}.status-pill--error{color:#ef5350;background:#ef535026}.status-pill--error:before{background:#ef5350}.status-pill--neutral{color:#8b8b9a;background:#8b8b9a26}.status-pill--neutral:before{background:#8b8b9a}.health-banner{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.health-pill{border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:flex}.health-pill-dot{border-radius:50%;width:8px;height:8px}.health-pill--ok{color:#26a69a;background:#26a69a1a;border-color:#26a69a4d}.health-pill--ok .health-pill-dot{background:#26a69a}.health-pill--warn{color:#ffa726;background:#ffa7261a;border-color:#ffa7264d}.health-pill--warn .health-pill-dot{background:#ffa726}.health-pill--error{color:#ef5350;background:#ef53501a;border-color:#ef53504d}.health-pill--error .health-pill-dot{background:#ef5350}.health-pill--neutral{color:#8b8b9a;background:#8b8b9a1a;border-color:#8b8b9a4d}.health-pill--neutral .health-pill-dot{background:#8b8b9a}.detail-panel{background:color-mix(in srgb, var(--bg-tertiary) 30%, transparent);border-left:2px solid var(--border-color);color:var(--text-secondary);padding:12px 16px 12px 32px;font-size:12px;line-height:1.6}.detail-panel dl{margin:0}.detail-panel dt{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-top:8px;font-size:11px}.detail-panel dt:first-child{margin-top:0}.detail-panel dd{color:var(--text-primary);margin-left:0;font-family:SF Mono,Cascadia Code,monospace;font-size:12px}.btn{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border-radius:3px;padding:3px 10px;font-size:11px;font-weight:600;transition:border-color .15s,color .15s}.btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-secondary)}.btn:disabled{opacity:.4;cursor:wait}.btn-warn{color:#ffa726;border-color:#ffa72666}.btn-warn:hover:not(:disabled){color:#ffb74d;border-color:#ffa726}.actions{align-items:center;gap:4px;display:flex}.repair-result{color:var(--up-color);margin-left:6px;font-size:11px}.section-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.days-input{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;display:flex}.btn-sm{border:1px solid var(--accent);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;padding:3px 10px;font-size:11px}.btn-sm:hover:not(:disabled){background:var(--accent);color:var(--bg-primary)}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.days-input input{background:var(--bg-primary);border:1px solid var(--border-color);width:50px;color:var(--text-primary);text-align:center;border-radius:3px;padding:2px 6px;font-size:11px}.monitor-loading,.monitor-empty{color:var(--text-secondary);padding:16px 0;font-size:13px}.monitor-error{color:var(--down-color);background:#ef53501a;border:1px solid #ef53504d;border-radius:4px;padding:10px 14px;font-size:13px}:root{--status-completed:#10b981;--status-running:#38bdf8;--status-missed:#fbbf24;--status-skipped:#f59e0b;--status-failed:#f43f5e;--status-stuck:#d946ef;--surface-hover:#ffffff0a;--drawer-bg:#0f172a;--drawer-border:#94a3b82e}.sparkline-cell{background:#ffffff05;padding:12px 16px}.sparkline-wrap{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.sparkline-strip{align-items:center;gap:4px;display:flex}.sparkline-loading,.sparkline-error{color:var(--text-secondary);font-size:12px}.spark-cell{cursor:pointer;border:0;border-radius:2px;width:12px;height:24px;padding:0;transition:transform .12s}.spark-cell:hover{transform:scale(1.12)}.spark-empty{cursor:default;background:#94a3b81f!important}@keyframes spark-pulse{0%,to{opacity:1}50%{opacity:.45}}.spark-pulse{animation:1.4s infinite spark-pulse}.sparkline-link{color:var(--status-running);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.sparkline-link:hover{text-decoration:underline}@media (width<=480px){.spark-cell{width:8px;height:16px}}.recent-cell{white-space:nowrap;width:1%;padding-right:12px}.sparkline-wrap.sparkline-compact{flex-wrap:nowrap;gap:0}.sparkline-strip-compact{gap:2px}.sparkline-strip-compact .spark-cell{border-radius:2px;width:6px;height:16px}.sparkline-strip-compact .spark-empty{background:#94a3b82e!important}.job-insights{flex-direction:column;gap:14px;display:flex}.insights-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.insight-stat{background:#ffffff08;border:1px solid #94a3b81f;border-radius:6px;flex-direction:column;gap:4px;min-width:0;padding:10px 12px;display:flex}.insight-stat-breakdown{grid-column:span 2}.insight-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:11px}.insight-stat-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.insight-stat-sub{color:var(--text-secondary);margin-left:4px;font-size:12px;font-weight:400}.insight-stat-sep{color:var(--text-secondary);font-weight:400}.insight-bad{color:var(--status-failed)}.insight-warn{color:var(--status-missed)}.insight-status-pills{flex-wrap:wrap;gap:6px;display:flex}.insight-status-pill{color:#0b1220;letter-spacing:.02em;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:600}.insights-strip{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.insights-strip-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:11px}.insight-error{background:#f43f5e14;border:1px solid #f43f5e4d;border-radius:6px;align-items:flex-start;gap:10px;padding:8px 12px;font-size:12px;display:flex}.insight-error-tag{color:var(--status-failed);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;padding-top:1px;font-size:10px;font-weight:600}.insight-error-msg{color:var(--text-primary);word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:-webkit-box;overflow:hidden}.stuck-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--status-stuck);color:#0b1220;border-radius:3px;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.job-detail-page{gap:16px;display:grid}.job-detail-header{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.job-detail-subtitle{color:var(--text-secondary);margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.job-timeline-chart{margin-top:8px}.job-filters-bar{flex-wrap:wrap;gap:24px;margin-bottom:12px;display:flex}.filter-group{align-items:center;gap:6px;display:flex}.filter-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.filter-chip{border:1px solid var(--drawer-border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-size:12px;transition:background .12s}.filter-chip:hover{background:var(--surface-hover)}.filter-chip.active{background:var(--status-running);color:#0b1220;border-color:var(--status-running)}.row-selected{background:#38bdf814}.run-error{color:var(--status-failed);text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;overflow:hidden}.status-pill{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.drawer-backdrop{z-index:30;background:#00000073;position:fixed;inset:0}.drawer{background:var(--drawer-bg);border-left:1px solid var(--drawer-border);z-index:31;width:min(480px,100vw);padding:16px 20px;animation:.22s cubic-bezier(.16,1,.3,1) drawer-in;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(0)}@keyframes drawer-in{0%{opacity:0;transform:translate(8%)}to{opacity:1;transform:translate(0)}}.drawer-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.drawer-title{color:var(--text-secondary);margin-left:8px;font-size:12px}.drawer-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:18px}.drawer-close:hover{color:#fff}.drawer-meta{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 12px;font-size:12px;display:grid}.drawer-meta dt{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.drawer-meta dd{margin:0}.drawer-error{color:var(--status-failed);white-space:pre-wrap;word-break:break-word;background:#f43f5e14;border:1px solid #f43f5e4d;border-radius:4px;margin:0 0 12px;padding:8px 12px;font-size:11px}.drawer-section{margin:16px 0 8px;font-size:13px}.drawer-raw{margin-top:16px;font-size:11px}.drawer-raw summary{cursor:pointer;color:var(--text-secondary)}.drawer-raw pre{background:#0000004d;border-radius:4px;max-height:240px;margin-top:8px;padding:8px 12px;overflow:auto}.backtest-panel{background:var(--bg-secondary);border-top:1px solid var(--border-color);flex-direction:column;flex-shrink:0;display:flex;position:relative}.backtest-panel__drag-handle{cursor:row-resize;border-top:1px solid var(--border-color);background:0 0;border-bottom:1px solid #0000;height:4px}.backtest-panel__drag-handle:hover{background:var(--accent);opacity:.4}.backtest-panel__header{background:var(--bg-primary);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;height:32px;padding:0 8px;display:flex}.backtest-panel__tabs{gap:4px;display:flex}.backtest-panel__tab{color:var(--text-secondary);background:0 0;border:none;border-radius:3px;padding:4px 10px;font-size:12px;transition:background .1s,color .1s}.backtest-panel__tab:hover{color:var(--text-primary);background:#ffffff0a}.backtest-panel__tab--active{color:var(--text-primary);background:#26a69a2e}.backtest-panel__header-right{align-items:center;gap:8px;display:flex}.backtest-panel__status{color:var(--text-secondary);font-size:11px}.backtest-panel__collapse-btn{color:var(--text-secondary);background:0 0;border:none;border-radius:3px;padding:4px 6px;font-size:10px}.backtest-panel__collapse-btn:hover{color:var(--text-primary);background:#ffffff0a}.backtest-panel__content{flex:1;min-height:0;overflow:auto}.backtest-panel__tab-content{color:var(--text-secondary);padding:12px;font-size:12px}.metrics-tab .metrics-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.metric-card{border:1px solid var(--border-color);border-left:3px solid var(--text-secondary);background:#ffffff08;border-radius:4px;padding:8px 10px}.metric-card--positive{border-left-color:var(--up-color)}.metric-card--negative{border-left-color:var(--down-color)}.metric-card--neutral{border-left-color:#607d8b}.metric-card__label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:10px}.metric-card__value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.metric-card--positive .metric-card__value{color:var(--up-color)}.metric-card--negative .metric-card__value{color:var(--down-color)}.empty-state{color:var(--text-secondary);text-align:center;padding:24px;font-size:12px}.positions-tab{flex-direction:column;height:100%;padding:0;display:flex}.positions-tab__toolbar{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:6px 8px;display:flex}.positions-tab__footer{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;display:flex}.positions-tab__table-wrap{flex:1;min-height:0;overflow:hidden}.positions-filter{gap:4px;display:flex}.positions-filter__chip{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0;border-radius:12px;padding:2px 8px;font-size:11px}.positions-filter__chip:hover{color:var(--text-primary)}.positions-filter__chip--active{color:var(--text-primary);border-color:var(--accent);background:#26a69a2e}.positions-filter__count{opacity:.7;margin-left:4px;font-size:10px}.positions-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11px}.positions-table__th{text-align:left;background:var(--bg-primary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-color);padding:6px 8px;font-size:10px;position:sticky;top:0}.positions-table__th--num{text-align:right}.positions-table__th:hover{color:var(--text-primary)}.positions-table__sort-arrow{color:var(--accent)}.positions-table__row{cursor:pointer;border-bottom:1px solid #ffffff08}.positions-table__row:hover{background:#ffffff08}.positions-table__row--highlighted{background:#ffd6001a}.positions-table td{padding:5px 8px}.positions-table__td--num{text-align:right}.positions-table__td--mono{font-family:var(--font-mono,ui-monospace, monospace);color:var(--text-secondary)}.positions-table__id{align-items:center;gap:6px;display:inline-flex}.positions-table__copy{width:18px;height:18px;color:var(--text-secondary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;transition:color .12s,opacity .12s;display:inline-flex}.positions-table__row:hover .positions-table__copy{opacity:.6}.positions-table__copy:hover,.positions-table__copy--copied{color:var(--accent);opacity:1}.positions-table__empty{text-align:center;color:var(--text-secondary);padding:24px}.positions-table__scroll{height:100%;position:relative;overflow-y:auto}.positions-table__loading{text-align:center;color:var(--text-secondary);padding:8px;font-size:11px}.direction-badge{border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.direction-badge--long{color:var(--up-color);background:#26a69a26}.direction-badge--short{color:var(--down-color);background:#ef535026}.pnl-positive{color:var(--up-color)}.pnl-negative{color:var(--down-color)}.equity-tab__hint{color:var(--text-secondary);padding:4px 0;font-size:11px}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;margin:0 auto 12px;animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.empty-state--error{color:var(--down-color)}.empty-state__sub{color:var(--text-secondary);margin-top:6px;font-size:11px}.symbol-mismatch-banner{color:#ffa726;border-top:1px solid var(--border-color);background:#ffa7261a;padding:6px 12px;font-size:11px}.strategies-layout{height:calc(100vh - 41px);display:none;overflow:hidden}.strategies-mobile{flex-direction:column;height:calc(100vh - 41px);display:flex;overflow:hidden}.strategies-mobile__tabs{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;display:flex}.strategies-mobile__tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 0;font-size:13px;font-weight:600;transition:color .15s,border-color .15s}.strategies-mobile__tab:hover{color:var(--text-primary)}.strategies-mobile__tab--active{color:var(--text-primary);border-bottom-color:var(--accent)}.strategies-mobile__pane{flex-direction:column;flex:1;display:flex;overflow:hidden}@media (width>=768px){.strategies-layout{grid-template-rows:1fr;grid-template-columns:240px 1fr 360px;display:grid}.strategies-mobile{display:none}}.strategies-sidebar{flex-direction:column;display:flex;overflow:hidden}.strategies-main{background:var(--bg-primary);border-left:1px solid var(--border-color);flex-direction:column;display:flex;overflow-y:auto}.strategies-dashboard{flex-direction:column;display:flex;overflow:hidden}.backtest-layout{height:calc(100vh - 41px);display:none;position:relative;overflow:hidden}.backtest-mobile{flex-direction:column;height:calc(100vh - 41px);display:flex;overflow:hidden}@media (width>=768px){.backtest-layout{grid-template-rows:1fr;grid-template-columns:400px 1fr;display:grid}.backtest-mobile{display:none}}.backtest-mobile .strategies-mobile__pane{overflow-y:auto}.backtest-list-pane{flex-direction:column;display:flex;overflow-y:auto}.backtest-detail-pane{background:var(--bg-primary);border-left:1px solid var(--border-color);flex-direction:column;display:flex;overflow-y:auto}.backtest-resizer{cursor:col-resize;z-index:5;touch-action:none;width:9px;position:absolute;top:0;bottom:0;transform:translate(-4px)}.backtest-resizer:after{content:"";background:0 0;width:1px;transition:background .12s;position:absolute;top:0;bottom:0;left:4px}.backtest-resizer:hover:after,.backtest-resizer:active:after{background:var(--accent,var(--text-secondary));width:2px}.backtest-trades-chart{width:100%;height:576px;min-height:300px;max-height:1200px;position:relative;overflow:hidden}.backtest-trades-chart__resizer{cursor:ns-resize;z-index:5;touch-action:none;height:9px;position:absolute;bottom:0;left:0;right:0}.backtest-trades-chart__resizer:before{content:"";background:var(--text-secondary);opacity:.5;border-radius:2px;width:40px;height:4px;transition:opacity .12s,background .12s;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.backtest-trades-chart__resizer:after{content:"";background:0 0;height:1px;transition:background .12s;position:absolute;bottom:0;left:0;right:0}.backtest-trades-chart__resizer:hover:before,.backtest-trades-chart__resizer:active:before{background:var(--accent,var(--text-secondary));opacity:1}.backtest-trades-chart__resizer:hover:after,.backtest-trades-chart__resizer:active:after{background:var(--accent,var(--text-secondary));height:2px}.backtest-run-item{border:1px solid var(--border-color);cursor:pointer;background:var(--bg-primary);border-left:3px solid #0000;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;transition:background .12s,border-color .12s;display:flex}.backtest-run-item:hover{background:var(--bg-secondary)}.backtest-run-item--active{border-left-color:var(--accent);background:var(--bg-secondary)}.backtest-run-item__line1{color:var(--text-primary);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12px;display:flex}.backtest-run-item__line2{color:var(--text-secondary);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:11px;display:flex}.backtest-run-item__line1>*,.backtest-run-item__line2>*{min-width:0}.run-detail-header{flex-direction:column;gap:12px;display:flex}.run-detail-header__identity{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.run-detail-header__title{color:var(--text-primary);letter-spacing:-.01em;font-size:15px;font-weight:700}.run-detail-header__name-edit{align-items:center;gap:6px;display:inline-flex}.run-detail-header__name-input{color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;min-width:180px;padding:3px 8px;font-size:13px}.run-detail-header__pair{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;display:inline-flex}.run-detail-header__runid{color:var(--text-secondary);align-items:center;gap:6px;margin-left:auto;font-family:monospace;font-size:11px;display:inline-flex}.run-detail-header__copy{border:1px solid var(--border-color);min-width:24px;min-height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:2px 6px;font-size:11px;line-height:1;transition:color .12s,border-color .12s;display:inline-flex}.run-detail-header__copy:hover{color:var(--accent);border-color:var(--accent)}.run-stats{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;display:grid}.run-stat{border:1px solid var(--border-color);border-left:3px solid var(--text-secondary);background:#ffffff08;border-radius:6px;padding:7px 10px}.run-stat__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:3px;font-size:10px}.run-stat__value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:15px;font-weight:600}.run-stat--up{border-left-color:var(--up-color)}.run-stat--up .run-stat__value{color:var(--up-color)}.run-stat--down{border-left-color:var(--down-color)}.run-stat--down .run-stat__value{color:var(--down-color)}.verdict-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.verdict-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.verdict-card__label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.verdict-card__label:before{content:"";background:var(--accent);border-radius:2px;width:3px;height:13px}.verdict-card__actions{gap:6px;display:inline-flex}.verdict-card__body{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6}.verdict-card__empty{color:var(--text-secondary);font-size:13px;font-style:italic}.verdict-card__textarea{resize:vertical;background:var(--bg-primary);width:100%;color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.6}.verdict-card__textarea:focus{border-color:var(--accent);outline:none}.verdict-card__helper{color:var(--text-secondary);font-size:11px}.verdict-card__error{color:var(--down-color);font-size:12px}@keyframes status-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}
