Files
DinQuant/frontend/dist/css/320.136e873f.css
T
Dinger 2e9c7cd69e feat: AI analysis engine refactor, dark theme polish & virtual position management
Core changes:
- Refactor FastAnalysisService: single LLM multi-factor analysis replaces
  7-agent pipeline; add multi-timeframe consensus, threshold calibration,
  confidence calibration, multi-model ensemble voting
- Add RAG memory injection and reflection validation (analysis_memory +
  reflection worker)
- Simplify billing config: remove unused strategy_run/backtest/portfolio_monitor,
  add ai_code_gen separate billing (different token consumption scale)
- Settings hot-reload after save, no backend restart needed

Frontend:
- Global dark theme overhaul: pure black palette replacing blue-tinted colors
  across sidebar/header/dashboard/analysis/K-line/user-manage/profile/settings/billing
- Fix USDT payment modal dark theme (portal rendering broke CSS selectors)
- Refactor position modal: direction + quantity + entry price, remove add/reduce
  logic, show raw DB values on re-open, save exactly what user inputs
- Fix Polymarket prediction market dark text
- i18n for position modal title

Backend:
- Position management: one record per symbol (DELETE+INSERT replacing
  ON CONFLICT with side), fixes PnL showing 0 when switching long/short
- MarketDataCollector data fetching optimization
- portfolio_monitor scheduled monitoring improvements
- env.example reorganized: common config first, advanced config last

Documentation:
- README architecture diagram updated to FastAnalysisService flow
- Add virtual position, AI tuning config, billing items documentation
- Add INDICATOR_DEFINITIONS_CN.md, FRONTEND_FAST_ANALYSIS.md

Made-with: Cursor
2026-03-23 23:01:04 +08:00

1 line
27 KiB
CSS

