/* Colour tokens (LION). Light is the default; dark applies when the theme is Dark, or System and the OS prefers dark.
   theme-boot.js sets data-theme="light|dark" from the saved choice; no attribute means System.
   The two dark blocks must stay identical (test/theme.test.js checks). Print is always light: it never uses these. */
:root {
  color-scheme: light;
  --navy: #344563; --navy-dark: #1E2D45; --navy-light: #4A6080;
  --red: #E8473A; --red-dark: #C93A2E;
  --yellow: #F2C200; --blue: #2F88C8; --green: #27AE60;
  --white: #fff; --off-white: #F4F5F7; --gray-100: #EAECF0; --gray-200: #D0D5DD; --gray-600: #475467; --gray-800: #1D2939;
  --bg: #ECEEF2; --surface: #fff; --surface-2: #F4F5F7; --surface-3: #EAECF0;
  --text: #1D2939; --text-2: #344563; --heading: #1E2D45; --muted: #475467;
  --border: #D0D5DD; --border-soft: #EAECF0; --border-strong: #475467; --border-hover: #344563; --ring: #1E2D45;
  --danger-text: #C93A2E; --accent-text: #BE352A; --on-yellow: #1E2D45;
  --action: #E8473A; --action-hover: #C93A2E; --pressed-bg: #1E2D45; --hover-tint: rgba(52,69,99,.08);
  --header-bg: #1E2D45; --inverse-bg: #1E2D45; --stage-bg: #1E2D45;
  --court-bg: #1E2D45; --court-shadow: rgba(30,45,69,.25); --court-edge: transparent;
}
@media screen and (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #0E1420; --surface: #182233; --surface-2: #1F2B40; --surface-3: #2A3850;
    --text: #E6EAF1; --text-2: #CBD5E5; --heading: #F4F6FA; --muted: #AAB5C8;
    --border: #3A4A66; --border-soft: #26334A; --border-strong: #8393AE; --border-hover: #A7B5CE; --ring: #F4F6FA;
    --danger-text: #FF8F84; --accent-text: #FF7A6E; --on-yellow: #1E2D45;
    --action: #D23D31; --action-hover: #B5322A; --pressed-bg: #4A6080; --hover-tint: rgba(255,255,255,.08);
    --header-bg: #111A29; --inverse-bg: #2A3850; --stage-bg: #0F1623;
    --court-bg: #0B111C; --court-shadow: rgba(0,0,0,.5); --court-edge: #3A4A66;
  }
}
@media screen {
  :root[data-theme="dark"] {
    color-scheme: dark;
    --bg: #0E1420; --surface: #182233; --surface-2: #1F2B40; --surface-3: #2A3850;
    --text: #E6EAF1; --text-2: #CBD5E5; --heading: #F4F6FA; --muted: #AAB5C8;
    --border: #3A4A66; --border-soft: #26334A; --border-strong: #8393AE; --border-hover: #A7B5CE; --ring: #F4F6FA;
    --danger-text: #FF8F84; --accent-text: #FF7A6E; --on-yellow: #1E2D45;
    --action: #D23D31; --action-hover: #B5322A; --pressed-bg: #4A6080; --hover-tint: rgba(255,255,255,.08);
    --header-bg: #111A29; --inverse-bg: #2A3850; --stage-bg: #0F1623;
    --court-bg: #0B111C; --court-shadow: rgba(0,0,0,.5); --court-edge: #3A4A66;
  }
}
