/* theme.css 设计令牌（中性灰白 · 小圆角 · 系统字体栈）。
 * 组件只消费语义令牌；light 默认，.dark 切换。
 * 变量名是契约：markup 里 22 处 var(--radius)、28 处 var(--apple-radius-sm)、
 * 135 处 var(--muted-foreground) 直接引用，改名会静默退化成无样式，只动值不动名。 */
:root {
  /* solo-design consumption aliases */
  --apple-background: var(--background, #ffffff);
  --apple-foreground: var(--foreground, #0f172a);
  --apple-card: var(--card, var(--background));
  --apple-card-foreground: var(--card-foreground, var(--foreground));
  --apple-popover: var(--popover, var(--card));
  --apple-popover-foreground: var(--popover-foreground, var(--card-foreground, var(--foreground)));
  --apple-primary: var(--primary, #111827);
  --apple-primary-foreground: var(--primary-foreground, #ffffff);
  --apple-secondary: var(--secondary, var(--muted, var(--card)));
  --apple-secondary-foreground: var(--secondary-foreground, var(--foreground));
  --apple-muted: var(--muted, var(--card));
  --apple-muted-foreground: var(--muted-foreground, var(--foreground));
  --apple-accent: var(--accent, var(--secondary, var(--muted, var(--card))));
  --apple-accent-foreground: var(--accent-foreground, var(--foreground));
  --apple-destructive: var(--destructive, #ef4444);
  --apple-destructive-foreground: var(--destructive-foreground, #ffffff);
  --apple-border: var(--border, currentColor);
  --apple-input: var(--input, var(--border));
  --apple-ring: var(--ring, var(--primary));
  --apple-chart-1: var(--chart-1, var(--primary));
  --apple-chart-2: var(--chart-2, var(--secondary, var(--primary)));
  --apple-chart-3: var(--chart-3, var(--accent, var(--primary)));
  --apple-chart-4: var(--chart-4, var(--muted-foreground, var(--foreground)));
  --apple-chart-5: var(--chart-5, var(--foreground));
  --apple-sidebar: var(--sidebar, var(--background));
  --apple-sidebar-foreground: var(--sidebar-foreground, var(--foreground));
  --apple-sidebar-primary: var(--sidebar-primary, var(--primary));
  --apple-sidebar-primary-foreground: var(--sidebar-primary-foreground, var(--primary-foreground));
  --apple-sidebar-accent: var(--sidebar-accent, var(--accent, var(--muted, var(--card))));
  --apple-sidebar-accent-foreground: var(--sidebar-accent-foreground, var(--accent-foreground, var(--foreground)));

  /* ===== PRIMITIVE PALETTE =====
   * 灰阶一律走中性 zinc 而非 iOS 的蓝味灰（#f2f2f7 那套），
   * 否则纯白侧栏贴纯白内容区时分隔线会发蓝。 */
  --brand-50: #eef4ff;
  --brand-100: #dbe7ff;
  --brand-200: #bcd2ff;
  --brand-300: #8fb4ff;
  --brand-400: #5f92fb;
  --brand-500: #2f7bf6; /* @primary */
  --brand-600: #1f63d6;
  --brand-700: #1a51ae;
  --brand-800: #173f84;
  --brand-900: #142b5a;

  --background-50: #ffffff;
  --background-100: #fafafa;
  --background-200: #f4f4f5;
  --background-300: #e9e9ec;
  --background-400: #dcdce0;
  --background-500: #b4b4ba;
  --background-600: #8b8b92;
  --background-700: #55555c;
  --background-800: #26262b;
  --background-900: #17171a;

  --text-50: #f6f6f7;
  --text-100: #e6e6e9;
  --text-200: #c9c9cf;
  --text-300: #a8a8b0;
  --text-400: #8b8b93;
  --text-500: #6f6f78;
  --text-600: #52525b;
  --text-700: #3f3f46;
  --text-800: #1f1f23;
  --text-900: #0f0f11;

  --icon-50: #f6f6f7;
  --icon-100: #e6e6e9;
  --icon-200: #dcdce0;
  --icon-300: #c9c9cf;
  --icon-400: #b4b4ba;
  --icon-500: #8b8b92;
  --icon-600: #6f6f78;
  --icon-700: #52525b;
  --icon-800: #3a3a41;
  --icon-900: #1f1f23;

  --state-success: #16a34a;
  --state-success-dark: #35c37a;
  --state-success-surface: #e9f7ee;
  --state-success-foreground: #ffffff;

  --state-error: #dc2626;
  --state-error-dark: #ff6b6b;
  --state-error-surface: #fdecec;
  --state-error-foreground: #ffffff;

  /* warning：模型级限流等"部分受限、账号仍可用"的中间态；
     与 error（账号级冷却/禁用）区分，浅琥珀不制造红色恐慌 */
  --state-warning: #b45309;
  --state-warning-dark: #f0a132;
  --state-warning-surface: #fdf3e3;
  --state-warning-foreground: #ffffff;

  /* ===== SEMANTIC ROLES ===== */
  --background: var(--background-50);
  --foreground: var(--text-800);
  --card: var(--background-50);
  --card-foreground: var(--text-800);
  --popover: var(--background-50);
  --popover-foreground: var(--text-900);

  --primary: var(--brand-500);
  --primary-foreground: var(--background-50);
  --secondary: var(--background-200);
  --secondary-foreground: var(--text-800);
  --muted: var(--background-200);
  --muted-foreground: var(--text-500);
  --accent: var(--background-300);
  --accent-foreground: var(--text-800);
  --destructive: var(--state-error);
  --destructive-foreground: var(--state-error-foreground);
  --success: var(--state-success);
  --success-foreground: var(--state-success-foreground);
  --border: var(--background-300);
  --input: var(--background-400);
  --ring: var(--brand-500);

  --icon: var(--icon-900);
  --icon-muted: var(--icon-500);

  /* chart */
  --chart-1: var(--state-success);
  --chart-2: var(--brand-500);
  --chart-3: #f59e0b;
  --chart-4: #8b5cf6;
  --chart-5: #ec4899;

  /* sidebar：与内容区同为纯白，只靠一条发丝线分隔（旧版是灰底，与白卡片分层） */
  --sidebar: var(--background-50);
  --sidebar-foreground: var(--text-800);
  --sidebar-primary: var(--brand-500);
  --sidebar-primary-foreground: var(--background-50);
  --sidebar-accent: var(--background-200);
  --sidebar-accent-foreground: var(--text-900);
  --sidebar-border: var(--background-300);
  --sidebar-ring: var(--brand-500);

  /* TYPOGRAPHY：本机不加载 webfont，DM Sans 那类只会 fallback，
   * 直接把 CJK 排在前面反而拿到真实字形。 */
  --font-sans: "PingFang SC", "Microsoft YaHei", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-serif: "PingFang SC", "Microsoft YaHei", -apple-system, "Segoe UI", serif;
  --font-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --tracking-normal: 0em;

  /* RADIUS：整档从 iOS 的 19px 级降到 10px 级。
   * --radius 是卡片外框（22 处引用），sm/md 是控件与菜单项。 */
  --radius: 10px;

  /* SHADOWS：近扁平，阴影只用于浮层（弹层/抽屉/模态），卡片本身靠描边分层 */
  --shadow-2xs: 0 1px 1px rgba(15, 15, 17, 0.03);
  --shadow-xs: 0 1px 2px rgba(15, 15, 17, 0.05);
  --shadow-sm: 0 1px 2px rgba(15, 15, 17, 0.05), 0 1px 3px rgba(15, 15, 17, 0.04);
  --shadow: 0 1px 3px rgba(15, 15, 17, 0.06);
  --shadow-md: 0 2px 6px rgba(15, 15, 17, 0.06);
  --shadow-lg: 0 6px 20px -4px rgba(15, 15, 17, 0.10), 0 2px 6px rgba(15, 15, 17, 0.05);
  --shadow-xl: 0 12px 32px -8px rgba(15, 15, 17, 0.14), 0 4px 10px rgba(15, 15, 17, 0.06);
  --shadow-2xl: 0 24px 56px -12px rgba(15, 15, 17, 0.18);

  /* SPACING */
  --spacing: 0.25rem;

  /* RADIUS SEMANTIC ALIASES */
  --apple-radius-sm: 6px;
  --apple-radius-md: 8px;
  --apple-radius-lg: 10px;
  --apple-radius-xl: 14px;
}

/* ===== SEMANTIC ROLES - dark ===== */
.dark {
  --background: var(--background-900);
  --foreground: var(--text-50);
  --card: #1d1d21;
  --card-foreground: var(--text-50);
  --popover: #212126;
  --popover-foreground: var(--text-50);

  --primary: var(--brand-400);
  --primary-foreground: var(--background-900);
  --secondary: #26262b;
  --secondary-foreground: var(--text-50);
  --muted: #26262b;
  --muted-foreground: #9a9aa3;
  --accent: #2e2e34;
  --accent-foreground: var(--text-50);
  --destructive: var(--state-error-dark);
  --destructive-foreground: var(--background-900);
  --success: var(--state-success-dark);
  --success-foreground: var(--background-900);
  --border: #2c2c31;
  --input: #3a3a41;
  --ring: var(--brand-400);

  --icon: var(--icon-50);
  --icon-muted: var(--icon-500);

  /* 角标底色：旧版只覆写了前景色，浅绿/浅红 chip 直接落进暗色里变成两块高亮斑 */
  --state-success: var(--state-success-dark);
  --state-error: var(--state-error-dark);
  --state-success-surface: #1c2f23;
  --state-error-surface: #341e1e;
  --state-warning: var(--state-warning-dark);
  --state-warning-surface: #38290f;

  --chart-1: var(--state-success-dark);
  --chart-2: var(--brand-400);
  --chart-3: #fbbf24;
  --chart-4: #a78bfa;
  --chart-5: #f472b6;

  --sidebar: var(--background-900);
  --sidebar-foreground: var(--text-50);
  --sidebar-primary: var(--brand-400);
  --sidebar-primary-foreground: var(--background-900);
  --sidebar-accent: #26262b;
  --sidebar-accent-foreground: var(--text-50);
  --sidebar-border: #26262b;
  --sidebar-ring: var(--brand-400);

  --shadow-2xs: 0 1px 1px rgba(0, 0, 0, 0.24);
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.32);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.36), 0 1px 3px rgba(0, 0, 0, 0.32);
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.40);
  --shadow-md: 0 2px 6px rgba(0, 0, 0, 0.44);
  --shadow-lg: 0 6px 20px -4px rgba(0, 0, 0, 0.55), 0 2px 6px rgba(0, 0, 0, 0.40);
  --shadow-xl: 0 12px 32px -8px rgba(0, 0, 0, 0.62), 0 4px 10px rgba(0, 0, 0, 0.44);
  --shadow-2xl: 0 24px 56px -12px rgba(0, 0, 0, 0.70);
}
