/* Diagnóstico CEPRONE — formulário por passos e relatório.
   Assenta nas variáveis do ceprone-v2.css (--amarelo-c, --indigo-c, --verde-c,
   --vermelho-c, --muted, --line, --panel) e funciona nos dois temas.

   A decisão de desenho que manda em tudo: UMA pergunta tem de se ler sem
   esforço, e a página de um passo tem de caber mais ou menos num ecrã de
   telemóvel. Vinte e duas perguntas seguidas fazem desistir; cinco páginas de
   cinco ou seis não. */

/* ---------------------------------------------------------- barra de passos */
.dg-topo{position:sticky;top:0;z-index:40;background:var(--bg);
  border-bottom:1px solid var(--line);padding:14px 0 0}
.dg-passos{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}
.dg-passos b{color:var(--txt);font-weight:700}
.dg-barra{height:4px;background:var(--line);margin-top:12px;overflow:hidden}
.dg-barra i{display:block;height:100%;background:var(--verde-c);
  transition:width .35s cubic-bezier(.4,0,.2,1)}

/* ------------------------------------------------------------------ cabeça */
.dg-cab{padding:clamp(28px,5vw,52px) 0 6px}
.dg-cab h1{font-size:clamp(26px,4.4vw,42px);line-height:1.08;letter-spacing:-.03em;margin:8px 0 0}
.dg-cab p.dg-intro{color:var(--muted);max-width:56ch;margin-top:14px;font-size:16px}

/* --------------------------------------------------------------- perguntas */
/* O <fieldset> traz moldura e espaçamento do navegador, e a <legend> corta a
   moldura ao meio. Aqui desenha-se só a risca de cima, por isso o resto sai
   todo. O `min-width:0` é a outra armadilha do fieldset: sem ele não encolhe
   dentro de uma grelha e rebenta a largura no telemóvel. */
.dg-perg{border:0;border-top:1px solid var(--line);margin:0;padding:22px 0;min-width:0}
.dg-perg:first-of-type{border-top:0;padding-top:10px}
.dg-perg > legend,.dg-perg .dg-titulo{font-size:18px;font-weight:700;line-height:1.35;
  letter-spacing:-.01em;padding:0;margin:0 0 4px;max-width:46ch}
.dg-perg .dg-ajuda{color:var(--muted);font-size:14px;margin:0 0 14px;max-width:52ch}
.dg-perg.dg-falta{border-left:3px solid var(--vermelho-c);padding-left:14px;margin-left:-17px}

.dg-opcoes{display:grid;gap:7px;margin-top:11px}
.dg-op{position:relative;display:block}
/* Escondido do olho, NÃO do teclado nem de um leitor de ecrã: 1px e
   opacidade zero, e não width:0 — um campo com largura zero é tratado
   como inexistente por algumas tecnologias de apoio e por ferramentas de
   automação. O foco continua a desenhar-se em .dg-op input:focus-visible. */
.dg-op input{position:absolute;opacity:0;width:1px;height:1px;margin:0;
  pointer-events:none}
.dg-op span{display:flex;align-items:center;gap:12px;padding:11px 15px;border-radius:11px;
  border:1.5px solid var(--line);background:var(--panel);cursor:pointer;font-size:15.5px;
  line-height:1.4;transition:border-color .12s,background .12s}
.dg-op span::before{content:"";flex:none;width:19px;height:19px;border-radius:50%;
  border:2px solid var(--line);transition:border-color .12s,box-shadow .12s}
.dg-op:hover span{border-color:var(--muted)}
.dg-op input:checked + span{border-color:var(--verde-c);background:color-mix(in srgb,var(--verde-c) 9%,transparent)}
.dg-op input:checked + span::before{border-color:var(--verde-c);box-shadow:inset 0 0 0 4px var(--verde-c)}
.dg-op input:focus-visible + span{outline:2px solid var(--indigo-c);outline-offset:2px}

