:root {
  --cor: #ea1d2c;
  --cor-clara: #fdecee;
  --fundo: #f7f7f7;
  --texto: #3e3e3e;
  --borda: #e5e5e5;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; background: var(--fundo); color: var(--texto); }
a { color: var(--cor); text-decoration: none; }
.container { max-width: 1100px; margin: 0 auto; padding: 0 16px; }

.topo { background: #fff; border-bottom: 1px solid var(--borda); }
.topo-inner { display: flex; justify-content: space-between; align-items: center; height: 64px; }
.topo nav { display: flex; gap: 16px; align-items: center; }
.logo { font-weight: 700; font-size: 1.3rem; }

.btn { display: inline-block; background: var(--cor); color: #fff; border: 0; padding: 10px 18px; border-radius: 8px; cursor: pointer; font-size: 1rem; }
button.link { background: none; border: 0; color: var(--cor); cursor: pointer; font-size: 1rem; padding: 0; }
.inline { display: inline; }

.hero { text-align: center; padding: 48px 0; }

.caixa { background: #fff; max-width: 480px; margin: 32px auto; padding: 24px; border-radius: 12px; }
.form input { width: 100%; padding: 10px; border: 1px solid var(--borda); border-radius: 8px; font-size: 1rem; }
.form label { display: block; font-weight: 600; margin-bottom: 4px; }

.alerta { padding: 12px 16px; border-radius: 8px; margin-top: 16px; background: #e6f4ea; }
.alerta.error { background: var(--cor-clara); }

.rodape { text-align: center; padding: 32px 16px; color: #888; }
