/*
 * Shared accessibility-only styles.
 *
 * These rules intentionally do not alter the resting visual design. Visible
 * changes are limited to keyboard focus, user-selected accessibility modes,
 * and the skip link while it has focus.
 */
.rs-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.rs-skip-link {
  position: fixed;
  z-index: 2147483647;
  inset-block-start: 0.75rem;
  inset-inline-start: 0.75rem;
  max-width: calc(100vw - 1.5rem);
  padding: 0.75rem 1rem;
  border: 2px solid CanvasText;
  border-radius: 0.25rem;
  background: Canvas;
  color: CanvasText;
  font: 700 1rem/1.25 system-ui, sans-serif;
  text-decoration: none;
  transform: translateY(calc(-100% - 1rem));
}

.rs-skip-link:focus,
.rs-skip-link:focus-visible {
  transform: translateY(0);
}

:where(
  a,
  button,
  input,
  select,
  textarea,
  summary,
  [contenteditable="true"],
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: 3px solid CanvasText;
  outline-offset: 3px;
}

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

@media (forced-colors: active) {
  :where(button, [role="button"], input, select, textarea, summary) {
    forced-color-adjust: auto;
  }

  :where([aria-current], [aria-selected="true"], [aria-pressed="true"], [aria-checked="true"]) {
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }
}

@media print {
  .rs-skip-link,
  .rs-live-region {
    display: none !important;
  }
}