/* ------------------------------------------------------------------ campos */
.dg-campos{display:grid;gap:16px;max-width:620px;margin-top:26px}
.dg-par{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.dg-campo label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.dg-campo input,.dg-campo select{width:100%;padding:13px 14px;border-radius:10px;
  border:1.5px solid var(--line);background:var(--panel);color:var(--txt);
  font:inherit;font-size:15.5px}
.dg-campo input:focus,.dg-campo select:focus{outline:2px solid var(--verde-c);
  outline-offset:1px;border-color:transparent}
.dg-campo .dg-erro{color:var(--vermelho-c);font-size:13px;margin-top:6px}
.dg-campo .dg-nota{color:var(--muted);font-size:13px;margin-top:6px}

/* ---------------------------------------------------------------- rodapé */
.dg-accoes{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:28px 0 clamp(40px,8vw,80px);border-top:1px solid var(--line);margin-top:10px}
.dg-btn{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:11px;
  font-weight:700;font-size:15.5px;border:1.5px solid transparent;cursor:pointer;
  font-family:inherit;text-decoration:none}
.dg-btn.p{background:var(--verde-c);color:#06231a}
.dg-btn.p:hover{filter:brightness(1.07);text-decoration:none}
.dg-btn.s{border-color:var(--line);color:var(--txt);background:transparent}
.dg-btn.s:hover{border-color:var(--muted);text-decoration:none}
.dg-resta{color:var(--muted);font-size:13.5px;margin-left:auto}

/* -------------------------------------------------------------- relatório */
.dg-rel-cab{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);
  align-items:start;padding:clamp(30px,5vw,60px) 0}
.dg-ref{font-family:var(--mono,ui-monospace,monospace);font-size:12px;letter-spacing:.14em;
  color:var(--muted);text-transform:uppercase}
.dg-nivel{border:1.5px solid var(--line);border-left:4px solid var(--indigo-c);
  border-radius:12px;padding:22px 24px;background:var(--panel)}
/* `max-width:none` porque o ceprone-v2.css limita a largura dos h2 para os
   títulos de secção não ficarem com linhas compridas de mais. Dentro desta
   caixa estreita esse limite partia «Fase 2 — Laboratório de 90 Dias» a meio. */
.dg-nivel h2{margin:0;font-size:22px;letter-spacing:-.02em;line-height:1.2;max-width:none}
.dg-nivel p{color:var(--muted);margin:10px 0 0;font-size:15px}
.dg-nivel .dg-fase{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:15px}

.dg-eixos{display:grid;gap:4px;margin-top:8px}
.dg-eixo{display:grid;grid-template-columns:minmax(120px,1.1fr) 3fr 54px;gap:16px;
  align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.dg-eixo .dg-nome{font-weight:700;font-size:15px}
.dg-eixo .dg-desc{color:var(--muted);font-size:13px;margin-top:2px;display:block}
.dg-eixo .dg-track{height:9px;border-radius:99px;background:var(--line);overflow:hidden}
.dg-eixo .dg-track i{display:block;height:100%;border-radius:99px}
.dg-eixo .dg-val{text-align:right;font-weight:800;font-size:18px}
.dg-v-alto{color:var(--verde-c)} .dg-f-alto{background:var(--verde-c)}
.dg-v-medio{color:var(--amarelo-c)} .dg-f-medio{background:var(--amarelo-c)}
.dg-v-baixo{color:var(--vermelho-c)} .dg-f-baixo{background:var(--vermelho-c)}

.dg-travoes{display:grid;gap:16px;margin-top:10px}
.dg-travao{border:1.5px solid var(--line);border-left:4px solid var(--vermelho-c);
  border-radius:12px;padding:20px 22px;background:var(--panel)}
.dg-travao h3{margin:0;font-size:17px;letter-spacing:-.01em}
.dg-travao .dg-eixo-nome{color:var(--muted);font-size:12.5px;margin-top:3px}
.dg-travao p{margin:12px 0 0;font-size:15px;line-height:1.55}
.dg-travao .dg-accao-rot{color:var(--verde-c);font-weight:700;font-size:13.5px;
  margin-top:16px;display:block}

@media (max-width:860px){
  .dg-rel-cab{grid-template-columns:1fr}
  .dg-eixo{grid-template-columns:1fr 46px;gap:6px 14px}
  .dg-eixo .dg-track{grid-column:1/-1;order:3}
}
@media (max-width:560px){
  .dg-par{grid-template-columns:1fr}
  .dg-resta{margin-left:0;width:100%;order:3}
  .dg-btn{flex:1;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .dg-barra i{transition:none}
}
