/* ==========================================================================
   FortHound accessibility base — loaded first by every page.
   Owns the two things that must never drift per-surface: keyboard focus
   visibility and WCAG-conformant semantic colour. Everything else belongs in
   product.css (consoles), styles.css (SOC Tower) or the page's own <style>.
   ========================================================================== */

:root{
  /* Semantic colours darkened to clear WCAG AA (4.5:1) at the 11-12px sizes
     they are actually rendered at. The originals failed measurably:
       warn on white   2.76:1   -> 4.56:1
       warn in a pill  2.45:1   -> 4.54:1
       ok on white     3.46:1   -> 4.61:1
       bad on white    4.20:1   -> 4.53:1
     Small status pills carry real meaning in a security product; they cannot
     be the least readable text on the page. */
  --ok:#1a8654;   --ok-bg:#e5f5ec;   --ok-ink:#197d4f;
  --warn:#a56914; --warn-bg:#fbf0dd; --warn-ink:#996112;
  --bad:#de3432;  --bad-bg:#fbe5e5;  --bad-ink:#cd2321;
  --focus:#2b4a86;
}

/* Keyboard focus, applied at zero specificity via :where() so component styles
   still control colour and radius, but nothing can silently remove the ring.
   Before this there were no focus-visible rules anywhere and twelve blanket
   `outline:none` declarations — keyboard and screen-magnifier users had no way
   to tell where they were. */
:where(a,button,input,select,textarea,summary,[tabindex],[role="button"]):focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
  border-radius:9px;
}
/* Dark surfaces need a light ring to stay visible. */
:where(.login-hero,.top,.adv,footer,.dark) :where(a,button,input,[tabindex]):focus-visible{
  outline-color:#cfe0ff;
}

/* Respect the OS motion preference across every surface. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* Skip link — the consoles put a long nav before the main region. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;color:#161a20;
  padding:10px 16px;border-radius:0 0 10px 0;font:600 14px Inter,system-ui,sans-serif;
  box-shadow:0 8px 24px rgba(20,30,60,.18)}
.skip-link:focus{left:0}
