/* Generated from tokens/*.json by build/build.mjs — do not edit. */
/* Theme-independent scale, typography, category colours and composites. */
:root {
  --hd-color-lime: #dafa68;
  --hd-color-coral: #ffa38e;
  --hd-color-aqua: #a4e5ed;
  --hd-color-lilac: #c3b3ff;
  --hd-color-on-color: #1b2020;
  --hd-font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hd-font-family-mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace;
  --hd-font-size-caption: 0.75rem;
  --hd-font-size-small: 0.875rem;
  --hd-font-size-body: 1rem;
  --hd-font-size-lead: 1.125rem;
  --hd-font-size-title: 1.25rem;
  --hd-font-size-heading: 1.5rem;
  --hd-font-size-heading-large: clamp(1.6rem, 1.3rem + 0.9vw, 2.25rem);
  --hd-font-size-display: clamp(2rem, 1.4rem + 1.6vw, 3.1rem);
  --hd-font-size-display-large: clamp(3.3rem, 2.2rem + 3.2vw, 5.7rem);
  --hd-font-weight-regular: 400;
  --hd-font-weight-semibold: 600;
  --hd-font-weight-bold: 700;
  --hd-line-height-display: 1.05;
  --hd-line-height-heading: 1.15;
  --hd-line-height-snug: 1.3;
  --hd-line-height-body: 1.6;
  --hd-letter-spacing-tighter: -0.065em;
  --hd-letter-spacing-tight: -0.04em;
  --hd-letter-spacing-wide: 0.09em;
  --hd-space-1: 0.25rem;
  --hd-space-2: 0.5rem;
  --hd-space-3: 0.75rem;
  --hd-space-4: 1rem;
  --hd-space-5: 1.25rem;
  --hd-space-6: 1.5rem;
  --hd-space-8: 2rem;
  --hd-space-12: 3rem;
  --hd-space-16: 4rem;
  --hd-radius-small: 0.375rem;
  --hd-radius-medium: 0.75rem;
  --hd-radius-large: 1.25rem;
  --hd-radius-round: 999px;
  --hd-border-width: 1px;
  --hd-focus-width: 2px;
  --hd-focus-offset: 3px;
  --hd-control-height: 2.75rem;
  --hd-control-height-compact: 2.25rem;
  --hd-z-base: 0;
  --hd-z-raised: 10;
  --hd-z-sticky: 100;
  --hd-z-overlay: 200;
  --hd-z-dialog: 300;
  --hd-z-toast: 400;
  --hd-breakpoint-narrow: 38rem;
  --hd-breakpoint-medium: 52rem;
  --hd-breakpoint-wide: 68rem;
  --hd-container-content: 68rem;
  --hd-container-narrow: 45rem;
  --hd-container-wide: 80rem;
  --hd-container-gutter: clamp(1.25rem, 4vw, 2.5rem);
  --hd-measure-prose: 38rem;
  --hd-measure-wide: 56rem;
  --hd-duration-fast: 120ms;
  --hd-duration-base: 200ms;
  --hd-duration-slow: 320ms;
  --hd-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --hd-easing-enter: cubic-bezier(0, 0, 0.2, 1);
  --hd-easing-exit: cubic-bezier(0.4, 0, 1, 1);
}

