:root {
  --font-sans: "Inter", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-serif: "Iowan Old Style", "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", Georgia, serif;
  --font-mono: "SFMono-Regular", "Cascadia Code", "JetBrains Mono", "Roboto Mono", ui-monospace, monospace;

  --bg: #f4f1ea;
  --bg-elev: #faf8f2;
  --surface: #fffdf9;
  --surface-2: #f1ede4;
  --surface-3: #e9e3d7;
  --ink: #14272b;
  --ink-2: #3a5358;
  --muted: #5d7174;
  --faint: #7d9091;
  --line: rgba(20, 39, 43, 0.12);
  --line-strong: rgba(20, 39, 43, 0.22);

  --brand: #0e766e;
  --brand-hover: #0a625c;
  --brand-soft: #d9eee9;
  --brand-ink: #064e49;
  --on-brand: #ffffff;
  --accent: #df5a4f;
  --accent-hover: #c94a40;
  --accent-soft: #f9e2de;
  --gold: #b98a3d;
  --danger: #c53b3b;
  --danger-soft: #f6dede;
  --warn: #92580f;
  --warn-soft: #f6e9d2;
  --ok: #2f7d5b;
  --ok-soft: #dbeee4;
  --info: #3d6a8f;
  --info-soft: #e0ebf4;

  --ecg-bg: #fff8f4;
  --ecg-grid-minor: #f3d4cd;
  --ecg-grid-major: #e7b2a8;
  --ecg-trace: #143c3a;
  --ecg-glow: rgba(20, 118, 110, 0.18);

  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --radius-xl: 30px;
  --radius-pill: 999px;

  --shadow-1: 0 1px 2px rgba(20, 39, 43, 0.05), 0 8px 24px rgba(20, 39, 43, 0.05);
  --shadow-2: 0 18px 54px rgba(20, 39, 43, 0.12);
  --shadow-glow: 0 0 0 1px rgba(14, 118, 110, 0.14), 0 18px 44px rgba(14, 118, 110, 0.11);

  --sidebar-w: 258px;
  --topbar-h: 66px;
  --bottomnav-h: 68px;
  --content-max: 1240px;
  --reading-max: 780px;

  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-spring: cubic-bezier(0.2, 1.25, 0.4, 1);
  --t-fast: 150ms;
  --t-base: 220ms;
  --t-slow: 380ms;

  --z-sidebar: 30;
  --z-topbar: 40;
  --z-bottomnav: 45;
  --z-modal: 80;
  --z-toast: 90;
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #071417;
  --bg-elev: #0a1a1d;
  --surface: #0e2226;
  --surface-2: #132d31;
  --surface-3: #1a383d;
  --ink: #e9f3f0;
  --ink-2: #b9cdca;
  --muted: #86a09e;
  --faint: #6a8583;
  --line: rgba(233, 243, 240, 0.12);
  --line-strong: rgba(233, 243, 240, 0.24);

  --brand: #5bd6c8;
  --brand-hover: #7ce4d8;
  --brand-soft: rgba(91, 214, 200, 0.13);
  --brand-ink: #a7f1e8;
  --on-brand: #062a27;
  --accent: #ff7b6e;
  --accent-hover: #ff9a90;
  --accent-soft: rgba(255, 123, 110, 0.14);
  --gold: #e0b46c;
  --danger: #ff6b6b;
  --danger-soft: rgba(255, 107, 107, 0.14);
  --warn: #f0b35e;
  --warn-soft: rgba(240, 179, 94, 0.14);
  --ok: #6ed6a6;
  --ok-soft: rgba(110, 214, 166, 0.14);
  --info: #84b4df;
  --info-soft: rgba(132, 180, 223, 0.14);

  --ecg-bg: #081b1c;
  --ecg-grid-minor: rgba(255, 123, 110, 0.1);
  --ecg-grid-major: rgba(255, 123, 110, 0.23);
  --ecg-trace: #7df0cf;
  --ecg-glow: rgba(125, 240, 207, 0.22);

  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.25), 0 10px 28px rgba(0, 0, 0, 0.16);
  --shadow-2: 0 22px 60px rgba(0, 0, 0, 0.42);
  --shadow-glow: 0 0 0 1px rgba(91, 214, 200, 0.18), 0 18px 44px rgba(0, 0, 0, 0.3);
}
