@charset "UTF-8";
/* ==========================================================================
   Ink Charm 产品官网设计令牌唯一来源 —— 「墨与纸」浅色主题
   权威值来源：software/src/renderer/tokens.css（客户端令牌，逐项同值）
               docs/development/PRD-UI-RENEWAL-AND-M1-M6.md §2.3
               docs/development/ARCH-UI-RENEWAL-AND-M1-M6.md §5.4（S6 行）
   规则：site.css 只允许引用本文件令牌，禁止再写死任何色值。
   校验：web/check.mjs 会解析本文件 :root 块，与 renderer 令牌逐键比对，
        任何漂移即失败（官网与客户端共享品牌约定 UX-018）。
   载入顺序：每个页面先 site-tokens.css，再 site.css。
   ========================================================================== */

/* ---- 字体（本地 woff2 子集，无任何外网字体/CDN 请求） ---------------------
   由 web/subset-fonts.py 从 C:\Windows\Fonts\NotoSansSC-VF.ttf /
   NotoSerifSC-VF.ttf 子集化生成，字符集取本站在售页面的实际用字。
   变量字体保留 400–700 字重轴（本站实际使用的区间）；缺字自动回落到
   下方字体栈，不会出现方框。 */
@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/noto-sans-sc-subset.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Serif SC";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/noto-serif-sc-subset.woff2") format("woff2");
}

:root {
  /* ---- 色彩（纸 / 墨 / 黛蓝 / 朱砂，S7 权威值） ---------------------------- */
  --bg-page: #f6f5f0; /* 页面背景（纸色） */
  --bg-sidebar: #edebe3; /* 侧栏背景 */
  --surface: #ffffff; /* 卡片表面 */
  --hairline: #d9d6cb; /* 分隔线（发丝线） */
  --text-primary: #23241f; /* 主文字（墨） */
  --text-secondary: #6e6d64; /* 次级文字 */
  --text-tertiary: #a3a196; /* 三级文字 */
  --primary: #3b5a8a; /* 主色 · 黛蓝：主按钮、激活、链接、聚焦边框 */
  --accent: #b04a32; /* 强调 · 朱砂：删除、危险、约束冲突、保存失败 */
  --success: #3f7a52; /* 通过 · 绿：已保存、已完成、已通过 */
  --warning: #a97b2e; /* 提醒 · 琥珀：待检查、警告、保存中、未完成 */

  /* ---- 色彩派生（由权威色按固定比例叠加/加深，供组件态使用） --------------- */
  --primary-hover: #35517c; /* 黛蓝加深约 10%：主按钮悬停 */
  --accent-hover: #9a3f2b; /* 朱砂加深约 10%：危险按钮悬停 */
  --primary-soft: #ebeef3; /* 黛蓝 10% 于纸色：选中/激活底 */
  --accent-soft: #f7edeb; /* 朱砂 10% 于纸色：危险/失败底 */
  --success-soft: #ecf2ee; /* 绿 10% 于纸色：已保存底 */
  --warning-soft: #f6f2ea; /* 琥珀 10% 于纸色：保存中/待检查底 */
  --bg-hover: #efede6; /* 悬停底（纸色加深一档，白卡上同样可辨） */
  --canvas-dot: #d9d6cb; /* 画布点阵（与发丝线同色，克制不抢眼） */
  --selection: #3b5a8a33; /* 正文选区高亮（黛蓝 20%） */
  --scrim: #23241f33; /* 模态遮罩（墨 20%） */
  --text-on-primary: #ffffff; /* 主色/强调色按钮上的文字 */

  /* ---- 字阶（界面 Noto Sans SC；S7：品牌 40/Bold … 徽标 10/Regular） ------- */
  --font-family-ui: "Noto Sans SC", "HarmonyOS Sans SC", "Microsoft YaHei UI",
    "PingFang SC", sans-serif;
  --font-family-manuscript: "Noto Serif SC", "Songti SC", "Noto Serif CJK SC",
    "Source Han Serif SC", SimSun, serif;
  --font-brand: 700 40px/1.25 var(--font-family-ui); /* 品牌大字 */
  --font-section: 600 22px/1.3 var(--font-family-ui); /* 区块标题 */
  --font-page: 600 16px/1.5 var(--font-family-ui); /* 页面标题 */
  --font-card: 500 14px/1.5 var(--font-family-ui); /* 卡片标题 */
  --font-body: 400 14px/1.7 var(--font-family-ui); /* 正文与列表 */
  --font-aux: 400 12px/1.6 var(--font-family-ui); /* 辅助说明与表头 */
  --font-badge: 400 10px/1.5 var(--font-family-ui); /* 徽标与状态点 */
  --font-manuscript: 400 16px/32px var(--font-family-manuscript); /* 手稿正文 */

  /* ---- 圆角（S7 阶梯 4/6/8/10/12） ----------------------------------------
     PRD §2.3 记作 "--radius-1..4 = 4/6/8/10/12"（实为 5 档阶梯），
     此处按 1..5 全覆盖：小件 4-6；按钮/输入 6-8；卡片 8-10；浮层/对话框 10-12。 */
  --radius-1: 4px;
  --radius-2: 6px;
  --radius-3: 8px;
  --radius-4: 10px;
  --radius-5: 12px;

  /* ---- 阴影与线宽 ---------------------------------------------------------- */
  --shadow-float: 0 12px 36px #23241f1f; /* 克制低透明大模糊浮层阴影 */
  --hairline-width: 1.5px; /* 侧栏图标/工具栏/状态点线性边框共用 */
}

/* ==========================================================================
   深色派生占位（DARK-001，P1）——设计稿仅交付浅色「墨与纸」。
   与客户端一致：暗色令牌待产品确认派生口径（PRD Q6）。此处按同一色相
   压暗给出可用变体，保证 prefers-color-scheme: dark 下正文与次级文字
   对比度仍 ≥ 4.5:1；浅色 :root 块不受影响，令牌一致性校验只比对第一个
   :root 块。
   ========================================================================== */
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --bg-page: #171814;
    --bg-sidebar: #1f211b;
    --surface: #22241e;
    --hairline: #3a3b33;
    --text-primary: #e8e6dc;
    --text-secondary: #b4b2a5;
    --text-tertiary: #8a887c;
    --primary: #8aa6d0;
    --accent: #d9765c;
    --success: #6fa97f;
    --warning: #c9a05a;
    --primary-hover: #a3badd;
    --accent-hover: #e58b73;
    --primary-soft: #242a34;
    --accent-soft: #2e211d;
    --success-soft: #1f2a22;
    --warning-soft: #2b2418;
    --bg-hover: #2a2c25;
    --canvas-dot: #3a3b33;
    --selection: #8aa6d033;
    --scrim: #00000066;
    --text-on-primary: #14150f;
    --shadow-float: 0 12px 36px #00000059;
  }
}
