@font-face { font-family: Geist; src: url(/static/fonts/geist-latin.woff2) format("woff2"); font-weight: 100 900; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* ============================================================
   设计令牌 —— 唯一的取值来源
   2026-10-03 起改用 SLOW 产品家族视觉（与 Slow Radar 同一套暖灰地、白卡片、
   Geist 字体、跟随系统深色；识别色换成 Copilot 自己的琥珀黄）。本文件不再从外部规范同步，以此为准。
   任何页面/组件不允许出现此文件之外的颜色、字号、间距、圆角、
   线宽、动效时长。新增取值先加 token，再使用。
   ============================================================ */

:root {
  --preview-max-h: 56vh;   /* 弹层里单张大图预览（封面）的最大高度 */
  /* ---- 色板：SLOW 产品家族（与 Slow Radar 同一套暖灰 + 品牌蓝）---- */
  --paper:   #f4f3f0;   /* 侧栏 / 页面地 */
  --canvas:  #fbfbfa;   /* 主内容区底 */
  --surface: #ffffff;   /* 卡片 / 表格 / 输入框底 */
  --ink:     #1c1b18;   /* 主文字 · 唯一重色 */
  --gray-1:  #5f5d58;   /* 次级文字 */
  --gray-2:  #8a8780;   /* 三级文字 / 占位符 */
  --gray-3:  rgba(28, 27, 24, 0.08);   /* 细线 / 边框 */
  --line-soft: rgba(28, 27, 24, 0.05); /* 更轻的分隔线 */
  --hover:   rgba(28, 27, 24, 0.045);  /* 悬停底 */
  --press:   rgba(28, 27, 24, 0.08);   /* 按压 / 选中底 */
  --overlay: rgba(28, 27, 24, 0.28);   /* 遮罩 */
  /* 识别色：Slow Copilot = 琥珀黄 #FCC419（SLOW 图标家族）。
     黄色在白底上做文字看不清，所以分三档：填充用 accent，文字用 accent-ink，底色用 accent-wash */
  --accent:      #fcc419;
  --accent-ink:  #8a5a00;
  --accent-wash: rgba(252, 196, 25, 0.16);
  --ring:    var(--accent-wash);       /* 聚焦环 */

  /* 别名——app.css 里已在引用。只做指向，不引入新的原始取值。 */
  --muted:  var(--gray-2);
  --gray-5: var(--gray-2);

  /* ---- 字体 ---- */
  --font-ui:   Geist, -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace; /* 仅用于：数字、状态标签 */

  /* ---- 字号阶梯 ---- */
  --fs-xs:   11px;   /* 表头 / 标签 / 徽章 */
  --fs-sm:   12px;   /* 辅助信息 / 元数据 */
  --fs-base: 13px;   /* 基准 · 正文 / 控件 */
  --fs-md:   14px;   /* 面板标题 */
  --fs-lg:   18px;   /* 页面标题 / 指标数字 */
  --fs-xl:      20px; /* 页面标题 */
  --fs-num:     22px; /* 指标数字 */

  /* ---- 间距阶梯 ---- */
  /* 提词器：两种主题下都必须黑底白字，读稿时不受界面主题影响 */
  --prompter-bg: #000000;
  --prompter-ink: #ffffff;
  --prompter-dim: rgba(255, 255, 255, 0.35);
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;

  /* ---- 圆角 ---- */
  --r-xs: 4px;    /* 菜单项 */
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 12px;   /* 卡片 / 弹层 */

  /* ---- 控件高度 ---- */
  --h-ctl: 32px;
  --h-ctl-sm: 24px;  /* 列表行内的小按钮 */

  /* ---- 线宽 ---- */
  --line: 1px;

  /* ---- 动效时长 ---- */
  --t-fast: 120ms;
  --t-base: 200ms;

  /* ---- 阴影：极轻 ---- */
  --shadow-1: 0 1px 2px rgba(28, 27, 24, 0.04);
  --shadow-2: 0 1px 2px rgba(28, 27, 24, 0.04), 0 8px 24px rgba(28, 27, 24, 0.08);

  /* ---- 语义色：只用于状态与信号，低饱和以贴合 quiet luxury ---- */
  --warn:   #8a6a1f; --warn-bg:   #f4ecd6; --warn-bd:   #e8dcbe;  /* 待审 / 发布中 */
  --info:   #3451c7; --info-bg:   #e7edf8; --info-bd:   #d3e0f3;  /* 已批准 / 排队 */
  --sched:  #4a4f8a; --sched-bg:  #e9eaf5; --sched-bd:  #d8daee;  /* 已排期 */
  --ok:     #2e6b45; --ok-bg:     #e4efe8; --ok-bd:     #cbe2d3;  /* 已发布 / 成功 */
  --danger: #c93c3c; --danger-bg: #f6e5e3; --danger-bd: #ecd2cf;  /* 失败 */

  /* ---- 图表原色（primitive）：东方材质色，低—中饱和，仅用于数据可视化 ---- */
  --viz-indigo:   #526a78;  /* 靛青 · 主序列 */
  --viz-jade:     #4e7468;  /* 黛绿 · 完成 / 增长 */
  --viz-ochre:    #a9794a;  /* 赭石 · 审核 / 提醒 */
  --viz-plum:     #806b7a;  /* 藕紫 · 排期 / 对比 */
  --viz-cinnabar: #a45f52;  /* 漆红 · 失败 / 异常 */

  /* ---- 图表语义色（semantic）：图表组件只引用语义，不直接引用原色 ---- */
  --chart-primary:   var(--accent);
  --chart-secondary: var(--viz-jade);
  --chart-accent:    var(--viz-ochre);
  --chart-contrast:  var(--viz-plum);
  --chart-danger:    var(--viz-cinnabar);
  --chart-success:   var(--viz-jade);
  --chart-text:      var(--gray-2);
  --chart-grid:      var(--gray-3);
  --chart-track:     var(--hover);

  /* ---- 图表组件映射（component）：阶段与渠道全站固定，不随页面变化 ---- */
  --chart-stage-draft:     var(--gray-2);
  --chart-stage-review:    var(--viz-ochre);
  --chart-stage-approved:  var(--viz-indigo);
  --chart-stage-scheduled: var(--viz-plum);
  --chart-stage-action:    var(--viz-cinnabar);
  --chart-stage-published: var(--viz-jade);
  --chart-channel-instagram:   var(--viz-plum);
  --chart-channel-tiktok:      var(--viz-jade);
  --chart-channel-xiaohongshu: var(--viz-ochre);
}

/* ---- 深色：跟随系统；data-theme 可强制 ---- */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { 
  --paper: #121214; --canvas: #18181b; --surface: #1f1f23;
  --ink: #ededef; --gray-1: #a3a3ab; --gray-2: #7d7d86;
  --gray-3: rgba(255, 255, 255, 0.08); --line-soft: rgba(255, 255, 255, 0.05);
  --hover: rgba(255, 255, 255, 0.045); --press: rgba(255, 255, 255, 0.08);
  --overlay: rgba(0, 0, 0, 0.5);
  --accent: #fcc419; --accent-ink: #ffd43b; --accent-wash: rgba(252, 196, 25, 0.14);
  --shadow-1: 0 0 0 1px rgba(255, 255, 255, 0.04);
  --shadow-2: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 12px 32px rgba(0, 0, 0, 0.45);
  --warn: #e0b765; --warn-bg: rgba(224, 183, 101, 0.12); --warn-bd: rgba(224, 183, 101, 0.22);
  --info: #8fa8ff; --info-bg: rgba(129, 153, 255, 0.12); --info-bd: rgba(129, 153, 255, 0.22);
  --sched: #b3b0f0; --sched-bg: rgba(179, 176, 240, 0.12); --sched-bd: rgba(179, 176, 240, 0.22);
  --ok: #6fcf97; --ok-bg: rgba(111, 207, 151, 0.12); --ok-bd: rgba(111, 207, 151, 0.22);
  --danger: #f07070; --danger-bg: rgba(240, 112, 112, 0.12); --danger-bd: rgba(240, 112, 112, 0.22);
  --viz-indigo: #8199ff; --viz-jade: #6fbf9f; --viz-ochre: #d9a066; --viz-plum: #b59ac0; --viz-cinnabar: #e08070;
  color-scheme: dark;
 } }
