/* lynux 0.8.0 X19 —— token 层（只声明变量与派生色，不含任何选择器样式）
 *
 * 取值来源：Hermes Agent Web Dashboard `/home/aos/.hermes/hermes-agent`
 *   - LENS_0（Hermes Teal）三槽调色板：`web/src/index.css` :root
 *   - 文本层级 / 表面层级 / 描边 / 状态色：`web/src/index.css` 的 shadcn 兼容 @theme inline
 *   - 文本层级默认值：`@nous-research/ui/dist/ui/globals.css`（80% / 65% / 45%）
 *   - 几何与排版：`web/src/themes/presets.ts` DEFAULT_TYPOGRAPHY / DEFAULT_LAYOUT
 *
 * 分工固定：本文件只定义派生 token；可覆盖的基础色（--lx-*-base、状态色、光晕）
 * 由 themes.css 按 [data-theme] 覆盖；app.css 只写结构/组件规则且不含颜色字面量。
 * 三者加载顺序 tokens.css → themes.css → app.css，不得调整。
 */
:root {
  /* ---- 三槽基础色（themes.css 覆盖；此处给默认值，保证单独加载也不白屏） ---- */
  --lx-bg-base: #041c1c; /* background：页面底色 */
  --lx-fg-base: #ffe6cb; /* midground：正文主色（奶油色，不是纯白） */
  --lx-glow: rgba(255, 189, 56, 0.35); /* warmGlow：焦点/边框高光 */
  /* X57：颗粒层的位图与混合模式进 token——app.css 不再持有任何颜色字面量（含 %23 转义）。
     浅色档在 themes.css 覆盖成 multiply + 更低透明度，color-dodge 在白底上恒被削平。 */
  --lx-noise-img: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' fill='%23eaeaea' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
  --lx-noise-blend: color-dodge;
  --lx-noise-alpha: 0.55;


  /* ---- 有效色 ---- */
  /* LENS_0 的 foreground 是 alpha 0 的叠加层，不能当文字色；正文直接绑 midground */
  --lx-bg: var(--lx-bg-base);
  --lx-fg: var(--lx-fg-base);
  --lx-overlay: color-mix(in srgb, #ffffff 0%, transparent);

  /* ---- 文本层级（上游语义：secondary 80% / tertiary 65% / disabled 45%） ---- */
  --lx-fg-2: color-mix(in srgb, var(--lx-fg-base) 80%, transparent);
  /* X57：10–11px 辅助文字用的是 fg-4，45% 在浅色档合成后只有 2.68:1；
     65% 才到 4.65:1（surface-2/3 都过 4.5）。fg-3 同时抬到 72% 保持层级。 */
  --lx-fg-3: color-mix(in srgb, var(--lx-fg-base) 72%, transparent);
  --lx-fg-4: color-mix(in srgb, var(--lx-fg-base) 65%, transparent);

  /* ---- 表面层级：card 4% / secondary 6% / muted 8% / accent 10% over bg ---- */
  --lx-surface-1: color-mix(in srgb, var(--lx-fg-base) 4%, var(--lx-bg-base));
  --lx-surface-2: color-mix(in srgb, var(--lx-fg-base) 6%, var(--lx-bg-base));
  --lx-surface-3: color-mix(in srgb, var(--lx-fg-base) 8%, var(--lx-bg-base));
  --lx-surface-4: color-mix(in srgb, var(--lx-fg-base) 10%, var(--lx-bg-base));

  /* ---- 描边：midground 15% ---- */
  --lx-border: color-mix(in srgb, var(--lx-fg-base) 15%, transparent);

  /* ---- 几何：radius 基数 0.5rem，派生 sm −4px / md −2px / lg = r / xl +4px ---- */
  --lx-radius: 0.5rem;
  --lx-radius-sm: calc(var(--lx-radius) - 4px);
  --lx-radius-md: calc(var(--lx-radius) - 2px);
  --lx-radius-lg: var(--lx-radius);
  --lx-radius-xl: calc(var(--lx-radius) + 4px);

  /* ---- 排版：15px / 1.55 / 字距 0 ----
   * 0.19.1（X66）：字形换成 Hermes DS 随包的品牌字体（fonts.css 注册）：
   *   sans  = Collapse（DS 正文/界面）
   *   mono  = JetBrains Mono（DS 终端/代码）
   *   label = Mondwest（DS Label：大写 + 0.1em 字距）
   *   brand = Rules Compressed（DS Badge：大写 + 0.2em 字距）
   *   expanded = Rules Expanded（DS 展示性数字/大号字位：能力卡序号 01–04）
   *   input = Courier New 优先，回落 JetBrains Mono（DS Input/Select 的 font-courier）
   *   cjk  = Noto Sans SC（自托管思源黑体，101 个 unicode-range 切片；所有栈的中文兜底）
   *   title = Mondwest + Smiley Sans（中文大标题用得意黑，拉丁仍用 Mondwest）
   */
  --lx-base: 16px;
  --lx-leading: 1.62;
  --lx-tracking: 0;
  --lx-font-cjk: 'Noto Sans SC', "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei",
    "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  --lx-font-sans: 'Collapse', var(--lx-font-cjk);
  --lx-font-mono: 'JetBrains Mono', var(--lx-font-cjk), ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
  --lx-font-display: 'Mondwest', var(--lx-font-cjk), system-ui, sans-serif;
  --lx-font-brand: 'Rules Compressed', var(--lx-font-cjk), 'Mondwest', sans-serif;
  --lx-font-expanded: 'Rules Expanded', 'Mondwest', var(--lx-font-cjk);
  --lx-font-title: 'Mondwest', 'Smiley Sans', var(--lx-font-cjk);
  --lx-font-input: 'Courier New', var(--lx-font-mono), monospace;

  /* ---- 0.19.1（X66）Hermes DS 组件色：全部由 midground/background 派生 ----
   * 端口来源 @nous-research/ui 0.19.1 的 Button/Input/Card/Badge 类；
   * app.css 只引用这些变量，保持“零颜色字面量”契约。
   */
  --lx-bevel-dark: rgba(0, 0, 0, 0.5);
  --lx-bevel-light: rgba(255, 255, 255, 0.5);
  --lx-bevel-light-soft: rgba(255, 255, 255, 0.16);
  /* X68：主按钮改语义强调色（accent 由 themes.css 逐档给），文字用背景色保证 ≥4.5:1 */
  --lx-btn-bg: var(--lx-accent);
  --lx-btn-fg: var(--lx-bg-base);
  --lx-btn-hover: color-mix(in srgb, var(--lx-accent) 88%, var(--lx-fg));
  --lx-btn-line: color-mix(in srgb, var(--lx-btn-bg) 45%, transparent);
  --lx-btn-disabled-bg: color-mix(in srgb, var(--lx-fg) 15%, transparent);
  --lx-ghost-hover: color-mix(in srgb, var(--lx-fg) 10%, transparent);
  --lx-input-bg: color-mix(in srgb, var(--lx-bg-base) 40%, transparent);
  --lx-input-border: color-mix(in srgb, var(--lx-fg) 15%, transparent);
  --lx-input-border-hover: color-mix(in srgb, var(--lx-fg) 25%, transparent);
  --lx-ring: color-mix(in srgb, var(--lx-fg) 30%, transparent);
  --lx-card-bg: color-mix(in srgb, var(--lx-bg-base) 80%, transparent);
  /* X67：DS globals.css @layer base 的派生色（选区 / 滚动条 / 弧光描边） */
  --lx-selection-bg: var(--lx-accent);
  --lx-selection-fg: var(--lx-bg-base);
  --lx-scroll-thumb: color-mix(in srgb, var(--lx-fg) 20%, transparent);
  --lx-scroll-thumb-strong: color-mix(in srgb, var(--lx-fg) 65%, transparent);
  --lx-scroll-thumb-stronger: color-mix(in srgb, var(--lx-fg) 80%, transparent);
  --lx-arc-fg: var(--lx-fg);
  --lx-arc-bg: var(--lx-bg);
  --lx-mask-ink: #000; /* 只用于 mask 的“不透明”定义，不上屏 */

  /* ---- X68：语义色的浅底与描边（由 themes.css 的 accent/info/ok/warn/danger 派生） ---- */
  --lx-accent-soft: color-mix(in srgb, var(--lx-accent) 16%, transparent);
  --lx-accent-line: color-mix(in srgb, var(--lx-accent) 45%, transparent);
  --lx-info-soft: color-mix(in srgb, var(--lx-info) 16%, transparent);
  --lx-info-line: color-mix(in srgb, var(--lx-info) 45%, transparent);
  --lx-ok-soft: color-mix(in srgb, var(--lx-ok) 16%, transparent);
  --lx-ok-line: color-mix(in srgb, var(--lx-ok) 45%, transparent);
  --lx-warn-soft: color-mix(in srgb, var(--lx-warn) 16%, transparent);
  --lx-warn-line: color-mix(in srgb, var(--lx-warn) 45%, transparent);
  --lx-danger-soft: color-mix(in srgb, var(--lx-danger) 16%, transparent);
  --lx-danger-line: color-mix(in srgb, var(--lx-danger) 45%, transparent);
  /* 0.36.10：主副体运行图的器官色相。默认取主题强调色，
     app.css 按 [data-organ] 覆盖成八条（accent/info/ok/warn/danger 的混合）。 */
  --lx-map-hue: var(--lx-accent);

  /* ---- X68：圆角别名（DS 直角按用户要求改圆角；分档给用途） ---- */
  --lx-radius-chip: var(--lx-radius-sm); /* 标签/徽章 4px */
  --lx-radius-control: var(--lx-radius-md); /* 输入框/条目 6px */
  --lx-radius-btn: var(--lx-radius-lg); /* 按钮 8px */
  --lx-radius-card: var(--lx-radius-lg); /* 卡片/面板 8px */

  /* ---- 密度：comfortable（默认，舒适）= 1.15 倍间距（compact 见 themes.css） ---- */
  --lx-space: 1.15;
  --lx-header: 3.5rem; /* X20 页头 */
  --lx-footer: 4.35rem; /* X20 页脚 */

  /* ---- X25 背景栈（对齐 dashboard Backdrop 的五层） ----
   * noise：颗粒层的不透明度倍率（上游 --noise-opacity-mul，主题可调；0 = 关掉）
   * vignette：暖角不透明度（上游 0.22）
   * filler：纹理层不透明度（上游 WebP 用 0.033，这里用程序化纹理，同量级）
   */
  --lx-noise: 1;
  --lx-vignette: 0.22;
  --lx-filler: 0.033;

  /* 0.28.0（X119/X120）：最新发布右栏的文字色。面板底是图片自己的切片，
     与 data-theme 无关——白底图配深字、深底图配浅字，所以这组值固定在 token 层。 */
  --lx-lead-on-light: #0d1a18;
  --lx-lead-on-light-dim: color-mix(in srgb, #0d1a18 74%, transparent);
  --lx-lead-on-light-accent: #a8620a;
  --lx-lead-on-dark: #ffe6cb;
  --lx-lead-on-dark-dim: color-mix(in srgb, #ffe6cb 80%, transparent);
  /* 右栏遮罩：把面板底色统一往主题色拉 72%，保证任何图片、任何位置都能读字 */
  --lx-lead-veil-light: color-mix(in srgb, #ffffff 72%, transparent);
  --lx-lead-veil-dark: color-mix(in srgb, #041c1c 72%, transparent);
}
