/* Semantic palette. Keep literal colors here, not in component rules. */
:root {
  --page: #f5f7f8;
  --surface: #ffffff;
  --surface-elevated: #ffffff;
  --text-primary: #223b30;
  --text-secondary: #425e4e;
  --text-muted: #536e5f;
  --border: #cddbd3;
  --control-border: #758b7e;
  --input-surface: #ffffff;
  --primary: #106b4c;
  --primary-hover: #085338;
  --on-primary: #ffffff;
  --focus: #06734f;
  --success: #176542;
  --success-surface: #eaf7ef;
  --warning: #755016;
  --warning-surface: #fff5df;
  --danger: #9c382f;
  --danger-surface: #fff0ed;
  --information: #305e89;
  --information-surface: #edf4fc;
  --visit: #73518e;
  --visit-surface: #f5effa;
  --overlay: #0c2018b8;
  --shadow: #0c291921;
  --row-hover: #f0f6f2;
  --selected: #e6f3ec;
  --selected-text: #105c3b;
  --calendar-outside: #f7faf8;
  --calendar-today: #106b4c;
  --disabled-surface: #edf1ee;
  --disabled-text: #66776d;
  color-scheme: light;
  color: var(--text-primary);
  background: var(--page);
}
:root[data-theme="dark"] {
  --page: #101b15;
  --surface: #19281f;
  --surface-elevated: #213429;
  --text-primary: #e4f0e8;
  --text-secondary: #c1d4c8;
  --text-muted: #a5c0b0;
  --border: #395346;
  --control-border: #708e7c;
  --input-surface: #13231a;
  --primary: #68d9a6;
  --primary-hover: #92eac0;
  --on-primary: #082c1b;
  --focus: #80efba;
  --success: #8ee5b7;
  --success-surface: #173d2b;
  --warning: #f2d18b;
  --warning-surface: #40341c;
  --danger: #ffb8ac;
  --danger-surface: #472926;
  --information: #afd6ff;
  --information-surface: #20394f;
  --visit: #dcc0f4;
  --visit-surface: #3b2b4a;
  --overlay: #030b07d6;
  --shadow: #00000066;
  --row-hover: #253e2f;
  --selected: #244b35;
  --selected-text: #b0f2cd;
  --calendar-outside: #14221a;
  --calendar-today: #68d9a6;
  --disabled-surface: #24352b;
  --disabled-text: #a2b3a8;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]):not([data-theme="dark"]) {
    --page: #101b15;
    --surface: #19281f;
    --surface-elevated: #213429;
    --text-primary: #e4f0e8;
    --text-secondary: #c1d4c8;
    --text-muted: #a5c0b0;
    --border: #395346;
    --control-border: #708e7c;
    --input-surface: #13231a;
    --primary: #68d9a6;
    --primary-hover: #92eac0;
    --on-primary: #082c1b;
    --focus: #80efba;
    --success: #8ee5b7;
    --success-surface: #173d2b;
    --warning: #f2d18b;
    --warning-surface: #40341c;
    --danger: #ffb8ac;
    --danger-surface: #472926;
    --information: #afd6ff;
    --information-surface: #20394f;
    --visit: #dcc0f4;
    --visit-surface: #3b2b4a;
    --overlay: #030b07d6;
    --shadow: #00000066;
    --row-hover: #253e2f;
    --selected: #244b35;
    --selected-text: #b0f2cd;
    --calendar-outside: #14221a;
    --calendar-today: #68d9a6;
    --disabled-surface: #24352b;
    --disabled-text: #a2b3a8;
    color-scheme: dark;
  }
}
@media print {
  :root,
  :root[data-theme="dark"],
  :root[data-theme="light"] {
    --page: #f5f7f8;
    --surface: #ffffff;
    --surface-elevated: #ffffff;
    --text-primary: #223b30;
    --text-secondary: #425e4e;
    --text-muted: #536e5f;
    --border: #cddbd3;
    --control-border: #758b7e;
    --input-surface: #ffffff;
    --primary: #106b4c;
    --primary-hover: #085338;
    --on-primary: #ffffff;
    --focus: #06734f;
    --success: #176542;
    --success-surface: #eaf7ef;
    --warning: #755016;
    --warning-surface: #fff5df;
    --danger: #9c382f;
    --danger-surface: #fff0ed;
    --information: #305e89;
    --information-surface: #edf4fc;
    --visit: #73518e;
    --visit-surface: #f5effa;
    --overlay: #0c2018b8;
    --shadow: #0c291921;
    --row-hover: #f0f6f2;
    --selected: #e6f3ec;
    --selected-text: #105c3b;
    --calendar-outside: #f7faf8;
    --calendar-today: #106b4c;
    --disabled-surface: #edf1ee;
    --disabled-text: #66776d;
    --page: #ffffff;
    color-scheme: light;
  }
}
