:root {
  /* Core aliases */
  --color-base: var(--color-forest-base-dark);
  --color-light: var(--color-forest-light-neutral);
  --color-surface-light: var(--color-carbon-base-parchment);
  --color-surface-white: var(--color-common-white);
  --color-surface-section: var(--color-carbon-section-bg);
  --color-typography-primary: var(--color-carbon-primary-text);
  --color-typography-secondary: var(--color-carbon-secondary-text);
  --color-typography-white: var(--color-carbon-base-parchment);
  --color-buttons-primary: var(--color-carbon-primary-accent);
  --color-buttons-secondary: var(--color-carbon-secondary-accent);
  --color-support-border: var(--color-carbon-borders);

  /* Forest theme */
  --color-forest-base-dark: #212f2b;
  --color-forest-base-light: #f4f7f5;
  --color-forest-dark-neutral: #181f1d;
  --color-forest-mid-neutral: #6e7c76;
  --color-forest-light-neutral: #d7e0db;
  --color-forest-primary-accent: #4e9f7d;
  --color-forest-secondary-accent: #d4a373;
  --color-forest-cool-accent: #4a6fa5;
  --color-forest-success: #3e836e;
  --color-forest-warning: #c88a3d;
  --color-forest-error: #b94a48;

  /* Carbon theme */
  --color-carbon-base-carbon: #141414;
  --color-carbon-base-parchment: #f5f1eb;
  --color-carbon-primary-accent: #b85c38;
  --color-carbon-secondary-accent: #4f5d52;
  --color-carbon-tertiary-accent: #8b8178;
  --color-carbon-primary-text: var(--color-carbon-base-carbon);
  --color-carbon-secondary-text: #4a4a4a;
  --color-carbon-helper-text: #7a7a7a;
  --color-carbon-borders: #d6d0c8;
  --color-carbon-section-bg: #f6f7f8;
  --color-carbon-muted-icons-ui: #8b8178;
  --color-carbon-success: #5f7a6b;
  --color-carbon-warning: #9a6a3a;
  --color-carbon-error: #8a3f3f;

  /* Authenticated app shell */
  --color-auth-sidebar-surface: var(--color-carbon-base-parchment);
  /* Soft vertical gradient for the sidebar surface (Figma navigation / primary). */
  --color-auth-sidebar-surface-from: #fdfcfa;
  --color-auth-sidebar-surface-to: #f5f2ee;
  --color-auth-sidebar-active: #f5e2ca;
  --color-auth-sidebar-border: var(--color-line-soft);
  /* Sidebar avatar. One ramp step darker than Figma navigation/primary
     (terra/50 #c07840): the avatar's white initials are its fallback content when a
     user has no image, and white on terra/50 is 3.50:1 — below the 4.5:1 WCAG 1.4.3
     asks of normal text. terra/60 is 4.84:1. Dark mode overrides it below. */
  --color-auth-sidebar-avatar-bg: #a85f2e;
  --color-auth-sidebar-badge-border: var(--color-carbon-borders);
  --color-auth-sidebar-badge-text: var(--color-carbon-secondary-text);
  --color-auth-sidebar-nav-icon-active: var(--color-ink);
  --color-auth-sidebar-nav-label-active: var(--color-ink);
  --color-auth-sidebar-nav-icon-inactive: var(--color-ink);
  --color-auth-sidebar-nav-label-inactive: var(--color-ink);
  --color-auth-sidebar-nav-hover-text: var(--color-carbon-base-carbon);
  --color-auth-sidebar-user-trigger: var(--color-ink-muted);
  --color-auth-sidebar-user-name: var(--color-ink-muted);
  --color-auth-sidebar-user-chevron: var(--color-carbon-helper-text);

  /* Content-library onboarding (app-only surface; the ink/accent/line
     tokens resolve from the Tailwind theme in the app bundle). */
  --color-onboarding-page-surface: var(--color-common-white);
  --color-onboarding-copy-primary: var(--color-ink);
  --color-onboarding-copy-secondary: var(--color-ink-strong);
  --color-brand-primary: #c07840;
  --color-brand-secondary: var(--color-accent);
  --color-brand-secondary-hover: #4f7d74;
  --color-onboarding-card-surface: #f9f7f4;
  --color-onboarding-icon-surface: #d0dfda;
  --color-onboarding-icon: #2e5a51;
  --color-onboarding-button-border: #333230;
  --color-onboarding-button-hover: #eee8df;
  --color-onboarding-focus-ring: var(--color-buttons-primary);
  --color-onboarding-alert-surface: #fff7ed;
  --color-onboarding-alert-border: #fed7aa;
  --color-onboarding-alert-text: #9a3412;
  /* Control boundary (1.4.11) and placeholder text (1.4.3); --color-line is
     1.43:1 and --color-ink-faint is 2.70:1 on white, so both failed. */
  --color-onboarding-input-border: var(--color-line-strong);
  --color-onboarding-input-placeholder: var(--color-ink-muted);
  --color-onboarding-input-surface: var(--color-common-white);
  --color-onboarding-section-label: #423c34;
  --color-progress-copy-secondary: var(--color-ink-muted);
  --color-progress-ring-track: #d4ead9;
  --color-progress-ring-arc: #4e9f65;
  --color-progress-percent: #3e8654;
  --color-progress-error-ring-track: #fecaca;
  --color-progress-error-ring-arc: #dc2626;

  /* Content library index */
  --color-content-library-page-surface: var(--color-common-white);
  --color-content-library-sidebar-border: var(--color-carbon-borders);
  --color-content-library-active-row: var(--color-auth-sidebar-active);
  --color-content-library-pill-static: #eef3ef;
  --color-content-library-pill-active: #d0dfda;
  --color-content-library-pill-text: #406d7c;
  --color-content-library-row-border: var(--color-carbon-borders);
  --color-content-library-row-action: var(--color-carbon-helper-text);
  --color-content-library-search-focus: var(--color-buttons-primary);

  /* Common neutrals */
  --color-common-white: #ffffff;

  /* Default active theme (carbon) */
  --color-theme-base: var(--color-carbon-base-carbon);
  --color-theme-surface: var(--color-carbon-base-parchment);
  --color-theme-text: var(--color-carbon-primary-text);
  --color-theme-text-muted: var(--color-carbon-secondary-text);
  --color-theme-accent: var(--color-carbon-primary-accent);
  --color-theme-border: var(--color-carbon-borders);
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-auth-sidebar-surface: var(--color-carbon-base-carbon);
    --color-auth-sidebar-surface-from: var(--color-carbon-base-carbon);
    --color-auth-sidebar-surface-to: var(--color-carbon-base-carbon);
    --color-auth-sidebar-active: #3a2b1f;
    --color-auth-sidebar-border: var(--color-gray-700);
    --color-auth-sidebar-avatar-bg: var(--color-theme-accent);
    --color-auth-sidebar-badge-border: var(--color-gray-700);
    --color-auth-sidebar-badge-text: var(--color-gray-300);
    --color-auth-sidebar-nav-icon-active: var(--color-common-white);
    --color-auth-sidebar-nav-label-active: var(--color-common-white);
    --color-auth-sidebar-nav-icon-inactive: var(--color-gray-300);
    --color-auth-sidebar-nav-label-inactive: var(--color-gray-200);
    --color-auth-sidebar-nav-hover-text: var(--color-common-white);
    --color-auth-sidebar-user-trigger: var(--color-gray-300);
    --color-auth-sidebar-user-name: var(--color-gray-200);
    --color-auth-sidebar-user-chevron: var(--color-gray-400);
    --color-onboarding-page-surface: var(--color-carbon-base-carbon);
    --color-onboarding-copy-primary: var(--color-common-white);
    --color-onboarding-copy-secondary: var(--color-gray-300);
    --color-brand-secondary: #6fa79c;
    --color-brand-secondary-hover: #82bbb0;
    --color-onboarding-card-surface: #242321;
    --color-onboarding-icon-surface: #24443d;
    --color-onboarding-icon: #b7d4ca;
    --color-onboarding-button-border: var(--color-gray-300);
    --color-onboarding-button-hover: #332f2a;
    --color-onboarding-focus-ring: var(--color-forest-secondary-accent);
    --color-onboarding-alert-surface: #431407;
    --color-onboarding-alert-border: #9a3412;
    --color-onboarding-alert-text: #fed7aa;
    /* No dark override for --color-onboarding-input-border: the light value
       (--color-line-strong, ink/50 #888782) is 4.36:1 against the dark input
       surface #242321 and clears 1.4.11 on both schemes. The previous
       --color-gray-700 override was 1.51:1 and failed. */
    /* On the dark input surface #242321 this is 5.82:1 and clears 1.4.3,
       where on white it is 2.70:1 and does not — hence a dark-only override.
       Uses one of our own tokens rather than a Tailwind built-in so the
       contrast guard can resolve it. */
    --color-onboarding-input-placeholder: var(--color-ink-faint);
    --color-onboarding-input-surface: var(--color-onboarding-card-surface);
    --color-onboarding-section-label: var(--color-gray-200);
    --color-progress-copy-secondary: var(--color-gray-300);
    --color-progress-ring-track: #24443d;
    --color-progress-ring-arc: #6fa79c;
    --color-progress-percent: #6fa79c;
    --color-content-library-page-surface: var(--color-carbon-base-carbon);
    --color-content-library-sidebar-border: var(--color-gray-700);
    --color-content-library-active-row: #3a2b1f;
    --color-content-library-pill-static: #263632;
    --color-content-library-pill-active: #24443d;
    --color-content-library-pill-text: #b7d4ca;
    --color-content-library-row-border: var(--color-gray-700);
    --color-content-library-row-action: var(--color-gray-300);
    --color-content-library-search-focus: var(--color-forest-secondary-accent);
  }
}
