:root {
  --theme-primary: #3b82f6;
  --theme-primary-rgb: 59 130 246;
  --theme-secondary: #6366f1;
  --theme-secondary-rgb: 99 102 241;
  --theme-accent: #8b5cf6;
  --theme-accent-rgb: 139 92 246;
  --theme-neutral: #6b7280;
  --theme-neutral-rgb: 107 114 128;
  --theme-primary-font: #1e293b;
  --theme-primary-font-rgb: 30 41 59;
  --theme-secondary-font: #475569;
  --theme-secondary-font-rgb: 71 85 105;
  --theme-background: #ffffff;
  --theme-background-rgb: 255 255 255;
  --theme-surface: #f8fafc;
  --theme-surface-rgb: 248 250 252;
  --theme-card: #ffffff;
  --theme-card-rgb: 255 255 255;
  --theme-border: #e2e8f0;
  --theme-border-rgb: 226 232 240;
  --theme-font-family: Figtree, ui-sans-serif, system-ui, sans-serif;
}

.dark {
  --theme-primary: #60a5fa;
  --theme-primary-rgb: 96 165 250;
  --theme-secondary: #818cf8;
  --theme-secondary-rgb: 129 140 248;
  --theme-accent: #a78bfa;
  --theme-accent-rgb: 167 139 250;
  --theme-neutral: #9ca3af;
  --theme-neutral-rgb: 156 163 175;
  --theme-primary-font: #f1f5f9;
  --theme-primary-font-rgb: 241 245 249;
  --theme-secondary-font: #cbd5e1;
  --theme-secondary-font-rgb: 203 213 225;
  --theme-background: #0f172a;
  --theme-background-rgb: 15 23 42;
  --theme-surface: #1e293b;
  --theme-surface-rgb: 30 41 59;
  --theme-card: #1e293b;
  --theme-card-rgb: 30 41 59;
  --theme-border: #334155;
  --theme-border-rgb: 51 65 85;
  --theme-font-family: Figtree, ui-sans-serif, system-ui, sans-serif;
}


/* Theme-aware utility classes */
.bg-theme-primary { background-color: var(--theme-primary); }
.bg-theme-secondary { background-color: var(--theme-secondary); }
.bg-theme-accent { background-color: var(--theme-accent); }
.bg-theme-neutral { background-color: var(--theme-neutral); }
.bg-theme-background { background-color: var(--theme-background); }
.bg-theme-surface { background-color: var(--theme-surface); }
.bg-theme-card { background-color: var(--theme-card); }

.text-theme-primary { color: var(--theme-primary); }
.text-theme-secondary { color: var(--theme-secondary); }
.text-theme-accent { color: var(--theme-accent); }
.text-theme-neutral { color: var(--theme-neutral); }
.text-theme-primary-font { color: var(--theme-primary-font); }
.text-theme-secondary-font { color: var(--theme-secondary-font); }

.border-theme-primary { border-color: var(--theme-primary); }
.border-theme-secondary { border-color: var(--theme-secondary); }
.border-theme-accent { border-color: var(--theme-accent); }
.border-theme-neutral { border-color: var(--theme-neutral); }
.border-theme-border { border-color: var(--theme-border); }

.ring-theme-primary { --tw-ring-color: var(--theme-primary); }
.ring-theme-secondary { --tw-ring-color: var(--theme-secondary); }
.ring-theme-accent { --tw-ring-color: var(--theme-accent); }
.ring-theme-neutral { --tw-ring-color: var(--theme-neutral); }

.font-theme { font-family: var(--theme-font-family); }

/* Hover states */
.hover\:bg-theme-primary:hover { background-color: var(--theme-primary); }
.hover\:bg-theme-secondary:hover { background-color: var(--theme-secondary); }
.hover\:bg-theme-surface:hover { background-color: var(--theme-surface); }
.hover\:text-theme-primary:hover { color: var(--theme-primary); }
.hover\:text-theme-secondary:hover { color: var(--theme-secondary); }

/* Focus states */
.focus\:ring-theme-primary:focus { --tw-ring-color: var(--theme-primary); }
.focus\:border-theme-primary:focus { border-color: var(--theme-primary); }

/* Opacity variants for backgrounds */
.bg-theme-primary\/5 { background-color: rgba(var(--theme-primary-rgb), 0.05); }
.bg-theme-primary\/10 { background-color: rgba(var(--theme-primary-rgb), 0.1); }
.bg-theme-primary\/20 { background-color: rgba(var(--theme-primary-rgb), 0.2); }
.bg-theme-secondary\/5 { background-color: rgba(var(--theme-secondary-rgb), 0.05); }
.bg-theme-secondary\/10 { background-color: rgba(var(--theme-secondary-rgb), 0.1); }
.bg-theme-secondary\/20 { background-color: rgba(var(--theme-secondary-rgb), 0.2); }
.bg-theme-neutral\/5 { background-color: rgba(var(--theme-neutral-rgb), 0.05); }
.bg-theme-neutral\/10 { background-color: rgba(var(--theme-neutral-rgb), 0.1); }
.bg-theme-neutral\/20 { background-color: rgba(var(--theme-neutral-rgb), 0.2); }
.bg-theme-surface\/5 { background-color: rgba(var(--theme-surface-rgb), 0.05); }
.bg-theme-surface\/10 { background-color: rgba(var(--theme-surface-rgb), 0.1); }
.bg-theme-surface\/20 { background-color: rgba(var(--theme-surface-rgb), 0.2); }

/* Border opacity variants */
.border-theme-neutral\/20 { border-color: rgba(var(--theme-neutral-rgb), 0.2); }
.border-theme-neutral\/30 { border-color: rgba(var(--theme-neutral-rgb), 0.3); }
.border-theme-border\/20 { border-color: rgba(var(--theme-border-rgb), 0.2); }
.border-theme-border\/30 { border-color: rgba(var(--theme-border-rgb), 0.3); }
