:root {
  --primary: #6366f1; --primary-light: #818cf8; --primary-dark: #4f46e5;
  --accent: #f43f5e; --accent-light: #fb7185;
  --success: #10b981; --warning: #f59e0b; --error: #ef4444; --info: #3b82f6;
  --bg-page: #ffffff; --bg-page-soft: #f8fafc; --bg-card: #ffffff;
  --bg-hover: #f1f5f9; --bg-input: #f8fafc;
  --border: #e2e8f0; --border-light: #f1f5f9;
  --text-primary: #0f172a; --text-secondary: #475569; --text-tertiary: #94a3b8;
  --text-disabled: #cbd5e1; --text-on-primary: #ffffff;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.04);
  --shadow-2: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-3: 0 4px 6px -1px rgba(0,0,0,0.06), 0 2px 4px -1px rgba(0,0,0,0.04);
  --shadow-4: 0 10px 15px -3px rgba(0,0,0,0.06), 0 4px 6px -2px rgba(0,0,0,0.04);
  --gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
  --gradient-accent: linear-gradient(135deg, #f43f5e 0%, #fb7185 100%);
  --gradient-hero: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a78bfa 100%);
  --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px; --radius-xl: 20px; --radius-full: 9999px;
  --space-xs: 4px; --space-sm: 8px; --space-md: 12px; --space-lg: 20px; --space-xl: 28px;
}

/* 夜间模式 — :root[data-theme] 特异性(0,2,0)高于内联:root(0,1,0) */
:root[data-theme="dark"] {
  --primary: #818cf8; --primary-light: #a5b4fc; --primary-dark: #6366f1;
  --accent: #fb7185; --accent-light: #fda4af;
  --success: #34d399; --warning: #fbbf24; --error: #f87171; --info: #60a5fa;
  --bg-page: #0f172a; --bg-page-soft: #1e293b; --bg-card: #1e293b;
  --bg-hover: #334155; --bg-input: #1e293b;
  --border: #334155; --border-light: #2d3a4d;
  --text-primary: #f1f5f9; --text-secondary: #cbd5e1; --text-tertiary: #64748b;
  --text-disabled: #475569; --text-on-primary: #ffffff;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.2);
  --shadow-2: 0 1px 3px rgba(0,0,0,0.3), 0 1px 2px rgba(0,0,0,0.2);
  --shadow-3: 0 4px 6px -1px rgba(0,0,0,0.3), 0 2px 4px -1px rgba(0,0,0,0.2);
  --shadow-4: 0 10px 15px -3px rgba(0,0,0,0.3), 0 4px 6px -2px rgba(0,0,0,0.2);
  --gradient-primary: linear-gradient(135deg, #818cf8 0%, #a78bfa 100%);
  --gradient-accent: linear-gradient(135deg, #fb7185 0%, #fda4af 100%);
  --gradient-hero: linear-gradient(135deg, #4f46e5 0%, #6366f1 50%, #818cf8 100%);
}

/* 夜间模式过渡动画 */
:root[data-theme-transition] * {
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, fill 0.3s ease, stroke 0.3s ease !important;
}
