:root {
  /* ============= DEFAULT PALETTE (IRP Compliance standalone) ============= */
  --primary-color: #0F172A;        /* Near-black */
  --primary-light: #334155;
  --accent-color: #3B82F6;         /* Electric blue */
  --accent-dark: #1D4ED8;

  /* ============= SEMANTIC COLORS ============= */
  --danger-color: #DC2626;         /* Red for fines/risks */
  --warning-color: #F59E0B;        /* Amber for caution */
  --success-color: #10B981;        /* Green for good scores */

  /* ============= NEUTRAL PALETTE ============= */
  --text-primary: #0F172A;
  --text-secondary: #6B7280;
  --text-tertiary: #9CA3AF;
  --background: #FFFFFF;
  --border-color: #E5E7EB;
  --divider: #D1D5DB;
  --gray-50: #F9FAFB;
  --gray-100: #F3F4F6;
  --gray-200: #E5E7EB;

  /* ============= TYPOGRAPHY ============= */
  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'Menlo', 'Monaco', 'Courier New', monospace;

  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 24px;
  --font-size-3xl: 32px;

  --line-height-tight: 1.3;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;

  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* ============= SPACING ============= */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-2xl: 48px;

  /* ============= RADIUS ============= */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;

  /* ============= SHADOWS ============= */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);

  /* ============= TRANSITIONS ============= */
  --transition-fast: 150ms ease-in-out;
  --transition-base: 250ms ease-in-out;
}

/* ============= INTEGRATOR THEMES (body-class-scoped) ============= */

/* ───── Grunden.ai ─────
   Mirrors grunden.ai/pitch.html — JetBrains Mono + IBM Plex Sans,
   warm cream canvas, signal-blue accent. */
body.grunden-ai {
  /* Grunden palette */
  --primary-color: #0D0D0D;         /* --ink */
  --primary-light: #3A3A36;
  --accent-color: #2424FF;          /* --signal */
  --accent-dark: #1818CC;
  --danger-color: #C22D1A;          /* --fail */
  --warning-color: #C4703F;         /* --warm */
  --success-color: #1A8C5B;         /* --live */

  --text-primary: #0D0D0D;          /* --ink */
  --text-secondary: #6B6B66;        /* --mute */
  --text-tertiary: #9A9A94;
  --background: #F5F0E8;            /* --canvas */
  --surface: #FFFEFA;
  --border-color: #D6D1C7;          /* --rule */
  --divider: #D6D1C7;
  --gray-50: #FFFEFA;
  --gray-100: #EDE7DC;
  --gray-200: #D6D1C7;

  /* Type */
  --font-family: 'IBM Plex Sans', system-ui, -apple-system, Segoe UI, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* Grunden prefers hairline corners */
  --radius-sm: 3px;
  --radius-md: 3px;
  --radius-lg: 4px;
}

/* ───── Berget.ai ─────
   Source: berget.ai — Ovo (headings) + DM Sans (body)
   Dark theme: brand-night background, moss-green accent, warm cloud primary */
body.berget-ai {
  /* Palette — derived from Berget's design tokens */
  --primary-color: #D9D3CC;         /* brand-cloud: warm off-white */
  --primary-light: #2D2D2D;         /* brand-slate */
  --accent-color: #3BAF77;          /* brand-moss: medium green */
  --accent-dark: #2D6A4F;           /* brand-spruce: darker green */
  --danger-color: #E05252;
  --warning-color: #E3C16F;
  --success-color: #3BAF77;         /* moss */

  --text-primary: #F5F4F2;          /* brand-peak: off-white */
  --text-secondary: rgba(245, 244, 242, 0.60);
  --text-tertiary: rgba(245, 244, 242, 0.38);
  --background: #090909;            /* brand-night */
  --surface: #111111;
  --border-color: #1A1A1A;          /* brand-slate */
  --divider: #2D2D2D;
  --gray-50: #0F0F0F;
  --gray-100: #141414;
  --gray-200: #1A1A1A;

  /* Berget pair: DM Sans body + Ovo headings (h1-h4 override below).
     --font-mono aliases body sans to avoid system mono leaking as a third face. */
  --font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
  --font-mono: 'DM Sans', system-ui, -apple-system, sans-serif;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
}