/* Dark is the default when no attribute or preference applies. A nested explicit theme resets all semantic roles. */
:root,
.hd-theme[data-theme="dark"] {
  --hd-color-scheme: dark;
  --hd-color-background: #181b1a;
  --hd-color-surface: #242826;
  --hd-color-text: #f4f4ed;
  --hd-color-text-muted: #b4bbb5;
  --hd-color-accent: #c3b3ff;
  --hd-color-on-accent: #1b2020;
  --hd-color-border: #46504b;
  --hd-color-control-border: #8b978e;
  --hd-color-focus: #c3b3ff;
  --hd-color-disabled: #3d443f;
  --hd-color-success: #b4e19b;
  --hd-color-success-surface: #26372b;
  --hd-color-success-border: #5d795f;
  --hd-color-warning: #f2d586;
  --hd-color-warning-surface: #393222;
  --hd-color-warning-border: #89794e;
  --hd-color-danger: #ffb4a1;
  --hd-color-danger-surface: #3f2824;
  --hd-color-danger-border: #97685e;
  --hd-color-danger-action: #a3362c;
  --hd-color-on-danger-action: #ffffff;
  --hd-color-info: #a4e5ed;
  --hd-color-info-surface: #184045;
  --hd-color-info-border: #3d8f99;
  --hd-elevation-1: 0 1px 2px #00000066;
  --hd-elevation-2: 0 4px 12px #00000099;
  --hd-elevation-3: 0 12px 32px #00000099;
  --hd-color-risk-above: #ffb4a1;
  --hd-color-risk-above-surface: #3f2824;
  --hd-color-risk-above-border: #97685e;
  --hd-color-risk-below: #b4bbb5;
  --hd-color-risk-below-surface: #242826;
  --hd-color-risk-below-border: #8b978e;
  --hd-color-risk-marker: #f2d586;
  --hd-color-lab-low: #a4e5ed;
  --hd-color-lab-low-border: #3d8f99;
  --hd-color-lab-high: #ffb4a1;
  --hd-color-lab-high-border: #97685e;
  --hd-color-imputed: #b4bbb5;
  --hd-color-reliability-weakest: #f2d586;
  --hd-color-reliability-weakest-surface: #393222;
  --hd-color-reliability-weakest-border: #89794e;
  --hd-color-chart-axis: #b4bbb5;
  --hd-color-chart-grid: #46504b;
  --hd-color-chart-ideal: #8b978e;
  --hd-color-chart-track: #3d443f;
  --hd-color-chart-series-1: #dafa68;
  --hd-color-chart-series-2: #ffa38e;
  --hd-color-chart-series-3: #a4e5ed;
  --hd-color-chart-series-4: #c3b3ff;
  --hd-color-chart-pre: #b4bbb5;
  --hd-color-chart-post: #c3b3ff;
  --hd-color-chart-positive: #ffb4a1;
  --hd-color-chart-negative: #a4e5ed;
  --hd-color-chart-neutral: #b4bbb5;
}

/* Explicit light theme. Colored panels use light roles for controls placed inside them. */
:root[data-theme="light"],
.hd-theme[data-theme="light"],
.hd-on-color,
.hd-panel.hd-panel--lime,
.hd-panel.hd-panel--coral,
.hd-panel.hd-panel--aqua,
.hd-panel.hd-panel--lilac {
  --hd-color-scheme: light;
  --hd-color-background: #f6f5f0;
  --hd-color-surface: #fffefa;
  --hd-color-text: #1b2020;
  --hd-color-text-muted: #55605a;
  --hd-color-accent: #5b35b1;
  --hd-color-on-accent: #ffffff;
  --hd-color-border: #d2d8d0;
  --hd-color-control-border: #6a756d;
  --hd-color-focus: #5b35b1;
  --hd-color-disabled: #dde1d9;
  --hd-color-success: #286044;
  --hd-color-success-surface: #e6f0e7;
  --hd-color-success-border: #9cbaa4;
  --hd-color-warning: #785114;
  --hd-color-warning-surface: #fff0ca;
  --hd-color-warning-border: #cab177;
  --hd-color-danger: #973c32;
  --hd-color-danger-surface: #ffe7df;
  --hd-color-danger-border: #c59b90;
  --hd-color-danger-action: #a3362c;
  --hd-color-on-danger-action: #ffffff;
  --hd-color-info: #166872;
  --hd-color-info-surface: #e0f4f6;
  --hd-color-info-border: #83cad3;
  --hd-elevation-1: 0 1px 2px #1b202014;
  --hd-elevation-2: 0 4px 12px #1b202024;
  --hd-elevation-3: 0 12px 32px #1b202024;
  --hd-color-risk-above: #973c32;
  --hd-color-risk-above-surface: #ffe7df;
  --hd-color-risk-above-border: #c59b90;
  --hd-color-risk-below: #55605a;
  --hd-color-risk-below-surface: #fffefa;
  --hd-color-risk-below-border: #6a756d;
  --hd-color-risk-marker: #89794e;
  --hd-color-lab-low: #166872;
  --hd-color-lab-low-border: #3d8f99;
  --hd-color-lab-high: #973c32;
  --hd-color-lab-high-border: #973c32;
  --hd-color-imputed: #55605a;
  --hd-color-reliability-weakest: #785114;
  --hd-color-reliability-weakest-surface: #fff0ca;
  --hd-color-reliability-weakest-border: #cab177;
  --hd-color-chart-axis: #55605a;
  --hd-color-chart-grid: #d2d8d0;
  --hd-color-chart-ideal: #6a756d;
  --hd-color-chart-track: #dde1d9;
  --hd-color-chart-series-1: #799905;
  --hd-color-chart-series-2: #d76d56;
  --hd-color-chart-series-3: #166872;
  --hd-color-chart-series-4: #5b35b1;
  --hd-color-chart-pre: #55605a;
  --hd-color-chart-post: #5b35b1;
  --hd-color-chart-positive: #973c32;
  --hd-color-chart-negative: #166872;
  --hd-color-chart-neutral: #55605a;
}

