/* ==========================================================================
   Barrierefreiheit (a11y)
   Geladen nach bs5-compat.css. Alles hier ist rein additiv:
   - Basis (immer aktiv): Skip-Link, sichtbarer Tastaturfokus, forced-colors
   - Modus per <html>-Attribut (gesetzt von Js/a11y.js):
       data-a11y-contrast="high"   erhoehter Kontrast
       data-a11y-text="1|2"        groessere Schrift (x1.15 / x1.3)
       data-a11y-sr="on"           Screenreader-Modus (weniger Bewegung)
   Layout bleibt unveraendert: es werden nur Design-Tokens ueberschrieben.
   ========================================================================== */

/* ───────── Basis: Skip-Link ───────── */
.egon-skip-link {
  position: absolute;
  left: var(--space-md);
  top: -100px;
  z-index: 10000;
  padding: var(--space-xs) var(--space-md);
  background: var(--fg-base);
  color: var(--bg-base);
  border-radius: var(--radius-md, 6px);
  font-size: var(--txt-medium);
  text-decoration: none;
}
.egon-skip-link:focus,
.egon-skip-link:focus-visible {
  top: var(--space-xs);
  outline: 3px solid var(--border-interactive);
  outline-offset: 2px;
}
#egon-main:focus { outline: none; }

/* Live-Region fuer Screenreader-Ansagen (visuell unsichtbar) */
.egon-live-region {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ───────── Basis: sichtbarer Tastaturfokus ───────── */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
[role="tab"]:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--border-interactive);
  outline-offset: 2px;
}

/* Felder, deren egon.css weder Outline noch Ring zeigt (outline:none + box-shadow:none) */
.structure-redesign .st-search .form-control:focus-visible,
.customer-redesign .cu-quicksearch-input:focus-visible,
.structure-redesign ul.fancytree-container:focus-visible {
  outline: 2px solid var(--border-interactive) !important;
  outline-offset: 2px;
}

@media (forced-colors: active) {
  *:focus-visible { outline: 3px solid Highlight !important; outline-offset: 2px; }
}

/* ───────── Modus: groessere Schrift ───────── */
:root[data-a11y-text="1"] { --a11y-scale: 1.15; }
:root[data-a11y-text="2"] { --a11y-scale: 1.3; }
:root[data-a11y-text] {
  --txt-xsmall: calc(12px * var(--a11y-scale)); --lh-xsmall: calc(20px * var(--a11y-scale));
  --txt-small:  calc(13px * var(--a11y-scale)); --lh-small:  calc(22px * var(--a11y-scale));
  --txt-medium: calc(14px * var(--a11y-scale)); --lh-medium: calc(24px * var(--a11y-scale));
  --txt-large:  calc(16px * var(--a11y-scale)); --lh-large:  calc(28px * var(--a11y-scale));
  --txt-xlarge: calc(18px * var(--a11y-scale)); --lh-xlarge: calc(32px * var(--a11y-scale));
  --txt-code:   calc(12px * var(--a11y-scale)); --lh-code:   calc(20px * var(--a11y-scale));
}

/* ───────── Modus: erhoehter Kontrast ───────── */
:root[data-a11y-contrast="high"] {
  --fg-subtle:   #1F2937;
  --fg-muted:    #374151;
  --fg-disabled: #6B7280;
  --fg-error:    #9F1239;
  --fg-error-rgb: 159, 18, 57;
  --fg-interactive:       color-mix(in srgb, var(--ci-prim, #007EB1) 60%, black);
  --fg-interactive-hover: color-mix(in srgb, var(--ci-prim, #007EB1) 45%, black);
  --bg-interactive:       color-mix(in srgb, var(--ci-prim, #007EB1) 70%, black);
  --bg-interactive-hover: color-mix(in srgb, var(--ci-prim, #007EB1) 55%, black);
  --border-base:   #6B7280;
  --border-row:    #9CA3AF;
  --border-strong: #4B5563;
  --border-interactive: color-mix(in srgb, var(--ci-prim, #007EB1) 60%, black);
  --border-error:  #9F1239;
  --tag-neutral-fg: #111827;
  --tag-blue-fg:    #00415C;
  --tag-green-fg:   #14532D;
  --tag-red-fg:     #7F1D1D;
  --tag-orange-fg:  #7C2D12;
  --tag-purple-fg:  #4C1D95;
  --shadow-focus-ring: 0 0 0 2px var(--bg-base), 0 0 0 5px var(--fg-base);
}
:root[data-a11y-contrast="high"] *:focus-visible {
  outline: 3px solid var(--fg-base) !important;
  outline-offset: 2px;
}
:root[data-a11y-contrast="high"] .egon-content a:not(.btn):not([role="button"]) {
  text-decoration: underline;
}

/* ───────── Modus: Screenreader (ruhigere Oberflaeche) ───────── */
:root[data-a11y-sr="on"] *,
:root[data-a11y-sr="on"] *::before,
:root[data-a11y-sr="on"] *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}
:root[data-a11y-sr="on"] *:focus-visible {
  outline: 3px solid var(--border-interactive) !important;
  outline-offset: 2px;
}