/* Dark-mode component overrides for Berget */
body.berget-ai h1,
body.berget-ai h2,
body.berget-ai h3,
body.berget-ai h4 {
  font-family: 'Ovo', Georgia, serif;
  font-weight: 400;
}

body.berget-ai .header {
  background-color: #090909;
  border-bottom-color: #1A1A1A;
}

body.berget-ai .question-card,
body.berget-ai .score-card,
body.berget-ai .article-card,
body.berget-ai .role-card,
body.berget-ai .board-card,
body.berget-ai .board-section,
body.berget-ai .callout-section {
  background-color: #111111;
  border-color: #1A1A1A;
}

body.berget-ai .answer-btn {
  background: #111111;
  border-color: #2D2D2D;
  color: #F5F4F2;
}
body.berget-ai .answer-btn:hover {
  border-color: #3BAF77;
  background: rgba(59, 175, 119, 0.08);
  color: #F5F4F2;
}
body.berget-ai .answer-btn.selected {
  background: rgba(59, 175, 119, 0.12);
  border-color: #3BAF77;
  color: #F5F4F2;
}

body.berget-ai .progress-bar-fill {
  background-color: #3BAF77;
}

body.berget-ai .score-ring {
  border-color: #3BAF77;
}

body.berget-ai .glossary-popover {
  background: #1A1A1A;
  border-color: #2D2D2D;
  color: #F5F4F2;
}

body.berget-ai .disclaimer-box {
  background: #0F0F0F;
  border-color: #1A1A1A;
  color: rgba(245, 244, 242, 0.60);
}

body.berget-ai .callout-omnibus {
  background: rgba(227, 193, 111, 0.08);
  border-left-color: #E3C16F;
}

body.berget-ai .callout-iso {
  background: rgba(59, 175, 119, 0.08);
  border-left-color: #3BAF77;
}

body.berget-ai .exposure-block {
  background: rgba(224, 82, 82, 0.06);
  border-left-color: #E05252;
}

body.berget-ai input,
body.berget-ai select,
body.berget-ai textarea {
  background: #111111;
  border-color: #2D2D2D;
  color: #F5F4F2;
}
body.berget-ai input::placeholder { color: rgba(245, 244, 242, 0.38); }

body.berget-ai .btn-primary {
  background: #3BAF77;
  border-color: #3BAF77;
  color: #090909;
}
body.berget-ai .btn-primary:hover {
  background: #2D6A4F;
  border-color: #2D6A4F;
}
body.berget-ai .btn-secondary {
  background: transparent;
  border-color: #2D2D2D;
  color: #F5F4F2;
}
body.berget-ai .btn-secondary:hover {
  border-color: #3BAF77;
  background: transparent;
}
body.berget-ai .btn-accent {
  background: transparent;
  border-color: #3BAF77;
  color: #3BAF77;
}
body.berget-ai .btn-accent:hover {
  background: #3BAF77;
  color: #090909;
}

body.berget-ai .lang-btn {
  border-color: #2D2D2D;
  color: rgba(245, 244, 242, 0.60);
  background: transparent;
}
body.berget-ai .lang-btn:hover:not(.active) {
  border-color: #3BAF77;
  color: #F5F4F2;
}
body.berget-ai .lang-btn.active {
  background: #3BAF77;
  border-color: #3BAF77;
  color: #090909;
}

