:root {
  --cor-primaria: #1b5e3f;
  --cor-primaria-escura: #14512f;
  --cor-primaria-suave: #e8f5ee;
  --cor-texto: #1a1a1a;
  --cor-texto-suave: #5b6763;
  --cor-fundo: #f2f4f3;
  --cor-superficie: #ffffff;
  --cor-borda: #e2e6e4;
  --cor-erro: #b3261e;
  --cor-erro-fundo: #fdedec;
  --raio: 16px;
  --raio-controle: 12px;
  --sombra: 0 1px 3px rgba(0, 0, 0, 0.06);
  --sombra-elevada: 0 8px 24px rgba(0, 0, 0, 0.12);
  --fonte: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--fonte);
  background: var(--cor-fundo);
  color: var(--cor-texto);
  font-size: 16px;
  line-height: 1.4;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h2 {
  font-size: 1.375rem;
  font-weight: 500;
  letter-spacing: -0.01em;
}

h3 {
  font-size: 1.05rem;
  font-weight: 500;
}

button {
  font-family: inherit;
}

a {
  color: var(--cor-primaria);
}

/* iOS dá zoom automático ao focar campo com font-size < 16px — trava aqui
   pra qualquer input/select/textarea do app, mesmo os que não estão dentro
   de .campo (ex.: selects soltos em tabelas/filtros). */
input,
select,
textarea {
  font-size: 16px;
}

/* input[type=date] tem uma largura intrínseca própria (os "segmentos"
   dia/mês/ano do controle nativo, mais evidente no iOS) que pode estourar
   o container mesmo com width:100% — o Safari desenha o controle nativo
   (-webkit-appearance) ignorando a largura do box em alguns casos, daí
   appearance:none pra tirar esse desenho padrão e deixar o box CSS mandar.
   min-width:0 destrava o encolhimento caso algum ancestral seja flex/grid. */
input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
