/* Platform-wide accessibility primitives.
   Audit found: no lang attribute on any layout, no skip links, and
   focus-visible implemented on exactly four owner-shell rules while 1243
   view-level focus styles used :focus (which fires on mouse click too). */

/* Skip link — visually hidden until it takes keyboard focus. */
.skip-link {
  position: absolute;
  left: 0.5rem;
  top: -3rem;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  padding: 0.625rem 1.125rem;
  border-radius: 0.5rem;
  background: var(--owner-surface, #ffffff);
  color: var(--owner-text, #0f172a);
  border: 1px solid var(--owner-border-strong, #cbd5e1);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
  font-size: 0.875rem;
  font-weight: 650;
  text-decoration: none;
  transition: top 0.15s ease-out;
}

.skip-link:focus-visible,
.skip-link:focus {
  top: 0.5rem;
}

/* One keyboard focus ring for every interactive element that does not
   already define its own. :focus-visible keeps it off mouse clicks. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 2px solid var(--owner-accent, #0C7A78);
  outline-offset: 2px;
  border-radius: 0.25rem;
}

/* Anything that removed the native outline must still show the ring. */
.focus\:outline-none:focus-visible,
[class*="focus:outline-none"]:focus-visible {
  outline: 2px solid var(--owner-accent, #0C7A78) !important;
  outline-offset: 2px;
}

/* A target that receives focus from a skip link should not draw a ring
   around the whole page region, but must still be focusable. */
main:focus,
main:focus-visible,
[role="main"]:focus {
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  .skip-link { transition: none; }
}
