:root {
  color-scheme: light;
  --bg-dark: #1d1d1f;
  --bg-dark-alt: #2c2c2e;
  --bg-content: #f5f5f7;
  --bg-card: #ffffff;
  --surface-subtle: #f7f7f9;
  --surface-input: #ffffff;
  --surface-info: #f2f8ff;
  --surface-danger: #fff6f5;
  --primary: #0071e3;
  --primary-hover: #0058b0;
  --primary-light: rgba(0, 113, 227, 0.1);
  --primary-soft: var(--primary-light);
  --success: #248a3d;
  --danger: #d70015;
  --danger-hover: #aa0011;
  --warning: #b65f00;
  --info: #0071e3;
  --text-primary: #1d1d1f;
  --text-secondary: #515154;
  --text-muted: #6e6e73;
  --text-tertiary: var(--text-muted);
  --text-on-dark: #ffffff;
  --border: #c7c7cc;
  --border-hover: #98989d;
  --line-soft: #e2e2e7;
  --input-border: #b8b8bd;
  --table-header: #f5f5f7;
  --table-hover: #f1f7fd;
  --table-row-hover: var(--table-hover);
  --table-stripe: #fafbfc;
  --overlay-scrim: rgba(0, 0, 0, 0.42);
  --overlay-dialog-scrim: rgba(0, 0, 0, 0.4);
  --sidebar-active-text: #69b7ff;
  --sidebar-active-surface: rgba(10, 132, 255, 0.16);
  --sidebar-text-secondary: rgba(255, 255, 255, 0.78);
  --sidebar-text-muted: rgba(255, 255, 255, 0.48);
  --danger-text-on-surface: #ffb4ae;
  --danger-surface-strong: rgba(215, 0, 21, 0.14);
  --danger-border-strong: rgba(215, 0, 21, 0.3);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
  --shadow-md: 0 6px 18px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 14px 38px rgba(0, 0, 0, 0.12);
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --font-sans: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif;
  --font-cn: var(--font-sans);
  --font-en: var(--font-sans);
  --font-mono: "SF Mono", "Fira Code", "Source Code Pro", "Cascadia Code", Consolas, "Courier New", monospace;
  --font-size-3xs: 10px;
  --font-size-2xs: 11px;
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-md: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 22px;
  --line-height-tight: 1.25;
  --line-height-base: 1.5;
  --line-height-relaxed: 1.7;
  --space-0: 0;
  --space-1: 4px;
  --space-1-5: 6px;
  --space-2: 8px;
  --space-2-5: 10px;
  --space-3: 12px;
  --space-3-5: 14px;
  --space-4: 16px;
  --space-4-5: 18px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 28px;
  --space-8: 32px;
  --space-9: 36px;
  --space-10: 40px;
  --space-11: 44px;
  --space-12: 48px;
  --sidebar-w: 240px;
  --z-sidebar-overlay: 90;
  --z-sidebar: 100;
  --z-mobile-menu: 102;
  --z-dialog: 1000;
  --z-popover-context: 1150;
  --z-popover: 1200;
  --z-toast: 2000;
  --z-date-picker: 10000;
  --ease-apple: cubic-bezier(0.28, 0.11, 0.32, 1);
  --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --duration-fast: 160ms;
  --duration-base: 240ms;
  --duration-slow: 360ms;
  --focus-ring: 0 0 0 3px rgba(0, 113, 227, 0.28);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg-dark: #101114;
  --bg-dark-alt: #1b1c20;
  --bg-content: #16171a;
  --bg-card: #202126;
  --surface-subtle: #292a2f;
  --surface-input: #292a2f;
  --surface-info: #182534;
  --surface-danger: #351f22;
  --primary: #409cff;
  --primary-hover: #70b7ff;
  --primary-light: rgba(64, 156, 255, 0.16);
  --success: #52d273;
  --danger: #ff6961;
  --danger-hover: #ff918b;
  --warning: #ffb340;
  --info: #64b5ff;
  --text-primary: #f5f5f7;
  --text-secondary: #c7c7cc;
  --text-muted: #a1a1a6;
  --text-tertiary: var(--text-muted);
  --border: #48484a;
  --border-hover: #73747a;
  --line-soft: #34353a;
  --input-border: #5a5b60;
  --table-header: #292a2f;
  --table-hover: #292f38;
  --table-row-hover: var(--table-hover);
  --table-stripe: #24252a;
  --focus-ring: 0 0 0 3px rgba(64, 156, 255, 0.38);
  --danger-text-on-surface: #ffb4ae;
  --danger-surface-strong: rgba(255, 105, 97, 0.14);
  --danger-border-strong: rgba(255, 105, 97, 0.35);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.25);
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 18px 46px rgba(0, 0, 0, 0.38);
}
