/* ==========================================================================
   蜜雪AI哨兵 · 设计令牌
   全部数值取自 Ardot 设计稿实测（fileId 727402198596823）
   颜色由设计稿 0~1 浮点值换算：hex = round(v * 255)
   ========================================================================== */

:root {
  /* ---------- 品牌色 ---------- */
  /* 品牌红：仅用于 ① 侧边栏 Logo 方块 ② 主按钮填充 */
  --c-brand: #E60012;
  /* 主题蓝：所有其他强调（选中导航、信息条、链接、chip、曲线、强调图标） */
  --c-blue: #2457D9;
  --c-blue-tint: #EEF3FE;
  --c-blue-tint-line: #C3D2F7;

  /* ---------- 语义色（不受主题色影响） ---------- */
  --c-danger: #D92D20;          /* 高危 / 错误 / 必填 */
  --c-danger-deep: #B42318;     /* 危险底色上的深字 */
  --c-danger-tint: #FEF3F2;     /* 危险浅底 */
  --c-danger-tint-line: #F6C9C4;/* 危险浅描边 */
  --c-amber: #E0A030;           /* 待处理 / 核查中 / 进行中 */
  --c-amber-tint: #FDF6E8;
  --c-green: #14804A;           /* 已修复 / 通过 / 已接入 */
  --c-green-tint: #ECFDF3;
  --c-green-tint-line: #A8DBBF; /* 绿色浅描边，与 --c-blue-tint-line 同层级 */

  /* ---------- 中性色 ---------- */
  --c-white: #FFFFFF;
  --c-bg-page: #F6F7F9;         /* 主区底色 */
  --c-bg-subtle: #F9FAFB;       /* 表头 / 只读块底色 */
  --c-bg-chip: #F4F6F9;         /* 关闭按钮、次按钮底色 */
  --c-line: #E5E7EB;            /* 卡片描边 */
  --c-line-light: #EFF1F4;      /* 卡内分隔线 */

  /* 文字色阶（由深到浅） */
  --c-t1: #14161A;              /* 主文字 / 数值 */
  --c-t2: #4A5261;              /* 次级文字 / 正文说明 */
  --c-t3: #8B93A1;              /* 三级：说明、字段名 */
  --c-t4: #9AA4B2;              /* 最浅：脚注、元信息、未接入 AI 名 */
  --c-t5: #6B7280;              /* 指标名、列头 */
  --c-t6: #A8AEB8;              /* 输入框占位 */
  --c-t7: #C4C9D2;              /* 箭头 */
  --c-t-nav: #4A5058;           /* 未选中导航文字 */

  /* ---------- 字体 ---------- */
  --f-sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --f-num: "Inter", "SF Pro Display", -apple-system, "Segoe UI", Roboto, sans-serif;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;

  /* 字号（设计稿实测，共 16 级）
     2026-09-19 整体上调约 1.19×：原来 9.5~12px 这一档（脚注、状态、字段名、正文）
     在 1440 宽下明显偏小。小字多放、大字少放，保持阶梯单调递增。
     注意：行高是硬编码 px（见各规则的 line-height），已同比例一起放大。
     再要整体调档：改这里的 16 个值 + 跑 `node .workbuddy/tools/scale-type.js <因子>`
     同步硬编码的 line-height / font-size（该脚本会把 px 乘上因子，别重复跑）。 */
  --fs-30: 34.5px;    /* 指标卡大数值 */
  --fs-22: 25px;    /* 页面标题 / 摘要数值 */
  --fs-20: 22.5px;    /* 次大数值 */
  --fs-19: 21px;
  --fs-16: 19px;    /* 品牌名 / 弹窗标题 */
  --fs-15: 17.5px;    /* 卡片标题（页 2 右栏） */
  --fs-14: 16.5px;
  --fs-135: 16px; /* 卡片标题 / 品名 */
  --fs-13: 15.5px;    /* 导航 / 按钮 / 表格正文 */
  --fs-125: 15px; /* AI 名 / 操作行 */
  --fs-12: 14.5px;    /* 副标题 / 正文 */
  --fs-115: 14px; /* 字段值 / 档名 / 列内容 */
  --fs-11: 13.5px;    /* 环比 / 说明 */
  --fs-105: 13px; /* 字段名 / 脚注 */
  --fs-10: 12px;    /* 状态 / 元信息 */
  --fs-95: 11.5px;  /* 接入信息 / 时间 */

  /* ---------- 圆角 ---------- */
  --r-modal: 16px;   /* 弹窗 */
  --r-card: 14px;    /* 卡片 */
  --r-side: 11px;    /* 侧栏块 / 信息条 */
  --r-btn: 10px;     /* 按钮 / 输入框 / AI 卡 */
  --r-chip: 8px;     /* 关闭按钮 / 小 chip */
  --r-pill: 99px;    /* 圆点 */

  /* ---------- 间距 ---------- */
  --sp-2: 2px;
  --sp-4: 4px;
  --sp-5: 5px;
  --sp-6: 6px;
  --sp-8: 8px;
  --sp-9: 9px;
  --sp-10: 10px;
  --sp-12: 12px;
  --sp-14: 14px;
  --sp-16: 16px;
  --sp-18: 18px;
  --sp-20: 20px;
  --sp-24: 24px;
  --sp-28: 28px;

  /* ---------- 尺寸 ---------- */
  --w-sidebar: 240px;
  --w-content: 1240px;       /* 内容列上限；1440 视口下可用即 1144 = 设计稿内容宽。所有页面共用 */
  --h-nav: 42px;
  --h-btn: 40px;
  --h-btn-sm: 34px;

  /* ---------- 阴影 ---------- */
  --sh-modal: 0 18px 48px -6px rgba(10, 18, 33, .3);
  --sh-card: 0 1px 2px rgba(16, 24, 40, .04);
}

/* ==========================================================================
   基础重置
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--f-sans);
  font-size: var(--fs-13);
  font-weight: var(--fw-regular);
  color: var(--c-t1);
  background: var(--c-bg-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-weight: var(--fw-semibold); }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
a { color: var(--c-blue); text-decoration: none; }
a:hover { text-decoration: underline; }
table { border-collapse: collapse; width: 100%; }
svg { display: block; }

/* 数字与英文统一走 Inter，中文走 Noto Sans SC */
.num,
.stat-card__value,
.summary-strip__value,
.est-card__value,
.compare-table__value,
:lang(en) { font-family: var(--f-num); }

/* 图标工具 */
.ic { width: 18px; height: 18px; flex: none; }
.ic--16 { width: 16px; height: 16px; }
.ic--20 { width: 20px; height: 20px; }
.ic--14 { width: 14px; height: 14px; }
.ic--12 { width: 12px; height: 12px; }

/* 无障碍：仅供读屏 */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

:focus-visible {
  outline: 2px solid var(--c-blue);
  outline-offset: 2px;
  border-radius: 4px;
}
