/* 暗色主题统一使用同一组语义变量，避免页面组件回落到浅色或蓝色硬编码。 */
:root[data-theme-choice="dark"] body,
:root[data-theme-choice="dark"] html { color: var(--ink); background: var(--canvas); }
:root[data-theme-choice="dark"] .sidebar { color: var(--ink); background: linear-gradient(170deg, var(--navy-2), var(--navy)); }
:root[data-theme-choice="dark"] .sidebar .mode-pill,
:root[data-theme-choice="dark"] .strategy-mode .mode-pill { border-color: var(--line); color: var(--muted); background: var(--panel); }
:root[data-theme-choice="dark"] .sidebar .nav-item,
:root[data-theme-choice="dark"] .sidebar .strategy-nav-back { color: var(--ink); }
:root[data-theme-choice="dark"] .sidebar .nav-item:hover,
:root[data-theme-choice="dark"] .sidebar .strategy-nav-back:hover { color: var(--ink); background: var(--panel); }
:root[data-theme-choice="dark"] .sidebar .nav-item.active,
:root[data-theme-choice="dark"] .sidebar .sidebar-theme-button[aria-expanded="true"] { color: var(--ink); background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
:root[data-theme-choice="dark"] .sidebar .nav-icon,
:root[data-theme-choice="dark"] .sidebar .strategy-nav-back { color: var(--muted); }
:root[data-theme-choice="dark"] .sidebar .nav-item.active .nav-icon { color: var(--orange); }
:root[data-theme-choice="dark"] .home-credits { border-top-color: var(--line); }
:root[data-theme-choice="dark"] .home-credits a:hover { color: var(--accent); }

/* 投影已随下底线一并移到 ::after（见 styles.css 中 .main-content-safe-bar 的说明），
   因此这里改为覆盖该伪元素，否则暗色主题的投影强度会退回 --shadow-soft。 */
:root[data-theme-choice="dark"] .main-content-safe-bar { background: var(--canvas); }
:root[data-theme-choice="dark"] .main-content-safe-bar::after { background: var(--line); box-shadow: 0 3px 8px var(--shadow); }
:root[data-theme-choice="dark"] .main-content-safe-bar .mode-pill,
:root[data-theme-choice="dark"] .market-status,
:root[data-theme-choice="dark"] .ghost-button,
:root[data-theme-choice="dark"] .secondary-button,
:root[data-theme-choice="dark"] input,
:root[data-theme-choice="dark"] select,
:root[data-theme-choice="dark"] textarea { border-color: var(--line); color: var(--ink); background: var(--panel-strong); }
:root[data-theme-choice="dark"] .market-status strong { color: var(--ink); }
:root[data-theme-choice="dark"] .ghost-button:hover,
:root[data-theme-choice="dark"] .secondary-button:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .sidebar-toggle:hover { border-color: transparent; color: var(--accent); background: transparent; box-shadow: none; }
:root[data-theme-choice="dark"] .secondary-button { border-color: var(--line); color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .primary-button { color: var(--canvas); background: linear-gradient(110deg, var(--accent), var(--orange)); box-shadow: 0 8px 17px var(--shadow); }
:root[data-theme-choice="dark"] .primary-button:hover { box-shadow: 0 11px 22px var(--shadow); }
:root[data-theme-choice="dark"] .text-button { color: var(--accent); }
:root[data-theme-choice="dark"] input:disabled { color: var(--muted-2); background: var(--canvas); }
:root[data-theme-choice="dark"] input:focus,
:root[data-theme-choice="dark"] select:focus,
:root[data-theme-choice="dark"] textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
:root[data-theme-choice="dark"] option { color: var(--ink); background: var(--panel-strong); }

:root[data-theme-choice="dark"] .toast { border-color: var(--green); color: var(--green); background: var(--green-soft); }
:root[data-theme-choice="dark"] .soft-tag,
:root[data-theme-choice="dark"] .panel-badge,
:root[data-theme-choice="dark"] .stat-chip { color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .panel,
:root[data-theme-choice="dark"] .stat-card,
:root[data-theme-choice="dark"] .holding-card,
:root[data-theme-choice="dark"] .rule-box,
:root[data-theme-choice="dark"] .research-detail,
:root[data-theme-choice="dark"] .minute-account-strip div,
:root[data-theme-choice="dark"] .tick-quote-strip div,
:root[data-theme-choice="dark"] .minute-package-detail,
:root[data-theme-choice="dark"] .data-package-operation-status,
:root[data-theme-choice="dark"] .risk-metric-card { border-color: var(--line); background: var(--panel); box-shadow: 0 5px 22px var(--shadow); }
:root[data-theme-choice="dark"] .primary-stat,
:root[data-theme-choice="dark"] .risk-metric-card { border-color: var(--line); background: linear-gradient(140deg, var(--panel-strong), var(--panel)); }
:root[data-theme-choice="dark"] .rule-box strong,
:root[data-theme-choice="dark"] .stat-foot strong,
:root[data-theme-choice="dark"] .bar-summary strong,
:root[data-theme-choice="dark"] .market-date-bar-summary strong,
:root[data-theme-choice="dark"] .market-date-indicator-card strong,
:root[data-theme-choice="dark"] .holding-card-metrics strong { color: var(--ink); }
:root[data-theme-choice="dark"] .allocation-bar,
:root[data-theme-choice="dark"] .meter-track,
:root[data-theme-choice="dark"] .runtime-progress { background: var(--line); }
:root[data-theme-choice="dark"] .allocation-bar i,
:root[data-theme-choice="dark"] .meter-track i { background: linear-gradient(90deg, var(--accent), var(--orange)); }

:root[data-theme-choice="dark"] td { border-top-color: var(--line); color: var(--muted); }
:root[data-theme-choice="dark"] tbody tr:hover,
:root[data-theme-choice="dark"] .watchlist-table tbody tr[data-watch-code]:hover { background: var(--panel-strong); }
:root[data-theme-choice="dark"] .stock-avatar { color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .watchlist-remove { color: var(--muted); }
:root[data-theme-choice="dark"] .watchlist-remove:hover { color: var(--red); background: var(--red-soft); }

:root[data-theme-choice="dark"] .segmented-control { border-color: var(--line); background: var(--canvas); }
:root[data-theme-choice="dark"] .segmented-control button.is-active { color: var(--ink); background: var(--panel-strong); box-shadow: 0 2px 8px var(--shadow); }
:root[data-theme-choice="dark"] .holding-card { background: linear-gradient(145deg, var(--panel-strong), var(--panel)); }
:root[data-theme-choice="dark"] .holding-card-metrics div { background: var(--panel-strong); }
:root[data-theme-choice="dark"] .status-orbit { border-color: var(--orange); background: var(--orange-soft); }
:root[data-theme-choice="dark"] .status-orbit i { border-color: var(--orange); }
:root[data-theme-choice="dark"] .log-item { border-top-color: var(--line); }
:root[data-theme-choice="dark"] .log-item p { color: var(--muted); }

:root[data-theme-choice="dark"] .market-search-candidates,
:root[data-theme-choice="dark"] .market-search-candidate,
:root[data-theme-choice="dark"] .market-item,
:root[data-theme-choice="dark"] .market-date-bar-summary,
:root[data-theme-choice="dark"] .market-date-pane,
:root[data-theme-choice="dark"] .market-date-indicator-card,
:root[data-theme-choice="dark"] .market-indicator-tab,
:root[data-theme-choice="dark"] .drop-zone,
:root[data-theme-choice="dark"] .provider-picker,
:root[data-theme-choice="dark"] .provider-result,
:root[data-theme-choice="dark"] .runtime-status-item,
:root[data-theme-choice="dark"] .data-package-drop-zone,
:root[data-theme-choice="dark"] .data-package-row,
:root[data-theme-choice="dark"] .market-csv-import-option,
:root[data-theme-choice="dark"] .strategy-lifecycle span,
:root[data-theme-choice="dark"] .strategy-list-item:hover,
:root[data-theme-choice="dark"] .strategy-list-item.is-selected,
:root[data-theme-choice="dark"] .strategy-version-row,
:root[data-theme-choice="dark"] .strategy-version-row.is-current,
:root[data-theme-choice="dark"] .platform-card,
:root[data-theme-choice="dark"] .platform-summary,
:root[data-theme-choice="dark"] .platform-list-row,
:root[data-theme-choice="dark"] .platform-metric-grid span,
:root[data-theme-choice="dark"] .runtime-run-item:hover,
:root[data-theme-choice="dark"] .runtime-run-item.is-selected,
:root[data-theme-choice="dark"] .runtime-run-meta-grid > div,
:root[data-theme-choice="dark"] .live-order-row,
:root[data-theme-choice="dark"] .live-json-output { border-color: var(--line); background: var(--panel); }
:root[data-theme-choice="dark"] .market-search-candidates { box-shadow: var(--shadow); }
:root[data-theme-choice="dark"] .market-search-candidate:hover,
:root[data-theme-choice="dark"] .market-item:hover,
:root[data-theme-choice="dark"] .runtime-provider-item:hover,
:root[data-theme-choice="dark"] .runtime-provider-item[aria-expanded="true"] { border-color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .market-item.active,
:root[data-theme-choice="dark"] .market-date-pane.active,
:root[data-theme-choice="dark"] .market-indicator-tab.active { border-color: var(--accent); color: var(--ink); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .market-period-tabs { border-bottom-color: var(--line); }
:root[data-theme-choice="dark"] .market-indicator-tab { color: var(--muted); background: var(--panel-strong); }
:root[data-theme-choice="dark"] .drop-zone strong,
:root[data-theme-choice="dark"] .market-search-candidate b,
:root[data-theme-choice="dark"] .runtime-status-item strong,
:root[data-theme-choice="dark"] .provider-picker-head strong,
:root[data-theme-choice="dark"] .provider-result strong,
:root[data-theme-choice="dark"] .provider-result b,
:root[data-theme-choice="dark"] .data-package-field strong,
:root[data-theme-choice="dark"] .strategy-lifecycle span,
:root[data-theme-choice="dark"] .live-order-row b { color: var(--ink); }
:root[data-theme-choice="dark"] .drop-icon { color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .runtime-status-icon { color: var(--accent); }
:root[data-theme-choice="dark"] .provider-select-label select,
:root[data-theme-choice="dark"] .runtime-run-filters select,
:root[data-theme-choice="dark"] .account-profile-controls button { border-color: var(--line); color: var(--ink); background: var(--panel-strong); }
:root[data-theme-choice="dark"] .provider-result.is-testing b { color: var(--accent); }

:root[data-theme-choice="dark"] .data-module-nav { border-bottom-color: var(--line); }
:root[data-theme-choice="dark"] .data-module-tab { color: var(--muted); }
:root[data-theme-choice="dark"] .data-module-tab:hover,
:root[data-theme-choice="dark"] .data-module-tab.active { color: var(--accent); border-color: var(--line); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .data-package-drop-zone strong { color: var(--ink); }
:root[data-theme-choice="dark"] .data-package-drop-zone.is-drag-over { color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 3px var(--accent-soft); }
:root[data-theme-choice="dark"] .data-package-delete,
:root[data-theme-choice="dark"] .strategy-danger-button { color: var(--red); border-color: var(--red); background: var(--red-soft); }
:root[data-theme-choice="dark"] .strategy-status-draft,
:root[data-theme-choice="dark"] .risk-severity-info,
:root[data-theme-choice="dark"] .runtime-status-running,
:root[data-theme-choice="dark"] .runtime-status-queued,
:root[data-theme-choice="dark"] .runtime-status-paused { color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .strategy-status-archived,
:root[data-theme-choice="dark"] .strategy-status-muted,
:root[data-theme-choice="dark"] .runtime-status-muted { color: var(--muted); background: var(--panel-strong); }
:root[data-theme-choice="dark"] .optimization-summary { border-color: var(--line); color: var(--ink); background: var(--panel-strong); }
:root[data-theme-choice="dark"] .optimization-run-meta code { color: var(--accent); }
:root[data-theme-choice="dark"] .kernel-output { border-color: var(--line); color: var(--ink); background: var(--canvas); }
:root[data-theme-choice="dark"] .platform-empty,
:root[data-theme-choice="dark"] .strategy-detail-empty,
:root[data-theme-choice="dark"] .strategy-empty,
:root[data-theme-choice="dark"] .runtime-run-detail-empty,
:root[data-theme-choice="dark"] .runtime-empty,
:root[data-theme-choice="dark"] .data-package-empty { border-color: var(--line); }
:root[data-theme-choice="dark"] .risk-severity-critical,
:root[data-theme-choice="dark"] .runtime-status-failed,
:root[data-theme-choice="dark"] .runtime-status-error { color: var(--red); background: var(--red-soft); }
:root[data-theme-choice="dark"] .risk-severity-warning,
:root[data-theme-choice="dark"] .runtime-status-cancelled,
:root[data-theme-choice="dark"] .runtime-status-reset { color: var(--orange); background: var(--orange-soft); }
:root[data-theme-choice="dark"] .runtime-event-row { border-top-color: var(--line); }

:root[data-theme-choice="dark"] .factor-assistant-table-wrap,
:root[data-theme-choice="dark"] .factor-assistant-analysis { border-color: var(--line); color: var(--ink); background: var(--panel); }
:root[data-theme-choice="dark"] .factor-assistant-table-wrap th,
:root[data-theme-choice="dark"] .factor-assistant-table-wrap td { border-bottom-color: var(--line); }
:root[data-theme-choice="dark"] .factor-assistant-table-wrap th { background: var(--panel-strong); }
:root[data-theme-choice="dark"] .sidebar-account { border-top-color: var(--line); }
:root[data-theme-choice="dark"] .sidebar-user-button { color: var(--ink); }
:root[data-theme-choice="dark"] .sidebar-user-button:hover,
:root[data-theme-choice="dark"] .sidebar-user-button[aria-expanded="true"] { border-color: var(--line); background: var(--panel); }
:root[data-theme-choice="dark"] .sidebar-user-avatar { border-color: var(--line); color: var(--accent); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .sidebar-user-name { color: var(--ink); }
:root[data-theme-choice="dark"] .sidebar-user-provider { color: var(--muted); }
:root[data-theme-choice="dark"] .user-profile-popover,
:root[data-theme-choice="dark"] .user-auth-dialog-card,
:root[data-theme-choice="dark"] .auth-provider-button { border-color: var(--line); color: var(--ink); background: var(--panel); }
:root[data-theme-choice="dark"] .user-profile-status,
:root[data-theme-choice="dark"] .user-profile-handle,
:root[data-theme-choice="dark"] .user-profile-provider,
:root[data-theme-choice="dark"] .user-auth-description,
:root[data-theme-choice="dark"] .user-auth-status,
:root[data-theme-choice="dark"] .user-auth-footnote { color: var(--muted); }
:root[data-theme-choice="dark"] .user-profile-name,
:root[data-theme-choice="dark"] .user-auth-title,
:root[data-theme-choice="dark"] .auth-provider-button { color: var(--ink); }
:root[data-theme-choice="dark"] .user-profile-provider,
:root[data-theme-choice="dark"] .user-auth-footnote { border-top-color: var(--line); }
:root[data-theme-choice="dark"] .user-profile-logout,
:root[data-theme-choice="dark"] .user-auth-close { border-color: var(--line); color: var(--muted); background: var(--panel-strong); }
:root[data-theme-choice="dark"] .user-auth-close:hover,
:root[data-theme-choice="dark"] .auth-provider-button:hover { color: var(--ink); background: var(--accent-soft); }
:root[data-theme-choice="dark"] .auth-provider-logo { background-color: var(--ink); }
:root[data-theme-choice="dark"] .auth-provider-qq .auth-provider-logo { background-color: var(--accent); }
:root[data-theme-choice="dark"] .auth-provider-wechat .auth-provider-logo { background-color: var(--green); }
:root[data-theme-choice="dark"] .user-auth-dialog::backdrop { background: var(--auth-backdrop); }
