/* =====================================================================
   Auswahlrahmen der räumlichen Tastaturnavigation (js/keynav.js).

   outline statt border, damit sich kein Layout verschiebt; die Kontur
   folgt einem etwaigen border-radius von selbst. Ein- und Ausblenden
   laufen allein über die Farbe: .pp-keynav-sel trägt eine transparente
   Kontur samt transition, .pp-keynav-vis füllt sie mit der Akzentfarbe.
   Die Dauer (0,22 s) muss unter FADE_MS in js/keynav.js bleiben — der
   Timer dort räumt die Restklasse erst nach der Blende ab.

   Der Fallback hinter var(--pp-accent, …) ist Absicht: Der Rahmen kann
   auf Portalseiten ohne --pp-Tokens im Vorfahrenpfad auftauchen und
   soll auch dort sichtbar sein. Hell wie dunkel liegt --pp-accent auf
   dem body (prepp.css) und gewinnt dann gegen den Fallback.
   ===================================================================== */

.pp-keynav-sel {
  outline: 2px solid transparent;
  outline-offset: 3px;
  transition: outline-color 0.22s ease;
}

.pp-keynav-sel.pp-keynav-vis {
  outline-color: var(--pp-accent, #c99a4e);
}

@media (prefers-reduced-motion: reduce) {
  .pp-keynav-sel { transition: none; }
}

/* In Listen mit overflow:hidden (.pp-list, css/prepp.css) laege der um
   3 px nach aussen versetzte Rahmen unter der beschnittenen Kante — an
   Zeilen darin wandert er deshalb nach INNEN. Die Liste behaelt ihren
   border-radius-Beschnitt, der Rahmen bleibt rundum sichtbar. */
.pp-list .pp-keynav-sel,
.det-sec > .pp-keynav-sel {
  outline-offset: -3px;
}

/* Sprunglink „Zum Inhalt" (p5 #3, 13.10.2026): das erste fokussierbare
   Element der Portal-Hülle. Ohne Fokus über den oberen Rand geschoben
   (nicht display:none — dann nähme er keinen Fokus), mit Fokus oben links
   über allem. Die Maus erreicht ihn nie; er ist der Weg der Tastatur. */
.pp-skip {
  position: fixed; left: var(--pp-sp-3, 12px); top: var(--pp-sp-2, 8px); z-index: 10000;
  padding: var(--pp-sp-2, 8px) var(--pp-sp-4, 16px);
  border: 0; border-radius: 8px; cursor: pointer;
  background: var(--pp-accent, #1f6feb); color: var(--pp-accent-contrast, #fff);
  font-family: var(--pp-sans, system-ui, sans-serif); font-size: var(--pp-fs-text, 14px); font-weight: 600;
  transform: translateY(-300%);
}
.pp-skip:focus { transform: none; outline: 2px solid var(--pp-text, #1f2328); outline-offset: 2px; }

/* Die Überschrift, auf die js/keynav.js den Fokus nach einem Neuaufbau
   legt (tabindex -1): Sie ist kein Bedienelement und bekommt deshalb
   keinen Ring — der nächste Tab geht von ihr aus weiter. */
.pp-fokus-ziel:focus { outline: none; }
