:root {
  --verde: #41873d;
  --verde-escuro: #2d6529;
  --verde-claro: #e8f2e6;
  --marrom: #7b3a10;
  --creme: #f7f4ec;
  --texto: #1f2a1e;
  --texto-suave: #5b6b59;
  --borda: #dfe5dc;
  --perigo: #b3261e;
  --aviso: #c77700;
  --branco: #fff;
  --raio: 16px;
  --sombra: 0 6px 24px rgba(30, 60, 28, 0.12);
  font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color: var(--texto);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--creme); }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
h1, h2, h3 { margin: 0 0 0.4em; line-height: 1.15; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
  border: 0; border-radius: 999px; padding: 0.8em 1.5em; cursor: pointer;
  background: var(--verde); color: var(--branco); font-weight: 800; text-decoration: none;
  transition: transform 0.1s, background 0.2s;
}
.btn:active { transform: scale(0.97); }
.btn:hover { background: var(--verde-escuro); }
.btn[disabled] { opacity: 0.5; cursor: not-allowed; }
.btn.sec { background: var(--branco); color: var(--verde-escuro); box-shadow: inset 0 0 0 2px var(--verde); }
.btn.sec:hover { background: var(--verde-claro); }
.btn.perigo { background: var(--perigo); }
.btn.pequeno { padding: 0.45em 1em; font-size: 0.9em; }
.btn.whats { background: #1fa855; }

.cartao { background: var(--branco); border-radius: var(--raio); box-shadow: var(--sombra); padding: 20px; }
.campo { display: grid; gap: 6px; margin-bottom: 14px; }
.campo label { font-weight: 700; font-size: 0.92em; }
.campo input, .campo select {
  padding: 0.75em 0.9em; border: 2px solid var(--borda); border-radius: 12px; background: var(--branco); width: 100%;
}
.campo input:focus { outline: none; border-color: var(--verde); }
.erro { color: var(--perigo); font-weight: 700; }
.suave { color: var(--texto-suave); }
.oculto { display: none !important; }

.toast {
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 99;
  background: var(--texto); color: var(--branco); padding: 0.8em 1.4em; border-radius: 999px; box-shadow: var(--sombra);
}
