:root {
  --fundo: #f6f7f9;
  --cartao: #ffffff;
  --texto: #1d2330;
  --suave: #5b6475;
  --linha: #d7dbe3;
  --primaria: #2f4a8a;
  --primaria-texto: #ffffff;
  --alerta-fundo: #fdecea;
  --alerta-texto: #8a1c12;
  --faixa: #b45309;
}

@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #12151b;
    --cartao: #1b1f27;
    --texto: #e8ebf1;
    --suave: #a3abba;
    --linha: #313848;
    --primaria: #7c9be0;
    --primaria-texto: #0d1220;
    --alerta-fundo: #3a1714;
    --alerta-texto: #ffb4a8;
  }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

.faixa-ambiente {
  background: var(--faixa);
  color: #fff;
  text-align: center;
  font-weight: 600;
  padding: 6px 16px;
  letter-spacing: 0.02em;
}

.caixa {
  max-width: 420px;
  margin: 32px auto;
  padding: 24px 16px;
  background: var(--cartao);
  border: 1px solid var(--linha);
  border-radius: 12px;
}

.topo h1 { margin: 0; font-size: 1.5rem; }
.sub { margin: 0 0 24px; color: var(--suave); }

label { display: block; margin: 16px 0 6px; font-weight: 600; }

/* 16px nos campos: abaixo disso o Safari do iPhone dá zoom ao focar. */
input {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  font-size: 16px;
  color: var(--texto);
  background: var(--fundo);
  border: 1px solid var(--linha);
  border-radius: 8px;
}

/* 44px de alvo de dedo (WCAG 2.5.5). */
button {
  min-height: 44px;
  font-size: 16px;
  border-radius: 8px;
  cursor: pointer;
}

button[type="submit"] {
  width: 100%;
  margin-top: 20px;
  border: 0;
  background: var(--primaria);
  color: var(--primaria-texto);
  font-weight: 600;
}

button:disabled { opacity: 0.6; cursor: wait; }

.link {
  margin-top: 12px;
  padding: 0 4px;
  background: none;
  border: 0;
  color: var(--primaria);
  text-decoration: underline;
}

.secundario {
  margin-top: 24px;
  padding: 0 20px;
  background: none;
  border: 1px solid var(--linha);
  color: var(--texto);
}

.nota { color: var(--suave); font-size: 0.9rem; }
.aviso { font-weight: 600; }
.vazio {
  margin-top: 20px;
  padding: 20px 16px;
  border: 1px dashed var(--linha);
  border-radius: 8px;
  text-align: center;
}

.mensagem {
  margin: 20px 0 0;
  padding: 12px;
  border-radius: 8px;
  background: var(--alerta-fundo);
  color: var(--alerta-texto);
}

[hidden] { display: none !important; }

.mensagem[data-tipo="ok"] {
  background: var(--fundo);
  color: var(--texto);
  border: 1px solid var(--linha);
}
