/* Shared accessibility helpers (loaded by every layout).
   - visible keyboard focus on div/span "buttons" upgraded by a11y.js
   - a small shared "delete" icon-button so red-on-red hover bugs can't recur
   - respects prefers-reduced-motion */
[role="button"][tabindex]:not(button):not(a) { cursor: pointer; }
[role="button"][tabindex]:not(button):not(a):focus-visible {
  outline: 2.5px solid var(--primary, #2563eb);
  outline-offset: 2px;
}
.accordion-header:focus-visible { outline-offset: -3px; border-radius: inherit; }

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

/* Touch targets: keep the visual size, but give small icon buttons a 44px
   invisible hit area on touch devices (WCAG 2.5.5 / 2.5.8). */
@media (pointer: coarse) {
  .social-circle-btn, .icon-btn.sm, .font-size-ctrl button,
  .ws-act-icon-btn, .reqi-act-icon-btn, .udb-bookmark-btn, .udb-video-icon-btn,
  .video-del-btn, .hp-menu-remove, .modal-close, .editor-modal-close,
  .cert-file-item .gm-del { position: relative; }
  .yt-delete-btn { position: absolute; }
  .social-circle-btn::after, .icon-btn.sm::after, .font-size-ctrl button::after,
  .ws-act-icon-btn::after, .reqi-act-icon-btn::after, .udb-bookmark-btn::after, .udb-video-icon-btn::after,
  .video-del-btn::after, .hp-menu-remove::after, .modal-close::after, .editor-modal-close::after,
  .yt-delete-btn::after, .cert-file-item .gm-del::after {
    content: ''; position: absolute; top: 50%; left: 50%;
    width: max(44px, 100%); height: max(44px, 100%);
    transform: translate(-50%, -50%);
  }
}

button:disabled.is-submitting, input[type="submit"]:disabled.is-submitting { opacity: 0.65; cursor: progress; }
