/*
 * Polaris Pathways design tokens.
 *
 * GENERATED FILE -- do not edit. Edit tokens/polaris-tokens.json and run
 *   npm run build:tokens
 * to regenerate. Source is the single source of truth for the --pp-* token
 * system. H5 (session-30) wired Style Dictionary v4 build; v4.4.0.
 *
 * Enqueued by functions.php as `polaris-tokens` BEFORE `polaris-style`
 * (which declares a dep on it). All other theme CSS files inherit via
 * the `polaris-style` dependency chain.
 *
 * Token discipline: tokens WITHOUT a -text suffix are SURFACE / BRAND
 * tokens designed to pair with white foreground text. For color:
 * declarations, use the matching -text variant.
 */
:root {
  /* color: Brand: Claude-Design / Polaris Pathways -- warm green on beige (v2.79.0 rebrand). Token discipline: tokens without a -text suffix are SURFACE / BRAND tokens designed to pair with white foreground text. For color: declarations, use the -text variant. */
  /* Brand green. Surface token: pair with white text. */
  --pp-primary: #499c57;
  --pp-primary-dark: #3a7d46;
  --pp-primary-light: #5fb86d;
  /* Foreground color when sitting on --pp-primary surface. */
  --pp-on-primary: #ffffff;
  /* Accessible variant for text/buttons. Light: 6.59:1 on white, 5.15:1 on
     beige. */
  --pp-primary-text: #346839;
  /* Button-bg variant. White text on --pp-primary (#499c57) is 3.4:1 (AA Normal
     fail); this shade pairs at 6.8:1 (rest). Same hex in dark mode because
     lifted #5fb86d + white = 2.7:1 fail. Precedent: .pp-cta-section
     .pp-btn--primary already hardcoded #2e6338. Added session-27 (v2.126.2). */
  --pp-primary-button-bg: #2e6338;
  --pp-primary-button-bg-hover: #245430;
  /* Stays white in BOTH modes because button-bg stays dark in both modes. */
  --pp-primary-button-fg: #ffffff;
  /* Brand accent orange (Live Class / urgency). */
  --pp-secondary: #fd5e02;
  --pp-secondary-dark: #d44e01;
  --pp-secondary-light: #ff8a3d;
  /* Dark text on the secondary orange in both modes. #ffffff on #fd5e02 was
     3.09:1 (AA fail); #181817 on #fd5e02 is 7.21:1 (AA pass). QA-S9
     carry-forward (regression unmasked when lj_student was seeded into a product
     with /my-learning/ Continue Learning CTAs). */
  --pp-on-secondary: #181817;
  /* Light: 6.20:1 on white, 4.84:1 on beige. Dark: 7.58:1 on #181817, 5.52:1 on
     #333130. */
  --pp-secondary-text: #a64115;
  /* Brand highlight yellow/gold (Starting Soon / achievement). */
  --pp-accent: #ffad01;
  --pp-accent-dark: #e09500;
  --pp-on-accent: #181817;
  /* Light: 6.25:1 on white, 4.89:1 on beige. Dark: 11.60:1 on #181817, 8.45:1 on
     #333130. */
  --pp-accent-text: #7a5c00;
  /* Page background. Light: warm beige; dark: warm near-black. */
  --pp-bg: #e9e3d5;
  /* Card/panel surface (raised above --pp-bg). */
  --pp-surface: #ffffff;
  /* Primary foreground. Inverse of --pp-bg. */
  --pp-foreground: #181817;
  --pp-text: #181817;
  /* Light: #5f5b5a on white = 6.8:1, on beige = 5.7:1; both AA. */
  --pp-text-secondary: #5f5b5a;
  /* SURFACE-role muted gray (same hex in both modes by design). NOT for color:
     declarations on beige (#e9e3d5) -- 2.20:1 contrast fails. Use
     --pp-text-muted-text for paragraph text on beige. */
  --pp-text-muted: #9e9997;
  /* Accessible text variant. Light: 7.03:1 on white, 5.50:1 on beige. Dark:
     8.56:1 on #181817, 6.23:1 on #333130. Added Phase 2.1 to close
     muted-paragraph gap surfaced by v2.124.0 axe sweep. */
  --pp-text-muted-text: #5c5856;
  --pp-border: #e3ded6;
  --pp-border-strong: #d6d1ca;
  /* SURFACE token (not text). Muted area background (subtle panel). */
  --pp-muted: #f4f4f4;
  /* Semantic green. Light: 5.02:1 on white (AA Large only as text). */
  --pp-success: #15803d;
  /* Light: 6.63:1 on white, 5.18:1 on beige. Dark: 10.20:1 on #181817, 7.43:1 on
     #333130. */
  --pp-success-text: #0f6b30;
  --pp-warning: #b45309;
  --pp-warning-strong: #ea580c;
  /* Light: 6.46:1 on white, 5.05:1 on beige. Dark: 10.64:1 on #181817, 7.75:1 on
     #333130. */
  --pp-warning-text: #9a4607;
  /* AA-safe orange button bg. White text on --pp-warning-strong (#ea580c) gives
     3.55:1 (axe-measured 2026-05-18 session-27). White-on-button-bg pairs at
     ~5.2:1 in both modes. Same hex in dark mode (#fb923c lifted gives 2.26:1
     fail). */
  --pp-warning-button-bg: #c2410c;
  /* Semantic red. TEXT-role (paired with --pp-error-solid for surfaces). */
  --pp-error: #c0392b;
  /* Solid red SURFACE (buttons, status pills). Light: same as --pp-error (5.55:1
     + white = AA pass). Dark: #dc2626 yields 4.91:1 + white vs --pp-error
     #f87171 which is 2.77:1 + white (fail). Distinct from --pp-error-bg (soft
     pink alert surface in reports.css). */
  --pp-error-solid: #c0392b;
  /* Hover/active for --pp-error-solid buttons. */
  --pp-error-strong: #a93226;
  --pp-info: #1575e8;
  /* Light: 5.75:1 on white, 4.49:1 on beige. Dark: 7.23:1 on #181817, 5.27:1 on
     #333130 (lifted from #4d94f0 which fails AA normal on #333130 at 4.20:1). */
  --pp-info-text: #1565c0;
  /* Focus ring color. */
  --pp-ring: #499c57;
  /* Card hover per Claude-Design kit (8% primary). */
  --pp-primary-ghost: rgba(73, 156, 87, 0.08);

  /* effect */
  --pp-focus-ring: 0 0 0 3px rgba(73, 156, 87, 0.25);
  --pp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --pp-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
  --pp-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
  --pp-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);

  /* typography */
  --pp-font-heading: "Montserrat", sans-serif;
  --pp-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --pp-text-xs: 0.75rem;
  --pp-text-sm: 0.875rem;
  --pp-text-base: 1rem;
  --pp-text-lg: 1.125rem;
  --pp-text-xl: 1.25rem;
  --pp-text-2xl: 1.5rem;
  --pp-text-3xl: 1.875rem;
  --pp-text-4xl: 2.25rem;
  --pp-text-5xl: 3rem;

  /* spacing: 4px base. */
  --pp-space-1: 0.25rem;
  --pp-space-2: 0.5rem;
  --pp-space-3: 0.75rem;
  --pp-space-4: 1rem;
  --pp-space-5: 1.25rem;
  --pp-space-6: 1.5rem;
  --pp-space-7: 1.75rem;
  --pp-space-8: 2rem;
  --pp-space-12: 3rem;
  --pp-space-16: 4rem;
  --pp-space-20: 5rem;
  --pp-space-24: 6rem;

  /* radius */
  /* Default radius; alias of --pp-radius-md. */
  --pp-radius: 0.5rem;
  --pp-radius-sm: 0.375rem;
  --pp-radius-md: 0.5rem;
  --pp-radius-lg: 0.75rem;
  --pp-radius-xl: 1rem;
  --pp-radius-full: 9999px;

  /* layout */
  --pp-max-width: 1200px;
  --pp-header-height: 72px;
}

