/* V138.1 — correção global de rolagem, sem alterar dados ou regras do app. */
html {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

body,
#root,
.clinic-app,
.workspace {
  min-height: 100%;
  min-height: 100dvh;
}

body {
  overflow-x: hidden;
  overflow-y: auto;
}

.workspace,
.page-content,
.page-stack,
.panel {
  min-width: 0;
}

/* Agenda Dia/Semana: mantém a grade em uma área rolável e o cabeçalho visível. */
.calendar-panel {
  overflow: hidden !important;
}

.calendar-day .week-calendar,
.calendar-week .week-calendar,
.week-calendar {
  display: grid;
  height: min(630px, calc(100dvh - 300px));
  min-height: 360px;
  max-height: 630px !important;
  overflow-x: auto !important;
  overflow-y: scroll !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}

.calendar-corner,
.calendar-day-head {
  position: sticky !important;
  top: 0;
  z-index: 5;
}

.calendar-corner,
.calendar-hour {
  position: sticky !important;
  left: 0;
  z-index: 4;
}

.calendar-corner {
  z-index: 6;
}

/* Tabelas, odontograma e construtores largos permanecem acessíveis. */
.data-table-wrap,
.tooth-arches,
.budget-builder,
.month-calendar,
.drawer-tabs {
  overflow: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* Gavetas de pacientes: cabeçalho/abas ficam no lugar e o conteúdo rola. */
.patient-drawer {
  display: flex !important;
  flex-direction: column;
  max-height: 100dvh !important;
  overflow: hidden !important;
}

.drawer-header,
.drawer-tabs,
.drawer-actions {
  flex: 0 0 auto;
}

.drawer-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* Todos os modais: conteúdo e botões finais continuam alcançáveis. */
.modal-backdrop {
  overflow: hidden !important;
}

.modal {
  max-height: calc(100dvh - 40px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.modal-body,
.dashboard-alert-modal-body,
.dashboard-alert-modal-table-wrap {
  min-height: 0;
  overflow-x: auto;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 680px) {
  .calendar-day .week-calendar,
  .calendar-week .week-calendar,
  .week-calendar {
    height: 62dvh;
    min-height: 360px;
    max-height: 62dvh !important;
  }

  .modal {
    max-height: 94dvh !important;
  }
}

