/*
 * Keyboard focus affordance for /admin controls (#1146, successor of #772).
 *
 * Scope: focus-visible only. See DESIGN.md §3.5.1 — this is the single
 * sanctioned exception to the project-CSS ban, and nothing but focus
 * affordances may be added here. It is NOT an upstream INSPINIA asset and is
 * deliberately absent from MANIFEST.sha256, so re-vendoring the upstream
 * bundles stays a clean overwrite.
 *
 * Why it exists: the vendored INSPINIA Bootstrap app.min.css defines
 * `.btn:focus-visible` with `box-shadow: var(--theme-btn-focus-box-shadow)`,
 * whose default is a zero-size shadow (`0 0 0 0 …`), and
 * `--theme-btn-focus-shadow-rgb` is itself malformed (a full shadow string,
 * not an RGB triple). The only visible effect is a hover-like tint, which is
 * indistinguishable from the actual hover state (WCAG 2.4.7/1.4.11 gap).
 *
 * Loaded after app.min.css; colours come from INSPINIA tokens, never new hex.
 * `--theme-blue` (#1c84c6) keeps a >=3:1 ring against both the light (#fff)
 * and dark (~#25272b) surfaces, so one rule covers both themes.
 * `outline` (not box-shadow) so the ring survives the bundle's own
 * background-color focus rules and stays visible in forced-colors mode.
 * `!important` is required to beat `.btn:focus-visible { outline: 0 }`.
 */
.btn:focus-visible,
.side-nav-link:focus-visible,
.page-link:focus-visible {
  outline: 2px solid var(--theme-blue) !important;
  outline-offset: 2px !important;
}
