/**
 * AIUGOOE — 设计令牌（Design Tokens）v1
 *
 * 这是前端底座的单一事实来源：插件应用、命令面板、未来的一切 UI 都从这里取值。
 * 语义层（--bg0..--text3 等）保持历史兼容；本文件只做规范化补全，不改变现有视觉。
 *
 * 使用规范：
 *   - 插件 UI 一律使用 var(--x) 引用令牌，禁止硬编码颜色/圆角/间距
 *   - 新增 UI 一律从 spacing/radius/type scale 取值
 *   - 令牌分四层：基础(primitive) → 语义(semantic) → 组件(component) → 别名(alias)
 */

:root {
  /* ── 间距比例（4px 基准） ── */
  --space-0: 2px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;

  /* ── 圆角比例 ── */
  --radius-xs: 5px;
  --radius-sm: 7px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 999px;

  /* ── 字号比例 ── */
  --font-xs: 10.5px;
  --font-sm: 11.5px;
  --font-ui: 12.5px;
  --font-md: 13.5px;
  --font-body: 14px;
  --font-lg: 16px;
  --font-xl: 19px;

  /* ── 字重 ── */
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* ── 阴影（三层海拔） ── */
  --shadow-1: 0 2px 8px rgba(0, 0, 0, .28);
  --shadow-2: 0 10px 30px rgba(0, 0, 0, .38);
  --shadow-3: 0 20px 60px rgba(0, 0, 0, .55);

  /* ── 层级（z-index 仪表） ── */
  --z-base: 0;
  --z-sticky: 10;
  --z-menu: 60;
  --z-modal: 100;
  --z-toast: 200;

  /* ── 动效 ── */
  --ease-out: cubic-bezier(.2, .9, .3, 1);
  --ease-spring: cubic-bezier(.2, .9, .3, 1.15);
  --dur-fast: .12s;
  --dur-base: .16s;
  --dur-slow: .3s;

  /* ── 状态色语义（透明度已调好，直接用） ── */
  --ok: #34d399;
  --warn: #ffb454;
  --err: #f87171;
  --ok-bg: rgba(52, 211, 153, .12);
  --ok-border: rgba(52, 211, 153, .3);
  --warn-bg: rgba(255, 180, 84, .1);
  --warn-border: rgba(255, 180, 84, .3);
  --err-bg: rgba(248, 113, 113, .1);
  --err-border: rgba(248, 113, 113, .3);
  --ai-bg: rgba(151, 136, 255, .09);
  --ai-border: rgba(151, 136, 255, .32);

  /* ── 焦点环（所有可交互元素统一） ── */
  --focus-ring: 0 0 0 3px rgba(151, 136, 255, .16);

  /* ── 布局常量 ── */
  --content-w: min(1080px, 94%);   /* P0-5 迁移裁决：保持 app.css 原生效值（原 780px 是被覆盖的死值） */
  --header-h: 52px;

  /* ── Nova 语义层（P0-5 单源化：自 app.css :root 整体迁入，值保持不变） ── */
  --bg0: #050505;
  --bg1: #0a0a0a;
  --bg2: #0f0f0f;
  --bg3: #161616;
  --card: #111111;
  --line: rgba(240, 240, 240, .07);
  --line2: rgba(240, 240, 240, .13);
  --text: #f0f0f0;
  --text2: #e5e5e5;
  --text3: #9ca3af;
  --ai: #9788ff;                       /* AI 紫：思考/模型/流式 */
  --jade: #34d399;                     /* 成功/在线 */
  --sky: #9ca3af;
  --muted: #9ca3af;                    /* 次要说明文字（与 text3 同灰阶） */
  --grad: linear-gradient(135deg, #f0f0f0, #ffffff);
  --grad-ink: #06251f;                 /* 渐变亮面上的墨字色（深色主题） */
  --grad-dark: linear-gradient(135deg, #3f3f46, #18181b);
  --amber: #d4d4d8;
  --coral: #f87171;
  --mono: "Cascadia Code", "Consolas", "JetBrains Mono", monospace;
  --sans: "Segoe UI Variable Text", "Segoe UI", "Microsoft YaHei UI", system-ui, sans-serif;
  --tb-h: 46px;
  --sb-w: 260px;
}

/* 浅色主题下仅覆盖有差异的令牌 */
:root[data-theme="light"] {
  --shadow-1: 0 2px 8px rgba(20, 20, 40, .08);
  --shadow-2: 0 10px 30px rgba(20, 20, 40, .12);
  --shadow-3: 0 20px 60px rgba(20, 20, 40, .18);
  --focus-ring: 0 0 0 3px rgba(109, 92, 230, .18);

  /* ── Nova 语义层浅色覆盖（P0-5 单源化：自 app.css 浅色块迁入，值保持不变） ── */
  --bg0: #f6f6f8;
  --bg1: #ffffff;
  --bg2: #f1f1f4;
  --bg3: #e8e8ee;
  --card: #ffffff;
  --line: rgba(20, 20, 30, .09);
  --line2: rgba(20, 20, 30, .16);
  --text: #16161a;
  --text2: #2b2b33;
  --text3: #6b7078;
  --muted: #71717d;
  --ai: #6d5ce6;
  --ai-border: rgba(109, 92, 230, .38);
  --jade: #0e9f6e;
  --grad: linear-gradient(135deg, #232329, #3a3a44);
  --grad-ink: #f4f4f8;                 /* 浅色主题下渐变面变深，墨字换浅字（修对比度 bug） */
  --grad-dark: linear-gradient(135deg, #e4e4ea, #f4f4f8);
}
