/* ============================================================
   tokens.css — YUAN.ABD 三门户共享设计令牌（Design Tokens）
   依据：DESIGN-SYSTEM.md §1–§4 + UI-REFACTOR-PLAN.md Phase 1
   ------------------------------------------------------------
   分层原则：
     1) Primitive  —— 品牌原始色，永不被站点覆盖，只被引用
     2) Semantic   —— 语义槽位（品牌 / 状态 / 表面 / 描边 / 阴影 / 动效）
                      由各站主题文件（theme-*.css）按需覆盖
     3) 外观技法常量 —— 扫光、光斑、内高光等，站点无需关心
   ------------------------------------------------------------
   注意：本站点保留 base.css 中既有的 --bg / --ink / --accent / --line
   等旧令牌作为兼容层，站点样式表继续覆盖它们即可；新组件层统一走
   本文件的 semantic 令牌，不再产生第三套命名。
   ============================================================ */

:root{
  /* ---------- 1. Primitive：品牌色（三站共享，DESIGN-SYSTEM §1.1） ---------- */
  --c-warm-white:#FFFDF7;
  --c-sun-yellow:#FFD84D;
  --c-sky-blue:#79CFFF;
  --c-mint:#91E6C1;
  --c-coral:#FF9278;
  --c-lavender:#A995FF;

  --c-ink-900:#18202A;
  --c-ink-700:#3A4350;
  --c-ink-500:#5C6673;
  --c-ink-300:#8A939E;

  /* 站点主色深阶（文字/图标可读性层级） */
  --c-learn-600:#2A6FB5;
  --c-learn-700:#0E5FA8;
  --c-learn-400:#4B8FCC;
  --c-travel-600:#E05E40;
  --c-travel-500:#E8784A;
  --c-travel-400:#F28B55;
  /* 文本级深阶：经 .tmp-shots/contrast-pick.cjs 计算，在暖白纸底(#FAF6EF)达
     5.14:1、暖黄底(#F1E9D7)达 4.58:1，均满足 WCAG AA 正文标准。
     用于 section 标签、页脚回链、图注等小字号橙色文字。 */
  --c-travel-700:#A84E2C;
  --c-sun-700:#8E7200;                  /* 文本级深金：暖白底 4.53:1 */
  --c-ink-mute-aa:#6E767E;              /* 文本级弱文字：米白 #FFFDF7 上 4.53:1；
                                            在暖白 #FFF6E2 上仅 4.29:1，暖底请改用 --c-ink-500 */
  --c-sun-600:#E5B800;
  --c-mint-600:#1FA97C;
  --c-lavender-600:#7C63E8;

  /* ---------- 2. Semantic：品牌 ---------- */
  --brand:var(--c-sun-yellow);          /* 站点主强调（主题文件覆盖） */
  --brand-ink:var(--c-ink-900);         /* 主色上的文字 */
  --brand-soft:rgba(255,216,77,.16);    /* 主色淡底 */
  --brand-2:var(--c-sky-blue);          /* 次强调 */

  /* ---------- 3. Semantic：表面与描边 ---------- */
  --ui-bg:var(--c-warm-white);
  --ui-bg-soft:#FFF6E2;
  --ui-surface:rgba(255,255,255,.72);
  --ui-surface-2:rgba(255,255,255,.92);
  --ui-line:rgba(24,32,42,.10);
  --ui-line-strong:rgba(24,32,42,.18);
  --ui-line-brand:color-mix(in srgb,var(--brand) 55%,transparent);

  /* ---------- 4. Semantic：阴影（DESIGN-SYSTEM §4：禁止厚重投影） ---------- */
  --ui-shadow-1:0 10px 24px -14px rgba(24,32,42,.22);
  --ui-shadow-2:0 24px 60px -30px rgba(24,32,42,.18);
  --ui-shadow-3:0 40px 90px -40px rgba(24,32,42,.26);
  --ui-shadow-brand:0 16px 38px -18px color-mix(in srgb,var(--brand) 62%,transparent);
  --ui-ring:0 0 0 3px color-mix(in srgb,var(--brand) 28%,transparent);

  /* ---------- 5. Semantic：圆角（DESIGN-SYSTEM §3） ---------- */
  --ui-r-s:10px;
  --ui-r-m:16px;
  --ui-r-l:24px;
  --ui-r-xl:32px;

  /* ---------- 6. Semantic：动效 ---------- */
  --ui-ease:cubic-bezier(.22,1,.36,1);
  --ui-ease-out:cubic-bezier(.16,1,.3,1);
  --ui-ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ui-t-fast:.22s;
  --ui-t-mid:.42s;
  --ui-t-slow:.8s;

  /* ---------- 7. 外观技法常量（组件层内部使用） ---------- */
  --fx-shine:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);
  --fx-highlight:inset 0 1px 0 rgba(255,255,255,.55);
  --fx-spot:radial-gradient(22rem 22rem at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--brand) 16%,transparent),transparent 70%);

  /* ---------- 8. 兼容别名：统一命名（--ui-*）与历史命名（--bg/--ink/--line…）
     两组指向同一语义槽位，站点主题文件覆盖其中任意一组即可全局生效。 */
  --bg:var(--ui-bg);
  --bg-2:var(--ui-bg-soft);
  --surface:var(--ui-surface);
  --surface-2:var(--ui-surface-2);
  --ink:var(--c-ink-900);
  --ink-soft:rgba(24,32,42,.72);
  --ink-faint:rgba(24,32,42,.5);
  --line:var(--ui-line);
  --line-strong:var(--ui-line-strong);
  --accent:var(--brand);
  --accent-ink:var(--brand-ink);
}

/* 降级：不支持 color-mix 时回落为固定暖灰（不依赖 JS，纯声明式） */
@supports not (color:color-mix(in srgb,red 50%,transparent)){
  :root{
    --ui-line-brand:rgba(255,216,77,.55);
    --ui-shadow-brand:0 16px 38px -18px rgba(24,32,42,.28);
    --ui-ring:0 0 0 3px rgba(255,216,77,.3);
    --fx-spot:radial-gradient(22rem 22rem at var(--mx,50%) var(--my,50%),rgba(24,32,42,.05),transparent 70%);
  }
}
