.app[data-v-84e6ac30]{flex-direction:column;height:100vh;display:flex}.app-row[data-v-84e6ac30]{flex:1;min-height:0;display:flex}.global-disclaimer[data-v-84e6ac30]{background:var(--bg-panel);border-top:1px solid var(--border);color:var(--text-dim);text-align:center;letter-spacing:.2px;flex-shrink:0;padding:5px 16px;font-size:10.5px}.sidebar[data-v-84e6ac30]{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:176px;display:flex}.brand[data-v-84e6ac30]{border-bottom:1px solid var(--border);padding:14px 16px 12px}.brand-name[data-v-84e6ac30]{letter-spacing:.5px;font-size:16px;font-weight:700}.brand-sub[data-v-84e6ac30]{color:var(--text-dim);margin-top:2px;font-size:11px;display:block}.side-nav[data-v-84e6ac30]{flex:1;padding:8px 0;overflow-y:auto}.nav-group[data-v-84e6ac30]{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;padding:10px 16px 4px;font-size:11px}.side-nav a[data-v-84e6ac30]{color:var(--text-muted);border-left:2px solid #0000;padding:7px 16px;font-size:13px;text-decoration:none;display:block}.side-nav a[data-v-84e6ac30]:hover{color:var(--text);background:var(--bg-elevated)}.side-nav a.active[data-v-84e6ac30]{color:var(--accent);border-left-color:var(--accent);background:var(--bg-elevated)}.side-footer[data-v-84e6ac30]{border-top:1px solid var(--border);color:var(--text-dim);align-items:center;gap:6px;padding:10px 16px;font-size:11px;display:flex}.dot[data-v-84e6ac30]{background:var(--text-dim);border-radius:50%;width:7px;height:7px}.dot.open[data-v-84e6ac30]{background:var(--up);box-shadow:0 0 4px var(--up)}.dot.connecting[data-v-84e6ac30]{background:var(--warn)}.sse-ts[data-v-84e6ac30]{font-family:var(--font-mono);margin-left:auto}.sse-n[data-v-84e6ac30]{color:var(--text-dim)}.app-main[data-v-84e6ac30]{flex:1;overflow:hidden}.equity-chart[data-v-5716e91c]{width:100%;height:300px}.badge-wrapper[data-v-1bd515a8]{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.sample-warn[data-v-1bd515a8]{border-radius:var(--radius);color:var(--warn);white-space:nowrap;cursor:help;background:#f0a0201f;border:1px solid #f0a02073;padding:2px 8px;font-size:11px;font-weight:500}.grade-badge[data-v-1bd515a8]{background:color-mix(in srgb, var(--grade-color) 18%, transparent);border:1px solid color-mix(in srgb, var(--grade-color) 55%, transparent);color:var(--grade-color);-webkit-user-select:none;user-select:none;cursor:help;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-weight:700;line-height:1;display:inline-flex}.grade-letter[data-v-1bd515a8]{letter-spacing:.5px;font-size:1em}.grade-score[data-v-1bd515a8]{opacity:.85;font-size:.85em;font-family:var(--font-mono);font-weight:600}.size-sm[data-v-1bd515a8]{padding:1px 7px;font-size:11px}.size-md[data-v-1bd515a8]{padding:3px 10px;font-size:13px}.size-lg[data-v-1bd515a8]{padding:6px 14px;font-size:16px}.size-lg .grade-letter[data-v-1bd515a8]{font-size:1.15em}.grade-details[data-v-2cf77527]{flex-direction:column;gap:12px;display:flex}.grade-header[data-v-2cf77527]{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.grade-hint[data-v-2cf77527]{color:var(--text-muted);font-size:13px}.flags[data-v-2cf77527]{flex-wrap:wrap;gap:8px;display:flex}.flag[data-v-2cf77527]{border-radius:var(--radius);padding:3px 9px;font-size:12px;font-weight:600}.flag-losing[data-v-2cf77527]{color:var(--up);border:1px solid var(--up);background:#ef414626}.flag-insufficient[data-v-2cf77527]{color:var(--warn);border:1px solid var(--warn);background:#f0a02026}.vetoes[data-v-2cf77527]{border-radius:var(--radius);background:#ef41460f;border:1px solid #ef414640;flex-direction:column;gap:6px;padding:10px 12px;list-style:none;display:flex}.veto-item[data-v-2cf77527]{align-items:baseline;gap:10px;font-size:12px;display:flex}.veto-cap[data-v-2cf77527]{color:var(--up);flex-shrink:0;width:16px;font-weight:700}.veto-reason[data-v-2cf77527]{color:var(--text-muted)}.dimensions[data-v-2cf77527]{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:8px;display:flex}.dim-row[data-v-2cf77527]{flex-direction:column;gap:3px;display:flex}.dim-header[data-v-2cf77527]{align-items:baseline;gap:8px;font-size:12px;display:flex}.dim-label[data-v-2cf77527]{color:var(--text);flex:1}.dim-weight[data-v-2cf77527]{color:var(--text-dim);font-size:11px}.dim-score[data-v-2cf77527]{font-family:var(--font-mono);color:var(--text-muted);text-align:right;min-width:36px;font-weight:600}.dim-bar-track[data-v-2cf77527]{background:var(--bg);border-radius:2px;height:4px;overflow:hidden}.dim-bar-fill[data-v-2cf77527]{border-radius:2px;height:100%;transition:width .3s}.glossary[data-v-87ef2353]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-size:12.5px;line-height:1.7}.g-section+.g-section[data-v-87ef2353]{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.g-title[data-v-87ef2353]{color:var(--accent);letter-spacing:.5px;margin-bottom:8px;font-size:11px;font-weight:600}.g-entries[data-v-87ef2353]{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:8px 24px;display:grid}.g-entry[data-v-87ef2353]{break-inside:avoid;margin:0}.g-term[data-v-87ef2353]{color:var(--text);font-size:12.5px;font-weight:700}.g-def[data-v-87ef2353],.g-def p[data-v-87ef2353]{margin:0}.g-summary[data-v-87ef2353]{color:var(--text-muted)}.g-summary strong[data-v-87ef2353]{color:var(--text);font-weight:600}.g-formula[data-v-87ef2353]{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1px 8px;font-size:11.5px;display:inline-block;margin:3px 0!important}.g-detail[data-v-87ef2353]{color:var(--text-dim);font-weight:300}.g-detail strong[data-v-87ef2353]{color:var(--text-muted);font-weight:600}.g-guide[data-v-87ef2353]{color:var(--text-muted)}.g-guide-label[data-v-87ef2353]{color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);vertical-align:1px;margin-right:6px;padding:0 5px;font-size:10.5px;font-weight:600;line-height:1.5;display:inline-block}.g-guide strong[data-v-87ef2353]{color:var(--warn);font-weight:700}.help-collapse[data-v-b2c4576b]{margin-top:10px}.help-toggle[data-v-b2c4576b]{color:var(--text-muted);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.help-toggle[data-v-b2c4576b]:hover{color:var(--accent)}.help-q[data-v-b2c4576b]{width:14px;height:14px;color:var(--accent);border:1px solid var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.chevron[data-v-b2c4576b]{font-size:10px;transition:transform .2s}.chevron.open[data-v-b2c4576b]{transform:rotate(180deg)}.help-body[data-v-b2c4576b]{visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .25s,visibility 0s linear .25s;display:grid}.help-body.open[data-v-b2c4576b]{visibility:visible;grid-template-rows:1fr;transition:grid-template-rows .25s}.help-inner[data-v-b2c4576b]{min-height:0;padding-top:8px;overflow:hidden}.eval-header[data-v-76c8fb9e]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;display:flex}.score-block[data-v-76c8fb9e],.excess-block[data-v-76c8fb9e]{align-items:baseline;gap:6px;display:flex}.score-label[data-v-76c8fb9e]{color:var(--text-dim);font-size:12px}.score-value[data-v-76c8fb9e]{font-size:26px;font-weight:700;font-family:var(--font-mono)}.score-unit[data-v-76c8fb9e]{color:var(--text-dim);font-size:12px}.pos[data-v-76c8fb9e]{color:var(--up)}.neg[data-v-76c8fb9e]{color:#2ebd85}.badge[data-v-76c8fb9e]{border-radius:10px;padding:4px 10px;font-size:12px;font-weight:600}.badge-ok[data-v-76c8fb9e]{color:#2ebd85;background:#2ebd8526;border:1px solid #2ebd85}.badge-warn[data-v-76c8fb9e]{color:var(--up);border:1px solid var(--up);background:#ef41461f}.score-components[data-v-76c8fb9e]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 14px;margin-bottom:14px;display:grid}.comp[data-v-76c8fb9e]{align-items:center;gap:8px;font-size:12px;display:flex}.comp-label[data-v-76c8fb9e]{width:86px;color:var(--text-muted);flex-shrink:0}.comp-label small[data-v-76c8fb9e]{color:var(--text-dim)}.comp-bar[data-v-76c8fb9e]{background:var(--bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.comp-fill[data-v-76c8fb9e]{background:var(--accent,#4a9eff);border-radius:3px;height:100%}.comp-value[data-v-76c8fb9e]{text-align:right;width:28px;font-family:var(--font-mono);color:var(--text-muted)}.bench-row[data-v-76c8fb9e]{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px;display:grid}.bench-row-4[data-v-76c8fb9e]{grid-template-columns:repeat(4,1fr)}.bench-cell[data-v-76c8fb9e]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.mono[data-v-76c8fb9e]{font-family:var(--font-mono);font-weight:600}.bench-warn[data-v-76c8fb9e]{color:var(--up);margin:4px 0 12px;font-size:12px}.sub-title[data-v-76c8fb9e]{color:var(--text-muted);margin:14px 0 8px;font-size:12px}.check-list[data-v-76c8fb9e]{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:4px 14px;margin:0 0 8px;padding:0;list-style:none;display:grid}.check-list li[data-v-76c8fb9e]{align-items:baseline;gap:6px;font-size:12px;display:flex}.check-mark[data-v-76c8fb9e]{flex-shrink:0;width:14px;font-weight:700}.check-list li.ok .check-mark[data-v-76c8fb9e]{color:#2ebd85}.check-list li.bad .check-mark[data-v-76c8fb9e]{color:var(--up)}.check-detail[data-v-76c8fb9e]{color:var(--text-muted)}.kline-chart[data-v-13066ab6]{width:100%;height:420px}.metric-wrap[data-v-9e8c9e80]{flex-direction:column;display:flex}.metric-grid[data-v-9e8c9e80]{flex-wrap:wrap;gap:20px;display:flex}.metric-group[data-v-9e8c9e80]{flex:1;min-width:180px}.group-title[data-v-9e8c9e80]{color:var(--text-dim);border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:6px;font-size:12px;font-weight:600}.metric-rows[data-v-9e8c9e80]{flex-direction:column;gap:6px;display:flex}.metric-row[data-v-9e8c9e80]{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.metric-label[data-v-9e8c9e80]{color:var(--text-muted)}.metric-value[data-v-9e8c9e80]{font-family:var(--font-mono);font-weight:600}.pos[data-v-9e8c9e80]{color:var(--up)}.neg[data-v-9e8c9e80]{color:var(--down)}.desc[data-v-2e89a530]{color:var(--text-muted);margin:-4px 0 12px;font-size:12px;line-height:1.4}.params[data-v-2e89a530]{flex-direction:column;display:flex}input[type=checkbox][data-v-2e89a530]{width:auto}.code-field[data-v-af91079a]{position:relative}.code-field input[data-v-af91079a]{padding-right:70px}.market-tag[data-v-af91079a]{color:var(--text-dim);background:var(--bg-elevated);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:11px;position:absolute;bottom:8px;right:8px}.err[data-v-af91079a]{color:var(--up);margin-top:8px;font-size:12px}.ok[data-v-af91079a]{color:var(--down);margin-top:8px;font-size:12px}.trade-table-wrap[data-v-4988d2c2]{overflow-x:auto}.empty[data-v-4988d2c2]{color:var(--text-dim);padding:16px 0;font-size:13px}.trade-table[data-v-4988d2c2]{border-collapse:collapse;width:100%;font-size:13px}.trade-table th[data-v-4988d2c2],.trade-table td[data-v-4988d2c2]{text-align:left;border-bottom:1px solid var(--border);padding:7px 10px}.trade-table th[data-v-4988d2c2]{color:var(--text-dim);background:var(--bg-panel);font-size:12px;font-weight:600;position:sticky;top:0}.num[data-v-4988d2c2]{text-align:right;font-family:var(--font-mono)}.muted[data-v-4988d2c2]{color:var(--text-dim)}.BUY[data-v-4988d2c2]{color:var(--up);font-weight:600}.SELL[data-v-4988d2c2]{color:var(--down);font-weight:600}.pos[data-v-4988d2c2]{color:var(--up)}.neg[data-v-4988d2c2]{color:var(--down)}.rejected td[data-v-4988d2c2]{opacity:.4;text-decoration:line-through}.wf-summary[data-v-cdb05c78]{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:10px;display:grid}.stat[data-v-cdb05c78]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.stat-label[data-v-cdb05c78]{color:var(--text-dim);font-size:11px}.stat-value[data-v-cdb05c78]{font-size:14px;font-weight:600;font-family:var(--font-mono)}.stat-value.pos[data-v-cdb05c78]{color:var(--up)}.stat-value.neg[data-v-cdb05c78]{color:#2ebd85}.wf-hint[data-v-cdb05c78]{color:var(--text-dim);margin:0 0 8px;font-size:11px}.wf-chart[data-v-cdb05c78]{width:100%;height:280px}.backtest-view[data-v-cf2ffdf1]{height:100%;display:flex}.config-panel[data-v-cf2ffdf1]{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:320px;padding:16px;display:flex;overflow-y:auto}.panel-section[data-v-cf2ffdf1]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.panel-section[data-v-cf2ffdf1]:last-of-type{border-bottom:none}.panel-section h3[data-v-cf2ffdf1]{color:var(--text);margin-bottom:12px;font-size:13px;font-weight:600}.loading-text[data-v-cf2ffdf1]{color:var(--text-dim);font-size:12px}.check-row[data-v-cf2ffdf1]{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;margin-bottom:8px;display:flex}.check-label[data-v-cf2ffdf1]{color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;margin-bottom:0;font-size:12px;display:inline-flex}.check-label input[type=checkbox][data-v-cf2ffdf1]{width:auto;accent-color:var(--accent,#4a9eff);flex-shrink:0;margin:0}.wf-windows[data-v-cf2ffdf1]{color:var(--text-dim);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.wf-windows input[data-v-cf2ffdf1]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:44px;color:var(--text);padding:3px 6px;font-size:12px}.extra-hint[data-v-cf2ffdf1]{color:var(--text-dim);margin:2px 0 0;font-size:11px}.run-btn[data-v-cf2ffdf1]{width:100%;margin-top:auto;padding:10px;font-size:14px}.report-panel[data-v-cf2ffdf1]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-cf2ffdf1]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-cf2ffdf1]{border:1px solid var(--up);color:var(--up);border-radius:var(--radius);background:#ef41461f;margin-bottom:16px;padding:10px 14px;font-size:13px}.report-section[data-v-cf2ffdf1]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-cf2ffdf1]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.result-toolbar[data-v-cf2ffdf1]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.result-toolbar .ghost[data-v-cf2ffdf1]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;padding:6px 12px;font-size:12px}.result-toolbar .ghost[data-v-cf2ffdf1]:hover{border-color:var(--accent);color:var(--accent)}.save-msg[data-v-cf2ffdf1]{color:var(--up);font-size:12px}.modal-overlay[data-v-cf2ffdf1]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-cf2ffdf1]{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;width:380px;max-width:90vw;padding:20px;display:flex}.modal h3[data-v-cf2ffdf1]{font-size:15px;font-weight:600}.modal-desc[data-v-cf2ffdf1]{color:var(--text-dim);font-size:12px;line-height:1.5}.modal .field[data-v-cf2ffdf1]{flex-direction:column;gap:4px;display:flex}.modal .field label[data-v-cf2ffdf1]{color:var(--text-muted);font-size:12px}.modal .field input[data-v-cf2ffdf1],.modal .field textarea[data-v-cf2ffdf1]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);resize:vertical;padding:7px 9px;font-family:inherit;font-size:13px}.modal .field textarea[data-v-cf2ffdf1]{font-family:inherit}.modal-summary[data-v-cf2ffdf1]{color:var(--text-dim);font-size:12px;font-family:var(--font-mono);background:var(--bg);border-radius:var(--radius);padding:8px 10px}.modal-actions[data-v-cf2ffdf1]{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions .ghost[data-v-cf2ffdf1]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-cf2ffdf1]{cursor:pointer;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-cf2ffdf1]:disabled,.modal-actions .ghost[data-v-cf2ffdf1]:disabled{opacity:.5;cursor:default}.modal-wide[data-v-cf2ffdf1]{width:640px}.ai-prompt-area[data-v-cf2ffdf1]{font-family:var(--font-mono);white-space:pre;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);max-height:55vh;color:var(--text-muted);resize:vertical;padding:10px 12px;font-size:11.5px;line-height:1.6;overflow:auto}.ai-prompt-area.collapsed[data-v-cf2ffdf1]{max-height:18vh}.ai-reply[data-v-cf2ffdf1]{background:var(--bg-elevated);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-height:38vh;margin-top:8px;padding:10px 12px;font-size:13px;line-height:1.7;overflow:auto}.ai-msg[data-v-cf2ffdf1]{color:var(--up);font-size:12px}.ai-note[data-v-cf2ffdf1]{color:var(--warn,#ffc107);margin-top:4px;font-size:11px}.risk[data-v-e5afde20]{color:var(--text-dim);border-top:1px solid var(--border);margin-top:10px;padding-top:6px;font-size:11px;line-height:1.6}.risk.prominent[data-v-e5afde20]{border-radius:var(--radius);background:#ffc10712;border:1px solid #ffc10759;margin-top:0;padding:10px 12px}.risk.prominent strong[data-v-e5afde20]{color:var(--warn,#ffc107);margin-bottom:4px;font-size:12px;display:block}.risk.prominent p[data-v-e5afde20]{color:var(--text-muted);margin:0;font-size:12px;line-height:1.8}.ccpm-view[data-v-f8a9f6d7]{height:100%;padding:14px 16px;overflow-y:auto}.toolbar[data-v-f8a9f6d7]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar h2[data-v-f8a9f6d7]{font-size:16px}.controls[data-v-f8a9f6d7]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.controls select[data-v-f8a9f6d7],.controls input[type=date][data-v-f8a9f6d7]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:6px 8px;font-size:13px}.controls select[data-v-f8a9f6d7]:focus,.controls input[type=date][data-v-f8a9f6d7]:focus{border-color:var(--accent);outline:none}.controls input[type=date][data-v-f8a9f6d7]:disabled{opacity:.45}.auto-date[data-v-f8a9f6d7]{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-size:12px;display:inline-flex}.hint[data-v-f8a9f6d7]{color:var(--text-dim);margin:8px 0 12px;font-size:12px;line-height:1.7}.product-card[data-v-f8a9f6d7]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:10px 14px}.pc-head[data-v-f8a9f6d7]{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.pc-code[data-v-f8a9f6d7]{color:var(--accent);font-size:15px;font-weight:700}.pc-name[data-v-f8a9f6d7]{font-size:14px;font-weight:600}.pc-cat[data-v-f8a9f6d7]{color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:11px}.pc-row[data-v-f8a9f6d7]{color:var(--text-muted);gap:10px;font-size:12px;line-height:1.8;display:flex}.pc-k[data-v-f8a9f6d7]{width:60px;color:var(--text-dim);flex-shrink:0}.error-banner[data-v-f8a9f6d7]{border-radius:var(--radius);color:var(--red,#f44336);background:#f443361a;padding:8px 12px;font-size:12px}.err-tip[data-v-f8a9f6d7]{color:var(--text-dim)}.empty[data-v-f8a9f6d7]{color:var(--text-dim);text-align:center;padding:40px;font-size:13px}.dim[data-v-f8a9f6d7]{color:var(--text-dim)}.mono[data-v-f8a9f6d7]{font-family:var(--font-mono)}.result-head[data-v-f8a9f6d7]{align-items:baseline;gap:10px;margin:6px 0 8px;font-size:13px;display:flex}.day[data-v-f8a9f6d7]{font-weight:600}.inst-tabs[data-v-f8a9f6d7]{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.inst-tab[data-v-f8a9f6d7]{border-radius:999px;padding:4px 12px;font-size:13px}.inst-tab.active[data-v-f8a9f6d7]{border-color:var(--accent);color:var(--accent);background:#4a9eff1a}.dom-badge[data-v-f8a9f6d7]{color:var(--warn);margin-left:4px;font-size:10px}.stat-chips[data-v-f8a9f6d7]{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.chip[data-v-f8a9f6d7]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);align-items:baseline;gap:8px;padding:6px 12px;font-size:12px;display:flex}.chip-net[data-v-f8a9f6d7]{border-color:#f0a02073}.chip-k[data-v-f8a9f6d7]{color:var(--text-dim)}.chip-v[data-v-f8a9f6d7]{font-size:14px;font-weight:600}.chip-d[data-v-f8a9f6d7]{font-size:11px}.table-wrap[data-v-f8a9f6d7]{margin-bottom:6px;overflow-x:auto}.rank-table[data-v-f8a9f6d7]{border-collapse:collapse;width:100%;min-width:860px;font-size:12.5px}.rank-table th[data-v-f8a9f6d7],.rank-table td[data-v-f8a9f6d7]{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;white-space:nowrap;padding:6px 8px}.rank-table thead th[data-v-f8a9f6d7]{color:var(--text-dim);border-bottom:1px solid var(--border);font-size:11.5px;font-weight:600}.rank-table .g[data-v-f8a9f6d7]{text-align:center;color:var(--text-muted);font-size:12px}.rank-table .g-vol[data-v-f8a9f6d7]{background:#4a9eff0f}.rank-table .g-long[data-v-f8a9f6d7]{background:#ef41460f}.rank-table .g-short[data-v-f8a9f6d7]{background:#18a0580f}.rank-col[data-v-f8a9f6d7]{width:40px;text-align:center!important}.member[data-v-f8a9f6d7]{min-width:110px}.num[data-v-f8a9f6d7]{font-size:12px;text-align:right!important}tfoot td[data-v-f8a9f6d7]{border-top:1px solid var(--border);background:var(--bg-panel);font-weight:600}.up[data-v-f8a9f6d7]{color:var(--up)}.down[data-v-f8a9f6d7]{color:var(--down)}.flat[data-v-f8a9f6d7]{color:var(--text-dim)}.edu[data-v-f8a9f6d7]{color:var(--text-muted);font-size:12.5px;line-height:1.9}.edu p[data-v-f8a9f6d7]{margin:6px 0}.edu ul[data-v-f8a9f6d7]{margin:6px 0 6px 18px}.edu li[data-v-f8a9f6d7]{margin:3px 0}.edu strong[data-v-f8a9f6d7]{color:var(--text)}.edu-table[data-v-f8a9f6d7]{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.edu-table th[data-v-f8a9f6d7],.edu-table td[data-v-f8a9f6d7]{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 8px;line-height:1.6}.edu-table th[data-v-f8a9f6d7]{color:var(--text-dim);white-space:nowrap;font-weight:600}.compare-chart[data-v-6e0d643e]{width:100%;height:380px}.compare-table[data-v-2102ca6d]{border-collapse:collapse;width:100%;font-size:13px}.compare-table th[data-v-2102ca6d],.compare-table td[data-v-2102ca6d]{border-bottom:1px solid var(--border);text-align:left;padding:7px 12px}.compare-table th[data-v-2102ca6d]{color:var(--text-dim);font-size:12px;font-weight:600}.compare-table th.col[data-v-2102ca6d]{color:var(--accent);font-family:var(--font-mono)}.metric-label[data-v-2102ca6d]{color:var(--text-muted);white-space:nowrap}.num[data-v-2102ca6d]{font-family:var(--font-mono);text-align:right}.compare-view[data-v-15f49c1a]{height:100%;display:flex}.config-panel[data-v-15f49c1a]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:320px;padding:16px;overflow-y:auto}.panel-section h3[data-v-15f49c1a]{margin-bottom:12px;font-size:13px;font-weight:600}.refresh-btn[data-v-15f49c1a]{width:100%;margin-bottom:12px}.hint[data-v-15f49c1a]{color:var(--text-muted);margin-bottom:10px;font-size:12px}.empty[data-v-15f49c1a]{color:var(--text-dim);padding:16px 0;font-size:13px}.task-item[data-v-15f49c1a]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.check[data-v-15f49c1a]{align-items:center;gap:6px;font-size:12px;display:flex}.check input[type=checkbox][data-v-15f49c1a]{width:auto}.task-desc[data-v-15f49c1a]{color:var(--text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.task-meta[data-v-15f49c1a]{color:var(--text-dim);flex-shrink:0;font-size:11px}.report-panel[data-v-15f49c1a]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-15f49c1a]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-15f49c1a]{border:1px solid var(--up);color:var(--up);border-radius:var(--radius);background:#ef41461f;margin-bottom:16px;padding:10px 14px;font-size:13px}.report-section[data-v-15f49c1a]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-15f49c1a]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.intraday-chart[data-v-4dc00f53]{width:100%;height:440px}.stock-kline[data-v-a987cb3d]{width:100%;height:520px}.dlg-mask[data-v-ce2fca57]{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg[data-v-ce2fca57]{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:min(1280px,96vw);max-height:94vh;display:flex;overflow:hidden}.dlg-head[data-v-ce2fca57]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.head-left[data-v-ce2fca57]{align-items:baseline;gap:10px;display:flex}.stock-name[data-v-ce2fca57]{font-size:16px;font-weight:700}.stock-code[data-v-ce2fca57]{color:var(--text-dim);font-size:12px}.srv-time[data-v-ce2fca57]{color:var(--text-dim);font-size:11px}.head-quote[data-v-ce2fca57]{align-items:baseline;gap:12px;display:flex}.price[data-v-ce2fca57]{font-size:22px;font-weight:700}.chg[data-v-ce2fca57]{font-size:13px}.watch-btn[data-v-ce2fca57]{align-self:center;margin-left:10px;padding:4px 10px;font-size:12px}.watch-btn.watched[data-v-ce2fca57]{border-color:var(--warn);color:var(--warn)}.close-btn[data-v-ce2fca57]{align-self:center;padding:2px 8px;font-size:12px}.dlg-body[data-v-ce2fca57]{gap:0;display:flex;overflow:auto}.depth[data-v-ce2fca57]{border-right:1px solid var(--border);flex-shrink:0;width:260px;padding:10px 14px}.depth-title[data-v-ce2fca57]{color:var(--text-dim);margin-bottom:6px;font-size:12px}.depth-table[data-v-ce2fca57]{border-collapse:collapse;width:100%;font-size:12px}.depth-table td[data-v-ce2fca57]{white-space:nowrap;padding:2.5px 4px}.lv[data-v-ce2fca57]{color:var(--text-dim);width:34px}.vol-cell[data-v-ce2fca57]{width:90px;position:relative}.vol-bar[data-v-ce2fca57]{opacity:.18;border-radius:2px;position:absolute;top:2px;bottom:2px;right:0}.vol-bar.ask[data-v-ce2fca57]{background:var(--up)}.vol-bar.bid[data-v-ce2fca57]{background:var(--down)}.vol-cell span[data-v-ce2fca57]{position:relative}.sep[data-v-ce2fca57]{border-top:1px dashed var(--border);margin:3px 0}.depth-stats[data-v-ce2fca57]{color:var(--text-muted);grid-template-columns:1fr 1fr;gap:3px 10px;margin-top:10px;font-size:11.5px;display:grid}.depth-stats>div[data-v-ce2fca57]{justify-content:space-between;display:flex}.dim2[data-v-ce2fca57]{color:var(--text-dim)}.chart-area[data-v-ce2fca57]{flex:1;min-width:0;padding:10px 12px}.tabs[data-v-ce2fca57]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.tabs button.active[data-v-ce2fca57]{border-color:var(--accent);color:var(--accent)}.ind-group[data-v-ce2fca57]{gap:4px;margin-left:12px;display:inline-flex}.chip[data-v-ce2fca57]{padding:2px 8px;font-size:11px}.chip.on[data-v-ce2fca57]{border-color:var(--accent);color:var(--accent);background:#4a9eff1f}.chart-msg[data-v-ce2fca57]{text-align:center;color:var(--text-dim);padding:40px 0}.chart-msg.error[data-v-ce2fca57]{color:var(--up)}.leaders-view[data-v-c48f7383]{height:100%;padding:14px 16px;overflow-y:auto}.toolbar[data-v-c48f7383]{justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar h2[data-v-c48f7383]{font-size:16px}.title-sub[data-v-c48f7383]{font-size:12px;font-weight:400}.search[data-v-c48f7383]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:200px;color:var(--text);padding:6px 10px;font-size:13px}.search[data-v-c48f7383]:focus{border-color:var(--accent);outline:none}.hint[data-v-c48f7383]{color:var(--text-dim);margin:8px 0 12px;font-size:12px;line-height:1.7}.hint code[data-v-c48f7383]{font-family:var(--font-mono);font-size:11px}.error-banner[data-v-c48f7383]{border-radius:var(--radius);color:var(--red,#f44336);background:#f443361a;padding:8px 12px;font-size:12px}.empty[data-v-c48f7383]{color:var(--text-dim);text-align:center;padding:40px;font-size:13px}.grid[data-v-c48f7383]{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;display:grid}.cell[data-v-c48f7383]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;display:flex}.cell[data-v-c48f7383]:hover{border-color:var(--accent)}.cell:hover .c-name[data-v-c48f7383]{color:var(--accent)}.c-code[data-v-c48f7383]{flex-shrink:0;font-size:11px}.c-name[data-v-c48f7383]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.c-mkt[data-v-c48f7383]{flex-shrink:0;font-size:10px}.dim[data-v-c48f7383]{color:var(--text-dim)}.dlg-mask[data-v-ddcaff9c]{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg[data-v-ddcaff9c]{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:min(1280px,96vw);max-height:94vh;display:flex;overflow:hidden}.dlg-head[data-v-ddcaff9c]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.head-left[data-v-ddcaff9c]{align-items:baseline;gap:10px;display:flex}.board-name[data-v-ddcaff9c]{font-size:16px;font-weight:700}.board-code[data-v-ddcaff9c]{color:var(--text-dim);font-size:12px}.head-quote[data-v-ddcaff9c]{align-items:baseline;gap:12px;display:flex}.price[data-v-ddcaff9c]{font-size:20px;font-weight:700}.chg[data-v-ddcaff9c]{font-size:13px}.watch-btn[data-v-ddcaff9c]{align-self:center;margin-left:10px;padding:4px 10px;font-size:12px}.watch-btn.watched[data-v-ddcaff9c]{border-color:var(--warn);color:var(--warn)}.close-btn[data-v-ddcaff9c]{align-self:center;padding:2px 8px;font-size:12px}.dlg-body[data-v-ddcaff9c]{display:flex;overflow:hidden}.chart-area[data-v-ddcaff9c]{flex:1;min-width:0;padding:10px 12px;overflow:auto}.members-panel[data-v-ddcaff9c]{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:330px;display:flex;overflow:hidden}.members-head[data-v-ddcaff9c]{justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.members-head h3[data-v-ddcaff9c]{font-size:13px;font-weight:600}.members-count[data-v-ddcaff9c]{font-size:11px;font-weight:400}.order-btn[data-v-ddcaff9c]{padding:2px 8px;font-size:11px}.members-list[data-v-ddcaff9c]{flex:1;padding:0 8px 10px;overflow-y:auto}.member-row[data-v-ddcaff9c]{cursor:pointer;border-radius:4px;grid-template-columns:20px 1fr 66px 58px 62px;align-items:center;gap:6px;padding:4px 6px;font-size:12px;display:grid}.member-row[data-v-ddcaff9c]:hover{background:var(--bg-elevated)}.m-idx[data-v-ddcaff9c]{color:var(--text-dim);font-size:10.5px}.m-name[data-v-ddcaff9c]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-code[data-v-ddcaff9c]{font-size:10.5px}.m-price[data-v-ddcaff9c]{text-align:right}.m-pct[data-v-ddcaff9c]{text-align:right;font-weight:600}.dim[data-v-ddcaff9c]{color:var(--text-dim)}.tabs[data-v-ddcaff9c]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.tabs button.active[data-v-ddcaff9c]{border-color:var(--accent);color:var(--accent)}.ind-group[data-v-ddcaff9c]{gap:4px;margin-left:12px;display:inline-flex}.chip[data-v-ddcaff9c]{padding:2px 8px;font-size:11px}.chip.on[data-v-ddcaff9c]{border-color:var(--accent);color:var(--accent);background:#4a9eff1f}.chart-msg[data-v-ddcaff9c]{text-align:center;color:var(--text-dim);padding:40px 0}.chart-msg.error[data-v-ddcaff9c]{color:var(--up)}.mood-radar[data-v-bc49f77a]{width:100%;height:190px}.sparkline[data-v-c695f5d4]{display:block}.dash[data-v-6ade50fe]{height:100%;padding:14px 16px;overflow:auto}.session-bar[data-v-6ade50fe]{align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.session-bar .dot[data-v-6ade50fe]{background:var(--text-dim);border-radius:50%;width:8px;height:8px}.session-bar .dot.live[data-v-6ade50fe]{background:var(--up);box-shadow:0 0 4px var(--up)}.session-label[data-v-6ade50fe]{font-weight:600}.session-label.paused[data-v-6ade50fe]{color:var(--text-dim)}.session-hint[data-v-6ade50fe]{font-size:11px}.session-toggle[data-v-6ade50fe]{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;margin-left:12px;display:inline-flex}.manual-refresh[data-v-6ade50fe]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;margin-left:auto;padding:3px 12px;font-size:12px}.manual-refresh[data-v-6ade50fe]:hover{border-color:var(--accent);color:var(--accent)}.idx-row[data-v-6ade50fe]{gap:10px;margin-bottom:12px;display:flex}.idx-card[data-v-6ade50fe]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex:1;padding:8px 12px 6px}.idx-card[data-v-6ade50fe]:hover{border-color:var(--accent)}.idx-top[data-v-6ade50fe]{justify-content:space-between;align-items:baseline;display:flex}.idx-name[data-v-6ade50fe]{color:var(--text-muted);font-size:12px}.idx-chg[data-v-6ade50fe]{font-size:12px}.idx-mid[data-v-6ade50fe]{justify-content:space-between;align-items:baseline;margin-bottom:2px;display:flex}.idx-price[data-v-6ade50fe]{font-size:19px;font-weight:700}.idx-amt[data-v-6ade50fe]{font-size:11px}.grid[data-v-6ade50fe]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.unusual-card[data-v-6ade50fe]{grid-column:1/-1;max-height:320px}.dist-card[data-v-6ade50fe]{min-height:220px}.breadth-bar[data-v-6ade50fe]{border-radius:3px;height:10px;margin:8px 0 6px;display:flex;overflow:hidden}.seg.up[data-v-6ade50fe]{background:var(--up)}.seg.flat[data-v-6ade50fe]{background:var(--text-dim)}.seg.down[data-v-6ade50fe]{background:var(--down)}.stat-nums[data-v-6ade50fe]{justify-content:space-between;margin-bottom:10px;font-size:12px;display:flex}.stat-rows[data-v-6ade50fe]{grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px;display:grid}.stat-rows>div[data-v-6ade50fe]{justify-content:space-between;display:flex}.mood-score[data-v-6ade50fe]{float:right;color:var(--accent);font-size:15px;font-weight:700}.mood-foot[data-v-6ade50fe]{justify-content:space-between;align-items:baseline;margin-top:4px;display:flex}.mood-word[data-v-6ade50fe]{font-size:15px;font-weight:700}.rank-tabs[data-v-6ade50fe]{gap:3px;margin-left:10px;display:inline-flex}.rank-tab[data-v-6ade50fe]{padding:1px 8px;font-size:11px}.rank-tab.on[data-v-6ade50fe]{border-color:var(--accent);color:var(--accent);background:#4a9eff1f}.limit-n[data-v-6ade50fe]{float:right;color:var(--up);font-size:15px;font-weight:700}.limit-card[data-v-6ade50fe]{min-height:200px}.title-sub[data-v-6ade50fe]{font-size:11px;font-weight:400}.dist-chart[data-v-6ade50fe]{align-items:flex-end;gap:2px;height:120px;margin-top:10px;display:flex;position:relative}.dist-col[data-v-6ade50fe]{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.dist-col[data-v-6ade50fe]:hover,.dist-col.hovered[data-v-6ade50fe]{z-index:10}.dist-pop[data-v-6ade50fe]{border:1px solid var(--border);white-space:nowrap;pointer-events:none;text-align:center;z-index:20;background:#1a1d26f7;border-radius:5px;padding:6px 10px;font-size:11px;position:absolute;box-shadow:0 4px 14px #00000073}.pop-range[data-v-6ade50fe]{color:var(--text-muted);margin-bottom:3px}.pop-count[data-v-6ade50fe]{font-size:13px;font-weight:700}.pop-share[data-v-6ade50fe]{color:var(--text-dim);font-size:10.5px}.dist-bar[data-v-6ade50fe]{border-radius:1px;width:100%;min-height:1px}.dist-col.zero[data-v-6ade50fe]{outline:1px dashed var(--text-dim);outline-offset:1px}.dist-label[data-v-6ade50fe]{color:var(--text-dim);transform-origin:top;white-space:nowrap;margin-top:3px;font-size:8.5px;transform:rotate(-60deg)}.board-list[data-v-6ade50fe]{flex-direction:column;gap:5px;display:flex}.board-row[data-v-6ade50fe]{grid-template-columns:84px 1fr 64px;align-items:center;gap:8px;font-size:12px;display:grid}.b-name[data-v-6ade50fe]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-row.clickable[data-v-6ade50fe]{cursor:pointer}.board-row.clickable:hover .b-name[data-v-6ade50fe]{color:var(--accent)}.cold-title[data-v-6ade50fe]{margin-top:10px}.b-bar-wrap[data-v-6ade50fe]{background:var(--bg);border-radius:2px;height:8px;overflow:hidden}.b-bar[data-v-6ade50fe]{border-radius:2px;height:100%;margin-left:auto}.b-bar.up[data-v-6ade50fe]{background:var(--up)}.b-bar.down[data-v-6ade50fe]{background:var(--down)}.b-pct[data-v-6ade50fe]{text-align:right}.unusual-card tr[data-v-6ade50fe],.card table tr[data-v-6ade50fe]{cursor:pointer}.tag[data-v-6ade50fe]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--warn);border-radius:3px;padding:1px 6px;font-size:11px}.err[data-v-6ade50fe]{color:var(--up);padding:12px 0;font-size:12px}.loading[data-v-6ade50fe]{color:var(--text-dim);padding:12px 0;font-size:12px}.dim[data-v-6ade50fe]{color:var(--text-dim)}.ai-history[data-v-067c8bc6]{height:100%;display:flex;overflow:hidden}.side-panel[data-v-067c8bc6]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:280px;padding:20px;overflow-y:auto}.side-panel h2[data-v-067c8bc6]{margin-bottom:12px;font-size:16px}.hint[data-v-067c8bc6]{color:var(--text-dim);margin-bottom:16px;font-size:12px;line-height:1.7}.error-banner[data-v-067c8bc6]{border-radius:var(--radius);color:var(--red,#f44336);background:#f443361a;margin-top:12px;padding:8px 12px;font-size:12px}.list-panel[data-v-067c8bc6]{flex:1;padding:14px 16px;overflow-y:auto}.empty[data-v-067c8bc6]{color:var(--text-dim);text-align:center;padding:40px;font-size:13px}.record[data-v-067c8bc6]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);margin-bottom:8px}.record.open[data-v-067c8bc6]{border-color:var(--accent)}.record-head[data-v-067c8bc6]{cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;display:flex}.record-head:hover .r-title[data-v-067c8bc6]{color:var(--accent)}.r-time[data-v-067c8bc6]{flex-shrink:0;font-size:11px}.r-title[data-v-067c8bc6]{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.r-model[data-v-067c8bc6],.r-elapsed[data-v-067c8bc6]{flex-shrink:0;font-size:11px}.r-arrow[data-v-067c8bc6]{color:var(--text-dim);flex-shrink:0}.record-body[data-v-067c8bc6]{border-top:1px solid var(--border);padding:12px}.reply[data-v-067c8bc6]{white-space:pre-wrap;word-break:break-word;background:var(--bg-elevated);border-left:3px solid var(--accent);border-radius:var(--radius);padding:10px 12px;font-size:13px;line-height:1.75}.ctx-line[data-v-067c8bc6]{margin-top:8px;font-size:11.5px}.ai-note[data-v-067c8bc6]{color:var(--warn,#ffc107);margin-top:6px;font-size:11px}.actions[data-v-067c8bc6]{gap:8px;margin-top:10px;display:flex}.btn-primary[data-v-067c8bc6]{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:5px 14px;font-size:12px}.btn-ghost[data-v-067c8bc6]{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;padding:5px 14px;font-size:12px}.btn-ghost[data-v-067c8bc6]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost[data-v-067c8bc6]:disabled{opacity:.5;cursor:not-allowed}.btn-danger[data-v-067c8bc6]{color:var(--red,#f44336);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #f4433680;padding:5px 14px;font-size:12px}.btn-danger[data-v-067c8bc6]:hover{background:#f443361a}.prompt[data-v-067c8bc6]{white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);color:var(--text-dim);background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius);margin-top:10px;padding:8px 10px;font-size:11px;line-height:1.6}.llm-settings[data-v-c627c56c]{height:100%;display:flex;overflow:hidden}.config-panel[data-v-c627c56c]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:360px;padding:20px;overflow-y:auto}.config-panel h2[data-v-c627c56c]{margin-bottom:12px;font-size:16px}.hint[data-v-c627c56c]{color:var(--text-dim);font-size:12px;line-height:1.6}.hint code[data-v-c627c56c]{font-family:var(--font-mono);word-break:break-all;font-size:11px}.field[data-v-c627c56c]{margin-top:12px;display:block}.field span[data-v-c627c56c]{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.field input[data-v-c627c56c],.field select[data-v-c627c56c],.field textarea[data-v-c627c56c]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);padding:6px 8px;font-family:inherit;font-size:13px}.field textarea[data-v-c627c56c]{font-family:var(--font-mono);resize:vertical;font-size:12px}.row-2[data-v-c627c56c]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.actions[data-v-c627c56c]{gap:10px;margin-top:16px;display:flex}.btn-primary[data-v-c627c56c]{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;flex:1;padding:9px;font-size:13px}.btn-primary[data-v-c627c56c]:hover:not(:disabled){opacity:.9}.btn-ghost[data-v-c627c56c]{border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius);cursor:pointer;background:0 0;flex:1;padding:9px;font-size:13px}.btn-ghost[data-v-c627c56c]:hover:not(:disabled){background:var(--accent);color:#fff}.btn-primary[data-v-c627c56c]:disabled,.btn-ghost[data-v-c627c56c]:disabled{opacity:.5;cursor:not-allowed}.message[data-v-c627c56c]{background:var(--accent-bg,#0078d41a);border-radius:var(--radius);color:var(--accent);word-break:break-all;margin-top:12px;padding:8px 12px;font-size:12px}.test-result[data-v-c627c56c]{border-radius:var(--radius);color:var(--red,#f44336);word-break:break-all;background:#f4433614;margin-top:10px;padding:8px 12px;font-size:12px}.test-result.ok[data-v-c627c56c]{color:var(--green,#4caf50);background:#4caf501f}.error-banner[data-v-c627c56c]{border-radius:var(--radius);color:var(--red,#f44336);background:#f443361a;margin-top:12px;padding:8px 12px;font-size:12px}.warn-banner[data-v-c627c56c]{border-radius:var(--radius);color:var(--warn,#ffc107);background:#ffc1071a;margin-top:12px;padding:8px 12px;font-size:12px}.info-panel[data-v-c627c56c]{flex:1;padding:20px;overflow:auto}.info-panel h3[data-v-c627c56c]{margin-bottom:12px;font-size:14px}.provider-table[data-v-c627c56c]{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:12.5px}.provider-table th[data-v-c627c56c]{text-align:left;border-bottom:2px solid var(--border);color:var(--text-dim);padding:7px 10px;font-weight:500}.provider-table td[data-v-c627c56c]{border-bottom:1px solid var(--border);padding:7px 10px}.provider-table tr.current[data-v-c627c56c]{background:var(--accent-bg,#0078d40f)}.mono[data-v-c627c56c]{font-family:var(--font-mono);font-size:11.5px}.heatmap-chart[data-v-dfcb0981]{width:100%;height:380px}.opt-table[data-v-96556646]{border-collapse:collapse;width:100%;font-size:13px}.opt-table th[data-v-96556646],.opt-table td[data-v-96556646]{border-bottom:1px solid var(--border);text-align:left;padding:6px 10px}.opt-table th[data-v-96556646]{color:var(--text-dim);background:var(--bg-panel);font-size:12px;position:sticky;top:0}.num[data-v-96556646]{text-align:right;font-family:var(--font-mono)}.params[data-v-96556646]{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.rank[data-v-96556646]{color:var(--text-dim);width:32px}.best[data-v-96556646]{background:#4a9eff14}.best .rank[data-v-96556646]{color:var(--accent);font-weight:700}.pos[data-v-96556646]{color:var(--up)}.neg[data-v-96556646]{color:var(--down)}.view-btn[data-v-96556646]{padding:2px 8px;font-size:11px}.hint[data-v-333fd245]{color:var(--text-muted);margin-bottom:10px;font-size:12px}.param-row[data-v-333fd245]{margin-bottom:10px}.check[data-v-333fd245]{color:var(--text);align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.check input[type=checkbox][data-v-333fd245]{width:auto}.values-input[data-v-333fd245]{font-family:var(--font-mono);margin-top:4px}.grid-size[data-v-333fd245]{color:var(--text-dim);margin-top:4px;font-size:11px}.quote-carousel[data-v-23299bbd]{justify-content:center;align-items:center;height:100%;min-height:320px;padding:32px 16px;display:flex}.quote-card[data-v-23299bbd]{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;width:100%;max-width:560px;padding:40px 36px 28px;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000059,0 0 0 1px #f59e0b14}.quote-progress[data-v-23299bbd]{background:#ffffff0d;height:2px;position:absolute;top:0;left:0;right:0}.quote-progress .bar[data-v-23299bbd]{transform-origin:0;width:100%;height:100%;animation:quote-progress-fill-23299bbd var(--quote-interval,3s) linear infinite;background:linear-gradient(90deg,#f59e0b,#ea580c);display:block}@keyframes quote-progress-fill-23299bbd{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.quote-mark[data-v-23299bbd]{color:#f59e0b2e;-webkit-user-select:none;user-select:none;pointer-events:none;font-family:Georgia,Times New Roman,serif;font-size:64px;line-height:1;position:absolute;top:8px;left:18px}.quote-block[data-v-23299bbd]{z-index:1;position:relative}.quote-text[data-v-23299bbd]{color:var(--text);font-feature-settings:"palt";margin-bottom:14px;font-size:18px;font-weight:500;line-height:1.7}.quote-author[data-v-23299bbd]{color:#f59e0b;text-align:right;font-size:13px;font-weight:600}.quote-hint[data-v-23299bbd]{border-top:1px dashed var(--border);color:var(--text-dim);justify-content:center;align-items:center;gap:6px;margin-top:24px;padding-top:14px;font-size:12px;display:flex}.dot[data-v-23299bbd]{background:#f59e0b;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite quote-pulse-23299bbd;display:inline-block}@keyframes quote-pulse-23299bbd{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.quote-fade-enter-active[data-v-23299bbd],.quote-fade-leave-active[data-v-23299bbd]{transition:opacity .35s,transform .35s}.quote-fade-enter-from[data-v-23299bbd]{opacity:0;transform:translateY(10px)}.quote-fade-leave-to[data-v-23299bbd]{opacity:0;transform:translateY(-10px)}.optimize-view[data-v-d8ae5a88]{height:100%;display:flex}.config-panel[data-v-d8ae5a88]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:320px;padding:16px;overflow-y:auto}.panel-section[data-v-d8ae5a88]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.panel-section[data-v-d8ae5a88]:last-of-type{border-bottom:none}.panel-section h3[data-v-d8ae5a88]{margin-bottom:12px;font-size:13px;font-weight:600}.hint[data-v-d8ae5a88]{color:var(--text-muted,#888);margin-left:6px;font-size:12px;font-weight:400}.workers-tip[data-v-d8ae5a88]{color:var(--text-muted,#888);margin:8px 0 0;font-size:12px;line-height:1.5}.run-btn[data-v-d8ae5a88]{width:100%;margin-top:8px;padding:10px;font-size:14px}.run-btn[data-v-d8ae5a88]:first-of-type{margin-top:0}.run-all-btn[data-v-d8ae5a88]{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#ea580c 100%);border:1px solid #f59e0b;font-weight:600;box-shadow:0 4px 14px #f59e0b59}.run-all-btn[data-v-d8ae5a88]:hover:not(:disabled){background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#fbbf24;transform:translateY(-1px);box-shadow:0 6px 18px #f59e0b80}.run-all-btn[data-v-d8ae5a88]:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #f59e0b59}.run-all-btn[data-v-d8ae5a88]:disabled{color:#fde68a;opacity:.9;cursor:not-allowed;box-shadow:none;background:linear-gradient(135deg,#b45309,#9a3412);border-color:#b45309;transform:none}.report-panel[data-v-d8ae5a88]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-d8ae5a88]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-d8ae5a88]{border:1px solid var(--up);color:var(--up);border-radius:var(--radius);background:#ef41461f;margin-bottom:16px;padding:10px 14px;font-size:13px}.report-section[data-v-d8ae5a88]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-d8ae5a88]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.best-summary[data-v-d8ae5a88]{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.best-params[data-v-d8ae5a88]{font-family:var(--font-mono);color:var(--accent);font-size:14px}.best-return[data-v-d8ae5a88]{font-size:22px;font-weight:700;font-family:var(--font-mono)}.best-meta[data-v-d8ae5a88]{color:var(--text-dim);font-size:12px}.meta-line[data-v-d8ae5a88]{color:var(--text-dim);margin-top:8px;font-size:12px}.pos[data-v-d8ae5a88]{color:var(--up)}.neg[data-v-d8ae5a88]{color:var(--down)}.opt-table[data-v-d8ae5a88]{border-collapse:collapse;width:100%;font-size:13px}.opt-table th[data-v-d8ae5a88],.opt-table td[data-v-d8ae5a88]{border-bottom:1px solid var(--border);text-align:left;padding:6px 10px}.opt-table th[data-v-d8ae5a88]{color:var(--text-dim);background:var(--bg-panel);font-size:12px;position:sticky;top:0}.num[data-v-d8ae5a88]{text-align:right;font-family:var(--font-mono)}.params[data-v-d8ae5a88]{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.rank[data-v-d8ae5a88]{color:var(--text-dim);width:32px}.best[data-v-d8ae5a88]{background:#4a9eff14}.best .rank[data-v-d8ae5a88]{color:var(--accent);font-weight:700}.view-btn[data-v-d8ae5a88]{padding:2px 8px;font-size:11px}.grade-cell[data-v-d8ae5a88]{width:56px}.compare-chart[data-v-f6ee9429]{width:100%;height:360px}.summary-table[data-v-8e5f4d9a]{border-collapse:collapse;width:100%;font-size:13px}.summary-table th[data-v-8e5f4d9a],.summary-table td[data-v-8e5f4d9a]{border-bottom:1px solid var(--border);text-align:left;padding:7px 10px}.summary-table th[data-v-8e5f4d9a]{color:var(--text-dim);font-size:12px;font-weight:600}.num[data-v-8e5f4d9a]{text-align:right;font-family:var(--font-mono)}.sym[data-v-8e5f4d9a]{font-family:var(--font-mono);font-weight:600}.muted[data-v-8e5f4d9a]{color:var(--text-dim)}.pos[data-v-8e5f4d9a]{color:var(--up)}.neg[data-v-8e5f4d9a]{color:var(--down)}.add-row[data-v-7fcfd712]{gap:6px;display:flex}.add-row input[data-v-7fcfd712]{flex:1}.market-hint[data-v-7fcfd712]{color:var(--text-dim);margin-top:4px;font-size:11px}.stock-list[data-v-7fcfd712]{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.stock-tag[data-v-7fcfd712]{background:var(--bg-elevated);border:1px solid var(--border);font-size:12px;font-family:var(--font-mono);border-radius:4px;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.remove[data-v-7fcfd712]{color:var(--text-dim);background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.remove[data-v-7fcfd712]:hover{color:var(--up)}.hint[data-v-7fcfd712]{color:var(--text-dim);margin-top:8px;font-size:11px}.portfolio-view[data-v-93fcd982]{height:100%;display:flex}.config-panel[data-v-93fcd982]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:320px;padding:16px;overflow-y:auto}.panel-section[data-v-93fcd982]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.panel-section[data-v-93fcd982]:last-of-type{border-bottom:none}.panel-section h3[data-v-93fcd982]{margin-bottom:12px;font-size:13px;font-weight:600}.loading-text[data-v-93fcd982]{color:var(--text-dim);font-size:12px}.run-btn[data-v-93fcd982]{width:100%;padding:10px;font-size:14px}.report-panel[data-v-93fcd982]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-93fcd982]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-93fcd982]{border:1px solid var(--up);color:var(--up);border-radius:var(--radius);background:#ef41461f;margin-bottom:16px;padding:10px 14px;font-size:13px}.report-section[data-v-93fcd982]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-93fcd982]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.perf-summary[data-v-93fcd982]{gap:32px;display:flex}.perf-item[data-v-93fcd982]{flex-direction:column;gap:4px;display:flex}.perf-item .label[data-v-93fcd982]{color:var(--text-dim);font-size:12px}.perf-item .value[data-v-93fcd982]{font-size:20px;font-weight:600;font-family:var(--font-mono)}.pos[data-v-93fcd982]{color:var(--up)}.neg[data-v-93fcd982]{color:var(--down)}.result-toolbar[data-v-93fcd982]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.result-toolbar .ghost[data-v-93fcd982]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;padding:6px 12px;font-size:12px}.result-toolbar .ghost[data-v-93fcd982]:hover{border-color:var(--accent);color:var(--accent)}.save-msg[data-v-93fcd982]{color:var(--up);font-size:12px}.modal-overlay[data-v-93fcd982]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-93fcd982]{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;width:380px;max-width:90vw;padding:20px;display:flex}.modal h3[data-v-93fcd982]{font-size:15px;font-weight:600}.modal-desc[data-v-93fcd982]{color:var(--text-dim);font-size:12px;line-height:1.5}.modal .field[data-v-93fcd982]{flex-direction:column;gap:4px;display:flex}.modal .field label[data-v-93fcd982]{color:var(--text-muted);font-size:12px}.modal .field input[data-v-93fcd982],.modal .field textarea[data-v-93fcd982]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);resize:vertical;padding:7px 9px;font-family:inherit;font-size:13px}.modal-summary[data-v-93fcd982]{color:var(--text-dim);font-size:12px;font-family:var(--font-mono);background:var(--bg);border-radius:var(--radius);padding:8px 10px}.modal-actions[data-v-93fcd982]{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions .ghost[data-v-93fcd982]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-93fcd982]{cursor:pointer;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-93fcd982]:disabled,.modal-actions .ghost[data-v-93fcd982]:disabled{opacity:.5;cursor:default}.server-settings[data-v-47f4b205]{height:100%;display:flex;overflow:hidden}.config-panel[data-v-47f4b205]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:280px;padding:20px;overflow-y:auto}.config-panel h2[data-v-47f4b205]{margin-bottom:20px;font-size:16px}.current-host[data-v-47f4b205]{margin-bottom:16px}.current-host .label[data-v-47f4b205]{color:var(--text-dim);margin-bottom:4px;font-size:12px;display:block}.current-host .host-value[data-v-47f4b205]{color:var(--accent);font-family:monospace;font-size:15px;font-weight:600}.btn-test[data-v-47f4b205]{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;margin-bottom:16px;padding:10px;font-size:14px}.btn-test[data-v-47f4b205]:hover:not(:disabled){opacity:.9}.btn-test[data-v-47f4b205]:disabled{opacity:.5;cursor:not-allowed}.hint[data-v-47f4b205]{color:var(--text-dim);font-size:12px;line-height:1.6}.message[data-v-47f4b205]{background:var(--accent-bg,#0078d41a);border-radius:var(--radius);color:var(--accent);margin-top:12px;padding:8px 12px;font-size:13px}.error-banner[data-v-47f4b205]{border-radius:var(--radius);color:var(--red,#f44336);background:#f443361a;margin-top:12px;padding:8px 12px;font-size:13px}.report-panel[data-v-47f4b205]{flex:1;padding:20px;overflow:auto}.host-table[data-v-47f4b205]{border-collapse:collapse;width:100%;font-size:13px}.host-table th[data-v-47f4b205]{text-align:left;border-bottom:2px solid var(--border);color:var(--text-dim);background:var(--bg-panel);padding:8px 12px;font-weight:500;position:sticky;top:0}.host-table td[data-v-47f4b205]{border-bottom:1px solid var(--border);padding:8px 12px}.host-table tr.is-current[data-v-47f4b205]{background:var(--accent-bg,#0078d40d)}.host-table tr.is-unreachable[data-v-47f4b205]{opacity:.5}.host-ip[data-v-47f4b205]{font-family:monospace;font-size:13px}.latency[data-v-47f4b205]{font-family:monospace;font-weight:600}.badge[data-v-47f4b205]{border-radius:10px;padding:2px 8px;font-size:11px;display:inline-block}.badge-current[data-v-47f4b205]{background:var(--accent);color:#fff}.badge-ok[data-v-47f4b205]{color:var(--green,#4caf50);background:#4caf5026}.badge-unknown[data-v-47f4b205]{background:var(--bg-panel);color:var(--text-dim)}.badge-bad[data-v-47f4b205]{color:var(--red,#f44336);background:#f443361a}.btn-switch[data-v-47f4b205]{border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius);cursor:pointer;background:0 0;padding:4px 16px;font-size:12px}.btn-switch[data-v-47f4b205]:hover:not(:disabled){background:var(--accent);color:#fff}.btn-switch[data-v-47f4b205]:disabled{opacity:.5;cursor:not-allowed}.current-mark[data-v-47f4b205]{color:var(--green,#4caf50);font-size:16px}.empty[data-v-47f4b205]{text-align:center;color:var(--text-dim);padding:40px}.radar-view[data-v-4bc32cb7]{height:100%;padding:16px 20px 32px;overflow-y:auto}.page-header[data-v-4bc32cb7]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-4bc32cb7]{font-size:16px;font-weight:600}.subtitle[data-v-4bc32cb7]{color:var(--text-dim);margin-top:4px;font-size:12px}.header-actions[data-v-4bc32cb7]{align-items:center;gap:10px;display:flex}.window-picker[data-v-4bc32cb7]{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.window-picker select[data-v-4bc32cb7]{background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:5px 8px;font-size:12px}.primary[data-v-4bc32cb7]{background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;padding:7px 18px;font-size:13px;font-weight:600}.primary[data-v-4bc32cb7]:hover:not(:disabled){filter:brightness(1.1)}.primary[data-v-4bc32cb7]:disabled{opacity:.6;cursor:default}.error-banner[data-v-4bc32cb7]{border:1px solid var(--up);color:var(--up);border-radius:var(--radius);background:#ef41461f;margin-bottom:16px;padding:10px 14px;font-size:13px}.scanning-box[data-v-4bc32cb7]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:18px 16px;font-size:13px;display:flex}.spinner[data-v-4bc32cb7]{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin-4bc32cb7}@keyframes spin-4bc32cb7{to{transform:rotate(360deg)}}.placeholder[data-v-4bc32cb7]{text-align:center;height:50%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.placeholder .hint[data-v-4bc32cb7],.hint[data-v-4bc32cb7]{color:var(--text-dim);max-width:560px;font-size:12px;line-height:1.6}.stat-cards[data-v-4bc32cb7]{gap:14px;margin-bottom:10px;display:flex}.stat[data-v-4bc32cb7]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex:1;gap:3px;padding:10px 14px;display:flex}.stat .k[data-v-4bc32cb7]{color:var(--text-dim);font-size:12px}.stat .v[data-v-4bc32cb7]{font-size:22px;font-weight:700;font-family:var(--font-mono)}.stat .v.buy[data-v-4bc32cb7]{color:var(--up)}.stat .v.sell[data-v-4bc32cb7]{color:var(--down)}.stat .v.dim[data-v-4bc32cb7]{color:var(--text-dim)}.tabs[data-v-4bc32cb7]{border-bottom:1px solid var(--border);gap:4px;margin:14px 0 12px;display:flex}.tab[data-v-4bc32cb7]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.tab[data-v-4bc32cb7]:hover{color:var(--text)}.tab.active[data-v-4bc32cb7]{color:var(--text);border-bottom-color:var(--accent)}.tab-count[data-v-4bc32cb7]{background:var(--border);color:var(--text-dim);border-radius:8px;padding:1px 6px;font-size:11px;font-weight:400}.tab.active .tab-count[data-v-4bc32cb7]{color:var(--accent);background:#4a9eff2e}.radar-table[data-v-4bc32cb7]{border-collapse:collapse;width:100%;font-size:13px}.radar-table th[data-v-4bc32cb7],.radar-table td[data-v-4bc32cb7]{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.radar-table th[data-v-4bc32cb7]{color:var(--text-dim);font-size:12px;font-weight:600}.radar-table .num[data-v-4bc32cb7]{text-align:right;font-family:var(--font-mono)}.radar-table .name[data-v-4bc32cb7]{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-weight:500;overflow:hidden}.radar-table .sym[data-v-4bc32cb7]{font-family:var(--font-mono);white-space:nowrap;font-weight:600}.radar-table .sub-strat[data-v-4bc32cb7]{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.sub-strat .params[data-v-4bc32cb7]{font-family:var(--font-mono);color:var(--text-dim);margin-left:6px;font-size:11px}.radar-table .seq[data-v-4bc32cb7]{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:12px}.radar-table .err[data-v-4bc32cb7]{color:var(--up);font-size:12px}.radar-table tr.errored[data-v-4bc32cb7]{opacity:.75}.kind-badge[data-v-4bc32cb7]{color:var(--accent);white-space:nowrap;background:#4a9eff26;border-radius:4px;padding:2px 7px;font-size:11px}.kind-badge.portfolio[data-v-4bc32cb7]{color:#b39ddb;background:#8c6edc2e}.kind-badge.multi[data-v-4bc32cb7]{color:#f59e0b;background:#f59e0b2e}.signal-tag[data-v-4bc32cb7]{white-space:nowrap;border-radius:4px;padding:2px 10px;font-size:12px;font-weight:600}.signal-tag.BUY[data-v-4bc32cb7]{color:var(--up);background:#ef414624}.signal-tag.SELL[data-v-4bc32cb7]{color:var(--down);background:#18a05829}.none-tag[data-v-4bc32cb7]{color:var(--text-dim)}.pos-tag[data-v-4bc32cb7]{white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px}.pos-tag.holding[data-v-4bc32cb7]{color:var(--up);background:#ef41461f}.pos-tag.flat[data-v-4bc32cb7]{background:var(--border);color:var(--text-dim)}.ghost[data-v-4bc32cb7]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;padding:4px 12px;font-size:12px}.ghost[data-v-4bc32cb7]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sm[data-v-4bc32cb7]{padding:4px 12px;font-size:12px}.strategies-view[data-v-6df328cc]{height:100%;padding:16px 20px 32px;overflow-y:auto}.page-header[data-v-6df328cc]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-6df328cc]{font-size:16px;font-weight:600}.subtitle[data-v-6df328cc]{color:var(--text-dim);margin-top:4px;font-size:12px}.header-actions[data-v-6df328cc]{align-items:center;gap:8px;display:flex}.header-actions .sm[data-v-6df328cc]{cursor:pointer;padding:6px 12px;font-size:12px}.header-actions .primary[data-v-6df328cc]{border-radius:var(--radius)}.tabs[data-v-6df328cc]{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tab[data-v-6df328cc]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s;display:flex}.tab[data-v-6df328cc]:hover{color:var(--text)}.tab.active[data-v-6df328cc]{color:var(--text);border-bottom-color:var(--accent)}.tab-count[data-v-6df328cc]{background:var(--border);color:var(--text-dim);border-radius:8px;padding:1px 6px;font-size:11px;font-weight:400}.tab.active .tab-count[data-v-6df328cc]{color:var(--accent);background:#4a9eff2e}.ghost[data-v-6df328cc]{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;padding:6px 12px;font-size:12px}.ghost[data-v-6df328cc]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.placeholder[data-v-6df328cc]{text-align:center;height:60%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.placeholder .hint[data-v-6df328cc]{max-width:420px;font-size:12px;line-height:1.6}.error-banner[data-v-6df328cc]{border:1px solid var(--up);color:var(--up);border-radius:var(--radius);background:#ef41461f;margin-bottom:16px;padding:10px 14px;font-size:13px}.card-grid[data-v-6df328cc]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.card[data-v-6df328cc]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.card-head[data-v-6df328cc]{align-items:center;gap:8px;display:flex}.select-box[data-v-6df328cc]{cursor:pointer;flex-shrink:0;align-items:center;display:flex}.select-box input[data-v-6df328cc]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.select-box input[data-v-6df328cc]:disabled{cursor:not-allowed;opacity:.3}.card.selected[data-v-6df328cc]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.kind-badge[data-v-6df328cc]{color:var(--accent);background:#4a9eff26;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:11px}.kind-badge.portfolio[data-v-6df328cc]{color:#b39ddb;background:#8c6edc2e}.card-title[data-v-6df328cc]{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.card-strategy[data-v-6df328cc]{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;font-weight:500;display:flex}.card-strategy .params[data-v-6df328cc]{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.card-meta[data-v-6df328cc]{color:var(--text-muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.meta-row[data-v-6df328cc]{gap:8px;display:flex}.meta-row .k[data-v-6df328cc]{color:var(--text-dim);flex-shrink:0;width:32px}.meta-row .v[data-v-6df328cc]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-snapshot[data-v-6df328cc]{border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);gap:20px;padding:8px 0;display:flex}.snap-item[data-v-6df328cc]{flex-direction:column;gap:2px;display:flex}.snap-item .k[data-v-6df328cc]{color:var(--text-dim);font-size:11px}.snap-item .v[data-v-6df328cc]{font-size:15px;font-weight:600}.mono[data-v-6df328cc]{font-family:var(--font-mono)}.pos[data-v-6df328cc]{color:var(--up)}.neg[data-v-6df328cc]{color:var(--down)}.card-tags[data-v-6df328cc]{flex-wrap:wrap;gap:6px;display:flex}.tag[data-v-6df328cc]{background:var(--border);color:var(--text-muted);border-radius:10px;padding:2px 8px;font-size:11px}.card-notes[data-v-6df328cc]{color:var(--text-muted);white-space:pre-wrap;font-size:12px;line-height:1.5}.card-foot[data-v-6df328cc]{justify-content:space-between;align-items:center;margin-top:auto;padding-top:6px;display:flex}.created[data-v-6df328cc]{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.actions[data-v-6df328cc]{gap:8px;display:flex}.sm[data-v-6df328cc]{padding:4px 12px;font-size:12px}.danger[data-v-6df328cc]{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0}.danger[data-v-6df328cc]:hover:not(:disabled){border-color:var(--up);color:var(--up)}.danger[data-v-6df328cc]:disabled{opacity:.5;cursor:default}.combo-result[data-v-6df328cc]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:16px 18px}.combo-title[data-v-6df328cc]{margin-bottom:14px;font-size:15px;font-weight:600}.combo-meta[data-v-6df328cc]{color:var(--text-dim);font-size:12px;font-weight:400}.combo-loading[data-v-6df328cc]{text-align:center;color:var(--text-dim);padding:24px;font-size:13px}.combo-content[data-v-6df328cc]{flex-direction:column;gap:18px;display:flex}.combo-summary[data-v-6df328cc]{gap:28px;display:flex}.combo-stat[data-v-6df328cc]{flex-direction:column;gap:3px;display:flex}.combo-stat .label[data-v-6df328cc]{color:var(--text-dim);font-size:12px}.combo-stat .value[data-v-6df328cc]{font-size:22px;font-weight:700;font-family:var(--font-mono)}.combo-chart-block h4[data-v-6df328cc]{color:var(--text-muted);margin-bottom:10px;font-size:13px;font-weight:600}.holdings-hint[data-v-6df328cc]{color:var(--text-dim);margin-left:6px;font-size:11px;font-weight:400}.empty-text[data-v-6df328cc]{color:var(--text-dim);padding:12px 0;font-size:13px}.holdings-table[data-v-6df328cc]{border-collapse:collapse;width:100%;font-size:13px}.holdings-table th[data-v-6df328cc],.holdings-table td[data-v-6df328cc]{text-align:left;border-bottom:1px solid var(--border);padding:7px 10px}.holdings-table th[data-v-6df328cc]{color:var(--text-dim);font-size:12px;font-weight:600}.holdings-table .num[data-v-6df328cc]{text-align:right;font-family:var(--font-mono)}.holdings-table .sym[data-v-6df328cc]{font-family:var(--font-mono);font-weight:600}.holdings-table tr.cleared[data-v-6df328cc]{opacity:.5}.status-tag[data-v-6df328cc]{border-radius:4px;padding:2px 8px;font-size:11px}.status-tag.holding[data-v-6df328cc]{color:var(--up);background:#ef41461f}.status-tag.cleared[data-v-6df328cc]{background:var(--border);color:var(--text-dim)}.card-multi[data-v-6df328cc]{background:linear-gradient(180deg, #f59e0b0a, var(--bg-panel) 30%);border-color:#f59e0b59}.card-multi[data-v-6df328cc]:hover{border-color:#f59e0b99}.multi-icon[data-v-6df328cc]{color:#f59e0b;text-align:center;flex-shrink:0;align-items:center;width:16px;font-size:18px;display:flex}.kind-badge.multi[data-v-6df328cc]{color:#f59e0b;background:#f59e0b2e}.save-combo-btn[data-v-6df328cc]{color:#fff;border-radius:var(--radius);cursor:pointer;vertical-align:middle;background:linear-gradient(135deg,#f59e0b,#ea580c);border:1px solid #f59e0b;margin-left:12px;padding:5px 12px;font-size:12px;font-weight:600}.save-combo-btn[data-v-6df328cc]:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.warn-box[data-v-6df328cc]{border-radius:var(--radius);margin-bottom:12px;padding:10px 14px;font-size:12px;line-height:1.6}.warn-box strong[data-v-6df328cc]{color:#fbbf24}.warn-box.overfit[data-v-6df328cc]{border-left:3px solid var(--warn);color:#f0a020;background:#f0a0201a;margin-bottom:14px}.warn-box.disclaimer[data-v-6df328cc]{color:var(--text-muted);background:#f0a0200f;border:1px dashed #f0a02066;padding:8px 12px;font-size:11px}.rerun-btn[data-v-6df328cc]{color:#f59e0b;border-radius:var(--radius);cursor:pointer;background:#f59e0b1f;border:1px solid #f59e0b80;font-weight:600}.rerun-btn[data-v-6df328cc]:hover:not(:disabled){color:#fbbf24;background:#f59e0b33;border-color:#f59e0b}.rerun-btn[data-v-6df328cc]:disabled{opacity:.5;cursor:not-allowed}.status-tag.win[data-v-6df328cc]{color:var(--down);background:#18a0582e}.status-tag.lose[data-v-6df328cc]{color:#f0a020;background:#f0a0202e}.status-tag.wait[data-v-6df328cc]{background:var(--border);color:var(--text-dim)}.holdings-table tr.row-win[data-v-6df328cc]{background:#18a0580a}.holdings-table tr.row-lose[data-v-6df328cc]{background:#f0a0200d}.modal-mask[data-v-6df328cc]{z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-6df328cc]{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;width:420px;max-width:calc(100vw - 32px);padding:20px 22px;box-shadow:0 16px 48px #00000080}.modal h3[data-v-6df328cc]{margin-bottom:6px;font-size:15px;font-weight:600}.modal-desc[data-v-6df328cc]{color:var(--text-muted);margin-bottom:14px;font-size:12px;line-height:1.6}.modal-field[data-v-6df328cc]{margin-bottom:12px}.modal-field textarea[data-v-6df328cc]{resize:vertical;font-family:inherit}.modal-actions[data-v-6df328cc]{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.wl[data-v-995c0fb4]{flex-direction:column;gap:10px;height:100%;padding:14px 16px;display:flex}.toolbar[data-v-995c0fb4]{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.toolbar h2[data-v-995c0fb4]{font-size:16px}.add-row[data-v-995c0fb4]{gap:8px;display:flex}.code-input[data-v-995c0fb4]{width:110px}.name-input[data-v-995c0fb4]{width:140px}.hint[data-v-995c0fb4]{color:var(--text-dim);margin-left:auto;font-size:12px}.err[data-v-995c0fb4]{color:var(--up);font-size:12px}.table-wrap[data-v-995c0fb4]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);flex:1;overflow:auto}.data-row[data-v-995c0fb4]{cursor:pointer}.data-row[data-v-995c0fb4]:hover{background:var(--bg-elevated)}.cell-name[data-v-995c0fb4]{font-weight:600}.cell-code[data-v-995c0fb4]{font-size:11px}.big[data-v-995c0fb4]{font-size:14px;font-weight:700}.empty-row td[data-v-995c0fb4]{text-align:center;color:var(--text-dim);padding:40px 0;font-size:13px}.del[data-v-995c0fb4]{color:var(--text-dim);background:0 0;border:none;padding:1px 7px;font-size:11px}.del[data-v-995c0fb4]:hover{color:var(--up)}.dim[data-v-995c0fb4]{color:var(--text-dim)}:root{--bg:#0f1117;--bg-elevated:#1a1d26;--bg-panel:#161922;--border:#2a2e3a;--text:#e6e8eb;--text-muted:#8b919e;--text-dim:#5c6370;--accent:#4a9eff;--up:#ef4146;--down:#18a058;--warn:#f0a020;--radius:6px;--font-mono:"JetBrains Mono", "Cascadia Code", Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:var(--bg);height:100%;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:var(--radius);padding:6px 14px;font-size:13px;transition:all .15s}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:disabled{background:var(--bg-elevated);color:var(--text-dim)}input,select,textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);width:100%;padding:6px 10px;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}label{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.field{margin-bottom:12px}.row{align-items:flex-end;gap:8px;display:flex}.row>*{flex:1}a{color:var(--accent)}.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--text-muted)}.mono{font-family:var(--font-mono)}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;overflow:auto}.card h3{color:var(--text-muted);margin-bottom:8px;font-size:13px;font-weight:600}.qtable{border-collapse:collapse;width:100%;font-size:12.5px}.qtable th{text-align:right;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 8px;font-weight:500}.qtable td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;font-family:var(--font-mono);padding:4px 8px}.qtable th:first-child,.qtable td:first-child{text-align:left;font-family:inherit}
