/* Applied LDS 0.9.7 values used by CityMETER Transit (release v0.9.7-owner.1, color-srgb-10).
   Every LDS value below is copied exactly from machine.tokens / machine.analyticalScales
   of Landometer-Design-System-v0.9.7.md (SHA-256 d3085cbc…96). No derived colours.
   Scope: UI foundation pairs, categorical series 1–10, map/data-state roles and the
   five-class projection of the `count` sequential family (the 41-sample LUTs of `count`
   and `activity` live in js/scales.js). The full LDS library is not distributed here.
   Two groups are NOT LDS tokens and are declared once here so no value is approximated
   in code: --basemap-* (paper basemap, carried over from Luxury Brands 0.5) and
   --scene-* (the three.js transit scene: solids, context massing, shadow strength).
   Both are context, never data. Rail line colours are third-party identity (the colour in
   a line's own name, e.g. สายสีม่วง) and come with their source from data/transit.json. */

:root {
  /* Foundation — light */
  --surface-canvas: #F6F7F3;
  --surface-alt: #EEF1EE;
  --surface-card: #FCFCFA;
  --surface-raised: #FFFFFF;
  --surface-soft: #E5E9E6;
  --surface-blue-tint: #E2E9ED;
  --surface-beige-tint: #F2F1DF;
  --text-primary: #182327;
  --text-secondary: #5F635A;
  --text-metadata: #5C6A61;
  --text-muted: #7B877D;
  --text-disabled: #A7B3A9;
  --border-hairline: #DCE1DD;
  --border-default: #C9D0CB;
  --border-emphasis: #7D877F;
  --interaction-accent: #176B82;
  --interaction-focus-ring: #176B82;

  /* Brand identity (portfolio) */
  --brand-blue: #1D4497;
  --brand-beige: #F2F1DF;

  /* Semantic states — light (surface / content) */
  --state-info-surface: #E8EEF0;
  --state-info-content: #176B82;
  --state-pending-surface: #F3EEDB;
  --state-pending-content: #5C6A61;
  --state-neutral-surface: #ECE4D2;
  --state-neutral-content: #5F635A;
  --state-warning-surface: #FFF1D1;
  --state-warning-content: #A64A00;
  --state-danger-surface: #FCE5DF;
  --state-danger-content: #B43A3A;
  --state-success-surface: #E2F4E5;
  --state-success-content: #126B49;

  /* Map roles — light */
  --map-active-layer: #347DA8;
  --map-hover-stroke: #347DA8;
  --map-selected-stroke: #176B82;
  --map-focus-stroke: #176B82;
  --map-marker-halo: #FFFFFF;
  --map-marker-stroke: #182327;

  /* Data-state roles — light */
  --data-no-data: #D5DAD6;
  --data-zero-outline: #7D877F;

  /* Categorical series landometer-series-10-v8 — light soft fill / ink */
  --series-1-fill: #D88381;
  --series-1-ink: #963538;
  --series-2-fill: #E39B6E;
  --series-2-ink: #182327;
  --series-3-fill: #EAC578;
  --series-3-ink: #182327;
  --series-4-fill: #BECE7E;
  --series-4-ink: #606E00;
  --series-5-fill: #7BD0A3;
  --series-5-ink: #007047;
  --series-6-fill: #6ACCF0;
  --series-6-ink: #006580;
  --series-7-fill: #49C0BC;
  --series-7-ink: #006967;
  --series-8-fill: #6196D1;
  --series-8-ink: #0E599D;
  --series-9-fill: #8AA4AA;
  --series-9-ink: #355F6A;
  --series-10-fill: #82AC79;
  --series-10-ink: #34622A;
  --chart-on-fill: #182327;

  /* Sequential family `count` (totals, unit = brands) — five classes, same on both themes */
  --scale-count-1: #F4F0E7;
  --scale-count-2: #BAD5D4;
  --scale-count-3: #7DBAC0;
  --scale-count-4: #4C7A98;
  --scale-count-5: #213E70;
  --scale-count-ink-on-1: #182327;
  --scale-count-ink-on-2: #182327;
  --scale-count-ink-on-3: #182327;
  --scale-count-ink-on-4: #FFFFFF;
  --scale-count-ink-on-5: #FFFFFF;

  /* Basemap-only tokens (release 0.3) — foundation values for the generated "paper"
     basemap (js/map-style.js). Where an LDS foundation token fits it is reused
     (ground = surface.alt, water = surface.blue-tint, casings = borders, labels =
     text roles, halo/sky = surface.canvas). Land cover, buildings and massing have
     no LDS token and are declared here once so no value is approximated in code.
     These are never data colours and carry no meaning in legends. */
  --basemap-ground: #EEF1EE;
  --basemap-water: #E2E9ED;
  --basemap-water-line: #CBD9E1;
  --basemap-park: #DCE6D4;
  --basemap-wood: #D2DFC8;
  --basemap-grass: #E3EBDA;
  --basemap-sand: #F0EEE4;
  --basemap-aeroway: #E9EBE7;
  --basemap-building: #DFE2DD;
  --basemap-building-line: #CDD2CD;
  --basemap-massing-quiet: #ECEDE8;
  --basemap-massing-focus: #D9D7CD;
  --basemap-road: #FFFFFF;
  --basemap-road-casing: #DCE1DD;
  --basemap-motorway-casing: #C9D0CB;
  --basemap-tunnel: #F4F6F3;
  --basemap-rail: #C9D0CB;
  --basemap-transit: #B4BDB7;
  --basemap-path: #FFFFFF;
  --basemap-label: #5F635A;
  --basemap-label-quiet: #7B877D;
  --basemap-halo: #F6F7F3;
  --basemap-sky: #F6F7F3;
  --basemap-horizon: #DCE1DD;
  --basemap-fog: #EEF1EE;
  /* Province / station label chip — ink chip */
  --area-label-bg: #182327;
  --area-label-ink: #F6F7F3;
  --area-label-border: #182327;
  /* Scene-only tokens (three.js layer, js/scene.js): translucent white solids on paper,
     like a white architectural model; shadow strength of the soft ground shadow. */
  --scene-solid: #FFFFFF;
  --scene-context: #FFFFFF;
  --scene-pier: #FFFFFF;
  --scene-line-quiet: #B4BDB7;
  --scene-shadow-opacity: 0.2;
  --scene-bus: #7B877D;
}

