/* Screen-reader-only: visually hidden, still announced by assistive tech.
   Kept in a stylesheet (not an inline style="") so it survives the CSP's
   default-src fallback for style-src-attr — see backlog.md #58. */
.sr-only {
  position: absolute;
  left: -9999px;
}

/* Error text color, kept in a stylesheet (not an inline style="") so it
   survives the CSP's default-src fallback for style-src-attr — same reason
   as .sr-only above, see backlog.md #70/#58 and issue #387. */
.form-error-text {
  color: var(--pico-del-color);
}

/* Zero out a form's default margin, kept in a stylesheet (not an inline
   style="") so it survives the CSP's default-src fallback for style-src —
   same reason as .sr-only above, see issue #391. */
.form-no-margin {
  margin: 0;
}

/* Skip-to-content link for the staff ops layout (pico.min.css branch),
   same visually-hidden-until-focused pattern as .tw-skip-link in site.css
   for the public layout — see issue #398. */
.ops-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--pico-background-color);
  color: var(--pico-color);
  padding: 0.7rem 1.2rem;
  border-radius: 0 0 8px 0;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}
.ops-skip-link:focus {
  left: 0;
}
