/* Base móvil transversal para ventanas creadas desde HTML, módulos y SweetAlert. */
@media (max-width: 768px) {
  :root { --dio-mobile-gap: 8px; --dio-mobile-radius: 20px; }

  .modal-overlay,
  .premium-modal-overlay,
  .st-modal-overlay,
  [class*="modal-overlay"] {
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain;
  }

  .modal-overlay > .modal-content,
  .premium-modal-overlay > .premium-modal-content,
  .premium-modal-overlay > .modal-content,
  .st-modal-overlay > .st-modal-content,
  .st-modal-overlay > .modal-content,
  .mobile-modal-normalized {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    margin: 0 auto !important;
    border-radius: var(--dio-mobile-radius) !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
  }

  .modal-content input:not([type="checkbox"]):not([type="radio"]),
  .modal-content select,
  .modal-content textarea,
  .premium-modal-content input:not([type="checkbox"]):not([type="radio"]),
  .premium-modal-content select,
  .premium-modal-content textarea,
  .st-modal-content input:not([type="checkbox"]):not([type="radio"]),
  .st-modal-content select,
  .st-modal-content textarea {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 16px !important; /* evita zoom automático en iPhone */
  }

  .modal-content button,
  .premium-modal-content button,
  .st-modal-content button,
  .swal2-popup button {
    max-width: 100%;
    min-height: 42px;
    touch-action: manipulation;
  }

  .modal-content img,
  .premium-modal-content img,
  .st-modal-content img {
    max-width: 100%;
    height: auto;
  }

  .modal-content table,
  .premium-modal-content table,
  .st-modal-content table {
    max-width: 100%;
  }

  .modal-content :is([class*="form-grid"], [class*="fields-grid"], .grid-2, .grid-3),
  .premium-modal-content :is([class*="form-grid"], [class*="fields-grid"], .grid-2, .grid-3),
  .st-modal-content :is([class*="form-grid"], [class*="fields-grid"], .grid-2, .grid-3) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .modal-content :is([class*="modal-actions"], [class*="modal-footer"], [class*="actions-row"]),
  .premium-modal-content :is([class*="modal-actions"], [class*="modal-footer"], [class*="actions-row"]),
  .st-modal-content :is([class*="modal-actions"], [class*="modal-footer"], [class*="actions-row"]) {
    max-width: 100% !important;
    flex-wrap: wrap !important;
    gap: var(--dio-mobile-gap) !important;
  }

  .modal-content :is(.btn-close-modal, [class*="modal-close"], [aria-label="Cerrar"]),
  .premium-modal-content :is(.btn-close-modal, [class*="modal-close"], [aria-label="Cerrar"]),
  .st-modal-content :is(.btn-close-modal, [class*="modal-close"], [aria-label="Cerrar"]) {
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
  }

  .modal-content :is(.table-responsive, [class*="table-wrap"], [class*="tabla-wrap"], [style*="overflow-x"]),
  .premium-modal-content :is(.table-responsive, [class*="table-wrap"], [class*="tabla-wrap"]),
  .st-modal-content :is(.table-responsive, [class*="table-wrap"], [class*="tabla-wrap"]) {
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .swal2-container {
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
  }

  .swal2-popup {
    width: calc(100vw - 16px) !important;
    max-width: 520px !important;
    max-height: calc(100dvh - 16px) !important;
    padding: 16px !important;
    border-radius: 20px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
  }

  .swal2-title { padding-inline: 4px !important; font-size: 1.12rem !important; line-height: 1.25 !important; }
  .swal2-html-container { margin: 10px 0 0 !important; padding: 0 2px 4px !important; overflow-x: hidden !important; }
  .swal2-actions { width: 100% !important; margin: 14px 0 0 !important; gap: 8px !important; }
  .swal2-actions button { flex: 1 1 120px !important; margin: 0 !important; }
  .swal2-input, .swal2-select, .swal2-textarea { width: 100% !important; margin: 6px 0 !important; box-sizing: border-box !important; font-size: 16px !important; }

}

@media (max-width: 600px) {
  .swal2-popup.cita-share-picker {
    width: calc(100vw - 28px) !important;
    padding: 24px 18px 18px !important;
    border-radius: 24px !important;
  }

  .cita-share-picker #_cita_btn_pdf,
  .cita-share-picker #_cita_btn_img {
    width: 100%;
    min-height: 52px;
    justify-content: center;
  }

  .cita-share-picker .swal2-html-container > div {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 390px) {
  .modal-overlay > .modal-content,
  .premium-modal-overlay > .premium-modal-content,
  .st-modal-overlay > .st-modal-content,
  .mobile-modal-normalized { border-radius: 17px !important; }

  .swal2-popup { padding: 13px !important; border-radius: 17px !important; }
}
