:root{
/* Brand — CowFy Purple is the single accent color. Kept exact per manual. */
--purple-50:oklch(97% 0.015 291);
--purple-100:oklch(93% 0.035 291);
--purple-200:oklch(87% 0.07 291);
--purple-300:oklch(79% 0.12 291);
--purple-400:oklch(70% 0.185 291);
--purple-500:oklch(62% 0.235 291);
--purple-600:#652AF6; /* CowFy Purple — exact brand value, RGB 101/42/246 */
--purple-700:oklch(42% 0.22 291);
--purple-800:oklch(33% 0.17 291);
--purple-900:oklch(24% 0.12 291);

--white:#FFFFFF;

/* Neutral ramp tuned to the purple hue for a cohesive cool gray (UI needs neutrals the 2-color brand doesn't specify) */
--gray-0:#FFFFFF;
--gray-50:oklch(98% 0.004 291);
--gray-100:oklch(95% 0.006 291);
--gray-200:oklch(90% 0.008 291);
--gray-300:oklch(82% 0.01 291);
--gray-400:oklch(68% 0.012 291);
--gray-500:oklch(55% 0.012 291);
--gray-600:oklch(44% 0.012 291);
--gray-700:oklch(33% 0.014 291);
--gray-800:oklch(23% 0.014 291);
--gray-900:oklch(15% 0.012 291);

/* Opacity scale — manual's "profundidad sin nuevos tonos": 100/80/60/20/8% of purple */
--purple-a100:color-mix(in oklch, var(--purple-600) 100%, transparent);
--purple-a80:color-mix(in oklch, var(--purple-600) 80%, transparent);
--purple-a60:color-mix(in oklch, var(--purple-600) 60%, transparent);
--purple-a20:color-mix(in oklch, var(--purple-600) 20%, transparent);
--purple-a08:color-mix(in oklch, var(--purple-600) 8%, transparent);

/* Semantic aliases */
--surface-page:var(--gray-50);
--surface-card:var(--white);
--surface-inverted:var(--purple-600);
--surface-sunken:var(--gray-100);
--text-primary:var(--gray-900);
--text-secondary:var(--gray-600);
--text-inverted:var(--white);
--text-accent:var(--purple-600);
--border-default:var(--gray-200);
--border-strong:var(--gray-300);
--border-accent:var(--purple-a20);
--accent:var(--purple-600);
--accent-hover:var(--purple-700);
--accent-active:var(--purple-800);
--focus-ring:var(--purple-400);

--semantic-success:oklch(58% 0.14 152);
--semantic-warning:oklch(72% 0.15 75);
--semantic-danger:oklch(56% 0.19 25);
}