body.berget-ai .urgency-critical { background: #E05252; color: #fff; }
body.berget-ai .urgency-atRisk   { background: #E3C16F; color: #090909; }
body.berget-ai .urgency-onTrack  { background: #3BAF77; color: #090909; }

/* ───── Folde.ai ─────
   Source: folde.ai — Playfair Display (headings) + Inter (body)
   Light editorial: warm cream canvas, monochromatic black accent */
body.folde-ai {
  /* Palette — derived from Folde's CSS custom properties */
  --primary-color: #111111;         /* near-black */
  --primary-light: #333333;
  --accent-color: #111111;          /* monochromatic — black is the brand */
  --accent-dark: #000000;
  --danger-color: #9B1C1C;
  --warning-color: #8A6800;
  --success-color: #1E6642;

  --text-primary: #111111;          /* hsl(0,0%,10%) */
  --text-secondary: #555550;        /* hsl(0,0%,40%) approx */
  --text-tertiary: #888882;
  --background: #F9F6F1;            /* hsl(40,43%,98%) */
  --surface: #FFFFFF;
  --border-color: #DDD7CC;          /* hsl(37,26%,87%) */
  --divider: #D5CFC4;
  --gray-50: #F5F1EC;               /* hsl(40,29%,93%) approx */
  --gray-100: #EDE8DF;
  --gray-200: #DDD7CC;

  /* Folde pair: Inter body + Playfair Display headings (h1-h4 override below).
     --font-mono aliases body sans to avoid system mono leaking as a third face. */
  --font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono: 'Inter', system-ui, -apple-system, sans-serif;

  /* Folde uses rounded corners */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
}

body.folde-ai h1,
body.folde-ai h2,
body.folde-ai h3,
body.folde-ai h4 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
}

body.folde-ai .brand-name,
body.folde-ai .co-brand-wordmark {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  letter-spacing: -0.01em;
  font-size: 18px;
}
body.folde-ai .co-brand-wordmark-tld { color: var(--text-secondary); }

body.folde-ai .btn-primary {
  background: #111111;
  border-color: #111111;
  color: #F9F6F1;
  border-radius: var(--radius-md);
}
body.folde-ai .btn-primary:hover {
  background: #000000;
  border-color: #000000;
}
body.folde-ai .btn-secondary {
  background: transparent;
  border-color: var(--border-color);
  color: var(--text-primary);
  border-radius: var(--radius-md);
}
body.folde-ai .btn-secondary:hover {
  border-color: #111111;
  background: transparent;
}
body.folde-ai .btn-accent {
  background: transparent;
  border-color: #111111;
  color: #111111;
  border-radius: var(--radius-md);
}
body.folde-ai .btn-accent:hover {
  background: #111111;
  color: #F9F6F1;
}

body.folde-ai .lang-btn {
  border-color: var(--border-color);
  color: var(--text-secondary);
  background: transparent;
  border-radius: var(--radius-sm);
}
body.folde-ai .lang-btn:hover:not(.active) {
  border-color: #111111;
  color: #111111;
}
body.folde-ai .lang-btn.active {
  background: #111111;
  border-color: #111111;
  color: #F9F6F1;
}

body.folde-ai .answer-btn:hover {
  border-color: #111111;
  background: #F5F1EC;
  color: #111111;
}
body.folde-ai .answer-btn.selected {
  background: #F5F1EC;
  border-color: #111111;
  color: #111111;
}

body.folde-ai .progress-bar-fill {
  background-color: #111111;
}

body.folde-ai .callout-omnibus {
  border-left-color: #8A6800;
  background: #FDF8EE;
}

body.folde-ai .callout-iso {
  border-left-color: #1E6642;
  background: #F0FAF5;
}

body.folde-ai .urgency-critical { background: #9B1C1C; color: #fff; }
body.folde-ai .urgency-atRisk   { background: #8A6800; color: #fff; }
body.folde-ai .urgency-onTrack  { background: #1E6642; color: #fff; }

body.folde-ai .disclaimer-box {
  background: var(--gray-100);
  border-color: var(--border-color);
  color: var(--text-secondary);
}

/* ───── Berget.ai disclaimer ───── */
body.berget-ai .disclaimer-box {
  background: var(--gray-100);
  border-color: var(--border-color);
  color: var(--text-secondary);
}
