/* Custom theme variables and utility classes — separate from Tailwind to avoid tree-shaking */
:root {
  --color-background: #0a0a0a;
  --color-foreground: #ededed;
  --color-card: #141414;
  --color-card-hover: #1a1a1a;
  --color-border: #2a2a2a;
  --color-muted: #888888;
  --color-accent: #3b82f6;
  --color-accent-hover: #2563eb;
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-success: #22c55e;
  --color-danger: #ef4444;
}

/* Background utilities */
.bg-background { background-color: var(--color-background); }
.bg-card { background-color: var(--color-card); }
.bg-card-hover { background-color: var(--color-card-hover); }
.bg-card\/50 { background-color: color-mix(in srgb, var(--color-card) 50%, transparent); }
.bg-background\/80 { background-color: color-mix(in srgb, var(--color-background) 80%, transparent); }
.bg-background\/50 { background-color: color-mix(in srgb, var(--color-background) 50%, transparent); }
.bg-primary { background-color: var(--color-primary); }
.bg-primary-hover { background-color: var(--color-primary-hover); }
.bg-success { background-color: var(--color-success); }
.bg-danger { background-color: var(--color-danger); }
.bg-accent { background-color: var(--color-accent); }

.hover\:bg-primary-hover:hover { background-color: var(--color-primary-hover); }
.hover\:bg-card-hover:hover { background-color: var(--color-card-hover); }
.hover\:bg-accent:hover { background-color: var(--color-accent); }

/* Text utilities */
.text-foreground { color: var(--color-foreground); }
.text-muted { color: var(--color-muted); }
.text-accent { color: var(--color-accent); }
.text-primary { color: var(--color-primary); }
.text-success { color: var(--color-success); }
.text-danger { color: var(--color-danger); }

.hover\:text-foreground:hover { color: var(--color-foreground); }
.hover\:text-accent:hover { color: var(--color-accent); }

.group:hover .group-hover\:text-accent { color: var(--color-accent); }

/* Border utilities */
.border-border { border-color: var(--color-border); }
.border-accent { border-color: var(--color-accent); }
.border-primary { border-color: var(--color-primary); }

.hover\:border-accent:hover { border-color: var(--color-accent); }

/* Divide utilities */
.divide-border > :not(:first-child) { border-color: var(--color-border); }

/* Ring utilities */
.ring-accent { --tw-ring-color: var(--color-accent); }
.focus\:ring-accent:focus { --tw-ring-color: var(--color-accent); }

/* Placeholder */
.placeholder\:text-muted::placeholder { color: var(--color-muted); }

/* Body base styles */
body {
  background: var(--color-background);
  color: var(--color-foreground);
}