/* Follow the operating system until a theme is chosen explicitly; an explicit data-theme always wins. */
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --hd-color-scheme: light;
    --hd-color-background: #f6f5f0;
    --hd-color-surface: #fffefa;
    --hd-color-text: #1b2020;
    --hd-color-text-muted: #55605a;
    --hd-color-accent: #5b35b1;
    --hd-color-on-accent: #ffffff;
    --hd-color-border: #d2d8d0;
    --hd-color-control-border: #6a756d;
    --hd-color-focus: #5b35b1;
    --hd-color-disabled: #dde1d9;
    --hd-color-success: #286044;
    --hd-color-success-surface: #e6f0e7;
    --hd-color-success-border: #9cbaa4;
    --hd-color-warning: #785114;
    --hd-color-warning-surface: #fff0ca;
    --hd-color-warning-border: #cab177;
    --hd-color-danger: #973c32;
    --hd-color-danger-surface: #ffe7df;
    --hd-color-danger-border: #c59b90;
    --hd-color-danger-action: #a3362c;
    --hd-color-on-danger-action: #ffffff;
    --hd-color-info: #166872;
    --hd-color-info-surface: #e0f4f6;
    --hd-color-info-border: #83cad3;
    --hd-elevation-1: 0 1px 2px #1b202014;
    --hd-elevation-2: 0 4px 12px #1b202024;
    --hd-elevation-3: 0 12px 32px #1b202024;
    --hd-color-risk-above: #973c32;
    --hd-color-risk-above-surface: #ffe7df;
    --hd-color-risk-above-border: #c59b90;
    --hd-color-risk-below: #55605a;
    --hd-color-risk-below-surface: #fffefa;
    --hd-color-risk-below-border: #6a756d;
    --hd-color-risk-marker: #89794e;
    --hd-color-lab-low: #166872;
    --hd-color-lab-low-border: #3d8f99;
    --hd-color-lab-high: #973c32;
    --hd-color-lab-high-border: #973c32;
    --hd-color-imputed: #55605a;
    --hd-color-reliability-weakest: #785114;
    --hd-color-reliability-weakest-surface: #fff0ca;
    --hd-color-reliability-weakest-border: #cab177;
    --hd-color-chart-axis: #55605a;
    --hd-color-chart-grid: #d2d8d0;
    --hd-color-chart-ideal: #6a756d;
    --hd-color-chart-track: #dde1d9;
    --hd-color-chart-series-1: #799905;
    --hd-color-chart-series-2: #d76d56;
    --hd-color-chart-series-3: #166872;
    --hd-color-chart-series-4: #5b35b1;
    --hd-color-chart-pre: #55605a;
    --hd-color-chart-post: #5b35b1;
    --hd-color-chart-positive: #973c32;
    --hd-color-chart-negative: #166872;
    --hd-color-chart-neutral: #55605a;
  }
}

