/* Shared interaction safeguards, loaded after feature styles. Visual tokens live in base.css. */
[hidden] { display: none !important; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--focus-color);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  inset-block-start: var(--space-sm);
  inset-inline-start: var(--space-sm);
  z-index: 10000;
  padding: var(--space-md) var(--space-lg);
  background: var(--surface);
  color: var(--fg);
  transform: translateY(calc(-100% - var(--space-lg)));
}
.skip-link:focus { transform: translateY(0); }

main { min-width: 0; }
main:focus-visible { outline-offset: -3px; }
button:disabled { cursor: default; opacity: 0.6; }

.user-form form > button,
.user-form__install-button,
.user-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.user-form select,
.info-modal__close,
.info-btn,
.filter-button,
.gallery__empty-reset,
.upload-form__choice-btn,
.category-btn,
.modal__image-nav,
.modal__heart-btn,
.close-x {
  min-height: var(--touch);
}
.info-btn,
.close-x,
.modal__image-nav,
.modal__heart-btn { min-width: var(--touch); }

.gallery__upload-fab-label { text-transform: none; letter-spacing: normal; }
.gallery__empty {
  display: grid;
  justify-items: center;
  gap: var(--space-lg);
  padding: var(--space-3xl) var(--space-lg);
  color: var(--muted);
  text-align: center;
  line-height: 1.6;
}
.gallery__empty-reset { font-size: var(--text-base); text-transform: none; }

/* Posting stays in the gallery toolbar; the footer no longer needs overlay clearance. */
.page-footer { padding-bottom: var(--space-xl); }
.page-footer__inner { line-height: 1.6; }

.info-modal__content { max-width: var(--content-max-narrow); border-radius: var(--radius-dialog); }
.info-modal__backdrop { background: rgb(51 51 51 / 40%); }

@media (max-width: 768px) {
  .page-header__nav-toggle { width: var(--touch); height: var(--touch); }
  .page-header__nav a,
  .page-header__nav-link-button { padding: var(--space-md); min-height: var(--touch); }
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  select,
  textarea { font-size: var(--text-md); }
  .modal__image-nav { margin-top: calc(var(--touch) / -2); }
  .modal__heart-form { top: calc(var(--space-md) + var(--touch) + var(--space-sm)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
  .loading__spinner { animation: none; border-top-color: var(--fg); }
  .input-blink { animation: none; outline: 2px solid var(--error); outline-offset: 3px; }
}

.listing-image-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 10rem;
  padding: var(--space-xl);
  background: var(--surface-alt);
  color: var(--muted);
  text-align: center;
}

.user-form__product-open {
  width: 100%;
  min-height: var(--touch);
  padding: var(--space-sm) 0;
  background: transparent;
  color: var(--fg);
  border-radius: 0;
  font: inherit;
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
  white-space: normal;
}
@media (max-width: 768px) {
  .upload-form__media-copy { padding-inline-end: calc(var(--touch) + var(--space-xl)); }
}

.modal__pickup-map { display: inline-block; padding-block: var(--space-sm); text-decoration: underline; }
.upload-form__optional { font-weight: 400; text-transform: none; letter-spacing: normal; color: var(--muted); }
