/* ============================================================================
   chart-palette.css — GENERATED. DO NOT EDIT BY HAND.

   Emitted by tools/chart-palette.mjs from the app's own Dart; the deploy gate
   refuses on divergence. Change a colour in the app, re-run with --emit.

   Every value below is resolved from:
     lib/theme/fetch_theme.dart  fetchLight/fetchDark, _surfLight/_surfDark,
                                 _weatherLight/_weatherDark, FetchData.rain*
     lib/main.dart               _windSpeedColor(), the per-hour bar alphas

   The WIND ladder is theme-independent in the app (hard literals), so it is
   emitted once rather than per theme.
   ========================================================================== */

:root {
  /* LIGHT — fetchLight */
  --ch-surf:        #0E7A66;
  --ch-energy:      #92670F;
  --ch-tide:        #2E6E97;
  --ch-ink:         #0A1628;
  --ch-slate:       #5B6B7A;
  --ch-faint:       #93A1AE;
  --ch-grid:        rgba(10, 22, 40, 0.071);
  --ch-card:        #FFFFFF;
  /* markers, as the painter composites them */
  --ch-now:         rgba(10, 22, 40, 0.45);
  --ch-now-label:   rgba(10, 22, 40, 0.6);
  --ch-crosshair:   rgba(10, 22, 40, 0.2);
  --ch-bar-selected:rgba(10, 22, 40, 0.5);
  --ch-tide-area-top:    rgba(46, 110, 151, 0.2);
  --ch-tide-area-bottom: rgba(46, 110, 151, 0.05);
  --ch-energy-area-top:    rgba(146, 103, 15, 0.28);
  --ch-energy-area-bottom: rgba(146, 103, 15, 0.03);

  /* wind speed ladder — _windSpeedColor(), theme-independent */
  --ch-wind-calm:   #1A4A8A;   /* < 10 mph */
  --ch-wind-fresh:  #1D9E75;   /* < 15 mph */
  --ch-wind-strong: #FFCC00;   /* < 20 mph */
  --ch-wind-gale:   #FF4400;   /* >= 20 mph */

  /* per-hour time-state alphas. SURF and WIND DIFFER ON PURPOSE: the app
     gives wind no current-hour emphasis, and the web applying surf's rule to
     wind was one of the twelve audit findings. */
  --ch-alpha-past:         0.4;
  --ch-alpha-current:      1;
  --ch-alpha-future:       0.75;
  --ch-alpha-wind-past:    0.4;
  --ch-alpha-wind-rest:    0.8;

  /* ⚠ MARINE'S PAIR ENCODES THE INSTRUMENT, NOT THE CLOCK — see alphas().
     A marine bar at 0.5 means "the buoy was not reporting this hour",
     which is why it is named for the mask and not for the future. */
  --ch-alpha-recorded:     1;
  --ch-alpha-forecast:     0.5;

  /* WAVES' Both state: swell takes ink, wind sea takes this. */
  --ch-windsea:            #BE185D;
}

/* Dark tokens are emitted but NOT wired to a media query: the forecast pages
   are light-only today. When a dark mode arrives, this block is what it
   consumes — already generated, already gated. */
:root[data-theme='dark'] {
  /* DARK — fetchDark */
  --ch-surf:        #6FE3CC;
  --ch-energy:      #E3B65A;
  --ch-tide:        #5C9AD0;
  --ch-ink:         #EAF1F6;
  --ch-slate:       #93A6B6;
  --ch-faint:       #5E7184;
  --ch-grid:        rgba(255, 255, 255, 0.071);
  --ch-card:        #0F1C2C;
  /* markers, as the painter composites them */
  --ch-now:         rgba(234, 241, 246, 0.45);
  --ch-now-label:   rgba(234, 241, 246, 0.6);
  --ch-crosshair:   rgba(234, 241, 246, 0.2);
  --ch-bar-selected:rgba(234, 241, 246, 0.5);
  --ch-tide-area-top:    rgba(92, 154, 208, 0.2);
  --ch-tide-area-bottom: rgba(92, 154, 208, 0.05);
  --ch-energy-area-top:    rgba(227, 182, 90, 0.28);
  --ch-energy-area-bottom: rgba(227, 182, 90, 0.03);
  --ch-windsea:            #FF5C8A;
}
