/* Shared touch controls. Desktop layout and native hidden states are preserved. */
.mobile-disclosure { margin: 0; padding: 0; border: 0; }
.mobile-disclosure > summary { display: none; }
@media (min-width: 801px) { .mobile-disclosure, .mobile-disclosure > .mobile-disclosure-body { display: contents; } }
@media (max-width: 800px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  :where(main, section, article, header, footer, form, fieldset) { min-width: 0; }
  :where(button, input, select, textarea, summary, a) { touch-action: manipulation; }
  :where(button, [role="button"], summary, .btn, .button, .primary, .secondary, .subtle, .text-button, .icon-button) { min-height: 44px; }
  :where(button, [role="button"], .icon-button) { min-width: 44px; }
  :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) { box-sizing: border-box; min-width: 0; max-width: 100%; min-height: 44px; font-size: 16px; }
  :where(button, a, summary):focus-visible { outline: 3px solid #3981bf; outline-offset: 3px; }
  .mobile-disclosure { margin: 12px 0; border: 1px solid #cbd8df; border-radius: 12px; background: #fff; color: #263d4c; }
  .mobile-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 14px; font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; }
  .mobile-disclosure > summary::-webkit-details-marker { display: none; }
  .mobile-disclosure > summary::after { content: "+"; font-size: 20px; flex: none; }
  .mobile-disclosure[open] > summary::after { content: "−"; }
  .mobile-disclosure > .mobile-disclosure-body { padding: 0 12px 12px; min-width: 0; }
  .mobile-disclosure > .mobile-disclosure-body > :first-child { margin-top: 0; }
  dialog { max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); overflow: auto; overscroll-behavior: contain; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
