/* Maré — os tokens vêm do diagnostico.html: eles já viram esta identidade. */
:root{
  --fundo:#0C333B;
  --fundo-2:#0A2A31;
  --areia:#F3E5C8;
  --creme:#FCF8EF;
  --sol:#F5B301;
  --agua:#57BFB0;
  --agua-fraca:#1D5560;
  --erro:#E8734A;
  --r:18px;
  --display:ui-rounded,"SF Pro Rounded","Hiragino Maru Gothic ProN",system-ui,sans-serif;
  --corpo:ui-sans-serif,-apple-system,system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  background:var(--fundo);
  color:var(--creme);
  font-family:var(--corpo);
  font-size:19px;
  line-height:1.5;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
}

/* A maré: o único indicador de progresso. Sem percentagens, sem contagens. */
#mar{position:fixed;left:0;right:0;bottom:0;height:0;z-index:0;pointer-events:none;transition:height .7s cubic-bezier(.3,.9,.3,1)}
#mar .agua{position:absolute;left:0;right:0;top:12px;bottom:0;background:linear-gradient(180deg,var(--agua-fraca),#123f49)}
#mar svg{position:absolute;left:0;top:0;width:200%;height:22px;display:block;animation:desliza 9s linear infinite}
@keyframes desliza{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.barco{position:absolute;top:-9px;width:34px;height:29px;animation:boia 4s ease-in-out infinite}
/* A regra da onda (#mar svg) apanharia este svg e esmagava-o: repõe-se aqui. */
.barco svg{position:static;width:34px;height:29px;animation:none}
@keyframes boia{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@media (prefers-reduced-motion:reduce){.barco{animation:none}}
@media (prefers-reduced-motion:reduce){#mar svg{animation:none}#mar{transition:none}}

.palco{position:relative;z-index:1;max-width:660px;margin:0 auto;padding:28px 22px 120px;min-height:100%;display:flex;flex-direction:column;justify-content:center}
.palco.topo{justify-content:flex-start;padding-top:34px}

h1{font-family:var(--display);font-weight:800;font-size:clamp(38px,9vw,58px);line-height:.98;letter-spacing:-.02em;margin:0 0 14px}
h2{font-family:var(--display);font-weight:700;font-size:clamp(24px,5.5vw,32px);line-height:1.15;margin:0 0 18px;letter-spacing:-.01em}
h3{font-family:var(--display);font-weight:700;font-size:20px;margin:0 0 10px}
p{margin:0 0 16px}
.sub{color:#A8C8CC;font-size:17px}
.etiqueta{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--sol);margin-bottom:10px}
.pergunta{font-family:var(--display);font-weight:700;font-size:clamp(23px,5.4vw,30px);line-height:1.25;margin:0 0 8px;letter-spacing:-.01em}
.enunciado{background:rgba(255,255,255,.05);border-left:3px solid var(--agua);border-radius:8px;padding:14px 16px;margin:0 0 20px;font-size:17px;color:#DCEFF0}

/* Alvos de toque nunca abaixo de 48px — iPad, dedos, pressa. */
.op{display:block;width:100%;min-height:56px;text-align:left;background:rgba(255,255,255,.06);color:var(--creme);border:2px solid rgba(255,255,255,.09);border-radius:var(--r);padding:16px 18px;margin:0 0 10px;font:inherit;font-size:19px;cursor:pointer;transition:transform .12s,background .12s,border-color .12s}
.op:hover{background:rgba(255,255,255,.11)}
.op:active{transform:scale(.985)}
.op.escolhida{border-color:var(--agua);background:rgba(87,191,176,.14)}
.op:focus-visible,button:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid var(--sol);outline-offset:2px}
.op.ni{background:transparent;border-style:dashed;border-color:rgba(255,255,255,.22);color:#9FBFC4;font-size:17px;margin-top:14px;transition:border-color .6s,color .6s}
.op.ni.acorda{border-color:var(--sol);color:var(--areia)}

.acao{font-family:var(--display);font-weight:700;background:var(--sol);color:#1A1200;border:0;border-radius:999px;min-height:56px;padding:16px 30px;font-size:20px;cursor:pointer;transition:transform .12s}
.acao:active{transform:scale(.97)}
.acao[disabled]{opacity:.35;cursor:default}
.acao.calma{background:transparent;color:#A8C8CC;font-weight:600;font-size:17px;padding:14px 6px;min-height:48px}
.acao.agua{background:var(--agua);color:#08272D}

textarea{width:100%;min-height:230px;background:var(--creme);color:#12333A;border:0;border-radius:var(--r);padding:18px;font:inherit;font-size:19px;line-height:1.6;resize:vertical}
input[type=text],input[type=number],input[type=password]{width:100%;min-height:56px;background:var(--creme);color:#12333A;border:0;border-radius:var(--r);padding:14px 18px;font:inherit;font-size:19px}
.contador{font-family:var(--mono);font-size:13px;color:#8FB3B8;margin:8px 2px 20px}
.rodape{margin-top:26px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}

.cartao{background:var(--creme);color:#12333A;border-radius:var(--r);padding:22px;margin:0 0 16px}
.cartao h2,.cartao h3{color:#0C333B}
.selo{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;background:var(--agua);color:#08272D;padding:6px 12px;border-radius:999px;margin-bottom:16px}

.fade{animation:sobe .4s ease both}
@keyframes sobe{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fade{animation:none}}

/* Consola: 1/3, 2/3, 3/3 — estado visível, sem ninguém ter de o dizer. */
.serie{display:flex;gap:8px;align-items:center;margin:0 0 18px}
.serie i{display:block;width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.25)}
.serie i.feito{background:var(--sol);border-color:var(--sol)}
.serie span{font-family:var(--mono);font-size:13px;color:#8FB3B8;letter-spacing:.08em}

.minutos{font-family:var(--display);font-weight:800;font-size:clamp(44px,11vw,68px);line-height:1;color:var(--sol);margin:0 0 6px}

/* Foto */
.foto-alvo{display:flex;align-items:center;justify-content:center;min-height:190px;border:2px dashed rgba(255,255,255,.25);border-radius:var(--r);color:#9FBFC4;margin:0 0 16px;overflow:hidden}
.foto-alvo img{max-width:100%;max-height:280px;display:block;border-radius:12px}
input[type=file]{display:none}
label.acao{display:inline-flex;align-items:center;justify-content:center}

/* Dashboard do pai */
.grelha{display:grid;grid-template-columns:1fr;gap:10px}
.linha{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:10px 12px;background:rgba(255,255,255,.05);border-radius:12px}
.linha .nome{font-size:16px}
.linha .p1{color:var(--sol)}
.niveis{display:flex;gap:4px}
.niveis i{width:16px;height:16px;border-radius:4px;background:rgba(255,255,255,.12)}
.niveis i.on{background:var(--agua)}
/* «Caiu a zero» não é nível 5 de erro: os quadrados ficam vazios, com o aviso
   só na moldura. */
.niveis i.zero{background:rgba(232,115,74,.16);border:1px solid var(--erro)}
.tabela{width:100%;border-collapse:collapse;font-size:15px}
.tabela th,.tabela td{text-align:left;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.08)}
.tabela th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#5A7C82}
.frases li{margin-bottom:10px}
.aviso{color:var(--erro)}
.rever{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.rever button{flex:1 1 30%;min-height:64px}
/* A foto nunca empurra os botões para fora do ecrã: 10 fotos em 60 segundos
   só se consegue sem scroll nenhum. */
.foto-grande{width:100%;max-height:52vh;object-fit:contain;border-radius:var(--r);display:block;margin:0 0 14px;background:#0A2A31}
