/* Accessibility guardrails */
/* Keep text controls legible without focus zoom on phones, including landscape.
   This is a shared floor above compact form styles, not a restriction on pinch zoom. */
@media (max-width: 760px), (hover: none) and (pointer: coarse) {
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]),
  select,
  textarea,
  [contenteditable=""],
  [contenteditable="true"],
  [contenteditable="plaintext-only"] {
    /* Intentional override: more specific login, search and medical form rules
       must not restore small text when a control receives focus. */
    font-size: max(16px, 1rem) !important;
  }
}

.skip-link {
  position: fixed;
  z-index: 10000;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  color: #fff;
  background: #111827;
  border-radius: 8px;
  transform: translateY(-150%);
}

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

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