:root[data-theme="dark"] {
  --surface-canvas: #11191D;
  --surface-alt: #172126;
  --surface-card: #20292D;
  --surface-raised: #293337;
  --surface-soft: #2B3534;
  --surface-blue-tint: #18333E;
  --surface-beige-tint: #2C2A22;
  --text-primary: #F1F4EF;
  --text-secondary: #C4CECA;
  --text-metadata: #A6B5B1;
  --text-muted: #8D9D99;
  --text-disabled: #71817D;
  --border-hairline: #33403D;
  --border-default: #46524F;
  --border-emphasis: #7C8A84;
  --interaction-accent: #68C4E2;
  --interaction-focus-ring: #68C4E2;

  --state-info-surface: #18333E;
  --state-info-content: #68C4E2;
  --state-pending-surface: #2C2A22;
  --state-pending-content: #D8CFB2;
  --state-neutral-surface: #2B3534;
  --state-neutral-content: #C4CECA;
  --state-warning-surface: #3B2E16;
  --state-warning-content: #F5C15C;
  --state-danger-surface: #3A1F21;
  --state-danger-content: #FF7C72;
  --state-success-surface: #17362D;
  --state-success-content: #72E8C4;

  --map-active-layer: #65B6DB;
  --map-hover-stroke: #65B6DB;
  --map-selected-stroke: #68C4E2;
  --map-focus-stroke: #68C4E2;
  --map-marker-halo: #101318;
  --map-marker-stroke: #F1F4EF;

  --data-no-data: #404844;
  --data-zero-outline: #93A398;

  --series-1-fill: #E37A84;
  --series-1-ink: #FF4F6D;
  --series-2-fill: #F59B62;
  --series-2-ink: #FF8A37;
  --series-3-fill: #ECCB67;
  --series-3-ink: #FFD242;
  --series-4-fill: #A9C065;
  --series-4-ink: #A9CB00;
  --series-5-fill: #6EC69D;
  --series-5-ink: #00E39D;
  --series-6-fill: #62BEE6;
  --series-6-ink: #54CDFF;
  --series-7-fill: #2DA096;
  --series-7-ink: #00B6AB;
  --series-8-fill: #5A8CDA;
  --series-8-ink: #5396FF;
  --series-9-fill: #BFD4E7;
  --series-9-ink: #C0DBF4;
  --series-10-fill: #5B9455;
  --series-10-ink: #3CA633;
  --chart-on-fill: #182327;

  /* DATAVIZ-03: analytical values keep the approved light HEX on dark surfaces. */

  /* Basemap-only tokens — dark theme (ground = surface.canvas, water = surface.blue-tint,
     roads = surface.raised/card, casings = borders, labels = text roles). */
  --basemap-ground: #11191D;
  --basemap-water: #18333E;
  --basemap-water-line: #1F3F4C;
  --basemap-park: #16251F;
  --basemap-wood: #14211C;
  --basemap-grass: #172620;
  --basemap-sand: #1C2328;
  --basemap-aeroway: #172126;
  --basemap-building: #1C262B;
  --basemap-building-line: #2A3539;
  --basemap-massing-quiet: #2A343A;
  --basemap-massing-focus: #4A5760;
  --basemap-road: #293337;
  --basemap-road-casing: #33403D;
  --basemap-motorway-casing: #46524F;
  --basemap-tunnel: #1A2327;
  --basemap-rail: #46524F;
  --basemap-transit: #5E6B67;
  --basemap-path: #293337;
  --basemap-label: #A6B5B1;
  --basemap-label-quiet: #8D9D99;
  --basemap-halo: #11191D;
  --basemap-sky: #0D1418;
  --basemap-horizon: #172126;
  --basemap-fog: #11191D;
  --area-label-bg: #182327;
  --area-label-ink: #F6F7F3;
  --area-label-border: #8D9D99;
  --scene-solid: #C4CECA;
  --scene-context: #7C8A84;
  --scene-pier: #A6B5B1;
  --scene-line-quiet: #5E6B67;
  --scene-shadow-opacity: 0.45;
  --scene-bus: #8D9D99;
}