.dashboard-pro[data-v-7ff4e505]{min-height:100vh;padding:20px;background:#f8fafc;-webkit-transition:background .3s;transition:background .3s}.dashboard-pro.theme-dark[data-v-7ff4e505]{background:#141414}.dashboard-pro.theme-dark .kpi-card[data-v-7ff4e505]{background:#1c1c1c;border-color:#2a2a2a}.dashboard-pro.theme-dark .kpi-card .kpi-label[data-v-7ff4e505]{color:#888}.dashboard-pro.theme-dark .kpi-card .kpi-value .amount[data-v-7ff4e505]{color:#f1f5f9}.dashboard-pro.theme-dark .kpi-card .kpi-sub[data-v-7ff4e505]{color:#888}.dashboard-pro.theme-dark .chart-panel[data-v-7ff4e505],.dashboard-pro.theme-dark .table-panel[data-v-7ff4e505]{background:#1c1c1c;border-color:#2a2a2a}.dashboard-pro.theme-dark .chart-panel .panel-header[data-v-7ff4e505],.dashboard-pro.theme-dark .table-panel .panel-header[data-v-7ff4e505]{border-color:#2a2a2a}.dashboard-pro.theme-dark .chart-panel .panel-header .panel-title[data-v-7ff4e505],.dashboard-pro.theme-dark .table-panel .panel-header .panel-title[data-v-7ff4e505]{color:#f1f5f9}.dashboard-pro.theme-dark .ranking-card[data-v-7ff4e505]{background:hsla(0,0%,100%,.03);border-color:#2a2a2a}.dashboard-pro.theme-dark .ranking-card .rank-name[data-v-7ff4e505]{color:#f1f5f9}.dashboard-pro.theme-dark .ranking-card .rank-stats label[data-v-7ff4e505]{color:#888}.dashboard-pro.theme-dark .calendar-nav .current-month[data-v-7ff4e505]{color:#f1f5f9}.dashboard-pro.theme-dark .calendar-nav .ant-btn-link[data-v-7ff4e505],.dashboard-pro.theme-dark .profit-calendar .calendar-empty[data-v-7ff4e505]{color:#888}.dashboard-pro.theme-dark .profit-calendar .month-summary[data-v-7ff4e505]{background:hsla(0,0%,100%,.03)}.dashboard-pro.theme-dark .profit-calendar .calendar-weekdays .weekday[data-v-7ff4e505],.dashboard-pro.theme-dark .profit-calendar .month-summary .summary-label[data-v-7ff4e505]{color:#888}.dashboard-pro.theme-dark .profit-calendar .calendar-grid .calendar-cell[data-v-7ff4e505]{background:hsla(0,0%,100%,.03)}.dashboard-pro.theme-dark .profit-calendar .calendar-grid .calendar-cell.no-data[data-v-7ff4e505]{background:hsla(0,0%,100%,.02)}.dashboard-pro.theme-dark .profit-calendar .calendar-grid .calendar-cell.profit[data-v-7ff4e505]{background:linear-gradient(135deg,rgba(34,197,94,.15),rgba(34,197,94,.25))}.dashboard-pro.theme-dark .profit-calendar .calendar-grid .calendar-cell.loss[data-v-7ff4e505]{background:linear-gradient(135deg,rgba(239,68,68,.15),rgba(239,68,68,.25))}.dashboard-pro.theme-dark .profit-calendar .calendar-grid .calendar-cell.zero[data-v-7ff4e505]{background:hsla(0,0%,100%,.03)}.dashboard-pro.theme-dark .profit-calendar .calendar-grid .calendar-cell .day-number[data-v-7ff4e505]{color:#f1f5f9}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-table{background:transparent;color:#f1f5f9}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-table-thead>tr>th{background:#141414;color:#888;border-color:#2a2a2a}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-table-tbody>tr>td{border-color:#2a2a2a;color:#f1f5f9}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-table-tbody>tr:hover>td{background:#252525}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-table-placeholder{background:transparent}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-table-placeholder .ant-empty-description{color:#888}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-pagination .ant-pagination-item{background:#1c1c1c;border-color:#2a2a2a}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-pagination .ant-pagination-item a{color:#f1f5f9}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-pagination .ant-pagination-item.ant-pagination-item-active{background:#3b82f6;border-color:#3b82f6}.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-pagination .ant-pagination-next .ant-pagination-item-link,.dashboard-pro.theme-dark .pro-table[data-v-7ff4e505] .ant-pagination .ant-pagination-prev .ant-pagination-item-link{background:#1c1c1c;border-color:#2a2a2a;color:#f1f5f9}.dashboard-pro .kpi-grid[data-v-7ff4e505]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.dashboard-pro .kpi-card[data-v-7ff4e505]{position:relative;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1)}.dashboard-pro .kpi-card[data-v-7ff4e505]:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 10px 40px rgba(0,0,0,.1);box-shadow:0 10px 40px rgba(0,0,0,.1)}.dashboard-pro .kpi-card.clickable[data-v-7ff4e505]{cursor:pointer}.dashboard-pro .kpi-card.clickable .card-arrow[data-v-7ff4e505]{position:absolute;right:16px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);opacity:.4;-webkit-transition:all .3s;transition:all .3s}.dashboard-pro .kpi-card.clickable:hover .card-arrow[data-v-7ff4e505]{opacity:1;right:12px}.dashboard-pro .kpi-card .kpi-glow[data-v-7ff4e505]{position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(59,130,246,.15) 0,transparent 70%);pointer-events:none}.dashboard-pro .kpi-card .kpi-content[data-v-7ff4e505]{position:relative;z-index:1}.dashboard-pro .kpi-card .kpi-header[data-v-7ff4e505]{gap:8px;margin-bottom:12px}.dashboard-pro .kpi-card .kpi-header[data-v-7ff4e505],.dashboard-pro .kpi-card .kpi-icon[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dashboard-pro .kpi-card .kpi-icon[data-v-7ff4e505]{width:32px;height:32px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:8px;background:rgba(59,130,246,.1);color:#3b82f6;font-size:16px}.dashboard-pro .kpi-card .kpi-label[data-v-7ff4e505]{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.dashboard-pro .kpi-card .kpi-value[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:2px}.dashboard-pro .kpi-card .kpi-value .currency[data-v-7ff4e505]{font-size:18px;font-weight:500;color:#64748b}.dashboard-pro .kpi-card .kpi-value .amount[data-v-7ff4e505]{font-size:28px;font-weight:700;color:#1e293b;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}.dashboard-pro .kpi-card .kpi-value .unit[data-v-7ff4e505]{font-size:14px;font-weight:500;color:#64748b;margin-left:4px}.dashboard-pro .kpi-card .kpi-sub[data-v-7ff4e505]{margin-top:8px;font-size:12px;color:#64748b}.dashboard-pro .kpi-card .kpi-sub .label[data-v-7ff4e505]{margin:0 2px}.dashboard-pro .kpi-card .kpi-sub .divider[data-v-7ff4e505]{margin:0 6px;opacity:.5}.dashboard-pro .kpi-card .kpi-sub .highlight[data-v-7ff4e505]{font-weight:600;color:#3b82f6}.dashboard-pro .kpi-card.kpi-primary[data-v-7ff4e505]{background:linear-gradient(135deg,#1e40af,#3b82f6 50%,#60a5fa);border:none}.dashboard-pro .kpi-card.kpi-primary .kpi-icon[data-v-7ff4e505]{background:hsla(0,0%,100%,.2);color:#fff}.dashboard-pro .kpi-card.kpi-primary .kpi-label[data-v-7ff4e505]{color:hsla(0,0%,100%,.8)}.dashboard-pro .kpi-card.kpi-primary .kpi-value .amount[data-v-7ff4e505],.dashboard-pro .kpi-card.kpi-primary .kpi-value .currency[data-v-7ff4e505],.dashboard-pro .kpi-card.kpi-primary .kpi-value .unit[data-v-7ff4e505]{color:#fff}.dashboard-pro .kpi-card.kpi-primary .kpi-sub[data-v-7ff4e505]{color:hsla(0,0%,100%,.7)}.dashboard-pro .kpi-card.kpi-win-rate .kpi-ring[data-v-7ff4e505]{position:absolute;right:12px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:60px;height:60px}.dashboard-pro .kpi-card.kpi-win-rate .kpi-ring svg[data-v-7ff4e505]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.dashboard-pro .kpi-card.kpi-win-rate .kpi-ring svg .ring-bg[data-v-7ff4e505]{fill:none;stroke:rgba(16,185,129,.15);stroke-width:3}.dashboard-pro .kpi-card.kpi-win-rate .kpi-ring svg .ring-progress[data-v-7ff4e505]{fill:none;stroke:#10b981;stroke-width:3;stroke-linecap:round;-webkit-transition:stroke-dasharray .5s ease;transition:stroke-dasharray .5s ease}.dashboard-pro .kpi-card.kpi-win-rate .kpi-icon[data-v-7ff4e505]{background:rgba(16,185,129,.1);color:#10b981}.dashboard-pro .kpi-card.kpi-profit-factor .kpi-icon[data-v-7ff4e505]{background:rgba(139,92,246,.1);color:#8b5cf6}.dashboard-pro .kpi-card.kpi-drawdown .kpi-icon[data-v-7ff4e505]{background:rgba(239,68,68,.1);color:#ef4444}.dashboard-pro .kpi-card.kpi-drawdown .kpi-value .amount[data-v-7ff4e505]{color:#ef4444}.dashboard-pro .kpi-card.kpi-trades .kpi-icon[data-v-7ff4e505]{background:rgba(6,182,212,.1);color:#06b6d4}.dashboard-pro .kpi-card.kpi-strategies .kpi-icon[data-v-7ff4e505]{background:rgba(245,158,11,.1);color:#f59e0b}.dashboard-pro .chart-row[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:16px;margin-bottom:16px}@media (max-width:1024px){.dashboard-pro .chart-row[data-v-7ff4e505]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.dashboard-pro .chart-panel[data-v-7ff4e505]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.dashboard-pro .chart-panel.chart-main[data-v-7ff4e505]{-webkit-box-flex:2;-ms-flex:2;flex:2}.dashboard-pro .chart-panel.chart-side[data-v-7ff4e505]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:300px}.dashboard-pro .chart-panel.chart-half[data-v-7ff4e505]{-webkit-box-flex:1;-ms-flex:1;flex:1}.dashboard-pro .chart-panel .panel-header[data-v-7ff4e505]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.dashboard-pro .chart-panel .panel-header[data-v-7ff4e505],.dashboard-pro .chart-panel .panel-title[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dashboard-pro .chart-panel .panel-title[data-v-7ff4e505]{gap:8px;font-size:14px;font-weight:600;color:#1e293b}.dashboard-pro .chart-panel .panel-title .anticon[data-v-7ff4e505]{color:#3b82f6}.dashboard-pro .chart-panel .panel-legend[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:16px;font-size:12px;color:#64748b}.dashboard-pro .chart-panel .panel-legend .legend-item[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px}.dashboard-pro .chart-panel .panel-legend .legend-item .dot[data-v-7ff4e505]{width:10px;height:10px;border-radius:2px}.dashboard-pro .chart-panel .panel-legend .legend-item .dot.bar[data-v-7ff4e505]{background:-webkit-gradient(linear,left top,left bottom,from(#34d399),to(#10b981));background:linear-gradient(180deg,#34d399,#10b981)}.dashboard-pro .chart-panel .panel-legend .legend-item .dot.line[data-v-7ff4e505]{background:-webkit-gradient(linear,left top,right top,from(#3b82f6),to(#8b5cf6));background:linear-gradient(90deg,#3b82f6,#8b5cf6)}.dashboard-pro .chart-panel .panel-legend .legend-item .dot.loss[data-v-7ff4e505]{background:#ef4444}.dashboard-pro .chart-panel .panel-legend .legend-item .dot.profit[data-v-7ff4e505]{background:#10b981}.dashboard-pro .chart-panel .panel-legend.calendar-legend[data-v-7ff4e505]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.dashboard-pro .chart-panel .panel-legend.calendar-legend .legend-gradient[data-v-7ff4e505]{width:80px;height:10px;border-radius:3px;background:-webkit-gradient(linear,left top,right top,from(#ef4444),color-stop(#fca5a5),color-stop(#f4f4f5),color-stop(#86efac),to(#22c55e));background:linear-gradient(90deg,#ef4444,#fca5a5,#f4f4f5,#86efac,#22c55e)}.dashboard-pro .chart-panel .panel-badge[data-v-7ff4e505]{background:#3b82f6;color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.dashboard-pro .chart-panel .chart-body[data-v-7ff4e505]{height:320px;padding:16px}.dashboard-pro .chart-panel .chart-body.chart-sm[data-v-7ff4e505]{height:220px}.dashboard-pro .chart-panel .chart-body.calendar-chart[data-v-7ff4e505]{height:280px}.dashboard-pro .chart-panel .calendar-nav[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.dashboard-pro .chart-panel .calendar-nav .current-month[data-v-7ff4e505]{font-size:14px;font-weight:600;color:#1e293b;min-width:80px;text-align:center}.dashboard-pro .chart-panel .calendar-nav .ant-btn-link[data-v-7ff4e505]{padding:0;height:auto;color:#64748b}.dashboard-pro .chart-panel .calendar-nav .ant-btn-link[data-v-7ff4e505]:hover:not(:disabled){color:#3b82f6}.dashboard-pro .chart-panel .calendar-nav .ant-btn-link[data-v-7ff4e505]:disabled{opacity:.3}.dashboard-pro .chart-panel .profit-calendar[data-v-7ff4e505]{padding:12px 16px;overflow:hidden}.dashboard-pro .chart-panel .profit-calendar .calendar-empty[data-v-7ff4e505],.dashboard-pro .chart-panel .profit-calendar[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dashboard-pro .chart-panel .profit-calendar .calendar-empty[data-v-7ff4e505]{height:280px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#64748b}.dashboard-pro .chart-panel .profit-calendar .calendar-empty .anticon[data-v-7ff4e505]{font-size:40px;margin-bottom:10px;opacity:.3}.dashboard-pro .chart-panel .profit-calendar .month-summary[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:20px;margin-bottom:10px;padding:8px 12px;background:rgba(241,245,249,.5);border-radius:8px}.dashboard-pro .chart-panel .profit-calendar .month-summary .summary-item[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px}.dashboard-pro .chart-panel .profit-calendar .month-summary .summary-item .summary-label[data-v-7ff4e505]{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.dashboard-pro .chart-panel .profit-calendar .month-summary .summary-item .summary-value[data-v-7ff4e505]{font-size:15px;font-weight:700;font-family:JetBrains Mono,monospace}.dashboard-pro .chart-panel .profit-calendar .month-summary .summary-item .summary-value.positive[data-v-7ff4e505]{color:#10b981}.dashboard-pro .chart-panel .profit-calendar .month-summary .summary-item .summary-value.negative[data-v-7ff4e505]{color:#ef4444}.dashboard-pro .chart-panel .profit-calendar .calendar-weekdays[data-v-7ff4e505]{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px}.dashboard-pro .chart-panel .profit-calendar .calendar-weekdays .weekday[data-v-7ff4e505]{text-align:center;font-size:10px;font-weight:600;color:#64748b;padding:4px 0}.dashboard-pro .chart-panel .profit-calendar .calendar-grid[data-v-7ff4e505]{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell[data-v-7ff4e505]{height:36px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;background:rgba(241,245,249,.5);border:1px solid transparent;-webkit-transition:all .2s ease;transition:all .2s ease;position:relative}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.empty[data-v-7ff4e505]{background:transparent;border:none}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.no-data[data-v-7ff4e505]{background:rgba(241,245,249,.3)}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.profit[data-v-7ff4e505]{background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(34,197,94,.2));border-color:rgba(34,197,94,.3)}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.profit[data-v-7ff4e505]:hover{background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(34,197,94,.3));-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 4px 12px rgba(34,197,94,.2);box-shadow:0 4px 12px rgba(34,197,94,.2)}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.loss[data-v-7ff4e505]{background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(239,68,68,.2));border-color:rgba(239,68,68,.3)}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.loss[data-v-7ff4e505]:hover{background:linear-gradient(135deg,rgba(239,68,68,.2),rgba(239,68,68,.3));-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-box-shadow:0 4px 12px rgba(239,68,68,.2);box-shadow:0 4px 12px rgba(239,68,68,.2)}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell.zero[data-v-7ff4e505]{background:hsla(240,5%,65%,.1);border-color:hsla(240,5%,65%,.2)}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell .day-number[data-v-7ff4e505]{font-size:11px;font-weight:600;color:#1e293b;line-height:1}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell .day-profit[data-v-7ff4e505]{font-size:9px;font-weight:600;font-family:JetBrains Mono,monospace;margin-top:1px;line-height:1}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell .day-profit.positive[data-v-7ff4e505]{color:#10b981}.dashboard-pro .chart-panel .profit-calendar .calendar-grid .calendar-cell .day-profit.negative[data-v-7ff4e505]{color:#ef4444}.dashboard-pro .strategy-ranking[data-v-7ff4e505]{padding:16px}.dashboard-pro .strategy-ranking .empty-state[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:40px;color:#64748b}.dashboard-pro .strategy-ranking .empty-state .anticon[data-v-7ff4e505]{font-size:40px;margin-bottom:12px;opacity:.3}.dashboard-pro .strategy-ranking .ranking-grid[data-v-7ff4e505]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.dashboard-pro .strategy-ranking .ranking-card[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;padding:14px 16px;background:rgba(241,245,249,.5);border:1px solid #e2e8f0;border-radius:12px;position:relative;overflow:hidden}.dashboard-pro .strategy-ranking .ranking-card.rank-top[data-v-7ff4e505]{border-color:transparent;background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(139,92,246,.08))}.dashboard-pro .strategy-ranking .ranking-card .rank-badge[data-v-7ff4e505]{width:28px;height:28px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:8px;font-size:12px;font-weight:700;background:#64748b;color:#fff;-ms-flex-negative:0;flex-shrink:0}.dashboard-pro .strategy-ranking .ranking-card .rank-badge.rank-1[data-v-7ff4e505]{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.dashboard-pro .strategy-ranking .ranking-card .rank-badge.rank-2[data-v-7ff4e505]{background:linear-gradient(135deg,#9ca3af,#6b7280)}.dashboard-pro .strategy-ranking .ranking-card .rank-badge.rank-3[data-v-7ff4e505]{background:linear-gradient(135deg,#cd7f32,#b87333)}.dashboard-pro .strategy-ranking .ranking-card .rank-info[data-v-7ff4e505]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.dashboard-pro .strategy-ranking .ranking-card .rank-info .rank-name[data-v-7ff4e505]{font-size:13px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.dashboard-pro .strategy-ranking .ranking-card .rank-info .rank-stats[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px;-ms-flex-wrap:wrap;flex-wrap:wrap}.dashboard-pro .strategy-ranking .ranking-card .rank-info .rank-stats .stat[data-v-7ff4e505]{font-size:11px}.dashboard-pro .strategy-ranking .ranking-card .rank-info .rank-stats .stat label[data-v-7ff4e505]{color:#64748b;margin-right:4px}.dashboard-pro .strategy-ranking .ranking-card .rank-pnl-bar[data-v-7ff4e505]{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(0,0,0,.05)}.dashboard-pro .strategy-ranking .ranking-card .rank-pnl-bar .bar-fill[data-v-7ff4e505]{height:100%;border-radius:0 3px 3px 0;-webkit-transition:width .5s ease;transition:width .5s ease}.dashboard-pro .strategy-ranking .ranking-card .rank-pnl-bar .bar-fill.positive[data-v-7ff4e505]{background:-webkit-gradient(linear,left top,right top,from(#10b981),to(#34d399));background:linear-gradient(90deg,#10b981,#34d399)}.dashboard-pro .strategy-ranking .ranking-card .rank-pnl-bar .bar-fill.negative[data-v-7ff4e505]{background:-webkit-gradient(linear,left top,right top,from(#ef4444),to(#f87171));background:linear-gradient(90deg,#ef4444,#f87171)}.dashboard-pro .table-row[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:16px;margin-top:16px;margin-bottom:16px}@media (max-width:1024px){.dashboard-pro .table-row[data-v-7ff4e505]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.dashboard-pro .table-panel[data-v-7ff4e505]{-webkit-box-flex:1;-ms-flex:1;flex:1;background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.dashboard-pro .table-panel .panel-header[data-v-7ff4e505]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.dashboard-pro .table-panel .panel-header[data-v-7ff4e505],.dashboard-pro .table-panel .panel-title[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dashboard-pro .table-panel .panel-title[data-v-7ff4e505]{gap:8px;font-size:14px;font-weight:600;color:#1e293b}.dashboard-pro .table-panel .panel-title .anticon[data-v-7ff4e505]{color:#3b82f6}.dashboard-pro .table-panel .panel-title .sound-toggle[data-v-7ff4e505]{margin-left:8px;font-size:16px;cursor:pointer;color:#10b981;-webkit-transition:all .2s;transition:all .2s}.dashboard-pro .table-panel .panel-title .sound-toggle[data-v-7ff4e505]:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.dashboard-pro .table-panel .panel-title .sound-toggle.sound-off[data-v-7ff4e505]{color:#64748b}.dashboard-pro .table-panel .panel-badge[data-v-7ff4e505]{background:#3b82f6;color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.dashboard-pro .orders-panel[data-v-7ff4e505]{margin-bottom:20px}.dashboard-pro .pro-table[data-v-7ff4e505] .ant-table{font-size:13px}.dashboard-pro .pro-table[data-v-7ff4e505] .ant-table-thead>tr>th{background:rgba(241,245,249,.8);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;border-bottom:1px solid #e2e8f0;padding:12px 16px}.dashboard-pro .pro-table[data-v-7ff4e505] .ant-table-tbody>tr>td{padding:12px 16px;border-bottom:1px solid #e2e8f0}.dashboard-pro .pro-table[data-v-7ff4e505] .ant-table-tbody>tr:hover>td{background:rgba(59,130,246,.04)}.dashboard-pro .pro-table[data-v-7ff4e505] .ant-pagination{padding:12px 16px;margin:0}.dashboard-pro .symbol-cell .symbol-name[data-v-7ff4e505]{font-weight:600;display:block}.dashboard-pro .symbol-cell .symbol-strategy[data-v-7ff4e505]{font-size:11px;color:#64748b}.dashboard-pro .side-tag[data-v-7ff4e505]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.dashboard-pro .side-tag.long[data-v-7ff4e505]{background:rgba(16,185,129,.1);color:#10b981}.dashboard-pro .side-tag.short[data-v-7ff4e505]{background:rgba(239,68,68,.1);color:#ef4444}.dashboard-pro .type-tag[data-v-7ff4e505]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.dashboard-pro .type-tag.long[data-v-7ff4e505]{background:rgba(16,185,129,.1);color:#10b981}.dashboard-pro .type-tag.short[data-v-7ff4e505]{background:rgba(239,68,68,.1);color:#ef4444}.dashboard-pro .type-tag.close-long[data-v-7ff4e505]{background:rgba(245,158,11,.1);color:#f59e0b}.dashboard-pro .type-tag.close-short[data-v-7ff4e505]{background:rgba(139,92,246,.1);color:#8b5cf6}.dashboard-pro .symbol-tag[data-v-7ff4e505]{background:rgba(59,130,246,.1);color:#3b82f6}.dashboard-pro .exchange-tag[data-v-7ff4e505],.dashboard-pro .symbol-tag[data-v-7ff4e505]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.dashboard-pro .exchange-tag.binance[data-v-7ff4e505]{background:rgba(240,185,11,.1);color:#f0b90b}.dashboard-pro .exchange-tag.okx[data-v-7ff4e505]{background:rgba(139,92,246,.1);color:#8b5cf6}.dashboard-pro .exchange-tag.bitget[data-v-7ff4e505]{background:rgba(6,182,212,.1);color:#06b6d4}.dashboard-pro .exchange-tag.signal[data-v-7ff4e505]{background:rgba(59,130,246,.1);color:#3b82f6}.dashboard-pro .market-type[data-v-7ff4e505]{font-size:10px;color:#64748b;margin-top:2px}.dashboard-pro .status-tag[data-v-7ff4e505]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.dashboard-pro .status-tag.pending[data-v-7ff4e505]{background:rgba(245,158,11,.1);color:#f59e0b}.dashboard-pro .status-tag.processing[data-v-7ff4e505]{background:rgba(59,130,246,.1);color:#3b82f6}.dashboard-pro .status-tag.completed[data-v-7ff4e505]{background:rgba(16,185,129,.1);color:#10b981}.dashboard-pro .status-tag.failed[data-v-7ff4e505]{background:rgba(239,68,68,.1);color:#ef4444}.dashboard-pro .status-tag.cancelled[data-v-7ff4e505]{background:rgba(100,116,139,.1);color:#64748b}.dashboard-pro .error-hint[data-v-7ff4e505]{font-size:11px;color:#ef4444;margin-top:4px;cursor:pointer}.dashboard-pro .error-hint .anticon[data-v-7ff4e505]{margin-right:4px}.dashboard-pro .notify-icons[data-v-7ff4e505]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px}.dashboard-pro .notify-icons .notify-icon[data-v-7ff4e505]{color:#64748b;font-size:14px}.dashboard-pro .pnl-cell[data-v-7ff4e505]{text-align:right}.dashboard-pro .pnl-cell .pnl-percent[data-v-7ff4e505]{display:block;font-size:11px}.dashboard-pro .time-cell[data-v-7ff4e505]{font-size:12px;color:#64748b}.dashboard-pro .sub-text[data-v-7ff4e505]{font-size:11px;color:#64748b}.dashboard-pro .text-muted[data-v-7ff4e505]{color:#64748b}.dashboard-pro .positive[data-v-7ff4e505]{color:#10b981}.dashboard-pro .negative[data-v-7ff4e505]{color:#ef4444}@media (max-width:768px){.dashboard-pro[data-v-7ff4e505]{padding:12px}.dashboard-pro .kpi-grid[data-v-7ff4e505]{grid-template-columns:repeat(2,1fr);gap:10px}.dashboard-pro .kpi-card[data-v-7ff4e505]{padding:14px}.dashboard-pro .kpi-card .kpi-value .amount[data-v-7ff4e505]{font-size:22px}.dashboard-pro .kpi-card.kpi-win-rate .kpi-ring[data-v-7ff4e505]{width:48px;height:48px;right:8px}.dashboard-pro .chart-panel .chart-body[data-v-7ff4e505]{height:260px;padding:12px}.dashboard-pro .chart-panel .chart-body.chart-sm[data-v-7ff4e505]{height:180px}.dashboard-pro .ranking-grid[data-v-7ff4e505]{grid-template-columns:1fr}}