/* aplicação: uma pergunta por tela ------------------------------- */
.aplicacao main { padding-top: clamp(2rem, 6vw, 4rem); padding-bottom: 6rem; }

.cabeca-app { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.cabeca-app .marca {
  font-family: var(--fonte-display);
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  margin: 0 0 .25rem;
}
.rotulo-app {
  font-family: var(--fonte-leitura);
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--texto-meta);
  margin: 0 0 1.25rem;
}
.progresso {
  height: 2px;
  background: var(--linha);
  margin-bottom: 1rem;
}
.progresso span {
  display: block;
  height: 100%;
  width: 4%;
  background: var(--botao);
  transition: width .3s ease;
}
.etapa {
  font-family: var(--fonte-leitura);
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--texto-meta);
  margin: 0;
}

.tela h1, .tela h2 {
  font-size: clamp(1.9rem, 5vw, 2.75rem);
  margin: 0 0 .75em;
  text-wrap: balance;
}
.tela .pre { color: var(--texto-apoio); margin-bottom: .5em; }
.tela .ajuda { color: var(--texto-meta); font-size: 1rem; margin: 0 0 1rem; }

.opcoes { display: grid; gap: .6rem; margin-bottom: 1rem; }
.opcao {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  background: var(--fundo-elevado);
  cursor: pointer;
  font-size: 1.05rem;
}
.opcao input { appearance: none; width: 1.1rem; height: 1.1rem; border-radius: 50%; border: 2px solid var(--texto-meta); margin: 0; flex: none; }
.opcao input:checked { border-color: var(--botao); background: radial-gradient(circle, var(--botao) 45%, transparent 50%); }
.opcao:has(input:checked) { border-color: var(--botao); background: var(--acao-fraca, rgb(255 72 66 / .08)); }
.opcao:has(input:focus-visible) { outline: 2px solid var(--texto); outline-offset: 2px; }

textarea, .campo input {
  width: 100%;
  font: inherit;
  font-size: 1.05rem;
  color: var(--texto);
  background: var(--fundo-elevado);
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  padding: .9rem 1rem;
}
textarea { resize: vertical; min-height: 9rem; }
textarea:focus, .campo input:focus { outline: 2px solid var(--texto); outline-offset: 2px; border-color: var(--texto-apoio); }
.campo { margin-bottom: 1rem; }
.campo label { display: block; font-family: var(--fonte-display); font-size: 1.15rem; margin-bottom: .35rem; }
.campo .opc { font-family: var(--fonte-leitura); font-size: .85rem; color: var(--texto-meta); margin-left: .4rem; }

.erro { color: var(--botao-hover); font-size: .95rem; min-height: 1.4em; margin: .5rem 0 0; }
.oculto { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.acoes { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; flex-wrap: wrap; }
.acoes .botao { min-width: 9rem; text-align: center; }
.acoes .botao:only-child { margin-left: auto; }
.botao.secundario { background: transparent; color: var(--texto); border: 1px solid var(--linha); }
.botao.secundario:hover { background: var(--fundo-elevado); transform: none; }
.botao[disabled] { opacity: .5; cursor: wait; transform: none; }
button.botao { border: 0; cursor: pointer; }
button.botao.secundario { border: 1px solid var(--linha); }

.saida .cta { margin-top: 1.5rem; }

@media (max-width: 480px) {
  .acoes { flex-direction: column-reverse; }
  .acoes .botao { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .progresso span { transition: none; } }

/* as telas não são seções da carta: sem linha e sem o respiro grande */
.aplicacao .tela, .aplicacao .tela:first-of-type { border-top: 0; padding-block: 0; }
[hidden] { display: none !important; }
