/*
 * Theme variables for admin (CMS + /app) and public site.
 * Admin: .theme-admin-{key}. Public: .theme-public-{key}.
 * Selected in CMS under Themes. In development, ?theme=key overrides for testing.
 */

:root {
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

/* ---------- Admin themes (CMS + app) — sober, health-oriented ---------- */

.theme-admin-institutional-blue {
  --color-primary: #1e40af;
  --color-primary-hover: #1e3a8a;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-slate-professional {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-teal-health {
  --color-primary: #0f766e;
  --color-primary-hover: #0d5c56;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-navy-trust {
  --color-primary: #1e3a8a;
  --color-primary-hover: #172554;
  --color-neutral-50: #f0f4f8;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #1e40af;
  --color-neutral-700: #1e3a8a;
  --color-neutral-800: #172554;
  --color-neutral-900: #0f172a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-sage-calm {
  --color-primary: #4d7c0f;
  --color-primary-hover: #3d6211;
  --color-neutral-50: #f7f9f5;
  --color-neutral-100: #ecfccb;
  --color-neutral-200: #d9f99d;
  --color-neutral-600: #65a30d;
  --color-neutral-700: #4d7c0f;
  --color-neutral-800: #3d6211;
  --color-neutral-900: #1a2e05;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-steel-neutral {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-mint-fresh {
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #14b8a6;
  --color-neutral-700: #0d9488;
  --color-neutral-800: #0f766e;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-graphite-clear {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #52525b;
  --color-neutral-700: #3f3f46;
  --color-neutral-800: #27272a;
  --color-neutral-900: #18181b;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-ocean-stable {
  --color-primary: #0369a1;
  --color-primary-hover: #075985;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0284c7;
  --color-neutral-700: #0369a1;
  --color-neutral-800: #075985;
  --color-neutral-900: #0c4a6e;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-stone-minimal {
  --color-primary: #57534e;
  --color-primary-hover: #44403c;
  --color-neutral-50: #fafaf9;
  --color-neutral-100: #f5f5f4;
  --color-neutral-200: #e7e5e4;
  --color-neutral-600: #57534e;
  --color-neutral-700: #44403c;
  --color-neutral-800: #292524;
  --color-neutral-900: #1c1917;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-forest-calm {
  --color-primary: #166534;
  --color-primary-hover: #14532d;
  --color-neutral-50: #f5f7f4;
  --color-neutral-100: #dcfce7;
  --color-neutral-200: #bbf7d0;
  --color-neutral-600: #16a34a;
  --color-neutral-700: #15803d;
  --color-neutral-800: #166534;
  --color-neutral-900: #14532d;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-pearl-light {
  --color-primary: #6366f1;
  --color-primary-hover: #4f46e5;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #71717a;
  --color-neutral-700: #52525b;
  --color-neutral-800: #3f3f46;
  --color-neutral-900: #27272a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-indigo-formal {
  --color-primary: #4338ca;
  --color-primary-hover: #3730a3;
  --color-neutral-50: #eef2ff;
  --color-neutral-100: #e0e7ff;
  --color-neutral-200: #c7d2fe;
  --color-neutral-600: #4f46e5;
  --color-neutral-700: #4338ca;
  --color-neutral-800: #3730a3;
  --color-neutral-900: #312e81;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-ash-sober {
  --color-primary: #4b5563;
  --color-primary-hover: #374151;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-sky-clean {
  --color-primary: #0284c7;
  --color-primary-hover: #0369a1;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0ea5e9;
  --color-neutral-700: #0284c7;
  --color-neutral-800: #0369a1;
  --color-neutral-900: #0c4a6e;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-charcoal-strict {
  --color-primary: #374151;
  --color-primary-hover: #1f2937;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-jade-calm {
  --color-primary: #059669;
  --color-primary-hover: #047857;
  --color-neutral-50: #ecfdf5;
  --color-neutral-100: #d1fae5;
  --color-neutral-200: #a7f3d0;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-silver-bright {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-cobalt-official {
  --color-primary: #1d4ed8;
  --color-primary-hover: #1e40af;
  --color-neutral-50: #eff6ff;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #2563eb;
  --color-neutral-700: #1d4ed8;
  --color-neutral-800: #1e40af;
  --color-neutral-900: #1e3a8a;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-admin-frost-subtle {
  --color-primary: #0ea5e9;
  --color-primary-hover: #0284c7;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #06b6d4;
  --color-neutral-700: #0891b2;
  --color-neutral-800: #0e7490;
  --color-neutral-900: #155e75;
  --color-success: #047857;
  --color-error: #b91c1c;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

/* ---------- Public themes — sober, nursing / certification ---------- */

.theme-public-default {
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-teal-certification {
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-sage-welcome {
  --color-primary: #4d7c0f;
  --color-primary-hover: #3d6211;
  --color-neutral-50: #f7f9f5;
  --color-neutral-100: #ecfccb;
  --color-neutral-200: #d9f99d;
  --color-neutral-600: #65a30d;
  --color-neutral-700: #4d7c0f;
  --color-neutral-800: #3d6211;
  --color-neutral-900: #1a2e05;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-navy-authority {
  --color-primary: #1e3a8a;
  --color-primary-hover: #172554;
  --color-neutral-50: #f0f4f8;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #1e40af;
  --color-neutral-700: #1e3a8a;
  --color-neutral-800: #172554;
  --color-neutral-900: #0f172a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-slate-public {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-mint-clear {
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-neutral-50: #f0fdfa;
  --color-neutral-100: #ccfbf1;
  --color-neutral-200: #99f6e4;
  --color-neutral-600: #14b8a6;
  --color-neutral-700: #0d9488;
  --color-neutral-800: #0f766e;
  --color-neutral-900: #134e4a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-ocean-reliable {
  --color-primary: #0369a1;
  --color-primary-hover: #075985;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0284c7;
  --color-neutral-700: #0369a1;
  --color-neutral-800: #075985;
  --color-neutral-900: #0c4a6e;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-forest-nursing {
  --color-primary: #166534;
  --color-primary-hover: #14532d;
  --color-neutral-50: #f5f7f4;
  --color-neutral-100: #dcfce7;
  --color-neutral-200: #bbf7d0;
  --color-neutral-600: #16a34a;
  --color-neutral-700: #15803d;
  --color-neutral-800: #166534;
  --color-neutral-900: #14532d;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-stone-landing {
  --color-primary: #57534e;
  --color-primary-hover: #44403c;
  --color-neutral-50: #fafaf9;
  --color-neutral-100: #f5f5f4;
  --color-neutral-200: #e7e5e4;
  --color-neutral-600: #57534e;
  --color-neutral-700: #44403c;
  --color-neutral-800: #292524;
  --color-neutral-900: #1c1917;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-pearl-soft {
  --color-primary: #6366f1;
  --color-primary-hover: #4f46e5;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #71717a;
  --color-neutral-700: #52525b;
  --color-neutral-800: #3f3f46;
  --color-neutral-900: #27272a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-indigo-professional {
  --color-primary: #4338ca;
  --color-primary-hover: #3730a3;
  --color-neutral-50: #eef2ff;
  --color-neutral-100: #e0e7ff;
  --color-neutral-200: #c7d2fe;
  --color-neutral-600: #4f46e5;
  --color-neutral-700: #4338ca;
  --color-neutral-800: #3730a3;
  --color-neutral-900: #312e81;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-steel-public {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-jade-trust {
  --color-primary: #059669;
  --color-primary-hover: #047857;
  --color-neutral-50: #ecfdf5;
  --color-neutral-100: #d1fae5;
  --color-neutral-200: #a7f3d0;
  --color-neutral-600: #0d9488;
  --color-neutral-700: #0f766e;
  --color-neutral-800: #115e59;
  --color-neutral-900: #134e4a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-sky-open {
  --color-primary: #0284c7;
  --color-primary-hover: #0369a1;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #0ea5e9;
  --color-neutral-700: #0284c7;
  --color-neutral-800: #0369a1;
  --color-neutral-900: #0c4a6e;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-charcoal-serious {
  --color-primary: #374151;
  --color-primary-hover: #1f2937;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-cobalt-confident {
  --color-primary: #1d4ed8;
  --color-primary-hover: #1e40af;
  --color-neutral-50: #eff6ff;
  --color-neutral-100: #dbeafe;
  --color-neutral-200: #bfdbfe;
  --color-neutral-600: #2563eb;
  --color-neutral-700: #1d4ed8;
  --color-neutral-800: #1e40af;
  --color-neutral-900: #1e3a8a;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-frost-public {
  --color-primary: #0ea5e9;
  --color-primary-hover: #0284c7;
  --color-neutral-50: #f0f9ff;
  --color-neutral-100: #e0f2fe;
  --color-neutral-200: #bae6fd;
  --color-neutral-600: #06b6d4;
  --color-neutral-700: #0891b2;
  --color-neutral-800: #0e7490;
  --color-neutral-900: #155e75;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-graphite-modern {
  --color-primary: #475569;
  --color-primary-hover: #334155;
  --color-neutral-50: #fafafa;
  --color-neutral-100: #f4f4f5;
  --color-neutral-200: #e4e4e7;
  --color-neutral-600: #52525b;
  --color-neutral-700: #3f3f46;
  --color-neutral-800: #27272a;
  --color-neutral-900: #18181b;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-ash-landing {
  --color-primary: #4b5563;
  --color-primary-hover: #374151;
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

.theme-public-silver-public {
  --color-primary: #64748b;
  --color-primary-hover: #475569;
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-600: #64748b;
  --color-neutral-700: #475569;
  --color-neutral-800: #334155;
  --color-neutral-900: #1e293b;
  --color-success: #059669;
  --color-error: #dc2626;
  --font-heading: ui-sans-serif, system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, sans-serif;
}

/* ---------- Layout application: use theme variables for headers and key UI ---------- */

.cms-layout header,
.app-layout header {
  background: var(--color-neutral-50) !important;
  border-color: var(--color-neutral-200) !important;
}
.cms-layout header a,
.cms-layout header span,
.app-layout header a,
.app-layout header span {
  color: var(--color-neutral-800);
}
.cms-layout header a:hover,
.app-layout header a:hover {
  color: var(--color-primary);
}
.cms-layout .flash.notice,
.app-layout .flash.notice {
  color: var(--color-success);
}
.cms-layout .flash.alert,
.app-layout .flash.alert {
  color: var(--color-error);
}

.public-layout header {
  background: var(--color-neutral-50);
  border-color: var(--color-neutral-200);
}
.public-layout header a {
  color: var(--color-neutral-700);
}
.public-layout header a:hover {
  color: var(--color-primary);
}
.public-layout main {
  font-family: var(--font-body);
}
.public-layout h1,
.public-layout h2 {
  font-family: var(--font-heading);
  color: var(--color-neutral-900);
}
.public-layout .theme-btn-primary {
  background: var(--color-primary);
  color: #fff;
}
.public-layout .theme-btn-primary:hover {
  background: var(--color-primary-hover);
}

/* ---------- Landing animations (public) ---------- */

@keyframes landing-fade-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes landing-hero-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.landing-hero-animate {
  animation: landing-hero-in 0.7s ease-out forwards;
}

.landing-section-animate {
  animation: landing-fade-in 0.6s ease-out forwards;
}

.landing-section-animate-delay-1 { animation-delay: 0.1s; opacity: 0; }
.landing-section-animate-delay-2 { animation-delay: 0.2s; opacity: 0; }
.landing-section-animate-delay-3 { animation-delay: 0.3s; opacity: 0; }
.landing-section-animate-delay-4 { animation-delay: 0.4s; opacity: 0; }