:root[data-theme="dark"] { 
  --paper: #121214; --canvas: #18181b; --surface: #1f1f23;
  --ink: #ededef; --gray-1: #a3a3ab; --gray-2: #7d7d86;
  --gray-3: rgba(255, 255, 255, 0.08); --line-soft: rgba(255, 255, 255, 0.05);
  --hover: rgba(255, 255, 255, 0.045); --press: rgba(255, 255, 255, 0.08);
  --overlay: rgba(0, 0, 0, 0.5);
  --accent: #fcc419; --accent-ink: #ffd43b; --accent-wash: rgba(252, 196, 25, 0.14);
  --shadow-1: 0 0 0 1px rgba(255, 255, 255, 0.04);
  --shadow-2: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 12px 32px rgba(0, 0, 0, 0.45);
  --warn: #e0b765; --warn-bg: rgba(224, 183, 101, 0.12); --warn-bd: rgba(224, 183, 101, 0.22);
  --info: #8fa8ff; --info-bg: rgba(129, 153, 255, 0.12); --info-bd: rgba(129, 153, 255, 0.22);
  --sched: #b3b0f0; --sched-bg: rgba(179, 176, 240, 0.12); --sched-bd: rgba(179, 176, 240, 0.22);
  --ok: #6fcf97; --ok-bg: rgba(111, 207, 151, 0.12); --ok-bd: rgba(111, 207, 151, 0.22);
  --danger: #f07070; --danger-bg: rgba(240, 112, 112, 0.12); --danger-bd: rgba(240, 112, 112, 0.22);
  --viz-indigo: #8199ff; --viz-jade: #6fbf9f; --viz-ochre: #d9a066; --viz-plum: #b59ac0; --viz-cinnabar: #e08070;
  color-scheme: dark;
 }

