/* ============================================================================
   LPWD A11y Focus Ring — visible keyboard focus, every project (build-once)
   ----------------------------------------------------------------------------
   WHY: Nova's reset ships a global  :focus { outline: none }  with NO
   :focus-visible replacement. Result: keyboard users get NO visible focus
   marker — silently breaking the promise every "Erklärung zur Barrierefreiheit"
   page makes ("jede Funktion ist ohne Maus erreichbar, mit klar sichtbarer
   Fokus-Markierung"). This component restores it.

   LOAD ORDER (critical): append/link this AFTER nova-utilities.css (and any
   file carrying :focus{outline:none}) so it wins on source order. Element-typed
   :focus-visible selectors also beat the bare :focus on specificity.

   :focus-visible only -> mouse clicks stay ring-free; keyboard focus shows the
   ring. DUAL RING so it reads on ANY background: a brand-coloured outline for
   light surfaces + a white box-shadow halo for dark/coloured bars. Both follow
   each element's own border-radius (do NOT set border-radius here, it would
   reshape square elements on focus). Token-driven — each project's --primary
   and --white drive the colours; --ze-space-xs drives the thickness.
   ============================================================================ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible,
[role="link"]:focus-visible,
[role="tab"]:focus-visible,
[role="menuitem"]:focus-visible,
[contenteditable="true"]:focus-visible {
  /* 0.4rem fallback = the michaelis reference thickness — a project without
     --ze-space-xs must degrade to the standard ring, never to a broken calc(). */
  outline: calc(var(--ze-space-xs, 0.4rem) * 0.5) solid var(--primary);
  outline-offset: calc(var(--ze-space-xs, 0.4rem) * 0.5);
  box-shadow: 0 0 0 calc(var(--ze-space-xs, 0.4rem) * 0.5) var(--white),
              0 0 0 var(--ze-space-xs, 0.4rem) var(--primary);
}
