/* Telas de acesso e de resultado. Carrega DEPOIS de legal.css, que ja traz
   as variaveis, a moldura e a tipografia. Aqui so entram os componentes
   que essas duas paginas usam. */

/* ---------- formulario ---------- */
.campo{display:block;margin:0 0 1.4rem}
.campo span{display:block;font-family:var(--sans);font-weight:600;font-size:.9rem;
color:var(--ink);margin-bottom:.45rem}
.campo input{width:100%;font-family:var(--serif);font-size:1rem;color:var(--ink);
background:#fff;border:1px solid var(--hair);border-radius:10px;padding:.85rem 1rem;
transition:border-color .18s ease,box-shadow .18s ease}
.campo input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #FBF3DF}

/* Campo do honeypot. Fora da tela em vez de display:none: alguns bots
   ignoram campos escondidos com display:none, mas preenchem estes. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.botao{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);
font-weight:600;font-size:.98rem;color:var(--navy);background:var(--gold);
border:none;border-radius:10px;padding:.9rem 1.6rem;cursor:pointer;text-decoration:none;
transition:transform .16s ease,filter .16s ease}
.botao:hover{filter:brightness(1.06)}
.botao:active{transform:translateY(1px)}
.botao[disabled]{opacity:.55;cursor:default;filter:none;transform:none}

.aviso{border-radius:10px;padding:.9rem 1.1rem;font-size:.94rem;margin:1.4rem 0 0}
.aviso.ok{background:#FBF3DF;border:1px solid #E3C77F;color:var(--ink)}
.aviso.erro{background:#FDECEC;border:1px solid #E9B4B4;color:#7A2020}
.aviso[hidden]{display:none}

/* ---------- espera da geracao ---------- */
.espera{text-align:center;padding:3rem 0}
.espera .barra{height:3px;background:var(--hair);border-radius:2px;overflow:hidden;
max-width:280px;margin:1.6rem auto 0}
.espera .barra i{display:block;height:100%;width:40%;background:var(--gold);
border-radius:2px;animation:desliza 1.4s ease-in-out infinite}
@keyframes desliza{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}

/* Quem pediu menos movimento ve a barra parada, nunca ve a tela vazia. */
@media (prefers-reduced-motion:reduce){
  .espera .barra i{animation:none;width:100%}
}

/* ---------- mapa das cinco camadas ---------- */
.mapa{list-style:none;padding:0;margin:2rem 0 0;border-top:1px solid var(--hair)}
.mapa li{display:grid;grid-template-columns:auto 1fr;gap:0 1rem;align-items:start;
padding:1.15rem 0;border-bottom:1px solid var(--hair)}
.mapa .selo{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;
text-transform:uppercase;padding:.32rem .55rem;border-radius:99px;white-space:nowrap;
border:1px solid;margin-top:.15rem}
.selo.sustenta{color:#1F6B3F;border-color:#A8D5BC;background:#EDF7F1}
.selo.atencao {color:#8A6212;border-color:#E3C77F;background:#FBF3DF}
.selo.fragil  {color:#8B2727;border-color:#E9B4B4;background:#FDECEC}
.mapa h3{font-family:var(--sans);font-weight:600;font-size:1.02rem;margin:0 0 .25rem;
color:var(--ink);text-transform:capitalize}
.mapa p{margin:0;font-size:.97rem}

.destaque{background:#fff;border:1px solid var(--hair);border-left:3px solid var(--gold);
border-radius:12px;padding:1.3rem 1.5rem;margin:2rem 0}
.destaque .rotulo{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;
text-transform:uppercase;color:var(--gold-ink);margin:0 0 .5rem}
.destaque h3{font-family:var(--sans);font-weight:600;font-size:1.08rem;margin:0 0 .5rem;color:var(--ink)}
.destaque p:last-child{margin-bottom:0}

.passo{counter-reset:none}
.passo .num{font-family:var(--mono);font-size:.72rem;color:var(--gold-ink);
letter-spacing:.1em;margin:0 0 .4rem}
.fonte{font-family:var(--mono);font-size:.72rem;color:var(--ink-mid);
border-top:1px dashed var(--hair);padding-top:.6rem;margin-top:.9rem}

.acoes{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2.4rem}

@media print{
  .top,.acoes,.back{display:none}
  body{background:#fff}
}

/* No celular, 240px de coluna de texto ao lado do selo fica apertado
   demais para uma leitura de duas linhas. Empilha: selo em cima, texto
   embaixo, usando a largura toda. */
@media (max-width:520px){
  .mapa li{grid-template-columns:1fr;gap:.55rem 0}
  .mapa .selo{justify-self:start;margin-top:0}
}
