/* 認知無障礙設計變數 (Design Tokens) */
:root {
  /* 品牌與功能色彩系統 (HSL) */
  --color-labor: hsl(215, 85%, 45%);       /* 勞保/公司主色：穩重藍 */
  --color-labor-light: hsl(215, 85%, 95%);
  --color-health: hsl(152, 70%, 36%);      /* 健保/成功色：活力綠 */
  --color-health-light: hsl(152, 70%, 94%);
  --color-warning: hsl(38, 95%, 46%);      /* 警告/兼職色：醒目黃橘 */
  --color-warning-light: hsl(38, 95%, 94%);
  --color-danger: hsl(0, 85%, 50%);        /* 紅燈/退保/阻斷色：警戒紅 */
  --color-danger-light: hsl(0, 85%, 95%);
  --color-purple: hsl(270, 75%, 48%);      /* 工會/眷屬/特殊色：紫色 */
  --color-purple-light: hsl(270, 75%, 95%);

  /* 中性背景與表面色 */
  --bg-app: hsl(210, 20%, 98%);
  --bg-card: hsl(0, 0%, 100%);
  --bg-subtle: hsl(210, 20%, 94%);
  --border-color: hsl(210, 15%, 82%);
  --border-focus: var(--color-labor);

  /* 文字高對比系統 (WCAG AAA 對比度強化至 8.5:1+) */
  --text-main: hsl(215, 30%, 12%);         /* 極深藍黑 #151D28 */
  --text-muted: hsl(215, 20%, 28%);        /* 高對比次要文字 #394759 (8.5:1 AAA) */
  --text-on-accent: hsl(0, 0%, 100%);

  /* 易讀字體與字級系統 (嚴格鎖定 18px~36px，無微小文字) */
  --font-family: 'Noto Sans TC', system-ui, -apple-system, sans-serif;
  --font-size-sm: 1.125rem;   /* 18px (全站最小字級，確保易讀) */
  --font-size-base: 1.2rem;   /* 19.2px (標準文字) */
  --font-size-md: 1.35rem;    /* 21.6px (按鈕/輸入框) */
  --font-size-lg: 1.6rem;     /* 25.6px (卡片標題) */
  --font-size-xl: 2rem;       /* 32px (大標題) */
  --font-size-xxl: 2.5rem;    /* 40px (截稿鐘/數字) */

  --line-height-base: 1.7;
  --letter-spacing-wide: 0.035em;

  /* 陰影與圓角 */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --shadow-sm: 0 3px 8px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.09);
  --shadow-lg: 0 14px 36px rgba(0, 0, 0, 0.13);
  --shadow-alert: 0 0 0 6px rgba(220, 38, 38, 0.25);

  /* 動畫時間 */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s ease;
}

/* 基礎重置與排版設定 */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  letter-spacing: var(--letter-spacing-wide);
  color: var(--text-main);
  background-color: var(--bg-app);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