/* -- Dark theme -- warm neutrals + same brand greens (lifted) -- */
[data-theme="dark"] {
  --pp-primary: #5fb86d;
  --pp-primary-dark: #499c57;
  --pp-primary-light: #86d093;
  --pp-on-primary: #181817;
  --pp-primary-text: #5fb86d;
  --pp-primary-button-bg: #2e6338;
  --pp-primary-button-bg-hover: #245430;
  --pp-primary-button-fg: #ffffff;
  --pp-secondary: #ff8a3d;
  --pp-secondary-dark: #fd5e02;
  --pp-secondary-light: #ffad7a;
  --pp-on-secondary: #181817;
  --pp-secondary-text: #ff8a3d;
  --pp-accent: #ffc94a;
  --pp-accent-dark: #ffad01;
  --pp-on-accent: #181817;
  --pp-accent-text: #ffc94a;
  --pp-bg: #181817;
  --pp-surface: #333130;
  --pp-foreground: #f7f5f0;
  --pp-text: #f7f5f0;
  --pp-text-secondary: #c2beb8;
  --pp-text-muted: #9e9997;
  --pp-text-muted-text: #b8b3b0;
  --pp-border: #5f5b5a;
  --pp-border-strong: #7d7877;
  --pp-muted: #333130;
  --pp-success: #4ade80;
  --pp-success-text: #4ade80;
  --pp-warning: #fbbf24;
  --pp-warning-strong: #fb923c;
  --pp-warning-text: #fbbf24;
  --pp-warning-button-bg: #c2410c;
  --pp-error: #f87171;
  --pp-error-solid: #dc2626;
  --pp-error-strong: #b91c1c;
  --pp-info: #4d94f0;
  --pp-info-text: #6ba8f5;
  --pp-ring: #5fb86d;
  --pp-focus-ring: 0 0 0 3px rgba(95, 184, 109, 0.35);
  --pp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --pp-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
  --pp-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);
  --pp-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.5);
}
