/* ============================================================================
   theme-tokens.css — GENERATED. DO NOT EDIT BY HAND.

   Emitted by tools/theme-tokens.mjs; the deploy gate refuses on divergence.
   The DARK values come from the app's lib/theme/fetch_theme.dart. The LIGHT
   values below are the hardcoded fallbacks these tokens were already
   resolving to before they existed — reproduced exactly, so defining them
   changes no rendered pixel while making every one of them themeable.

   css/tokens.css still owns the light colour layer. See the generator header
   for why light is not emitted from the app.
   ========================================================================== */

:root {
  /* ── were fallback-only: used via var() but never defined ─────────────── */
  --text-1:             #16202C;   /* body ink on forecast + auth (37+21 uses) */
  --text-2:             #5B6B7C;   /* secondary ink on forecast + auth */
  --surface-0:          #FFFFFF;   /* auth modal card */
  --surface-2:          #F1F4F8;   /* auth modal inset */
  --border-1:           #D6DEE8;   /* auth modal hairline */

  /* ── lifted out of stylesheets so a theme can reach them ──────────────── */
  --ink-on-bright:      #06131F;   /* text on a bright accent chip (forecast, map) */
  --chip-neutral:       #5E6B78;   /* neutral chip fill when a band is unknown */
  --chart-line-2:       #4FA3C7;   /* the secondary chart line */
  --wind-bar-base:      #9AB4C6;   /* wind bar before the speed ladder applies */
  --heart:              #E0245E;   /* the favourite heart */
  --star:               #C9A13B;   /* the favourite star on widget cards */
  --text-on-dark-2:     #E8EEF6;   /* text over the map basemap */
  --danger-text:        #C0392B;   /* auth error text */

  /* ── ELEVATION. Inert in light (identical to the card) and load-bearing in
     dark, where the app separates surfaces by a card sitting a step lighter
     than the page rather than by a hairline. ───────────────────────────── */
  --surface-elevated:   #FFFFFF;
}

/* ⚠ DEFINED BUT NOT YET REACHABLE: nothing sets data-theme on <html> until
   session 3 ships the toggle. This block is inert by design. */
:root[data-theme='dark'] {
  /* ── the colour layer css/tokens.css defines for light ────────────────── */
  --bg:                 #0F1C2C;   /* light #FFFFFF == fetchLight.card, so dark takes fetchDark.card */
  --surface:            #091322;   /* the ground behind cards */
  --surface-raised:     #122334;   /* ELEVATION: a step LIGHTER than the page */
  --surface-sunken:     #16273A;
  --line:               rgba(255, 255, 255, 0.071);   /* hairlines nearly vanish on navy — see the header note */
  --line-strong:        rgba(255, 255, 255, 0.102);
  --text:               #EAF1F6;
  --text-secondary:     #93A6B6;
  --text-muted:         #7E8E9E;   /* DERIVED, not fetchDark.faint #5E7184: that measures 3.01-3.70:1 as text on these grounds. This is 77% of it toward ink, the smallest lift clearing 4.5 on the worst (4.53) */
  --accent-text:        #6FE3CC;   /* the app brightens accent TEXT in dark; the fill stays */
  --accent-tint:        rgba(61, 224, 196, 0.129);   /* opaque pastel in light -> a low-alpha wash in dark */
  --accent-tint-deep:   rgba(61, 224, 196, 0.129);
  --accent-ring:        rgba(111, 227, 204, 0.30);   /* derived from the dark accent text */
  --brand-teal:         #0E7A66;   /* brand constant — theme-invariant in the app */
  --brand-teal-bright:  #3DE0C4;   /* logoColor(dark) */
  --scrim:              rgba(0, 0, 0, 0.55);   /* fetch_theme.dart scrimDark 0x8C000000 */
  --fcp-ground:         #091322;   /* the forecast pages ground */

  /* ── elevation ────────────────────────────────────────────────────────── */
  --surface-elevated:   #122334;   /* fetchDark.cardElevated */
  --nav-bar:            #0B1726;

  /* ── the formerly-orphaned tokens ─────────────────────────────────────── */
  --text-1:             #EAF1F6;   /* body ink on forecast + auth (37+21 uses) */
  --text-2:             #93A6B6;   /* secondary ink on forecast + auth */
  --surface-0:          #0F1C2C;   /* auth modal card */
  --surface-2:          #16273A;   /* auth modal inset */
  --border-1:           rgba(255, 255, 255, 0.102);   /* auth modal hairline */

  /* ── the lifted values ────────────────────────────────────────────────── */
  --ink-on-bright:      #091322;   /* text on a bright accent chip (forecast, map) */
  --chip-neutral:       #93A6B6;   /* neutral chip fill when a band is unknown */
  --chart-line-2:       #7FC4E0;   /* the secondary chart line */
  --wind-bar-base:      #5A7386;   /* wind bar before the speed ladder applies */
  --heart:              #FF5A5F;   /* the favourite heart */
  --star:               #E3B65A;   /* the favourite star on widget cards */
  --text-on-dark-2:     #EAF1F6;   /* text over the map basemap */
  --danger-text:        #FF6B6B;   /* auth error text */
}
