/* ══════════════════════════════════════════════════════════════════════════════
   GENERATED — DO NOT EDIT.

   Source:    web/src/index.css   (the webcard token scale, KI-963 / KDS-007)
   Generator: tools/ops/generate-landing-theme.mjs
   Gate:      audit:landing-theme-drift  — fails the build if this file is stale

   Edit the TOKENS in web/src/index.css and re-run the generator. Editing this file directly
   re-creates the divergence it exists to remove: the webcards migrated to warm
   bone + #1B7A3D and the landing site never followed, silently, for months.
   ══════════════════════════════════════════════════════════════════════════════ */

:root {
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --card: 0 0% 100%;
  --card-foreground: 222.2 84% 4.9%;
  --popover: 0 0% 100%;
  --popover-foreground: 222.2 84% 4.9%;
  --primary: 137 64% 29%;
  --primary-foreground: 0 0% 100%;
  --secondary: 210 40% 96.1%;
  --secondary-foreground: 222.2 47.4% 11.2%;
  --muted: 210 40% 96.1%;
  --muted-foreground: 215.4 16.3% 46.9%;
  --accent: 210 40% 96.1%;
  --accent-foreground: 222.2 47.4% 11.2%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 210 40% 98%;
  --border: 214.3 31.8% 91.4%;
  --input: 214.3 31.8% 91.4%;
  --ring: 222.2 84% 4.9%;
  --radius: 0.5rem;
  --surface: 42 30% 90%;
  --surface-secondary: 43 27% 85%;
  --surface-tertiary: 43 24% 80%;
  --text-primary: 138 24% 12%;
  --text-secondary: 135 8% 39%;
  --text-muted: 135 6% 55%;
  --surface-hover: 42 26% 87%;
  --brand: 137 64% 29%;
  --brand-strong: 138 47% 16%;
  --brand-gold: 41 65% 48%;

  /* ── alias layer ────────────────────────────────────────────────────────────
     The landing HTML uses these names as finished COLOURS (86 var() uses); the
     platform stores HSL triplets. This wraps one into the other, so every
     existing use now resolves to the platform scale. */
  --green: hsl(var(--brand));
  --green-dark: hsl(var(--brand-strong));
  --gold: hsl(var(--brand-gold));
  --white: hsl(var(--background));
  --gray: hsl(var(--text-muted));
}

@media (prefers-color-scheme: dark) {
  :root {
    --background: 220 20% 11%;
    --card: 220 18% 15%;
    --popover: 220 18% 15%;
    --foreground: 210 40% 98%;
    --card-foreground: 210 40% 98%;
    --popover-foreground: 210 40% 98%;
    --primary: 145 55% 55%;
    --primary-foreground: 220 20% 11%;
    --secondary: 220 15% 22%;
    --secondary-foreground: 210 40% 98%;
    --muted: 220 15% 18%;
    --muted-foreground: 215 20% 70%;
    --accent: 180 60% 45%;
    --accent-foreground: 210 40% 98%;
    --destructive: 0 65% 55%;
    --destructive-foreground: 210 40% 98%;
    --border: 220 15% 25%;
    --input: 220 15% 25%;
    --ring: 145 55% 55%;
    --surface: 150 20% 8%;
    --surface-secondary: 145 20% 11%;
    --surface-tertiary: 145 18% 15%;
    --text-primary: 130 20% 92%;
    --text-secondary: 140 12% 66%;
    --text-muted: 140 8% 50%;
    --surface-hover: 145 18% 14%;
    --brand: 137 45% 55%;
    --brand-strong: 137 40% 38%;
    --brand-gold: 43 74% 57%;
  }
}

:root[data-theme='dark'] {
  --background: 220 20% 11%;
  --card: 220 18% 15%;
  --popover: 220 18% 15%;
  --foreground: 210 40% 98%;
  --card-foreground: 210 40% 98%;
  --popover-foreground: 210 40% 98%;
  --primary: 145 55% 55%;
  --primary-foreground: 220 20% 11%;
  --secondary: 220 15% 22%;
  --secondary-foreground: 210 40% 98%;
  --muted: 220 15% 18%;
  --muted-foreground: 215 20% 70%;
  --accent: 180 60% 45%;
  --accent-foreground: 210 40% 98%;
  --destructive: 0 65% 55%;
  --destructive-foreground: 210 40% 98%;
  --border: 220 15% 25%;
  --input: 220 15% 25%;
  --ring: 145 55% 55%;
  --surface: 150 20% 8%;
  --surface-secondary: 145 20% 11%;
  --surface-tertiary: 145 18% 15%;
  --text-primary: 130 20% 92%;
  --text-secondary: 140 12% 66%;
  --text-muted: 140 8% 50%;
  --surface-hover: 145 18% 14%;
  --brand: 137 45% 55%;
  --brand-strong: 137 40% 38%;
  --brand-gold: 43 74% 57%;
}

/* ─────────────────────────────────────────────────────────────────────────────
   🔴 NOT IN THE BRAND SCALE — kept verbatim, deliberately.

   These tint the Driver / Portal / Pulse sections on the landing page. The
   platform token scale (KDS-007) contains no blue, violet or amber, so there is
   nothing honest to map them to. Mapping them to "something close" would be
   inventing brand.

   They are listed here so the divergence is VISIBLE and can be decided —
   either the brand scale gains product accents, or these sections restyle onto
   the existing scale. Until then they are an explicit exception, not a drift.
   ───────────────────────────────────────────────────────────────────────────── */
