/* Shared semantic authority for PHP, Twig and standalone error surfaces. */
/* Keep centered layouts stationary when page length adds/removes the scrollbar. */
html { scrollbar-gutter: stable; }
@supports (scrollbar-gutter: stable) {
  /* Bootstrap's native-scrollbar compensation would reserve the space twice. */
  body.modal-open { padding-right: 0 !important; }
}
@supports not (scrollbar-gutter: stable) {
  html { overflow-y: scroll; }
}

:root {
  --er-font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --er-font-display: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  --er-font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --er-space-1: 0.25rem;
  --er-space-2: 0.5rem;
  --er-space-3: 0.75rem;
  --er-space-4: 1rem;
  --er-space-6: 1.5rem;
  --er-space-8: 2rem;
  --er-space-12: 3rem;
  --er-type-small: 0.875rem;
  --er-type-body: 1rem;
  --er-radius-sm: 0.375rem;
  --er-radius-md: 0.5rem;
  --er-target: 2.75rem;
  --er-focus-width: 0.1875rem;
  --er-focus-offset: 0.1875rem;
  --er-control-radius: var(--er-radius-md);
  --er-control-type: var(--er-type-small);
  --er-control-padding-block: 0.625rem;
  --er-control-padding-inline: var(--er-space-3);
  /* Studio presentation identity; report severity and scoring retain their semantic roles. */
  --er-studio-canvas: light-dark(#f6f4ef, #14191f);
  --er-studio-text: light-dark(#191b20, #eef1f9);
  --er-studio-muted: light-dark(#526073, #aebaca);
  --er-studio-line: light-dark(#d9dde5, #354252);
  --er-studio-control-border: light-dark(#8290a8, #8593aa);
  --er-studio-accent: light-dark(#2948e8, #91a4ff);
  --er-studio-action: light-dark(#2948e8, #455de2);
  --er-studio-action-hover: light-dark(#2038bb, #394ece);
  --er-studio-tint: light-dark(#e9edff, #252f4e);
  --er-studio-input: light-dark(#ffffff, #1b222c);
  --er-studio-signal: light-dark(#27946e, #6dcea7);
  --er-studio-light-cobalt: light-dark(#c4d0ff, #26335c);
  --er-studio-light-teal: light-dark(#b5ebdf, #1a413a);
}

:root,
[data-bs-theme="light"] {
  color-scheme: light;
  --er-canvas: #f2f6f5;
  --er-surface: #ffffff;
  --er-surface-raised: #f7faf9;
  --er-surface-muted: #edf4f2;
  --er-border: #d5e0dd;
  --er-border-strong: #80918d;
  --er-text: #10231f;
  --er-text-secondary: #526662;
  --er-accent: #15745f;
  --er-accent-rgb: 21, 116, 95;
  --er-accent-hover-rgb: 15, 91, 74;
  --er-accent-hover: #0f5b4a;
  --er-accent-soft: #e3f3ed;
  --er-action: #126652;
  --er-action-hover: #0d5142;
  --er-on-action: #ffffff;
  --er-danger: #a9342b;
  --er-danger-soft: #fff0ee;
  --er-warning: #80540f;
  --er-warning-soft: #fff5df;
  --er-success: #0f735b;
  --er-success-soft: #e7f6f0;
  --er-shadow: 0 1px 2px rgba(14, 57, 48, 0.06);
}

/* System appearance remains usable when the preference script is unavailable. */
@media (prefers-color-scheme: dark) {
  :root:not([data-bs-theme]) {
    color-scheme: dark;
    --er-canvas: #081411;
    --er-surface: #10201d;
    --er-surface-raised: #172a26;
    --er-surface-muted: #1b312c;
    --er-border: #2c443f;
    --er-border-strong: #71847f;
    --er-text: #edf7f4;
    --er-text-secondary: #afc0bc;
    --er-accent: #76d9b8;
    --er-accent-rgb: 118, 217, 184;
    --er-accent-hover-rgb: 154, 231, 206;
    --er-accent-hover: #9ae7ce;
    --er-accent-soft: #173c32;
    --er-action: #58c9a3;
    --er-action-hover: #78dab9;
    --er-on-action: #071713;
    --er-danger: #ffaaa3;
    --er-danger-soft: #3b211f;
    --er-warning: #f2c66e;
    --er-warning-soft: #382d1b;
    --er-success: #76d9b8;
    --er-success-soft: #173c32;
    --er-shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
  }
}

[data-bs-theme="dark"] {
  color-scheme: dark;
  --er-canvas: #081411;
  --er-surface: #10201d;
  --er-surface-raised: #172a26;
  --er-surface-muted: #1b312c;
  --er-border: #2c443f;
  --er-border-strong: #71847f;
  --er-text: #edf7f4;
  --er-text-secondary: #afc0bc;
  --er-accent: #76d9b8;
  --er-accent-rgb: 118, 217, 184;
  --er-accent-hover-rgb: 154, 231, 206;
  --er-accent-hover: #9ae7ce;
  --er-accent-soft: #173c32;
  --er-action: #58c9a3;
  --er-action-hover: #78dab9;
  --er-on-action: #071713;
  --er-danger: #ffaaa3;
  --er-danger-soft: #3b211f;
  --er-warning: #f2c66e;
  --er-warning-soft: #382d1b;
  --er-success: #76d9b8;
  --er-success-soft: #173c32;
  --er-shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
}

:root,
[data-bs-theme] {
  --bs-body-color: var(--er-text);
  --bs-body-bg: var(--er-canvas);
  --bs-link-color: var(--er-accent);
  --bs-link-color-rgb: var(--er-accent-rgb);
  --bs-link-hover-color: var(--er-accent-hover);
  --bs-link-hover-color-rgb: var(--er-accent-hover-rgb);
  --bs-border-color: var(--er-border);
}

@media (forced-colors: active) {
  :root,
  [data-bs-theme] {
    --er-canvas: Canvas;
    --er-surface: Canvas;
    --er-surface-raised: Canvas;
    --er-surface-muted: Canvas;
    --er-text: CanvasText;
    --er-text-secondary: CanvasText;
    --er-border: ButtonBorder;
    --er-border-strong: ButtonBorder;
    --er-accent: LinkText;
    --er-accent-hover: LinkText;
    --er-accent-soft: Canvas;
    --er-action: Canvas;
    --er-action-hover: Canvas;
    --er-on-action: ButtonText;
    --er-danger: CanvasText;
    --er-danger-soft: Canvas;
    --er-warning: CanvasText;
    --er-warning-soft: Canvas;
    --er-success: CanvasText;
    --er-success-soft: Canvas;
  }
}
