:root {
  /* Brand */
  --color-primary: #2f8cff;
  --color-primary-hover: #1f7df0;
  --color-primary-active: #176bd1;
  --color-primary-soft: #eaf3ff;
  --color-primary-line: #3092ff;

  /* Background */
  --color-bg-page: #f3f5f8;
  --color-bg-card: #ffffff;
  --color-bg-muted: #f6f8fb;
  --color-bg-sidebar: #eef2f6;
  --color-bg-overlay: rgba(15, 23, 42, 0.36);

  /* Text */
  --color-text-primary: #1f2937;
  --color-text-secondary: #64748b;
  --color-text-muted: #94a3b8;
  --color-text-on-primary: #ffffff;

  /* Border */
  --color-border: #d9e2ec;
  --color-border-strong: #cbd5e1;
  --color-border-soft: #e8eef5;
  --border-width-default: 1px;

  /* Status */
  --color-success: #22c55e;
  --color-success-soft: #dcfce7;
  --color-success-strong: #15803d;
  --color-warning: #eab308;
  --color-warning-soft: #fef3c7;
  --color-warning-strong: #a16207;
  --color-danger: #ef4444;
  --color-danger-soft: #fee2e2;
  --color-danger-strong: #b91c1c;
  --color-info: #3b82f6;
  --color-info-soft: #dbeafe;
  --color-info-strong: #1d4ed8;

  /* Amount */
  --color-amount-income: #ff7300;
  --color-amount-expense: #334155;
  --color-amount-neutral: #0f172a;

  /* Data / Charts */
  --color-chart-1: #5b74c9;
  --color-chart-2: #8cc96b;
  --color-chart-3: #f7c95f;
  --color-chart-4: #ef6b6b;
  --color-chart-5: #7cc5df;
  --color-chart-6: #b68cff;

  /* Typography */
  --font-family-base: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;

  --font-size-caption: 12px;
  --font-size-body: 14px;
  --font-size-body-lg: 16px;
  --font-size-section-title: 18px;
  --font-size-page-title: 32px;
  --font-size-display: 36px;
  --font-size-metric: 24px;
  --font-size-table: 14px;

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Radius */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;

  /* Shadow */
  --shadow-sm: 0 2px 10px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 6px 18px rgba(15, 23, 42, 0.08);

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;

  /* Layout */
  --layout-topbar-height: 72px;
  --layout-sidebar-width: 240px;
  --layout-content-max-width: 1440px;
  --page-content-max-width: 1440px;

  /* Component */
  --control-height-sm: 32px;
  --control-height-md: 40px;
  --button-height-sm: 32px;
  --button-height-md: 40px;
  --input-height: 40px;
  --button-height: 40px;
  --table-row-height: 56px;
  --card-padding: 24px;

  /* State */
  --opacity-disabled: 0.5;
  --color-focus-ring: rgba(47, 140, 255, 0.12);
  --color-loading: #cbd5e1;
  --color-hover-soft: rgba(47, 140, 255, 0.08);
  --color-hover-row: rgba(15, 23, 42, 0.02);
  --color-icon-muted-bg: rgba(15, 23, 42, 0.05);

  /* Layer */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-modal: 1080;
  --z-toast: 1100;

  /* Legacy aliases for current layout CSS */
  --color-bg-app: var(--color-bg-page);
  --color-bg-surface: var(--color-bg-card);
  --color-text-strong: var(--color-text-primary);
  --color-text-main: var(--color-text-secondary);
  --color-text-light: var(--color-text-muted);
  --shadow-card: var(--shadow-sm);
  --shadow-hover: var(--shadow-md);
  --font-size-xs: var(--font-size-caption);
  --font-size-sm: var(--font-size-body);
  --font-size-md: var(--font-size-body-lg);
  --font-size-lg: var(--font-size-section-title);
  --font-size-xl: 24px;
  --font-size-2xl: var(--font-size-display);
}
