/* Escala fluida para diferentes resoluções de monitor */

html {
  font-size: clamp(15px, calc(12px + 0.55vmin), 21px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --page-padding: clamp(16px, 3vmin, 40px);
  --page-gap: clamp(16px, 2.5vmin, 36px);
  --container-narrow: min(94vw, 32rem);
  --container-medium: min(94vw, 48rem);
  --container-wide: min(96vw, 85rem);
  --container-full: min(98vw, 100rem);
}

body {
  overflow-x: hidden;
}

.page-shell {
  width: 100%;
  max-width: var(--container-full);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--page-padding);
  padding-right: var(--page-padding);
}

.page-shell--narrow {
  max-width: var(--container-narrow);
}

.page-shell--medium {
  max-width: var(--container-medium);
}

.page-shell--wide {
  max-width: var(--container-wide);
}

.responsive-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Botões fixos nos cantos */
.voltar,
.voltar-intranet,
.novo-botao {
  font-size: clamp(0.9rem, 1.6vmin, 1.1rem);
  padding: clamp(8px, 1.4vmin, 14px) clamp(12px, 2vmin, 24px);
}

/* Telas pequenas */
@media (max-width: 768px) {
  .voltar,
  .novo-botao,
  .voltar-intranet {
    top: 10px;
  }

  .voltar,
  .voltar-intranet {
    left: 10px;
  }

  .novo-botao {
    right: 10px;
  }
}

@media (max-width: 576px) {
  :root {
    --page-padding: 12px;
  }
}

/* Monitores grandes */
@media (min-width: 1600px) {
  html {
    font-size: clamp(16px, calc(13px + 0.4vmin), 22px);
  }

  :root {
    --container-wide: min(94vw, 90rem);
    --container-full: min(96vw, 105rem);
  }
}

@media (min-width: 2200px) {
  :root {
    --container-wide: min(88vw, 100rem);
    --container-full: min(90vw, 110rem);
  }
}

/* Telas com pouca altura — mantém legibilidade */
@media (max-height: 700px) {
  html {
    font-size: clamp(14px, calc(11px + 0.4vmin), 17px);
  }
}

/* Admin: sidebar em telas estreitas */
@media (max-width: 767.98px) {
  .admin-sidebar {
    min-height: auto !important;
    margin-bottom: 1rem;
  }

  .admin-content {
    padding: 16px !important;
  }
}
