:root {
  /* 视觉设计系统 V1：所有新增界面必须引用这些语义变量，不直接散写颜色与间距。 */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
  --space-7: 64px;

  --color-surface-page: #f8fafc;
  --color-surface-base: #ffffff;
  --color-surface-subtle: #f1f5f9;
  --color-surface-muted: #f8fafc;
  --color-surface-selected: #eef2ff;
  --color-border-default: #e2e8f0;
  --color-border-strong: #cbd5e1;
  --color-text-primary: #0f172a;
  --color-text-secondary: #64748b;
  --color-text-tertiary: #94a3b8;
  --color-action-primary: #18181b;
  --color-action-primary-hover: #27272a;
  --color-action-primary-soft: #f4f4f5;
  --color-state-success: #15803d;
  --color-state-success-soft: #f0fdf4;
  --color-state-warning: #b45309;
  --color-state-warning-soft: #fffbeb;
  --color-state-danger: #b91c1c;
  --color-state-danger-soft: #fef2f2;
  --color-nav: #ffffff;
  --color-nav-hover: #f1f5f9;
  --color-nav-active: #f8fafc;

  --font-title: 20px;
  --font-body: 14px;
  --font-helper: 12px;
  --font-metric: 24px;
  --font-prompter: 48px;
  --line-height-body: 1.6;
  --weight-regular: 400;
  --weight-medium: 600;
  --weight-bold: 700;

  --radius-control: 8px;
  --radius-card: 10px;
  --shadow-card: 0 1px 2px rgb(15 23 42 / 4%);
  --shadow-popover: 0 8px 24px rgb(15 23 42 / 10%);
  --shadow-modal: 0 24px 56px rgb(15 23 42 / 18%);
  --duration-fast: 120ms;
  --easing-standard: cubic-bezier(.2, .8, .2, 1);
  --z-base: 1;
  --z-sticky: 10;
  --z-popover: 30;
  --z-modal: 50;

  /* 兼容旧页面：新页面只使用上方语义 Token。 */
  --bg: var(--color-surface-page);
  --panel: var(--color-surface-base);
  --panel-soft: var(--color-surface-subtle);
  --line: var(--color-border-default);
  --text: var(--color-text-primary);
  --muted: var(--color-text-secondary);
  --ink: var(--color-text-primary);
  --nav: var(--color-nav);
  --nav-2: var(--color-nav-active);
  --teal: var(--color-action-primary);
  --teal-dark: var(--color-action-primary-hover);
  --blue: var(--color-action-primary);
  --amber: var(--color-state-warning);
  --red: var(--color-state-danger);
  --green: var(--color-state-success);
  --shadow: var(--shadow-popover);
}
