/* =========================================================
   设计令牌（Design Tokens）—— 全站变量唯一定义处
   —— 由 css/style.css 的 :root 原样迁出，取值一字未改（P1-4）。

   为什么单独成文件：
     · 改造前「基础层变量」散落在 style.css 顶部，而 talent.css / teambuild.css /
       landing-brand.css / peipao.css 各自又有一份 :root 覆盖同名变量，
       形成「同名不同值」，维护者无法判断哪个才是权威值。
     · 现在职责切分清晰：
         tokens.css      → 全站基础层（本文件），先于所有样式表加载
         页面级 CSS 的 :root → 页面主题层，**只覆盖本页确实需要差异化的变量**，
                              且必须写明「为何与基础层不同」

   加载顺序（8 个页面一致）：tokens.css → style.css → 页面 CSS（如有）
   页面 CSS 后加载，其 :root 覆盖仍然生效，故本次迁移不改变任何计算样式。

   ⚠ 约定：
     1. 新增变量一律写进本文件；页面 CSS 只消费、只在主题层覆盖。
     2. 不得在页面 CSS 里新增「与基础层同名但语义不同」的变量（历史遗留见各文件注释）。
   ========================================================= */

:root {
  --c-primary: #165DFF;          /* 主色-科技蓝 */
  --c-primary-hover: #4080FF;    /* 悬浮-浅蓝 */
  --c-primary-active: #0E42C1;   /* 按压-深蓝 */
  --c-gradient: linear-gradient(135deg, #165DFF, #0E42C1); /* 品牌渐变 */
  --c-gold: #D4AF66;             /* 辅助点缀金（仅统计数字） */
  --c-bg-soft: #F2F7FF;         /* 模块背景 / 表格隔行 */
  --c-primary-soft: #F0F5FF;    /* 需求优化v10 第1条：logo 主色（#165DFF）的浅色底 —— 首页人才管理卡片背景 */
  --c-border: #E4E7ED;          /* 分割线 / 边框 */
  --c-text: #303133;            /* 正文主文字 */
  --c-text-sub: #606266;        /* 次要文字 */
  --c-text-ph: #606266;         /* 占位/辅助文字（2026-09-25 由 #909399 调深：对白底 3.08:1 未达 WCAG AA 4.5:1）*/
  --c-mask: rgba(0, 0, 0, 0.55);/* 遮罩 */
/* ---------- 1.2 字体族（全局唯一来源） ---------- */
  /* 全站正文/标题统一使用此栈；各落地页 CSS 的 --f-sans / --sans / --font-sans
     与 .tb-page 均引用它，**不再各自写一份**。
     背景：清理前全站 sans 栈有 4 种互不相同的写法（含 peipao.css 以 "Noto Sans SC" 打头），
     在「装了 Noto Sans SC 但未装 Source Han Sans SC」的机器上会造成同站两种正文字体。
     顺序为偏好序：思源黑体 → 苹方 → 雅黑 → Noto → 冬青 → 系统 UI。 */
  --font-sans-base: "Source Han Sans SC", "思源黑体", "PingFang SC", "Microsoft YaHei", "微软雅黑", "Noto Sans SC", "Hiragino Sans GB", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;


  /* 1.3 全局组件固定参数 */
  --radius-card: 8px;
  --radius-btn: 6px;
  --shadow-card: 0 2px 10px rgba(22, 93, 255, 0.08);
  --shadow-card-hover: 0 6px 18px rgba(22, 93, 255, 0.14);
  --gap-module: 60px;           /* 模块上下外边距 */
  --pad-card: 24px;             /* 卡片内边距 */
  --gap-card: 18px;             /* 卡片间距（适度收紧，缩小图片边框观感） */
  --nav-h: 64px;               /* 导航固定高度（任务2：降低高度） */
  --topbar-h: 88px;            /* 顶部功能条「设计高度」——只由 CSS 决定，JS 永不写它 */
  --topbar-strip-h: 32px;      /* r9 顶部欢迎条「设计高度」。取值 32px = 间距阶梯 --sp-8，
                                  与 dashiguanpei.cn 官网 .bartop 实测高度一致（截图逐行
                                  扫描：背景 #F8F8F8 自 y=7 至 y=38、底部 1px #E8E8E8 分隔线，
                                  文字墨迹 y=17..29 垂直居中于 32px 内）。 */
  --topbar-base: var(--topbar-h); /* 顶部条「实测基准」——由 syncTopbarHeight() 按 .topbar__inner 实测值写入。
                                     必须与 --topbar-h 分开：若共用一个变量，「测量值回写 → 盒高变化 → 再测量」
                                     构成正反馈，实测会无界增长（90→178→179→…），且整页截图/设备模拟这类
                                     临时视口会被污染并永久卡住。拆开后视口恢复即自动复位。 */
  --topbar-effective: calc(var(--topbar-base) + var(--topbar-strip-h));
                               /* 顶部条生效高度 = 实测基准 + 欢迎条高度。
                                  引用方：.nav{top:}、.float-bar{top:}、.hero / .container--page /
                                  .detail-banner 的页首 margin-top、peipao.css 与 teambuild.css 的
                                  让位计算 —— 故条幅增高只需在此处叠加一次，导航与首屏让位自动跟随。
                                  ⚠ 不得改用 var(--topbar-h) 硬编码：窄屏 .topbar__inner 为 height:auto，
                                  实测基准会变化，必须继续以 --topbar-base 为准。
                                  非首页下滑折叠时经 html.topbar-collapsed 归 0，仅首页/顶部保持原高。 */
  --container: 1280px;         /* 内容容器最大宽度（需求轮5·需求6：由 1200px 适度增至 1280px；
                                  单一来源，同时驱动 .container 与 .nav__inner。
                                  取值依据：1440px 视口下左右留白各 80px；1366px 下各 43px；
                                  ≤1280px 时容器退化为 100% 视口宽，移动端自适应路径完全不变。
                                  之所以不再往上取（如 1320px）：1366px 视口下留白将压到 23px，
                                  已逼近 .container 自身的 20px 内边距，观感局促。） */

  /* ============================================================
     设计令牌阶梯
     原实现中同一语义存在多种取值（如卡片标题 19px 与规范 18px 并存、
     动效时长 .15/.2/.3s 混用），此处在保持观感的前提下收敛为单一来源。
     ============================================================ */
  /* 间距（4 的倍数）*/
  --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 20px;  --sp-6: 24px;  --sp-8: 32px;  --sp-10: 40px;
  --sp-12: 48px; --sp-15: 60px; --sp-16: 64px;
  /* 字号阶梯 */
  --fs-xs: 12px; --fs-sm: 13px; --fs-base: 14px; --fs-md: 15px;
  --fs-lg: 16px; --fs-xl: 18px; --fs-2xl: 22px; --fs-3xl: 28px; --fs-4xl: 36px;
  /* 行高 */
  --lh-tight: 1.35; --lh-snug: 1.5; --lh-base: 1.7; --lh-loose: 1.8;
  /* 圆角补全 */
  --radius-sm: 4px; --radius-lg: 12px; --radius-pill: 999px;
  /* 动效（统一时长与缓动，原为 .15/.2/.3s + 默认 ease 混用）*/
  --dur-fast: .15s; --dur-base: .25s; --dur-slow: .35s;
  --ease-out: cubic-bezier(.16, 1, .3, 1);      /* 出场：快速起步、柔和收尾 */
  --ease-std: cubic-bezier(.4, 0, .2, 1);        /* 标准：状态色切换 */
  /* 卡片悬浮位移（统一节奏）*/
  --lift-card: -4px;
  /* 层级 */
  --z-nav: 1001; --z-drawer: 1060; --z-modal: 1100;
}
