.card[data-v-157efc48]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;flex:1;min-width:140px;padding:14px 18px;transition:background .3s,border-color .3s}.label[data-v-157efc48]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:.7rem}.value[data-v-157efc48]{margin-top:2px;font-family:SF Mono,Fira Code,Fira Mono,Menlo,Consolas,monospace;font-size:1.4rem;font-weight:700}.up[data-v-157efc48]{color:var(--up)}.down[data-v-157efc48]{color:var(--down)}.neutral[data-v-157efc48]{color:var(--text-primary)}.sub[data-v-157efc48]{color:var(--text-footer);margin-top:4px;font-size:.7rem}@media (width<=600px){.card[data-v-157efc48]{min-width:0;padding:10px 14px}.value[data-v-157efc48]{font-size:1.1rem}}.signals-list[data-v-454a62f9]{background:var(--bg-surface);border-radius:8px;padding:16px;transition:background .3s}.list-header[data-v-454a62f9]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2[data-v-454a62f9]{color:var(--accent);align-items:center;gap:8px;margin:0;font-size:.95rem;display:flex}.badge[data-v-454a62f9]{background:var(--accent-bg);color:var(--accent);border-radius:10px;padding:1px 8px;font-size:.75rem;font-weight:600}table[data-v-454a62f9]{border-collapse:collapse;width:100%;font-size:.85rem}th[data-v-454a62f9],td[data-v-454a62f9]{text-align:left;border-bottom:1px solid var(--border-primary);padding:8px 10px}th[data-v-454a62f9]{color:var(--text-muted);text-transform:uppercase;white-space:nowrap;font-size:.7rem}.signal-type[data-v-454a62f9]{white-space:nowrap;align-items:center;gap:3px;font-size:.8rem;font-weight:600;display:inline-flex}.signal-type.buy[data-v-454a62f9]{color:var(--up)}.signal-type.sell[data-v-454a62f9]{color:var(--down)}.signal-type.close[data-v-454a62f9]{color:var(--warning)}.symbol[data-v-454a62f9]{font-family:SF Mono,Fira Code,monospace;font-weight:600}.confidence[data-v-454a62f9]{color:var(--warning);font-weight:600}.reason-cell[data-v-454a62f9]{text-overflow:ellipsis;white-space:nowrap;max-width:180px;color:var(--text-muted);font-size:.8rem;overflow:hidden}.time[data-v-454a62f9]{color:var(--text-footer);white-space:nowrap;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.empty[data-v-454a62f9]{color:var(--text-footer);text-align:center;padding:24px 0;font-style:italic}@media (width<=768px){.signals-list[data-v-454a62f9]{-webkit-overflow-scrolling:touch;padding:12px;overflow-x:auto}table[data-v-454a62f9]{font-size:.75rem}th[data-v-454a62f9],td[data-v-454a62f9]{padding:6px 8px}.reason-cell[data-v-454a62f9]{max-width:100px}}@media (width<=480px){.signals-list[data-v-454a62f9]{padding:10px}h2[data-v-454a62f9]{font-size:.85rem}}.trades-table[data-v-cfc5cb99]{background:var(--bg-surface);border-radius:8px;padding:16px;transition:background .3s}.table-header[data-v-cfc5cb99]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2[data-v-cfc5cb99]{color:var(--accent);align-items:center;gap:8px;margin:0;font-size:.95rem;display:flex}.badge[data-v-cfc5cb99]{background:var(--accent-bg);color:var(--accent);border-radius:10px;padding:1px 8px;font-size:.75rem;font-weight:600}table[data-v-cfc5cb99]{border-collapse:collapse;width:100%;font-size:.85rem}th[data-v-cfc5cb99],td[data-v-cfc5cb99]{text-align:left;border-bottom:1px solid var(--border-primary);padding:8px 10px}th[data-v-cfc5cb99]{color:var(--text-muted);text-transform:uppercase;white-space:nowrap;font-size:.7rem}.pair[data-v-cfc5cb99]{font-family:SF Mono,Fira Code,monospace;font-weight:600}.side[data-v-cfc5cb99]{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:600}.side.long[data-v-cfc5cb99]{background:var(--up-bg);color:var(--up)}.side.short[data-v-cfc5cb99]{background:var(--down-bg);color:var(--down)}.num[data-v-cfc5cb99]{text-align:right;font-family:SF Mono,Fira Code,monospace}.pnl[data-v-cfc5cb99]{font-weight:600}.pnl.up[data-v-cfc5cb99]{color:var(--up)}.pnl.down[data-v-cfc5cb99]{color:var(--down)}.strategy[data-v-cfc5cb99]{color:var(--text-muted);font-size:.8rem}.empty[data-v-cfc5cb99]{color:var(--text-footer);text-align:center;padding:24px 0;font-style:italic}@media (width<=768px){.trades-table[data-v-cfc5cb99]{-webkit-overflow-scrolling:touch;padding:12px;overflow-x:auto}table[data-v-cfc5cb99]{font-size:.75rem}th[data-v-cfc5cb99],td[data-v-cfc5cb99]{padding:6px 8px}}@media (width<=480px){.trades-table[data-v-cfc5cb99]{padding:10px}h2[data-v-cfc5cb99]{font-size:.85rem}}.qlib-summary[data-v-b06095dd]{background:var(--bg-surface);border-radius:8px;padding:16px;transition:background .3s}.summary-header[data-v-b06095dd]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2[data-v-b06095dd]{color:var(--accent);margin:0;font-size:.95rem}.model-grid[data-v-b06095dd]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.model-card[data-v-b06095dd]{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;padding:12px;transition:background .3s,border-color .3s}.model-top[data-v-b06095dd]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.model-name[data-v-b06095dd]{color:var(--text-primary);font-size:.9rem;font-weight:600}.status-badge[data-v-b06095dd]{text-transform:uppercase;border-radius:10px;padding:2px 8px;font-size:.65rem;font-weight:600}.ready[data-v-b06095dd]{background:var(--up-bg);color:var(--up)}.training[data-v-b06095dd]{background:var(--warning-bg);color:var(--warning)}.failed[data-v-b06095dd]{background:var(--down-bg);color:var(--down)}.model-info[data-v-b06095dd]{margin-bottom:8px}.info-row[data-v-b06095dd]{justify-content:space-between;padding:2px 0;font-size:.75rem;display:flex}.info-label[data-v-b06095dd]{color:var(--text-footer)}.info-value[data-v-b06095dd]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:.8rem}.metrics[data-v-b06095dd]{border-top:1px solid var(--border-primary);grid-template-columns:1fr 1fr;gap:4px;padding-top:8px;display:grid}.metric[data-v-b06095dd]{flex-direction:column;display:flex}.metric-key[data-v-b06095dd]{color:var(--text-footer);text-transform:uppercase;font-size:.65rem}.metric-value[data-v-b06095dd]{color:var(--accent);font-family:SF Mono,Fira Code,monospace;font-size:.85rem;font-weight:600}.empty[data-v-b06095dd]{color:var(--text-footer);text-align:center;padding:24px 0;font-style:italic}@media (width<=768px){.qlib-summary[data-v-b06095dd]{-webkit-overflow-scrolling:touch;padding:12px;overflow-x:auto}.model-grid[data-v-b06095dd]{grid-template-columns:1fr}.model-card[data-v-b06095dd]{padding:10px}.metrics[data-v-b06095dd]{grid-template-columns:1fr 1fr}}@media (width<=480px){.qlib-summary[data-v-b06095dd]{padding:10px}h2[data-v-b06095dd]{font-size:.85rem}.metrics[data-v-b06095dd]{grid-template-columns:1fr}}.portfolio-overview[data-v-7e6e9d43]{margin-bottom:24px}.section-title[data-v-7e6e9d43]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px;font-size:1rem;font-weight:600}.loading-state[data-v-7e6e9d43],.error-state[data-v-7e6e9d43]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px 20px;display:flex}.spinner[data-v-7e6e9d43]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin-7e6e9d43}@keyframes spin-7e6e9d43{to{transform:rotate(360deg)}}.error-icon[data-v-7e6e9d43]{color:var(--down);font-size:1.4rem}.error-state[data-v-7e6e9d43]{color:var(--down)}.metrics-grid[data-v-7e6e9d43]{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.metric-card[data-v-7e6e9d43]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:10px;padding:16px 18px;transition:border-color .2s,background .2s}.metric-card.primary[data-v-7e6e9d43]{border-color:var(--accent);background:linear-gradient(135deg, var(--bg-surface), var(--accent-bg));border-width:1px}.metric-label[data-v-7e6e9d43]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:.7rem}.metric-value[data-v-7e6e9d43]{font-family:SF Mono,Fira Code,Fira Mono,Menlo,Consolas,monospace;font-size:1.4rem;font-weight:700;line-height:1.3}.metric-value.accent[data-v-7e6e9d43]{color:var(--accent)}.metric-value.up[data-v-7e6e9d43]{color:var(--up)}.metric-value.down[data-v-7e6e9d43]{color:var(--down)}.metric-value.neutral[data-v-7e6e9d43]{color:var(--text-primary)}.metric-sub[data-v-7e6e9d43]{color:var(--text-footer);margin-top:4px;font-family:SF Mono,Fira Code,monospace;font-size:.7rem}@media (width<=1024px){.metrics-grid[data-v-7e6e9d43]{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.metrics-grid[data-v-7e6e9d43]{grid-template-columns:1fr}.metric-value[data-v-7e6e9d43]{font-size:1.2rem}.metric-card[data-v-7e6e9d43]{padding:12px 14px}}.dashboard[data-v-606107c7]{max-width:1200px;margin:0 auto}.header[data-v-606107c7]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;display:flex}h1[data-v-606107c7]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-606107c7]{align-items:center;gap:12px;display:flex}.updated[data-v-606107c7]{color:var(--text-footer);font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.updated.fallback[data-v-606107c7]{color:var(--warning)}.refresh-btn[data-v-606107c7]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-606107c7]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-606107c7]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-606107c7]{animation:1s infinite pulse-606107c7}@keyframes pulse-606107c7{0%,to{opacity:1}50%{opacity:.6}}.ws-badge[data-v-606107c7]{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:3px 8px;font-family:SF Mono,Fira Code,monospace;font-size:.7rem;display:inline-flex}.ws-badge.ws-connected[data-v-606107c7]{background:var(--up-bg);color:var(--up);border:1px solid var(--up-bg)}.ws-badge.ws-connecting[data-v-606107c7]{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-bg)}.ws-badge.ws-disconnected[data-v-606107c7]{background:var(--bg-hover);color:var(--text-footer);border:1px solid var(--border-primary)}.ws-badge.ws-error[data-v-606107c7]{background:var(--down-bg);color:var(--down);border:1px solid var(--down-bg)}.status-bar[data-v-606107c7]{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.loading-state[data-v-606107c7],.error-state[data-v-606107c7]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-606107c7]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-606107c7}@keyframes spin-606107c7{to{transform:rotate(360deg)}}.error-icon[data-v-606107c7]{color:var(--down);font-size:2rem}.error-state[data-v-606107c7]{color:var(--down)}.retry-btn[data-v-606107c7]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;padding:6px 16px;font-size:.8rem}.grid-2col[data-v-606107c7]{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.qlib-section[data-v-606107c7]{margin-bottom:16px}.footer[data-v-606107c7]{color:var(--text-footer);text-align:center;margin-top:24px;padding-bottom:20px;font-size:.7rem}@media (width<=900px){.grid-2col[data-v-606107c7]{grid-template-columns:1fr}}@media (width<=600px){.status-bar[data-v-606107c7]{flex-direction:column}h1[data-v-606107c7]{font-size:1.2rem}}@media (width<=480px){.header-controls[data-v-606107c7]{flex-wrap:wrap;gap:6px}.ws-badge[data-v-606107c7]{padding:2px 6px;font-size:.65rem}.refresh-btn[data-v-606107c7]{min-height:36px;padding:6px 10px;font-size:.75rem}.footer[data-v-606107c7]{font-size:.6rem}}.summary-bar[data-v-3f16730c]{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.summary-card[data-v-3f16730c]{background:var(--bg-surface);border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:100px;padding:10px 16px;transition:background .3s;display:flex}.summary-label[data-v-3f16730c]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.summary-value[data-v-3f16730c]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:1.15rem;font-weight:700}.summary-value.accent[data-v-3f16730c]{color:var(--accent)}.summary-value.up[data-v-3f16730c]{color:var(--up)}.summary-value.down[data-v-3f16730c]{color:var(--down)}.summary-sub[data-v-3f16730c]{opacity:.8;margin-left:4px;font-size:.75rem;font-weight:400}.filter-bar[data-v-3f16730c]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.search-input[data-v-3f16730c]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:6px;flex:1;min-width:160px;padding:6px 12px;font-size:.8rem}.search-input[data-v-3f16730c]::placeholder{color:var(--text-footer)}.filter-select[data-v-3f16730c]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;min-width:100px;padding:6px 10px;font-size:.8rem}.clear-btn[data-v-3f16730c]{border:1px solid var(--down-border);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:.75rem;transition:all .15s}.clear-btn[data-v-3f16730c]:hover{background:var(--down-bg)}.result-count[data-v-3f16730c]{color:var(--text-footer);margin-left:auto;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.loading-state[data-v-3f16730c],.error-state[data-v-3f16730c]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-3f16730c]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-3f16730c}@keyframes spin-3f16730c{to{transform:rotate(360deg)}}.error-icon[data-v-3f16730c]{color:var(--down);font-size:2rem}.error-state[data-v-3f16730c]{color:var(--down)}.retry-btn[data-v-3f16730c]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-3f16730c]:hover{background:var(--down-bg)}.empty-state[data-v-3f16730c]{text-align:center;color:var(--text-footer);padding:48px 20px;font-style:italic}.table-wrapper[data-v-3f16730c]{background:var(--bg-surface);border-radius:8px;transition:background .3s;overflow:hidden}.positions-table[data-v-3f16730c]{border-collapse:collapse;width:100%;font-size:.8rem}.positions-table th[data-v-3f16730c],.positions-table td[data-v-3f16730c]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:8px 10px}.positions-table th[data-v-3f16730c]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.7rem;position:sticky;top:0}.positions-table tbody tr.position-row[data-v-3f16730c]{cursor:pointer;transition:background .1s}.positions-table tbody tr.position-row[data-v-3f16730c]:hover,.positions-table tbody tr.position-row.expanded[data-v-3f16730c]{background:var(--bg-hover)}.col-pair[data-v-3f16730c]{min-width:80px}.col-side[data-v-3f16730c]{width:55px}.col-num[data-v-3f16730c]{text-align:right;font-family:SF Mono,Fira Code,monospace}.col-date[data-v-3f16730c]{text-align:right;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.col-expand[data-v-3f16730c]{text-align:center;width:30px}.pair-name[data-v-3f16730c]{font-family:SF Mono,Fira Code,monospace;font-weight:600}.side-badge[data-v-3f16730c]{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:600}.side-badge.long[data-v-3f16730c]{background:var(--up-bg);color:var(--up)}.side-badge.short[data-v-3f16730c]{background:var(--down-bg);color:var(--down)}.side-badge.mini[data-v-3f16730c]{padding:1px 6px;font-size:.65rem}.price[data-v-3f16730c]{font-size:.78rem}.size[data-v-3f16730c]{color:var(--text-muted);font-size:.75rem}.pnl-value[data-v-3f16730c]{font-weight:600}.sltp[data-v-3f16730c]{color:var(--text-muted);font-size:.75rem}.reason-cell[data-v-3f16730c]{color:var(--text-footer);text-overflow:ellipsis;max-width:120px;font-size:.75rem;overflow:hidden}.up[data-v-3f16730c]{font-weight:600;color:var(--up)!important}.down[data-v-3f16730c]{font-weight:600;color:var(--down)!important}.expand-icon[data-v-3f16730c]{color:var(--text-footer);font-size:.65rem;transition:transform .2s;display:inline-block}.expand-icon.open[data-v-3f16730c]{color:var(--accent);transform:rotate(90deg)}.history-row td[data-v-3f16730c]{border-bottom:1px solid var(--border-primary);padding:0!important}.history-cell[data-v-3f16730c]{background:var(--bg-primary)}.history-inner[data-v-3f16730c]{padding:12px 16px 12px 32px}.history-header[data-v-3f16730c]{color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:.75rem;font-weight:600}.history-table[data-v-3f16730c]{border-collapse:collapse;width:100%;font-size:.75rem}.history-table th[data-v-3f16730c],.history-table td[data-v-3f16730c]{text-align:left;border-bottom:1px solid var(--border-light,#2a3a4a);white-space:nowrap;padding:5px 8px}.history-table th[data-v-3f16730c]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.3px;font-size:.65rem}.history-table tbody tr:last-child td[data-v-3f16730c]{border-bottom:none}.history-table tbody tr[data-v-3f16730c]:hover{background:var(--bg-hover)}.history-empty[data-v-3f16730c]{color:var(--text-footer);text-align:center;padding:16px;font-size:.75rem;font-style:italic}@media (width<=900px){.summary-bar[data-v-3f16730c]{grid-template-columns:1fr 1fr;display:grid}.summary-card[data-v-3f16730c]{min-width:0}}@media (width<=700px){.filter-bar[data-v-3f16730c]{flex-direction:column}.search-input[data-v-3f16730c],.filter-select[data-v-3f16730c]{width:100%;min-height:40px}.result-count[data-v-3f16730c]{margin-left:0}.table-wrapper[data-v-3f16730c]{-webkit-overflow-scrolling:touch;overflow-x:auto}.positions-table[data-v-3f16730c]{font-size:.7rem}.positions-table th[data-v-3f16730c],.positions-table td[data-v-3f16730c]{padding:6px}.summary-card[data-v-3f16730c]{padding:8px 12px}.summary-value[data-v-3f16730c]{font-size:1rem}}@media (width<=480px){.summary-bar[data-v-3f16730c]{grid-template-columns:1fr 1fr}}.portfolio-page[data-v-0736d4c8]{max-width:1260px;margin:0 auto}.header[data-v-0736d4c8]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}h1[data-v-0736d4c8]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-0736d4c8]{align-items:center;gap:12px;display:flex}.refresh-btn[data-v-0736d4c8]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-0736d4c8]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-0736d4c8]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-0736d4c8]{animation:1s infinite pulse-0736d4c8}@keyframes pulse-0736d4c8{0%,to{opacity:1}50%{opacity:.6}}@media (width<=700px){h1[data-v-0736d4c8]{font-size:1.2rem}}@media (width<=480px){.header-controls[data-v-0736d4c8]{flex-wrap:wrap;gap:6px}.refresh-btn[data-v-0736d4c8]{min-height:36px;padding:6px 10px;font-size:.75rem}}.page[data-v-272385a5]{max-width:1200px}.page-title[data-v-272385a5]{color:var(--accent);margin-bottom:8px;font-size:1.5rem;font-weight:700}.page-desc[data-v-272385a5]{color:var(--text-footer);margin-bottom:24px;font-size:.85rem}.loading-state[data-v-272385a5],.empty-state[data-v-272385a5]{color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-272385a5]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-272385a5}@keyframes spin-272385a5{to{transform:rotate(360deg)}}.signal-list[data-v-272385a5]{flex-direction:column;gap:8px;display:flex}.signal-card[data-v-272385a5]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;align-items:center;gap:16px;padding:12px 16px;font-size:.85rem;transition:background .3s,border-color .3s;display:flex}.signal-type[data-v-272385a5]{text-align:center;border-radius:4px;min-width:48px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.signal-type.buy[data-v-272385a5]{background:var(--up-bg);color:var(--up)}.signal-type.sell[data-v-272385a5]{background:var(--down-bg);color:var(--down)}.signal-type.close[data-v-272385a5]{background:var(--warning-bg);color:var(--warning)}.signal-symbol[data-v-272385a5]{min-width:80px;font-weight:600}.signal-source[data-v-272385a5]{color:var(--text-muted)}.signal-confidence[data-v-272385a5]{margin-left:auto;font-family:SF Mono,Fira Code,monospace}.signal-time[data-v-272385a5]{color:#678;font-family:SF Mono,Fira Code,monospace}@media (width<=768px){.page[data-v-272385a5]{padding:0}.page-title[data-v-272385a5]{font-size:1.2rem}.signal-card[data-v-272385a5]{flex-wrap:wrap;gap:8px;min-height:44px;padding:10px 12px}.signal-confidence[data-v-272385a5]{margin-left:0}}@media (width<=480px){.page-title[data-v-272385a5]{font-size:1.05rem}.signal-card[data-v-272385a5]{flex-direction:column;align-items:flex-start;min-height:52px}.signal-type[data-v-272385a5]{width:100%;min-width:0}}.trades-page[data-v-43b687fc]{max-width:1260px;margin:0 auto}.header[data-v-43b687fc]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}h1[data-v-43b687fc]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-43b687fc]{align-items:center;gap:12px;display:flex}.updated[data-v-43b687fc]{color:var(--text-footer);font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.refresh-btn[data-v-43b687fc]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-43b687fc]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-43b687fc]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-43b687fc]{animation:1s infinite pulse-43b687fc}@keyframes pulse-43b687fc{0%,to{opacity:1}50%{opacity:.6}}.stats-bar[data-v-43b687fc]{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.stat-card[data-v-43b687fc]{background:var(--bg-surface);border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:100px;padding:10px 16px;transition:background .3s;display:flex}.stat-label[data-v-43b687fc]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.stat-value[data-v-43b687fc]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:1.2rem;font-weight:700}.stat-value.accent[data-v-43b687fc]{color:var(--accent)}.stat-value.muted[data-v-43b687fc]{color:var(--text-muted)}.stat-value.up[data-v-43b687fc]{color:var(--up)}.stat-value.down[data-v-43b687fc]{color:var(--down)}.charts-row[data-v-43b687fc]{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.chart-card[data-v-43b687fc]{background:var(--bg-surface);border-radius:8px;padding:12px;transition:background .3s}.chart[data-v-43b687fc]{width:100%;height:260px}.toolbar[data-v-43b687fc]{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.tabs[data-v-43b687fc]{gap:4px;display:flex}.tab-btn[data-v-43b687fc]{border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 16px;font-size:.85rem;transition:all .15s;display:flex}.tab-btn[data-v-43b687fc]:hover{color:var(--text-primary);background:var(--bg-surface)}.tab-btn.active[data-v-43b687fc]{color:var(--accent);border-color:var(--accent-bg);background:var(--bg-surface);font-weight:600}.tab-count[data-v-43b687fc]{background:var(--bg-hover);color:var(--text-muted);text-align:center;border-radius:8px;min-width:18px;padding:0 6px;font-size:.7rem;font-weight:600}.tab-btn.active .tab-count[data-v-43b687fc]{background:var(--accent-bg);color:var(--accent)}.filter-bar[data-v-43b687fc]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-input[data-v-43b687fc]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:6px;flex:1;min-width:160px;padding:6px 12px;font-size:.8rem}.search-input[data-v-43b687fc]::placeholder{color:var(--text-footer)}.filter-select[data-v-43b687fc]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;min-width:120px;padding:6px 10px;font-size:.8rem}.clear-btn[data-v-43b687fc]{border:1px solid var(--down-border);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:.75rem;transition:all .15s}.clear-btn[data-v-43b687fc]:hover{background:var(--down-bg)}.loading-state[data-v-43b687fc],.error-state[data-v-43b687fc]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-43b687fc]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-43b687fc}@keyframes spin-43b687fc{to{transform:rotate(360deg)}}.error-icon[data-v-43b687fc]{color:var(--down);font-size:2rem}.error-state[data-v-43b687fc]{color:var(--down)}.retry-btn[data-v-43b687fc]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-43b687fc]:hover{background:var(--down-bg)}.table-wrapper[data-v-43b687fc]{background:var(--bg-surface);border-radius:8px;transition:background .3s;overflow:hidden}.trades-table[data-v-43b687fc]{border-collapse:collapse;width:100%;font-size:.8rem}.trades-table th[data-v-43b687fc],.trades-table td[data-v-43b687fc]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:8px 10px}.trades-table th[data-v-43b687fc]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.7rem;position:sticky;top:0}.sortable[data-v-43b687fc]{cursor:pointer}.sortable[data-v-43b687fc]:hover{color:var(--accent)}.sort-icon[data-v-43b687fc]{opacity:.6;margin-left:4px;font-size:.65rem}.trades-table tbody tr[data-v-43b687fc]:hover{background:var(--bg-hover)}.num[data-v-43b687fc]{text-align:right;font-family:SF Mono,Fira Code,monospace}.pair[data-v-43b687fc]{font-family:SF Mono,Fira Code,monospace;font-weight:600}.side-badge[data-v-43b687fc]{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:600}.side-badge.long[data-v-43b687fc]{background:var(--up-bg);color:var(--up)}.side-badge.short[data-v-43b687fc]{background:var(--down-bg);color:var(--down)}.strategy[data-v-43b687fc]{color:var(--text-muted);font-size:.75rem}.date[data-v-43b687fc]{color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.exit-reason[data-v-43b687fc]{color:var(--text-footer);text-overflow:ellipsis;max-width:140px;font-size:.75rem;overflow:hidden}.up[data-v-43b687fc]{font-weight:600;color:var(--up)!important}.down[data-v-43b687fc]{font-weight:600;color:var(--down)!important}.empty-state[data-v-43b687fc]{text-align:center;color:var(--text-footer);padding:48px 20px;font-style:italic}@media (width<=900px){.charts-row[data-v-43b687fc]{grid-template-columns:1fr}}@media (width<=700px){.stats-bar[data-v-43b687fc],.filter-bar[data-v-43b687fc]{flex-direction:column}.search-input[data-v-43b687fc],.filter-select[data-v-43b687fc]{width:100%;min-height:40px}h1[data-v-43b687fc]{font-size:1.2rem}}@media (width<=480px){.header-controls[data-v-43b687fc]{flex-wrap:wrap;gap:6px}.refresh-btn[data-v-43b687fc]{min-height:36px;padding:6px 10px;font-size:.75rem}.tab-btn[data-v-43b687fc]{flex:1;justify-content:center;padding:8px 12px;font-size:.8rem}.tabs[data-v-43b687fc]{width:100%}.tab-btn[data-v-43b687fc]{flex:1}.search-input[data-v-43b687fc],.filter-select[data-v-43b687fc]{font-size:.9rem}.clear-btn[data-v-43b687fc]{min-height:36px}.table-wrapper[data-v-43b687fc]{-webkit-overflow-scrolling:touch;overflow-x:auto}.trades-table[data-v-43b687fc]{font-size:.7rem}.trades-table th[data-v-43b687fc],.trades-table td[data-v-43b687fc]{padding:6px}.stat-card[data-v-43b687fc]{padding:8px 12px}.stat-value[data-v-43b687fc]{font-size:1rem}}.models-page[data-v-4bd92119]{max-width:1200px;margin:0 auto}.header[data-v-4bd92119]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}h1[data-v-4bd92119]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.subtitle[data-v-4bd92119]{color:var(--text-footer);margin-top:4px;font-size:.85rem}.summary-badges[data-v-4bd92119]{flex-wrap:wrap;gap:8px;display:flex}.badge[data-v-4bd92119]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-muted);border-radius:6px;padding:4px 10px;font-family:SF Mono,Fira Code,monospace;font-size:.7rem}.toast[data-v-4bd92119]{background:var(--toast-bg);color:var(--text-inverse);z-index:1000;border-radius:6px;padding:10px 20px;font-size:.85rem;animation:3s ease-in-out fadeInOut-4bd92119;position:fixed;top:16px;right:16px}.toast.success[data-v-4bd92119]{background:var(--toast-success)}@keyframes fadeInOut-4bd92119{0%{opacity:0;transform:translateY(-10px)}10%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}.loading-state[data-v-4bd92119],.empty-state[data-v-4bd92119]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-4bd92119]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-4bd92119}@keyframes spin-4bd92119{to{transform:rotate(360deg)}}.table-wrapper[data-v-4bd92119]{border:1px solid var(--border-primary);border-radius:8px;overflow-x:auto}.model-table[data-v-4bd92119]{border-collapse:collapse;width:100%;min-width:900px;font-size:.8rem}.model-table th[data-v-4bd92119]{background:var(--bg-surface);color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;font-size:.7rem;font-weight:600}.model-table td[data-v-4bd92119]{border-bottom:1px solid var(--table-border);vertical-align:middle;padding:10px 12px}.model-table tbody tr[data-v-4bd92119]:hover{background:var(--bg-hover)}.model-table tbody tr:last-child td[data-v-4bd92119]{border-bottom:none}.model-name[data-v-4bd92119]{color:var(--text-primary);white-space:nowrap;font-weight:600}.type-tag[data-v-4bd92119]{background:var(--bg-hover);color:var(--accent);border-radius:4px;padding:2px 8px;font-family:SF Mono,Fira Code,monospace;font-size:.7rem}.status-badge[data-v-4bd92119]{text-transform:uppercase;white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.65rem;font-weight:600}.ready[data-v-4bd92119]{background:var(--up-bg);color:var(--up)}.training[data-v-4bd92119]{background:var(--warning-bg);color:var(--warning)}.failed[data-v-4bd92119]{background:var(--down-bg);color:var(--down)}.metric-th[data-v-4bd92119]{text-align:right!important}.metric-td[data-v-4bd92119]{text-align:right;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:.8rem;font-weight:600}.metric-td.good[data-v-4bd92119]{color:var(--up)}.metric-td.bad[data-v-4bd92119]{color:var(--down)}.training-period[data-v-4bd92119]{text-align:center;color:var(--text-muted);white-space:nowrap;font-size:.7rem;line-height:1.3}.arrow[data-v-4bd92119]{color:var(--border-primary);font-size:.6rem}.actions-cell[data-v-4bd92119]{white-space:nowrap;align-items:center;gap:6px;display:flex}.history-btn[data-v-4bd92119]{border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;transition:all .15s;display:flex}.history-btn[data-v-4bd92119]:hover{border-color:var(--accent);color:var(--accent)}.retrain-btn[data-v-4bd92119]{border:1px solid var(--warning);color:var(--warning);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:5px 12px;font-size:.7rem;font-weight:600;transition:all .15s}.retrain-btn[data-v-4bd92119]:hover:not(:disabled){background:var(--warning-bg)}.retrain-btn[data-v-4bd92119]:disabled{opacity:.4;cursor:not-allowed}.retrain-btn.retraining[data-v-4bd92119]{animation:1s infinite pulse-4bd92119}@keyframes pulse-4bd92119{0%,to{opacity:1}50%{opacity:.5}}.modal-overlay[data-v-4bd92119]{background:var(--modal-overlay);z-index:999;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal[data-v-4bd92119]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:12px;width:100%;max-width:600px;max-height:80vh;padding:20px;overflow-y:auto}.modal-header[data-v-4bd92119]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h2[data-v-4bd92119]{color:var(--accent);margin:0;font-size:1rem}.close-btn[data-v-4bd92119]{color:var(--text-footer);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.close-btn[data-v-4bd92119]:hover{color:var(--text-primary)}.history-list[data-v-4bd92119]{flex-direction:column;gap:10px;display:flex}.history-card[data-v-4bd92119]{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;padding:12px}.history-top[data-v-4bd92119]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.history-run[data-v-4bd92119]{color:var(--text-primary);font-size:.85rem;font-weight:600}.history-meta[data-v-4bd92119]{justify-content:space-between;padding:2px 0;font-size:.75rem;display:flex}.meta-label[data-v-4bd92119]{color:var(--text-footer)}.meta-value[data-v-4bd92119]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.history-metrics[data-v-4bd92119]{border-top:1px solid var(--border-primary);grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;padding-top:8px;display:grid}.metric[data-v-4bd92119]{flex-direction:column;display:flex}.metric-key[data-v-4bd92119]{color:var(--text-footer);text-transform:uppercase;font-size:.6rem}.metric-value[data-v-4bd92119]{color:var(--accent);font-family:SF Mono,Fira Code,monospace;font-size:.8rem;font-weight:600}@media (width<=768px){h1[data-v-4bd92119]{font-size:1.2rem}.header[data-v-4bd92119]{flex-direction:column}}@media (width<=600px){.summary-badges[data-v-4bd92119]{flex-direction:column;width:100%}.badge[data-v-4bd92119]{text-align:center;width:100%}}@media (width<=480px){.model-table[data-v-4bd92119]{font-size:.7rem}.model-table th[data-v-4bd92119],.model-table td[data-v-4bd92119]{padding:6px 8px}.actions-cell[data-v-4bd92119]{flex-direction:column;gap:4px}.history-btn[data-v-4bd92119]{width:100%;height:36px}.retrain-btn[data-v-4bd92119]{text-align:center;width:100%}.modal[data-v-4bd92119]{border-radius:8px;max-width:100%;max-height:90vh;margin:10px;padding:16px}.modal-header h2[data-v-4bd92119]{font-size:.9rem}.history-metrics[data-v-4bd92119]{grid-template-columns:1fr}.header[data-v-4bd92119]{flex-direction:column}.toast[data-v-4bd92119]{text-align:center;padding:8px 14px;font-size:.8rem;top:8px;left:8px;right:8px}}.backtest-page[data-v-8b4b48d0]{max-width:1260px;margin:0 auto}.header[data-v-8b4b48d0]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}h1[data-v-8b4b48d0]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-8b4b48d0]{align-items:center;gap:12px;display:flex}.refresh-btn[data-v-8b4b48d0]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-8b4b48d0]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-8b4b48d0]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-8b4b48d0]{animation:1s infinite pulse-8b4b48d0}@keyframes pulse-8b4b48d0{0%,to{opacity:1}50%{opacity:.6}}.selector-card[data-v-8b4b48d0]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;margin-bottom:16px;padding:12px 16px}.selector-header[data-v-8b4b48d0]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.selector-title[data-v-8b4b48d0]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:.8rem}.selector-actions[data-v-8b4b48d0]{gap:6px;display:flex}.action-btn[data-v-8b4b48d0]{border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:.7rem;transition:all .15s}.action-btn[data-v-8b4b48d0]:hover:not(:disabled){color:var(--accent);border-color:var(--accent-bg)}.action-btn[data-v-8b4b48d0]:disabled{opacity:.4;cursor:not-allowed}.file-list[data-v-8b4b48d0]{flex-wrap:wrap;gap:6px;display:flex}.file-item[data-v-8b4b48d0]{background:var(--bg-primary);cursor:pointer;border:1px solid #0000;border-radius:6px;flex:1 0 auto;align-items:center;gap:8px;min-width:200px;padding:8px 12px;transition:all .15s;display:flex}.file-item[data-v-8b4b48d0]:hover{border-color:var(--border-primary)}.file-item.selected[data-v-8b4b48d0]{border-color:var(--accent-bg);background:var(--bg-surface)}.file-item input[type=checkbox][data-v-8b4b48d0]{accent-color:var(--accent);flex-shrink:0}.file-info[data-v-8b4b48d0]{flex-direction:column;gap:2px;min-width:0;display:flex}.file-name[data-v-8b4b48d0]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Fira Code,monospace;font-size:.8rem;font-weight:600;overflow:hidden}.file-meta[data-v-8b4b48d0]{align-items:center;gap:6px;display:flex}.tag[data-v-8b4b48d0]{text-transform:uppercase;border-radius:3px;padding:1px 6px;font-size:.6rem;font-weight:600}.tag-qlib[data-v-8b4b48d0]{background:var(--accent-bg);color:var(--accent)}.tag-tuning[data-v-8b4b48d0]{background:var(--up-bg);color:var(--up)}.tag-overfit[data-v-8b4b48d0]{background:var(--warning-bg);color:var(--warning)}.file-ts[data-v-8b4b48d0]{color:var(--text-footer);font-family:SF Mono,Fira Code,monospace;font-size:.65rem}.empty-selector[data-v-8b4b48d0]{color:var(--text-footer);text-align:center;padding:12px 0;font-size:.85rem;font-style:italic}.stats-bar[data-v-8b4b48d0]{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.stat-card[data-v-8b4b48d0]{background:var(--bg-surface);border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:100px;padding:10px 16px;display:flex}.stat-label[data-v-8b4b48d0]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.stat-value[data-v-8b4b48d0]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:1rem;font-weight:700}.stat-value.up[data-v-8b4b48d0]{color:var(--up)}.stat-value.down[data-v-8b4b48d0]{color:var(--down)}.charts-row[data-v-8b4b48d0]{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.chart-card[data-v-8b4b48d0]{background:var(--bg-surface);border-radius:8px;padding:12px}.chart-title[data-v-8b4b48d0]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:.75rem}.chart[data-v-8b4b48d0]{width:100%;height:260px}.table-wrapper[data-v-8b4b48d0]{background:var(--bg-surface);border-radius:8px;overflow-x:auto}.compare-table[data-v-8b4b48d0]{border-collapse:collapse;width:100%;font-size:.8rem}.compare-table th[data-v-8b4b48d0],.compare-table td[data-v-8b4b48d0]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:8px 10px}.compare-table th[data-v-8b4b48d0]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.7rem;position:sticky;top:0}.compare-table tbody tr[data-v-8b4b48d0]:hover{background:var(--bg-hover)}.num[data-v-8b4b48d0]{text-align:right;font-family:SF Mono,Fira Code,monospace}.model-cell[data-v-8b4b48d0]{color:var(--accent);font-family:SF Mono,Fira Code,monospace;font-weight:600}.up[data-v-8b4b48d0]{font-weight:600;color:var(--up)!important}.down[data-v-8b4b48d0]{font-weight:600;color:var(--down)!important}.loading-state[data-v-8b4b48d0],.error-state[data-v-8b4b48d0]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-8b4b48d0]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-8b4b48d0}@keyframes spin-8b4b48d0{to{transform:rotate(360deg)}}.error-icon[data-v-8b4b48d0]{color:var(--down);font-size:2rem}.error-state[data-v-8b4b48d0]{color:var(--down)}.retry-btn[data-v-8b4b48d0]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-8b4b48d0]:hover{background:var(--down-bg)}.empty-state[data-v-8b4b48d0]{text-align:center;color:var(--text-footer);padding:48px 20px;font-style:italic}@media (width<=900px){.charts-row[data-v-8b4b48d0]{grid-template-columns:1fr}}@media (width<=700px){.stats-bar[data-v-8b4b48d0]{flex-direction:column}h1[data-v-8b4b48d0]{font-size:1.2rem}.file-item[data-v-8b4b48d0]{min-width:100%}}@media (width<=480px){.header-controls[data-v-8b4b48d0]{flex-wrap:wrap;gap:6px}.refresh-btn[data-v-8b4b48d0]{min-height:36px;padding:6px 10px;font-size:.75rem}.chart[data-v-8b4b48d0]{height:200px}.chart-card[data-v-8b4b48d0]{padding:8px}.selector-card[data-v-8b4b48d0]{padding:10px 12px}.selector-header[data-v-8b4b48d0]{flex-direction:column;align-items:flex-start;gap:6px}}.backtest-comparison-page[data-v-04c384d9]{max-width:1260px;margin:0 auto}.page-header[data-v-04c384d9]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}h1[data-v-04c384d9]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-04c384d9]{align-items:center;gap:12px;display:flex}.refresh-btn[data-v-04c384d9]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-04c384d9]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-04c384d9]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-04c384d9]{animation:1s infinite pulse-04c384d9}@keyframes pulse-04c384d9{0%,to{opacity:1}50%{opacity:.6}}.selector-card[data-v-04c384d9]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;margin-bottom:16px;padding:12px 16px;position:relative}.selector-header[data-v-04c384d9]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.selector-title[data-v-04c384d9]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:.8rem}.selector-actions[data-v-04c384d9]{gap:6px;display:flex}.action-btn[data-v-04c384d9]{border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:.7rem;transition:all .15s}.action-btn[data-v-04c384d9]:hover:not(:disabled){color:var(--accent);border-color:var(--accent-bg)}.action-btn[data-v-04c384d9]:disabled{opacity:.4;cursor:not-allowed}.dropdown-trigger[data-v-04c384d9]{background:var(--bg-primary);border:1px solid var(--border-primary);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;min-height:40px;padding:8px 12px;transition:border-color .15s;display:flex}.dropdown-trigger[data-v-04c384d9]:hover{border-color:var(--accent)}.dropdown-selection[data-v-04c384d9]{flex-wrap:wrap;flex:1;gap:4px;min-width:0;display:flex}.dropdown-placeholder[data-v-04c384d9]{color:var(--text-footer);font-size:.85rem}.selection-tag[data-v-04c384d9]{background:var(--accent-bg);border:1px solid var(--accent-bg);color:var(--accent);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.tag-remove[data-v-04c384d9]{cursor:pointer;opacity:.6;margin-left:2px;font-size:1rem;line-height:1}.tag-remove[data-v-04c384d9]:hover{opacity:1}.dropdown-arrow[data-v-04c384d9]{color:var(--text-footer);flex-shrink:0;margin-left:8px;font-size:.7rem;transition:transform .2s}.dropdown-arrow.open[data-v-04c384d9]{transform:rotate(180deg)}.dropdown-list[data-v-04c384d9]{z-index:50;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;flex-direction:column;max-height:320px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #0000004d}.dropdown-search[data-v-04c384d9]{border-bottom:1px solid var(--border-primary);padding:8px 10px}.search-input[data-v-04c384d9]{background:var(--bg-primary);border:1px solid var(--border-primary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;outline:none;padding:8px 10px;font-size:.8rem}.search-input[data-v-04c384d9]:focus{border-color:var(--accent)}.dropdown-items[data-v-04c384d9]{flex:1;padding:4px 0;overflow-y:auto}.dropdown-item[data-v-04c384d9]{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;transition:background .1s;display:flex}.dropdown-item[data-v-04c384d9]:hover{background:var(--bg-hover)}.dropdown-item.selected[data-v-04c384d9]{background:var(--accent-bg)}.dropdown-item input[type=checkbox][data-v-04c384d9]{accent-color:var(--accent);flex-shrink:0}.item-info[data-v-04c384d9]{flex-direction:column;gap:2px;min-width:0;display:flex}.item-name[data-v-04c384d9]{color:var(--text-primary);font-size:.8rem;font-weight:600}.item-meta[data-v-04c384d9]{color:var(--text-footer);font-family:SF Mono,Fira Code,monospace;font-size:.65rem}.empty-filter[data-v-04c384d9]{text-align:center;color:var(--text-footer);padding:20px;font-size:.8rem;font-style:italic}.chart-wrapper[data-v-04c384d9]{background:var(--bg-surface);border-radius:8px;margin-bottom:16px;padding:16px}.chart-section-title[data-v-04c384d9]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;font-size:.75rem}.equity-chart[data-v-04c384d9]{width:100%;height:400px}.chart-empty[data-v-04c384d9]{height:200px;color:var(--text-footer);justify-content:center;align-items:center;font-style:italic;display:flex}.table-section[data-v-04c384d9]{margin-top:16px}.section-title[data-v-04c384d9]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;font-size:.75rem}.table-wrapper[data-v-04c384d9]{background:var(--bg-surface);border-radius:8px;overflow-x:auto}.compare-table[data-v-04c384d9]{border-collapse:collapse;width:100%;font-size:.8rem}.compare-table th[data-v-04c384d9],.compare-table td[data-v-04c384d9]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:8px 10px}.compare-table th[data-v-04c384d9]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.7rem;position:sticky;top:0}.compare-table tbody tr[data-v-04c384d9]:hover{background:var(--bg-hover)}.num[data-v-04c384d9]{text-align:right;font-family:SF Mono,Fira Code,monospace}.up[data-v-04c384d9]{font-weight:600;color:var(--up)!important}.down[data-v-04c384d9]{font-weight:600;color:var(--down)!important}.strategy-indicator[data-v-04c384d9]{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.loading-state[data-v-04c384d9],.error-state[data-v-04c384d9]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-04c384d9]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-04c384d9}@keyframes spin-04c384d9{to{transform:rotate(360deg)}}.error-icon[data-v-04c384d9]{color:var(--down);font-size:2rem}.error-state[data-v-04c384d9]{color:var(--down)}.retry-btn[data-v-04c384d9]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-04c384d9]:hover{background:var(--down-bg)}.empty-state[data-v-04c384d9]{text-align:center;color:var(--text-footer);padding:48px 20px;font-style:italic}@media (width<=900px){.equity-chart[data-v-04c384d9]{height:300px}}@media (width<=700px){h1[data-v-04c384d9]{font-size:1.2rem}.selector-header[data-v-04c384d9]{flex-direction:column;align-items:flex-start;gap:6px}}@media (width<=480px){.header-controls[data-v-04c384d9]{flex-wrap:wrap;gap:6px}.refresh-btn[data-v-04c384d9]{min-height:36px;padding:6px 10px;font-size:.75rem}.equity-chart[data-v-04c384d9]{height:220px}.chart-wrapper[data-v-04c384d9]{padding:8px}.selector-card[data-v-04c384d9]{padding:10px 12px}}.equity-curve-page[data-v-925372bf]{max-width:1200px;margin:0 auto}.page-header[data-v-925372bf]{margin-bottom:16px}.page-header h1[data-v-925372bf]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.stats-row[data-v-925372bf]{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.stat-card[data-v-925372bf]{background:var(--bg-surface);border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:120px;padding:14px 16px;transition:background .3s;display:flex}.stat-label[data-v-925372bf]{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:.7rem}.stat-value[data-v-925372bf]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:1.2rem;font-weight:700}.stat-value.positive[data-v-925372bf]{color:var(--up,#2ecc71)}.stat-value.negative[data-v-925372bf]{color:var(--down,#e74c3c)}.period-bar[data-v-925372bf]{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.period-btn[data-v-925372bf]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;text-align:center;border-radius:6px;min-width:40px;padding:6px 14px;font-size:.8rem;font-weight:500;transition:all .15s}.period-btn[data-v-925372bf]:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-primary)}.period-btn.active[data-v-925372bf]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.chart-wrapper[data-v-925372bf]{background:var(--bg-surface);border-radius:8px;margin-bottom:12px;padding:16px;transition:background .3s}.chart[data-v-925372bf]{width:100%;height:400px}.chart-empty[data-v-925372bf]{height:200px;color:var(--text-footer);justify-content:center;align-items:center;font-style:italic;display:flex}.loading-state[data-v-925372bf],.error-state[data-v-925372bf]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-925372bf]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-925372bf}@keyframes spin-925372bf{to{transform:rotate(360deg)}}.error-icon[data-v-925372bf]{color:var(--down);font-size:2rem}.error-state[data-v-925372bf]{color:var(--down)}.retry-btn[data-v-925372bf]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-925372bf]:hover{background:var(--down-bg)}.period-summary[data-v-925372bf]{color:var(--text-footer);text-align:center;padding:8px 0 16px;font-size:.8rem}@media (width<=768px){.stats-row[data-v-925372bf]{flex-flow:wrap}.stat-card[data-v-925372bf]{flex:auto;min-width:calc(50% - 6px)}.stat-value[data-v-925372bf]{font-size:1rem}.chart[data-v-925372bf]{height:280px}.page-header h1[data-v-925372bf]{font-size:1.2rem}.period-btn[data-v-925372bf]{min-height:36px;padding:6px 12px}}@media (width<=480px){.page-header h1[data-v-925372bf]{font-size:1.05rem}.stat-card[data-v-925372bf]{min-width:100%}.chart[data-v-925372bf]{height:220px}.chart-wrapper[data-v-925372bf]{padding:10px}}.rankings-page[data-v-b3fdff40]{max-width:1260px;margin:0 auto}.header[data-v-b3fdff40]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}h1[data-v-b3fdff40]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-b3fdff40]{align-items:center;gap:12px;display:flex}.refresh-btn[data-v-b3fdff40]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-b3fdff40]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-b3fdff40]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-b3fdff40]{animation:1s infinite pulse-b3fdff40}@keyframes pulse-b3fdff40{0%,to{opacity:1}50%{opacity:.6}}.period-bar[data-v-b3fdff40]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.period-label[data-v-b3fdff40]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem}.period-pills[data-v-b3fdff40]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;gap:4px;padding:3px;display:flex}.period-pill[data-v-b3fdff40]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;min-height:32px;padding:5px 14px;font-size:.78rem;font-weight:600;transition:all .15s}.period-pill[data-v-b3fdff40]:hover{color:var(--text-primary);background:var(--bg-hover)}.period-pill.active[data-v-b3fdff40]{background:var(--accent);color:#fff}.table-wrapper[data-v-b3fdff40]{background:var(--bg-surface);border-radius:8px;overflow-x:auto}.rankings-table[data-v-b3fdff40]{border-collapse:collapse;width:100%;font-size:.82rem}.rankings-table th[data-v-b3fdff40],.rankings-table td[data-v-b3fdff40]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:10px 12px}.rankings-table th[data-v-b3fdff40]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.7rem;position:sticky;top:0}.rankings-table th.sortable[data-v-b3fdff40]{cursor:pointer;transition:color .15s}.rankings-table th.sortable[data-v-b3fdff40]:hover{color:var(--accent)}.sort-icon[data-v-b3fdff40]{opacity:.5;margin-left:3px;font-size:.65rem}th.sortable:hover .sort-icon[data-v-b3fdff40]{opacity:1}.rank-row[data-v-b3fdff40]{cursor:pointer;transition:background .12s}.rank-row[data-v-b3fdff40]:hover{background:var(--bg-hover)}.rank-row:last-child td[data-v-b3fdff40]{border-bottom:none}.rank-col[data-v-b3fdff40]{width:38px}.rank-cell[data-v-b3fdff40]{text-align:center}.rank-badge[data-v-b3fdff40]{color:var(--text-muted);min-width:24px;font-family:SF Mono,Fira Code,monospace;font-size:1.1rem;font-weight:700;display:inline-block}.name-cell[data-v-b3fdff40]{flex-direction:column;gap:2px;min-width:140px;display:flex}.strategy-name[data-v-b3fdff40]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:.82rem;font-weight:600}.strategy-market[data-v-b3fdff40]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.3px;font-size:.65rem}.num[data-v-b3fdff40]{text-align:right;font-family:SF Mono,Fira Code,monospace;font-weight:600}.num.up[data-v-b3fdff40]{color:var(--up)}.num.down[data-v-b3fdff40]{color:var(--down)}.loading-state[data-v-b3fdff40],.error-state[data-v-b3fdff40]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-b3fdff40]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-b3fdff40}@keyframes spin-b3fdff40{to{transform:rotate(360deg)}}.error-icon[data-v-b3fdff40]{color:var(--down);font-size:2rem}.error-state[data-v-b3fdff40]{color:var(--down)}.retry-btn[data-v-b3fdff40]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-b3fdff40]:hover{background:var(--down-bg)}.empty-state[data-v-b3fdff40]{text-align:center;color:var(--text-footer);padding:48px 20px;font-style:italic}@media (width<=768px){h1[data-v-b3fdff40]{font-size:1.2rem}.rankings-table th[data-v-b3fdff40],.rankings-table td[data-v-b3fdff40]{padding:8px;font-size:.75rem}.strategy-name[data-v-b3fdff40]{font-size:.78rem}.period-pill[data-v-b3fdff40]{padding:4px 10px;font-size:.72rem}}@media (width<=480px){.header-controls[data-v-b3fdff40]{flex-wrap:wrap;gap:6px}.refresh-btn[data-v-b3fdff40]{min-height:36px;padding:6px 10px;font-size:.75rem}.period-bar[data-v-b3fdff40]{flex-wrap:wrap;gap:8px}}.detail-page[data-v-1ed3b9cc]{max-width:1260px;margin:0 auto}.back-btn[data-v-1ed3b9cc]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;border-radius:6px;margin-bottom:16px;padding:6px 14px;font-size:.82rem;transition:all .15s}.back-btn[data-v-1ed3b9cc]:hover{color:var(--accent);border-color:var(--accent);background:var(--bg-hover)}.detail-header[data-v-1ed3b9cc]{margin-bottom:20px}.detail-title-section[data-v-1ed3b9cc]{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}h1[data-v-1ed3b9cc]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.detail-meta[data-v-1ed3b9cc]{align-items:center;gap:8px;display:flex}.meta-market[data-v-1ed3b9cc]{background:var(--accent-bg);color:var(--accent);text-transform:uppercase;letter-spacing:.3px;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:600}.meta-period[data-v-1ed3b9cc]{background:var(--bg-hover);color:var(--text-muted);border-radius:4px;padding:2px 8px;font-family:SF Mono,Fira Code,monospace;font-size:.7rem;font-weight:600}.detail-desc[data-v-1ed3b9cc]{color:var(--text-muted);margin-top:4px;font-size:.85rem;line-height:1.5}.metrics-grid[data-v-1ed3b9cc]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:20px;display:grid}.metric-card[data-v-1ed3b9cc]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.metric-label[data-v-1ed3b9cc]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.metric-value[data-v-1ed3b9cc]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:1.1rem;font-weight:700}.metric-value.up[data-v-1ed3b9cc]{color:var(--up)}.metric-value.down[data-v-1ed3b9cc]{color:var(--down)}.charts-row[data-v-1ed3b9cc]{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.chart-card[data-v-1ed3b9cc]{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;padding:12px}.chart-title[data-v-1ed3b9cc]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:.7rem}.chart[data-v-1ed3b9cc]{width:100%;height:280px}.section-title[data-v-1ed3b9cc]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:.78rem}.table-wrapper[data-v-1ed3b9cc]{background:var(--bg-surface);border-radius:8px;margin-bottom:20px;overflow-x:auto}.trades-table[data-v-1ed3b9cc]{border-collapse:collapse;width:100%;font-size:.8rem}.trades-table th[data-v-1ed3b9cc],.trades-table td[data-v-1ed3b9cc]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:8px 10px}.trades-table th[data-v-1ed3b9cc]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.65rem;position:sticky;top:0}.trades-table tbody tr[data-v-1ed3b9cc]:hover{background:var(--bg-hover)}.trades-table tbody tr:last-child td[data-v-1ed3b9cc]{border-bottom:none}.num[data-v-1ed3b9cc]{text-align:right;font-family:SF Mono,Fira Code,monospace;font-weight:600}.num.up[data-v-1ed3b9cc]{color:var(--up)}.num.down[data-v-1ed3b9cc]{color:var(--down)}.pair-cell[data-v-1ed3b9cc]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-weight:600}.date-cell[data-v-1ed3b9cc]{color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.side-badge[data-v-1ed3b9cc]{text-transform:uppercase;border-radius:4px;padding:1px 7px;font-size:.65rem;font-weight:600}.side-long[data-v-1ed3b9cc]{background:var(--up-bg);color:var(--up)}.side-short[data-v-1ed3b9cc]{background:var(--down-bg);color:var(--down)}.empty-section[data-v-1ed3b9cc]{text-align:center;color:var(--text-footer);padding:32px 16px;font-style:italic}.loading-state[data-v-1ed3b9cc],.error-state[data-v-1ed3b9cc]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-1ed3b9cc]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-1ed3b9cc}@keyframes spin-1ed3b9cc{to{transform:rotate(360deg)}}.error-icon[data-v-1ed3b9cc]{color:var(--down);font-size:2rem}.error-state[data-v-1ed3b9cc]{color:var(--down)}.retry-btn[data-v-1ed3b9cc]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-1ed3b9cc]:hover{background:var(--down-bg)}@media (width<=768px){h1[data-v-1ed3b9cc]{font-size:1.2rem}.charts-row[data-v-1ed3b9cc]{grid-template-columns:1fr}.metrics-grid[data-v-1ed3b9cc]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.chart[data-v-1ed3b9cc]{height:220px}}@media (width<=480px){.metrics-grid[data-v-1ed3b9cc]{grid-template-columns:repeat(2,1fr);gap:8px}.metric-card[data-v-1ed3b9cc]{padding:10px}.metric-value[data-v-1ed3b9cc]{font-size:.95rem}.chart[data-v-1ed3b9cc]{height:200px}}.auth-page[data-v-37f1dd25]{justify-content:center;align-items:center;min-height:80vh;display:flex}.auth-card[data-v-37f1dd25]{background:var(--bg-card,#1a2a3a);border:1px solid var(--border-primary,#2a3a4a);border-radius:12px;width:100%;max-width:400px;padding:40px 36px}.auth-brand[data-v-37f1dd25]{text-align:center;color:var(--accent,#00bcd4);margin-bottom:24px;font-size:1.5rem;font-weight:800}.auth-title[data-v-37f1dd25]{text-align:center;color:var(--text-primary,#e0e0e0);margin-bottom:28px;font-size:1.3rem;font-weight:600}.auth-form[data-v-37f1dd25]{flex-direction:column;gap:18px;display:flex}.field[data-v-37f1dd25]{flex-direction:column;gap:6px;display:flex}.field label[data-v-37f1dd25]{color:var(--text-secondary,#89a);font-size:.85rem;font-weight:500}.field input[data-v-37f1dd25]{border:1px solid var(--border-primary,#2a3a4a);background:var(--bg-surface,#0f1923);color:var(--text-primary,#e0e0e0);border-radius:8px;padding:10px 14px;font-size:.95rem;transition:border-color .15s}.field input[data-v-37f1dd25]:focus{border-color:var(--accent,#00bcd4);outline:none}.auth-error[data-v-37f1dd25]{color:var(--down,#e74c3c);background:#e74c3c26;border-radius:8px;padding:10px 14px;font-size:.85rem}.auth-btn[data-v-37f1dd25]{background:var(--accent,#00bcd4);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:1rem;font-weight:600;transition:opacity .15s}.auth-btn[data-v-37f1dd25]:hover{opacity:.9}.auth-btn[data-v-37f1dd25]:disabled{opacity:.6;cursor:not-allowed}.auth-footer-text[data-v-37f1dd25]{text-align:center;color:var(--text-secondary,#89a);margin-top:20px;font-size:.85rem}.auth-footer-text a[data-v-37f1dd25]{color:var(--accent,#00bcd4);font-weight:500;text-decoration:none}.auth-page[data-v-7adff425]{justify-content:center;align-items:center;min-height:80vh;display:flex}.auth-card[data-v-7adff425]{background:var(--bg-card,#1a2a3a);border:1px solid var(--border-primary,#2a3a4a);border-radius:12px;width:100%;max-width:400px;padding:40px 36px}.auth-brand[data-v-7adff425]{text-align:center;color:var(--accent,#00bcd4);margin-bottom:24px;font-size:1.5rem;font-weight:800}.auth-title[data-v-7adff425]{text-align:center;color:var(--text-primary,#e0e0e0);margin-bottom:28px;font-size:1.3rem;font-weight:600}.auth-form[data-v-7adff425]{flex-direction:column;gap:18px;display:flex}.field[data-v-7adff425]{flex-direction:column;gap:6px;display:flex}.field label[data-v-7adff425]{color:var(--text-secondary,#89a);font-size:.85rem;font-weight:500}.field input[data-v-7adff425]{border:1px solid var(--border-primary,#2a3a4a);background:var(--bg-surface,#0f1923);color:var(--text-primary,#e0e0e0);border-radius:8px;padding:10px 14px;font-size:.95rem;transition:border-color .15s}.field input[data-v-7adff425]:focus{border-color:var(--accent,#00bcd4);outline:none}.auth-error[data-v-7adff425]{color:var(--down,#e74c3c);background:#e74c3c26;border-radius:8px;padding:10px 14px;font-size:.85rem}.auth-btn[data-v-7adff425]{background:var(--accent,#00bcd4);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:1rem;font-weight:600;transition:opacity .15s}.auth-btn[data-v-7adff425]:hover{opacity:.9}.auth-btn[data-v-7adff425]:disabled{opacity:.6;cursor:not-allowed}.auth-footer-text[data-v-7adff425]{text-align:center;color:var(--text-secondary,#89a);margin-top:20px;font-size:.85rem}.auth-footer-text a[data-v-7adff425]{color:var(--accent,#00bcd4);font-weight:500;text-decoration:none}.marketplace[data-v-701e68ec]{max-width:1200px;margin:0 auto}.page-header[data-v-701e68ec]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}h1[data-v-701e68ec]{color:var(--accent,#00bcd4);margin:0 0 4px;font-size:1.5rem;font-weight:700}.page-desc[data-v-701e68ec]{color:var(--text-secondary,#89a);margin:0;font-size:.85rem}.header-right[data-v-701e68ec]{flex-shrink:0;align-items:center;display:flex}.subscribed-badge[data-v-701e68ec]{background:var(--up-bg,#1a3a2a);color:var(--up,#2ecc71);border:1px solid var(--up-bg,#1a3a2a);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.toast[data-v-701e68ec]{z-index:1000;border-radius:8px;padding:12px 20px;font-size:.85rem;font-weight:500;transition:all .3s;position:fixed;top:20px;right:20px;box-shadow:0 4px 16px #0000004d}.toast-success[data-v-701e68ec]{background:var(--up-bg,#1a3a2a);color:var(--up,#2ecc71);border:1px solid var(--up,#2ecc71)}.toast-error[data-v-701e68ec]{background:var(--down-bg,#3a1a1a);color:var(--down,#e74c3c);border:1px solid var(--down,#e74c3c)}.toast-enter-active[data-v-701e68ec],.toast-leave-active[data-v-701e68ec]{transition:opacity .3s,transform .3s}.toast-enter-from[data-v-701e68ec],.toast-leave-to[data-v-701e68ec]{opacity:0;transform:translateY(-10px)}.filters-bar[data-v-701e68ec]{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.search-wrapper[data-v-701e68ec]{flex:1;min-width:200px;max-width:320px;position:relative}.search-icon[data-v-701e68ec]{opacity:.5;pointer-events:none;font-size:.85rem;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input[data-v-701e68ec]{background:var(--bg-primary,#0f1923);border:1px solid var(--border-primary,#2a3a4a);width:100%;color:var(--text-primary,#e0e0e0);border-radius:8px;outline:none;padding:10px 12px 10px 36px;font-family:inherit;font-size:.85rem;transition:border-color .15s}.search-input[data-v-701e68ec]:focus{border-color:var(--accent,#00bcd4)}.search-input[data-v-701e68ec]::placeholder{color:var(--text-placeholder,#3a4a5a)}.filter-selects[data-v-701e68ec]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-select[data-v-701e68ec]{background:var(--bg-primary,#0f1923);border:1px solid var(--border-primary,#2a3a4a);color:var(--text-primary,#e0e0e0);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899aa' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:8px;outline:none;min-width:130px;padding:10px 32px 10px 12px;font-family:inherit;font-size:.82rem;transition:border-color .15s}.filter-select[data-v-701e68ec]:focus{border-color:var(--accent,#00bcd4)}.btn-clear[data-v-701e68ec]{border:1px solid var(--border-primary,#2a3a4a);color:var(--text-secondary,#89a);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:.78rem;transition:all .15s}.btn-clear[data-v-701e68ec]:hover{border-color:var(--accent,#00bcd4);color:var(--accent,#00bcd4)}.loading-state[data-v-701e68ec]{color:var(--text-secondary,#89a);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 20px;display:flex}.spinner[data-v-701e68ec]{border:3px solid var(--border-primary,#2a3a4a);border-top:3px solid var(--accent,#00bcd4);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin-701e68ec}@keyframes spin-701e68ec{to{transform:rotate(360deg)}}.empty-state[data-v-701e68ec]{color:var(--text-footer,#678);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.empty-icon[data-v-701e68ec]{opacity:.4;font-size:2.5rem}.strategies-grid[data-v-701e68ec]{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}.strategy-card[data-v-701e68ec]{background:var(--bg-surface,#1a2733);border:1px solid var(--border-primary,#2a3a4a);border-radius:12px;flex-direction:column;gap:14px;padding:20px;transition:all .2s;display:flex;position:relative;overflow:hidden}.strategy-card[data-v-701e68ec]:hover{border-color:var(--accent,#00bcd4);transform:translateY(-2px);box-shadow:0 4px 20px #00bcd414}.strategy-card.card-subscribed[data-v-701e68ec]{border-color:var(--up,#2ecc71);background:linear-gradient(135deg, var(--bg-surface,#1a2733) 0%, var(--up-bg,#0f2215) 100%)}.strategy-card.card-subscribed[data-v-701e68ec]:before{content:"";background:linear-gradient(135deg, transparent 50%, var(--up,#2ecc71) 50%);opacity:.15;width:48px;height:48px;position:absolute;top:0;right:0}.card-header[data-v-701e68ec]{flex-direction:column;gap:8px;display:flex}.card-title-row[data-v-701e68ec]{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-title[data-v-701e68ec]{color:var(--text-primary,#e0e0e0);margin:0;font-size:1.05rem;font-weight:700;line-height:1.3}.status-badge[data-v-701e68ec]{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:.68rem;font-weight:600}.status-active[data-v-701e68ec]{background:var(--up-bg,#1a3a2a);color:var(--up,#2ecc71);border:1px solid var(--up-bg,#1a3a2a)}.status-draft[data-v-701e68ec]{background:var(--warning-bg,#3a2a1a);color:var(--warning,#f39c12);border:1px solid var(--warning-bg,#3a2a1a)}.status-archived[data-v-701e68ec]{background:var(--bg-hover,#1e2a35);color:var(--text-footer,#678);border:1px solid var(--border-primary,#2a3a4a)}.card-meta[data-v-701e68ec]{flex-wrap:wrap;gap:6px;display:flex}.meta-tag[data-v-701e68ec]{background:var(--bg-primary,#0f1923);color:var(--text-secondary,#89a);border:1px solid var(--border-primary,#2a3a4a);white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:.7rem}.card-desc[data-v-701e68ec]{color:var(--text-secondary,#89a);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8rem;line-height:1.5;display:-webkit-box;overflow:hidden}.metrics-grid[data-v-701e68ec]{background:var(--bg-primary,#0f1923);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;display:grid}.metric[data-v-701e68ec]{text-align:center;flex-direction:column;gap:2px;display:flex}.metric-label[data-v-701e68ec]{color:var(--text-footer,#678);text-transform:uppercase;letter-spacing:.3px;font-size:.65rem;font-weight:500}.metric-value[data-v-701e68ec]{color:var(--text-primary,#e0e0e0);font-family:SF Mono,Fira Code,monospace;font-size:.95rem;font-weight:700}.metric-excellent[data-v-701e68ec]{color:var(--up,#2ecc71)}.metric-good[data-v-701e68ec]{color:var(--accent,#00bcd4)}.metric-ok[data-v-701e68ec]{color:var(--warning,#f39c12)}.metric-weak[data-v-701e68ec]{color:var(--text-footer,#678)}.metric-positive[data-v-701e68ec]{color:var(--up,#2ecc71)}.metric-negative[data-v-701e68ec]{color:var(--down,#e74c3c)}.card-footer[data-v-701e68ec]{justify-content:space-between;align-items:center;padding-top:4px;display:flex}.version-label[data-v-701e68ec]{color:var(--text-footer,#678);font-family:SF Mono,Fira Code,monospace;font-size:.72rem}.subscribe-btn[data-v-701e68ec]{cursor:pointer;border:1px solid var(--accent,#00bcd4);color:var(--accent,#00bcd4);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.subscribe-btn[data-v-701e68ec]:hover:not(:disabled){background:#00bcd41a}.subscribe-btn[data-v-701e68ec]:disabled{opacity:.4;cursor:not-allowed}.subscribe-btn.subscribed[data-v-701e68ec]{background:var(--up,#2ecc71);color:#0f1923;border-color:var(--up,#2ecc71)}.subscribe-btn.subscribed[data-v-701e68ec]:hover{color:var(--down,#e74c3c);border-color:var(--down,#e74c3c);background:0 0}.check-icon[data-v-701e68ec]{font-size:.9rem;font-weight:700}@media (width<=850px){.strategies-grid[data-v-701e68ec]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (width<=700px){.filters-bar[data-v-701e68ec]{flex-direction:column;align-items:stretch}.search-wrapper[data-v-701e68ec]{max-width:100%}.filter-selects[data-v-701e68ec]{width:100%}.filter-select[data-v-701e68ec]{flex:1;min-width:0}}@media (width<=480px){h1[data-v-701e68ec]{font-size:1.2rem}.strategies-grid[data-v-701e68ec]{grid-template-columns:1fr}.metrics-grid[data-v-701e68ec]{grid-template-columns:repeat(2,1fr)}.filter-selects[data-v-701e68ec],.page-header[data-v-701e68ec]{flex-direction:column}.subscribed-badge[data-v-701e68ec]{align-self:flex-start}}.pnl-page[data-v-492d2d82]{max-width:1260px;margin:0 auto}.header[data-v-492d2d82]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}h1[data-v-492d2d82]{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.header-controls[data-v-492d2d82]{align-items:center;gap:12px;display:flex}.refresh-btn[data-v-492d2d82]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8rem;transition:all .15s}.refresh-btn[data-v-492d2d82]:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.refresh-btn[data-v-492d2d82]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.refreshing[data-v-492d2d82]{animation:1s infinite pulse-492d2d82}@keyframes pulse-492d2d82{0%,to{opacity:1}50%{opacity:.6}}.stats-bar[data-v-492d2d82]{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.stat-card[data-v-492d2d82]{background:var(--bg-surface);border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:100px;padding:10px 16px;display:flex}.stat-label[data-v-492d2d82]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.stat-value[data-v-492d2d82]{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;font-size:1rem;font-weight:700}.stat-value.up[data-v-492d2d82]{color:var(--up)!important}.stat-value.down[data-v-492d2d82]{color:var(--down)!important}.chart-card[data-v-492d2d82]{background:var(--bg-surface);border-radius:8px;margin-bottom:12px;padding:12px}.chart-title[data-v-492d2d82]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:.75rem}.chart[data-v-492d2d82]{width:100%;height:300px}.table-wrapper[data-v-492d2d82]{background:var(--bg-surface);border-radius:8px;margin-bottom:16px;overflow-x:auto}.detail-table[data-v-492d2d82]{border-collapse:collapse;width:100%;font-size:.8rem}.detail-table th[data-v-492d2d82],.detail-table td[data-v-492d2d82]{text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:8px 10px}.detail-table th[data-v-492d2d82]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-surface);z-index:1;font-size:.7rem;position:sticky;top:0}.detail-table tbody tr[data-v-492d2d82]:hover{background:var(--bg-hover)}.num[data-v-492d2d82]{text-align:right;font-family:SF Mono,Fira Code,monospace}.strategy-name[data-v-492d2d82]{color:var(--accent);font-family:SF Mono,Fira Code,monospace;font-weight:600}.up[data-v-492d2d82]{font-weight:600;color:var(--up)!important}.down[data-v-492d2d82]{font-weight:600;color:var(--down)!important}.loading-state[data-v-492d2d82],.error-state[data-v-492d2d82]{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner[data-v-492d2d82]{border:3px solid var(--spinner-track);border-top:3px solid var(--spinner-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-492d2d82}@keyframes spin-492d2d82{to{transform:rotate(360deg)}}.error-icon[data-v-492d2d82]{color:var(--down);font-size:2rem}.error-state[data-v-492d2d82]{color:var(--down)}.retry-btn[data-v-492d2d82]{border:1px solid var(--down);color:var(--down);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:.85rem}.retry-btn[data-v-492d2d82]:hover{background:var(--down-bg)}.empty-state[data-v-492d2d82]{text-align:center;color:var(--text-footer);padding:48px 20px;font-style:italic}@media (width<=900px){.stats-bar[data-v-492d2d82]{flex-direction:column}.chart[data-v-492d2d82]{height:250px}}@media (width<=700px){h1[data-v-492d2d82]{font-size:1.2rem}.chart[data-v-492d2d82]{height:220px}}@media (width<=480px){.header-controls[data-v-492d2d82]{flex-wrap:wrap;gap:6px}.refresh-btn[data-v-492d2d82]{min-height:36px;padding:6px 10px;font-size:.75rem}.chart[data-v-492d2d82]{height:200px}.chart-card[data-v-492d2d82]{padding:8px}}.sidebar[data-v-12d4c3ac]{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:100;flex-direction:column;width:220px;height:100vh;transition:transform .3s,background .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-brand[data-v-12d4c3ac]{border-bottom:1px solid var(--sidebar-border);cursor:pointer;align-items:center;gap:10px;padding:20px 16px 16px;transition:opacity .15s;display:flex}.sidebar-brand[data-v-12d4c3ac]:hover{opacity:.8}.brand-icon[data-v-12d4c3ac]{background:var(--sidebar-brand-bg);color:var(--sidebar-brand-text);letter-spacing:-.5px;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;font-weight:800;transition:background .3s,color .3s;display:flex}.brand-label[data-v-12d4c3ac]{color:var(--sidebar-brand-label);font-size:1.05rem;font-weight:700;transition:color .3s}.nav-list[data-v-12d4c3ac]{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex}.nav-item[data-v-12d4c3ac]{cursor:pointer;color:var(--sidebar-item-color);-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:12px;min-height:44px;padding:10px 14px;font-size:.9rem;transition:all .15s;display:flex}.nav-item[data-v-12d4c3ac]:hover{background:var(--sidebar-item-hover-bg);color:var(--sidebar-item-hover-text)}.nav-item.active[data-v-12d4c3ac]{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.nav-item.active .nav-icon[data-v-12d4c3ac]{color:var(--sidebar-active-text)}.nav-icon[data-v-12d4c3ac]{text-align:center;flex-shrink:0;width:20px;font-size:1rem}.nav-label[data-v-12d4c3ac]{white-space:nowrap}.user-section[data-v-12d4c3ac]{border-top:1px solid var(--sidebar-footer-border);padding:12px 16px 8px}.user-info[data-v-12d4c3ac]{align-items:center;gap:10px;margin-bottom:10px;display:flex}.user-avatar[data-v-12d4c3ac]{background:var(--accent,#00bcd4);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.user-details[data-v-12d4c3ac]{flex-direction:column;gap:1px;display:flex}.user-name[data-v-12d4c3ac]{color:var(--text-primary,#e0e0e0);font-size:.85rem;font-weight:600}.user-role[data-v-12d4c3ac]{color:var(--text-footer,#678);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.logout-btn[data-v-12d4c3ac]{border:1px solid var(--sidebar-border);width:100%;color:var(--sidebar-item-color);cursor:pointer;background:0 0;border-radius:6px;padding:8px 12px;font-size:.8rem;transition:all .15s}.logout-btn[data-v-12d4c3ac]:hover{border-color:var(--down,#e74c3c);color:var(--down,#e74c3c);background:#e74c3c1a}.login-section[data-v-12d4c3ac]{border-top:1px solid var(--sidebar-footer-border);padding:12px 16px 8px}.login-link[data-v-12d4c3ac]{text-align:center;background:var(--accent,#00bcd4);color:#fff;border-radius:6px;padding:8px 12px;font-size:.85rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.login-link[data-v-12d4c3ac]:hover{opacity:.9;text-decoration:none}.sidebar-footer[data-v-12d4c3ac]{border-top:1px solid var(--sidebar-footer-border);flex-direction:column;gap:8px;padding:12px 16px;transition:border-color .3s;display:flex}.theme-toggle[data-v-12d4c3ac]{cursor:pointer;border:1px solid var(--sidebar-border);color:var(--sidebar-item-color);background:0 0;border-radius:6px;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:.8rem;transition:all .15s;display:flex}.theme-toggle[data-v-12d4c3ac]:hover{background:var(--sidebar-item-hover-bg);color:var(--sidebar-item-hover-text);border-color:var(--accent)}.toggle-icon[data-v-12d4c3ac]{text-align:center;flex-shrink:0;width:20px;font-size:1rem}.toggle-label[data-v-12d4c3ac]{white-space:nowrap}.version-label[data-v-12d4c3ac]{color:var(--sidebar-footer-text);text-align:center;font-family:SF Mono,Fira Code,monospace;font-size:.7rem;transition:color .3s}@media (width<=768px){.sidebar[data-v-12d4c3ac]{width:240px;transform:translate(-100%)}.sidebar.open[data-v-12d4c3ac]{transform:translate(0)}}.breadcrumbs[data-v-2143e849]{color:var(--text-footer);align-items:center;gap:4px;padding:0 0 16px;font-size:.8rem;display:flex}.crumb[data-v-2143e849]{align-items:center;gap:4px;display:flex}.crumb-link[data-v-2143e849]{cursor:pointer;transition:color .15s}.crumb-link[data-v-2143e849]:hover{color:var(--accent)}.crumb-current[data-v-2143e849]{color:var(--text-primary);font-weight:500}.crumb-sep[data-v-2143e849]{color:var(--border-light);margin:0 2px}@media (width<=480px){.breadcrumbs[data-v-2143e849]{padding-bottom:8px;font-size:.7rem}}.locale-switcher[data-v-dadb8cda]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;letter-spacing:.3px;text-align:center;border-radius:6px;min-width:36px;padding:4px 10px;font-size:.75rem;font-weight:600;transition:all .15s}.locale-switcher[data-v-dadb8cda]:hover{background:var(--bg-hover);border-color:var(--accent)}@media (width<=480px){.locale-switcher[data-v-dadb8cda]{min-width:40px;min-height:36px;padding:6px 10px;font-size:.8rem}}.user-menu[data-v-47afd647]{-webkit-user-select:none;user-select:none;position:relative}.user-trigger[data-v-47afd647]{background:var(--bg-surface);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-family:inherit;transition:all .15s;display:flex}.user-trigger[data-v-47afd647]:hover{background:var(--bg-hover);border-color:var(--accent)}.user-trigger-avatar[data-v-47afd647]{background:var(--accent,#00bcd4);width:28px;height:28px;color:var(--text-inverse,#fff);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.user-trigger-name[data-v-47afd647]{color:var(--text-primary);text-overflow:ellipsis;max-width:120px;font-size:.8rem;font-weight:600;overflow:hidden}.user-trigger-arrow[data-v-47afd647]{color:var(--text-muted);margin-left:2px;font-size:.55rem;transition:transform .2s}.user-trigger-arrow.open[data-v-47afd647]{transform:rotate(180deg)}.user-dropdown[data-v-47afd647]{background:var(--bg-surface);border:1px solid var(--border-primary);z-index:200;border-radius:10px;min-width:220px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000059}.dropdown-enter-active[data-v-47afd647],.dropdown-leave-active[data-v-47afd647]{transition:opacity .15s,transform .15s}.dropdown-enter-from[data-v-47afd647],.dropdown-leave-to[data-v-47afd647]{opacity:0;transform:translateY(-6px)}.dropdown-header[data-v-47afd647]{align-items:center;gap:12px;padding:16px 16px 12px;display:flex}.dropdown-avatar[data-v-47afd647]{background:var(--accent,#00bcd4);width:36px;height:36px;color:var(--text-inverse,#fff);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.dropdown-details[data-v-47afd647]{flex-direction:column;gap:2px;display:flex;overflow:hidden}.dropdown-name[data-v-47afd647]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:700;overflow:hidden}.dropdown-email[data-v-47afd647]{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.dropdown-role[data-v-47afd647]{justify-content:space-between;align-items:center;padding:4px 16px 12px;display:flex}.role-label[data-v-47afd647]{color:var(--text-footer);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.role-value[data-v-47afd647]{color:var(--accent);background:var(--accent-bg);border-radius:99px;padding:2px 10px;font-size:.75rem;font-weight:600}.dropdown-divider[data-v-47afd647]{background:var(--border-primary);height:1px;margin:0 16px}.dropdown-logout[data-v-47afd647]{width:100%;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 16px;font-family:inherit;font-size:.82rem;transition:all .15s;display:flex}.dropdown-logout[data-v-47afd647]:hover{background:var(--down-bg,#e74c3c1a);color:var(--down,#e74c3c)}.logout-icon[data-v-47afd647]{opacity:.7;font-size:.75rem}@media (width<=768px){.user-trigger-name[data-v-47afd647],.user-trigger-arrow[data-v-47afd647]{display:none}.user-trigger[data-v-47afd647]{padding:4px}.user-dropdown[data-v-47afd647]{min-width:200px;right:0}}@media (width<=480px){.user-trigger-avatar[data-v-47afd647]{width:32px;height:32px;font-size:.85rem}.user-dropdown[data-v-47afd647]{min-width:180px;right:-40px}}.app-shell[data-v-f03f8e4b]{min-height:100vh;display:flex}.sidebar-overlay[data-v-f03f8e4b]{display:none}.app-main[data-v-f03f8e4b]{flex-direction:column;flex:1;max-width:calc(100vw - 220px);margin-left:220px;padding:24px 32px 32px;transition:margin-left .3s;display:flex}.app-topbar[data-v-f03f8e4b]{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.topbar-left[data-v-f03f8e4b]{flex:1;align-items:center;gap:12px;display:flex}.topbar-right[data-v-f03f8e4b]{flex-shrink:0;align-items:center;gap:8px;display:flex}.ws-status[data-v-f03f8e4b]{border-radius:50%;width:10px;height:10px;transition:background .3s;display:inline-block}.ws-status.connected[data-v-f03f8e4b]{background:var(--up);box-shadow:0 0 4px var(--up-bg)}.ws-status.connecting[data-v-f03f8e4b]{background:var(--warning);animation:1s infinite pulse-ws-f03f8e4b}.ws-status.disconnected[data-v-f03f8e4b]{background:var(--text-footer)}.ws-status.error[data-v-f03f8e4b]{background:var(--down)}@keyframes pulse-ws-f03f8e4b{0%,to{opacity:1}50%{opacity:.4}}.hamburger[data-v-f03f8e4b]{background:var(--bg-surface);border:1px solid var(--border-primary);cursor:pointer;border-radius:6px;flex-direction:column;flex-shrink:0;justify-content:center;gap:4px;width:36px;height:36px;min-height:36px;padding:8px 6px;transition:background .15s;display:none}.hamburger[data-v-f03f8e4b]:hover{background:var(--bg-hover)}.hamburger-line[data-v-f03f8e4b]{background:var(--text-primary);border-radius:1px;height:2px;transition:transform .2s;display:block}.app-content[data-v-f03f8e4b]{flex:1}@media (width<=768px){.app-main[data-v-f03f8e4b]{max-width:100vw;margin-left:0;padding:12px 12px 24px}.hamburger[data-v-f03f8e4b]{display:flex}.sidebar-overlay[data-v-f03f8e4b]{z-index:90;background:#0000008c;display:block;position:fixed;inset:0}}@media (width<=480px){.app-main[data-v-f03f8e4b]{padding:10px 10px 20px}.app-topbar[data-v-f03f8e4b]{flex-wrap:wrap;gap:4px}.topbar-left[data-v-f03f8e4b]{flex-wrap:wrap}}*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:#0f1923;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:#00bcd4;text-decoration:none}a:hover{text-decoration:underline}code{font-family:SF Mono,Fira Code,Fira Mono,Menlo,Consolas,monospace;font-size:.85em}button,select,input[type=text],input[type=search]{appearance:none}@media (width<=768px){body{overflow-x:hidden}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2a3a4a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a4a5a}
