*{margin:0;padding:0;box-sizing:border-box}html.theme-light{--bg-page: #f5f5f5;--bg-card: #fff;--bg-card-alt: #f8f9fa;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--text-muted: #666;--border: #eee;--border-input: #ddd;--nav-bg: #2c3e50;--nav-hover: #34495e;--input-bg: #fff;--shadow: rgba(0,0,0,.1);--modal-backdrop: rgba(0,0,0,.45)}html.theme-dark{--bg-page: #1a1a1d;--bg-card: #252529;--bg-card-alt: #2d2d32;--text-primary: #e4e4e7;--text-secondary: #a1a1aa;--text-muted: #71717a;--border: #3f3f46;--border-input: #52525b;--nav-bg: #18181b;--nav-hover: #27272a;--input-bg: #2d2d32;--shadow: rgba(0,0,0,.3);--modal-backdrop: rgba(0,0,0,.6)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-page);color:var(--text-primary);transition:background-color .2s,color .2s}#app{min-height:100vh}.navbar{background-color:var(--nav-bg);color:#fff;padding:.5rem 0;box-shadow:0 2px 4px var(--shadow);transition:background-color .2s}.nav-container{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-width:0}.nav-title{font-size:1.25rem;font-weight:600;flex-shrink:0}.nav-menu{display:flex;list-style:none;gap:.35rem;align-items:center;flex-wrap:nowrap;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav-menu::-webkit-scrollbar{display:none}.nav-menu li{flex-shrink:0}.nav-menu a{color:#fff;text-decoration:none;padding:.35rem .55rem;border-radius:4px;transition:background-color .2s;white-space:nowrap;font-size:.875rem}.nav-menu a:hover,.nav-menu a.router-link-active{background-color:var(--nav-hover)}.nav-theme,.theme-dropdown{position:relative}.theme-trigger{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .6rem;background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem}.theme-trigger:hover{background:#ffffff1a}.theme-icon{font-size:1rem}.theme-label{max-width:7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-menu{position:absolute;right:0;top:100%;margin-top:.25rem;min-width:160px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px var(--shadow);padding:.25rem;z-index:100}.theme-menu button{display:block;width:100%;padding:.5rem .75rem;text-align:left;border:none;border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;font-size:.9rem}.theme-menu button:hover{background:var(--bg-card-alt)}.theme-menu button.active{background:var(--nav-hover);color:#fff}.main-content{max-width:1200px;margin:2rem auto;padding:0 2rem}html.theme-dark .section,html.theme-dark [class*=section]{background:var(--bg-card)!important;color:var(--text-primary)!important;box-shadow:0 2px 8px var(--shadow)!important}html.theme-dark .section h1,html.theme-dark .section h2,html.theme-dark .section h3,html.theme-dark h1[class=""],html.theme-dark h2[class=""],html.theme-dark h1,html.theme-dark h2{color:var(--text-primary)!important}html.theme-dark .note,html.theme-dark .advanced-hint,html.theme-dark .optional-hint,html.theme-dark .feature-select-hint,html.theme-dark .tf-meta,html.theme-dark .col-return1,html.theme-dark .status,html.theme-dark .info-line,html.theme-dark .hint,html.theme-dark .limit-label,html.theme-dark .small,html.theme-dark .card-label,html.theme-dark .log-lines-label{color:var(--text-secondary)!important}html.theme-dark .form-actions-optional,html.theme-dark .feature-select-count,html.theme-dark .page-info,html.theme-dark .preview-summary,html.theme-dark .range-cell,html.theme-dark .tf-range,html.theme-dark .sym-cell,html.theme-dark .result-cell,html.theme-dark .card-value{color:var(--text-muted)!important}html.theme-dark .form-row label,html.theme-dark .form-actions-optional{color:var(--text-secondary)!important}html.theme-dark .actions-sep{color:var(--border)!important}html.theme-dark .data-table th,html.theme-dark .data-table td{border-bottom-color:var(--border)!important}html.theme-dark .data-table th{background:var(--bg-card-alt)!important;color:var(--text-primary)!important}html.theme-dark .data-table td{color:var(--text-primary)!important}html.theme-dark .select,html.theme-dark .input-num,html.theme-dark .input-text,html.theme-dark select,html.theme-dark input[type=number],html.theme-dark input[type=text]{background:var(--input-bg)!important;border-color:var(--border-input)!important;color:var(--text-primary)!important}html.theme-dark .form-actions{border-top-color:var(--border)!important}html.theme-dark .form-actions-optional{border-left-color:var(--border)!important}html.theme-dark .form-block-dates{background:var(--bg-card-alt)!important;border-color:var(--border)!important}html.theme-dark .form-label,html.theme-dark .form-dates-hint,html.theme-dark .form-hint{color:var(--text-secondary)!important}html.theme-dark .date-arrow{color:var(--text-muted)!important}html.theme-dark .advanced-form,html.theme-dark .feature-select-form,html.theme-dark .new-task-form,html.theme-dark .card,html.theme-dark .equity-svg,html.theme-dark [class*=preview-table-wrap] .data-table{background:var(--bg-card-alt)!important;border-color:var(--border)!important}html.theme-dark .btn-link{color:#60a5fa!important}html.theme-dark .btn-link:hover,html.theme-dark .btn-link-dates:hover{color:#93c5fd!important}html.theme-dark .btn-link-dates{color:#60a5fa!important}html.theme-dark .modal-overlay{background:var(--modal-backdrop)!important}html.theme-dark .modal-box,html.theme-dark .preview-modal,html.theme-dark .validate-result-wrap{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text-primary)!important}html.theme-dark .modal-header,html.theme-dark .detail-tabs{border-bottom-color:var(--border)!important}html.theme-dark .report-group{background:var(--bg-card-alt)!important;border-color:var(--border)!important}html.theme-dark .report-label{color:var(--text-secondary)!important}html.theme-dark .report-value{color:var(--text-primary)!important}html.theme-dark .detail-tab{color:var(--text-secondary)!important}html.theme-dark .detail-tab:hover{color:var(--text-primary)!important}html.theme-dark .preview-modal-header{border-bottom-color:var(--border)!important}html.theme-dark .btn-close{color:var(--text-secondary)!important}html.theme-dark .btn-close:hover{background:var(--bg-card-alt)!important;color:var(--text-primary)!important}html.theme-dark .tab{background:var(--bg-card-alt)!important;border-color:var(--border)!important;color:var(--text-secondary)!important}html.theme-dark .tab:hover{background:var(--border)!important}html.theme-dark .tab.active{background:#3498db!important;color:#fff!important;border-color:#3498db!important}html.theme-dark .error,html.theme-dark .error-cell{color:#f87171!important}html.theme-dark .success,html.theme-dark .text-green{color:#4ade80!important}html.theme-dark .text-red{color:#f87171!important}html.theme-dark .validate-result,html.theme-dark .error-box{background:#f8717126!important;color:#f87171!important;border-color:var(--border)!important}html.theme-dark .tf-row,html.theme-dark .controls,html.theme-dark .preview-pagination{border-color:var(--border)!important}html.theme-dark .mono{color:var(--text-primary)!important}html.theme-dark .row-selected{background:#3b82f62e!important}html.theme-dark .row-selected td{color:var(--text-primary)!important}html.theme-dark .status-badge.status-running{background:#3b82f659!important;color:#93c5fd!important}html.theme-dark .status-badge.status-stopped{background:var(--border)!important;color:var(--text-secondary)!important}html.theme-dark .data-table tbody tr:hover td{background:#ffffff08!important}html.theme-dark .data-table td{border-bottom-color:var(--border)!important}html.theme-dark .select-sm{background:var(--input-bg)!important;border-color:var(--border-input)!important;color:var(--text-primary)!important}.home-view[data-v-d90b567a]{padding:2rem 0}h1[data-v-d90b567a]{font-size:2.5rem;margin-bottom:.5rem;color:#2c3e50}.subtitle[data-v-d90b567a]{font-size:1.2rem;color:#7f8c8d;margin-bottom:3rem}.cards[data-v-d90b567a]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.card[data-v-d90b567a]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s}.card[data-v-d90b567a]:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.card h2[data-v-d90b567a]{font-size:1.5rem;margin-bottom:1rem;color:#2c3e50}.card p[data-v-d90b567a]{color:#7f8c8d;margin-bottom:1.5rem;line-height:1.6}.card-link[data-v-d90b567a]{color:#3498db;text-decoration:none;font-weight:500}.card-link[data-v-d90b567a]:hover{text-decoration:underline}.data-view[data-v-d36604c6]{padding:2rem 0}h1[data-v-d36604c6]{font-size:2rem;margin-bottom:2rem;color:#2c3e50}.section[data-v-d36604c6]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-d36604c6]{font-size:1.5rem;margin-bottom:1.5rem;color:#2c3e50}.controls[data-v-d36604c6]{display:flex;gap:1rem;margin-bottom:1.5rem}.select[data-v-d36604c6]{padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.btn[data-v-d36604c6]{padding:.5rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.btn[data-v-d36604c6]:hover{background-color:#2980b9}.result-cell[data-v-d36604c6]{color:#2c3e50}.error-cell[data-v-d36604c6]{color:#c0392b;font-size:.9rem}.status[data-v-d36604c6],.error[data-v-d36604c6]{padding:1rem;border-radius:4px}.status[data-v-d36604c6]{background-color:#ecf0f1;color:#7f8c8d}.error[data-v-d36604c6]{background-color:#fee;color:#c0392b}.error-hint[data-v-d36604c6]{margin-top:.75rem;font-size:.9rem;color:#a94442}.error a[data-v-d36604c6]{color:#c0392b;text-decoration:underline}.info[data-v-d36604c6]{padding:1rem;background-color:#f8f9fa;border-radius:4px}.info p[data-v-d36604c6]{margin-bottom:.5rem;color:#2c3e50}.note[data-v-d36604c6]{color:#7f8c8d;font-style:italic;margin-top:1rem}.table-wrap[data-v-d36604c6]{overflow-x:auto;margin-top:1rem}.data-table[data-v-d36604c6]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-d36604c6],.data-table td[data-v-d36604c6]{padding:.5rem .75rem;text-align:right;border-bottom:1px solid #eee}.data-table th[data-v-d36604c6]{background:#f8f9fa;color:#2c3e50;font-weight:600}.data-table td[data-v-d36604c6]:first-child{text-align:left}.tabs[data-v-d36604c6]{display:flex;gap:.25rem;margin-bottom:1.5rem}.tab[data-v-d36604c6]{padding:.5rem 1.25rem;border:1px solid #dee2e6;background:#f8f9fa;border-radius:6px;cursor:pointer;font-size:.95rem}.tab[data-v-d36604c6]:hover{background:#e9ecef}.tab.active[data-v-d36604c6]{background:#3498db;color:#fff;border-color:#3498db}.controls-row[data-v-d36604c6]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.filter-label[data-v-d36604c6]{display:flex;align-items:center;gap:.35rem;font-size:.9rem;color:#555}.select-sm[data-v-d36604c6]{padding:.35rem .6rem;font-size:.9rem;min-width:6rem}.input-num[data-v-d36604c6]{width:5rem;padding:.4rem;border:1px solid #ddd;border-radius:4px}.subheading[data-v-d36604c6]{font-size:1.1rem;margin:1.5rem 0 .75rem;color:#2c3e50}.sym-cell[data-v-d36604c6]{font-weight:600;color:#2c3e50}.range-cell[data-v-d36604c6]{font-size:.85rem;color:#666;white-space:nowrap}.inline-checkbox[data-v-d36604c6]{display:inline-flex;align-items:center;gap:.25rem;margin-right:.5rem;font-size:.85rem}.inline-checkbox input[data-v-d36604c6]{margin:0}.batch-merge-row[data-v-d36604c6]{margin-top:1rem;padding:.75rem;background:#f8f9fa;border-radius:6px;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.batch-merge-row .subheading[data-v-d36604c6]{margin:0 .5rem 0 0}.batch-btn-wrap[data-v-d36604c6]{display:inline}.status-dot[data-v-d36604c6]{font-size:.85rem}.status-dot.done[data-v-d36604c6]{color:#155724}.status-dot.none[data-v-d36604c6]{color:#6c757d}.validate-result[data-v-d36604c6]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border:1px solid #ccc;border-radius:8px;padding:1rem;max-width:90vw;max-height:80vh;overflow:auto;box-shadow:0 4px 20px #00000026;z-index:1000}.validate-result pre[data-v-d36604c6]{margin:0 0 .75rem;font-size:.85rem;white-space:pre-wrap}.btn-danger[data-v-d36604c6]{background-color:#dc3545;color:#fff}.btn-danger[data-v-d36604c6]:hover{background-color:#c82333}.new-task-form[data-v-d36604c6]{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:6px}.new-task-form label[data-v-d36604c6]{display:flex;align-items:center;gap:.5rem}.new-task-form input[type=number][data-v-d36604c6]{width:5rem}.task-table[data-v-d36604c6]{margin-top:1rem}.task-table .task-message[data-v-d36604c6]{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge[data-v-d36604c6]{padding:.2rem .5rem;border-radius:4px;font-size:.85rem}.status-badge.none[data-v-d36604c6]{background:#e9ecef;color:#6c757d}.status-badge.done[data-v-d36604c6]{background:#d4edda;color:#155724}.status-badge.error[data-v-d36604c6]{background:#f8d7da;color:#721c24}.form-row[data-v-d36604c6]{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-end}.form-row label[data-v-d36604c6]{display:flex;flex-direction:column;gap:.35rem}.label-text[data-v-d36604c6]{font-size:.9rem;font-weight:500;color:#666}.fetch-buttons[data-v-d36604c6]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.btn-primary[data-v-d36604c6]{background-color:#3498db;color:#fff;border-color:#3498db}.btn-primary[data-v-d36604c6]:hover:not(:disabled){background-color:#2980b9}.success[data-v-d36604c6]{color:#155724;margin-top:.75rem}.error-detail[data-v-d36604c6]{font-size:.85rem;margin-top:.25rem}.status-row[data-v-d36604c6]{margin-bottom:1rem}.status-grid[data-v-d36604c6]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.status-card[data-v-d36604c6]{padding:1rem;border:1px solid #eee;border-radius:6px;background:#f8f9fa}.card-title[data-v-d36604c6]{font-weight:600;margin-bottom:.5rem;color:#2c3e50}.range[data-v-d36604c6]{font-size:.8rem;color:#666;margin:.35rem 0 0}.preview-details[data-v-d36604c6]{margin-top:.5rem;font-size:.8rem}.preview-details summary[data-v-d36604c6]{cursor:pointer;color:#666}.preview-details pre[data-v-d36604c6]{margin:.35rem 0 0;padding:.5rem;background:#f5f5f5;border-radius:4px;overflow-x:auto;font-size:.75rem}.status-pending[data-v-d36604c6]{background:#fff3cd;color:#856404}.status-running[data-v-d36604c6]{background:#cce5ff;color:#004085}.status-done[data-v-d36604c6]{background:#d4edda;color:#155724}.status-failed[data-v-d36604c6]{background:#f8d7da;color:#721c24}.btn-small[data-v-d36604c6]{padding:.25rem .75rem;font-size:.85rem}.btn-secondary[data-v-d36604c6]{background-color:#6c757d}.btn-secondary[data-v-d36604c6]:hover{background-color:#5a6268}.features-overview[data-v-d36604c6]{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:.5rem}.symbol-features[data-v-d36604c6]{min-width:320px}.tf-list[data-v-d36604c6]{list-style:none;padding:0;margin:.5rem 0 0}.tf-row[data-v-d36604c6]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.4rem 0;border-bottom:1px solid #eee;font-size:.9rem}.tf-name[data-v-d36604c6]{font-weight:500;width:2.5rem}.tf-source[data-v-d36604c6]{font-size:.75rem;padding:.1rem .4rem;border-radius:3px;margin-right:.25rem}.source-raw[data-v-d36604c6]{background:#dff0d8;color:#3c763d}.source-processed[data-v-d36604c6]{background:#d9edf7;color:#31708f}.tf-meta[data-v-d36604c6]{color:#7f8c8d;margin-right:.25rem}.tf-range[data-v-d36604c6]{color:#666;font-size:.85rem;flex-basis:100%;margin-left:2.5rem}.preview-modal-backdrop[data-v-d36604c6]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1.5rem}.preview-modal[data-v-d36604c6]{background:#fff;border-radius:10px;box-shadow:0 8px 32px #0003;max-width:96vw;width:1300px;max-height:88vh;display:flex;flex-direction:column}.preview-modal-header[data-v-d36604c6]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #eee;flex-shrink:0}.preview-modal-header h3[data-v-d36604c6]{margin:0;font-size:1.1rem}.btn-close[data-v-d36604c6]{width:2rem;height:2rem;border:none;background:transparent;font-size:1.5rem;line-height:1;color:#666;cursor:pointer;border-radius:4px}.btn-close[data-v-d36604c6]:hover{background:#f0f0f0;color:#333}.preview-modal-body[data-v-d36604c6]{padding:1rem 1.25rem 1.25rem;overflow:auto;flex:1;min-height:0}.contract-preview-chart[data-v-d36604c6]{width:100%;height:280px;margin-bottom:1rem}.preview-toolbar[data-v-d36604c6]{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.preview-summary[data-v-d36604c6]{color:#666;font-size:.9rem}.page-size-label[data-v-d36604c6]{display:flex;align-items:center;gap:.35rem;font-size:.9rem}.select-sm[data-v-d36604c6]{padding:.25rem .5rem;border-radius:4px;border:1px solid #ccc}.preview-table-wrap[data-v-d36604c6]{overflow:auto;max-height:55vh;margin-bottom:1rem}.preview-table-wrap .data-table[data-v-d36604c6]{font-size:.85rem}.preview-table-wrap .data-table th[data-v-d36604c6],.preview-table-wrap .data-table td[data-v-d36604c6]{padding:.35rem .5rem}.preview-pagination[data-v-d36604c6]{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.preview-pagination .btn-secondary[data-v-d36604c6]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-d36604c6]{font-size:.9rem;color:#666}.modal-fade-enter-active[data-v-d36604c6],.modal-fade-leave-active[data-v-d36604c6]{transition:opacity .2s}.modal-fade-enter-from[data-v-d36604c6],.modal-fade-leave-to[data-v-d36604c6]{opacity:0}.modal-fade-enter-active .preview-modal[data-v-d36604c6],.modal-fade-leave-active .preview-modal[data-v-d36604c6]{transition:transform .2s}.modal-fade-enter-from .preview-modal[data-v-d36604c6],.modal-fade-leave-to .preview-modal[data-v-d36604c6]{transform:scale(.96)}.toast[data-v-d36604c6]{position:fixed;top:1.5rem;left:50%;transform:translate(-50%);padding:.7rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #00000026;max-width:80vw;text-align:center;pointer-events:none}.toast-info[data-v-d36604c6]{background:#2c3e50;color:#fff}.toast-success[data-v-d36604c6]{background:#27ae60;color:#fff}.toast-error[data-v-d36604c6]{background:#c0392b;color:#fff}.toast-fade-enter-active[data-v-d36604c6],.toast-fade-leave-active[data-v-d36604c6]{transition:opacity .3s,transform .3s}.toast-fade-enter-from[data-v-d36604c6],.toast-fade-leave-to[data-v-d36604c6]{opacity:0;transform:translate(-50%) translateY(-12px)}.models-view[data-v-96692f66]{padding:2rem 0}h1[data-v-96692f66]{font-size:2rem;margin-bottom:1rem;color:#2c3e50}.note[data-v-96692f66]{color:#7f8c8d;margin-bottom:1.5rem}.section[data-v-96692f66]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-96692f66]{font-size:1.25rem;margin-bottom:1rem;color:#2c3e50}.form-row[data-v-96692f66]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.form-row label[data-v-96692f66]{display:flex;align-items:center;gap:.35rem}.form-actions[data-v-96692f66]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #eee}.form-actions-optional[data-v-96692f66]{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-left:.5rem;padding-left:.75rem;border-left:1px solid #e0e0e0;font-size:.9rem;color:#666}.actions-sep[data-v-96692f66]{color:#bbb;-webkit-user-select:none;user-select:none}.optional-hint[data-v-96692f66]{color:#999;font-size:.85rem}.btn-link[data-v-96692f66]{background:none;border:none;color:#3498db;cursor:pointer;font-size:.9rem;padding:0;text-decoration:none}.btn-link[data-v-96692f66]:hover{color:#2980b9;text-decoration:underline}.select[data-v-96692f66]{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px}.input-num[data-v-96692f66]{width:5rem;padding:.4rem;border:1px solid #ddd;border-radius:4px}.input-text[data-v-96692f66]{width:6rem;padding:.4rem;border:1px solid #ddd;border-radius:4px}.advanced-form[data-v-96692f66]{padding:1rem;background:#f8f9fa;border-radius:6px;border:1px solid #eee}.block-after-actions[data-v-96692f66]{margin-top:.75rem}.advanced-hint[data-v-96692f66]{color:#7f8c8d;font-size:.85rem;margin:0 0 .75rem}.feature-select-form[data-v-96692f66]{padding:1rem;background:#f8f9fa;border-radius:6px;border:1px solid #eee}.feature-select-actions[data-v-96692f66]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.feature-select-count[data-v-96692f66]{font-size:.85rem;color:#666}.feature-checkbox-wrap[data-v-96692f66]{max-height:12rem;overflow:auto;display:flex;flex-wrap:wrap;gap:.5rem 1rem}.feature-checkbox[data-v-96692f66]{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;cursor:pointer;white-space:nowrap}.feature-checkbox input[data-v-96692f66]{margin:0}.col-return1[data-v-96692f66]{color:#7f8c8d;font-style:italic}.controls[data-v-96692f66]{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.controls-row .controls-spacer[data-v-96692f66]{flex:1}.btn[data-v-96692f66]{padding:.5rem 1.25rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn[data-v-96692f66]:hover:not(:disabled){background:#2980b9}.btn[data-v-96692f66]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-96692f66]{background:#6c757d}.btn-secondary[data-v-96692f66]:hover{background:#5a6268}.error[data-v-96692f66]{color:#c0392b;margin-top:.5rem}.success[data-v-96692f66]{color:#27ae60;margin-top:.5rem}.status[data-v-96692f66]{color:#7f8c8d;padding:.5rem 0}.data-table[data-v-96692f66]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-96692f66],.data-table td[data-v-96692f66]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.data-table th[data-v-96692f66]{background:#f8f9fa;font-weight:600}.mono[data-v-96692f66]{font-family:monospace;font-size:.85rem}.factor-cell[data-v-96692f66]{font-size:.85rem;color:#555;max-width:12rem}.result-cell[data-v-96692f66]{color:#2c3e50;font-size:.9rem}.error-cell[data-v-96692f66]{color:#c0392b;font-size:.85rem}.status-badge[data-v-96692f66]{padding:.2rem .5rem;border-radius:4px;font-size:.85rem}.status-pending[data-v-96692f66]{background:#fff3cd;color:#856404}.status-running[data-v-96692f66]{background:#cce5ff;color:#004085}.status-done[data-v-96692f66]{background:#d4edda;color:#155724}.status-failed[data-v-96692f66]{background:#f8d7da;color:#721c24}.btn-small[data-v-96692f66]{padding:.3rem .6rem;font-size:.85rem}.btn-danger[data-v-96692f66]{background:#dc3545}.btn-danger[data-v-96692f66]:hover:not(:disabled){background:#c82333}.backtest-view[data-v-f71dff58]{padding:2rem 0}h1[data-v-f71dff58]{font-size:2rem;margin-bottom:1rem;color:#2c3e50}.note[data-v-f71dff58]{color:#7f8c8d;margin-bottom:1.5rem}.section[data-v-f71dff58]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-f71dff58]{font-size:1.25rem;margin-bottom:1rem;color:#2c3e50}.controls[data-v-f71dff58]{margin-bottom:1rem}.backtest-form-section .form-block[data-v-f71dff58]{margin-bottom:1.25rem}.backtest-form-section .form-block[data-v-f71dff58]:last-of-type{margin-bottom:0}.form-block-main[data-v-f71dff58]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.25rem 2rem}.form-field[data-v-f71dff58]{display:flex;flex-direction:column;gap:.35rem}.form-field-inline[data-v-f71dff58]{flex-direction:row;align-items:center;flex-wrap:wrap}.form-field-inline .form-label[data-v-f71dff58]{margin-right:.5rem}.form-field-inline .form-hint[data-v-f71dff58]{margin-left:.35rem;font-size:.8rem;color:#7f8c8d}.form-label[data-v-f71dff58]{font-size:.85rem;font-weight:500;color:#495057}.form-label-optional[data-v-f71dff58]{font-weight:400;color:#7f8c8d}.form-block-toggle[data-v-f71dff58]{margin-bottom:.5rem}.btn-link-dates[data-v-f71dff58]{background:none;border:none;color:#3498db;cursor:pointer;font-size:.9rem;padding:0}.btn-link-dates[data-v-f71dff58]:hover{color:#2980b9;text-decoration:underline}.form-block-dates[data-v-f71dff58]{padding:1rem 1.1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.form-dates-hint[data-v-f71dff58]{font-size:.8rem;color:#7f8c8d;margin:.25rem 0 .6rem}.form-dates-inputs[data-v-f71dff58]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.input-date[data-v-f71dff58]{padding:.5rem .65rem;border:1px solid #dee2e6;border-radius:6px;font-size:.9rem;min-width:10rem}.input-date[data-v-f71dff58]:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.date-arrow[data-v-f71dff58]{color:#adb5bd;font-size:1rem;font-weight:600;line-height:1}.form-actions[data-v-f71dff58]{margin-top:1.35rem;padding-top:1.1rem;border-top:1px solid #eee}.btn-submit[data-v-f71dff58]{padding:.6rem 1.5rem;font-size:1rem;font-weight:500;border-radius:6px;background:#3498db;color:#fff;border:none;cursor:pointer;transition:background .2s}.btn-submit[data-v-f71dff58]:hover:not(:disabled){background:#2980b9}.btn-submit[data-v-f71dff58]:disabled{opacity:.6;cursor:not-allowed}.select[data-v-f71dff58]{padding:.45rem .75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.95rem}.select-model[data-v-f71dff58]{min-width:300px}.input-num[data-v-f71dff58]{width:5.5rem;padding:.45rem .5rem;border:1px solid #dee2e6;border-radius:6px;font-size:.9rem}.btn[data-v-f71dff58]{padding:.5rem 1.25rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn[data-v-f71dff58]:hover:not(:disabled){background:#2980b9}.btn[data-v-f71dff58]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary[data-v-f71dff58]{background:#6c757d}.btn-secondary[data-v-f71dff58]:hover{background:#5a6268}.btn-small[data-v-f71dff58]{padding:.3rem .6rem;font-size:.85rem}.btn-danger[data-v-f71dff58]{background:#dc3545}.btn-danger[data-v-f71dff58]:hover:not(:disabled){background:#c82333}.error[data-v-f71dff58]{color:#c0392b;margin-top:.5rem}.success[data-v-f71dff58]{color:#27ae60;margin-top:.5rem}.status[data-v-f71dff58]{color:#7f8c8d;padding:.5rem 0}.data-table[data-v-f71dff58]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-f71dff58],.data-table td[data-v-f71dff58]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.data-table th[data-v-f71dff58]{background:#f8f9fa;font-weight:600}.mono[data-v-f71dff58]{font-family:monospace;font-size:.85rem}.range-cell[data-v-f71dff58]{font-size:.85rem;color:#666;white-space:nowrap}.result-cell[data-v-f71dff58]{color:#2c3e50}.error-cell[data-v-f71dff58]{color:#c0392b;font-size:.85rem}.status-badge[data-v-f71dff58]{padding:.2rem .5rem;border-radius:4px;font-size:.85rem}.status-pending[data-v-f71dff58]{background:#fff3cd;color:#856404}.status-running[data-v-f71dff58]{background:#cce5ff;color:#004085}.status-done[data-v-f71dff58]{background:#d4edda;color:#155724}.status-failed[data-v-f71dff58]{background:#f8d7da;color:#721c24}.modal-overlay[data-v-f71dff58]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--modal-backdrop, rgba(0,0,0,.45))}.modal-box[data-v-f71dff58]{background:var(--bg-card, #fff);color:var(--text-primary, #2c3e50);border-radius:8px;box-shadow:0 8px 32px var(--shadow, rgba(0,0,0,.2));max-width:520px;width:100%;max-height:90vh;overflow:auto;border:1px solid var(--border, #eee)}.modal-detail-wide[data-v-f71dff58]{max-width:720px}.modal-header[data-v-f71dff58]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border, #eee)}.modal-title[data-v-f71dff58]{margin:0;font-size:1.05rem;color:var(--text-primary, #2c3e50)}.modal-close[data-v-f71dff58]{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-secondary, #7f8c8d);cursor:pointer;padding:0 .25rem}.modal-close[data-v-f71dff58]:hover{color:var(--text-primary, #2c3e50)}.modal-body[data-v-f71dff58]{padding:1rem 1.25rem 1.25rem}.detail-time-range[data-v-f71dff58]{font-size:.9rem;color:var(--text-secondary, #7f8c8d);margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border, #eee)}.detail-tabs[data-v-f71dff58]{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--border, #eee)}.detail-tab[data-v-f71dff58]{padding:.5rem 1rem;font-size:.9rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, #7f8c8d);cursor:pointer;margin-bottom:-1px}.detail-tab[data-v-f71dff58]:hover{color:var(--text-primary, #2c3e50)}.detail-tab.active[data-v-f71dff58]{color:#3498db;border-bottom-color:#3498db;font-weight:500}.detail-tab-content[data-v-f71dff58]{min-height:120px}.detail-panel[data-v-f71dff58]{padding-top:.25rem}.report-grid[data-v-f71dff58]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 560px){.report-grid[data-v-f71dff58]{grid-template-columns:1fr}}.report-group[data-v-f71dff58]{padding:1rem;background:var(--bg-card-alt, #f8f9fa);border-radius:8px;border:1px solid var(--border, #eee)}.report-group-title[data-v-f71dff58]{margin:0 0 .75rem;font-size:.9rem;font-weight:600;color:var(--text-primary, #2c3e50)}.report-metrics[data-v-f71dff58]{display:flex;flex-direction:column;gap:.5rem}.report-item[data-v-f71dff58]{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.report-label[data-v-f71dff58]{color:var(--text-secondary, #7f8c8d)}.report-value[data-v-f71dff58]{font-weight:500;color:var(--text-primary, #2c3e50)}.trades-table-wrap[data-v-f71dff58]{overflow-x:auto;max-height:360px;overflow-y:auto}.trades-table[data-v-f71dff58]{font-size:.85rem}.trades-table th[data-v-f71dff58],.trades-table td[data-v-f71dff58]{padding:.4rem .6rem}.chart-block[data-v-f71dff58]{margin-bottom:1rem}.chart-block h4[data-v-f71dff58]{margin:0 0 .35rem;font-size:.9rem;color:var(--text-secondary, #7f8c8d)}.mini-chart[data-v-f71dff58]{width:100%;height:120px;display:block}.modal-body .hint[data-v-f71dff58]{font-size:.8rem;color:var(--text-secondary, #95a5a6);margin-top:.5rem}.section-desc[data-v-f71dff58]{font-size:.9rem;color:#7f8c8d;margin:-.5rem 0 1rem}.scan-form[data-v-f71dff58]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;margin-bottom:.5rem}.input-text[data-v-f71dff58]{min-width:12rem;padding:.45rem .5rem;border:1px solid #dee2e6;border-radius:6px;font-size:.9rem}.hint-inline[data-v-f71dff58]{font-size:.85rem;color:#95a5a6;margin-bottom:1rem}.scan-table-wrap[data-v-f71dff58]{margin-top:1rem;overflow-x:auto}.scan-toolbar[data-v-f71dff58]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.scan-sort[data-v-f71dff58]{margin:0}.scan-sort label[data-v-f71dff58]{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:#555}.scan-actions[data-v-f71dff58]{display:flex;align-items:center;gap:.5rem}.scan-selected-hint[data-v-f71dff58]{font-size:.85rem;color:#7f8c8d}.select-sm[data-v-f71dff58]{padding:.3rem .5rem;font-size:.85rem;min-width:8rem}.scan-table tbody tr[data-v-f71dff58]{cursor:pointer}.scan-table tbody tr[data-v-f71dff58]:hover{background:#f8f9fa}.scan-table tbody tr.scan-row-selected[data-v-f71dff58]{background:#e8f4fd}.scan-table .col-select[data-v-f71dff58]{width:2rem;text-align:center;vertical-align:middle}.row-select-dot[data-v-f71dff58]{display:inline-block;width:8px;height:8px;border-radius:50%;border:1px solid #adb5bd;background:#fff}.row-select-dot.selected[data-v-f71dff58]{background:#3498db;border-color:#3498db}.data-table .num[data-v-f71dff58]{text-align:right}.text-green[data-v-f71dff58]{color:#27ae60}.text-red[data-v-f71dff58]{color:#e74c3c}.paper-trading-view[data-v-6d5f885a]{padding:2rem 0}h1[data-v-6d5f885a]{font-size:2rem;margin-bottom:1rem;color:#2c3e50}.note[data-v-6d5f885a]{color:#7f8c8d;margin-bottom:1.5rem;font-style:italic}.section[data-v-6d5f885a]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-6d5f885a]{font-size:1.25rem;margin-bottom:1rem;color:#2c3e50}.section h3[data-v-6d5f885a]{font-size:1rem;margin-bottom:.75rem;color:#2c3e50}.form-row[data-v-6d5f885a]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.form-row label[data-v-6d5f885a]{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:#555}.form-row label.label-checkbox[data-v-6d5f885a]{flex-direction:row;align-items:center;gap:.5rem}.form-row label.label-checkbox input[type=checkbox][data-v-6d5f885a]{width:auto}.select[data-v-6d5f885a]{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;min-width:14rem}.input-num[data-v-6d5f885a]{width:5rem;padding:.4rem;border:1px solid #ddd;border-radius:4px}.input-num.wide[data-v-6d5f885a]{width:8rem}.controls[data-v-6d5f885a]{display:flex;gap:.75rem;margin-bottom:1rem}.btn[data-v-6d5f885a]{padding:.5rem 1.25rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem}.btn[data-v-6d5f885a]:hover:not(:disabled){background:#2980b9}.btn[data-v-6d5f885a]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-6d5f885a]{background:#6c757d}.btn-secondary[data-v-6d5f885a]:hover:not(:disabled){background:#5a6268}.btn-small[data-v-6d5f885a]{padding:.3rem .6rem;font-size:.82rem}.btn-danger[data-v-6d5f885a]{background:#dc3545}.btn-danger[data-v-6d5f885a]:hover:not(:disabled){background:#c82333}.btn-warning[data-v-6d5f885a]{background:#e67e22}.btn-warning[data-v-6d5f885a]:hover:not(:disabled){background:#d35400}.status[data-v-6d5f885a]{color:#7f8c8d;padding:.5rem 0}.data-table[data-v-6d5f885a]{width:100%;border-collapse:collapse;font-size:.88rem}.data-table th[data-v-6d5f885a],.data-table td[data-v-6d5f885a]{padding:.5rem .6rem;text-align:left;border-bottom:1px solid #eee}.data-table th[data-v-6d5f885a]{background:#f8f9fa;font-weight:600}.row-selected[data-v-6d5f885a]{background:#eaf4ff}.mono[data-v-6d5f885a]{font-family:monospace;font-size:.82rem}.small[data-v-6d5f885a]{font-size:.82rem;color:#555}.action-btns[data-v-6d5f885a]{display:flex;gap:.35rem;flex-wrap:wrap}.status-badge[data-v-6d5f885a]{padding:.2rem .5rem;border-radius:4px;font-size:.82rem;white-space:nowrap}.status-running[data-v-6d5f885a]{background:#cce5ff;color:#004085}.status-stopped[data-v-6d5f885a]{background:#e2e3e5;color:#383d41}.status-paused[data-v-6d5f885a]{background:#fff3cd;color:#856404;margin-left:.25rem}.btn-info[data-v-6d5f885a]{background:#17a2b8}.btn-info[data-v-6d5f885a]:hover:not(:disabled){background:#138496}.leverage-inline[data-v-6d5f885a]{display:inline-flex;align-items:center;gap:.25rem}.input-leverage[data-v-6d5f885a]{width:3.2rem;padding:.25rem .35rem;border:1px solid #ddd;border-radius:4px;font-size:.82rem}.detail-actions[data-v-6d5f885a]{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.modal-overlay[data-v-6d5f885a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box[data-v-6d5f885a]{background:#fff;border-radius:8px;padding:1.5rem;min-width:320px;box-shadow:0 4px 20px #00000026}.modal-title[data-v-6d5f885a]{margin:0 0 .5rem;font-size:1.1rem;color:#2c3e50}.modal-desc[data-v-6d5f885a]{font-size:.85rem;color:#7f8c8d;margin-bottom:1rem}.modal-form label[data-v-6d5f885a]{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:#555;margin-bottom:1rem}.modal-actions[data-v-6d5f885a]{display:flex;justify-content:flex-end;gap:.75rem}.strategy-info[data-v-6d5f885a]{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem;padding:.75rem 1rem;background:#f8f9fa;border-radius:8px;font-size:.9rem;color:#495057}.strategy-item code[data-v-6d5f885a]{font-family:monospace;font-size:.85rem;background:#e9ecef;padding:.15rem .4rem;border-radius:4px}.cards[data-v-6d5f885a]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.card[data-v-6d5f885a]{background:#f8f9fa;border-radius:8px;padding:1rem 1.25rem;min-width:120px;flex:1}.card-label[data-v-6d5f885a]{font-size:.8rem;color:#7f8c8d;margin-bottom:.3rem}.card-value[data-v-6d5f885a]{font-size:1.25rem;font-weight:600;color:#2c3e50}.text-green[data-v-6d5f885a]{color:#27ae60}.text-red[data-v-6d5f885a]{color:#e74c3c}.text-gray[data-v-6d5f885a]{color:#95a5a6}.chart-wrap[data-v-6d5f885a]{margin-bottom:1.5rem}.chart-wrap h3[data-v-6d5f885a]{margin-bottom:.5rem}.equity-svg[data-v-6d5f885a]{width:100%;height:120px;display:block;background:#f8f9fa;border-radius:6px}.trade-table[data-v-6d5f885a]{margin-top:.5rem}.badge-buy[data-v-6d5f885a]{background:#d4edda;color:#155724;padding:.15rem .4rem;border-radius:3px;font-size:.82rem}.badge-sell[data-v-6d5f885a]{background:#f8d7da;color:#721c24;padding:.15rem .4rem;border-radius:3px;font-size:.82rem}.log-section[data-v-6d5f885a]{margin-top:1.5rem}.log-header[data-v-6d5f885a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.log-header h3[data-v-6d5f885a]{margin:0}.log-controls[data-v-6d5f885a]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.log-lines-label[data-v-6d5f885a]{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#555}.log-pagination-info[data-v-6d5f885a]{font-size:.85rem;color:#7f8c8d}.log-pagination-btns[data-v-6d5f885a]{display:flex;gap:.35rem}.select-sm[data-v-6d5f885a]{padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.log-box[data-v-6d5f885a]{background:#1e1e2e;border-radius:6px;padding:.75rem 1rem;max-height:400px;overflow-y:auto;font-family:Menlo,Monaco,Consolas,monospace;font-size:.8rem;line-height:1.6}.log-line[data-v-6d5f885a]{white-space:pre-wrap;word-break:break-all}.log-info[data-v-6d5f885a]{color:#a9b7c6}.log-error[data-v-6d5f885a]{color:#ff6b6b;font-weight:600}.log-warning[data-v-6d5f885a]{color:#ffd93d}.log-trade[data-v-6d5f885a]{color:#6bcb77;font-weight:600}.log-event[data-v-6d5f885a]{color:#4d96ff}.toast[data-v-6d5f885a]{position:fixed;top:1.5rem;left:50%;transform:translate(-50%);padding:.7rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px #00000026;max-width:80vw;text-align:center;pointer-events:none}.toast-info[data-v-6d5f885a]{background:#2c3e50;color:#fff}.toast-success[data-v-6d5f885a]{background:#27ae60;color:#fff}.toast-error[data-v-6d5f885a]{background:#c0392b;color:#fff}.toast-fade-enter-active[data-v-6d5f885a],.toast-fade-leave-active[data-v-6d5f885a]{transition:opacity .3s,transform .3s}.toast-fade-enter-from[data-v-6d5f885a],.toast-fade-leave-to[data-v-6d5f885a]{opacity:0;transform:translate(-50%) translateY(-12px)}.kline-view[data-v-af5831dd]{padding:2rem 0}h1[data-v-af5831dd]{font-size:2rem;margin-bottom:.5rem;color:#2c3e50}.note[data-v-af5831dd]{color:#7f8c8d;margin-bottom:1.5rem;font-style:italic}.section[data-v-af5831dd]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.controls[data-v-af5831dd]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.select[data-v-af5831dd]{padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;min-width:6rem}.select-sm[data-v-af5831dd]{padding:.35rem .6rem;border:1px solid #ddd;border-radius:4px;margin-left:.25rem}.limit-label[data-v-af5831dd]{display:flex;align-items:center;font-size:.9rem;color:#555}.btn[data-v-af5831dd]{padding:.5rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn[data-v-af5831dd]:hover:not(:disabled){background:#2980b9}.btn[data-v-af5831dd]:disabled{opacity:.6;cursor:not-allowed}.error[data-v-af5831dd]{padding:1rem;background:#fee;color:#c0392b;border-radius:4px;margin-top:.5rem}.info-line[data-v-af5831dd]{margin-bottom:.75rem;font-size:.9rem;color:#555}.chart-wrap[data-v-af5831dd]{margin-top:.5rem}.chart[data-v-af5831dd]{width:100%;height:420px}.hint[data-v-af5831dd]{color:#95a5a6;margin-top:1rem}.config-view[data-v-8f0eef3f]{padding:2rem 0}h1[data-v-8f0eef3f]{font-size:2rem;margin-bottom:1rem;color:#2c3e50}.note[data-v-8f0eef3f]{color:#7f8c8d;margin-bottom:1.5rem;font-style:italic}.hint[data-v-8f0eef3f]{font-size:.85rem;color:#7f8c8d;margin-top:-.5rem;margin-bottom:1rem}.section[data-v-8f0eef3f]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-8f0eef3f]{font-size:1.25rem;margin-bottom:0;color:#2c3e50}.section-header[data-v-8f0eef3f]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.section-actions[data-v-8f0eef3f]{display:flex;align-items:center;gap:.75rem}.btn-secondary[data-v-8f0eef3f]{background:#95a5a6}.btn-secondary[data-v-8f0eef3f]:hover:not(:disabled){background:#7f8c8d}.form-row[data-v-8f0eef3f]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:.5rem}.form-row label[data-v-8f0eef3f]{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:#555}.input-text[data-v-8f0eef3f]{width:280px;padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px}.select[data-v-8f0eef3f]{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px}.select-symbols[data-v-8f0eef3f]{min-width:320px}.select-row[data-v-8f0eef3f]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.hint-inline[data-v-8f0eef3f]{font-size:.85rem;color:#7f8c8d}.form-actions[data-v-8f0eef3f]{margin-bottom:1rem}.btn[data-v-8f0eef3f]{padding:.5rem 1.25rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem}.btn[data-v-8f0eef3f]:hover:not(:disabled){background:#2980b9}.btn[data-v-8f0eef3f]:disabled{opacity:.6;cursor:not-allowed}.btn-small[data-v-8f0eef3f]{padding:.3rem .6rem;font-size:.82rem}.btn-danger[data-v-8f0eef3f]{background:#dc3545}.btn-danger[data-v-8f0eef3f]:hover:not(:disabled){background:#c82333}.status[data-v-8f0eef3f]{color:#7f8c8d;padding:.5rem 0}.data-table[data-v-8f0eef3f]{width:100%;border-collapse:collapse;font-size:.88rem}.data-table th[data-v-8f0eef3f],.data-table td[data-v-8f0eef3f]{padding:.5rem .6rem;text-align:left;border-bottom:1px solid #eee}.data-table th[data-v-8f0eef3f]{background:#f8f9fa;font-weight:600}.mono[data-v-8f0eef3f]{font-family:monospace;font-size:.88rem}.toast-fade-enter-active[data-v-8f0eef3f],.toast-fade-leave-active[data-v-8f0eef3f]{transition:opacity .2s}.toast-fade-enter-from[data-v-8f0eef3f],.toast-fade-leave-to[data-v-8f0eef3f]{opacity:0}.toast[data-v-8f0eef3f]{position:fixed;top:2rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;border-radius:6px;z-index:9999;box-shadow:0 4px 12px #00000026}.toast-success[data-v-8f0eef3f]{background:#27ae60;color:#fff}.toast-error[data-v-8f0eef3f]{background:#e74c3c;color:#fff}.modal-overlay[data-v-8f0eef3f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-box[data-v-8f0eef3f]{background:#fff;border-radius:8px;box-shadow:0 8px 32px #0003;max-width:480px;width:100%;max-height:85vh;display:flex;flex-direction:column}.modal-add-symbol .modal-header[data-v-8f0eef3f]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-add-symbol .modal-title[data-v-8f0eef3f]{margin:0;font-size:1.1rem;color:#2c3e50}.modal-close[data-v-8f0eef3f]{background:none;border:none;font-size:1.5rem;line-height:1;color:#7f8c8d;cursor:pointer;padding:0 .25rem}.modal-close[data-v-8f0eef3f]:hover{color:#2c3e50}.modal-search[data-v-8f0eef3f]{margin:.75rem 1.25rem 0;padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;width:calc(100% - 2.5rem)}.modal-list-wrap[data-v-8f0eef3f]{flex:1;min-height:200px;overflow:auto;padding:.75rem 1.25rem 1.25rem}.modal-empty[data-v-8f0eef3f]{color:#7f8c8d;text-align:center;padding:2rem 0;margin:0}.modal-symbol-list[data-v-8f0eef3f]{list-style:none;margin:0;padding:0;max-height:360px;overflow-y:auto}.modal-symbol-item[data-v-8f0eef3f]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .6rem;border-radius:4px;cursor:pointer;border-bottom:1px solid #f0f0f0}.modal-symbol-item[data-v-8f0eef3f]:hover:not(.disabled){background:#f0f7ff}.modal-symbol-item.disabled[data-v-8f0eef3f]{cursor:not-allowed;opacity:.7}.modal-symbol-dir[data-v-8f0eef3f]{font-family:monospace;font-size:.88rem;color:#555}.modal-symbol-ccxt[data-v-8f0eef3f]{font-family:monospace;font-size:.85rem;color:#7f8c8d}.sub-title[data-v-8f0eef3f]{font-size:1rem;color:#555;margin:1.25rem 0 .5rem}.dynamic-list[data-v-8f0eef3f]{margin-top:.75rem}.dynamic-card[data-v-8f0eef3f]{border:1px solid #eee;border-radius:6px;padding:.6rem .75rem;margin-bottom:.5rem;background:#fafafa}.dynamic-card-head[data-v-8f0eef3f]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem}.dynamic-type[data-v-8f0eef3f]{font-weight:600;font-family:monospace;color:#2980b9}.dynamic-func-hint[data-v-8f0eef3f]{font-size:.8rem;color:#95a5a6;font-family:monospace}.dynamic-params[data-v-8f0eef3f],.dynamic-inputs[data-v-8f0eef3f]{font-size:.85rem;color:#7f8c8d}.dynamic-outputs[data-v-8f0eef3f]{font-size:.85rem;color:#555}.dynamic-actions[data-v-8f0eef3f]{margin-left:auto;display:flex;gap:.35rem}.dynamic-formula-desc[data-v-8f0eef3f]{font-size:.8rem;color:#666;margin:.4rem 0 0;padding-top:.4rem;border-top:1px solid #eee;line-height:1.4}.input-num[data-v-8f0eef3f]{width:4rem;padding:.4rem;border:1px solid #ddd;border-radius:4px}.form-hint[data-v-8f0eef3f]{font-size:.8rem;color:#7f8c8d;margin-top:.35rem}.outputs-list[data-v-8f0eef3f]{margin-top:.35rem}.output-row[data-v-8f0eef3f]{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.output-name[data-v-8f0eef3f]{width:8rem}.output-desc[data-v-8f0eef3f]{flex:1;min-width:0}.btn-danger-outline[data-v-8f0eef3f]{background:transparent;border:1px solid #dc3545;color:#dc3545}.btn-danger-outline[data-v-8f0eef3f]:hover:not(:disabled){background:#dc3545;color:#fff}.error[data-v-8f0eef3f]{color:#c0392b;font-size:.9rem;margin-top:.5rem}.modal-factor[data-v-8f0eef3f]{max-width:560px;width:100%;min-width:320px;max-height:90vh;display:flex;flex-direction:column}.modal-factor .modal-header[data-v-8f0eef3f]{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-factor .modal-title[data-v-8f0eef3f]{margin:0;font-size:1.1rem;color:#2c3e50}.modal-factor .modal-body[data-v-8f0eef3f]{flex:1;overflow-y:auto;padding:1rem 1.25rem;max-height:calc(90vh - 120px)}.modal-factor .form-field[data-v-8f0eef3f]{margin-bottom:1rem}.modal-factor .form-field[data-v-8f0eef3f]:last-of-type{margin-bottom:0}.modal-factor .form-label[data-v-8f0eef3f]{display:block;font-size:.9rem;color:#555;margin-bottom:.35rem;font-weight:500}.modal-factor .select-full[data-v-8f0eef3f]{width:100%;max-width:100%;box-sizing:border-box}.modal-factor .input-text.select-full[data-v-8f0eef3f]{width:100%}.required[data-v-8f0eef3f]{color:#c0392b}.modal-factor .form-row[data-v-8f0eef3f]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.modal-factor .form-row-first[data-v-8f0eef3f]{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.modal-factor .form-field-inline-label[data-v-8f0eef3f]{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.modal-factor .form-field-inline-label .form-label[data-v-8f0eef3f]{margin:0;white-space:nowrap;width:4.5em;flex-shrink:0}.modal-factor .form-field-inline-label .input-text[data-v-8f0eef3f],.modal-factor .form-field-inline-label .input-num[data-v-8f0eef3f]{height:2rem;padding:.35rem .5rem;box-sizing:border-box}.modal-factor .form-field-inline-label .input-text[data-v-8f0eef3f]{flex:1;min-width:6rem}.modal-factor .form-field-inline-label .input-num[data-v-8f0eef3f]{width:4rem;flex:none}.modal-factor .form-hint-inline[data-v-8f0eef3f]{font-size:.8rem;color:#95a5a6;white-space:nowrap}.modal-factor .form-field-inline[data-v-8f0eef3f]{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.75rem}.modal-factor .form-field-inline .form-label[data-v-8f0eef3f]{margin:0;flex-shrink:0;white-space:nowrap;font-size:.9rem;color:#555;line-height:2rem}.modal-factor .form-field-inline .input-text[data-v-8f0eef3f],.modal-factor .form-field-inline .input-num[data-v-8f0eef3f],.modal-factor .form-field-inline .formula-textarea[data-v-8f0eef3f]{flex:1;min-width:0}.modal-factor .form-field-inline:has(.formula-textarea) .form-label[data-v-8f0eef3f]{line-height:1.4;padding-top:.5rem}.inputs-row[data-v-8f0eef3f]{display:flex;flex-direction:column;gap:.75rem}.input-slot[data-v-8f0eef3f]{display:flex;flex-direction:column;gap:.25rem}.slot-label[data-v-8f0eef3f]{font-size:.85rem;color:#666}.column-chips[data-v-8f0eef3f]{display:flex;flex-wrap:wrap;gap:.35rem}.chip[data-v-8f0eef3f]{padding:.35rem .6rem;font-size:.85rem;border:1px solid #ddd;border-radius:4px;background:#fff;color:#555;cursor:pointer}.chip[data-v-8f0eef3f]:hover{border-color:#3498db;color:#2980b9}.chip.active[data-v-8f0eef3f]{background:#3498db;border-color:#3498db;color:#fff}.param-defs-list[data-v-8f0eef3f]{display:flex;flex-direction:column;gap:.6rem;margin-top:.35rem}.param-def-row[data-v-8f0eef3f]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;padding:.4rem 0;border-bottom:1px solid #f0f0f0}.param-def-row[data-v-8f0eef3f]:last-child{border-bottom:none}.param-def-label[data-v-8f0eef3f]{font-size:.9rem;color:#555;min-width:4rem}.param-type-toggle[data-v-8f0eef3f]{display:flex;gap:.25rem}.param-type-toggle .chip[data-v-8f0eef3f]{padding:.25rem .5rem;font-size:.8rem}.param-input-num[data-v-8f0eef3f]{width:5rem}.formula-textarea[data-v-8f0eef3f]{width:100%;min-height:4rem;padding:.5rem .6rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem;resize:vertical;box-sizing:border-box}.modal-factor .modal-footer[data-v-8f0eef3f]{flex-shrink:0;display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid #eee;background:#fafafa}.login-view[data-v-e37d70ec]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--bg-page, #f5f6fa)}.login-card[data-v-e37d70ec]{width:100%;max-width:360px;padding:2rem;background:var(--bg-card, #fff);border-radius:12px;box-shadow:0 4px 20px #00000014}.login-title[data-v-e37d70ec]{margin:0 0 .25rem;font-size:1.75rem;color:var(--text-primary, #2c3e50);text-align:center}.login-desc[data-v-e37d70ec]{margin:0 0 1.5rem;font-size:.9rem;color:var(--text-secondary, #7f8c8d);text-align:center}.login-form label[data-v-e37d70ec]{display:block;margin-bottom:1rem}.label-text[data-v-e37d70ec]{display:block;margin-bottom:.35rem;font-size:.9rem;color:var(--text-secondary, #555)}.login-form .input[data-v-e37d70ec]{width:100%;padding:.6rem .75rem;border:1px solid var(--border, #ddd);border-radius:6px;font-size:1rem;box-sizing:border-box}.login-form .input[data-v-e37d70ec]:focus{outline:none;border-color:var(--primary, #3498db)}.error[data-v-e37d70ec]{margin:0 0 1rem;font-size:.9rem;color:var(--danger, #e74c3c)}.login-form .btn[data-v-e37d70ec]{width:100%;padding:.65rem;background:var(--primary, #3498db);color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer}.login-form .btn[data-v-e37d70ec]:hover:not(:disabled){background:var(--primary-hover, #2980b9)}.login-form .btn[data-v-e37d70ec]:disabled{opacity:.7;cursor:not-allowed}.strategy-view[data-v-544a8fe2]{padding:2rem 0}h1[data-v-544a8fe2]{font-size:2rem;margin-bottom:1rem;color:#2c3e50}.note[data-v-544a8fe2]{color:#7f8c8d;margin-bottom:1.5rem}.section[data-v-544a8fe2]{background:var(--bg-card, #fff);padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-544a8fe2]{font-size:1.25rem;margin-bottom:1rem;color:#2c3e50}.controls[data-v-544a8fe2]{margin-bottom:1rem;display:flex;gap:.5rem;flex-wrap:wrap}.action-btns[data-v-544a8fe2]{display:flex;flex-wrap:wrap;gap:.35rem}.btn[data-v-544a8fe2]{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-small[data-v-544a8fe2]{padding:.3rem .6rem;font-size:.85rem}.btn-secondary[data-v-544a8fe2]{background:#6c757d;color:#fff}.btn-secondary[data-v-544a8fe2]:hover{background:#5a6268}.btn-outline[data-v-544a8fe2]{background:transparent;border:1px solid #dee2e6;color:#495057}.btn-outline[data-v-544a8fe2]:hover{border-color:#3498db;color:#3498db}.btn-danger-outline[data-v-544a8fe2]{background:transparent;border:1px solid #e74c3c;color:#e74c3c}.btn-danger-outline[data-v-544a8fe2]:hover{background:#fadbd8}.btn-danger[data-v-544a8fe2]{background:#e74c3c;color:#fff}.btn-danger[data-v-544a8fe2]:hover{background:#c0392b}.status[data-v-544a8fe2]{color:#7f8c8d;padding:.5rem 0}.data-table[data-v-544a8fe2]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-544a8fe2],.data-table td[data-v-544a8fe2]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.data-table th[data-v-544a8fe2]{background:#f8f9fa;font-weight:600}.mono[data-v-544a8fe2]{font-family:monospace;font-size:.85rem}.strategy-name[data-v-544a8fe2]{margin-right:.35rem}.model-id[data-v-544a8fe2]{color:#7f8c8d;font-size:.8em}.required[data-v-544a8fe2]{color:#e74c3c}.modal-overlay[data-v-544a8fe2]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-544a8fe2]{background:#fff;border-radius:8px;min-width:320px;max-width:480px;max-height:90vh;overflow:auto;box-shadow:0 4px 20px #00000026}.modal-sm[data-v-544a8fe2]{max-width:360px}.modal-header[data-v-544a8fe2]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-title[data-v-544a8fe2]{margin:0;font-size:1.1rem}.modal-close[data-v-544a8fe2]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#999;line-height:1}.modal-body[data-v-544a8fe2]{padding:1.25rem}.modal-actions[data-v-544a8fe2]{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid #eee}.form-field[data-v-544a8fe2]{margin-bottom:1rem}.form-field label[data-v-544a8fe2]{display:block;margin-bottom:.25rem;font-size:.9rem;color:#555}.form-row[data-v-544a8fe2]{display:flex;gap:1rem}.form-row .form-field[data-v-544a8fe2]{flex:1}.select[data-v-544a8fe2],.input[data-v-544a8fe2],.input-num[data-v-544a8fe2]{width:100%;padding:.4rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.form-hint[data-v-544a8fe2]{font-size:.85rem;color:#7f8c8d;margin-bottom:.75rem}.error[data-v-544a8fe2]{color:#e74c3c;font-size:.9rem;margin-top:.5rem}.factor-view[data-v-233bf9a4]{padding:2rem 0}h1[data-v-233bf9a4]{font-size:2rem;margin-bottom:1rem;color:#2c3e50}.note[data-v-233bf9a4]{color:#7f8c8d;margin-bottom:1.5rem}.section[data-v-233bf9a4]{background:var(--bg-card, #fff);padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section h2[data-v-233bf9a4]{font-size:1.25rem;margin-bottom:1rem;color:#2c3e50}.filter-row[data-v-233bf9a4]{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-end}.filter-row label[data-v-233bf9a4]{display:flex;flex-direction:column;gap:.35rem}.label-text[data-v-233bf9a4]{font-size:.85rem;font-weight:500;color:#495057}.select[data-v-233bf9a4]{padding:.45rem .75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.95rem;min-width:10rem}.factor-actions[data-v-233bf9a4]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.factor-actions-left[data-v-233bf9a4],.factor-actions-right[data-v-233bf9a4]{display:flex;align-items:center;gap:.5rem}.sort-label[data-v-233bf9a4]{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:#555}.sort-select[data-v-233bf9a4]{min-width:8rem}.selected-hint[data-v-233bf9a4]{font-size:.85rem;color:#27ae60}.hint[data-v-233bf9a4]{font-size:.85rem;color:#7f8c8d;margin-top:1rem}.data-table[data-v-233bf9a4]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table .num[data-v-233bf9a4]{text-align:right}.data-table.small th[data-v-233bf9a4],.data-table.small td[data-v-233bf9a4]{font-size:.85rem}.data-table th[data-v-233bf9a4],.data-table td[data-v-233bf9a4]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.data-table th[data-v-233bf9a4]{background:#f8f9fa;font-weight:600}.cell-checkbox[data-v-233bf9a4]{display:flex;align-items:center;justify-content:center;margin:0;cursor:pointer}.cell-checkbox input[data-v-233bf9a4]{margin:0}.mono[data-v-233bf9a4]{font-family:monospace;font-size:.85rem}.col-return1[data-v-233bf9a4]{color:#7f8c8d;font-style:italic}.status-badge[data-v-233bf9a4]{padding:.2rem .5rem;border-radius:4px;font-size:.85rem}.btn[data-v-233bf9a4]{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-233bf9a4]{background:#3498db;color:#fff}.btn-primary[data-v-233bf9a4]:hover:not(:disabled){background:#2980b9}.btn-primary[data-v-233bf9a4]:disabled{opacity:.6;cursor:not-allowed}.btn-small[data-v-233bf9a4]{padding:.3rem .6rem;font-size:.85rem}.btn-secondary[data-v-233bf9a4]{background:#6c757d;color:#fff}.btn-secondary[data-v-233bf9a4]:hover:not(:disabled){background:#5a6268}.btn-secondary[data-v-233bf9a4]:disabled{opacity:.7;cursor:not-allowed}.error[data-v-233bf9a4]{color:#c0392b;margin-top:.5rem}.status[data-v-233bf9a4]{color:#7f8c8d;padding:.5rem 0}.modal-overlay[data-v-233bf9a4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-box[data-v-233bf9a4]{background:#fff;border-radius:8px;box-shadow:0 8px 32px #0003;max-width:560px;width:100%;max-height:90vh;overflow:auto}.modal-header[data-v-233bf9a4]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #eee}.modal-title[data-v-233bf9a4]{margin:0;font-size:1.05rem;color:#2c3e50}.modal-close[data-v-233bf9a4]{background:none;border:none;font-size:1.5rem;line-height:1;color:#7f8c8d;cursor:pointer;padding:0 .25rem}.modal-close[data-v-233bf9a4]:hover{color:#2c3e50}.modal-body[data-v-233bf9a4]{padding:1rem 1.25rem 1.25rem}.summary[data-v-233bf9a4]{font-size:.9rem;color:#495057;margin:0 0 .75rem}.experiments-view[data-v-9e6586b8]{padding-bottom:2rem}.page-header[data-v-9e6586b8]{margin-bottom:1.5rem}.page-header h1[data-v-9e6586b8]{font-size:1.75rem;font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.page-note[data-v-9e6586b8]{font-size:.9rem;color:var(--text-secondary);margin:0}.experiments-section[data-v-9e6586b8]{padding:1.5rem;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow)}.section-toolbar[data-v-9e6586b8]{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.filter-label[data-v-9e6586b8]{display:inline-flex;align-items:center;gap:.5rem}.filter-text[data-v-9e6586b8]{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.select-sm[data-v-9e6586b8]{padding:.4rem .65rem;font-size:.875rem;min-width:6rem;border-radius:6px;border:1px solid var(--border-input);background:var(--input-bg);color:var(--text-primary)}.state-block[data-v-9e6586b8]{padding:2.5rem 1.5rem;text-align:center;color:var(--text-secondary);font-size:.95rem}.state-block .state-icon[data-v-9e6586b8]{display:block;font-size:2rem;margin-bottom:.75rem;opacity:.8}.state-block p[data-v-9e6586b8]{margin:0 0 .25rem}.state-hint[data-v-9e6586b8]{font-size:.85rem;color:var(--text-muted)}.state-loading .state-icon[data-v-9e6586b8]{display:inline-block;margin-right:.5rem;animation:spin-9e6586b8 .8s linear infinite}@keyframes spin-9e6586b8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.table-wrap[data-v-9e6586b8]{overflow-x:auto;border-radius:6px;border:1px solid var(--border)}.experiments-table[data-v-9e6586b8]{width:100%;border-collapse:collapse;font-size:.9rem}.experiments-table th[data-v-9e6586b8],.experiments-table td[data-v-9e6586b8]{padding:.65rem 1rem;text-align:left;border-bottom:1px solid var(--border);color:var(--text-primary)}.experiments-table thead th[data-v-9e6586b8]{background:var(--bg-card-alt);font-weight:600;color:var(--text-primary);white-space:nowrap}.experiments-table tbody tr[data-v-9e6586b8]:hover{background:var(--bg-card-alt)}.experiments-table tbody tr:last-child td[data-v-9e6586b8]{border-bottom:none}.col-type[data-v-9e6586b8]{width:5rem}.col-time[data-v-9e6586b8]{white-space:nowrap;font-size:.85rem;color:var(--text-muted)}.col-params[data-v-9e6586b8],.col-result[data-v-9e6586b8]{max-width:28rem;font-size:.875rem;color:var(--text-primary);word-break:break-word}.col-status[data-v-9e6586b8]{width:5rem}.badge[data-v-9e6586b8]{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.badge-train[data-v-9e6586b8]{background:#0ea5e926;color:#0ea5e9}.badge-backtest[data-v-9e6586b8]{background:#8b5cf626;color:#8b5cf6}.badge-done[data-v-9e6586b8]{background:#22c55e26;color:#22c55e}.badge-failed[data-v-9e6586b8]{background:#ef444426;color:#ef4444}.test-contract-view[data-v-1560a38a]{padding-bottom:2rem}.page-header[data-v-1560a38a]{margin-bottom:1.5rem}.page-header h1[data-v-1560a38a]{font-size:1.75rem;margin:0 0 .35rem}.page-note[data-v-1560a38a]{font-size:.9rem;color:var(--text-secondary);margin:0}.section[data-v-1560a38a]{padding:1.5rem;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);margin-bottom:1.5rem}.section h2[data-v-1560a38a]{font-size:1.1rem;margin:0 0 1rem}.section h3[data-v-1560a38a]{font-size:1rem;margin:1rem 0 .5rem;color:var(--text-secondary)}.form-row[data-v-1560a38a]{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-end}.form-row label[data-v-1560a38a]{display:flex;flex-direction:column;gap:.35rem}.label-text[data-v-1560a38a]{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.select[data-v-1560a38a]{padding:.45rem .75rem;border-radius:6px;min-width:10rem}.fetch-buttons[data-v-1560a38a]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.btn[data-v-1560a38a]{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-card-alt);cursor:pointer}.btn[data-v-1560a38a]:hover:not(:disabled){background:var(--border)}.btn[data-v-1560a38a]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-1560a38a]{background:#3498db;color:#fff;border-color:#3498db}.btn-primary[data-v-1560a38a]:hover:not(:disabled){background:#2980b9}.btn-secondary[data-v-1560a38a]{background:var(--bg-card-alt)}.btn-small[data-v-1560a38a]{padding:.35rem .6rem;font-size:.85rem}.btn-danger[data-v-1560a38a]{color:#ef4444;border-color:#ef4444}.success[data-v-1560a38a]{color:#22c55e;margin-top:.75rem}.error[data-v-1560a38a]{color:#ef4444;margin-top:.75rem}.error-detail[data-v-1560a38a]{font-size:.85rem;margin-top:.25rem}.status-row[data-v-1560a38a]{margin-bottom:1rem}.status-grid[data-v-1560a38a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.status-card[data-v-1560a38a]{padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-card-alt)}.card-title[data-v-1560a38a]{font-weight:600;margin-bottom:.5rem}.status-badge[data-v-1560a38a]{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.85rem}.status-badge.done[data-v-1560a38a]{background:#22c55e33;color:#22c55e}.status-badge.none[data-v-1560a38a]{background:var(--border);color:var(--text-muted)}.status-badge.error[data-v-1560a38a]{background:#ef444433;color:#ef4444}.range[data-v-1560a38a]{font-size:.8rem;color:var(--text-muted);margin:.35rem 0 0}.preview-details[data-v-1560a38a]{margin-top:.5rem;font-size:.8rem}.preview-details summary[data-v-1560a38a]{cursor:pointer;color:var(--text-secondary)}.preview-details pre[data-v-1560a38a]{margin:.35rem 0 0;padding:.5rem;background:var(--bg-page);border-radius:4px;overflow-x:auto;font-size:.75rem}.controls[data-v-1560a38a]{display:flex;gap:.5rem;margin-bottom:.75rem}.controls-row[data-v-1560a38a]{align-items:center}.filter-label[data-v-1560a38a]{display:flex;align-items:center;gap:.5rem}.select-sm[data-v-1560a38a]{min-width:8rem}.subheading[data-v-1560a38a]{font-size:1rem;margin:1rem 0 .5rem}.table-wrap[data-v-1560a38a]{overflow-x:auto}.data-table[data-v-1560a38a]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-1560a38a],.data-table td[data-v-1560a38a]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.sym-cell[data-v-1560a38a]{font-weight:500}.range-cell[data-v-1560a38a]{font-size:.85rem;color:var(--text-muted)}.inline-checkbox[data-v-1560a38a]{display:inline-flex;align-items:center;gap:.35rem;margin-right:.5rem}.batch-merge-row[data-v-1560a38a]{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.batch-btn-wrap[data-v-1560a38a]{display:inline}.new-task-form[data-v-1560a38a]{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1rem}.input-num[data-v-1560a38a]{width:6rem;padding:.4rem}.task-table .task-message[data-v-1560a38a]{max-width:200px;overflow:hidden;text-overflow:ellipsis}.note[data-v-1560a38a]{font-size:.9rem;color:var(--text-muted);margin:.5rem 0 0}
