/* Sichtbarer Tastaturfokus und Sprungmarke für alle Kundenseiten (Zugänglichkeit, 01.10.2026).
   Höhere Spezifität als die Komponentenregeln, die den Fokus nur durch eine Hintergrundfarbe zeigten. */
html body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid #1B7F4B; outline-offset: 2px; }
html body :is(.kopf, .buehne, .schrittliste, .konto-nav) :is(a, button, summary):focus-visible,
html body.kunde-start :is(a, button, input, select, textarea, summary):focus-visible { outline-color: #7CF0B2; }
html body.kunde-konto .ansicht :is(a, button, input, select, textarea, summary):focus-visible { outline-color: #1B7F4B; }
html body .konto-nav a[aria-current="page"]:focus-visible { outline-color: #1B7F4B; outline-offset: 3px; }
.sprungmarke { position: fixed; left: 12px; top: -80px; z-index: 100000; padding: 12px 18px; border-radius: 10px; background: #0B1220; color: #fff; font: 600 15px/1 system-ui, sans-serif; text-decoration: none; box-shadow: 0 8px 24px rgba(0, 0, 0, .35); transition: top .15s ease; }
.sprungmarke:focus { top: 12px; outline: 3px solid #7CF0B2; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .sprungmarke { transition: none; } }
[tabindex="-1"]:focus { outline: none; }

/* Berührflächen mindestens 44 px (Abschlussprüfung 01.10.2026); höhere Spezifität als die Komponentenregeln */
html body .sf-nehmen, html body .sf-mehr, html body .vorschau-vorschlaege button { min-height: 44px; }
html body .vorschau-vorschlaege button { padding-block: 10px; }
html body footer a, html body .fuss a { display: inline-flex; align-items: center; min-height: 44px; }
/* Sicherheitsnetz gegen sehr spezifische Komponentenregeln (Stimmenfinder, Preisumschalter) */
html body .sf-nehmen, html body .sf-mehr, html body [data-takt], html body .takt button { min-height: 46px !important; }
html body .feld input:not([type=checkbox]):not([type=radio]):not([type=range]), html body .feld select, html body .vorschau-form input { min-height: 46px; }
