/* ============================================================================
   tokens.css — 全站唯一设计 token 数据源 (2026-05-29)
   ----------------------------------------------------------------------------
   此前 site.css 与 stock.css 各自手抄一份 :root, 易漂移 (Bug#2).
   现收口到本文件: 两个模板 (index/stock) 在各自 site.css/stock.css 之前 <link> 它.
   build_site.py 用 copytree(src/css → dist/css) 整目录拷贝, 新增本文件自动生效.

   排版收敛原则 (用户指令: 层级不要过多, 字号不要过多, 简洁清晰):
     可读文本只在 11/13/14/15/20 五档跳动; --fs-micro(10) 仅给视觉贴片, 禁用于正文.
   断点约定 (CSS 变量不能用于 @media 条件, 仅此处注释固化): sm = 640px / md = 900px.
   例外 (component-specific, 经审计保留 2026-06-20): /rwa 底部面板 (orderbook+news, min-width
   300+450) 在 site.css 用 768/1200 两个组件级断点控制堆叠 — 是该宽组件的功能性断点, 非漂移,
   不强行并入 640/900 (并入会让 RWA 面板在中宽屏过早/过晚堆叠而变挤). 新增主布局断点仍只用 640/900.
   ============================================================================ */
:root {
  color-scheme: light;

  /* ── 颜色 (合并自 site.css + stock.css 两份 :root, 值不变) ───────────────── */
  --bg: #faf8f5;              /* 暖调象牙纸, 手稿底色 */
  --card: #ffffff;
  --border: #e8e4df;          /* 暖化边框 */
  --border-soft: #f0ece7;     /* 暖化柔边框 */
  --text-1: #3a3832;          /* 微暖墨色 (正文) — WCAG AA 11.1:1 */
  --text-2: #6b6960;          /* 微暖次文本 — WCAG AA 5.2:1 (过) */
  /* 2026-06-20 a11y: --text-3 由 #a3a094 (2.47:1, 连 3:1 都不过) 加深到 #888577 (3.49:1 over bg),
     满足图形/大字 AA 且仍明显浅于 --text-2 保留层级 (若同时满足 4.5:1 小字 AA 会与 text-2 撞色).
     残留: 11px 小字仍 < 4.5:1, 真要小字达标须就地加大字号/字重, 不在 token 层. */
  --text-3: #888577;          /* 微暖弱文本 — 3.49:1 (图形/大字 AA 过, 小字仍偏低见上注) */
  --up: #c66a64;
  --dn: #6b9472;
  --flat: #98a0ac;
  --accent: #d4824a;          /* 全局柔橙 */
  --accent-orange: #d4824a;   /* 跟 --accent 同色 (代码混用上百处, 两别名都保留, 不合并) */
  --row-hover: #faf9f6;
  --tag-bg: #f5f2ed;          /* 暖化标签底 */
  --primary-bg: #4a5568;
  --primary-bg-hover: #2d3748;
  /* 马克笔荧光色 — 物理笔记高亮 */
  --hl-yellow: hsl(51, 100%, 81%);    /* 核心信号/选中态 */
  --hl-green:  hsl(120, 64%, 86%);    /* 看多/收益上行 */
  --hl-orange: hsl(29, 100%, 85%);    /* 异常/反转警示 */
  /* 糖果色 — sidebar 6 分类书签 */
  --candy-purple: #c8b8e0;   /* 历史对照 */
  --candy-mint:   #b8d8c8;   /* 宏观市场 */
  --candy-pink:   #f0c4cc;   /* 主题异动 */
  --candy-amber:  #efd4a8;   /* 模型表现 */
  --candy-sky:    #b8d0e0;   /* 决策日志 */
  --candy-stone:  #d8d4cc;   /* 技术日志 */
  --candy-orange: #efb88a;   /* 杏橙 — 强调标识 */
  /* 2026-06-05: rocket 模型列 hit 数字色 (1日灰 / 5日及以上浅橙) + 双类共识底色 */
  --hold-1d:  #a8a496;       /* 1日: 灰 (短线弱化) */
  --hold-5d:  #d68b4a;       /* 5日及以上: 浅橙 */
  --hit-dual-bg: hsl(29, 100%, 92%);  /* 双类共识 (XGB∩GRU): 浅橙底 */
  /* 表层 / 强调 — 2026-05-29 修: 旧暗色主题遗留的 --bg-1/--bg-2/--text-0/--border-strong
     被引用 (feed/strike/ml/emergent 卡片·输入框·药丸) 却从未在 paper theme 重新定义, 此前回退到
     transparent/#ccc (卡片缺底色、强调标题不够黑). 现给暖纸主题正解值: */
  --bg-1: #ffffff;            /* 主表层 (卡片/输入框/药丸底, 同 --card) */
  --bg-2: #f5f2ed;            /* 次表层 (嵌套/代码块底, 同 --tag-bg) */
  --text-0: #29251d;          /* 暖近黑 — 强调标题 (比 --text-1 更深一档) */
  --border-strong: #d6cfc4;   /* 强边框 — hover 强调 (介于 --border 与 --text-3) */

  /* ── 语义复用色 (2026-06-20: 收口 site.css 中复用 ≥2 次的硬编码色; 值不变, 仅消除散点) ──
     说明: 一次性装饰色 (mood 折线 stroke / mini-graph legend swatch / rwa badge 等) 仍就地写,
     不强行 token 化 — design-system 实践: 只 token 化"复用且语义明确"的色, 非每个一次性色. */
  --color-winrate-bg: #f3eccb;       /* 胜率金 底 */
  --color-winrate-fg: #8a6d1d;       /* 胜率金 字 (= .t-gold) */
  --color-winrate-float-bg: #ece8f0; /* 浮动胜率 紫底 */
  --color-winrate-float-fg: #6b5a8a; /* 浮动胜率 紫字 */
  --color-src-self-bg: #eaf2e6; --color-src-self-fg: #4a7d52;  /* 来源标签: 自选 */
  --color-src-ml-bg:   #eef3fb; --color-src-ml-fg:   #4a6a8a;  /* 来源标签: ML */
  --color-src-redo-bg: #fbf2e6; --color-src-redo-fg: #8a6a4a;  /* 来源标签: 复选 */

  /* ── 字体 (原样照搬) ───────────────────────────────────────────────────── */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-heading: "Source Han Serif SC", "STSong", "Songti SC", Georgia, serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;

  /* ── 字号 scale (rem, base 16px) ──────────────────────────────────────────
     display 20 / title 15 / body 14 / ui 13 / meta 11 / micro 10(仅贴片).
     旧值收敛: 17·18·20→display; 16→title; 12→ui; 9·10(可读)→meta; 9·10(贴片)→micro. */
  --fs-display: 1.25rem;     /* 20px — h1 / 视图大标题 / 最大 KPI 值 */
  --fs-title:   0.9375rem;   /* 15px — h2/h3 / 卡片头 / modal 标题 / section 标题 */
  --fs-body:    0.875rem;    /* 14px — body / p / markdown 正文 / 阅读型表格 */
  --fs-ui:      0.8125rem;   /* 13px — 数据表 td / view-tab / feed / sidebar */
  --fs-meta:    0.6875rem;   /* 11px — thead th / meta / chip / hint / date */
  --fs-micro:   0.625rem;    /* 10px — 例外档: 角标贴片, 禁用于可读文本 */

  /* ── 间距 scale (rem) ────────────────────────────────────────────────────── */
  --sp-1: 0.25rem;   /* 4 */
  --sp-2: 0.5rem;    /* 8 */
  --sp-3: 0.75rem;   /* 12 */
  --sp-4: 1rem;      /* 16 */
  --sp-5: 1.5rem;    /* 24 */
  --sp-6: 2rem;      /* 32 */
  --pad-cell-y: 0.375rem;   /* 6  — 表格单元格纵向 (guide 黄金行高 ~33px) */
  --pad-cell-x: 0.625rem;   /* 10 — 表格单元格横向 */

  /* ── 圆角 / 行高 / z-index ───────────────────────────────────────────────── */
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 8px;
  --r-xl: 12px;
  --r-pill: 999px;
  --lh-tight: 1.35;   /* 标题 (防多行重叠) */
  --lh-snug:  1.45;   /* 表格单元格内换行 */
  --lh-body:  1.7;    /* 正文阅读 */
  --lh-loose: 1.85;   /* 宽松阅读 (hero / sc-data) */
  --z-sticky: 5;      /* thead 钉顶 */
  --z-viewtabs: 10;   /* 一级 view-tabs 钉顶 */
  --z-backdrop: 9998;
  --z-modal: 9999;

  /* ── 交互 ────────────────────────────────────────────────────────────────── */
  --focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px rgba(212, 130, 74, 0.55);  /* 键盘焦点橙环 (象牙留白 + 柔橙) */
  --tabs-h: 38px;     /* 一级 view-tabs 高度 — thead sticky top 用它对齐, 改 tab 高度须同步此值 */
}

/* ── 键盘可见焦点环 (替代各处被删的 outline:none, 修复键盘可达性) ───────────────────
   鼠标/触摸聚焦不显示 (:focus-visible 不匹配指针聚焦), 仅键盘 Tab 聚焦时显示橙环.
   用 box-shadow 而非 outline — 自动贴合元素既有圆角. */
:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* ── 降低动效 (尊重系统 prefers-reduced-motion) — 一次性覆盖 fadeIn + 全部 transition ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── 移动端表单防 iOS 聚焦自动缩放: 触屏小屏(≤sm) input 字号顶到 16px ─────────────
   桌面维持 token 紧凑字号; 仅 ≤640 触屏放大, 避免 Safari 聚焦时整页 zoom.
   2026-06-10 修: 必须 !important — 否则被 .tools input 等高特异性规则盖掉, 此规则此前从未生效. */
@media (max-width: 640px) {
  input, select, textarea { font-size: 16px !important; }
}
