/* SoloSpace · 设计令牌
 * 视觉语言：HyperOS 的「大圆角 + 玻璃拟态 + 弹性动效」
 *          + HarmonyOS 的「分层留白 + 卡片化信息 + 克制的强调色」
 * 深浅双主题，全部走 CSS 变量，切换无闪烁。 */
:root {
  --r-xs: 10px; --r-sm: 14px; --r-md: 20px; --r-lg: 28px; --r-xl: 36px; --r-pill: 999px;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px;
  --sp-7: 32px; --sp-8: 40px; --sp-9: 56px;
  --fs-xs: 12px; --fs-sm: 13px; --fs-md: 15px; --fs-lg: 17px; --fs-xl: 21px;
  --fs-2xl: 28px; --fs-3xl: 36px; --fs-4xl: 46px;
  --ease-spring: cubic-bezier(.34, 1.46, .64, 1);
  --ease-out: cubic-bezier(.22, .61, .36, 1);
  --dur: 260ms;
  --font: -apple-system, BlinkMacSystemFont, "HarmonyOS Sans SC", "MiSans", "PingFang SC",
          "Noto Sans CJK SC", "Microsoft YaHei", system-ui, sans-serif;
  --mono: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace;
  --maxw: 1240px;
}
/* ── 浅色 ─────────────────────────────────────────────────────────── */
[data-theme="light"] {
  --bg: #f4f6fb;
  --bg-elev: rgba(255, 255, 255, .72);
  --bg-elev-solid: #ffffff;
  --bg-sunken: #eceff6;
  --bg-code: #fbfcfe;
  --fg: #16181d;
  --fg-2: #4a5060;
  --fg-3: #7b8296;
  --fg-inv: #ffffff;
  --line: rgba(20, 24, 33, .09);
  --line-strong: rgba(20, 24, 33, .16);
  --accent: #3d6dff;
  --accent-2: #6b4bff;
  --accent-soft: rgba(61, 109, 255, .12);
  --accent-fg: #ffffff;
  --ok: #16a34a; --warn: #d97706; --danger: #dc2626; --info: #0284c7;
  --shadow-1: 0 1px 2px rgba(16, 24, 40, .05), 0 4px 14px rgba(16, 24, 40, .06);
  --shadow-2: 0 2px 6px rgba(16, 24, 40, .06), 0 14px 40px rgba(16, 24, 40, .10);
  --glass-blur: 22px;
  --grad: linear-gradient(135deg, #3d6dff 0%, #6b4bff 55%, #9b3bff 100%);
  /* 代码高亮 */
  --tk-key: #a626a4; --tk-str: #3a9d5c; --tk-num: #b76b01; --tk-com: #98a0b3;
  --tk-fn: #3d6dff; --tk-type: #0f8b8d; --tk-punc: #6b7280; --tk-var: #16181d;
  --tk-tag: #d1426b; --tk-attr: #b76b01; --tk-regex: #c2571a;
}
/* ── 深色 ─────────────────────────────────────────────────────────── */
[data-theme="dark"] {
  --bg: #0b0d12;
  --bg-elev: rgba(24, 27, 35, .68);
  --bg-elev-solid: #161922;
  --bg-sunken: #10131a;
  --bg-code: #0f1219;
  --fg: #e9ecf3;
  --fg-2: #a8b0c0;
  --fg-3: #6f7789;
  --fg-inv: #0b0d12;
  --line: rgba(255, 255, 255, .10);
  --line-strong: rgba(255, 255, 255, .18);
  --accent: #6f95ff;
  --accent-2: #9b7cff;
  --accent-soft: rgba(111, 149, 255, .16);
  --accent-fg: #0b0d12;
  --ok: #4ade80; --warn: #fbbf24; --danger: #f87171; --info: #60a5fa;
  --shadow-1: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .35);
  --shadow-2: 0 2px 8px rgba(0, 0, 0, .45), 0 18px 46px rgba(0, 0, 0, .5);
  --glass-blur: 26px;
  --grad: linear-gradient(135deg, #6f95ff 0%, #9b7cff 55%, #c56bff 100%);
  --tk-key: #c792ea; --tk-str: #a5e07d; --tk-num: #f7c26b; --tk-com: #6b7385;
  --tk-fn: #82aaff; --tk-type: #5fd3c4; --tk-punc: #8b93a7; --tk-var: #e9ecf3;
  --tk-tag: #f78fb3; --tk-attr: #f7c26b; --tk-regex: #ff9e64;
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
