/*
  Rede Vigore Fit — constituicao visual (v1, escopo Fase 1: tela de CPF)
  Paleta unica: branco, off-white, cinza-texto, cinza-divisor, bordo Vigore.
  NENHUMA outra cor. A cor de sinaleira (feature futura, tom verde) nunca
  aparece aqui — este arquivo e guardado por teste automatizado (ver
  tests/test_app.py::test_no_green_in_css).
*/
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600&family=Montserrat:wght@400;500;600;700&display=swap');

:root {
  --cor-fundo: #FFFFFF;
  --cor-fundo-alt: #FAFAF7;
  --cor-texto: #1A1A1A;
  --cor-texto-secundario: #6B6B6B;
  --cor-divisor: #D4D4D4;
  --cor-bordo: #8B1A1A;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  background-color: var(--cor-fundo);
  color: var(--cor-texto);
  font-family: 'Montserrat', sans-serif;
}

.page {
  max-width: 480px;
  margin: 0 auto;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 32px 24px;
}

/* Cabecalho de marca */
.brand-header {
  text-align: center;
  margin-bottom: 40px;
}

.brand-name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cor-texto);
  margin: 0 0 16px 0;
}

.brand-divider {
  width: 64px;
  height: 2px;
  background-color: var(--cor-bordo);
  margin: 0 auto;
}

/* Conteudo */
.content {
  flex: 1;
  text-align: center;
}

.section-title {
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: 24px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cor-texto);
  margin: 0 0 16px 0;
}

.instruction {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: var(--cor-texto-secundario);
  margin: 0 0 32px 0;
}

/* Formulario */
.cpf-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: left;
}

.field-label {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cor-texto-secundario);
  margin-bottom: 8px;
  display: block;
}

.cpf-input {
  width: 100%;
  padding: 16px;
  font-family: 'Montserrat', sans-serif;
  font-size: 18px;
  color: var(--cor-texto);
  background-color: var(--cor-fundo-alt);
  border: 1px solid var(--cor-divisor);
  border-radius: 6px;
  min-height: 52px;
}

.cpf-input:focus {
  outline: none;
  border-color: var(--cor-bordo);
}

.consent-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: var(--cor-texto-secundario);
  line-height: 1.4;
}

.consent-label input[type="checkbox"] {
  margin-top: 3px;
  min-width: 18px;
  min-height: 18px;
  accent-color: var(--cor-bordo);
}

.btn-primary {
  width: 100%;
  min-height: 52px;
  padding: 16px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #FFFFFF;
  background-color: var(--cor-bordo);
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

.btn-primary:active {
  opacity: 0.9;
}

/* Alerta de erro (CPF invalido / falta consentimento).
   Usa o proprio bordo da marca — nao existe "vermelho de erro" separado na
   constituicao visual, e verde de sinaleira aqui e proibido. */
.alerta {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: var(--cor-bordo);
  background-color: var(--cor-fundo-alt);
  border-left: 3px solid var(--cor-bordo);
  padding: 12px 14px;
  margin: 0 0 24px 0;
  text-align: left;
}

/* Cartao de confirmacao de identidade (Fase 2) */
.card-identidade {
  background-color: var(--cor-fundo-alt);
  border: 1px solid var(--cor-divisor);
  border-radius: 6px;
  padding: 20px;
  margin-bottom: 28px;
  text-align: left;
}

.ident-nome {
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: 19px;
  line-height: 1.3;
  color: var(--cor-texto);
  margin: 0 0 14px 0;
}

.ident-dados {
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid var(--cor-divisor);
}

.ident-linha {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.ident-linha:last-child {
  margin-bottom: 0;
}

.ident-dados dt {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cor-texto-secundario);
}

.ident-dados dd {
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: var(--cor-texto);
  margin: 0;
  text-align: right;
}

.ajuda {
  margin-top: 24px;
  margin-bottom: 0;
  font-size: 13px;
}

.link-discreto {
  color: var(--cor-bordo);
  text-decoration: underline;
}

/* Rodape */
.footer {
  margin-top: 48px;
  text-align: center;
}

.footer-divider {
  width: 100%;
  height: 1px;
  background-color: var(--cor-divisor);
  margin-bottom: 16px;
}

.motto {
  font-family: 'Cinzel', serif;
  font-weight: 400;
  font-size: 8pt;
  letter-spacing: 0.4em;
  color: var(--cor-texto-secundario);
  text-transform: uppercase;
  margin: 0;
}
