/**
 * Responsividade mobile — ClinicPro2 (complementa Tabler/Bootstrap)
 */

html {
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

@supports (overflow: clip) {
  body {
    overflow-x: clip;
  }
}

.page {
  min-height: 100vh;
  min-height: 100dvh;
}

/* Conteúdo longo (URLs, JSON em código) não rebenta layout */
.page-body code,
.card-body code {
  word-break: break-word;
  overflow-wrap: anywhere;
}

.page-title {
  word-break: break-word;
}

/* Barra lateral acima do backdrop em ecrãs pequenos */
@media (max-width: 991.98px) {
  .page > .navbar.navbar-vertical {
    position: relative;
    z-index: 1030;
  }

  .navbar-vertical .navbar-toggler {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.5rem;
    touch-action: manipulation;
  }

  .navbar-vertical .nav-link {
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    touch-action: manipulation;
  }

  .page-body .container-xl,
  .page-header .container-xl,
  .footer .container-xl {
    padding-left: max(0.75rem, env(safe-area-inset-left));
    padding-right: max(0.75rem, env(safe-area-inset-right));
  }
}

/* Backdrop: visibilidade controlada por JS + .is-visible */
.mobile-nav-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1020;
  background: rgba(15, 23, 42, 0.45);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.mobile-nav-backdrop.is-visible {
  display: block;
}

body.mobile-nav-open {
  overflow: hidden;
  overscroll-behavior: none;
}

/* Rodapé: respeitar home indicator (iPhone) */
.footer {
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
}

/* Tabelas futuras: scroll horizontal sem partir a página */
.table-responsive {
  -webkit-overflow-scrolling: touch;
}

/* Cartões em grelha: respiro em ecrãs estreitos */
@media (max-width: 575.98px) {
  .row-cards {
    --tblr-gutter-x: 0.75rem;
  }
}

/* Autocomplete paciente (Financeiro): lista sob o campo, não sobre o seguinte */
.finance-patient-combo {
  position: relative;
  z-index: 1040;
}

.finance-patient-combo__panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 0.25rem;
  z-index: 1090;
  max-height: 240px;
  overflow-x: hidden;
  overflow-y: auto;
  display: none;
  background-color: var(--tblr-bg-surface, #fff);
  border: 1px solid var(--tblr-border-color, rgba(98, 105, 118, 0.16));
  border-radius: var(--tblr-border-radius, 0.375rem);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
}

.finance-patient-combo__panel .list-group-item {
  background-color: var(--tblr-bg-surface, #fff);
}

.finance-patient-combo__panel .list-group-item:hover,
.finance-patient-combo__panel .list-group-item:focus {
  background-color: var(--tblr-bg-surface-secondary, rgba(132, 139, 148, 0.08));
}

.card-body .finance-patient-combo {
  overflow: visible;
}
