/* ============================================================================
   market.css — 涨跌口径切换（可选文件）
   ============================================================================
   引了它：`[data-market="intl"]` 会把涨跌配色整体对调（绿涨红跌）。
   不引它：永远是 A 股口径（红涨绿跌），`data-market` 属性会被**完全忽略**。

   ⇒ 它是一档**可选增强**，不是核心令牌的一部分。默认交付不带国际口径。

   ============================================================================
   🔴 为什么它必须是**单独一个文件**，不能写进 tokens.css
   ----------------------------------------------------------------------------
   本库有五六个工具（contrast / gen-ai-contract / gen-tokens-tree /
   token-audience / theme-sync）都靠 `05-audit/_css.py` 的
   `declared_tokens()` 读 tokens.css。那个函数是**纯词法**的：

       遍历所有 `--x: y;`，后出现的覆盖先出现的 —— 不看选择器。

   这是刻意的（它要能处理任意 CSS 片段），但它有一条隐含契约：
   **tokens.css 里只能有「无条件声明」和「暗色媒体段」**。
   暗色段之所以安全，是因为消费方知道「浅色截断到 @media 之前、暗色读整份」。

   第一版我把口径交换写进了 tokens.css 的末尾。后果不是报错，是**静默读错**：
     · `contrast.py` 的报告里「暗色 涨」显示成了绿色（它把交换当默认值叠上去了）；
     · `gen-ai-contract --check` 报「现有 #E07A6E 应为 #6FAA7A」，看起来像随机错位。
   而真实浏览器里的值是**对的**（`dir-gate` 读 computed color 实测
   暗色 up = #E07A6E）。⇒ 门禁在冤枉代码，比漏判更难查。

   ============================================================================
   🔴 为什么选择器不能用 `:where([data-market="intl"])`
   ----------------------------------------------------------------------------
   `:where()` 的特异性是 0，而 `:root` 是 (0,1,0)。两者都匹配 `<html>`，
   **`:root` 赢** —— 交换会被它完全盖掉（实测：写了等于没写）。
   特异性压得越低，越抢不过 `:root`。

   所以写两个选择器，各管一件事：
     `:root[data-market="intl"]` (0,2,0) —— 压过 `:root`，管整页口径
     `[data-market="intl"]`      (0,1,0) —— 管局部容器（那里没有 `:root` 竞争）
   使用者在更深元素上写 `--dir-up` 仍能覆盖，因为**继承来的值权重最低**。

   ⚠️ 这个文件**必须**在 tokens.css 之后引入（它要覆盖令牌）。
      放在 `<link>` 顺序后面即可，不需要更特殊的写法。
   ========================================================================= */

:root[data-market="intl"],
[data-market="intl"] {
  --dir-up:   var(--raw-dir-down);
  --dir-down: var(--raw-dir-up);
}

/* ---------- 打印：交换关系保留，两端都换成纸面能打实的深色 ----------
   🔴 为什么这段必须存在
   上面那条规则用的是 `--raw-dir-*`（原始层），而 tokens.css 的 print 段
   压深的是 `--dir-up` / `--dir-down`（语义层）—— 两者在不同的层，
   压深**传不到这里**。实测：`[data-market="intl"]` 容器里的涨跌数字
   仍然以 #c0392b 上纸，对比度 5.44:1，过不了 7:1。
   交换关系不变（涨绿跌红），只是把两端换成与 print 段同一组深色。 */
@media print {
  :root[data-market="intl"],
  [data-market="intl"] {
    --dir-up:   #1c4526;
    --dir-down: #7d1c11;
  }
}
