/**
 * CourseJournal brand colour system.
 *
 * Brand rule:
 * - Blue communicates trust, navigation, links, and editorial emphasis.
 * - Amber is reserved for conversion moments, coupons, and ratings.
 * - Green and red communicate status only.
 *
 * Component styles consume the semantic tokens below instead of defining
 * independent palettes. This file is the single source of truth for colour.
 */
:root {
	/* Blue — primary. */
	--coursejournal-blue-50: #eff6ff;
	--coursejournal-blue-100: #dbeafe;
	--coursejournal-blue-200: #bfdbfe;
	--coursejournal-blue-300: #93c5fd;
	--coursejournal-blue-400: #60a5fa;
	--coursejournal-blue-500: #3b82f6;
	--coursejournal-blue-600: #2563eb;
	--coursejournal-blue-700: #1d4ed8;
	--coursejournal-blue-800: #1e40af;
	--coursejournal-blue-900: #1e3a8a;

	/* Amber — conversion accent. */
	--coursejournal-amber-50: #fffbeb;
	--coursejournal-amber-100: #fef3c7;
	--coursejournal-amber-200: #fde68a;
	--coursejournal-amber-300: #fcd34d;
	--coursejournal-amber-400: #fbbf24;
	--coursejournal-amber-500: #f59e0b;
	--coursejournal-amber-600: #d97706;
	--coursejournal-amber-700: #b45309;
	--coursejournal-amber-800: #92400e;
	--coursejournal-amber-900: #78350f;

	/* Slate — content and surfaces. */
	--coursejournal-ink-50: #f8fafc;
	--coursejournal-ink-100: #f1f5f9;
	--coursejournal-ink-200: #e2e8f0;
	--coursejournal-ink-300: #cbd5e1;
	--coursejournal-ink-400: #94a3b8;
	--coursejournal-ink-500: #64748b;
	--coursejournal-ink-600: #475569;
	--coursejournal-ink-700: #334155;
	--coursejournal-ink-800: #1e293b;
	--coursejournal-ink-900: #0f172a;

	/* Functional status colours. */
	--coursejournal-green-50: #ecfdf5;
	--coursejournal-green-600: #059669;
	--coursejournal-green-900: #065f46;
	--coursejournal-red-50: #fef2f2;
	--coursejournal-red-600: #dc2626;
	--coursejournal-red-900: #991b1b;
	--coursejournal-white: #ffffff;

	/* Semantic aliases used by the theme and custom blocks. */
	--coursejournal-color-page: var(--coursejournal-ink-50);
	--coursejournal-color-surface: var(--coursejournal-white);
	--coursejournal-color-surface-subtle: var(--coursejournal-ink-100);
	--coursejournal-color-border: var(--coursejournal-ink-200);
	--coursejournal-color-border-strong: var(--coursejournal-ink-300);
	--coursejournal-color-heading: var(--coursejournal-ink-900);
	--coursejournal-color-body: var(--coursejournal-ink-700);
	--coursejournal-color-muted: var(--coursejournal-ink-500);
	--coursejournal-color-primary: var(--coursejournal-blue-700);
	--coursejournal-color-primary-hover: var(--coursejournal-blue-800);
	--coursejournal-color-primary-soft: var(--coursejournal-blue-50);
	--coursejournal-color-primary-border: var(--coursejournal-blue-200);
	--coursejournal-color-cta: var(--coursejournal-amber-500);
	--coursejournal-color-cta-hover: var(--coursejournal-amber-600);
	--coursejournal-color-cta-text: var(--coursejournal-ink-900);
	--coursejournal-color-cta-soft: var(--coursejournal-amber-50);
	--coursejournal-color-rating: var(--coursejournal-amber-600);
	--coursejournal-color-focus: var(--coursejournal-blue-700);
	--coursejournal-color-footer: var(--coursejournal-ink-900);
	--coursejournal-color-footer-text: var(--coursejournal-ink-400);
	--coursejournal-color-footer-link: var(--coursejournal-ink-200);
	--coursejournal-color-success: var(--coursejournal-green-600);
	--coursejournal-color-success-strong: var(--coursejournal-green-900);
	--coursejournal-color-success-soft: var(--coursejournal-green-50);
	--coursejournal-color-danger: var(--coursejournal-red-600);
	--coursejournal-color-danger-strong: var(--coursejournal-red-900);
	--coursejournal-color-danger-soft: var(--coursejournal-red-50);

	/* Shared translucent colours and elevations. */
	--coursejournal-shadow-xs: 0 1px 2px rgb(15 23 42 / 0.04);
	--coursejournal-shadow-sm: 0 8px 20px rgb(15 23 42 / 0.06);
	--coursejournal-shadow-md: 0 14px 34px rgb(15 23 42 / 0.08);
	--coursejournal-shadow-lg: 0 18px 48px rgb(15 23 42 / 0.10);
	--coursejournal-focus-ring: rgb(29 78 216 / 0.28);
	--coursejournal-primary-glow: rgb(29 78 216 / 0.14);
	--coursejournal-scrim: rgb(15 23 42 / 0.72);
}

body {
	background: var(--coursejournal-color-page);
	color: var(--coursejournal-color-body);
}

:where(a):focus-visible {
	outline-color: var(--coursejournal-color-focus);
}

::selection {
	background: var(--coursejournal-blue-200);
	color: var(--coursejournal-color-heading);
}
