.app[data-v-943d0ca1]{flex-direction:column;height:100vh;display:flex}.app-row[data-v-943d0ca1]{flex:1;min-height:0;display:flex}.global-disclaimer[data-v-943d0ca1]{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-943d0ca1]{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:176px;display:flex}.brand[data-v-943d0ca1]{border-bottom:1px solid var(--border);padding:14px 16px 12px}.brand-name[data-v-943d0ca1]{letter-spacing:.5px;font-size:16px;font-weight:700}.brand-sub[data-v-943d0ca1]{color:var(--text-dim);margin-top:2px;font-size:11px;display:block}.side-nav[data-v-943d0ca1]{flex:1;padding:8px 0;overflow-y:auto}.nav-group[data-v-943d0ca1]{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;padding:10px 16px 4px;font-size:11px}.side-nav a[data-v-943d0ca1]{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-943d0ca1]:hover{color:var(--text);background:var(--bg-elevated)}.side-nav a.active[data-v-943d0ca1]{color:var(--accent);border-left-color:var(--accent);background:var(--bg-elevated)}.side-footer[data-v-943d0ca1]{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-943d0ca1]{background:var(--text-dim);border-radius:50%;width:7px;height:7px}.dot.open[data-v-943d0ca1]{background:var(--up);box-shadow:0 0 4px var(--up)}.dot.connecting[data-v-943d0ca1]{background:var(--warn)}.sse-ts[data-v-943d0ca1]{font-family:var(--font-mono);margin-left:auto}.sse-n[data-v-943d0ca1]{color:var(--text-dim)}.app-main[data-v-943d0ca1]{flex:1;overflow:hidden}.modal-overlay[data-v-61c7b1c5]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-61c7b1c5]{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-61c7b1c5]{font-size:15px;font-weight:600}.modal-desc[data-v-61c7b1c5]{color:var(--text-dim);font-size:12px;line-height:1.5}.modal-actions[data-v-61c7b1c5]{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions .ghost[data-v-61c7b1c5]{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-61c7b1c5]{cursor:pointer;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-61c7b1c5]:disabled,.modal-actions .ghost[data-v-61c7b1c5]:disabled{opacity:.5;cursor:default}.modal-wide[data-v-61c7b1c5]{width:640px}.ai-prompt-area[data-v-61c7b1c5]{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-61c7b1c5]{max-height:18vh}.ai-reply[data-v-61c7b1c5]{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-61c7b1c5]{color:var(--up);font-size:12px}.ai-note[data-v-61c7b1c5]{color:var(--warn,#ffc107);margin-top:4px;font-size:11px}.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-21017ac9]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;display:flex}.score-block[data-v-21017ac9],.excess-block[data-v-21017ac9]{align-items:baseline;gap:6px;display:flex}.score-label[data-v-21017ac9]{color:var(--text-dim);font-size:12px}.score-value[data-v-21017ac9]{font-size:26px;font-weight:700;font-family:var(--font-mono)}.score-unit[data-v-21017ac9]{color:var(--text-dim);font-size:12px}.pos[data-v-21017ac9]{color:var(--up)}.neg[data-v-21017ac9]{color:#2ebd85}.badge[data-v-21017ac9]{border-radius:10px;padding:4px 10px;font-size:12px;font-weight:600}.badge-ok[data-v-21017ac9]{color:#2ebd85;background:#2ebd8526;border:1px solid #2ebd85}.badge-warn[data-v-21017ac9]{color:var(--up);border:1px solid var(--up);background:#ef41461f}.score-components[data-v-21017ac9]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 14px;margin-bottom:14px;display:grid}.comp[data-v-21017ac9]{align-items:center;gap:8px;font-size:12px;display:flex}.comp-label[data-v-21017ac9]{width:86px;color:var(--text-muted);flex-shrink:0}.comp-label small[data-v-21017ac9]{color:var(--text-dim)}.comp-bar[data-v-21017ac9]{background:var(--bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.comp-fill[data-v-21017ac9]{background:var(--accent,#4a9eff);border-radius:3px;height:100%}.comp-value[data-v-21017ac9]{text-align:right;width:28px;font-family:var(--font-mono);color:var(--text-muted)}.bench-row[data-v-21017ac9]{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px;display:grid}.bench-row-4[data-v-21017ac9]{grid-template-columns:repeat(4,1fr)}.bench-cell[data-v-21017ac9]{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-21017ac9]{font-family:var(--font-mono);font-weight:600}.bench-warn[data-v-21017ac9]{color:var(--up);margin:4px 0 12px;font-size:12px}.sub-title[data-v-21017ac9]{color:var(--text-muted);margin:14px 0 8px;font-size:12px}.check-list[data-v-21017ac9]{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-21017ac9]{align-items:baseline;gap:6px;font-size:12px;display:flex}.check-mark[data-v-21017ac9]{flex-shrink:0;width:14px;font-weight:700}.check-list li.ok .check-mark[data-v-21017ac9]{color:#2ebd85}.check-list li.bad .check-mark[data-v-21017ac9]{color:var(--up)}.check-detail[data-v-21017ac9]{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-e68f7f0a]{overflow-x:auto}.empty[data-v-e68f7f0a]{color:var(--text-dim);padding:16px 0;font-size:13px}.trade-table[data-v-e68f7f0a]{border-collapse:collapse;width:100%;font-size:13px}.trade-table th[data-v-e68f7f0a],.trade-table td[data-v-e68f7f0a]{text-align:left;border-bottom:1px solid var(--border);padding:7px 10px}.trade-table th[data-v-e68f7f0a]{color:var(--text-dim);background:var(--bg-panel);font-size:12px;font-weight:600;position:sticky;top:0}.num[data-v-e68f7f0a]{text-align:right;font-family:var(--font-mono)}.muted[data-v-e68f7f0a]{color:var(--text-dim)}.BUY[data-v-e68f7f0a]{color:var(--up);font-weight:600}.SELL[data-v-e68f7f0a]{color:var(--down);font-weight:600}.pos[data-v-e68f7f0a]{color:var(--up)}.neg[data-v-e68f7f0a]{color:var(--down)}.rejected td[data-v-e68f7f0a]{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-73af6ccc]{height:100%;display:flex}.config-panel[data-v-73af6ccc]{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-73af6ccc]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.panel-section[data-v-73af6ccc]:last-of-type{border-bottom:none}.panel-section h3[data-v-73af6ccc]{color:var(--text);margin-bottom:12px;font-size:13px;font-weight:600}.loading-text[data-v-73af6ccc]{color:var(--text-dim);font-size:12px}.check-row[data-v-73af6ccc]{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;margin-bottom:8px;display:flex}.check-label[data-v-73af6ccc]{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-73af6ccc]{width:auto;accent-color:var(--accent,#4a9eff);flex-shrink:0;margin:0}.wf-windows[data-v-73af6ccc]{color:var(--text-dim);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.wf-windows input[data-v-73af6ccc]{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-73af6ccc]{color:var(--text-dim);margin:2px 0 0;font-size:11px}.run-btn[data-v-73af6ccc]{width:100%;margin-top:auto;padding:10px;font-size:14px}.report-panel[data-v-73af6ccc]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-73af6ccc]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-73af6ccc]{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-73af6ccc]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-73af6ccc]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.result-toolbar[data-v-73af6ccc]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.result-toolbar .ghost[data-v-73af6ccc]{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-73af6ccc]:hover{border-color:var(--accent);color:var(--accent)}.save-msg[data-v-73af6ccc]{color:var(--up);font-size:12px}.modal-overlay[data-v-73af6ccc]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-73af6ccc]{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-73af6ccc]{font-size:15px;font-weight:600}.modal-desc[data-v-73af6ccc]{color:var(--text-dim);font-size:12px;line-height:1.5}.modal .field[data-v-73af6ccc]{flex-direction:column;gap:4px;display:flex}.modal .field label[data-v-73af6ccc]{color:var(--text-muted);font-size:12px}.modal .field input[data-v-73af6ccc],.modal .field textarea[data-v-73af6ccc]{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-73af6ccc]{font-family:inherit}.modal-summary[data-v-73af6ccc]{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-73af6ccc]{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions .ghost[data-v-73af6ccc]{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-73af6ccc]{cursor:pointer;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-73af6ccc]:disabled,.modal-actions .ghost[data-v-73af6ccc]:disabled{opacity:.5;cursor:default}.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)}.dlg-mask[data-v-c59bf87f]{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg[data-v-c59bf87f]{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-c59bf87f]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.head-left[data-v-c59bf87f]{align-items:baseline;gap:10px;display:flex}.board-name[data-v-c59bf87f]{font-size:16px;font-weight:700}.board-code[data-v-c59bf87f]{color:var(--text-dim);font-size:12px}.head-quote[data-v-c59bf87f]{align-items:baseline;gap:12px;display:flex}.price[data-v-c59bf87f]{font-size:20px;font-weight:700}.chg[data-v-c59bf87f]{font-size:13px}.watch-btn[data-v-c59bf87f]{align-self:center;margin-left:10px;padding:4px 10px;font-size:12px}.watch-btn.watched[data-v-c59bf87f]{border-color:var(--warn);color:var(--warn)}.close-btn[data-v-c59bf87f]{align-self:center;padding:2px 8px;font-size:12px}.dlg-body[data-v-c59bf87f]{display:flex;overflow:hidden}.chart-area[data-v-c59bf87f]{flex:1;min-width:0;padding:10px 12px;overflow:auto}.members-panel[data-v-c59bf87f]{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:330px;display:flex;overflow:hidden}.members-head[data-v-c59bf87f]{justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.members-head h3[data-v-c59bf87f]{font-size:13px;font-weight:600}.members-count[data-v-c59bf87f]{font-size:11px;font-weight:400}.order-btn[data-v-c59bf87f]{padding:2px 8px;font-size:11px}.members-list[data-v-c59bf87f]{flex:1;padding:0 8px 10px;overflow-y:auto}.member-row[data-v-c59bf87f]{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-c59bf87f]:hover{background:var(--bg-elevated)}.m-idx[data-v-c59bf87f]{color:var(--text-dim);font-size:10.5px}.m-name[data-v-c59bf87f]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-code[data-v-c59bf87f]{font-size:10.5px}.m-price[data-v-c59bf87f]{text-align:right}.m-pct[data-v-c59bf87f]{text-align:right;font-weight:600}.dim[data-v-c59bf87f]{color:var(--text-dim)}.tabs[data-v-c59bf87f]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.tabs button.active[data-v-c59bf87f]{border-color:var(--accent);color:var(--accent)}.ind-group[data-v-c59bf87f]{gap:4px;margin-left:12px;display:inline-flex}.chip[data-v-c59bf87f]{padding:2px 8px;font-size:11px}.chip.on[data-v-c59bf87f]{border-color:var(--accent);color:var(--accent);background:#4a9eff1f}.chart-msg[data-v-c59bf87f]{text-align:center;color:var(--text-dim);padding:40px 0}.chart-msg.error[data-v-c59bf87f]{color:var(--up)}.rail[data-v-c30ba12d]{flex-direction:column;gap:10px;display:flex}.rank-card[data-v-c30ba12d]{padding:10px 12px}.rank-card h3[data-v-c30ba12d]{margin-bottom:6px}.rank-card h3 .dim[data-v-c30ba12d]{font-size:10.5px;font-weight:400}.rank-row[data-v-c30ba12d],.flip-row[data-v-c30ba12d]{border-radius:3px;align-items:center;gap:6px;padding:2.5px 4px;font-size:12px;display:flex}.rank-row.clickable[data-v-c30ba12d]{cursor:pointer}.rank-row.clickable[data-v-c30ba12d]:hover{background:var(--bg-elevated)}.r-idx[data-v-c30ba12d]{text-align:right;width:16px;font-size:10.5px}.r-name[data-v-c30ba12d],.f-name[data-v-c30ba12d]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.r-pct[data-v-c30ba12d]{font-weight:600}.flashing[data-v-c30ba12d]{animation:1s ease-in-out infinite flash-c30ba12d}@keyframes flash-c30ba12d{0%,to{background:0 0}50%{background:#f0a0202e}}.flip-row[data-v-c30ba12d]{font-size:11.5px}.f-time[data-v-c30ba12d]{font-size:10.5px}.f-type[data-v-c30ba12d]{width:30px;font-weight:600}.rank-empty[data-v-c30ba12d]{padding:8px 0;font-size:12px}.stat-strip[data-v-36bc50b0]{align-items:stretch;gap:20px;padding:10px 14px;display:flex}.stat-cell[data-v-36bc50b0]{flex-direction:column;flex-shrink:0;justify-content:center;gap:2px;display:flex}.hist-cell[data-v-36bc50b0]{flex:1;min-width:260px}.stat-label[data-v-36bc50b0]{color:var(--text-dim);font-size:11px}.stat-value[data-v-36bc50b0]{font-size:14px;font-weight:600}.hist[data-v-36bc50b0]{align-items:flex-end;gap:6px;height:44px;margin-top:2px;display:flex}.hist-col[data-v-36bc50b0]{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex;position:relative}.hist-bar[data-v-36bc50b0]{border-radius:2px 2px 0 0;width:100%}.hist-bar.up[data-v-36bc50b0]{background:var(--up);opacity:.75}.hist-bar.down[data-v-36bc50b0]{background:var(--down);opacity:.75}.hist-n[data-v-36bc50b0]{color:var(--text-muted);font-size:9.5px;line-height:1.1}.hist-label[data-v-36bc50b0]{color:var(--text-dim);white-space:nowrap;font-size:9.5px}.tiles[data-v-6b789ff0]{gap:4px;display:grid}.tile[data-v-6b789ff0]{cursor:pointer;border-radius:4px;flex-direction:column;gap:1px;min-height:58px;padding:7px 8px;transition:filter .1s;display:flex;overflow:hidden}.tile[data-v-6b789ff0]:hover{filter:brightness(1.25)}.t-name[data-v-6b789ff0]{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.t-pct[data-v-6b789ff0]{font-size:13px;font-weight:700}.t-leader[data-v-6b789ff0]{opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.tiles-empty[data-v-6b789ff0]{text-align:center;color:var(--text-dim);grid-column:1/-1;padding:40px 0}.board-view[data-v-e58ddbb8]{flex-direction:column;gap:10px;height:100%;padding:16px;display:flex;overflow-y:auto}.view-head[data-v-e58ddbb8],.toolbar[data-v-e58ddbb8],.stat-strip[data-v-e58ddbb8],.err[data-v-e58ddbb8],.loading[data-v-e58ddbb8]{flex-shrink:0}.view-head[data-v-e58ddbb8]{align-items:center;gap:8px;display:flex}.view-head h2[data-v-e58ddbb8]{font-size:17px;font-weight:700}.head-sub[data-v-e58ddbb8]{margin-left:6px;font-size:12px;font-weight:400}.chip[data-v-e58ddbb8]{padding:2px 10px;font-size:11.5px}.chip.on[data-v-e58ddbb8]{border-color:var(--accent);color:var(--accent);background:#4a9eff1f}.toolbar[data-v-e58ddbb8]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.seg[data-v-e58ddbb8]{display:inline-flex}.seg button[data-v-e58ddbb8]{border-radius:0;padding:4px 12px;font-size:12px}.seg button[data-v-e58ddbb8]:first-child{border-radius:var(--radius) 0 0 var(--radius)}.seg button[data-v-e58ddbb8]:last-child{border-radius:0 var(--radius) var(--radius) 0;margin-left:-1px}.seg button.on[data-v-e58ddbb8]{border-color:var(--accent);color:var(--accent);z-index:1;background:#4a9eff1f;position:relative}.tb-label[data-v-e58ddbb8]{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:0;font-size:12px;display:flex}.tb-label select[data-v-e58ddbb8]{width:auto;padding:4px 8px;font-size:12px}.search[data-v-e58ddbb8]{width:180px;padding:4px 10px;font-size:12px}.tb-spacer[data-v-e58ddbb8]{flex:1}.dot[data-v-e58ddbb8]{background:var(--text-dim);border-radius:50%;width:7px;height:7px}.dot.live[data-v-e58ddbb8]{background:var(--up);box-shadow:0 0 4px var(--up)}.session-label[data-v-e58ddbb8]{color:var(--text-muted);font-size:11.5px}.session-label.paused[data-v-e58ddbb8]{color:var(--warn)}.session-toggle[data-v-e58ddbb8]{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;margin-bottom:0;font-size:11.5px;display:flex}.session-toggle input[data-v-e58ddbb8]{width:auto}.refresh-ts[data-v-e58ddbb8]{font-family:var(--font-mono);font-size:11.5px}.manual-refresh[data-v-e58ddbb8]{padding:4px 10px;font-size:12px}.err[data-v-e58ddbb8]{color:var(--up);align-items:center;gap:10px;display:flex}.loading[data-v-e58ddbb8]{text-align:center;color:var(--text-dim);padding:40px 0}.content[data-v-e58ddbb8]{grid-template-columns:1fr 300px;align-items:start;gap:10px;display:grid}.main-area[data-v-e58ddbb8]{min-height:300px;padding:10px}.board-table th.sortable[data-v-e58ddbb8]{cursor:pointer}.board-table th.sortable[data-v-e58ddbb8]:hover,.board-table th.sortable.on[data-v-e58ddbb8]{color:var(--accent)}.board-table td.name-cell[data-v-e58ddbb8]{font-weight:600}.board-table .leader-cell span[data-v-e58ddbb8]:first-child{margin-right:8px}@media (width<=1280px){.content[data-v-e58ddbb8]{grid-template-columns:1fr}}.risk[data-v-d03d1cae]{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-d03d1cae]{border-radius:var(--radius);background:#ffc10712;border:1px solid #ffc10759;margin-top:0;padding:10px 12px}.risk.prominent strong[data-v-d03d1cae]{color:var(--warn,#ffc107);margin-bottom:4px;font-size:12px;display:block}.risk.prominent p[data-v-d03d1cae]{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}.mood-radar[data-v-bc49f77a]{width:100%;height:190px}.sparkline[data-v-c695f5d4]{display:block}.dash[data-v-02d35341]{height:100%;padding:14px 16px;overflow:auto}.session-bar[data-v-02d35341]{align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.session-bar .dot[data-v-02d35341]{background:var(--text-dim);border-radius:50%;width:8px;height:8px}.session-bar .dot.live[data-v-02d35341]{background:var(--up);box-shadow:0 0 4px var(--up)}.session-label[data-v-02d35341]{font-weight:600}.session-label.paused[data-v-02d35341]{color:var(--text-dim)}.session-hint[data-v-02d35341]{font-size:11px}.session-toggle[data-v-02d35341]{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-02d35341]{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-02d35341]:hover{border-color:var(--accent);color:var(--accent)}.idx-row[data-v-02d35341]{gap:10px;margin-bottom:12px;display:flex}.idx-card[data-v-02d35341]{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-02d35341]:hover{border-color:var(--accent)}.idx-top[data-v-02d35341]{justify-content:space-between;align-items:baseline;display:flex}.idx-name[data-v-02d35341]{color:var(--text-muted);font-size:12px}.idx-chg[data-v-02d35341]{font-size:12px}.idx-mid[data-v-02d35341]{justify-content:space-between;align-items:baseline;margin-bottom:2px;display:flex}.idx-price[data-v-02d35341]{font-size:19px;font-weight:700}.idx-amt[data-v-02d35341]{font-size:11px}.grid[data-v-02d35341]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.dist-card[data-v-02d35341]{min-height:220px}.breadth-bar[data-v-02d35341]{border-radius:3px;height:10px;margin:8px 0 6px;display:flex;overflow:hidden}.seg.up[data-v-02d35341]{background:var(--up)}.seg.flat[data-v-02d35341]{background:var(--text-dim)}.seg.down[data-v-02d35341]{background:var(--down)}.stat-nums[data-v-02d35341]{justify-content:space-between;margin-bottom:10px;font-size:12px;display:flex}.stat-rows[data-v-02d35341]{grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px;display:grid}.stat-rows>div[data-v-02d35341]{justify-content:space-between;display:flex}.mood-score[data-v-02d35341]{float:right;color:var(--accent);font-size:15px;font-weight:700}.mood-foot[data-v-02d35341]{justify-content:space-between;align-items:baseline;margin-top:4px;display:flex}.mood-word[data-v-02d35341]{font-size:15px;font-weight:700}.rank-tabs[data-v-02d35341]{gap:3px;margin-left:10px;display:inline-flex}.rank-tab[data-v-02d35341]{padding:1px 8px;font-size:11px}.rank-tab.on[data-v-02d35341]{border-color:var(--accent);color:var(--accent);background:#4a9eff1f}.limit-n[data-v-02d35341]{float:right;color:var(--up);font-size:15px;font-weight:700}.limit-card[data-v-02d35341]{min-height:200px}.title-sub[data-v-02d35341]{font-size:11px;font-weight:400}.dist-chart[data-v-02d35341]{align-items:flex-end;gap:2px;height:120px;margin-top:10px;display:flex;position:relative}.dist-col[data-v-02d35341]{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.dist-col[data-v-02d35341]:hover,.dist-col.hovered[data-v-02d35341]{z-index:10}.dist-pop[data-v-02d35341]{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-02d35341]{color:var(--text-muted);margin-bottom:3px}.pop-count[data-v-02d35341]{font-size:13px;font-weight:700}.pop-share[data-v-02d35341]{color:var(--text-dim);font-size:10.5px}.dist-bar[data-v-02d35341]{border-radius:1px;width:100%;min-height:1px}.dist-col.zero[data-v-02d35341]{outline:1px dashed var(--text-dim);outline-offset:1px}.dist-label[data-v-02d35341]{color:var(--text-dim);transform-origin:top;white-space:nowrap;margin-top:3px;font-size:8.5px;transform:rotate(-60deg)}.board-list[data-v-02d35341]{flex-direction:column;gap:5px;display:flex}.board-row[data-v-02d35341]{grid-template-columns:84px 1fr 64px;align-items:center;gap:8px;font-size:12px;display:grid}.b-name[data-v-02d35341]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-row.clickable[data-v-02d35341]{cursor:pointer}.board-row.clickable:hover .b-name[data-v-02d35341]{color:var(--accent)}.cold-title[data-v-02d35341]{margin-top:10px}.b-bar-wrap[data-v-02d35341]{background:var(--bg);border-radius:2px;height:8px;overflow:hidden}.b-bar[data-v-02d35341]{border-radius:2px;height:100%;margin-left:auto}.b-bar.up[data-v-02d35341]{background:var(--up)}.b-bar.down[data-v-02d35341]{background:var(--down)}.b-pct[data-v-02d35341]{text-align:right}.tag[data-v-02d35341]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--warn);border-radius:3px;padding:1px 6px;font-size:11px}.err[data-v-02d35341]{color:var(--up);padding:12px 0;font-size:12px}.loading[data-v-02d35341]{color:var(--text-dim);padding:12px 0;font-size:12px}.dim[data-v-02d35341]{color:var(--text-dim)}.corr-wrap[data-v-1783d93e]{padding:8px}.corr-chart[data-v-1783d93e]{height:520px}.corr-hint[data-v-1783d93e]{text-align:center;padding:40px 0;font-size:12px}.matrix-wrap[data-v-91f8e4d8]{min-height:240px;max-height:calc(100vh - 320px);overflow:auto}.hs-table[data-v-91f8e4d8]{border-collapse:separate;border-spacing:0;font-size:12px}.hs-table th[data-v-91f8e4d8],.hs-table td[data-v-91f8e4d8]{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:0}.hs-table thead th[data-v-91f8e4d8]{z-index:2;background:var(--bg-panel);color:var(--text-dim);border-bottom:1px solid var(--border);padding:6px 4px;font-weight:500;position:sticky;top:0}.hs-table .sticky-name[data-v-91f8e4d8]{z-index:1;background:var(--bg-panel);position:sticky;left:0}.hs-table thead .sticky-name[data-v-91f8e4d8]{z-index:3}.hs-table .head-name[data-v-91f8e4d8]{text-align:left;min-width:100px}.hs-table .name[data-v-91f8e4d8]{text-align:left;cursor:pointer;min-width:100px;max-width:124px;padding:0 8px}.hs-table .name[data-v-91f8e4d8]:hover{color:var(--accent)}.hs-table .name .n[data-v-91f8e4d8]{text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.hs-table .name .c[data-v-91f8e4d8]{font-size:10px;font-family:var(--font-mono);display:block}.date-col[data-v-91f8e4d8]{min-width:53px}.cell-td[data-v-91f8e4d8]{padding:0!important}.cell[data-v-91f8e4d8]{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;min-width:53px;height:34px;line-height:1.1;display:flex;position:relative;overflow:hidden}.cell[data-v-91f8e4d8]:hover{filter:brightness(1.3)}.cell .pct[data-v-91f8e4d8]{font-size:10.5px}.cell .rk[data-v-91f8e4d8]{opacity:.95;font-size:10px}.cell.top3[data-v-91f8e4d8]{box-shadow:inset 0 0 0 1.5px #ffffffa6}.date-col.today[data-v-91f8e4d8]{color:var(--accent);font-weight:700}.cell-td.today[data-v-91f8e4d8]{border-left:1px solid var(--accent)}.today-tag[data-v-91f8e4d8]{background:var(--accent);color:#fff;border-radius:2px;margin-left:2px;padding:0 2px;font-size:9px}.sum-col[data-v-91f8e4d8]{min-width:46px;font-family:var(--font-mono);padding:0 7px!important}.sum-col.strong[data-v-91f8e4d8]{font-weight:700}.sum-col.hot[data-v-91f8e4d8]{color:var(--up)}.matrix-empty[data-v-91f8e4d8]{text-align:center;color:var(--text-dim);padding:40px 0}.stat-strip-wrap[data-v-a045592b]{flex-direction:column;gap:10px;display:flex}.stat-strip[data-v-a045592b]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-card[data-v-a045592b]{padding:10px 14px}.stat-card.clickable[data-v-a045592b]{cursor:pointer;transition:border-color .1s}.stat-card.clickable[data-v-a045592b]:hover,.stat-card.on[data-v-a045592b]{border-color:var(--accent)}.stat-card.king[data-v-a045592b]{cursor:pointer}.stat-card.king[data-v-a045592b]:hover{border-color:var(--accent)}.stat-title[data-v-a045592b]{color:var(--text-muted);margin-bottom:4px;font-size:11.5px}.stat-main[data-v-a045592b]{font-size:17px;font-weight:700}.stat-main.up[data-v-a045592b]{color:var(--up)}.stat-main.down[data-v-a045592b]{color:var(--down)}.unit[data-v-a045592b]{color:var(--text-muted);font-size:12px;font-weight:400}.expand-hint[data-v-a045592b]{color:var(--accent);margin-left:6px;font-size:11px;font-weight:400}.stat-sub[data-v-a045592b]{margin-top:2px;font-size:11.5px}.member-panel[data-v-a045592b]{padding:10px 14px}.mp-title[data-v-a045592b]{color:var(--text-muted);margin-bottom:8px;font-size:11.5px}.mp-chips[data-v-a045592b]{flex-wrap:wrap;gap:6px;display:flex}.member-chip[data-v-a045592b]{background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.member-chip[data-v-a045592b]:hover{border-color:var(--accent);color:var(--accent)}.mc-name[data-v-a045592b]{font-weight:600}.mc-pct[data-v-a045592b]{font-size:11.5px}@media (width<=1024px){.stat-strip[data-v-a045592b]{grid-template-columns:repeat(2,1fr)}}.hotspot-view[data-v-36e13570]{flex-direction:column;gap:10px;height:100%;padding:16px;display:flex;overflow-y:auto}.view-head[data-v-36e13570],.toolbar[data-v-36e13570],.legend[data-v-36e13570],.building[data-v-36e13570],.err[data-v-36e13570],.loading[data-v-36e13570]{flex-shrink:0}.view-head[data-v-36e13570]{align-items:center;gap:8px;display:flex}.view-head h2[data-v-36e13570]{font-size:17px;font-weight:700}.head-sub[data-v-36e13570]{font-size:12px}.live-badge[data-v-36e13570]{color:var(--up);border:1px solid var(--up);border-radius:3px;padding:0 6px;font-size:11px}.toolbar[data-v-36e13570]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.seg[data-v-36e13570]{display:inline-flex}.seg button[data-v-36e13570]{border-radius:0;padding:4px 12px;font-size:12px}.seg button[data-v-36e13570]:first-child{border-radius:var(--radius) 0 0 var(--radius)}.seg button[data-v-36e13570]:last-child{border-radius:0 var(--radius) var(--radius) 0;margin-left:-1px}.seg button.on[data-v-36e13570]{border-color:var(--accent);color:var(--accent);z-index:1;background:#4a9eff1f;position:relative}.tb-label[data-v-36e13570]{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:0;font-size:12px;display:flex}.tb-label select[data-v-36e13570]{width:auto;padding:4px 8px;font-size:12px}.multi-toggle input[data-v-36e13570]{width:auto}.search[data-v-36e13570]{width:170px;padding:4px 10px;font-size:12px}.tb-spacer[data-v-36e13570]{flex:1}.dot[data-v-36e13570]{background:var(--text-dim);border-radius:50%;width:7px;height:7px}.dot.live[data-v-36e13570]{background:var(--up);box-shadow:0 0 4px var(--up)}.session-label[data-v-36e13570]{color:var(--text-muted);font-size:11.5px}.session-label.paused[data-v-36e13570]{color:var(--warn)}.session-toggle[data-v-36e13570]{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;margin-bottom:0;font-size:11.5px;display:flex}.session-toggle input[data-v-36e13570]{width:auto}.refresh-ts[data-v-36e13570]{font-family:var(--font-mono);font-size:11.5px}.manual-refresh[data-v-36e13570]{padding:4px 10px;font-size:12px}.building[data-v-36e13570]{padding:18px 20px}.build-text[data-v-36e13570]{margin-bottom:8px;font-size:13px;font-weight:600}.build-bar[data-v-36e13570]{background:var(--bg-elevated);border-radius:4px;height:8px;overflow:hidden}.build-fill[data-v-36e13570]{background:var(--accent);border-radius:4px;height:100%;transition:width .4s}.build-hint[data-v-36e13570]{margin-top:8px;font-size:11.5px}.err[data-v-36e13570]{color:var(--up);align-items:center;gap:10px;display:flex}.loading[data-v-36e13570]{text-align:center;color:var(--text-dim);padding:40px 0}.legend[data-v-36e13570]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.lg-title[data-v-36e13570]{color:var(--text-dim)}.sw[data-v-36e13570]{vertical-align:-2px;border-radius:2px;width:12px;height:12px;margin:0 1px;display:inline-block}.sw.u1[data-v-36e13570]{background:#ef414642}.sw.u2[data-v-36e13570]{background:#ef414680}.sw.u3[data-v-36e13570]{background:#ef4146d1}.sw.d1[data-v-36e13570]{background:#18a05842}.sw.d2[data-v-36e13570]{background:#18a05880}.sw.d3[data-v-36e13570]{background:#18a058d1}.lg-sep[data-v-36e13570]{color:var(--border)}.lg-rank[data-v-36e13570]{color:var(--text)}.matrix-card[data-v-36e13570]{padding:8px}.matrix-card[data-v-36e13570] .matrix-wrap{max-height:calc(100vh - 380px)}.calendar-view[data-v-7f2da965]{flex-direction:column;gap:10px;height:100%;padding:16px;display:flex;overflow-y:auto}.view-head[data-v-7f2da965],.toolbar[data-v-7f2da965],.stat-strip[data-v-7f2da965],.err[data-v-7f2da965],.loading[data-v-7f2da965]{flex-shrink:0}.view-head[data-v-7f2da965]{align-items:center;gap:8px;display:flex}.view-head h2[data-v-7f2da965]{font-size:17px;font-weight:700}.head-sub[data-v-7f2da965]{font-size:12px}.toolbar[data-v-7f2da965]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.seg[data-v-7f2da965]{display:inline-flex}.seg button[data-v-7f2da965]{border-radius:0;padding:4px 12px;font-size:12px}.seg button[data-v-7f2da965]:first-child{border-radius:var(--radius) 0 0 var(--radius)}.seg button[data-v-7f2da965]:last-child{border-radius:0 var(--radius) var(--radius) 0;margin-left:-1px}.seg button.on[data-v-7f2da965]{border-color:var(--accent);color:var(--accent);z-index:1;background:#4a9eff1f;position:relative}.tb-spacer[data-v-7f2da965]{flex:1}.legend[data-v-7f2da965]{color:var(--text-muted);align-items:center;gap:6px;font-size:11.5px;display:flex}.lg-title[data-v-7f2da965]{color:var(--text-dim)}.sw[data-v-7f2da965]{border-radius:2px;width:12px;height:12px;margin:0 1px;display:inline-block}.sw.u1[data-v-7f2da965]{background:#ef414642}.sw.u2[data-v-7f2da965]{background:#ef414680}.sw.u3[data-v-7f2da965]{background:#ef4146d1}.sw.d1[data-v-7f2da965]{background:#18a05842}.sw.d2[data-v-7f2da965]{background:#18a05880}.sw.d3[data-v-7f2da965]{background:#18a058d1}.err[data-v-7f2da965]{color:var(--up);align-items:center;gap:10px;display:flex}.loading[data-v-7f2da965]{text-align:center;color:var(--text-dim);padding:40px 0}.stat-strip[data-v-7f2da965]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-card[data-v-7f2da965]{padding:10px 14px}.stat-title[data-v-7f2da965]{color:var(--text-muted);margin-bottom:4px;font-size:11.5px}.stat-main[data-v-7f2da965]{font-size:17px;font-weight:700}.unit[data-v-7f2da965]{color:var(--text-muted);font-size:12px;font-weight:400}.cal-grid[data-v-7f2da965]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding-bottom:20px;display:grid}.month-block[data-v-7f2da965]{padding:10px 12px}.m-head[data-v-7f2da965]{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.m-name[data-v-7f2da965]{font-size:12.5px;font-weight:700}.m-pct[data-v-7f2da965]{font-size:12px}.m-days[data-v-7f2da965]{flex-wrap:wrap;align-items:center;gap:3px;min-height:30px;display:flex}.day-cell[data-v-7f2da965]{cursor:default;border-radius:3px;justify-content:center;align-items:center;font-size:9.5px;transition:width .15s,height .15s;display:flex}.day-cell[data-v-7f2da965]:hover{filter:brightness(1.3);outline:1px solid var(--accent)}.float-tip[data-v-7f2da965]{z-index:1000;pointer-events:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);white-space:nowrap;background:#1a1d26f5;padding:7px 10px;font-size:11.5px;line-height:1.5;position:fixed;box-shadow:0 4px 16px #0006}.ft-line.up[data-v-7f2da965]{color:var(--up);font-weight:700}.ft-line.down[data-v-7f2da965]{color:var(--down);font-weight:700}.ft-line.flat[data-v-7f2da965]{color:var(--text-muted)}@media (width<=1024px){.stat-strip[data-v-7f2da965]{grid-template-columns:repeat(2,1fr)}}.vipdoc-bar[data-v-48a608e2]{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.vipdoc-input[data-v-48a608e2]{flex:1;min-width:260px;padding:4px 10px;font-size:12px}.limitup-view[data-v-48a608e2]{flex-direction:column;gap:10px;height:100%;padding:16px;display:flex;overflow-y:auto}.view-head[data-v-48a608e2],.stat-strip[data-v-48a608e2],.err[data-v-48a608e2],.loading[data-v-48a608e2],.section[data-v-48a608e2]{flex-shrink:0}.view-head[data-v-48a608e2]{align-items:center;gap:8px;display:flex}.view-head h2[data-v-48a608e2]{font-size:17px;font-weight:700}.head-sub[data-v-48a608e2]{font-size:12px}.stale-badge[data-v-48a608e2]{color:var(--warn);border:1px solid var(--warn);border-radius:3px;padding:0 6px;font-size:11px}.tb-spacer[data-v-48a608e2]{flex:1}.refresh-ts[data-v-48a608e2]{font-family:var(--font-mono);font-size:11.5px}.manual-refresh[data-v-48a608e2]{padding:4px 10px;font-size:12px}.err[data-v-48a608e2]{color:var(--up);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.err code[data-v-48a608e2]{color:var(--text-muted)}.loading[data-v-48a608e2]{text-align:center;color:var(--text-dim);padding:40px 0}.stat-strip[data-v-48a608e2]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-card[data-v-48a608e2]{padding:10px 14px}.stat-title[data-v-48a608e2]{color:var(--text-muted);margin-bottom:4px;font-size:11.5px}.stat-main[data-v-48a608e2]{font-size:17px;font-weight:700}.unit[data-v-48a608e2]{color:var(--text-muted);font-size:12px;font-weight:400}.stat-sub[data-v-48a608e2]{margin-top:2px;font-size:11.5px}.section[data-v-48a608e2]{flex-direction:column;gap:6px;display:flex}.sec-title[data-v-48a608e2]{color:var(--text-muted);font-size:12.5px;font-weight:600}.ladder-row[data-v-48a608e2]{align-items:center;gap:12px;padding:8px 12px;display:flex}.l-height[data-v-48a608e2]{text-align:center;width:52px;color:var(--up);border:1px solid var(--up);border-radius:var(--radius);flex-shrink:0;padding:3px 0;font-size:14px;font-weight:700}.l-height.high[data-v-48a608e2]{color:#fff;background:var(--up)}.l-chips[data-v-48a608e2]{flex-wrap:wrap;gap:6px;display:flex}.chip-s[data-v-48a608e2]{border:1px solid var(--border);cursor:pointer;background:#ef414614;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.chip-s[data-v-48a608e2]:hover{border-color:var(--up)}.chip-s.blown[data-v-48a608e2]{background:#ffa50014}.chip-s.blown[data-v-48a608e2]:hover{border-color:var(--warn)}.chip-s.downed[data-v-48a608e2]{background:#18a05814}.chip-s.downed[data-v-48a608e2]:hover{border-color:var(--down)}.c-name[data-v-48a608e2]{font-weight:600}.st-mark[data-v-48a608e2]{color:var(--warn);margin-left:3px;font-size:9.5px}.c-pct[data-v-48a608e2]{font-size:11.5px}.flat-card[data-v-48a608e2]{padding:10px 12px}.two-col[data-v-48a608e2]{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=1024px){.stat-strip[data-v-48a608e2],.two-col[data-v-48a608e2]{grid-template-columns:1fr}}.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-880628f5]{height:100%;display:flex}.config-panel[data-v-880628f5]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:320px;padding:16px;overflow-y:auto}.panel-section[data-v-880628f5]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.panel-section[data-v-880628f5]:last-of-type{border-bottom:none}.panel-section h3[data-v-880628f5]{margin-bottom:12px;font-size:13px;font-weight:600}.hint[data-v-880628f5]{color:var(--text-muted,#888);margin-left:6px;font-size:12px;font-weight:400}.workers-tip[data-v-880628f5]{color:var(--text-muted,#888);margin:8px 0 0;font-size:12px;line-height:1.5}.run-btn[data-v-880628f5]{width:100%;margin-top:8px;padding:10px;font-size:14px}.run-btn[data-v-880628f5]:first-of-type{margin-top:0}.run-all-btn[data-v-880628f5]{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-880628f5]: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-880628f5]:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #f59e0b59}.run-all-btn[data-v-880628f5]: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-880628f5]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-880628f5]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-880628f5]{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-880628f5]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-880628f5]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.best-summary[data-v-880628f5]{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.best-params[data-v-880628f5]{font-family:var(--font-mono);color:var(--accent);font-size:14px}.best-return[data-v-880628f5]{font-size:22px;font-weight:700;font-family:var(--font-mono)}.best-bh[data-v-880628f5]{color:var(--text-dim);font-size:13px;font-family:var(--font-mono)}.best-meta[data-v-880628f5]{color:var(--text-dim);font-size:12px}.meta-line[data-v-880628f5]{color:var(--text-dim);margin-top:8px;font-size:12px}.pos[data-v-880628f5]{color:var(--up)}.neg[data-v-880628f5]{color:var(--down)}.opt-table[data-v-880628f5]{border-collapse:collapse;width:100%;font-size:13px}.opt-table th[data-v-880628f5],.opt-table td[data-v-880628f5]{border-bottom:1px solid var(--border);text-align:left;padding:6px 10px}.opt-table th[data-v-880628f5]{color:var(--text-dim);background:var(--bg-panel);font-size:12px;position:sticky;top:0}.num[data-v-880628f5]{text-align:right;font-family:var(--font-mono)}.params[data-v-880628f5]{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.rank[data-v-880628f5]{color:var(--text-dim);width:32px}.best[data-v-880628f5]{background:#4a9eff14}.best .rank[data-v-880628f5]{color:var(--accent);font-weight:700}.view-btn[data-v-880628f5]{padding:2px 8px;font-size:11px}.grade-cell[data-v-880628f5]{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-98653631]{height:100%;display:flex}.config-panel[data-v-98653631]{background:var(--bg-panel);border-right:1px solid var(--border);flex-shrink:0;width:320px;padding:16px;overflow-y:auto}.panel-section[data-v-98653631]{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.panel-section[data-v-98653631]:last-of-type{border-bottom:none}.panel-section h3[data-v-98653631]{margin-bottom:12px;font-size:13px;font-weight:600}.loading-text[data-v-98653631]{color:var(--text-dim);font-size:12px}.check-row[data-v-98653631]{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;margin-bottom:8px;display:flex}.check-label[data-v-98653631]{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-98653631]{width:auto;accent-color:var(--accent,#4a9eff);flex-shrink:0;margin:0}.wf-windows[data-v-98653631]{color:var(--text-dim);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.wf-windows input[data-v-98653631]{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-98653631]{color:var(--text-dim);margin:2px 0 0;font-size:11px}.run-btn[data-v-98653631]{width:100%;padding:10px;font-size:14px}.report-panel[data-v-98653631]{flex:1;padding:16px 20px;overflow-y:auto}.placeholder[data-v-98653631]{height:100%;color:var(--text-dim);justify-content:center;align-items:center;display:flex}.error-banner[data-v-98653631]{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-98653631]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px 16px}.report-section h3[data-v-98653631]{color:var(--text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.perf-summary[data-v-98653631]{flex-wrap:wrap;gap:32px;display:flex}.perf-item[data-v-98653631]{flex-direction:column;gap:4px;display:flex}.perf-item .label[data-v-98653631]{color:var(--text-dim);font-size:12px}.perf-item .value[data-v-98653631]{font-size:20px;font-weight:600;font-family:var(--font-mono)}.pos[data-v-98653631]{color:var(--up)}.neg[data-v-98653631]{color:var(--down)}.result-toolbar[data-v-98653631]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.result-toolbar .ghost[data-v-98653631]{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-98653631]:hover{border-color:var(--accent);color:var(--accent)}.save-msg[data-v-98653631]{color:var(--up);font-size:12px}.modal-overlay[data-v-98653631]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-98653631]{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-98653631]{font-size:15px;font-weight:600}.modal-desc[data-v-98653631]{color:var(--text-dim);font-size:12px;line-height:1.5}.modal .field[data-v-98653631]{flex-direction:column;gap:4px;display:flex}.modal .field label[data-v-98653631]{color:var(--text-muted);font-size:12px}.modal .field input[data-v-98653631],.modal .field textarea[data-v-98653631]{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-98653631]{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-98653631]{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions .ghost[data-v-98653631]{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-98653631]{cursor:pointer;padding:7px 16px;font-size:13px}.modal-actions .primary[data-v-98653631]:disabled,.modal-actions .ghost[data-v-98653631]:disabled{opacity:.5;cursor:default}.sentiment-view[data-v-7b7ec3d8]{flex-direction:column;gap:10px;height:100%;padding:16px;display:flex;overflow-y:auto}.view-head[data-v-7b7ec3d8],.stat-strip[data-v-7b7ec3d8],.err[data-v-7b7ec3d8],.loading[data-v-7b7ec3d8],.section[data-v-7b7ec3d8]{flex-shrink:0}.view-head[data-v-7b7ec3d8]{align-items:center;gap:8px;display:flex}.view-head h2[data-v-7b7ec3d8]{font-size:17px;font-weight:700}.head-sub[data-v-7b7ec3d8]{font-size:12px}.tb-spacer[data-v-7b7ec3d8]{flex:1}.refresh-ts[data-v-7b7ec3d8]{font-family:var(--font-mono);font-size:11.5px}.manual-refresh[data-v-7b7ec3d8]{padding:4px 10px;font-size:12px}.err[data-v-7b7ec3d8]{color:var(--up);align-items:center;gap:10px;display:flex}.loading[data-v-7b7ec3d8]{text-align:center;color:var(--text-dim);padding:40px 0}.stat-strip[data-v-7b7ec3d8]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stat-card[data-v-7b7ec3d8]{padding:10px 14px}.stat-title[data-v-7b7ec3d8]{color:var(--text-muted);margin-bottom:4px;font-size:11.5px}.stat-main[data-v-7b7ec3d8]{font-size:17px;font-weight:700}.unit[data-v-7b7ec3d8]{color:var(--text-muted);font-size:12px;font-weight:400}.stat-sub[data-v-7b7ec3d8]{margin-top:2px;font-size:11.5px}.stat-sub.up[data-v-7b7ec3d8],.stat-main.up[data-v-7b7ec3d8]{color:var(--up)}.stat-sub.down[data-v-7b7ec3d8],.stat-main.down[data-v-7b7ec3d8]{color:var(--down)}.stat-sub.flat[data-v-7b7ec3d8],.stat-main.flat[data-v-7b7ec3d8]{color:var(--text-muted)}.section[data-v-7b7ec3d8]{flex-direction:column;gap:6px;display:flex}.sec-title[data-v-7b7ec3d8]{color:var(--text-muted);font-size:12.5px;font-weight:600}.sec-title-ai[data-v-7b7ec3d8]{color:var(--text-muted);align-items:center;gap:10px;font-size:12.5px;font-weight:600;display:flex}.gen-btn[data-v-7b7ec3d8]{padding:3px 12px;font-size:11.5px}.gen-btn[data-v-7b7ec3d8]:disabled{opacity:.6}.fund-card[data-v-7b7ec3d8]{flex-direction:column;gap:6px;padding:10px 12px;font-size:12px;display:flex;position:relative}.fund-row[data-v-7b7ec3d8]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fund-date[data-v-7b7ec3d8]{flex-shrink:0;width:44px}.fund-chip[data-v-7b7ec3d8]{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:2px 8px}.ai-card[data-v-7b7ec3d8]{white-space:pre-wrap;font-size:13px;line-height:1.8}.chart-card[data-v-7b7ec3d8]{padding:8px;position:relative}.chart[data-v-7b7ec3d8]{height:260px}.chart-lg[data-v-7b7ec3d8]{height:300px}.empty-hint[data-v-7b7ec3d8]{pointer-events:none;text-align:center;justify-content:center;align-items:center;padding:0 40px;font-size:12px;display:flex;position:absolute;inset:0}@media (width<=1024px){.stat-strip[data-v-7b7ec3d8]{grid-template-columns:repeat(2,1fr)}}.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-793841ea]{height:100%;padding:16px 20px 32px;overflow-y:auto}.page-header[data-v-793841ea]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-793841ea]{font-size:16px;font-weight:600}.subtitle[data-v-793841ea]{color:var(--text-dim);margin-top:4px;font-size:12px}.header-actions[data-v-793841ea]{align-items:center;gap:8px;display:flex}.header-actions .sm[data-v-793841ea]{cursor:pointer;padding:6px 12px;font-size:12px}.header-actions .primary[data-v-793841ea]{border-radius:var(--radius)}.tabs[data-v-793841ea]{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tab[data-v-793841ea]{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-793841ea]:hover{color:var(--text)}.tab.active[data-v-793841ea]{color:var(--text);border-bottom-color:var(--accent)}.tab-count[data-v-793841ea]{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-793841ea]{color:var(--accent);background:#4a9eff2e}.ghost[data-v-793841ea]{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-793841ea]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.placeholder[data-v-793841ea]{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-793841ea]{max-width:420px;font-size:12px;line-height:1.6}.error-banner[data-v-793841ea]{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-793841ea]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.card[data-v-793841ea]{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-793841ea]{align-items:center;gap:8px;display:flex}.select-box[data-v-793841ea]{cursor:pointer;flex-shrink:0;align-items:center;display:flex}.select-box input[data-v-793841ea]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.select-box input[data-v-793841ea]:disabled{cursor:not-allowed;opacity:.3}.card.selected[data-v-793841ea]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.kind-badge[data-v-793841ea]{color:var(--accent);background:#4a9eff26;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:11px}.kind-badge.portfolio[data-v-793841ea]{color:#b39ddb;background:#8c6edc2e}.card-title[data-v-793841ea]{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.card-strategy[data-v-793841ea]{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;font-weight:500;display:flex}.card-strategy .params[data-v-793841ea]{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.card-meta[data-v-793841ea]{color:var(--text-muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.meta-row[data-v-793841ea]{gap:8px;display:flex}.meta-row .k[data-v-793841ea]{color:var(--text-dim);flex-shrink:0;width:32px}.meta-row .v[data-v-793841ea]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-snapshot[data-v-793841ea]{border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);gap:20px;padding:8px 0;display:flex}.snap-item[data-v-793841ea]{flex-direction:column;gap:2px;display:flex}.snap-item .k[data-v-793841ea]{color:var(--text-dim);font-size:11px}.snap-item .v[data-v-793841ea]{font-size:15px;font-weight:600}.mono[data-v-793841ea]{font-family:var(--font-mono)}.pos[data-v-793841ea]{color:var(--up)}.neg[data-v-793841ea]{color:var(--down)}.card-tags[data-v-793841ea]{flex-wrap:wrap;gap:6px;display:flex}.tag[data-v-793841ea]{background:var(--border);color:var(--text-muted);border-radius:10px;padding:2px 8px;font-size:11px}.card-notes[data-v-793841ea]{color:var(--text-muted);white-space:pre-wrap;font-size:12px;line-height:1.5}.card-foot[data-v-793841ea]{justify-content:space-between;align-items:center;margin-top:auto;padding-top:6px;display:flex}.created[data-v-793841ea]{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.actions[data-v-793841ea]{gap:8px;display:flex}.sm[data-v-793841ea]{padding:4px 12px;font-size:12px}.danger[data-v-793841ea]{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0}.danger[data-v-793841ea]:hover:not(:disabled){border-color:var(--up);color:var(--up)}.danger[data-v-793841ea]:disabled{opacity:.5;cursor:default}.combo-result[data-v-793841ea]{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:16px 18px}.combo-title[data-v-793841ea]{margin-bottom:14px;font-size:15px;font-weight:600}.combo-meta[data-v-793841ea]{color:var(--text-dim);font-size:12px;font-weight:400}.combo-loading[data-v-793841ea]{text-align:center;color:var(--text-dim);padding:24px;font-size:13px}.combo-content[data-v-793841ea]{flex-direction:column;gap:18px;display:flex}.combo-summary[data-v-793841ea]{gap:28px;display:flex}.combo-stat[data-v-793841ea]{flex-direction:column;gap:3px;display:flex}.combo-stat .label[data-v-793841ea]{color:var(--text-dim);font-size:12px}.combo-stat .value[data-v-793841ea]{font-size:22px;font-weight:700;font-family:var(--font-mono)}.combo-chart-block h4[data-v-793841ea]{color:var(--text-muted);margin-bottom:10px;font-size:13px;font-weight:600}.holdings-hint[data-v-793841ea]{color:var(--text-dim);margin-left:6px;font-size:11px;font-weight:400}.empty-text[data-v-793841ea]{color:var(--text-dim);padding:12px 0;font-size:13px}.holdings-table[data-v-793841ea]{border-collapse:collapse;width:100%;font-size:13px}.holdings-table th[data-v-793841ea],.holdings-table td[data-v-793841ea]{text-align:left;border-bottom:1px solid var(--border);padding:7px 10px}.holdings-table th[data-v-793841ea]{color:var(--text-dim);font-size:12px;font-weight:600}.holdings-table .num[data-v-793841ea]{text-align:right;font-family:var(--font-mono)}.holdings-table .sym[data-v-793841ea]{font-family:var(--font-mono);font-weight:600}.holdings-table tr.cleared[data-v-793841ea]{opacity:.5}.status-tag[data-v-793841ea]{border-radius:4px;padding:2px 8px;font-size:11px}.status-tag.holding[data-v-793841ea]{color:var(--up);background:#ef41461f}.status-tag.cleared[data-v-793841ea]{background:var(--border);color:var(--text-dim)}.card-multi[data-v-793841ea]{background:linear-gradient(180deg, #f59e0b0a, var(--bg-panel) 30%);border-color:#f59e0b59}.card-multi[data-v-793841ea]:hover{border-color:#f59e0b99}.multi-icon[data-v-793841ea]{color:#f59e0b;text-align:center;flex-shrink:0;align-items:center;width:16px;font-size:18px;display:flex}.kind-badge.multi[data-v-793841ea]{color:#f59e0b;background:#f59e0b2e}.save-combo-btn[data-v-793841ea]{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-793841ea]:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.save-combo-btn[data-v-793841ea]:disabled{opacity:.5;cursor:default}.combo-extra-actions[data-v-793841ea]{vertical-align:middle;flex-wrap:wrap;align-items:center;gap:8px;margin-left:10px;display:inline-flex}.combo-extra-actions .save-combo-btn[data-v-793841ea]{margin-left:0}.warn-box[data-v-793841ea]{border-radius:var(--radius);margin-bottom:12px;padding:10px 14px;font-size:12px;line-height:1.6}.warn-box strong[data-v-793841ea]{color:#fbbf24}.warn-box.overfit[data-v-793841ea]{border-left:3px solid var(--warn);color:#f0a020;background:#f0a0201a;margin-bottom:14px}.warn-box.disclaimer[data-v-793841ea]{color:var(--text-muted);background:#f0a0200f;border:1px dashed #f0a02066;padding:8px 12px;font-size:11px}.rerun-btn[data-v-793841ea]{color:#f59e0b;border-radius:var(--radius);cursor:pointer;background:#f59e0b1f;border:1px solid #f59e0b80;font-weight:600}.rerun-btn[data-v-793841ea]:hover:not(:disabled){color:#fbbf24;background:#f59e0b33;border-color:#f59e0b}.rerun-btn[data-v-793841ea]:disabled{opacity:.5;cursor:not-allowed}.status-tag.win[data-v-793841ea]{color:var(--down);background:#18a0582e}.status-tag.lose[data-v-793841ea]{color:#f0a020;background:#f0a0202e}.status-tag.wait[data-v-793841ea]{background:var(--border);color:var(--text-dim)}.holdings-table tr.row-win[data-v-793841ea]{background:#18a0580a}.holdings-table tr.row-lose[data-v-793841ea]{background:#f0a0200d}.modal-mask[data-v-793841ea]{z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-793841ea]{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-793841ea]{margin-bottom:6px;font-size:15px;font-weight:600}.modal-desc[data-v-793841ea]{color:var(--text-muted);margin-bottom:14px;font-size:12px;line-height:1.6}.modal-field[data-v-793841ea]{margin-bottom:12px}.modal-field textarea[data-v-793841ea]{resize:vertical;font-family:inherit}.modal-actions[data-v-793841ea]{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}
