/* =============================================================================
 * AGENT信源群系统 · 设计令牌（Design Tokens）唯一真源  ——  V1.73.8
 * -----------------------------------------------------------------------------
 * 背景（审计 P2）：平台后台 admin/header.php 与品牌后台 brand/header.php 各内联了一份
 *   24 行的 :root，两处字面完全一致但互不知情；前台 public/assets/css/app.css 又有一份
 *   口径不同的 :root（--primary 靛蓝 #4338ca vs 后台宝蓝 #2563eb；--surface 在前台是浅灰
 *   区块、在后台却是白色卡片 —— 同名反义，跨端复用组件必踩坑）。
 *
 * 收敛结果：色板以庄少爷 2026-09-12 定稿为准，三端共用同一份令牌；
 *   后台 header 改为 <link> 引入本文件，不再各自内联；前台 app.css 不再重复声明同名令牌。
 *
 * 语义约定（避免再出现「同名反义」）：
 *   --bg       页面底色（后台浅灰 / 前台白，由各自 body 规则决定，本文件给后台口径）
 *   --card     卡片底色（永远 #ffffff，前台后台同义）
 *   --surface  后台卡片面（= --card）。前台另有 --surface 语义相反的旧用法，
 *              已在 app.css 内显式重声明为「浅灰区块」并加注释，不要跨端照抄。
 *   --muted    次要文字；--muted-2 更弱一级
 *   --radius   统一圆角
 * ========================================================================== */
:root {
  /* —— 品牌色（定稿） —— */
  --primary: #2563eb;
  --primary-soft: #eff6ff;
  --primary-hover: #1d4ed8;
  --primary-deep: #1e40af;   /* Hero 渐变末端色（#996：可被主题 [data-ctk-theme] 覆盖） */
  --accent: #d97706;
  --accent-soft: #fffbeb;

  /* —— 中性色 —— */
  --bg: #f6f8fb;
  --card: #ffffff;
  --surface: #ffffff;
  --surface2: #f1f5f9;
  --surface3: #fafbfd;
  --border: #e2e8f0;
  --border-strong: #cbd5e1;
  --text: #1e293b;
  --muted: #64748b;
  --muted-2: #94a3b8;

  /* —— 文本 / 链接（V1.78.49 #978-C-02：从六套前台模板 CSS 里收敛上来） ——
   *   这几个值原先在 atlas/prism/beacon/ledger/mosaic 里各写各的（同一色六套模板六种写法），
   *   主题换色时只改 tokens.css 一处就全部跟着变，不再逐个模板去改。
   */
  --ink: #0f172a;          /* 最深正文（大标题、深底白字区） */
  --ink-2: #334155;        /* 次级正文（正文段落、表头） */
  --link: #2563eb;         /* 链接蓝（比 --primary 亮一档，专用于可点文字） */
  --link-soft: #dbeafe;    /* 链接底 / 选中态浅底 */
  --surface-soft: #f8fafc; /* 比 --surface2 再浅一档的区块底 */
  --accent-2: #06b6d4;     /* 青色点缀（beacon / mosaic 用），跟 --accent 的橙不混 */

  /* —— 语义色 —— */
  --success: #047857;
  --success-soft: #ecfdf5;
  --danger: #ef4444;
  --danger-soft: #fef2f2;

  /* —— 形状 —— */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
  --shadow: 0 4px 14px rgba(15, 23, 42, .06);
  --radius: 10px;
}

/* =============================================================================
 * 响应式断点约定（#1341 · 唯一口径，写进 README 之外的真源）
 * -----------------------------------------------------------------------------
 * 背景：整改前全站 CSS 出现过 15 种不同的 max-width（1100/1000/980/920/900/880/
 *   860/768/760/720/700/640/600/560…），同一台设备在不同页面触发不同的断点，
 *   「这页这样、那页那样」没法复盘。CSS 的媒体查询**不能吃 var()**，
 *   所以无法像颜色那样做变量化，只能靠约定 + 门禁钉住。
 *
 * 四档标准断点（新代码只许写这四个值，其余一律视为待整改）：
 *     1200px  小笔记本 / 平板横屏：多列网格降一档
 *     992px   平板竖屏：行内排布改折行
 *     768px   手机 / 窄窗：核心兜底（单列 + 表格自滚 + 点击区放大）
 *     576px   小屏手机：再收一档留白
 *
 * 只写 max-width 的移动端优先兜底；确需 min-width 时用同四个值。
 * 全局兜底在 public/assets/css/ui-responsive.css（admin/brand header 各引一次），
 *   新增页面不必自己再写一遍「表格怎么滚、按钮多大」。
 * 豁免：纯变量表（本文件、themes/custom-presets.css）不需要 @media。
 * ========================================================================== */
