/* LYNCA tokens — the LYNCA-specific layer on top of the Nocturne snapshot.
   正本：Linear 【Infra】LYNCA Design Standard（值的表在正本第 11 节，这里是实现）。
   加载顺序：在 nocturne/styles.css 之后。本文件只做两件事 —— 补 Nocturne 没有的值，
   以及对 Nocturne 组件的少数覆盖，每处标注对应章节。不改 nocturne/ 下任何文件。
   验收门（正本 §12 第 6 条）：本文件全部 token 须在应用 :root 逐字存在。
   对 Nocturne token 的覆盖只有两个：--font-heading、--font-body（加中文回退，§11.6）。 */

:root {
  /* §5.1.1 语义状态色 — 与 Nocturne 色阶同轴生成：取中性阶每档的 L，取强调色阶每档的
     C × 0.75，换色相。基准与 --color-accent 同 L 0.660。只用于状态标记；不铺、不装饰、
     永远带文字（§11.2、§11.7）。unverified · self_declared · PENDING · 进行中不占色相，
     用 --color-neutral-* 加文字。 */
  --color-verified: #67a274;   /* hue 150 · verified / VALIDATED / 成功完成 */
  --color-generated: #b28b4c;  /* hue 78  · generated_presentation / generated_decase / 通用警告 */
  --color-rejected: #c57b75;   /* hue 25  · REJECTED / 失败 / 不可恢复错误 */

  --color-verified-100: #f1f8f2;
  --color-verified-200: #ddeddf;
  --color-verified-300: #bedec4;
  --color-verified-400: #90c79a;
  --color-verified-500: #6ca979;
  --color-verified-600: #4f8a5c;
  --color-verified-700: #3b6a46;
  --color-verified-800: #294b31;
  --color-verified-900: #1e3022;

  --color-generated-100: #faf5ed;
  --color-generated-200: #f2e6d6;
  --color-generated-300: #e6d1b1;
  --color-generated-400: #d6b178;
  --color-generated-500: #b89152;
  --color-generated-600: #997333;
  --color-generated-700: #765825;
  --color-generated-800: #543e1a;
  --color-generated-900: #352916;

  --color-rejected-100: #fdf3f2;
  --color-rejected-200: #f9e2e0;
  --color-rejected-300: #f3c8c4;
  --color-rejected-400: #e9a29c;
  --color-rejected-500: #cc817b;
  --color-rejected-600: #ab635e;
  --color-rejected-700: #844b47;
  --color-rejected-800: #5f3532;
  --color-rejected-900: #3b2422;

  /* §5.3 页面级刻度 — Nocturne 到 --space-8 为止；留在同一条 N × 3 的算术上 */
  --space-12: 36px;
  --space-16: 48px;
  --space-24: 72px;

  /* §5.2 / §11.6 字体角色 — display 是 Nocturne 的衬线 heading 加中文回退；body 加中文回退；
     mono 是补充。h1–h3 在 Nocturne 里走 --font-heading，所以把它指回 display 以带上回退。 */
  --font-display: "Source Serif 4", "Songti SC", "Noto Serif SC", Georgia, serif;
  --font-heading: var(--font-display);
  --font-body: "Inter", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* §7 动效 */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);      /* 进入、退出 */
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);  /* 屏内移动 */
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);   /* 抽屉、底部面板 */
  --motion-fast: 140ms;      /* 按下反馈、tooltip */
  --motion-standard: 220ms;  /* 菜单、浮层、到场 */
  --motion-drawer: 400ms;    /* 抽屉 */

  /* §8 触控 */
  --touch: 44px;
}

/* §11.6 控件回 Inter — Nocturne 把 --font-heading 用在这些类上；LYNCA 的衬线只给 h1–h3 与长文 */
h4, h5, h6, .btn, .nav-brand, .card-title, .dialog-title, .seg-opt, .table th, .tag {
  font-family: var(--font-body);
}
.prose, .prose p { font-family: var(--font-display); }

/* §9 对 Nocturne 组件的两处修正 */
.card-kicker { font-size: 11px; }                 /* Nocturne 的 10px 低于字号下限 */
.card-meta { color: var(--color-neutral-500); }   /* 50% mix 在 surface 上 4.26:1，不过线；neutral-500 5.25:1 */

/* §6.3 状态标签 — 100 文字在 800 填充上 ≥ 9.0:1；描边版 500 描边 + 300 文字 */
.tag-verified  { background: var(--color-verified-800);  color: var(--color-verified-100); }
.tag-generated { background: var(--color-generated-800); color: var(--color-generated-100); }
.tag-rejected  { background: var(--color-rejected-800);  color: var(--color-rejected-100); }
.tag-verified.tag-outline  { background: transparent; border: 1px solid var(--color-verified-500);  color: var(--color-verified-300); }
.tag-generated.tag-outline { background: transparent; border: 1px solid var(--color-generated-500); color: var(--color-generated-300); }
.tag-rejected.tag-outline  { background: transparent; border: 1px solid var(--color-rejected-500);  color: var(--color-rejected-300); }
/* unverified · self_declared · PENDING → .tag-neutral，不加色 */

/* §6.2 等宽与数字 */
.mono { font-family: var(--font-mono); user-select: all; }   /* 证书号、序列号、run id、hash */
.num, .table td { font-variant-numeric: tabular-nums; }      /* 价格、数量、表格 */

/* §5.2 中文 — 字距归零；小字在中文下抬到 12px；长文行高 1.7 */
:is(h1, h2, h3, h4, h5, h6, .card-kicker, .table th, .tag):lang(zh) { letter-spacing: 0; }
:is(.tag, .card-meta, .table th, figcaption, .card-kicker):lang(zh) { font-size: 12px; }
.prose:lang(zh) { line-height: 1.7; }

/* §8 触控命中区 — 触屏上所有可点元素 ≥ 44 × 44 */
@media (pointer: coarse) {
  .btn, .input, .seg-opt, .radio { min-height: var(--touch); }
  .btn-icon { width: var(--touch); height: var(--touch); }
}
