/* Design tokens — the single declaration of the DESIGN.md palette.
 *
 * Before S3 these lived inline in six views, re-declared verbatim in each one
 * (`.landing`, `.chat`, `.quiz`, `.dashboard`, `.trip-preview`, `.itin-body`).
 * Every token that appeared in more than one view held an identical value in
 * every one of them, so hoisting to :root is a pure de-duplication — no
 * computed value changes on any page.
 *
 * DESIGN.md is the source of truth. If a value here disagrees with DESIGN.md,
 * DESIGN.md is right and this file is the bug.
 *
 * HOW THIS REACHES THE BROWSER: the layout's `stylesheet_link_tag :app` is a
 * Propshaft feature meaning "every .css under app/assets", not a file named
 * app.css — so simply existing in this directory is what links it. Do not also
 * @import it from app/assets/tailwind/application.css: that inlines a second
 * copy into tailwind.css and the page ships the same tokens twice.
 *
 * Page-specific values stay inline in their own view — the quiz's --amber-tint,
 * the landing page's per-card --ph-a/--ph-b photo placeholders, and the
 * itinerary's --shadow-sm/--shadow-md (see the note at the bottom).
 */

:root {
  /* ── Base (DESIGN.md "Light mode") ── */
  --bg:           #F7F5F0;  /* Warm parchment — the primary canvas */
  --surface:      #FFFFFF;  /* Cards, panels, inputs */
  --surface-2:    #F0EDE7;  /* Hover states, secondary backgrounds */
  --border:       #E2DDD6;  /* All dividers and borders */
  --text:         #1C1C1A;  /* Primary text — near-black, warm undertone */
  --text-2:       #4A4845;  /* Secondary text */
  --muted:        #6B7280;  /* Placeholder, metadata, disabled */

  /* ── Green ── */
  --green:        #1B4332;  /* Deep forest green — twilight Irish fairway */
  --green-dim:    #2D6B50;  /* Hover state for green elements */
  --green-light:  #D1FAE5;  /* Green badge backgrounds */

  /* ── Amber ── */
  --amber:        #C4881A;  /* Primary CTA, flagpoles, trophies */
  --amber-light:  #FEF3C7;  /* Amber badge backgrounds */

  /* ── Status ── */
  --confirmed:    #166534;  /* Booking confirmed, payment received */
  --confirmed-bg: #D1FAE5;
  --pending:      #92400E;  /* Awaiting reply, payment pending */
  --pending-bg:   #FFF7ED;
  --action:       #991B1B;  /* Needs Captain input, overdue */
  --action-bg:    #FEE2E2;

  /* ── Sidebar (always dark, in both themes) ── */
  --sidebar-bg:     #1C1C1A;
  --sidebar-text:   #E8E4DC;
  --sidebar-muted:  #9B9894;
  --sidebar-active: #2D6B50;
  --sidebar-border: #2A2A28;

  /* ── Ranking badges. Fixed and deliberately NOT theme-sensitive: the tier a
       course holds must read the same everywhere it appears. Amber and green
       reuse --amber-light/--pending and --green-light/--green above; purple is
       the GB&I tier and has no other use, so it is named here. ── */
  --purple-bg:    #EDE9FE;
  --purple-text:  #5B21B6;

  /* ── Shared by views but NOT in DESIGN.md — hoisted because more than one
       view declared them, not because they are blessed. --ink is byte-identical
       to --text and is a candidate for deletion; --faint is a fourth text
       weight below --muted. Reconcile these with DESIGN.md rather than adding
       more of them. ── */
  --ink:   #1C1C1A;
  --faint: #9CA3AF;
}

/* NOT HOISTED, on purpose:
 *
 * --shadow-sm / --shadow-md. DESIGN.md defines them, but so does Tailwind v4 —
 * its `@layer theme` sets both on :root with different values. The clash is
 * harmless in practice (Tailwind bakes literals into its compiled .shadow-*
 * utilities and never reads the variables at runtime), but the itinerary is the
 * only view that uses ours, so putting a name clash in the global sheet buys
 * nothing. They stay in that view. If a second view ever needs them, rename to
 * --elev-sm/--elev-md and hoist those instead.
 *
 * Dark mode. DESIGN.md specifies a full dark palette; nothing in the app
 * implements it, and no view carried a prefers-color-scheme block before this
 * extraction or after it. Building it is a design decision, not a side effect
 * of moving CSS. When it happens it belongs here as a :root override, and
 * nowhere else. */
