:root {
  --color-bg: #f5f5f7;
  --color-surface: #ffffff;
  --color-surface-hover: #f0f0f5;
  --color-primary: #007aff;
  --color-primary-light: rgba(0,122,255,0.1);
  --color-text: #1d1d1f;
  --color-text-secondary: #86868b;
  --color-text-tertiary: #aeaeb2;
  --color-border: #e5e5ea;
  --color-border-light: #f0f0f5;
  --color-success: #34c759;
  --color-warning: #ff9500;
  --color-danger: #ff3b30;

  --color-mood-2: #ff3b30;
  --color-mood-1: #ff9500;
  --color-mood-0: #aeaeb2;
  --color-mood-1p: #34c759;
  --color-mood-2p: #007aff;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.1);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);

  --font-sans: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', sans-serif;
  --font-mono: 'SF Mono', 'Cascadia Code', 'Consolas', monospace;

  --font-size-xs: 11px;
  --font-size-sm: 13px;
  --font-size-base: 15px;
  --font-size-md: 17px;
  --font-size-lg: 20px;
  --font-size-xl: 24px;
  --font-size-xxl: 28px;

  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s ease;

  --tab-bar-height: 56px;
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --safe-area-top: env(safe-area-inset-top, 0px);
  /*
   * 导航栏实际占位高度 = 可视高度 + 底部安全区。
   * 浏览器内 safe-area-inset-bottom 通常为 0（页面不延伸到 Home 指示条下方），
   * 但 PWA 独立模式配合 viewport-fit=cover 时它约为 34px，必须计入总高度，
   * 否则 border-box 会把图标区压缩到 56-34=22px，导致 Tab 图标被挤小。
   */
  --tab-bar-total: calc(var(--tab-bar-height) + var(--safe-area-bottom));
}

[data-theme="dark"] {
  --color-bg: #000000;
  --color-surface: #1c1c1e;
  --color-surface-hover: #2c2c2e;
  --color-primary: #0a84ff;
  --color-primary-light: rgba(10,132,255,0.15);
  --color-text: #f5f5f7;
  --color-text-secondary: #98989d;
  --color-text-tertiary: #636366;
  --color-border: #38383a;
  --color-border-light: #2c2c2e;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.5);
}