/* Design tokens. Light values live in :root, dark values in [data-theme="dark"].
   js/theme.js sets data-theme on <html> before first paint (stored choice, else the OS preference).
   Xylem Vue palette: petrol #003E51, blue #0085AD, clarity #67DFFF. Arial per the brand spec. */
:root {
  color-scheme: light;

  --bg: #EDF2F4;
  --surface: #FBFDFD;
  --surface2: #F2F6F8;
  --line: #D7E1E6;
  --line2: #C2D0D7;
  --ink: #13262E;
  --muted: #4F6670;
  --faint: #7D929B;
  --brand: #003E51;
  --brand-ink: #FFFFFF;
  --brand-hi: #67DFFF;
  --accent: #0085AD;
  --accent-ink: #FFFFFF;
  --accent-soft: #DDEFF6;
  --accent-line: #9FD1E3;
  --ok: #14806B;
  --ok-soft: #DBF1EA;
  --warn: #A66300;
  --warn-soft: #FAEBD2;
  --bad: #B0353A;
  --bad-soft: #F7E0E0;
  --l-ai: #14806B;
  --l-water: #0085AD;
  --l-ww: #B4572E;
  --l-swe: #94661C;
  --shadow: 0 1px 2px rgba(0, 62, 81, .06), 0 6px 20px rgba(0, 62, 81, .07);
  --scrim: rgba(4, 22, 30, .45);
  --sans: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
  --r: 10px;

  /* Legacy names, kept as aliases so existing pages follow both themes. */
  --color-primary: var(--accent);
  --color-primary-dark: var(--brand);
  --color-primary-hover: var(--brand);
  --color-primary-light: var(--accent-soft);
  --color-accent: var(--accent);
  --color-danger: var(--bad);
  --color-success: var(--ok);
  --color-background: var(--bg);
  --color-surface: var(--surface);
  --color-surface-hover: var(--surface2);
  --color-text-primary: var(--ink);
  --color-text-secondary: var(--muted);
  --color-text-muted: var(--muted);
  --color-text-inverse: var(--accent-ink);
  --color-border: var(--line2);
  --color-focus-ring: var(--accent);
  --focus-ring-width: 2px;
  --focus-ring-offset: 2px;

  --font-family: var(--sans);
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-md: 1rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --spacing-2xl: 3rem;
  --sidebar-width: 224px;
  --header-height: 56px;
  --border-radius-sm: 4px;
  --border-radius: 8px;
  --border-radius-lg: 12px;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, .1);
  --shadow-lg: 0 10px 25px rgba(0, 0, 0, .15);
  --transition-fast: 150ms ease;
  --transition-normal: 250ms ease;
}

[data-theme="dark"] {
  color-scheme: dark;

  --bg: #06171E;
  --surface: #0B232C;
  --surface2: #0F2D37;
  --line: #193A45;
  --line2: #245061;
  --ink: #E3F0F4;
  --muted: #9AB3BD;
  --faint: #6A8691;
  --brand: #021219;
  --brand-ink: #E3F0F4;
  --brand-hi: #67DFFF;
  --accent: #3EC5EA;
  --accent-ink: #03222C;
  --accent-soft: #0E3846;
  --accent-line: #1E6378;
  --ok: #3DD1AD;
  --ok-soft: #0D3830;
  --warn: #F0B35A;
  --warn-soft: #37290F;
  --bad: #F27E82;
  --bad-soft: #3B191C;
  --l-ai: #3DD1AD;
  --l-water: #4CC3E6;
  --l-ww: #EA9670;
  --l-swe: #DBAB68;
  --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .3);
  --scrim: rgba(0, 0, 0, .6);

  /* Legacy aliases whose dark value differs from the light alias. */
  --color-primary-dark: var(--brand-hi);
  --color-primary-hover: var(--brand-hi);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, .35);
  --shadow-lg: 0 10px 25px rgba(0, 0, 0, .5);
}
