/* ==================================================================
   tokens.css — 设计 token 唯一来源
   规范：组件区（admin.css/public.css）只允许引用 SEMANTIC 层与组件级
   token；出现 PRIMITIVE 引用即违规。详见 doc/DESIGN_SPEC.md。
   来源：Vercel Geist / GitHub Primer / Linear / Stripe / shadcn 融合，
   逐值标注见 doc/ui-research-tokens.md。
   ================================================================== */

/* == 1. PRIMITIVE 原始层（禁止组件直接引用） ====================== */
:root {
  /* 灰阶 */
  --gray-0: #ffffff;
  --gray-50: #fafafa;    /* Geist surface */
  --gray-100: #f6f8fa;   /* Primer bgColor-muted */
  --gray-200: #eef1f3;
  --gray-300: #e5e7eb;
  --gray-400: #d1d9e0;   /* Primer border-default */
  --gray-500: #818b98;
  --gray-600: #59636e;   /* Primer fg-muted */
  --gray-900: #171717;   /* Geist gray-1000 */

  /* 品牌与状态（Primer 官方浅底成对值） */
  --blue-500: #0969da;
  --blue-600: #0860ca;
  --violet-500: #5e6ad2; /* Linear lavender */
  --green-600: #1a7f37;  --green-100: #dafbe1;  --green-700: #1f883d;
  --red-600:   #d1242f;  --red-100:   #ffebe9;  --red-700:   #cf222e;
  --amber-600: #9a6700;  --amber-100: #fff8c5;
  --purple-600:#8250df;  --purple-100:#fbefff;
  --blue-100:  #ddf4ff;

  /* 间距：4px 基 */
  --scale-1: 4px;  --scale-2: 8px;  --scale-3: 12px; --scale-4: 16px;
  --scale-5: 20px; --scale-6: 24px; --scale-8: 32px; --scale-12: 48px;

  /* 圆角 */
  --r-sm: 4px; --r-md: 6px; --r-lg: 8px; --r-xl: 12px; --r-full: 9999px;

  /* 字号（Geist 阶梯） */
  --fs-xs: 12px; --fs-sm: 13px; --fs-base: 14px; --fs-md: 16px;
  --fs-lg: 18px; --fs-xl: 20px; --fs-2xl: 24px;

  /* 字体栈 */
  --font-sans: Inter, -apple-system, "Segoe UI", "PingFang SC",
               "Microsoft YaHei", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* == 2. SEMANTIC 语义层（组件允许引用的唯一 token 层） ============= */
:root {
  /* 背景层次 */
  --color-bg: var(--gray-100);            /* 页面底 #f7f8fa 视觉（Primer muted）*/
  --color-bg-app: #f7f8fa;
  --color-bg-elevated: var(--gray-0);     /* 卡片/弹层 */
  --color-bg-subtle: var(--gray-100);     /* 行 hover/表头/次级填充 */
  --color-bg-disabled: var(--gray-50);

  /* 文字三级 */
  --color-text: var(--gray-900);
  --color-text-secondary: var(--gray-600);
  --color-text-tertiary: var(--gray-500); /* 仅占位/禁用，勿用于关键信息 */

  /* 边框（border-first：静态分层靠边框不靠阴影） */
  --color-border: var(--gray-300);
  --color-border-strong: var(--gray-400); /* 输入框/hover 态 */

  /* 主色/链接/焦点 */
  --color-accent: var(--violet-500);      /* 激活 tab/选中/focus ring */
  --color-accent-hover: #4c56b5;
  --color-link: var(--blue-500);
  --color-primary-btn: var(--blue-500);   /* 蓝色主按钮（项目决策，黑底为备选）*/
  --color-primary-btn-hover: var(--blue-600);

  /* 状态：前景/浅底成对（badge、行内高亮共用） */
  --color-success: var(--green-600);      --color-success-bg: var(--green-100);
  --color-danger: var(--red-600);         --color-danger-bg: var(--red-100);
  --color-warning: var(--amber-600);      --color-warning-bg: var(--amber-100);
  --color-info: var(--blue-500);          --color-info-bg: var(--blue-100);
  --color-review: var(--purple-600);      --color-review-bg: var(--purple-100);
  --color-pending: var(--gray-600);       --color-pending-bg: var(--gray-200);
  /* 实心强调（每页至多一处） */
  --color-success-solid: var(--green-700);
  --color-danger-solid: var(--red-700);
  --color-info-solid: var(--blue-500);

  /* 阴影（Geist elevation） */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);                                    /* 卡片静止 */
  --shadow-sm: 0 0 0 1px rgba(0, 0, 0, 0.10), 0 4px 12px rgba(0, 0, 0, 0.08);   /* hover/下拉 */
  --shadow-md: 0 8px 16px -4px rgba(0, 0, 0, 0.05),
               0 24px 32px -8px rgba(0, 0, 0, 0.10);                              /* modal */
  --shadow-focus: 0 0 0 3px rgba(94, 106, 210, 0.30);                            /* focus ring */

  /* 组件级尺寸锚点（shadcn） */
  --ctl-height: 36px;      /* 按钮/输入框 */
  --ctl-height-sm: 32px;
}
