/* ===========================================
   暗色模式样式 — Zinc Noir 配色方案 (2026)
   暖调锌灰基底 x 靛蓝主色，柔和护眼
   =========================================== */

html.dark {
  /* 让原生控件（原生 select 弹出层 / 日期选择器 / 滚动条 / autofill）跟随暗色主题；
     缺此条时这些控件按系统浅色渲染，与暗色页面冲突（与移动端修复对齐） */
  color-scheme: dark;

  /* ── 背景系统（冷调深蓝灰，三档层次分明：相邻差 ~20，卡片明显浮起）── */
  --bg-app: #0d0e12;
  --bg-surface: #161922;
  --bg-elevated: #1e222c;
  --bg-inset: #090a0d;
  --bg-hover: rgba(255,255,255,0.05);
  --bg-active: rgba(255,255,255,0.09);

  /* ── 主色调（靛蓝，暗底更跳、不刺眼）── */
  --primary: #7c83f8;
  --primary-hover: #9aa0ff;
  --primary-muted: rgba(124,131,248,0.14);
  --primary-border: rgba(124,131,248,0.32);
  --success: #4ade80;
  --success-hover: #22c55e;
  --success-muted: rgba(74,222,128,0.13);
  --warning: #fbbf24;
  --warning-strong: #fbbf24;
  --warning-hover: #fbbf24;
  --warning-muted: rgba(251,191,36,0.13);
  --danger: #f87171;
  --danger-hover: #ef4444;
  --danger-muted: rgba(248,113,113,0.13);
  --info: #67e8f9;
  --info-muted: rgba(103,232,249,0.13);
  --white: #ffffff;

  /* ── 文字系统（暖灰提亮，保证暗底可读）── */
  --text: #e6e9ef;
  --text-secondary: #a3aab8;
  --text-muted: #6b7280;
  --text-placeholder: #565d6b;

  /* ── 边框（冷灰，比旧锌灰更分明）── */
  --border: #262b36;
  --border-light: #1b1f27;

  /* ── 阴影（分层立体）── */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.35);
  --shadow: 0 6px 24px rgba(0,0,0,0.45);
  --shadow-lg: 0 14px 52px rgba(0,0,0,0.55);

  /* ── 玻璃效果 ── */
  --glass-bg: rgba(22,25,34,0.85);
  --glass-bg-hover: rgba(30,34,44,0.92);
  --glass-border: rgba(255,255,255,0.07);
  --glass-shadow: 0 8px 32px rgba(0,0,0,0.45);
  --glass-blur: blur(20px);

  /* ── 覆盖全局 light 变量 ── */
  --bg-element: var(--bg-surface);
  --bg-light: var(--bg-surface);
  --bg-page-section: var(--bg-app);
  --bg-dark: var(--bg-elevated);
  --border-color: var(--border);
  --text-light: var(--text-muted);
  --text-primary: var(--text);
  --bg-color: #0d0e12;

  /* 顶栏暗色化：用独立暗色表面，消除"顶亮底黑"割裂（与亮色 brand 渐变解耦） */
  --topbar-bg: #14171f;
  --bottomnav-bg: rgba(16,18,24,0.92);
  --bg-input: rgba(30,34,44,0.7);
  --bg-input-hover: rgba(30,34,44,0.85);
  --bg-readonly: rgba(9,10,13,0.6);

  /* ── 兼容 mobile.css 变量名 ── */
  --card: var(--bg-surface);
  --primary-dark: #6366f1;
  --primary-light: rgba(124,131,248,0.08);
  --secondary: #a78bfa;
  --secondary-dark: #8b5cf6;
  --success-light: rgba(74,222,128,0.1);
  --danger-light: rgba(248,113,113,0.1);
  --warning-light: rgba(251,191,36,0.14);
  --text-tertiary: var(--text-muted);
  --radius: var(--radius-md);
  --radius-full: 999px;
  --nav-height: 52px;
  --bottom-nav-height: 64px;
}

