.chart-canvas[data-v-1ebd82a8]{cursor:crosshair}.chart-canvas[data-v-1ebd82a8]:active{cursor:grabbing}.equity-chart-canvas[data-v-85ee2a5b]{width:100%;height:100%;min-height:120px;cursor:crosshair;position:relative}.equity-chart-canvas[data-v-85ee2a5b]:active{cursor:grabbing}.equity-tooltip[data-v-85ee2a5b]{position:absolute;z-index:10;pointer-events:none;background:var(--tooltip-bg);border:1px solid var(--tooltip-border);border-radius:6px;padding:8px 10px;font-size:12px;min-width:150px}.tooltip-row[data-v-85ee2a5b]{display:flex;justify-content:space-between;gap:12px;line-height:1.8}.tooltip-row .label[data-v-85ee2a5b]{color:var(--tooltip-label)}.tooltip-row .value[data-v-85ee2a5b]{color:var(--tooltip-value)}.tooltip-row .up[data-v-85ee2a5b]{color:var(--color-up)}.tooltip-row .down[data-v-85ee2a5b]{color:var(--color-down)}.indicator-editor[data-v-e31f542a],.editor-container[data-v-e31f542a]{height:100%}.indicator-editor[data-v-e31f542a]{position:relative;display:flex;flex-direction:column}.editor-body[data-v-e31f542a]{position:relative;flex:1;min-height:0}.editor-toolbar[data-v-e31f542a]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--editor-toolbar-border)}.editor-toolbar-left[data-v-e31f542a],.editor-toolbar-right[data-v-e31f542a]{display:flex;align-items:center;gap:10px}.editor-toolbar-left[data-v-e31f542a],.editor-toolbar-right[data-v-e31f542a]{position:relative}.editor-toolbar-title[data-v-e31f542a]{color:var(--editor-toolbar-title);font-size:14px;font-weight:600}.template-switch-inline[data-v-e31f542a]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:none;border-radius:8px;background:transparent;color:var(--editor-switch-color);cursor:pointer;transition:background-color .15s ease,color .15s ease}.template-switch-inline[data-v-e31f542a]:hover{background:var(--editor-switch-hover-bg)}.template-switch-inline:hover .editor-toolbar-title[data-v-e31f542a],.template-switch-inline:hover .template-switch-icon[data-v-e31f542a]{color:var(--editor-switch-hover-color)}.template-switch-icon[data-v-e31f542a]{width:14px;height:14px;color:var(--editor-switch-icon);flex-shrink:0}.strategy-name-input[data-v-e31f542a]{width:auto;min-width:72px;max-width:180px;border:1px solid transparent;background:var(--editor-input-bg);color:var(--editor-input-color);border-radius:8px;padding:6px 10px;font-size:12px;outline:none;caret-color:auto;transition:background-color .15s ease,border-color .15s ease}.strategy-name-input[data-v-e31f542a]::placeholder{color:var(--editor-input-placeholder)}.strategy-name-input[data-v-e31f542a]:focus{border-color:var(--editor-input-focus-border);background:var(--editor-input-focus-bg)}.editor-btn[data-v-e31f542a]{border:1px solid var(--editor-btn-border);background:var(--editor-btn-bg);color:var(--editor-btn-color);border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}.editor-btn-backtest[data-v-e31f542a]{background:var(--editor-btn-backtest-bg);border-color:var(--editor-btn-backtest-border)}.editor-btn-import[data-v-e31f542a]{background:var(--editor-btn-import-bg);border-color:var(--editor-btn-import-border)}.template-dropdown[data-v-e31f542a]{position:absolute;top:calc(100% + 8px);left:0;z-index:20;display:flex;flex-direction:column;min-width:220px;max-height:280px;overflow:auto;padding:6px;background:var(--editor-dropdown-bg);border:1px solid var(--editor-dropdown-border);border-radius:10px;box-shadow:var(--editor-dropdown-shadow)}.template-option[data-v-e31f542a]{border:none;background:transparent;color:var(--editor-option-color);text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer}.template-option[data-v-e31f542a]:hover,.template-option.active[data-v-e31f542a]{background:var(--editor-option-hover-bg)}.convert-error-bar[data-v-e31f542a]{position:absolute;bottom:0;left:0;right:0;padding:6px 14px;background:var(--editor-error-bg);border-top:1px solid var(--editor-error-border);color:var(--editor-error-color);font-size:12px;line-height:1.4;z-index:10;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-btn-copy[data-v-e31f542a]{background:var(--editor-btn-copy-bg);border-color:var(--editor-btn-copy-border)}.editor-btn-paste[data-v-e31f542a]{background:var(--editor-btn-paste-bg);border-color:var(--editor-btn-paste-border)}.import-config-actions-top[data-v-e31f542a]{justify-content:flex-start;flex-wrap:nowrap}.import-config-actions-top .editor-btn[data-v-e31f542a]{flex:1;min-width:0}.import-config-popover>.import-config-actions[data-v-e31f542a]:not(.import-config-actions-top){display:none}.import-config-wrap>.editor-btn+.editor-btn[data-v-e31f542a]{display:none}.import-config-wrap[data-v-e31f542a]{position:relative}.import-config-popover[data-v-e31f542a]{position:absolute;top:calc(100% + 8px);right:0;z-index:25;display:flex;flex-direction:column;gap:10px;width:min(420px,calc(100vw - 40px));max-height:min(560px,calc(100dvh - 40px));overflow:auto;padding:12px;background:var(--editor-popover-bg);border:1px solid var(--editor-popover-border);border-radius:12px;box-shadow:var(--editor-popover-shadow)}.import-config-header[data-v-e31f542a]{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:28px;padding:0 40px 4px 0}.import-config-title[data-v-e31f542a]{color:var(--editor-popover-title);font-size:12px;font-weight:600;line-height:1.2;text-align:left}.import-config-close[data-v-e31f542a]{position:absolute;right:0;top:50%;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--editor-popover-close);font-size:20px;line-height:1;cursor:pointer;padding:0;transform:translateY(calc(-50% - 2px))}.import-config-close[data-v-e31f542a]:hover{color:var(--editor-popover-close-hover)}.import-config-textarea[data-v-e31f542a]{min-height:200px;resize:vertical;border:1px solid var(--editor-textarea-border);background:var(--editor-textarea-bg);color:var(--editor-textarea-color);border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5;outline:none;caret-color:auto;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace}.import-config-textarea[data-v-e31f542a]:focus{border-color:var(--editor-textarea-focus-border);background:var(--editor-textarea-focus-bg)}.import-config-textarea[data-v-e31f542a]::placeholder{color:var(--editor-textarea-placeholder)}.import-config-error[data-v-e31f542a]{color:var(--editor-config-error);font-size:12px;line-height:1.4}.import-config-actions[data-v-e31f542a]{display:flex;justify-content:flex-end;gap:8px}.import-config-mask[data-v-e31f542a]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:var(--editor-mask-bg)}.import-config-mobile-sheet[data-v-e31f542a]{width:100%;height:100%;max-height:100%;background:var(--editor-sheet-bg);border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden;padding:14px 16px calc(14px + env(safe-area-inset-bottom))}.import-sheet-enter-active[data-v-e31f542a],.import-sheet-leave-active[data-v-e31f542a]{transition:opacity .25s ease}.import-sheet-enter-active .import-config-mobile-sheet[data-v-e31f542a],.import-sheet-leave-active .import-config-mobile-sheet[data-v-e31f542a]{transition:transform .25s ease}.import-sheet-enter-from[data-v-e31f542a],.import-sheet-leave-to[data-v-e31f542a]{opacity:0}.import-sheet-enter-from .import-config-mobile-sheet[data-v-e31f542a],.import-sheet-leave-to .import-config-mobile-sheet[data-v-e31f542a]{transform:translateY(100%)}@media (max-width:768px){.import-config-header[data-v-e31f542a]{min-height:32px;padding:2px 40px 6px 0}.import-config-title[data-v-e31f542a]{font-size:13px}.import-config-close[data-v-e31f542a]{width:30px;height:30px;transform:translateY(calc(-50% - 2px))}.import-config-textarea[data-v-e31f542a]{min-height:0;height:auto;max-height:none;flex:1}.import-config-actions-top[data-v-e31f542a]{gap:6px}.import-config-actions-top .editor-btn[data-v-e31f542a]{padding:6px 0;font-size:11px}}.page[data-v-8bd0356f]{caret-color:transparent}input[data-v-8bd0356f],textarea[data-v-8bd0356f],select[data-v-8bd0356f],button[data-v-8bd0356f]{caret-color:auto}.login-mask[data-v-8bd0356f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;background:var(--bg-mask);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-modal[data-v-8bd0356f]{width:min(420px,calc(100vw - 32px));padding:24px;border-radius:18px}.login-header[data-v-8bd0356f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.login-header h2[data-v-8bd0356f]{margin:0;font-size:20px}.login-form[data-v-8bd0356f]{display:flex;flex-direction:column;gap:16px}.topbar[data-v-8bd0356f]{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-left[data-v-8bd0356f]{display:flex;align-items:center;gap:12px;min-width:0}.topbar-title[data-v-8bd0356f]{min-width:0}.theme-toggle-btn[data-v-8bd0356f]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-subtle-4);color:var(--text-muted);cursor:pointer;transition:background .18s,color .18s;flex-shrink:0}.theme-toggle-btn[data-v-8bd0356f]:hover{background:var(--bg-subtle-8);color:var(--text-primary)}.eyebrow[data-v-8bd0356f]{color:var(--text-primary);font-size:18px;font-weight:600;letter-spacing:.04em}.topbar-back-btn[data-v-8bd0356f]{border:1px solid var(--border-hover);background:var(--bg-subtle-4);color:var(--text-primary);border-radius:10px;padding:6px 12px;font-size:12px;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background .18s ease,border-color .18s ease}.topbar-back-btn[data-v-8bd0356f]:hover{background:var(--bg-subtle-8);border-color:var(--border-selected)}.topbar-user[data-v-8bd0356f]{display:flex;align-items:center;gap:8px}.user-avatar[data-v-8bd0356f]{width:24px;height:24px;border-radius:999px;object-fit:cover}.user-name[data-v-8bd0356f]{color:var(--text-primary);font-size:13px}.logout-btn[data-v-8bd0356f]{border:1px solid var(--border-hover);background:var(--bg-subtle-4);color:var(--text-primary);border-radius:8px;padding:4px 10px;font-size:12px;line-height:1.2;cursor:pointer}.logout-btn[data-v-8bd0356f]:hover{background:var(--bg-subtle-8)}.login-message[data-v-8bd0356f]{color:var(--color-error);font-size:13px;line-height:1.5}.backtest-error[data-v-8bd0356f]{color:var(--color-error);font-size:12px;line-height:1.5;padding:6px 0;text-align:center}.trade-table[data-v-8bd0356f]{contain:layout style;display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0}.trade-table-virtual-scroll[data-v-8bd0356f]{overflow-y:auto;flex:1;min-height:0;contain:layout paint}.trade-row-merged[data-v-8bd0356f]{opacity:.58}.trade-row-merged>span[data-v-8bd0356f]{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:var(--color-strikethrough)}.backtest-loading-mask[data-v-8bd0356f]{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--loading-mask-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;border-radius:8px}.backtest-loading-content[data-v-8bd0356f]{display:flex;flex-direction:row;align-items:center;gap:12px}.backtest-loading-spinner[data-v-8bd0356f]{width:16px;height:16px;border:2px solid var(--loading-spinner-border);border-top-color:var(--loading-spinner-top);border-radius:50%;animation:spin-8bd0356f 1s linear infinite;flex-shrink:0}.backtest-loading-icon[data-v-8bd0356f]{width:100%;height:100%;color:#3b82f6}@keyframes spin-8bd0356f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.max-pos-input[data-v-8bd0356f]{width:60px;min-width:0;flex-shrink:0;padding:4px 6px;height:24px;box-sizing:border-box;font-size:12px}.backtest-loading-text[data-v-8bd0356f]{color:var(--loading-text);font-size:16px;font-weight:500;letter-spacing:.5px}.result-header-actions[data-v-8bd0356f]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.replay-link[data-v-8bd0356f]{border:1px solid var(--border-hover);background:var(--replay-bg);color:var(--replay-color);border-radius:999px;padding:6px 12px;font-size:12px;line-height:1;cursor:pointer;transition:background .18s ease,border-color .18s ease,opacity .18s ease}.replay-link[data-v-8bd0356f]:hover:not(:disabled){background:var(--replay-hover);border-color:var(--replay-border-hover)}.replay-link[data-v-8bd0356f]:disabled{opacity:.55;cursor:not-allowed}.replay-link.muted[data-v-8bd0356f]{background:var(--bg-subtle-4);color:var(--text-secondary)}.replay-speed-group[data-v-8bd0356f]{display:inline-flex;align-items:center;gap:6px;padding:3px;border-radius:999px;background:var(--bg-subtle-4);border:1px solid var(--border-strong)}.replay-speed-btn[data-v-8bd0356f]{border:none;background:transparent;color:var(--text-muted);border-radius:999px;padding:5px 10px;font-size:12px;line-height:1;cursor:pointer}.replay-speed-btn.active[data-v-8bd0356f]{background:var(--replay-speed-bg);color:var(--text-primary)}.toast-bubble[data-v-8bd0356f]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:10000;max-width:500px;word-break:break-word;animation:scaleIn-8bd0356f .3s ease-out,fadeOut-8bd0356f .5s ease-out 2.5s forwards;display:flex;align-items:center;gap:10px}.toast-error[data-v-8bd0356f]{background:var(--toast-error-bg);color:var(--toast-error-text)}.toast-success[data-v-8bd0356f]{background:var(--toast-success-bg);color:var(--toast-success-text)}.toast-icon[data-v-8bd0356f]{width:18px;height:18px;flex-shrink:0}.toast-error .toast-icon[data-v-8bd0356f]{color:#ef4444}.toast-success .toast-icon[data-v-8bd0356f]{color:#16a34a}@keyframes scaleIn-8bd0356f{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes fadeOut-8bd0356f{0%{opacity:1}to{opacity:0}}.mobile-param-btn[data-v-8bd0356f]{padding:5px 12px;border-radius:6px;border:1px solid var(--border-intense);background:var(--bg-subtle-6);color:var(--text-secondary);font-size:12px;line-height:1.2;cursor:pointer;white-space:nowrap}.mobile-param-btn[data-v-8bd0356f]:hover{background:var(--bg-subtle-8)}.slide-up-enter-active[data-v-8bd0356f],.slide-up-leave-active[data-v-8bd0356f]{transition:opacity .25s ease}.slide-up-enter-active .mobile-param-modal[data-v-8bd0356f],.slide-up-leave-active .mobile-param-modal[data-v-8bd0356f]{transition:transform .25s ease}.slide-up-enter-from[data-v-8bd0356f],.slide-up-leave-to[data-v-8bd0356f]{opacity:0}.slide-up-enter-from .mobile-param-modal[data-v-8bd0356f],.slide-up-leave-to .mobile-param-modal[data-v-8bd0356f]{transform:translateY(100%)}.mobile-param-mask[data-v-8bd0356f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:flex-end;justify-content:center;background:var(--bg-overlay)}.mobile-param-modal[data-v-8bd0356f]{width:100%;max-height:85vh;background:var(--bg-input);border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden}.mobile-param-header[data-v-8bd0356f]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-medium);flex-shrink:0}.mobile-param-header h2[data-v-8bd0356f]{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.mobile-param-body[data-v-8bd0356f]{padding:16px;overflow-y:auto;flex:1;min-height:0}.mobile-param-body .split-row[data-v-8bd0356f]{flex-direction:column;gap:10px}.mobile-param-body .half[data-v-8bd0356f]{flex:none;width:100%}@media (max-width: 768px){.filter-search-row[data-v-8bd0356f]{flex-direction:column}}.mobile-param-footer[data-v-8bd0356f]{padding:12px 16px;border-top:1px solid var(--border-medium);flex-shrink:0}.record-panel[data-v-8bd0356f]{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.record-toolbar[data-v-8bd0356f]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.record-toolbar-main[data-v-8bd0356f]{display:flex;align-items:flex-start;gap:14px;min-width:0;flex:1}.record-toolbar-title-group[data-v-8bd0356f]{display:flex;flex-direction:column;gap:4px;padding-top:2px}.record-toolbar-title[data-v-8bd0356f]{font-size:15px;font-weight:700;color:var(--text-primary)}.record-toolbar-hint[data-v-8bd0356f]{font-size:12px;color:var(--toolbar-hint-color)}.record-refresh-btn[data-v-8bd0356f]{flex-shrink:0}.record-toolbar-actions[data-v-8bd0356f]{display:flex;align-items:center;gap:8px;flex-shrink:0}.task-list-state[data-v-8bd0356f]{border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.5}.task-list-state-error[data-v-8bd0356f]{background:var(--task-error-bg);border:1px solid var(--task-error-border);color:var(--task-error-text)}.record-table-shell[data-v-8bd0356f]{display:flex;flex-direction:column;flex:1;min-height:0;border-radius:14px;border:1px solid var(--border-medium);background:var(--record-shell-bg);overflow:hidden}.record-table-scroll[data-v-8bd0356f]{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.record-table-head[data-v-8bd0356f],.record-table-row[data-v-8bd0356f]{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,1.25fr) minmax(0,.95fr) minmax(0,.78fr) minmax(0,.78fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.12fr);column-gap:8px;row-gap:0;align-items:center;width:100%;min-width:0;box-sizing:border-box}.record-table-head[data-v-8bd0356f]{position:sticky;top:0;z-index:2;padding:10px 12px;border-bottom:1px solid var(--border-medium);font-size:11px;color:var(--record-head-color);letter-spacing:.02em;background:var(--record-head-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.record-table-head>span[data-v-8bd0356f]{display:flex;align-items:center;min-width:0}.record-table-head .record-col-name[data-v-8bd0356f],.record-table-head .record-col-pair[data-v-8bd0356f],.record-table-head .record-col-range[data-v-8bd0356f],.record-table-head .record-col-profit[data-v-8bd0356f],.record-table-head .record-col-return[data-v-8bd0356f],.record-table-head .record-col-winrate[data-v-8bd0356f],.record-table-head .record-col-drawdown[data-v-8bd0356f],.record-table-head .record-col-annual[data-v-8bd0356f],.record-table-head .record-col-actions[data-v-8bd0356f]{justify-self:stretch;text-align:left}.record-table-body[data-v-8bd0356f]{min-height:0}.record-table-row[data-v-8bd0356f]{padding:10px 12px;border-top:1px solid var(--border-default);transition:background .2s ease,border-color .2s ease,opacity .28s ease,transform .28s ease,filter .28s ease;transform-origin:center top}.record-table-row[data-v-8bd0356f]:first-child{border-top:none}.record-table-row[data-v-8bd0356f]:hover{background:var(--bg-subtle-3)}.record-row-removing[data-v-8bd0356f]{opacity:0;transform:translateY(-8px) scale(.985);filter:blur(1px);pointer-events:none}.record-cell[data-v-8bd0356f]{display:flex;flex-direction:column;gap:2px;min-width:0}.record-cell-name[data-v-8bd0356f]{gap:4px}.record-cell.record-col-profit[data-v-8bd0356f],.record-cell.record-col-return[data-v-8bd0356f],.record-cell.record-col-winrate[data-v-8bd0356f],.record-cell.record-col-drawdown[data-v-8bd0356f],.record-cell.record-col-annual[data-v-8bd0356f],.record-cell-actions[data-v-8bd0356f],.record-cell-metric[data-v-8bd0356f]{align-items:flex-start}.record-cell.record-col-profit .record-value[data-v-8bd0356f],.record-cell.record-col-return .record-value[data-v-8bd0356f],.record-cell.record-col-winrate .record-value[data-v-8bd0356f],.record-cell.record-col-drawdown .record-value[data-v-8bd0356f],.record-cell.record-col-annual .record-value[data-v-8bd0356f]{text-align:left}.record-cell-label[data-v-8bd0356f]{display:none;font-size:11px;line-height:1.2;letter-spacing:.03em;color:var(--record-head-color);text-transform:uppercase}.record-name[data-v-8bd0356f]{display:block;font-size:12px;font-weight:600;color:var(--text-primary);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-value[data-v-8bd0356f]{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.record-metric-up[data-v-8bd0356f]{color:var(--color-up)}.record-metric-down[data-v-8bd0356f]{color:var(--color-down)}.record-metric-neutral[data-v-8bd0356f]{color:var(--text-secondary)}.record-subline[data-v-8bd0356f]{font-size:11px;line-height:1.35;min-width:0;color:var(--toolbar-hint-color);white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.task-action-btn[data-v-8bd0356f]{border:1px solid var(--border-hover);background:var(--bg-subtle-2);color:var(--text-primary);border-radius:999px;padding:5px 10px;font-size:11px;line-height:1;cursor:pointer;white-space:nowrap;transition:background .2s ease,border-color .2s ease,color .2s ease}.task-action-btn[data-v-8bd0356f]:hover:not(:disabled){background:var(--bg-subtle-8);border-color:var(--border-radio)}.task-action-btn[data-v-8bd0356f]:disabled{opacity:.6;cursor:not-allowed}.task-action-danger[data-v-8bd0356f]{color:var(--color-error-light);border-color:var(--filter-remove-border);background:var(--filter-remove-bg)}.task-action-danger[data-v-8bd0356f]:hover:not(:disabled){background:var(--task-error-bg);border-color:var(--filter-remove-border)}.record-actions[data-v-8bd0356f]{display:flex;align-items:center;justify-content:flex-start;gap:5px;flex-wrap:wrap}.backtest-loading-main[data-v-8bd0356f]{display:flex;flex-direction:column;gap:12px;min-width:280px}.backtest-loading-head[data-v-8bd0356f]{display:flex;align-items:center;gap:12px}.backtest-loading-actions[data-v-8bd0356f]{display:flex;justify-content:center;padding-top:2px}.backtest-cancel-btn[data-v-8bd0356f]{position:relative;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--border-intense);border-radius:999px;background:var(--bg-subtle-4);color:var(--text-muted);font-size:12px;line-height:1;letter-spacing:.02em;cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}.backtest-cancel-btn[data-v-8bd0356f]:before{content:"";width:6px;height:6px;border-radius:999px;background:#ffffff61;transition:background .2s ease,box-shadow .2s ease}.backtest-cancel-btn[data-v-8bd0356f]:hover{color:#ffffffeb;border-color:#fff3;background:#ffffff12;box-shadow:0 6px 16px #0000002e}.backtest-cancel-btn[data-v-8bd0356f]:hover:before{background:#f87171eb;box-shadow:0 0 8px #f8717159}.backtest-cancel-btn[data-v-8bd0356f]:active{transform:translateY(1px)}@media (max-width: 768px){.backtest-loading-mask[data-v-8bd0356f]{position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;box-sizing:border-box}.backtest-loading-content[data-v-8bd0356f]{width:100%;justify-content:center}.record-toolbar[data-v-8bd0356f],.record-toolbar-main[data-v-8bd0356f]{flex-direction:column;align-items:stretch}.backtest-loading-main[data-v-8bd0356f]{min-width:0;width:min(100%,360px);margin:0 auto;align-items:center}.backtest-loading-head[data-v-8bd0356f]{width:100%;flex-direction:column;align-items:center;justify-content:center;text-align:center}.backtest-loading-text[data-v-8bd0356f]{width:100%;text-align:center;word-break:break-word}.record-toolbar-actions[data-v-8bd0356f]{width:100%}.record-toolbar-actions .task-action-btn[data-v-8bd0356f]{flex:1}.trade-log-list[data-v-8bd0356f],.trade-log-item[data-v-8bd0356f]{font-size:11px}.log-time[data-v-8bd0356f],.log-action[data-v-8bd0356f]{font-size:10px}.log-detail[data-v-8bd0356f]{font-size:11px;line-height:1.45}.record-table-scroll[data-v-8bd0356f]{overflow-x:auto}.record-table-head[data-v-8bd0356f],.record-table-row[data-v-8bd0356f]{width:max(100%,920px);column-gap:8px}.record-table-head[data-v-8bd0356f]{display:grid;padding:9px 10px;font-size:10px}.record-table-row[data-v-8bd0356f]{padding:10px}.record-cell-label[data-v-8bd0356f]{display:none}.record-cell-name[data-v-8bd0356f],.record-cell-actions[data-v-8bd0356f],.record-cell.record-col-range[data-v-8bd0356f]{grid-column:auto}.record-name[data-v-8bd0356f],.record-value[data-v-8bd0356f]{font-size:11px}.record-subline[data-v-8bd0356f]{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-actions[data-v-8bd0356f]{flex-wrap:nowrap}.backtest-cancel-btn[data-v-8bd0356f]{width:auto}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg-page: #111111;--bg-elevated: #161616;--bg-input: #141414;--bg-input-disabled: #121212;--bg-option: #18181b;--bg-editor: #0D0E0F;--bg-overlay: rgba(0, 0, 0, .56);--bg-mask: rgba(10, 10, 15, .72);--bg-subtle: rgba(255, 255, 255, .015);--bg-subtle-2: rgba(255, 255, 255, .02);--bg-subtle-3: rgba(255, 255, 255, .03);--bg-subtle-4: rgba(255, 255, 255, .04);--bg-subtle-6: rgba(255, 255, 255, .06);--bg-subtle-8: rgba(255, 255, 255, .08);--bg-subtle-12: rgba(255, 255, 255, .12);--bg-hover: #1d1d1d;--text-primary: #f4f4f5;--text-secondary: #e4e4e7;--text-tertiary: #D8D8D8;--text-muted: #a1a1aa;--text-muted-2: #A8A8A8;--text-dim: #71717a;--text-dim-2: #8b8b94;--text-faint: #52525b;--text-body: #e6eefc;--text-badge: #7d8fb3;--text-heading: #f5f5f5;--border-subtle: rgba(255, 255, 255, .04);--border-default: rgba(255, 255, 255, .05);--border-medium: rgba(255, 255, 255, .06);--border-strong: rgba(255, 255, 255, .08);--border-stronger: rgba(255, 255, 255, .1);--border-intense: rgba(255, 255, 255, .12);--border-hover: rgba(255, 255, 255, .15);--border-active: rgba(255, 255, 255, .18);--border-selected: rgba(255, 255, 255, .2);--border-radio: rgba(255, 255, 255, .24);--scrollbar-track: #111111;--scrollbar-thumb: rgba(255, 255, 255, .16);--scrollbar-thumb-hover: rgba(255, 255, 255, .24);--scrollbar-color: rgba(255, 255, 255, .18);--splitter-dot: rgba(255, 255, 255, .18);--splitter-dot-hover: rgba(255, 255, 255, .45);--shadow-modal: 0 18px 52px rgba(0, 0, 0, .38);--shadow-thumb: 0 0 0 2px rgba(255, 255, 255, .08);--switch-track: rgba(255, 255, 255, .12);--switch-track-checked: rgba(148, 163, 184, .45);--switch-thumb: #f4f4f5;--switch-outline: rgba(148, 163, 184, .45);--btn-primary-bg: #f4f4f5;--btn-primary-text: #111111;--range-track: rgba(255, 255, 255, .2);--range-thumb: #f5f5f5;--select-arrow: #a1a1aa;--date-filter: invert(1) brightness(1.7) contrast(1.35) saturate(0) drop-shadow(0 0 2px rgba(255, 255, 255, .55));--date-filter-hover: invert(1) brightness(1.95) contrast(1.45) saturate(0) drop-shadow(0 0 3px rgba(255, 255, 255, .72));--number-spin-filter: invert(.9) brightness(.9);--color-up: #4ade80;--color-down: #fb7185;--color-link: #60a5fa;--color-error: #f87171;--color-warn: #facc15;--color-orange: #fb923c;--color-teal: #2dd4bf;--color-skip: #f97316;--color-error-light: #fca5a5;--color-accent: #528bff;--color-strikethrough: rgba(228, 228, 231, .38);--record-shell-bg: linear-gradient(180deg, rgba(255, 255, 255, .022), rgba(255, 255, 255, .01)), rgba(16, 16, 17, .92);--record-head-bg: rgba(18, 18, 19, .96);--record-head-color: rgba(228, 228, 231, .54);--loading-mask-bg: rgba(0, 0, 0, .7);--loading-spinner-border: rgba(255, 255, 255, .3);--loading-spinner-top: #FFFFFF;--loading-text: #FFFFFF;--replay-bg: rgba(59, 130, 246, .16);--replay-color: #e8f0ff;--replay-hover: rgba(59, 130, 246, .24);--replay-border-hover: rgba(96, 165, 250, .4);--replay-speed-bg: rgba(59, 130, 246, .18);--toast-error-bg: rgba(184, 184, 184, .95);--toast-error-text: #1f1f1f;--toast-success-bg: rgba(220, 252, 231, .96);--toast-success-text: #166534;--filter-remove-bg: rgba(239, 68, 68, .12);--filter-remove-border: rgba(239, 68, 68, .2);--task-error-bg: rgba(239, 68, 68, .12);--task-error-border: rgba(239, 68, 68, .2);--task-error-text: #fca5a5;--toolbar-hint-color: rgba(228, 228, 231, .58);--chart-bg: #111111;--chart-text: #71717a;--chart-grid-vert: rgba(255, 255, 255, .03);--chart-grid-horz: rgba(255, 255, 255, .05);--chart-crosshair: rgba(255, 255, 255, .16);--chart-watermark: rgba(161, 161, 170, .12);--chart-up: #22c55e;--chart-down: #ef4444;--chart-up-fill1: rgba(34, 197, 94, .3);--chart-up-fill2: rgba(34, 197, 94, .02);--chart-down-fill1: rgba(239, 68, 68, .3);--chart-down-fill2: rgba(239, 68, 68, .02);--tooltip-bg: rgba(20, 20, 20, .92);--tooltip-border: rgba(255, 255, 255, .08);--tooltip-label: #71717a;--tooltip-value: #e4e4e7;--editor-bg: #0D0E0F;--editor-caret: #abb2bf;--editor-gutter-color: #52525b;--editor-active-line: rgba(255, 255, 255, .03);--editor-active-gutter: rgba(255, 255, 255, .04);--editor-selection: #3E4451;--editor-search-bg: #72a1ff59;--editor-search-outline: #457dff;--editor-search-selected: #6199ff2f;--editor-selection-match: #aafe661a;--editor-bracket-match: #bad0f847;--editor-fold-color: #ddd;--editor-tooltip-bg: #1a1b1e;--editor-panels-bg: #0D0E0F;--editor-panels-color: #abb2bf;--editor-toolbar-border: rgba(255, 255, 255, .08);--editor-toolbar-title: #f4f4f5;--editor-switch-color: #e4e4e7;--editor-switch-hover-bg: rgba(255, 255, 255, .08);--editor-switch-hover-color: #ffffff;--editor-switch-icon: #cdcdcd;--editor-input-bg: rgba(255, 255, 255, .015);--editor-input-color: #f4f4f5;--editor-input-placeholder: #71717a;--editor-input-focus-border: rgba(255, 255, 255, .08);--editor-input-focus-bg: rgba(255, 255, 255, .03);--editor-btn-border: rgba(255, 255, 255, .1);--editor-btn-bg: rgba(255, 255, 255, .04);--editor-btn-color: #e4e4e7;--editor-btn-backtest-bg: rgba(82, 139, 255, .16);--editor-btn-backtest-border: rgba(82, 139, 255, .28);--editor-btn-import-bg: rgba(16, 185, 129, .16);--editor-btn-import-border: rgba(16, 185, 129, .28);--editor-btn-copy-bg: rgba(56, 189, 248, .14);--editor-btn-copy-border: rgba(56, 189, 248, .28);--editor-btn-paste-bg: rgba(245, 158, 11, .14);--editor-btn-paste-border: rgba(245, 158, 11, .28);--editor-dropdown-bg: #17181c;--editor-dropdown-border: rgba(255, 255, 255, .08);--editor-dropdown-shadow: 0 12px 28px rgba(0, 0, 0, .35);--editor-option-color: #e4e4e7;--editor-option-hover-bg: rgba(255, 255, 255, .08);--editor-error-bg: rgba(239, 68, 68, .15);--editor-error-border: rgba(239, 68, 68, .3);--editor-error-color: #fca5a5;--editor-popover-bg: #17181c;--editor-popover-border: rgba(255, 255, 255, .08);--editor-popover-shadow: 0 16px 32px rgba(0, 0, 0, .38);--editor-popover-title: #f4f4f5;--editor-popover-close: #a1a1aa;--editor-popover-close-hover: #ffffff;--editor-textarea-border: rgba(255, 255, 255, .08);--editor-textarea-bg: rgba(255, 255, 255, .03);--editor-textarea-color: #f4f4f5;--editor-textarea-focus-border: rgba(255, 255, 255, .14);--editor-textarea-focus-bg: rgba(255, 255, 255, .05);--editor-textarea-placeholder: #71717a;--editor-config-error: #fca5a5;--editor-mask-bg: rgba(0, 0, 0, .56);--editor-sheet-bg: #141414;--color-scheme: dark;color:var(--text-body);background:var(--bg-page)}[data-theme=light]{--bg-page: #f5f5f5;--bg-elevated: #e8e8e8;--bg-input: #ffffff;--bg-input-disabled: #f0f0f0;--bg-option: #ffffff;--bg-editor: #fafafa;--bg-overlay: rgba(0, 0, 0, .32);--bg-mask: rgba(255, 255, 255, .72);--bg-subtle: rgba(0, 0, 0, .02);--bg-subtle-2: rgba(0, 0, 0, .03);--bg-subtle-3: rgba(0, 0, 0, .04);--bg-subtle-4: rgba(0, 0, 0, .05);--bg-subtle-6: rgba(0, 0, 0, .06);--bg-subtle-8: rgba(0, 0, 0, .08);--bg-subtle-12: rgba(0, 0, 0, .12);--bg-hover: #e0e0e0;--text-primary: #18181b;--text-secondary: #27272a;--text-tertiary: #3f3f46;--text-muted: #71717a;--text-muted-2: #6b6b6b;--text-dim: #a1a1aa;--text-dim-2: #8b8b94;--text-faint: #c4c4cc;--text-body: #1a1a2e;--text-badge: #64748b;--text-heading: #18181b;--border-subtle: rgba(0, 0, 0, .06);--border-default: rgba(0, 0, 0, .08);--border-medium: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .12);--border-stronger: rgba(0, 0, 0, .15);--border-intense: rgba(0, 0, 0, .18);--border-hover: rgba(0, 0, 0, .2);--border-active: rgba(0, 0, 0, .24);--border-selected: rgba(0, 0, 0, .28);--border-radio: rgba(0, 0, 0, .3);--scrollbar-track: #f0f0f0;--scrollbar-thumb: rgba(0, 0, 0, .16);--scrollbar-thumb-hover: rgba(0, 0, 0, .28);--scrollbar-color: rgba(0, 0, 0, .18);--splitter-dot: rgba(0, 0, 0, .18);--splitter-dot-hover: rgba(0, 0, 0, .45);--shadow-modal: 0 18px 52px rgba(0, 0, 0, .12);--shadow-thumb: 0 0 0 2px rgba(0, 0, 0, .1);--switch-track: rgba(0, 0, 0, .12);--switch-track-checked: #64748b;--switch-thumb: #ffffff;--switch-outline: #64748b;--btn-primary-bg: #18181b;--btn-primary-text: #ffffff;--range-track: rgba(0, 0, 0, .15);--range-thumb: #3f3f46;--select-arrow: #71717a;--date-filter: brightness(.5) contrast(1.2);--date-filter-hover: brightness(.3) contrast(1.3);--number-spin-filter: none;--color-up: #16a34a;--color-down: #e11d48;--color-link: #2563eb;--color-error: #dc2626;--color-warn: #ca8a04;--color-orange: #ea580c;--color-teal: #0d9488;--color-skip: #ea580c;--color-error-light: #dc2626;--color-accent: #3b82f6;--color-strikethrough: rgba(63, 63, 70, .38);--record-shell-bg: linear-gradient(180deg, rgba(0, 0, 0, .01), rgba(0, 0, 0, .02)), rgba(255, 255, 255, .92);--record-head-bg: rgba(245, 245, 245, .96);--record-head-color: rgba(63, 63, 70, .7);--loading-mask-bg: rgba(255, 255, 255, .7);--loading-spinner-border: rgba(0, 0, 0, .2);--loading-spinner-top: #18181b;--loading-text: #18181b;--replay-bg: rgba(59, 130, 246, .1);--replay-color: #1e40af;--replay-hover: rgba(59, 130, 246, .18);--replay-border-hover: rgba(59, 130, 246, .4);--replay-speed-bg: rgba(59, 130, 246, .12);--toast-error-bg: rgba(239, 68, 68, .12);--toast-error-text: #991b1b;--toast-success-bg: rgba(22, 163, 74, .12);--toast-success-text: #166534;--filter-remove-bg: rgba(239, 68, 68, .08);--filter-remove-border: rgba(239, 68, 68, .2);--task-error-bg: rgba(239, 68, 68, .08);--task-error-border: rgba(239, 68, 68, .2);--task-error-text: #dc2626;--toolbar-hint-color: rgba(63, 63, 70, .58);--chart-bg: #f5f5f5;--chart-text: #94a3b8;--chart-grid-vert: rgba(0, 0, 0, .04);--chart-grid-horz: rgba(0, 0, 0, .06);--chart-crosshair: rgba(0, 0, 0, .2);--chart-watermark: rgba(161, 161, 170, .08);--chart-up: #16a34a;--chart-down: #dc2626;--chart-up-fill1: rgba(22, 163, 74, .25);--chart-up-fill2: rgba(22, 163, 74, .02);--chart-down-fill1: rgba(220, 38, 38, .25);--chart-down-fill2: rgba(220, 38, 38, .02);--tooltip-bg: rgba(255, 255, 255, .95);--tooltip-border: rgba(0, 0, 0, .1);--tooltip-label: #94a3b8;--tooltip-value: #27272a;--editor-bg: #ffffff;--editor-caret: #383a42;--editor-gutter-color: #9ca3af;--editor-active-line: rgba(0, 0, 0, .04);--editor-active-gutter: rgba(0, 0, 0, .06);--editor-selection: #d7d4f0;--editor-search-bg: #ffd54f80;--editor-search-outline: #f59e0b;--editor-search-selected: #fbbf2440;--editor-selection-match: #c8e6c9aa;--editor-bracket-match: #b2dfdb88;--editor-fold-color: #666;--editor-tooltip-bg: #f5f5f5;--editor-panels-bg: #fafafa;--editor-panels-color: #383a42;--editor-toolbar-border: rgba(0, 0, 0, .1);--editor-toolbar-title: #18181b;--editor-switch-color: #3f3f46;--editor-switch-hover-bg: rgba(0, 0, 0, .06);--editor-switch-hover-color: #18181b;--editor-switch-icon: #52525b;--editor-input-bg: rgba(0, 0, 0, .02);--editor-input-color: #18181b;--editor-input-placeholder: #a1a1aa;--editor-input-focus-border: rgba(0, 0, 0, .12);--editor-input-focus-bg: #ffffff;--editor-btn-border: rgba(0, 0, 0, .12);--editor-btn-bg: rgba(0, 0, 0, .04);--editor-btn-color: #3f3f46;--editor-btn-backtest-bg: rgba(59, 130, 246, .12);--editor-btn-backtest-border: rgba(59, 130, 246, .3);--editor-btn-import-bg: rgba(16, 185, 129, .12);--editor-btn-import-border: rgba(16, 185, 129, .3);--editor-btn-copy-bg: rgba(14, 165, 233, .1);--editor-btn-copy-border: rgba(14, 165, 233, .28);--editor-btn-paste-bg: rgba(245, 158, 11, .1);--editor-btn-paste-border: rgba(245, 158, 11, .28);--editor-dropdown-bg: #ffffff;--editor-dropdown-border: rgba(0, 0, 0, .1);--editor-dropdown-shadow: 0 12px 28px rgba(0, 0, 0, .1);--editor-option-color: #3f3f46;--editor-option-hover-bg: rgba(0, 0, 0, .06);--editor-error-bg: rgba(239, 68, 68, .08);--editor-error-border: rgba(239, 68, 68, .2);--editor-error-color: #dc2626;--editor-popover-bg: #ffffff;--editor-popover-border: rgba(0, 0, 0, .1);--editor-popover-shadow: 0 16px 32px rgba(0, 0, 0, .1);--editor-popover-title: #18181b;--editor-popover-close: #71717a;--editor-popover-close-hover: #18181b;--editor-textarea-border: rgba(0, 0, 0, .12);--editor-textarea-bg: #ffffff;--editor-textarea-color: #18181b;--editor-textarea-focus-border: rgba(0, 0, 0, .2);--editor-textarea-focus-bg: #ffffff;--editor-textarea-placeholder: #a1a1aa;--editor-config-error: #dc2626;--editor-mask-bg: rgba(0, 0, 0, .32);--editor-sheet-bg: #ffffff;--color-scheme: light}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}*{box-sizing:border-box}body{color:var(--text-body);background:var(--bg-page)}button,input,select{font:inherit}button{border:0;cursor:pointer}html{scrollbar-color:var(--scrollbar-color) var(--scrollbar-track);scrollbar-width:thin}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px;border:2px solid var(--scrollbar-track)}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*::-webkit-scrollbar-corner{background:var(--scrollbar-track)}.page{height:100%;padding:24px;overflow-x:hidden;display:flex;flex-direction:column}.topbar,.panel-head,.sidebar-head,.stats,.row,.actions,.split-row{display:flex}.topbar,.panel-head,.sidebar-head,.stats,.row,.split-row{justify-content:space-between}.topbar,.panel-head,.sidebar-head,.actions{align-items:center}.topbar{margin-bottom:10px;gap:12px;padding:0 2px 8px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between}.topbar-title{min-width:0}.actions{gap:8px}.eyebrow{color:var(--text-faint);font-size:11px;letter-spacing:.1em;text-transform:uppercase}h1{margin:4px 0 0;font-size:20px;font-weight:600;color:var(--text-heading)}.layout{--h-split-ratio: .73;--sidebar-min-w: 320px;display:grid;grid-template-columns:minmax(0,1fr) 6px minmax(var(--sidebar-min-w),calc((1 - var(--h-split-ratio)) * 100% - 5px));gap:2px;min-width:0;flex:1;min-height:0;overflow:hidden}.layout.is-dragging{user-select:none;-webkit-user-select:none}.splitter-h{display:flex;align-items:center;justify-content:center;cursor:col-resize;flex-shrink:0;position:relative;z-index:3;border-radius:3px;background:transparent;transition:background .15s}.splitter-h:hover,.layout.is-dragging .splitter-h{background:var(--bg-subtle-6)}.splitter-h-dots{display:flex;flex-direction:column;gap:4px;pointer-events:none}.splitter-h-dots span{width:3px;height:3px;border-radius:50%;background:var(--splitter-dot);transition:background .15s}.splitter-h:hover .splitter-h-dots span,.layout.is-dragging .splitter-h .splitter-h-dots span{background:var(--splitter-dot-hover)}.workspace{--split-ratio: .5;display:grid;grid-template-rows:calc(var(--split-ratio) * 100% - 5px) 6px calc((1 - var(--split-ratio)) * 100% - 5px);gap:2px;min-width:0;min-height:0;overflow:hidden}.workspace.is-dragging{user-select:none;-webkit-user-select:none}.splitter{display:flex;align-items:center;justify-content:center;cursor:row-resize;flex-shrink:0;position:relative;z-index:3;border-radius:3px;background:transparent;transition:background .15s}.splitter:hover,.workspace.is-dragging .splitter{background:var(--bg-subtle-6)}.splitter-dots{display:flex;gap:4px;pointer-events:none}.splitter-dots span{width:3px;height:3px;border-radius:50%;background:var(--splitter-dot);transition:background .15s}.splitter:hover .splitter-dots span,.workspace.is-dragging .splitter .splitter-dots span{background:var(--splitter-dot-hover)}.card{background:transparent;border:1px solid var(--border-subtle);border-radius:8px;box-shadow:none}.chart-panel{padding:8px 10px;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.sidebar{padding:8px 10px;min-width:320px;overflow-y:auto;overflow-x:hidden;min-height:0}.result-panel{display:grid;grid-template-columns:108px minmax(0,1fr);overflow:hidden;min-height:0}.badge,.mini{color:var(--text-badge);font-size:12px}.ghost{background:transparent;color:var(--text-muted);padding:8px 12px;border-radius:6px;border:1px solid var(--border-default)}.primary{background:var(--bg-subtle-6);color:var(--text-primary);padding:8px 12px;border-radius:6px;border:1px solid var(--border-strong);box-shadow:none}.primary:disabled,.ghost:disabled{opacity:.72;cursor:not-allowed}.chart-grid{position:relative;flex:1;min-height:0;margin-top:2px;border-radius:6px;background:var(--bg-page);overflow:hidden}.chart-canvas,.equity-canvas{width:100%}.chart-canvas{height:100%}.equity-canvas{height:220px;margin-top:6px}.ohlc-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:2px;padding:1px 0;color:var(--text-dim);font-size:10px;line-height:1.2;flex-shrink:0}.ohlc-symbol{color:var(--text-muted);margin-right:4px}.ohlc-time{color:var(--text-faint);margin-right:8px}.ohlc-bar strong{font-weight:500;color:var(--text-secondary)}.signal-filter-group{display:flex;gap:2px;margin-left:auto}.signal-filter-btn{padding:1px 8px;font-size:11px;border:1px solid var(--border-strong);border-radius:4px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s}.signal-filter-btn:hover{border-color:var(--border-hover);color:var(--text-muted)}.signal-filter-btn.active{background:var(--bg-subtle-8);border-color:var(--border-selected);color:var(--text-secondary)}.tab-list{padding:8px;background:transparent;border-right:1px solid var(--border-default);display:grid;gap:4px;align-content:start}.sub-tab-list{display:grid;gap:4px;margin-top:2px;padding-left:8px;border-left:1px solid var(--border-subtle)}.tab-btn{background:transparent;color:var(--text-muted-2);text-align:left;padding:8px 10px;border-radius:6px;font-size:12px;line-height:1.2}.main-tab{font-size:12px;font-weight:600}.sub-tab{font-size:11px;padding:7px 8px}.tab-btn.active{background:var(--bg-subtle-4);color:var(--text-primary)}.result-main{padding:10px;height:100%;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.result-header{display:grid;gap:2px;margin-bottom:10px}.result-header-main{display:flex;justify-content:space-between;align-items:center;gap:12px}.result-header-sub{color:var(--text-tertiary);font-size:11px}.performance-title{color:var(--text-primary);font-size:14px;font-weight:600;margin-bottom:0}.detail-link{padding:0;background:transparent;color:var(--color-link);font-size:12px}.metric-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:10px;padding:0 0 10px;border-bottom:1px solid var(--border-subtle);min-width:0;overflow:hidden}.metric-item{display:grid;gap:6px;min-width:0;overflow:hidden}.metric-item span,.summary span{color:var(--text-muted-2);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-item strong{font-size:15px;font-weight:600;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-item strong.up,.strong,.up{color:var(--color-up)}.metric-item strong.down,.down{color:var(--color-down)}.equity-box{padding:0;border-radius:0;background:none;border:none;flex:1;min-height:0;display:flex;flex-direction:column}.performance-chart{padding:0}.performance-chart .panel-head{margin-bottom:2px}.equity-chart-wrap{flex:1;min-height:120px;margin-top:6px}.config-info-card{margin-top:14px;padding:12px 14px;border-radius:6px;border:1px solid var(--border-medium);background:var(--bg-subtle-2);width:50%;margin-left:auto;margin-right:auto}.config-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.config-info-title{font-size:13px;font-weight:600;color:var(--text-secondary)}.config-info-date{font-size:11px;color:var(--text-dim)}.config-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px}.config-info-item{display:flex;justify-content:space-between;align-items:center;font-size:12px;line-height:1.8}.config-info-label{color:var(--text-muted-2)}.config-info-value{color:var(--text-tertiary);font-weight:500}.performance-canvas{height:260px;margin-top:6px}.trade-stats{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:2px;margin-bottom:8px;padding:0 0 8px;border-bottom:1px solid var(--border-strong)}.trade-stat-item{display:inline-flex;align-items:baseline;gap:6px;padding:0;background:transparent;border:0;white-space:nowrap}.trade-stat-item span{color:var(--text-muted-2);font-size:10px}.trade-stat-item strong{color:var(--text-tertiary);font-size:12px;font-weight:500}.trade-table{margin-top:8px;border-radius:6px;overflow:auto;border:1px solid var(--border-default);font-size:11px;flex:1;min-height:0;min-width:0}.trade-table-scroll{height:100%;overflow-y:auto;overflow-x:auto}.trade-table-inner{min-width:580px}.row{padding:9px 12px;grid-template-columns:.4fr .45fr .5fr .8fr .8fr .65fr .65fr 1.3fr 1.3fr .55fr;display:grid;gap:8px;align-items:center;justify-items:center;text-align:center;min-width:580px}.row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.head{background:var(--bg-elevated);color:var(--text-tertiary);font-size:10px}.trade-head{position:sticky;top:0;z-index:2;background:var(--bg-elevated);border-bottom:1px solid var(--border-default)}.row:not(.head){background:transparent;border-top:1px solid var(--border-subtle);font-size:11px}.trade-row{min-height:32px}.trade-row-merged{position:relative;opacity:.58}.trade-row-merged:after{content:"";position:absolute;left:12px;right:12px;top:50%;height:1px;background:var(--color-strikethrough);pointer-events:none}.sidebar-head{margin-bottom:10px;background:transparent;padding:2px;border-radius:6px;border:1px solid var(--border-subtle)}.mode{flex:1;padding:8px 0;background:transparent;color:var(--text-dim);border-radius:4px;font-size:12px}.mode.active{background:var(--bg-subtle-4);color:var(--text-primary)}.form-group{display:grid;gap:5px;margin-bottom:10px}.form-group label{color:var(--text-dim);font-size:10.5px;line-height:1.2}.input-like{background:var(--bg-subtle);border:1px solid var(--border-subtle);min-height:36px;border-radius:6px;display:flex;align-items:center;padding:0 10px;color:var(--text-primary);width:100%;font-size:12.5px}.as-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;background-color:var(--bg-input);color:var(--text-primary);color-scheme:var(--color-scheme);font-size:12.5px}select.as-input{padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--select-arrow) 50%),linear-gradient(135deg,var(--select-arrow) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 1px),calc(100% - 12px) calc(50% - 1px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}select.as-input option{background:var(--bg-option);color:var(--text-primary)}input.as-input[type=date]{color-scheme:var(--color-scheme);position:relative;padding-right:36px}input.as-input[type=date]::-webkit-calendar-picker-indicator{position:absolute;right:10px;top:50%;transform:translateY(-50%);filter:var(--date-filter);cursor:pointer;opacity:1}input.as-input[type=date]:hover::-webkit-calendar-picker-indicator,input.as-input[type=date]:focus::-webkit-calendar-picker-indicator{filter:var(--date-filter-hover)}input.as-input[type=date]::-webkit-datetime-edit,input.as-input[type=date]::-webkit-datetime-edit-text,input.as-input[type=date]::-webkit-datetime-edit-month-field,input.as-input[type=date]::-webkit-datetime-edit-day-field,input.as-input[type=date]::-webkit-datetime-edit-year-field{color:var(--text-primary)}input.as-input[type=number]::-webkit-outer-spin-button,input.as-input[type=number]::-webkit-inner-spin-button{opacity:0;transition:opacity .15s ease}input.as-input[type=number]:hover::-webkit-outer-spin-button,input.as-input[type=number]:hover::-webkit-inner-spin-button,input.as-input[type=number]:focus::-webkit-outer-spin-button,input.as-input[type=number]:focus::-webkit-inner-spin-button{filter:var(--number-spin-filter);opacity:.9}select.as-input:disabled,.as-input:disabled{background-color:var(--bg-input-disabled);color:var(--text-dim);cursor:not-allowed;opacity:1}.as-input:focus{border-color:var(--border-intense);box-shadow:none}.half{flex:1}.advanced-field{align-content:start}.field-extra{min-height:34px;display:flex;flex-direction:column;justify-content:flex-start}.split-row{gap:12px}.quick-range-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:-2px 0 10px}.quick-range-btn{min-width:0;width:100%;padding:5px 0;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:11.5px;line-height:1;text-align:center}.quick-range-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.schedule-card{margin:0 0 10px;padding:8px 10px;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-subtle)}.schedule-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:0}.schedule-head label{color:var(--text-muted);font-size:11.5px;font-weight:500;line-height:1}.schedule-mode-switch{display:inline-flex;padding:2px;border-radius:7px;background:var(--bg-subtle-4);gap:2px;flex-shrink:0}.schedule-mode-btn{min-width:0;height:26px;padding:0 10px;border-radius:5px;background:transparent;color:var(--text-muted);font-size:11.5px;line-height:1}.schedule-mode-btn.active{background:var(--bg-subtle-12);color:var(--text-primary)}.schedule-days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.schedule-day-btn{min-width:0;padding:6px 0;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:11.5px;line-height:1}.schedule-day-btn.active{background:var(--bg-subtle-12);color:var(--text-primary);border-color:var(--border-active)}input.as-input[type=time]{color-scheme:var(--color-scheme);padding-right:10px}.leverage-range{width:100%;height:14px;margin-top:4px;padding:0;background:transparent;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.unit-combined-input{padding:0;overflow:hidden}.unit-combined-value{flex:1;min-width:0;height:100%;padding:0 10px;border:0;outline:none;background:transparent;color:var(--text-primary);font-size:12.5px}.unit-combined-trigger{display:inline-flex;align-items:center;gap:5px;height:100%;padding:0 10px;border-left:1px solid var(--border-medium);background:var(--bg-subtle-2);color:var(--text-muted);white-space:nowrap;font-size:12.5px}.unit-combined-arrow{font-size:20px;line-height:1;opacity:.95}.switch-field{min-height:36px;padding:0 10px;border-radius:6px;border:1px solid var(--border-subtle);background:var(--bg-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-status-text{color:var(--text-muted);font-size:12px;line-height:1}.switch-inline{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.switch-input{position:absolute;opacity:0;pointer-events:none}.switch-track{position:relative;width:34px;height:20px;border-radius:999px;background:var(--switch-track);transition:background .18s ease;flex-shrink:0}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--switch-thumb);transition:transform .18s ease}.switch-input:checked+.switch-track{background:var(--switch-track-checked)}.switch-input:checked+.switch-track .switch-thumb{transform:translate(14px)}.switch-field:hover{border-color:var(--border-strong);background:var(--bg-subtle-3)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--switch-outline);outline-offset:2px}.switch-field .max-pos-input{background:transparent;border:none;border-bottom:1.5px solid var(--border-hover);border-radius:0;min-height:unset;height:22px;padding:0 2px;flex:0 0 auto;width:52px;text-align:center;font-size:13px;font-weight:600;color:var(--text-primary);transition:border-color .15s ease}.switch-field .max-pos-input:focus{border-color:var(--color-accent);background:transparent}.switch-field .max-pos-input::placeholder{font-weight:400;color:var(--text-dim);font-size:11px}.order-settings-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:var(--bg-overlay)}.order-settings-modal{width:420px;max-width:calc(100vw - 40px);border-radius:14px;background:var(--bg-input);border:1px solid var(--border-strong);box-shadow:var(--shadow-modal)}.mask__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-medium)}.mask__header h2{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.mask__headerClose{width:28px;height:28px;border-radius:50%;background:var(--bg-subtle-3);color:var(--text-muted);font-size:18px}.mask__body{padding:16px}.AmountInput_place-order-modal__ue__m{display:flex;flex-direction:column;gap:10px}.AmountInput_radio-item__P6OrG{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0}.AmountInput_radio-item__P6OrG+.AmountInput_radio-item__P6OrG{border-top:1px solid var(--border-medium)}.AmountInput_radio-wrapper__ADTYh{display:flex;flex-direction:column;gap:4px}.AmountInput_radio-label__oMV_N{color:var(--text-primary);font-size:14px;font-weight:500}.AmountInput_margin-description__n5_cm{color:var(--text-dim-2);font-size:11px;line-height:1.45}.AmountInput_radio-button__9MnO1{background:transparent;padding:0}.InputRadio_radio__EDPwX{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-radio);display:inline-flex;align-items:center;justify-content:center}.InputRadio_radio__EDPwX:after{content:"";width:6px;height:6px;border-radius:50%;background:transparent}.InputRadio_radio__EDPwX.active{border-color:var(--text-primary);background:var(--bg-subtle-6)}.InputRadio_radio__EDPwX.active:after{background:var(--text-primary)}.AmountInput_customFooter__Cl9H9{margin-top:4px}.button_button__obGj8.button_button-primary___eiDy{width:100%;min-height:40px;border-radius:9px;background:var(--btn-primary-bg);color:var(--btn-primary-text);font-weight:600;font-size:14px}.leverage-range::-webkit-slider-runnable-track{height:2px;border-radius:999px;background:var(--range-track)}.leverage-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:10px;margin-top:-4px;border:0;border-radius:50%;background:var(--range-thumb);box-shadow:var(--shadow-thumb)}.leverage-range::-moz-range-track{height:2px;border:0;border-radius:999px;background:var(--range-track)}.leverage-range::-moz-range-thumb{width:10px;height:10px;border:0;border-radius:50%;background:var(--range-thumb);box-shadow:var(--shadow-thumb)}.range-scale{display:flex;justify-content:space-between;color:var(--text-dim-2);font-size:11px;line-height:1;margin-top:-2px}.fee-quick-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.signal-inline-toggle{margin-left:auto;padding:0;background:transparent;color:var(--text-heading);font-size:10px;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}.signal-inline-toggle.active{color:var(--text-secondary)}.inner{margin:8px 0 12px;padding:10px;display:grid;gap:8px}.summary div{display:flex;justify-content:space-between;align-items:center}.big{width:100%;padding:10px 14px;font-size:14px}.placeholder-panel{min-height:100%;display:grid;place-content:center;gap:16px;text-align:center;color:var(--text-tertiary);padding:20px 20px 60px;flex:1;font-size:14px}.placeholder-panel .backtest-icon{margin:0 auto;color:var(--text-tertiary)}.trade-log-panel{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px 12px}.trade-log-list{flex:1;overflow-y:auto;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.5}.trade-log-item{padding:1px 0;white-space:nowrap}.log-time{color:var(--text-dim)}.log-action{font-weight:600;margin:0 4px}.log-action-执行开仓{color:var(--color-link)}.log-action-触发止盈{color:var(--color-up)}.log-action-触发止损{color:var(--color-error)}.log-action-执行平仓{color:var(--color-warn)}.log-action-反向平仓{color:var(--color-orange)}.log-action-执行合仓{color:var(--color-teal)}.log-action-跳过开仓{color:var(--color-skip)}.log-detail{color:var(--text-muted)}.indicator-editor{display:flex;flex-direction:column;height:100%;min-height:0;border-radius:8px;overflow:hidden;background:var(--bg-editor);border:1px solid var(--border-subtle)}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;background:var(--bg-subtle-2);border-bottom:1px solid var(--border-medium);flex-shrink:0}.editor-toolbar-left{display:flex;align-items:center;gap:10px;min-width:0}.editor-toolbar-title{color:var(--text-muted);font-size:12px;font-weight:600;white-space:nowrap}.editor-toolbar-hint{color:var(--text-faint);font-size:10.5px;white-space:nowrap}.editor-toolbar-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.editor-btn{padding:4px 12px;border-radius:5px;border:1px solid var(--border-strong);background:var(--bg-subtle-4);color:var(--text-muted);font-size:11.5px;line-height:1.4;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.editor-btn:hover{background:var(--bg-subtle-8);color:var(--text-primary)}.editor-btn-save{background:var(--bg-subtle-6);color:var(--text-secondary)}.editor-container{flex:1;min-height:0;overflow:hidden}.editor-container .cm-editor{height:100%}@media (max-width: 720px){.page{padding:14px}.chart-panel{min-height:300px}.actions,.split-row{flex-direction:column}.split-row>.half{flex:none;width:100%}.result-header-main{flex-direction:column;align-items:flex-start}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.row{grid-template-columns:repeat(2,1fr);min-width:0}.result-panel{grid-template-columns:1fr;min-height:320px}.tab-list{grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid var(--border-default)}h1{font-size:22px}}@media (max-width: 768px){.page{padding:8px;height:100vh;overflow:hidden}.splitter-h,.sidebar{display:none}.layout{grid-template-columns:1fr;flex:1;min-height:0}.workspace{--split-ratio: .35;grid-template-rows:calc(var(--split-ratio) * 100% - 3px) 4px calc((1 - var(--split-ratio)) * 100% - 3px);min-height:0;overflow:hidden}.chart-panel{min-height:0;padding:6px 8px}.ohlc-bar{font-size:9px;gap:4px;margin-bottom:1px}.ohlc-symbol{margin-right:2px}.ohlc-time{margin-right:4px}.topbar{margin-bottom:6px;padding:0 2px 6px;gap:8px}.eyebrow{font-size:10px}.result-panel{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:0;overflow:hidden}.tab-list{display:flex;flex-direction:row;flex-wrap:wrap;overflow-x:auto;overflow-y:hidden;gap:4px;padding:6px 8px;border-right:0;border-bottom:1px solid var(--border-default);border-top:0;border-left:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:center}.tab-list::-webkit-scrollbar{display:none}.tab-btn{padding:6px 12px;white-space:nowrap;flex-shrink:0;font-size:12px}.sub-tab-list{display:flex;flex-direction:row;gap:4px;margin-top:0;padding-left:0;padding-top:6px;border-left:0;border-top:1px solid var(--border-subtle);margin-left:0;width:100%}.sub-tab{font-size:11px;padding:5px 10px}.result-main{padding:8px;min-height:0;overflow-y:auto}.metric-strip{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:8px;padding-bottom:8px;overflow-x:auto}.metric-item{flex:1}.metric-item strong{font-size:14px}.trade-table{border:0;margin-top:4px}.row{grid-template-columns:.4fr .45fr .5fr .8fr .8fr .65fr .65fr 1.3fr 1.3fr .55fr;min-width:500px;padding:6px 8px;gap:4px}.row.head{display:grid}.trade-table{overflow:hidden}.trade-table-scroll{overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;height:100%}.trade-table-inner{display:block;min-width:580px}.row:not(.head){font-size:12px}.trade-row{min-height:auto;padding:6px 8px}.trade-stats{gap:6px 10px;margin-bottom:6px;padding-bottom:6px}.trade-stat-item span{font-size:9px}.trade-stat-item strong{font-size:11px}.result-header-main{flex-direction:row;align-items:center}.performance-title{font-size:13px}.result-header-sub{font-size:10px}.config-info-card{width:100%;padding:10px 12px}.config-info-grid{gap:4px 16px}.config-info-item{font-size:11px}.splitter{min-height:4px}.splitter-dots span{width:2px;height:2px}.signal-filter-group{gap:2px}.signal-filter-btn{padding:1px 6px;font-size:10px}.filter-section{padding:8px 0;margin-bottom:8px;border-top:1px solid var(--border-subtle)}}.filter-section{padding:10px 0;margin-bottom:8px;border-top:1px solid var(--border-subtle)}.filter-section-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;display:block}.filter-empty{font-size:11px;color:var(--text-dim);padding:8px 0}.filter-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 0;color:var(--text-dim);font-size:12px}.filter-selected-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-subtle-3);border-radius:6px;margin-bottom:4px;font-size:11px}.filter-selected-name{color:var(--text-secondary);font-weight:500;flex-shrink:0}.filter-selected-meta{color:var(--text-dim);font-size:10px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-remove-btn{background:var(--filter-remove-bg);border:1px solid var(--filter-remove-border);color:var(--color-error-light);padding:2px 8px;border-radius:4px;font-size:10px;cursor:pointer;flex-shrink:0}.filter-actions{display:flex;gap:8px;margin-top:8px}.filter-action-btn{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--border-stronger);background:var(--bg-subtle-4);color:var(--text-secondary);font-size:11px;cursor:pointer}.filter-action-btn:hover{background:var(--bg-subtle-8)}.filter-search-row{display:flex;gap:6px;margin-bottom:8px}.filter-search-row>input{flex:1.5;min-width:0}.filter-search-row>select{flex:1;min-width:0}.filter-stats-text{font-size:11px;color:var(--text-dim);padding:8px 0;display:block;text-align:center}.filter-list{flex:1;min-height:200px;overflow-y:auto;position:relative}.filter-modal-body{display:flex;flex-direction:column;overflow:hidden}.filter-modal-body .filter-search-row,.filter-modal-body .split-row,.filter-modal-body .filter-stats-text{flex-shrink:0}.filter-virtual-content{position:relative}.filter-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:6px;cursor:pointer;margin-bottom:2px}.filter-item:hover{background:var(--bg-subtle-4)}.filter-checkbox{margin-top:2px;flex-shrink:0;accent-color:var(--color-accent)}.filter-item-info{flex:1;min-width:0}.filter-item-name{font-size:12px;color:var(--text-secondary);font-weight:500}.filter-item-meta{font-size:10px;color:var(--text-dim);margin-top:2px}.filter-item-desc{font-size:10px;color:var(--text-muted);margin-top:2px}.filter-code-textarea{width:100%;min-height:100px;resize:vertical;font-family:monospace;font-size:11px}
