/* Modales bloqueantes de firma del panel.
 *
 * El card limita su altura al viewport dinámico, la región central es la única
 * que se desplaza y el footer queda como hermano no encogible. Así el botón de
 * firma no depende de `position: fixed` dentro de un ancestro con overflow, una
 * combinación que Safari iOS y Chromium desplazan junto con el contenido.
 */

body:has(#modal-mandatory-notice.active),
body:has(#modal-vacation-sheet.active) {
  overflow: hidden;
}

.panel-blocking-modal {
  display: flex;
  flex-direction: column;
  max-height: min(calc(100vh - 48px), 1100px);
  max-height: min(calc(100dvh - 48px), 1100px);
  overflow: hidden;
  overflow-x: hidden;
  overflow-y: hidden;
}

.panel-blocking-modal__header,
.panel-blocking-modal__footer {
  flex: 0 0 auto;
}

.panel-blocking-modal__form {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.panel-blocking-modal__scroll-region {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-right: 4px;
}

.panel-blocking-modal__footer.mandatory-notice-footer {
  position: static;
  inset: auto;
  margin: 16px -32px -32px;
  padding: 18px 32px calc(18px + env(safe-area-inset-bottom));
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  box-shadow: none;
}

@media (max-width: 768px) {
  .panel-blocking-modal.mandatory-notice-modal {
    max-height: calc(100vh - 80px);
    max-height: calc(100dvh - 80px);
  }

  .panel-blocking-modal__form.mandatory-notice-form {
    padding-bottom: 0;
  }

  .panel-blocking-modal__footer.mandatory-notice-footer {
    position: static;
    inset: auto;
    margin: 14px -32px -32px;
    padding: 14px 32px calc(14px + env(safe-area-inset-bottom));
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: none;
  }
}
