:root {
  --background: #F8FAFC;
  --foreground: #0F172A;
  --card: #ffffff;
  --card-foreground: #0F172A;
  --popover: #ffffff;
  --popover-foreground: #0F172A;
  --primary: #4F46E5;
  --primary-hover: #4338CA;
  --primary-foreground: #ffffff;
  --secondary: #EEF2FF;
  --secondary-foreground: #3730A3;
  --muted: #F1F5F9;
  --muted-foreground: #64748B;
  --accent: #ECFDF5;
  --accent-foreground: #065F46;
  --destructive: #DC2626;
  --destructive-hover: #B91C1C;
  --destructive-foreground: #ffffff;
  --border: #E2E8F0;
  --input: transparent;
  --input-background: #F1F5F9;
  --switch-background: #CBD5E1;
  --ring: oklch(0.708 0 0);

  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --leading-normal: 1.5;

  --radius: 0.625rem;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.625rem;
  --radius-xl: 0.875rem;

  --success: #059669;
  --success-bg: #D1FAE5;
  --success-fg: #047857;
  --info-bg: #DBEAFE;
  --info-fg: #1D4ED8;
  --warning-bg: #FEF3C7;
  --warning-fg: #B45309;
  --violet-bg: #EDE9FE;
  --violet-fg: #6D28D9;
  --danger-bg: #FEE2E2;
  --danger-fg: #DC2626;
  --paid-bg: #E0E7FF;
  --paid-fg: #4338CA;

  --surface-subtle: #F8FAFC;
  --text-subtle: #94A3B8;
  --text-strong: #1E293B;
  --text-body: #334155;
  --text-secondary: #475569;
  --indigo-border: #C7D2FE;
  --indigo-soft: #E0E7FF;
  --focus-border: #818CF8;
  --focus-ring: #E0E7FF;
  --shadow-sm: 0 1px 3px rgba(15, 23, 42, .06);
  --shadow-card: 0 12px 30px rgba(15, 23, 42, .08);
  --shadow-primary: 0 12px 24px rgba(79, 70, 229, .18);
}

.dark {
  --background: oklch(0.145 0 0);
  --foreground: oklch(0.985 0 0);
  --card: oklch(0.145 0 0);
  --card-foreground: oklch(0.985 0 0);
  --popover: oklch(0.145 0 0);
  --popover-foreground: oklch(0.985 0 0);
  --primary: oklch(0.985 0 0);
  --primary-foreground: oklch(0.145 0 0);
  --secondary: oklch(0.269 0 0);
  --secondary-foreground: oklch(0.985 0 0);
  --muted: oklch(0.269 0 0);
  --muted-foreground: oklch(0.708 0 0);
  --accent: oklch(0.269 0 0);
  --accent-foreground: oklch(0.985 0 0);
  --border: oklch(0.269 0 0);
  --destructive: oklch(0.396 0.141 25.723);
}
