/* Accessibility additions (a11y.js, docs/accessibility.md). */

.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* "Skip to content": hidden until the keyboard reaches it. */
.skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 1000; transform: translateY(-200%);
  padding: 8px 16px; border-radius: 8px; background: var(--surface); color: var(--accent-ink);
  box-shadow: var(--shadow); font-weight: 600; text-decoration: none;
}
.skip-link:focus { transform: none; outline: 2px solid var(--accent-ink); outline-offset: 2px; }

/* Fields that drop the browser's outline still show where focus is. */
.compose-win .line input:focus-visible, .compose-win .line select:focus-visible,
.compose-win .editor:focus-visible, .picker > input:focus-visible,
.criteria .crit input:focus-visible, .sig-name:focus-visible, .sig-edit:focus-visible {
  outline: 2px solid var(--accent-ink); outline-offset: -2px;
}
.search:has(input:focus-visible) { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
.grid:focus-visible, main:focus-visible, main h1:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
main:focus:not(:focus-visible), main h1:focus:not(:focus-visible) { outline: 0; }

/* White on the Updates orange was 3.1:1; this is 5:1. */
.cat-updates .cat-new { background: #B45309; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; scroll-behavior: auto !important; }
}