/* ── 基础（HTML 默认元素全覆盖） ── */
html.dark { background: var(--bg-app); }
html.dark body {
  color: var(--text);
  background: var(--bg-app);
  background-image: none;
}
html.dark ::selection { background: var(--primary-muted); color: var(--primary); }
html.dark ::-moz-selection { background: var(--primary-muted); color: var(--primary); }
html.dark a,
html.dark a:link { color: var(--primary); }
html.dark a:visited { color: #a78bfa; }
html.dark a:hover { color: var(--primary-hover); }
html.dark hr { border-color: var(--border); }
html.dark code { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark pre { background: var(--bg-inset); color: var(--text); border-color: var(--border); }
html.dark kbd { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark input:-webkit-autofill,
html.dark input:-webkit-autofill:hover,
html.dark input:-webkit-autofill:focus,
html.dark input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px var(--bg-elevated) inset !important;
  -webkit-text-fill-color: var(--text) !important;
  caret-color: var(--text);
}
html.dark select option { background: var(--bg-elevated); color: var(--text); }
/* 展开层内选项的选中/悬停高亮，保证暗色下可读（与移动端对齐） */
html.dark select option:hover,
html.dark select option:checked {
  background: var(--primary);
  color: #fff;
}

/* ── 布局 ── */
html.dark .app-header { background: var(--topbar-bg); border-bottom-color: rgba(255,255,255,0.07); }
html.dark .app-sidebar { background: var(--bg-surface); border-right-color: var(--border); }
html.dark .app-main { background: transparent; }
html.dark .app-content { background: transparent; }
html.dark .page-panel { background: transparent; }
html.dark .page-header { background: transparent; }
html.dark .page-title { color: var(--text); }
html.dark .page-desc { color: var(--text-secondary); }
html.dark .page-content { background: transparent; }
html.dark .page-footer { border-top-color: var(--border); }
html.dark .footer-text { color: var(--text-muted); }
html.dark .footer-version { color: var(--text-muted); }

/* ── 顶部导航栏 ── */
html.dark .header-brand { color: var(--text); }
html.dark .brand-icon { color: var(--primary); }
html.dark .brand-text { background: linear-gradient(135deg, #7c8cff, #9aa6ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
html.dark .header-user { color: var(--text); }
html.dark .user-info { background: var(--bg-elevated); border-color: var(--border); }
html.dark .user-info:hover { background: var(--bg-hover); border-color: var(--primary); }
html.dark .user-name { color: var(--text); }
html.dark .user-role { color: var(--text-secondary); }
html.dark .avatar-role-badge { color: #fff; }
html.dark .avatar-admin { background: linear-gradient(135deg, #fbbf24, #f59e0b); }
html.dark .avatar-super-admin { background: linear-gradient(135deg, #fb7185, #f43f5e); }
html.dark .settings-btn { color: var(--text-muted); }
html.dark .settings-btn:hover { color: var(--primary); }

/* ── 侧边栏 ── */
html.dark .sidebar-menu .menu-item { color: var(--text-muted); }
html.dark .sidebar-menu .menu-item:hover { background: var(--bg-hover); color: var(--text); }
html.dark .menu-item.active { background: var(--primary-muted); color: var(--primary); }
html.dark .sidebar-toggle { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .sidebar-toggle:hover { background: var(--bg-hover); color: var(--text); }
html.dark .sidebar-overlay { background: rgba(0,0,0,0.6); }
html.dark .bottom-nav { border-top-color: var(--border); }
html.dark .bottom-nav .nav-item { color: var(--text-muted); }
html.dark .bottom-nav .nav-item.active,
html.dark .nav-item.active { color: var(--primary); }
html.dark .nav-item.active::after { background: var(--primary); }
html.dark .nav-icon { color: inherit; }

/* ── 菜单 ── */
html.dark .settings-menu { background: var(--bg-elevated); border-color: var(--border); box-shadow: var(--shadow-lg); }
html.dark .settings-menu-item { color: var(--text); }
html.dark .settings-menu-item:hover { background: var(--bg-hover); }
html.dark .settings-menu-divider { border-top-color: var(--border); }
html.dark .settings-logout { color: var(--danger); }
html.dark .settings-logout:hover { background: var(--danger-muted); }

/* ── 卡片 ── */
html.dark .card { background: var(--bg-surface); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .card-header { background: var(--bg-inset); border-bottom-color: var(--border); color: var(--text-secondary); }
html.dark .card-body { color: var(--text); }
html.dark .card-footer { border-top-color: var(--border); color: var(--text-secondary); }

/* ── 首页统计 ── */
html.dark .home-stat-card { background: var(--bg-surface); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .home-stat-card .stat-value { color: var(--primary); }
html.dark .home-stat-card .stat-label { color: var(--text-secondary); }
html.dark .home-section-title { color: var(--text); border-bottom-color: var(--border); }
html.dark .home-recent-list { color: var(--text); }
html.dark .home-welcome { background: var(--bg-surface); border-color: var(--border); }
html.dark .home-greeting-text { color: var(--text); }
html.dark .home-date { color: var(--text-muted); }
html.dark .home-stat-card:hover { border-color: var(--primary-muted); background: var(--primary-muted); }

/* ── 统计卡片（统计 Tab） ── */
html.dark .stat-card { background: var(--bg-surface); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .stat-card--highlight { background: rgba(52,211,153,0.1); border-color: rgba(52,211,153,0.25); }
html.dark .stat-card-green { background: rgba(52,211,153,0.1); border-color: rgba(52,211,153,0.25); }
html.dark .stat-card-blue { background: rgba(124,140,255,0.1); border-color: rgba(124,140,255,0.25); }
html.dark .stat-card-purple { background: rgba(167,139,250,0.1); border-color: rgba(167,139,250,0.25); }
html.dark .stat-card-orange { background: rgba(251,191,36,0.1); border-color: rgba(251,191,36,0.25); }
html.dark .stat-card-red { background: rgba(251,113,133,0.1); border-color: rgba(251,113,133,0.25); }
html.dark .stat-card-gold { background: rgba(234,179,8,0.1); border-color: rgba(234,179,8,0.25); }
html.dark .stat-card-teal { background: rgba(45,212,191,0.1); border-color: rgba(45,212,191,0.25); }
html.dark .stat-card-cyan { background: rgba(103,232,249,0.1); border-color: rgba(103,232,249,0.25); }
html.dark .stat-card-pink { background: rgba(244,114,182,0.1); border-color: rgba(244,114,182,0.25); }
html.dark .stat-card-indigo { background: rgba(129,140,248,0.1); border-color: rgba(129,140,248,0.25); }
html.dark .stat-card-rose { background: rgba(251,113,133,0.1); border-color: rgba(251,113,133,0.25); }
html.dark .stat-card-lime { background: rgba(163,230,53,0.1); border-color: rgba(163,230,53,0.25); }
html.dark .stat-card-label { color: var(--text-secondary); }
html.dark .stat-card-value { color: var(--text); }
html.dark .stat-label-green { color: #34d399; }
html.dark .stat-value-green { color: #34d399; }
html.dark .stat-label-blue { color: #7c8cff; }
html.dark .stat-value-blue { color: #7c8cff; }
html.dark .stat-label-purple { color: #a78bfa; }
html.dark .stat-value-purple { color: #a78bfa; }
html.dark .stat-label-orange { color: #fbbf24; }
html.dark .stat-value-orange { color: #fbbf24; }
html.dark .stat-label-red { color: #fb7185; }
html.dark .stat-value-red { color: #fb7185; }
html.dark .stat-label-gold { color: #eab308; }
html.dark .stat-value-gold { color: #eab308; }
html.dark .stat-label-teal { color: #2dd4bf; }
html.dark .stat-value-teal { color: #2dd4bf; }
html.dark .stat-label-cyan { color: #67e8f9; }
html.dark .stat-value-cyan { color: #67e8f9; }
html.dark .stat-label-pink { color: #f472b6; }
html.dark .stat-value-pink { color: #f472b6; }
html.dark .stat-label-indigo { color: #A78BFA; }
html.dark .stat-value-indigo { color: #A78BFA; }
html.dark .stat-label-rose { color: #fb7185; }
html.dark .stat-value-rose { color: #fb7185; }
html.dark .stat-label-lime { color: #a3e635; }
html.dark .stat-value-lime { color: #a3e635; }
html.dark .stat-value--success { color: #34d399; }
html.dark .stat-value--danger { color: #fb7185; }
html.dark .stat-value--profit { color: #fbbf24; }
html.dark .stat-value--loss { color: #34d399; }
html.dark .stat-card--profit { background: rgba(245,158,11,0.12); border-color: rgba(245,158,11,0.28); }
html.dark .stat-card--loss { background: rgba(52,211,153,0.1); border-color: rgba(52,211,153,0.25); }
html.dark .stat-value--warning { color: #fbbf24; }

/* ── 按钮 ── */
html.dark .btn-primary,
html.dark a.btn-primary { background: var(--primary); color: #fff; border-color: var(--primary); box-shadow: none; }
html.dark .btn-primary:hover { background: var(--primary-hover); box-shadow: 0 4px 12px rgba(124,140,255,0.3); transform: translateY(-1px); }
html.dark .btn-secondary { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark .btn-secondary:hover { background: var(--bg-hover); border-color: var(--primary); color: var(--primary); }
html.dark .btn-success { background: var(--success); color: #fff; border-color: var(--success); }
html.dark .btn-success:hover { background: #10b981; box-shadow: 0 4px 12px rgba(52,211,153,0.3); }
html.dark .btn-warning { background: var(--warning); color: #1c1917; border-color: var(--warning); }
html.dark .btn-warning:hover { background: #f59e0b; box-shadow: 0 4px 12px rgba(251,191,36,0.3); }
html.dark .btn-danger { background: var(--danger); color: #fff; border-color: var(--danger); }
html.dark .btn-danger:hover { background: #f43f5e; box-shadow: 0 4px 12px rgba(251,113,133,0.3); }
html.dark .btn-search { background: var(--primary); color: #fff; border-color: var(--primary); }
html.dark .btn-search:hover { background: var(--primary-hover); }
html.dark .btn-info-outline { border-color: var(--border); color: var(--text-secondary); background: transparent; }
html.dark .btn-info-outline:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-muted); }
html.dark .btn-danger-outline { border-color: var(--border); color: var(--text-secondary); background: transparent; }
html.dark .btn-danger-outline:hover { border-color: var(--danger); color: var(--danger); background: var(--danger-muted); }
html.dark .btn-success-outline { border-color: var(--border); color: var(--text-secondary); background: transparent; }
html.dark .btn-success-outline:hover { border-color: var(--success); color: var(--success); background: var(--success-muted); }
html.dark .btn-warning-outline { border-color: var(--border); color: var(--text-secondary); background: transparent; }
html.dark .btn-warning-outline:hover { border-color: var(--warning); color: var(--warning); background: var(--warning-muted); }
html.dark .btn-primary-outline { border-color: var(--border); color: var(--text-secondary); background: transparent; }
html.dark .btn-primary-outline:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-muted); }
html.dark .btn.disabled,
html.dark .btn:disabled { opacity: 0.5; cursor: not-allowed; }
html.dark .icon-btn { color: var(--text-muted); }
html.dark .icon-btn:hover { color: var(--primary); }
html.dark .action-icon-btn { background: var(--bg-elevated); color: var(--text-muted); border-color: var(--border); }
html.dark .action-icon-btn:hover { color: var(--primary); border-color: var(--primary); background: var(--primary-muted); }

/* ── 工具栏按钮 ── */
html.dark .toolbar-btn { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .toolbar-btn:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); background: var(--primary-muted); }
html.dark .toolbar-btn.active { border-color: var(--primary); color: var(--primary); background: var(--primary-muted); }
html.dark .toolbar-btn:disabled { opacity: 0.35; }
html.dark .toolbar-btn-primary { border-color: var(--primary); color: #fff; background: var(--primary); }
html.dark .toolbar-btn-danger { border-color: var(--border); color: var(--text-muted); }
html.dark .toolbar-btn-danger.active { border-color: var(--danger); color: var(--danger); background: var(--danger-muted); }

/* ── 表单 ── */
html.dark .form-input,
html.dark .form-select,
html.dark .form-textarea,
html.dark .pd-input,
html.dark .pd-select { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .form-input:focus,
html.dark .form-select:focus,
html.dark .form-textarea:focus,
html.dark .pd-input:focus,
html.dark .pd-select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-muted); }
html.dark .form-input::placeholder,
html.dark .form-textarea::placeholder { color: var(--text-placeholder); }
html.dark .form-input.input-readonly,
html.dark .form-input:disabled { background: var(--bg-inset); color: var(--text-muted); }
html.dark .form-group label { color: var(--text-secondary); }
html.dark .form-label { color: var(--text-secondary); }
html.dark .input-with-suffix { color: var(--text); }
html.dark .input-suffix { color: var(--text-muted); }
/* 通用禁用态下拉框：暗色下显式弱化，避免与可选项视觉无异（与移动端对齐；
   此前仅 #submitForm/#expenseForm/#incomeForm 内有覆盖） */
html.dark .form-select:disabled,
html.dark .pd-select:disabled {
  background: var(--bg-inset);
  color: var(--text-muted);
  border-color: var(--border);
  opacity: 0.65;
  cursor: not-allowed;
}
html.dark .section-title,
html.dark .form-section-title { color: var(--text-secondary); border-bottom-color: var(--border); }
html.dark .form-section-title { background: rgba(255,255,255,0.03); border-bottom-color: var(--border); }
html.dark .detail-item { background: transparent; border: none; padding: 0; }
html.dark .detail-item .detail-label { color: var(--text-secondary); }
html.dark .detail-item .detail-value { color: var(--text); }
html.dark .password-wrapper input { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .password-toggle { color: var(--text-muted); }
html.dark .password-toggle:hover { color: var(--text); }

/* ── 表格 ── */
html.dark .data-table { background: transparent; border-color: var(--border); }
html.dark .data-table th { background: var(--bg-surface); color: var(--text-secondary); border-bottom-color: var(--border); }
html.dark .data-table td { border-bottom-color: var(--border-light); }
html.dark .data-table tbody tr:hover td { background: var(--bg-hover); }
html.dark .data-table tbody tr.selected td { box-shadow: inset 3px 0 0 var(--primary); background: var(--primary-muted); }
html.dark .data-table tbody tr:nth-child(even) { background: rgba(255,255,255,0.015); }
html.dark .data-table .sortable-th:hover { background: var(--bg-hover); }
html.dark .sort-icons { color: var(--text-muted); }
html.dark .sort-icon-up.active,
html.dark .sort-icon-down.active { color: var(--primary); }

/* Excel 表格 */
html.dark .excel-table thead th { background: var(--bg-surface); border-bottom-color: var(--border); color: var(--text-secondary); }
html.dark .excel-table tbody td { border-bottom-color: var(--border-light); }
html.dark .excel-table tbody tr:hover { background: var(--bg-hover); }
html.dark .excel-table tbody tr.selected-row { background: var(--primary-muted); }
html.dark .excel-table tbody tr.pd-row-requested { background: rgba(239, 68, 68, 0.2); }
html.dark .excel-table tbody tr:nth-child(even) { background: rgba(255,255,255,0.025); }
html.dark .excel-table .cell-text { color: var(--text); }
html.dark .cell-empty { color: var(--text-muted); }

html.dark div.page-panel#panel-product div.card,
html.dark div.page-panel#panel-product div.card-header { background: var(--bg-surface); }
html.dark div.page-panel#panel-product div.table-container { background: var(--bg-surface); border-color: var(--border); }
html.dark #panel-product .table-container::after { background: linear-gradient(to right, transparent, var(--bg-surface)); }
html.dark #panel-product .table-container::-webkit-scrollbar-track { background: transparent; }
html.dark #panel-product .table-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-color: transparent; }
html.dark #panel-product .table-container::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.15); }
html.dark #panel-product .table-container::-webkit-scrollbar-corner { background: transparent; }
html.dark div.page-panel#panel-product table.excel-table thead,
html.dark div.page-panel#panel-product table.excel-table thead th { background: var(--bg-surface); }

/* ── 产品筛选 ── */
html.dark .product-filter-section { background: var(--bg-surface); border-color: var(--border); }
html.dark .filter-check-item:hover { background: var(--primary-muted); border-color: var(--border); }
html.dark .filter-check-item input:checked + span { color: var(--primary); }
html.dark .filter-add-item { border-color: var(--primary); color: var(--primary); }
html.dark .filter-add-item:hover { background: var(--primary-muted); }
html.dark .pd-multi-opt { background: var(--bg-elevated); border-color: var(--border-light); }
html.dark .pd-multi-opt:hover { background: var(--primary-muted); }
html.dark .pd-cat-cb { color: var(--text); }
html.dark .pd-cat-cb input:checked + span { color: var(--primary); }
html.dark .product-filter-label { color: var(--text-secondary); }
html.dark .pb-filter-input { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .pb-filter-input:focus { border-color: var(--primary); }
html.dark .pb-filter-input::placeholder { color: var(--text-placeholder); }
html.dark .product-filter-actions { border-top-color: var(--border); }
html.dark .pb-status-dropdown-menu { background: var(--bg-elevated); border-color: var(--border); box-shadow: 0 4px 12px rgba(0,0,0,0.4); }

/* ── 模态框 ── */
html.dark .modal-backdrop { background: rgba(0,0,0,0.6); }
html.dark .modal-dialog { background: var(--bg-surface); border-color: var(--border); box-shadow: var(--shadow-lg); }
html.dark .modal-content { background: var(--bg-surface); border-color: var(--border); }
html.dark .modal-header { border-bottom-color: var(--border); color: var(--text); }
html.dark .modal-title { color: var(--text); }
html.dark .modal-close { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .modal-close:hover { background: var(--bg-hover); color: var(--text); }
html.dark .modal-action-btn { background: var(--bg-elevated); color: var(--text-muted); }
html.dark .modal-action-btn:hover { background: var(--bg-hover); color: var(--text); }
html.dark .modal-action-btn:active { background: var(--bg-active); color: var(--text); }
html.dark .modal-body { color: var(--text); }
html.dark .modal-footer { border-top-color: var(--border); }
html.dark .modal-section-divider { border-top-color: var(--border); }
html.dark .modal-dialog.modal-lg,
html.dark .modal-dialog.mw-480 { background: var(--bg-surface); }

/* 产品详情弹窗 */
html.dark .product-detail-cover { background: rgba(255,255,255,0.03); border-right-color: var(--border); }
html.dark .product-detail-fields { background: transparent; }
html.dark .pcf-label { color: var(--text-muted); }
html.dark .pcf-value { color: var(--text); }
html.dark .pd-label { color: var(--text-secondary); }
html.dark .pdv-field { border-bottom-color: var(--border-light); }
html.dark .pdv-field .pd-label { color: var(--text-muted); }
html.dark .pdv-value { color: var(--text); }
html.dark .pd-field-row input,
html.dark .pd-field-row select,
html.dark .pd-field-row textarea { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .pd-field-row input:focus,
html.dark .pd-field-row select:focus,
html.dark .pd-field-row textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-muted); }
html.dark .pd-issue-form-row label { color: var(--text-secondary); }
html.dark .pd-issue-content { color: var(--text); }
html.dark .pd-issue-edit-bar { border-top-color: var(--border); }
html.dark .pd-issue-item { border-color: var(--border-light); color: var(--text); }

/* ── 产品工具栏 ── */
html.dark div.product-header { background: var(--bg-surface); }
html.dark .product-toolbar-center { background: transparent; }
html.dark .product-action-bar .btn-secondary { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark .product-action-bar .btn-secondary:hover:not(:disabled) { background: var(--bg-hover); border-color: var(--primary); color: var(--primary); }
html.dark .product-search-wrap .search-input-field { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .product-search-wrap .search-input-field:focus { border-color: var(--primary); }
html.dark .product-search-wrap .search-input-field::placeholder { color: var(--text-placeholder); }
html.dark .product-search-wrap .search-clear-btn { color: var(--text-muted); }
html.dark .product-search-wrap .search-clear-btn:hover { color: var(--text); }

/* 产品分页 */
html.dark div#panel-product div.pagination-mini button,
html.dark div#panel-product div.pagination-mini button.pg-btn,
html.dark div#panel-product div.pagination-mini button.pg-num { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark div#panel-product div.pagination-mini button.pg-btn:hover:not(.disabled),
html.dark div#panel-product div.pagination-mini button.pg-num:hover:not(.active) { background: var(--primary-muted); border-color: var(--primary); color: var(--primary); }
html.dark div#panel-product div.pagination-mini button.pg-num.active { background: var(--primary); color: #fff; border-color: var(--primary); }
html.dark div#panel-product div.pagination-mini button.pg-btn.disabled { opacity: 0.4; }

/* 产品内联表 thead */
html.dark table.product-inline-table thead,
html.dark table.product-inline-table thead th { background: var(--bg-surface); }
html.dark div.page-panel#panel-product table.product-inline-table thead,
html.dark div.page-panel#panel-product table.product-inline-table thead th { background: var(--bg-surface); }

/* 产品导出弹窗 */
html.dark #exportModal .modal-dialog { background: var(--bg-surface); }

/* ── 日期选择器 ── */
html.dark .date-picker-dropdown { background: var(--bg-elevated); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .date-picker-day:not(.other-month) { color: var(--text); }
html.dark .date-picker-day.today,
html.dark .date-picker-day.selected { background: var(--primary); color: #fff; }
html.dark .date-picker-day.other-month { color: var(--text-placeholder); }
html.dark .date-picker-btn { background: var(--bg-elevated); color: var(--text-muted); border-color: var(--border); }
html.dark .date-picker-btn:hover { background: var(--bg-hover); color: var(--text); }
html.dark .date-picker-header { border-bottom-color: var(--border); }
html.dark .date-picker-nav { color: var(--text-muted); }
html.dark .date-picker-nav:hover { color: var(--text); }
html.dark .date-picker-title { color: var(--text); }
html.dark .date-picker-weekday { color: var(--text-muted); }
html.dark .date-picker-today { color: var(--primary); border-top-color: var(--border); }
html.dark .date-picker-today:hover { background: var(--primary-muted); }
html.dark .date-picker-clear { color: var(--text-muted); }
html.dark .date-picker-clear:hover { color: var(--text); }
html.dark .date-sep { color: var(--text-muted); }

/* ── 下拉/多选组件 ── */
html.dark .custom-select-dropdown,
html.dark .multi-select-dropdown { background: var(--bg-elevated); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .custom-select-option,
html.dark .multi-select-option { color: var(--text); border-bottom-color: var(--border); }
html.dark .custom-select-option:hover,
html.dark .multi-select-option:hover { background: var(--bg-hover); }
html.dark .multi-select-option.selected { background: var(--primary-muted); color: var(--primary); }
html.dark .ms-group-title { color: var(--text-secondary); }
html.dark .ms-group-label { color: var(--text-secondary); }
html.dark .ms-group-label:hover { color: var(--text); }
html.dark .ms-option { color: var(--text); }
html.dark .ms-option:hover { background: var(--bg-hover); }
html.dark .ms-label { color: var(--text); }
html.dark .ms-group-items { border-left-color: var(--border); }
html.dark .select-all-option { color: var(--text); }
html.dark .select-all-option:hover { background: var(--bg-hover); }
html.dark .ms-group-cb:checked + span { color: var(--primary); }

/* ── 搜索框 ── */
html.dark .search-box-inline { background: var(--bg-elevated); border-color: var(--border); }
html.dark .search-container .search-input { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
html.dark .search-container .search-input:focus { border-color: var(--primary); }
html.dark .search-container .search-input::placeholder { color: var(--text-placeholder); }
html.dark .search-input-wrap .search-clear-btn { background: var(--bg-hover); color: var(--text-muted); }
html.dark .search-input-wrap .search-clear-btn:hover { background: var(--bg-active); color: var(--text); }
html.dark .search-inline .search-clear-btn { color: var(--text-muted); }
html.dark .search-inline .search-clear-btn:hover { color: var(--text); }
html.dark .search-input { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .search-input:focus { border-color: var(--primary); background: var(--bg-elevated); }

/* ── 分页 ── */
html.dark .pagination button { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .pagination button:hover:not(.active) { border-color: var(--primary); color: var(--primary); }
html.dark .pagination button.active { background: var(--primary); color: #fff; border-color: var(--primary); }
html.dark .pagination button:disabled { opacity: 0.35; }
html.dark .pagination-info { color: var(--text-muted); }

/* ── Toast ── */
html.dark .toast { background: var(--bg-elevated); color: var(--text); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .toast-success { background: var(--success-muted); color: var(--success); border-color: transparent; }
html.dark .toast-error { background: var(--danger-muted); color: var(--danger); border-color: transparent; }
html.dark .toast-warning { background: var(--warning-muted); color: var(--warning); border-color: transparent; }
html.dark .toast-info { background: var(--info-muted); color: var(--info); border-color: transparent; }
html.dark .toast-icon { color: inherit; }
html.dark .toast-message { color: inherit; }
html.dark .toast-close { color: inherit; opacity: 0.7; }
html.dark .toast-close:hover { opacity: 1; }

/* ── 滚动条 ── */
html.dark ::-webkit-scrollbar-track { background: transparent; }
html.dark ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 8px; }
html.dark ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.18); }
html.dark .product-table-container::-webkit-scrollbar-track { background: transparent; }
html.dark .product-table-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 4px; }
html.dark .product-table-container::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.15); }
html.dark .product-table-container::-webkit-scrollbar-corner { background: transparent; }
html.dark .db-table-wrapper .table-container { scrollbar-color: rgba(255,255,255,0.08) transparent; }
html.dark .db-table-wrapper .table-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); }
html.dark .db-table-wrapper .table-container::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.15); }

/* ── Loading ── */
html.dark .loading-overlay { background: rgba(0,0,0,0.7); backdrop-filter: blur(4px); }
html.dark .loading-spinner { border-color: rgba(255,255,255,0.15); border-top-color: var(--primary); }
html.dark .loading-msg { color: var(--text); }
html.dark .loading-box { background: var(--bg-surface); border-color: var(--border); }
html.dark .loading { color: var(--text-secondary); }
html.dark .spinner { border-color: rgba(255,255,255,0.1); border-top-color: var(--primary); }
html.dark .state-msg { color: var(--text-muted); }
html.dark .state-hint { color: var(--text-muted); }
html.dark .state-loading { color: var(--text-muted); }

/* ── Tab 按钮 ── */
html.dark .tab-btn { color: var(--text-muted); }
html.dark .tab-btn.active { color: var(--primary); border-bottom-color: var(--primary); background: var(--bg-active); }
html.dark .tab-btn:hover { color: var(--text); }
html.dark .tab-nav { background: rgba(255,255,255,0.04); border-bottom-color: var(--border); }

/* ── 快捷日期 ── */
html.dark .quick-date-btn { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .quick-date-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-muted); }
html.dark .quick-date-btn.active { background: var(--primary); color: #fff; border-color: var(--primary); }
html.dark .quick-date-bar .quick-date-divider { color: var(--border); }
html.dark .quick-date-group { border-color: var(--border); }

/* ── 筛选按钮 ── */
html.dark .unified-filter .filter-btn-reset { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark .unified-filter .filter-btn-reset:hover { background: var(--bg-hover); border-color: var(--primary); color: var(--primary); }
html.dark .filter-label { color: var(--text-secondary); border-color: var(--border); background: var(--bg-elevated); }
html.dark .filter-label.has-active { border-color: var(--primary); background: var(--primary-muted); color: var(--primary); }
html.dark .badge-dot { background: var(--primary); }

/* ── 详情页签（周期详情等） ── */
html.dark .detail-section { border-bottom-color: var(--border-light); }
html.dark .detail-section h4 { color: var(--text-secondary); }
html.dark .detail-label { color: var(--text-muted); }
html.dark .detail-value { color: var(--text); }
html.dark .detail-table td { color: var(--text); }
html.dark .detail-table th { color: var(--text-secondary); background: var(--bg-surface); }

/* ── 业绩卡片 ── */
html.dark .perf-card { background: var(--bg-surface); border-color: var(--border); }
html.dark .perf-card .perf-title { color: var(--text); }
html.dark .perf-card .perf-detail { color: var(--text-secondary); }
html.dark .perf-card .perf-status { background: rgba(255,255,255,0.05); }
html.dark .action-row button { box-shadow: none; }
html.dark .perf-detail-label { color: var(--text-secondary); }
html.dark .perf-detail-amount { color: var(--success); }

/* ── 驳回输入框 ── */
html.dark .reject-input-inline { background: var(--bg-elevated); color: var(--text); border-color: var(--danger); }
html.dark .reject-input-inline:focus { border-color: var(--danger); box-shadow: 0 0 0 2px var(--danger-muted); }
html.dark .reject-input-inline::placeholder { color: var(--text-placeholder); }

/* ── 编辑弹窗（产品详情内联编辑） ── */
html.dark .edit-dialog { background: var(--bg-surface); box-shadow: 0 10px 40px rgba(0,0,0,0.5); border-color: var(--border); }
html.dark .edit-dialog-title { color: var(--text); }
html.dark .edit-dialog-btn { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark .edit-dialog-btn:hover { background: var(--bg-hover); border-color: var(--text-muted); }
html.dark .edit-dialog-btn-primary { background: var(--primary); color: #fff; }
html.dark .edit-dialog-btn-primary:hover { background: var(--primary-hover); }
html.dark .edit-dialog-input { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .edit-dialog-input:focus { border-color: var(--primary); }

/* ── 内联编辑输入 ── */
html.dark .inline-edit-input { background: var(--bg-elevated); color: var(--text); }

/* ── 类型自动补全 ── */
html.dark .type-dropdown { background: var(--bg-elevated); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .type-dropdown-item { color: var(--text); }
html.dark .type-dropdown-item:hover { background: var(--bg-hover); }

/* ── 自定义工具提示 ── */
html.dark .custom-tooltip { background: rgba(28,28,42,0.97); color: var(--text); border-color: var(--border); box-shadow: var(--shadow); }

/* ── 确认修改弹窗 ── */
html.dark #confirmSaveChanges { color: var(--text); }
html.dark .confirm-change-item { color: var(--text); border-bottom-color: var(--border-light); }
html.dark .confirm-change-field { color: var(--text-secondary); }
html.dark .confirm-change-old { color: var(--danger); }
html.dark .confirm-change-new { color: var(--success); }

/* ── 密码复制弹窗 ── */
html.dark #pwdCopyModal .modal-dialog { background: var(--bg-surface); }
html.dark .pwd-copy-ok { color: var(--success); }

/* ── APP下载 ── */
html.dark .app-download-tab { color: var(--text-muted); }
html.dark .app-download-tab.active { color: #fff; background: var(--primary); border-color: var(--primary); }
html.dark .app-download-tab:hover { color: var(--text); }
html.dark .app-download-content { color: var(--text); }
html.dark .app-download-info h4 { color: var(--text); }
html.dark .app-download-info p { color: var(--text-secondary); }
html.dark .app-download-platform { color: var(--text); }

/* ── 数据库管理 ── */
html.dark .db-card { background: var(--bg-surface); border-color: var(--border); }
html.dark .db-card .db-header { background: var(--bg-inset); border-bottom-color: var(--border); color: var(--text-secondary); }
html.dark .db-card .db-item { border-color: var(--border); }
html.dark .db-sidebar-header { background: var(--bg-inset); border-bottom-color: var(--border); }
html.dark .db-content-header { background: var(--bg-inset); border-bottom-color: var(--border); }
html.dark .db-card .db-item:hover { background: var(--bg-hover); }
html.dark .db-card .db-item-label { color: var(--text-secondary); }
html.dark .db-card .db-item-value { color: var(--text); }

/* ── 登录页面 ── */
html.dark .login-container { background: rgba(20,20,30,0.92); backdrop-filter: blur(16px); border-color: var(--border); }
html.dark .login-header h1 { color: var(--text); }
html.dark .login-header p { color: var(--text-secondary); }
html.dark .login-header .logo-wrapper { background: linear-gradient(135deg, var(--primary), #6366f1); }
html.dark .login-btn { background: var(--primary); color: #fff; border-color: var(--primary); }
html.dark .login-btn:hover { background: var(--primary-hover); }
html.dark .form-group input { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
html.dark .form-group input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-muted); }
html.dark .form-group input::placeholder { color: var(--text-placeholder); }
html.dark .remember-row label { color: var(--text-muted); }
html.dark .remember-row input[type="checkbox"] { accent-color: var(--primary); }
html.dark .help-tip { background: var(--text-muted); color: #fff; }
html.dark .help-tip:hover::after { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .help-tip:hover::before { border-top-color: var(--border); }
html.dark .kick-msg { background: rgba(251,113,133,0.1); border-color: rgba(251,113,133,0.3); color: var(--danger); }
html.dark .captcha-img { border-color: var(--border); }
html.dark .captcha-status { color: var(--text-muted); }
html.dark .theme-toggle-login { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .theme-toggle-login:hover { background: var(--bg-hover); color: var(--text); }
html.dark .theme-toggle-login .theme-icon-dark { display: block; }
html.dark .theme-toggle-login .theme-icon-light { display: none; }
html.dark .login-footer .footer-text { color: var(--text-muted); }

/* ── 强制改密弹窗 ── */
html.dark #changePwdModal { background: rgba(0,0,0,0.6); }
html.dark #changePwdModal .modal-header { border-bottom-color: var(--border); }
html.dark #changePwdModal .modal-content { background: var(--bg-surface); }
html.dark #changePwdModal .modal-header h4 { color: var(--text); }
html.dark #changePwdModal .modal-close { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .password-info { background: var(--primary-muted); color: var(--primary); border-color: rgba(124,140,255,0.2); }
html.dark .password-info strong { color: var(--primary); }
html.dark .message.success { background: var(--success-muted); color: var(--success); border-color: transparent; }
html.dark .message.error { background: var(--danger-muted); color: var(--danger); border-color: transparent; }

/* 记住登录弹窗 */
html.dark #rememberLoginModal .modal-content { background: var(--bg-surface); }
html.dark #rememberLoginModal .modal-header h4 { color: var(--text); }
html.dark #rememberLoginModal .modal-body { color: var(--text-secondary); }
html.dark #rememberLoginModal .modal-footer button { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark #rememberLoginModal .modal-footer .btn-primary { background: var(--primary); color: #fff; }

/* ── 移动端 ── */
html.dark .modal-overlay { background: rgba(0,0,0,0.7); }
html.dark .expense-card { background: var(--bg-surface); border-color: var(--border); }
html.dark .expense-card:hover { box-shadow: var(--shadow); }
html.dark .mobile-menu-btn { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
html.dark .mobile-menu-btn:hover { background: var(--bg-hover); }
html.dark .mobile-sidebar { background: var(--bg-surface); border-right-color: var(--border); }

/* ── Profile ── */
html.dark .profile-header { background: var(--bg-surface); border-color: var(--border); }
html.dark .profile-info { background: var(--bg-surface); border-color: var(--border); border-top: 0.5px solid var(--border); }
html.dark .profile-avatar-section { background: var(--bg-surface); border-color: var(--border); }
html.dark .info-item { border-bottom-color: var(--border-light); }
html.dark .info-item span { color: var(--text-secondary); }
html.dark .info-item strong { color: var(--text); }
html.dark .avatar-grid .avatar-option { border-color: var(--border); }
html.dark .avatar-grid .avatar-option:hover { border-color: var(--primary); }
html.dark .avatar-grid .avatar-option.selected { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-muted); }

/* ── 提交/收支表单：与亮色极简下划线风格统一（暗色不再套输入框填充，避免表达不一致）── */
html.dark #submitForm .form-group input,
html.dark #submitForm .form-group select,
html.dark #expenseForm .form-group input,
html.dark #expenseForm .form-group select,
html.dark #incomeForm .form-group input,
html.dark #incomeForm .form-group select {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  box-shadow: none;
}
html.dark #submitForm .form-group input:focus,
html.dark #submitForm .form-group select:focus,
html.dark #expenseForm .form-group input:focus,
html.dark #expenseForm .form-group select:focus,
html.dark #incomeForm .form-group input:focus,
html.dark #incomeForm .form-group select:focus { border-bottom-color: var(--primary); box-shadow: none; }
/* 禁用态：保留灰底静音（与亮色 bg-readonly 一致） */
html.dark #submitForm .form-group input:disabled,
html.dark #submitForm .form-group select:disabled,
html.dark #expenseForm .form-group input:disabled,
html.dark #expenseForm .form-group select:disabled,
html.dark #incomeForm .form-group input:disabled,
html.dark #incomeForm .form-group select:disabled {
  background: var(--bg-inset);
  color: var(--text-muted);
  border-bottom-color: var(--border);
}
html.dark .expense-summary-bar { background: var(--bg-surface); border-top-color: var(--border); }
html.dark .expense-add-btn { background: var(--primary-muted); color: var(--primary); border-color: transparent; }
html.dark .expense-add-btn:hover { background: var(--primary); color: #fff; }
html.dark .income-add-btn { border-color: var(--border); color: var(--text-muted); background: transparent; }
html.dark .income-add-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-muted); }

/* ── 首页 ── */
html.dark .stats-card { background: var(--bg-surface); border-color: var(--border); }
html.dark .stats-card .stat-number { color: var(--primary); }
html.dark .stats-card .stat-label { color: var(--text-secondary); }
html.dark .recent-card { background: var(--bg-surface); border-color: var(--border); }
html.dark .recent-card .recent-title { color: var(--text); }
html.dark .recent-card .recent-subtitle { color: var(--text-secondary); }
html.dark .stat-summary-cards { border-bottom-color: var(--border); }

/* ── 编辑用户弹窗 ── */
html.dark #editModal .form-group input,
html.dark #editModal .form-group select { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
html.dark #editModal .form-group label { color: var(--text-secondary); }
html.dark #editModal .modal-footer { border-top-color: var(--border); }
html.dark .modal-footer-space { border-top-color: var(--border); }

/* ── 驳回弹窗 ── */
html.dark #rejectModal textarea { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
html.dark #rejectModal textarea:focus { border-color: var(--primary); }

/* ── 业务选择组件 ── */
html.dark .dimension-btn { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
html.dark .dimension-btn.active { background: var(--primary-muted); color: var(--primary); border-color: var(--primary); }
html.dark .dimension-btn:hover:not(.active) { border-color: var(--primary); color: var(--primary); }

/* ── 明细表格容器 ── */
html.dark .table-container { background: var(--bg-surface); color: var(--text); }
html.dark .table-container::after { background: linear-gradient(to right, transparent, var(--bg-surface)); }
html.dark .table-container::-webkit-scrollbar-track { background: transparent; }
html.dark .table-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-color: transparent; }
html.dark .table-container::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.15); }
html.dark .table-container::-webkit-scrollbar-corner { background: transparent; }
html.dark .table-fixed-layout { color: var(--text); }

/* ── 图形统计区域 ── */
html.dark .stats-chart-container { background: var(--bg-surface); border-color: var(--border); }
html.dark .chart-title { color: var(--text); }
html.dark .chart-legend-item { color: var(--text-secondary); }
html.dark .chart-legend-color { border-color: var(--border); }

/* ── 汇总首页 ── */
html.dark .sum-search-bar { background: var(--bg-surface); border-color: var(--border); }
html.dark .sum-filter-row { border-bottom-color: var(--border-light); }
html.dark .sum-cards { color: var(--text); }

/* ── 操作日志 ── */
html.dark .log-item { border-bottom-color: var(--border-light); color: var(--text); }
html.dark .log-time { color: var(--text-muted); }
html.dark .log-action { color: var(--text-secondary); }
html.dark .log-detail { color: var(--text-muted); }

/* ── 输入模态框 ── */
html.dark #inputModal .modal-dialog { background: var(--bg-surface); }
html.dark .input-textarea { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .input-textarea:focus { border-color: var(--primary); }
html.dark .input-msg { color: var(--text-secondary); }

/* ── 确认弹窗 ── */
html.dark #confirmModal .modal-dialog { background: var(--bg-surface); }
html.dark #confirmMessage { color: var(--text); }

/* ── 头像选择弹窗 ── */
html.dark #avatarModal .modal-dialog { background: var(--bg-surface); }

/* ── 设置弹窗 ── */
html.dark #settingsModal .modal-dialog { background: var(--bg-surface); }
html.dark .push-status-dot { color: var(--text-muted); }
html.dark .push-token-text { color: var(--text); }
html.dark .push-token-masked { color: var(--text-muted); }

/* ── 组织架构弹窗 ── */
html.dark #orgModal .modal-dialog { background: var(--bg-surface); }

/* ── 业绩编辑弹窗 ── */
html.dark #editPerformanceModal .modal-dialog { background: var(--bg-surface); }

/* ── 移动端适配补全 ── */
html.dark .text-muted { color: var(--text-muted); }
html.dark .search-bar { background: transparent; }
html.dark .card-sm { background: var(--bg-surface); border-color: var(--border); }

/* ── 筛选维度切换 ── */
html.dark .stats-dimension-toggle { background: var(--bg-elevated); border-color: var(--border); }
html.dark .dim-btn { color: var(--text-muted); }
html.dark .dim-btn:hover { color: var(--primary); }
html.dark .dim-btn.active { background: var(--primary); color: #fff; }
html.dark .stats-option-toggle { color: var(--text-muted); }

/* ── 财务标签页 ── */
html.dark .finance-tabs { background: rgba(255,255,255,0.03); }
html.dark .finance-tabs .tab-btn { color: var(--text-muted); }
html.dark .finance-tabs .tab-btn:hover { color: var(--primary); background: var(--primary-muted); }
html.dark .finance-tabs .tab-btn.active { background: var(--primary-muted); color: var(--primary); border-bottom-color: var(--primary); }

/* ── 收入登记 ── */
html.dark .income-summary-bar { background: var(--bg-surface); border-color: var(--border); }
html.dark .income-summary-info { color: var(--text-secondary); }
html.dark .income-summary-sep { color: var(--border); }
html.dark .income-summary-info strong { color: var(--text); }
html.dark .income-summary-actions { color: var(--text); }

/* ── 支出登记 ── */
html.dark .expense-label { color: var(--text-muted); }
html.dark .expense-card .exp-cell { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
html.dark .expense-card .exp-cell:focus { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-muted); }
html.dark .expense-del-btn { color: var(--text-muted); }
html.dark .expense-del-btn:hover { background: var(--danger-muted); color: var(--danger); }
html.dark .expense-summary-info { color: var(--text-secondary); }
html.dark .expense-summary-info strong { color: var(--text); }

/* ── 日志详情面板（已有的 dark 样式作一致性调整） ── */
html.dark .log-detail-panel { background: rgba(12,12,20,0.97); border-color: rgba(124,140,255,0.2); }
html.dark .log-detail-title { color: var(--text); }
html.dark .log-detail-close { background: var(--primary-muted); color: var(--text-muted); }
html.dark .log-detail-close:hover { background: var(--primary-muted); color: var(--text); }
html.dark .log-detail-pre { background: var(--bg-inset); color: var(--text); }
html.dark .log-detail-text { color: var(--text); }
html.dark .detail-expand-icon { background: var(--primary-muted); color: var(--primary); }

/* ── 编辑覆盖层 ── */
html.dark .edit-overlay { background: rgba(0,0,0,0.6); }

/* ── 杂项 ── */
html.dark .app-download-tabs { border-bottom-color: var(--border); }
html.dark .input-prefix-plus { color: var(--success); }
html.dark .push-tutorial { background: var(--bg-surface); }
html.dark .push-step-text p { color: var(--text-secondary); }
html.dark .product-toolbar-area { background: transparent; }

/* 强制色值覆写 */
html.dark .field-error { border-color: var(--danger) !important; }
html.dark .field-error-msg { color: var(--danger); }
html.dark .excel-checkbox:checked { accent-color: var(--primary); }

/* ── 杂项补充 ── */
html.dark .sortable-th:hover { background: var(--bg-hover); }
html.dark .app-footer { border-top-color: var(--border); background: var(--bg-surface); }
html.dark .sidebar-menu::-webkit-scrollbar,
html.dark .app-sidebar::-webkit-scrollbar { width: 0; height: 0; }
html.dark .mobile-sidebar::-webkit-scrollbar { width: 0; height: 0; }

/* ── login.css 遗漏覆盖 ── */
html.dark .login-header .logo-icon { color: var(--primary); }
html.dark .icon-inline { color: var(--text-muted); }
html.dark .captcha-input-wrap input { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .captcha-input-wrap input:focus { border-color: var(--primary); }
html.dark .captcha-input-uppercase { color: var(--text-muted); }
html.dark #changePwdModal .modal-inner,
html.dark #rememberLoginModal .modal-inner { background: transparent; }
html.dark #changePwdModal .modal-header { border-bottom-color: var(--border); }
html.dark .remember-forgot { color: var(--text-muted); }

/* ── mobile.css 遗漏覆盖 ── */
html.dark .badge-success { background: var(--success-muted); color: var(--success); }
html.dark .badge-danger { background: var(--danger-muted); color: var(--danger); }
html.dark .badge-warning { background: var(--warning-muted); color: var(--warning); }
html.dark .empty-state { color: var(--text-muted); }
html.dark .empty-text { color: var(--text-muted); }
html.dark .empty-icon { color: var(--text-muted); }
html.dark .filter-bar { background: var(--bg-surface); border-color: var(--border); }
html.dark .filter-row { border-bottom-color: var(--border-light); }
html.dark .filter-select { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .detail-value-danger { color: var(--danger); }
html.dark .btn-action { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark .btn-action:hover { background: var(--bg-hover); border-color: var(--primary); color: var(--primary); }
html.dark .card-title { color: var(--text); }
html.dark .card-badge { background: var(--bg-elevated); color: var(--text-secondary); border-color: var(--border); }
html.dark .content-area { background: transparent; }
html.dark .amount { color: var(--text); }
html.dark .detail-row { color: var(--text-secondary); }
/* ── 用于支持 future 组件的额外变量 ── */
html.dark .transition-colors { transition: background-color 0.2s, color 0.2s, border-color 0.2s; }

/* ── dashboard.css 中硬编码颜色元素的暗色覆盖 ── */
html.dark .legend-text { color: var(--text); }
html.dark .perf-detail-panel { background: var(--bg-surface); border-color: var(--border); }
html.dark .perf-detail-panel-approved { background: var(--success-muted); border-left-color: var(--success); }
html.dark .perf-detail-panel-rejected { background: var(--danger-muted); border-left-color: var(--danger); }
html.dark .perf-detail-panel-rejected-sm { background: var(--danger-muted); border-left-color: var(--danger); }
html.dark .current-user-row { background: var(--primary-muted); border-left-color: var(--primary-muted); }
html.dark .current-user-badge { color: var(--primary); }
html.dark .input-prefix-plus { color: var(--success); }
html.dark .input-prefix-minus { color: var(--danger); }
html.dark .required-star { color: var(--danger); }
html.dark .confirm-danger-hint { color: var(--danger); }

/* ── 移动端额外覆盖（mobile.css 的独立类） ── */
/* 暗色顶栏完全继承亮色——品牌渐变 + 紫色光晕，亮暗一致，不做额外覆盖 */
html.dark .top-bar-title { color: #fff; }
html.dark .content-area { background: var(--bg-app); }
html.dark .page.active { background: transparent; }
html.dark .profile-header { background: var(--bg-surface); border-color: var(--border); }
html.dark .profile-name { color: var(--text); }
html.dark .profile-jobnum { color: var(--text-secondary); }
html.dark .profile-info { background: var(--bg-surface); border-color: var(--border); border-top: 0.5px solid var(--border); }
html.dark .info-item { border-bottom-color: var(--border); }
html.dark .info-item span { color: var(--text-secondary); }
html.dark .info-item strong { color: var(--text); }
html.dark .loading { color: var(--text-secondary); }
html.dark .loading .spinner { border-color: rgba(255,255,255,0.1); border-top-color: var(--primary); }
html.dark .form-textarea { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .form-textarea:focus { border-color: var(--primary); }
html.dark .form-select { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
html.dark .form-select:focus { border-color: var(--primary); }
html.dark .card { background: var(--bg-surface); border-color: var(--border); box-shadow: var(--shadow); }
html.dark .card .card-body { color: var(--text); }
html.dark .modal-overlay { background: rgba(0,0,0,0.6); }
html.dark .modal-content { background: var(--bg-surface); border-color: var(--border); }
html.dark .modal-header { border-bottom-color: var(--border); }
html.dark .modal-title { color: var(--text); }
html.dark .modal-close { color: var(--text-muted); }
html.dark .modal-body { color: var(--text); }
html.dark .modal-footer { border-top-color: var(--border); }

/* 桌面端小焕新补丁（2026-08-07）暗色对应 */
html.dark .stat-card:hover {
  box-shadow: 0 6px 20px rgba(129, 140, 248, 0.18);
}
html.dark .menu-item.active::after {
  display: none;
}

/* ── 移动端 v2 组件暗色补全 ── */
/* .profile-hero 已改为 .card 同款表面卡（亮色 --card 白卡 / 暗色 --bg-surface），不再套用顶栏色。
   提交类型选中 Tab 不做暗色覆盖——直接沿用 mobile.css 的 --grad-brand 品牌渐变，小面积品牌色在暗色下清晰且不突兀 */
/* 业绩详情等弹窗状态徽标：恢复语义色底（避免被 .card-badge 灰底覆盖） */
html.dark .card-badge.badge-success { background: var(--success-muted); color: var(--success); }
html.dark .card-badge.badge-warning { background: var(--warning-muted); color: var(--warning); }
html.dark .card-badge.badge-danger { background: var(--danger-muted); color: var(--danger); }
/* 输入框/下拉/搜索框 focus 态：白底在暗色下刺眼，改为深底 */
html.dark .form-input:focus,
html.dark .form-select:focus,
html.dark .form-textarea:focus { background: var(--bg-elevated); }
html.dark .filter-select:focus { background: var(--bg-elevated); }
html.dark .search-input:focus { background: var(--bg-elevated); }

/* ── 桌面端 UI 优化补丁（2026-08-11）暗色对齐 ── */
/* 表格选中行在深色下用更明显的 --primary-muted，保证 accent 清晰可读 */
html.dark .data-table tbody tr.selected { background: var(--primary-muted); }
html.dark .data-table tbody tr.selected td:first-child {
  box-shadow: inset 3px 0 0 var(--primary);
  font-weight: 600;
}
/* 侧栏悬停微光在深色下同样成立（--primary 在暗色为浅靛蓝，辉光自然可见） */
html.dark .app-sidebar .menu-item:hover {
  box-shadow: 0 4px 14px rgba(129, 140, 248, 0.22);
}
