/* Shared by the Next.js app and every standalone department library.
   Clinical paper/plot colors are intentional pairs, never image inversion. */
:root {
  color-scheme: light;
  --ui-bg: #ffffff;
  --ui-canvas: #f3f6f8;
  --ui-surface: #ffffff;
  --ui-subtle: #edf2f5;
  --ui-hover: #e5edf2;
  --ui-text: #192c3a;
  --ui-muted: #536776;
  --ui-border: #cedae2;
  --ui-border-strong: #839bac;
  --ui-brand: #b7332b;
  --ui-brand-hover: #982820;
  --ui-brand-text: #ae2e26;
  --ui-on-accent: #ffffff;
  --ui-link: #155f7d;
  --ui-info: #155f7d;
  --ui-info-bg: #eaf3f8;
  --ui-success: #1c684e;
  --ui-success-bg: #eaf5ef;
  --ui-warning: #785313;
  --ui-warning-bg: #fff5df;
  --ui-danger: #a42e29;
  --ui-danger-bg: #fff0ee;
  --ui-purple: #67438b;
  --ui-purple-bg: #f1ebf8;
  --ui-info-solid: #176783;
  --ui-success-solid: #216d53;
  --ui-warning-solid: #795410;
  --ui-purple-solid: #67438b;
  --ui-strong: #163447;
  --ui-on-strong: #f5f9fb;
  --ui-on-strong-muted: #c5d7e2;
  --ui-strong-border: #557487;
  --ui-sidebar: #102c3f;
  --ui-sidebar-text: #f2f7fa;
  --ui-sidebar-muted: #b3c8d5;
  --ui-sidebar-active: #294c61;
  --ui-sidebar-hover: #203f53;
  --ui-sidebar-border: #3e5c70;
  --ui-focus: #bb7511;
  --ui-shadow: #102c3f;
  --ui-overlay: #08131d;
  --ui-paper: #ffffff;
  --ui-paper-ink: #1d252c;
  --ui-paper-muted: #52616b;
  --ui-paper-border: #d5b8b5;
  --ui-paper-grid: #ebcbc8;
  --ui-paper-grid-major: #d89d97;
  --ui-plot: #102b35;
  --ui-plot-text: #dbe8ed;
  --ui-plot-grid: #42616d;
  --ui-plot-wave: #ffe065;
  --ui-plot-flow: #8bddd9;
}

/* Print inherits the entire light palette, including semantic text colors. */
@media not print {
  :root[data-theme="dark"] {
    color-scheme: dark;
    --ui-bg: #101820;
    --ui-canvas: #101820;
    --ui-surface: #192630;
    --ui-subtle: #21313e;
    --ui-hover: #2b4050;
    --ui-text: #edf3f7;
    --ui-muted: #b3c3cf;
    --ui-border: #3a5060;
    --ui-border-strong: #7893a6;
    --ui-brand: #b93830;
    --ui-brand-hover: #c94237;
    --ui-brand-text: #ffaaa0;
    --ui-link: #9cdaf0;
    --ui-info: #a4d7ee;
    --ui-info-bg: #1c3849;
    --ui-success: #a5e0c2;
    --ui-success-bg: #1b3b33;
    --ui-warning: #f1cf91;
    --ui-warning-bg: #3c3221;
    --ui-danger: #ffb4aa;
    --ui-danger-bg: #442a2b;
    --ui-purple: #d6b9ef;
    --ui-purple-bg: #342d46;
    --ui-strong: #e3ebef;
    --ui-on-strong: #153346;
    --ui-on-strong-muted: #3f5b6d;
    --ui-strong-border: #829aa9;
    --ui-sidebar: #0c1e2c;
    --ui-sidebar-text: #f1f6fa;
    --ui-sidebar-muted: #b2c7d6;
    --ui-sidebar-active: #294e65;
    --ui-sidebar-hover: #203f53;
    --ui-sidebar-border: #355469;
    --ui-focus: #f4c779;
    --ui-shadow: #000000;
    --ui-paper: #e9edef;
    --ui-paper-ink: #15232d;
    --ui-paper-muted: #3d5260;
    --ui-paper-border: #8195a1;
    --ui-paper-grid: #d2b8b6;
    --ui-paper-grid-major: #b9827d;
    --ui-plot: #e3ebee;
    --ui-plot-text: #263e4b;
    --ui-plot-grid: #a9bcc7;
    --ui-plot-wave: #845100;
    --ui-plot-flow: #14645e;
  }
}

html {
  background: var(--ui-bg);
}
body {
  color: var(--ui-text);
}
::selection {
  color: var(--ui-on-accent);
  background: var(--ui-info-solid);
}
* {
  scrollbar-color: var(--ui-border-strong) var(--ui-canvas);
}
input,
textarea,
select {
  color: var(--ui-text);
  caret-color: var(--ui-brand-text);
}
input::placeholder,
textarea::placeholder {
  color: var(--ui-muted);
  opacity: 1;
}
select option {
  background: var(--ui-surface);
  color: var(--ui-text);
}
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--ui-info-solid);
}

/* The source rhythm renderer stays byte-exact; only its presentation is themed. */
.rhythm-strip.rhythm-strip {
  background: var(--ui-paper);
  border-color: var(--ui-paper-border);
}
.rhythm-strip path[stroke="#efdcd9"] {
  stroke: var(--ui-paper-grid);
}
.rhythm-strip path[stroke="#e3bcb8"] {
  stroke: var(--ui-paper-grid-major);
}
.rhythm-strip path[stroke="#243a41"] {
  stroke: var(--ui-paper-ink);
}
.rhythm-strip text {
  fill: var(--ui-paper-muted);
}

.myfd-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 8px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 10px;
  border: 1px solid var(--ui-border);
  border-radius: 8px;
  color: var(--ui-text);
  background: var(--ui-surface);
  font:
    600 13px/1.2 Arial,
    sans-serif;
  cursor: pointer;
  touch-action: manipulation;
}
.myfd-theme-toggle:hover {
  background: var(--ui-hover);
  border-color: var(--ui-border-strong);
}
.myfd-theme-toggle:focus-visible {
  outline: 3px solid var(--ui-focus);
  outline-offset: 3px;
}
.myfd-theme-toggle svg {
  width: 18px;
  height: 18px;
  flex: none;
}
.myfd-theme-dark {
  display: none;
}
:root[data-theme="dark"] .myfd-theme-light {
  display: none;
}
:root[data-theme="dark"] .myfd-theme-dark {
  display: inline;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
}
@media print {
  :root[data-theme] {
    color-scheme: light !important;
    --ui-bg: #fff;
    --ui-surface: #fff;
    --ui-text: #192c3a;
    --ui-muted: #536776;
    --ui-paper: #fff;
    --ui-paper-ink: #171717;
    --ui-plot: #fff;
    --ui-plot-text: #263e4b;
    --ui-plot-wave: #845100;
    --ui-plot-flow: #14645e;
  }
  .myfd-theme-toggle {
    display: none;
  }
}
