/* v223 — satu scrollbar untuk seluruh modal anggaran. */
body.admin-modal-layer-open,
body:has(#modal:not(.hidden) .ab-modal),
body:has(#foundationModal:not(.hidden) .ab-modal) {
  overflow:hidden !important;
}

:is(#modal,#foundationModal):has(.ab-modal) {
  overflow:hidden !important;
  overscroll-behavior:none !important;
  touch-action:pan-y;
}

:is(#modal,#foundationModal) .modal-card:has(.ab-modal) {
  max-height:calc(100dvh - 28px) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:auto !important;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  box-shadow:0 14px 38px rgba(16,42,35,.16) !important;
}

#modal .modal-card:has(.ab-modal) #modalBody,
#foundationModal .modal-card:has(.ab-modal) #foundationModalBody,
:is(#modal,#foundationModal) .ab-modal,
:is(#modal,#foundationModal) .ab-modal form,
:is(#modal,#foundationModal) .ab-modal .ab-form-section {
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  overscroll-behavior:auto !important;
  touch-action:auto;
}

/* Menang atas kelas sementara dari helper keyboard/form mobile. */
:is(#modal,#foundationModal):has(.ab-modal).portal-mobile-form-overlay,
:is(#modal,#foundationModal):has(.ab-modal).portal-keyboard-surface,
html.portal-mobile-keyboard-open :is(#modal,#foundationModal):has(.ab-modal) {
  height:100dvh !important;
  max-height:100dvh !important;
  overflow:hidden !important;
}

:is(#modal,#foundationModal) .modal-card:has(.ab-modal).portal-mobile-form-dialog,
:is(#modal,#foundationModal) .modal-card:has(.ab-modal).portal-keyboard-scroll {
  overflow-x:hidden !important;
  overflow-y:auto !important;
}

#modal .modal-card:has(.ab-modal) #modalBody.portal-keyboard-scroll,
#foundationModal .modal-card:has(.ab-modal) #foundationModalBody.portal-keyboard-scroll,
:is(#modal,#foundationModal) .ab-modal .portal-mobile-scroll-region,
:is(#modal,#foundationModal) .ab-modal .portal-keyboard-scroll {
  max-height:none !important;
  overflow:visible !important;
}

:is(#modal,#foundationModal) .ab-form-actions {
  position:static !important;
  inset:auto !important;
  margin:8px -30px -30px !important;
  transform:none !important;
}

:is(#modal,#foundationModal) .ab-modal :is(.ab-form-section,.ab-line,.ab-attachment) {
  content-visibility:visible !important;
  contain:none !important;
}

:is(#modal,#foundationModal) .modal-card:has(.ab-modal),
:is(#modal,#foundationModal) .modal-card:has(.ab-modal) * {
  animation-duration:70ms !important;
  animation-delay:0ms !important;
}

:is(#modal,#foundationModal) .modal-card:has(.ab-modal) > :is(.close,.modal-close) {
  position:sticky !important;
  top:12px !important;
  right:12px !important;
  float:right;
  margin:0 0 -36px !important;
  transform:translateX(-12px) !important;
  z-index:2000 !important;
}

@media (max-width:780px) {
  :is(#modal,#foundationModal) .modal-card:has(.ab-modal) {
    max-height:94dvh !important;
  }

  :is(#modal,#foundationModal) .modal-card:has(.ab-modal) > :is(.close,.modal-close) {
    position:sticky !important;
    top:10px !important;
    right:auto !important;
    transform:translateX(0) !important;
    margin:0 0 -36px !important;
  }

  :is(#modal,#foundationModal) .ab-form-actions {
    margin:8px -17px calc(-22px - env(safe-area-inset-bottom)) !important;
  }
}