/* Stronger roles retain contrast on every saturated category fill. Custom properties inherit, so the scope must sit on the element carrying the fill: hd-on-color for any element, plus the colored panel modifiers. */
.hd-on-color,
.hd-panel.hd-panel--lime,
.hd-panel.hd-panel--coral,
.hd-panel.hd-panel--aqua,
.hd-panel.hd-panel--lilac {
  --hd-color-text: #1b2020;
  --hd-color-text-muted: #3d4941;
  --hd-color-accent: #4b258f;
  --hd-color-control-border: #55605a;
  --hd-color-focus: #4b258f;
  --hd-color-border: #55605a;
}

/* A reduced-motion preference disables shared transitions. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --hd-duration-fast: 0ms;
    --hd-duration-base: 0ms;
    --hd-duration-slow: 0ms;
  }
}

/* Paper: white surfaces, ink text, no shadows, whatever theme the screen had: the root selectors match the specificity of the explicit and the system theme, so print wins by coming later. */
@media print {
  :root,
  :root:not([data-theme]),
  :root[data-theme],
  .hd-theme[data-theme] {
    --hd-color-scheme: light;
    --hd-color-background: #ffffff;
    --hd-color-surface: #ffffff;
    --hd-color-text: #1b2020;
    --hd-color-text-muted: #55605a;
    --hd-color-accent: #1b2020;
    --hd-color-on-accent: #ffffff;
    --hd-color-border: #8b978e;
    --hd-color-control-border: #6a756d;
    --hd-color-focus: #1b2020;
    --hd-color-disabled: #dde1d9;
    --hd-color-success: #286044;
    --hd-color-success-surface: #e6f0e7;
    --hd-color-success-border: #9cbaa4;
    --hd-color-warning: #785114;
    --hd-color-warning-surface: #fff0ca;
    --hd-color-warning-border: #cab177;
    --hd-color-danger: #973c32;
    --hd-color-danger-surface: #ffe7df;
    --hd-color-danger-border: #c59b90;
    --hd-color-danger-action: #a3362c;
    --hd-color-on-danger-action: #ffffff;
    --hd-color-info: #166872;
    --hd-color-info-surface: #e0f4f6;
    --hd-color-info-border: #83cad3;
    --hd-elevation-1: none;
    --hd-elevation-2: none;
    --hd-elevation-3: none;
    --hd-color-risk-above: #973c32;
    --hd-color-risk-above-surface: #ffe7df;
    --hd-color-risk-above-border: #c59b90;
    --hd-color-risk-below: #55605a;
    --hd-color-risk-below-surface: #fffefa;
    --hd-color-risk-below-border: #6a756d;
    --hd-color-risk-marker: #89794e;
    --hd-color-lab-low: #166872;
    --hd-color-lab-low-border: #3d8f99;
    --hd-color-lab-high: #973c32;
    --hd-color-lab-high-border: #973c32;
    --hd-color-imputed: #55605a;
    --hd-color-reliability-weakest: #785114;
    --hd-color-reliability-weakest-surface: #fff0ca;
    --hd-color-reliability-weakest-border: #cab177;
    --hd-color-chart-axis: #55605a;
    --hd-color-chart-grid: #d2d8d0;
    --hd-color-chart-ideal: #6a756d;
    --hd-color-chart-track: #dde1d9;
    --hd-color-chart-series-1: #799905;
    --hd-color-chart-series-2: #d76d56;
    --hd-color-chart-series-3: #166872;
    --hd-color-chart-series-4: #5b35b1;
    --hd-color-chart-pre: #55605a;
    --hd-color-chart-post: #5b35b1;
    --hd-color-chart-positive: #973c32;
    --hd-color-chart-negative: #166872;
    --hd-color-chart-neutral: #55605a;
  }
}

/* Recompute composite tokens at each scope rather than inheriting root values. */
:root,
.hd-theme[data-theme],
.hd-on-color,
.hd-panel.hd-panel--lime,
.hd-panel.hd-panel--coral,
.hd-panel.hd-panel--aqua,
.hd-panel.hd-panel--lilac {
  --hd-border: var(--hd-border-width) solid var(--hd-color-border);
}
