/*
 * 设计令牌唯一真源（基线：Cockpit design-system tokens.css）。
 * 三个页面（dashboard / workbench / hyperliquid）共用本文件；
 * 页面私有变量应指向这里的令牌，不得另定义颜色字面量。
 *
 * 数据色（dark 基线）经 Cockpit dataviz 验证器实测 PASS：
 *   亮度带 / 色度下限 / 色盲分离 / 常视分离 / 对比度 ≥3:1 ✓
 *   琥珀↔红 deutan ΔE 7.0（地板带）→ 状态永远带图标+文字（↑/↓），绝不单靠颜色。
 * light 变体按同色相提高对比推导，未跑验证器；色弱变体用 Okabe-Ito 蓝/橙。
 *
 * 统一断点（媒体查询不能用变量，此处为约定值）：1200px / 900px / 600px。
 */

:root {
    /* —— 表面与线条 —— */
    --bg:        #070b14;
    --bg-grad-1: #0e1a33;
    --bg-grad-2: #0a2231;
    --surface:   #0d1526;
    --surface-2: #111c31;
    --line:      #1e2b45;
    --line-hi:   #2e4468;

    /* —— 文字 —— */
    --ink:       #e4ecf8;   /* 主文字 */
    --ink-2:     #a8b8d4;   /* 次文字 */
    /* 实测过的值，不是挑出来的：#6b7c9c 在三个表面上是 4.68 / 4.33 / 4.04，
       后两个低于 WCAG 正文的 4.5——最容易翻车的正是这种「高级感」灰调，
       设计稿上雅、真机上糊。#7b8caa 对应 5.79 / 5.36 / 5.00，全部达标。 */
    --muted:     #7b8caa;   /* 弱文字/来源标签 */
    --ink-max:   #ffffff;   /* 金额等最高优先级数字 */

    /* —— 数据色（承载数据的标记只允许用这一组）—— */
    --d-health:  #1ea87c;
    --d-xp:      #8168e0;
    --d-warn:    #bf8420;
    /* 这两个原来只当装饰色用（描边、图标），控制台的文字色走的是 Tailwind 的
       亮青与亮红。把 945 处颜色收敛到令牌之后它们开始承载正文，而按 WCAG 量
       出来都不够：#d9505d 在 --surface-2 上 4.26、#3a86c9 只有 4.40。
       提亮到下面这两个值后，三个表面分别是 5.01/5.37/5.80 与 5.44/5.83/6.29。
       色相不动——红仍是红、蓝仍是蓝，改的只是亮度。 */
    --d-crit:    #e0636f;
    --d-accent:  #4d97d6;

    /* —— 金融语义（页面业务色一律引用这层）—— */
    --up:        var(--d-health);   /* 上涨/健康，配 ↑ */
    --down:      var(--d-crit);     /* 下跌/失败，配 ↓ */
    --caution:   var(--d-warn);
    --neutral:   var(--muted);
    --accent:    var(--d-accent);   /* 链接/焦点/选中 */
    --up-bg:     #0d2a20;
    --down-bg:   #2e1218;
    --caution-bg:#2b1f0a;
    --accent-bg: #10233a;

    /* —— 装饰色（仅光晕与描边，不承载数据）—— */
    --glow-health: #2fe0a6;
    --glow-xp:     #a78bfa;
    --glow-accent: #5cb8f5;
    --glow-warn:   #f0a93c;
    --glow-crit:   #ff6b78;

    /* —— 排版 —— */
    /* 拉丁字形在前、中文字形在后：中文字体里的拉丁部分（微软雅黑的
       尤其）字重不匀、数字不等宽，而这一页大半是数字。两段各自交给
       更合适的那个。全部是系统字体——这一页的基线里写着「断网可用」，
       一个加载失败的网络字体会让整页回落到默认衬线。 */
    --font-ui:   "Segoe UI Variable Text", "Segoe UI", -apple-system,
                 "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei",
                 system-ui, sans-serif;
    /* Cascadia 排在前面：Consolas 的 0 和 O、1 和 l 在小字号下很难分，
       而这一页满屏是代码和数字。两个都是 Windows 自带。 */
    --font-mono: "Cascadia Mono", "Cascadia Code", ui-monospace, "Consolas",
                 "SF Mono", monospace;
    --fs-display: 26px;
    --fs-h1:      15px;
    --fs-body:    13.5px;
    --fs-sm:      12px;
    --fs-caps:    10px;   /* 全大写标签，letter-spacing .16em */
    --lh-tight:   1.25;
    --lh-body:    1.6;

    /* —— 间距 —— */
    --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px;
    --sp-4: 16px; --sp-5: 24px; --sp-6: 32px;

    /* —— 圆角与效果 —— */
    --r-sm: 4px; --r-md: 8px; --r-lg: 10px; --r-full: 9999px;
    --shadow-card: 0 1px 3px rgba(0,0,0,.4);
    --shadow-lift: 0 6px 22px rgba(0,0,0,.5);
    --focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--d-accent);
    --transition: .16s ease;
}

/* —— 浅色主题：仅换值，选择器/结构不变 —— */
html[data-theme="light"] {
    --bg:        #edf3f9;
    --bg-grad-1: #f7faff;
    --bg-grad-2: #eef4f9;
    --surface:   #ffffff;
    --surface-2: #f4f8fc;
    --line:      #cbd7e5;
    --line-hi:   #9fb3cc;

    --ink:       #17263b;
    --ink-2:     #44576f;
    /* 浅色同理留余量：#5d7088 算出来是 4.54 / 5.07 / 4.76，三个表面上都
       达标，但浏览器实测在表格里的弱化读数只有 4.31——真实背景不止这三个。
       #556678 是 5.28 / 5.90 / 5.53，把余量留出来。 */
    --muted:     #556678;
    --ink-max:   #0a1626;

    --d-health:  #0f7a58;
    --d-xp:      #6247c9;
    --d-warn:    #955f0a;
    --d-crit:    #bd2f42;
    --d-accent:  #22689f;

    --up-bg:     #e2f3ec;
    --down-bg:   #fae8ea;
    --caution-bg:#f7efdd;
    --accent-bg: #e3eef7;

    --shadow-card: 0 1px 3px rgba(23,38,59,.12);
    --shadow-lift: 0 6px 22px rgba(23,38,59,.16);
}

/* —— 色弱模式：涨跌换 Okabe-Ito 蓝/橙；依旧必须带 ↑/↓ 文字方向 —— */
html[data-color-mode="colorblind"] {
    /* 色弱模式的三个语义色同样被量出不达标（3.28 / 4.40 / 4.05）。**只提亮度，
       绝不换色相**：Okabe-Ito 之所以能在色觉缺陷下分开，靠的就是这几个色相
       的选择，为了对比度去换色相等于把这套配色的全部意义抵消掉。 */
    --up:      #3d94d1;
    --down:    #e06f10;
    --caution: #c98a1e;
    /* 配套底色必须跟着语义色一起换色相，否则会出现「蓝字配深绿底」：色弱模式
       把 --up 换成了蓝，而 --up-bg 还留着深色主题的绿，实测 53 处徽章全部只有
       3.48:1。这两个原本还写着旧蓝 rgba(0,114,178,.12)——语义色提亮之后它也
       跟着失配了。--caution-bg 与 --accent-bg 此前根本没在这一段定义，会继承
       深色主题的绿橙底，同样是失配。 */
    --up-bg:      #0c1c28;
    --down-bg:    #2a1608;
    --caution-bg: #281e08;
    --accent-bg:  #101f2e;
}
