/* ───────────────────────────────────────────────────────────
   冷曦 AI · 全站主题「墨」
   覆盖 New API 前端（shadcn/ui + Tailwind v4）的设计 token
   经 nginx sub_filter 注入到 </head> 前，加载顺序晚于官方样式表

   中性黑：表面不带任何色偏，只留主色和状态色承担颜色。
   只覆盖设计变量，不写结构性选择器 —— 上游改组件类名本文件不失效。
   ─────────────────────────────────────────────────────────── */

/* 选择器说明 —— 本文件只做「基座」，绝不去碰主题模板。

   应用把模板写在 <body data-theme-preset=ocean-breeze> 上（选 default
   时不写这个属性），模板规则形如 [data-theme-preset=x]{...} (0,1,0)。
   本文件写在 :root/.dark 上，加倍到 (0,2,0) 只为压过上游同处 :root
   的默认值。模板挂在 body 上，就近祖先优先，天然赢过 :root 的继承值，
   因此模板照常生效。

   反面教材（上一版）：写成 [data-theme-preset][data-theme-preset]，
   属性存在即匹配 + 权重 (0,2,0)，等于覆盖掉每一个模板的全套 token ——
   后台切换主题模板将毫无反应。任何形式的 [data-theme-preset] 都不要写。*/
:root:root {
  /* ── 表面：底色压灰，卡片留纯白，靠这一档差把卡片浮起来 ──
     上一版 --card/--muted/--foreground 与上游默认值逐字节相同，
     底色又只差 #fff→#fafafa，合起来等于没改。这里刻意拉开。*/
  --background:         #f4f4f5;
  --foreground:         #18181b;
  --card:               #ffffff;
  --card-foreground:    #18181b;
  --popover:            #ffffff;
  --popover-foreground: #18181b;

  /* ── 主色：全站操作按钮统一使用冷曦紫 ── */
  --primary:              #8b5cf6;
  --primary-foreground:   #ffffff;
  --secondary:            #e9e9ec;
  --secondary-foreground: #8b5cf6;
  --muted:                #e9e9ec;
  --muted-foreground:     #52525b;   /* 对 #f4f4f5 为 7.3:1 */
  --accent-foreground:    #18181b;

  /* ── 状态色：与图表分类色刻意区分，避免状态色冒充数据系列 ── */
  --destructive:            #d03b3b;
  --destructive-foreground: #ffffff;
  --success:                #0ca30c;
  --success-foreground:     #ffffff;
  --warning:                #fab219;
  --warning-foreground:     #0a0a0a;
  --info:                   #2a78d6;
  --info-foreground:        #ffffff;
  --neutral:                #8f8f8f;
  --neutral-foreground:     #0a0a0a;

  /* ── 描边与聚焦：加重一档，让卡片和输入框边缘立起来 ── */
  --border: #d4d4d8;
  --input:  #d4d4d8;
  --ring:   #8b5cf6;

  /* ── 图表：固定顺序的分类色，非按大小排序 ── */
  --chart-1: #2a78d6;   /* blue    */
  --chart-2: #eb6834;   /* orange  */
  --chart-3: #1baf7a;   /* aqua    */
  --chart-4: #eda100;   /* yellow  */
  --chart-5: #e87ba4;   /* magenta */
  --overview-accent-1: #2a78d6;
  --overview-accent-2: #eb6834;
  --overview-accent-3: #1baf7a;

  /* ── 侧栏：纯白，与压灰的主区拉开一档 ── */
  --sidebar:                    #ffffff;
  --sidebar-foreground:         #27272a;
  --sidebar-primary:            #8b5cf6;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent-foreground:  #8b5cf6;
  --sidebar-border:             #d4d4d8;
  --sidebar-ring:               #8b5cf6;

  /* ── 骨架屏 ── */
  --skeleton-base:      #e4e4e7;
  --skeleton-highlight: #f4f4f5;
}

.dark.dark {
  /* ── 表面：纯黑基底，逐级提亮拉开层次 ── */
  --background:         #0a0a0a;
  --foreground:         #fafafa;
  --card:               #141414;
  --card-foreground:    #fafafa;
  --popover:            #1c1c1c;
  --popover-foreground: #fafafa;

  --primary:              #8b5cf6;
  --primary-foreground:   #ffffff;
  --secondary:            #1f1f1f;
  --secondary-foreground: #e5e5e5;
  --muted:                #171717;
  --muted-foreground:     #a1a1a1;
  --accent-foreground:    #fafafa;

  --destructive:            #e05252;
  --destructive-foreground: #ffffff;
  --success:                #16b516;
  --success-foreground:     #0a0a0a;
  --warning:                #fab219;
  --warning-foreground:     #0a0a0a;
  --info:                   #3987e5;
  --info-foreground:        #ffffff;
  --neutral:                #737373;
  --neutral-foreground:     #fafafa;

  --border: #ffffff14;
  --input:  #ffffff1f;
  --ring:   #8b5cf6;

  /* 同一批色相，为黑底重新取阶 —— 不是把亮色直接翻过来 */
  --chart-1: #3987e5;
  --chart-2: #d95926;
  --chart-3: #199e70;
  --chart-4: #c98500;
  --chart-5: #d55181;
  --overview-accent-1: #3987e5;
  --overview-accent-2: #d95926;
  --overview-accent-3: #199e70;

  /* 侧栏压到纯黑，与主区拉开一档 */
  --sidebar:                    #000000;
  --sidebar-foreground:         #e5e5e5;
  --sidebar-primary:            #8b5cf6;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent-foreground:  #e5e5e5;
  --sidebar-border:             #ffffff12;
  --sidebar-ring:               #8b5cf6;

  --skeleton-base:      #1a1a1a;
  --skeleton-highlight: #262626;
}

/* ───────────────────────────────────────────────────────────
   首页「前往仪表板」CTA —— 与全站主色保持一致

   只改登录后的 /dashboard（/console 是旧路由，应用内部会重定向过去，
   一并覆盖）。未登录时同一位置显示的是「Get Started」(/sign-up)，
   按要求保持原来的蓝色，不动。

   只重定义元素自己的 --primary，不直接写 background-color：
     .bg-primary            → background-color: var(--primary)
     [a]:hover:bg-primary/80 → color-mix(in oklab, var(--primary) 80%, transparent)
   改变量能让底色和 hover 一起跟上，不必逐条补规则；上游改类名也不失效。

   body:not([data-theme-preset]) 把这条限定在默认模板下，换其它主题模板时
   自动让位。这与文件开头「不要命中 [data-theme-preset]」不矛盾 —— 那条禁的是
   覆盖模板的 token，这里是反过来：只在没有模板时才上色。

   颜色固定为用户指定的 #8b5cf6，深浅色使用同一品牌色。
   ─────────────────────────────────────────────────────────── */
body:not([data-theme-preset]) a[href="/dashboard"].bg-primary,
body:not([data-theme-preset]) a[href="/console"].bg-primary {
  --primary: #8b5cf6;
}

.dark body:not([data-theme-preset]) a[href="/dashboard"].bg-primary,
.dark body:not([data-theme-preset]) a[href="/console"].bg-primary {
  --primary: #8b5cf6;
}
