/* MCAB-MODAL-r1 — master cabinet modal viewport/scroll stabilization.
   Scope: only #mcab-modal; does not alter shared .k-sheet modals. */

#mcab-modal {
  align-items: center;
  justify-content: center;
  padding: clamp(10px, 2vw, 20px);
  overflow: hidden;
}

#mcab-modal .k-sheet {
  width: min(980px, calc(100vw - 40px));
  max-height: calc(100dvh - 40px);
  min-height: min(420px, calc(100dvh - 40px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--ui-radius-lg, 18px);
}

#mcab-modal .k-sheet-drag {
  display: none;
}

#mcab-modal .k-sheet-head {
  flex: 0 0 auto;
  padding: 16px 18px 12px;
}

#mcab-modal .k-sheet-title {
  font-size: 17px;
  line-height: 1.2;
}

#mcab-modal .k-sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 16px 20px max(20px, env(safe-area-inset-bottom));
}

#mcab-modal .k-sheet-body > .pf-section:first-child,
#mcab-modal .k-sheet-body > .card:first-child {
  margin-top: 0 !important;
}

#mcab-modal .k-sheet-body *,
#mcab-modal .k-sheet-body *::before,
#mcab-modal .k-sheet-body *::after {
  max-width: 100%;
  box-sizing: border-box;
}

#mcab-modal .k-sheet-body input,
#mcab-modal .k-sheet-body select,
#mcab-modal .k-sheet-body textarea {
  font-size: 16px;
}

@media (min-width: 1024px) {
  #mcab-modal .k-sheet {
    width: min(1040px, calc(100vw - 64px));
    max-height: calc(100dvh - 64px);
  }
}

@media (max-width: 640px) {
  #mcab-modal {
    align-items: flex-end;
    padding: 0;
  }

  #mcab-modal .k-sheet {
    width: 100%;
    min-height: 0;
    height: min(92dvh, calc(100dvh - env(safe-area-inset-top) - 8px));
    max-height: calc(100dvh - env(safe-area-inset-top) - 8px);
    border-radius: var(--ui-radius-lg, 18px) var(--ui-radius-lg, 18px) 0 0;
  }

  #mcab-modal .k-sheet-drag {
    display: block;
    margin-top: 8px;
  }

  #mcab-modal .k-sheet-head {
    padding: 10px 14px 10px;
    gap: 10px;
  }

  #mcab-modal .k-sheet-title {
    font-size: 16px;
  }

  #mcab-modal .k-sheet-close {
    width: 38px;
    height: 38px;
  }

  #mcab-modal .k-sheet-body {
    padding: 12px 12px max(18px, calc(12px + env(safe-area-inset-bottom)));
  }
}

@media (max-height: 560px) {
  #mcab-modal {
    padding: 6px;
  }

  #mcab-modal .k-sheet {
    min-height: 0;
    max-height: calc(100dvh - 12px);
  }

  #mcab-modal .k-sheet-head {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  #mcab-modal .k-sheet-body {
    padding-top: 10px;
  }
}
