:root{--bg:#f3f6f5;--card:#fff;--ink:#14201c;--mute:#5b6a65;--line:#d5dedb;--acc:#0f6e5c;--acc2:#e3f2ed;--warn:#b45309;--err:#b91c1c;--ok:#15803d}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;display:flex;flex-direction:column;min-height:100dvh}
.progresso{position:fixed;top:0;left:0;right:0;height:4px;background:var(--line);z-index:20}
.progresso i{display:block;height:100%;width:0;background:var(--acc)}
.topo{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 20px 6px}
.marca{font-weight:700;font-size:14px;color:var(--acc)}
.status{font-size:13px;color:var(--mute);text-align:right;max-width:62%}
.status.ok{color:var(--ok)}.status.erro{color:var(--warn);font-weight:600}
.palco{flex:1;display:flex;align-items:center;justify-content:center;padding:12px 20px 110px}
.carregando{color:var(--mute)}
.tela{width:100%;max-width:680px}
.tela.entra{animation:entra .35s ease both}
.tela.volta{animation:volta .35s ease both}
@keyframes entra{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes volta{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tela.entra,.tela.volta{animation:none}}
.secao{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--acc);margin:0 0 10px}
.num{color:var(--acc);font-weight:700;margin-right:6px}
h1{font-size:clamp(22px,4.4vw,30px);line-height:1.25;margin:0 0 14px;font-weight:600}
.ajuda{color:var(--mute);margin:-6px 0 16px;font-size:15px}
.intro p{color:var(--ink);margin:0 0 12px}
.intro .mute{color:var(--mute);font-size:15px}
input[type=text],textarea,select{width:100%;font:inherit;font-size:20px;padding:8px 2px;border:0;border-bottom:2px solid var(--line);background:transparent;color:var(--ink);border-radius:0}
textarea{min-height:120px;resize:vertical;font-size:18px;border:2px solid var(--line);border-radius:10px;padding:12px;background:#fff}
input[type=text]:focus,textarea:focus{outline:none;border-color:var(--acc)}
.opcoes{display:grid;gap:8px;margin-top:4px}
.op{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;font-size:17px;padding:11px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;min-height:52px}
.op .k{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border:1.5px solid var(--acc);border-radius:6px;font-size:13px;font-weight:700;color:var(--acc);background:#fff}
.op[aria-checked=true],.op[aria-pressed=true]{border-color:var(--acc);background:var(--acc2)}
.op[aria-checked=true] .k,.op[aria-pressed=true] .k{background:var(--acc);color:#fff}
.op:focus-visible,button:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.escala{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.escala .op{justify-content:center;font-size:20px;font-weight:700}
.escala-rot{display:flex;justify-content:space-between;font-size:14px;color:var(--mute);margin-top:6px}
.outro{margin-top:12px}
.acoes{display:flex;align-items:center;gap:14px;margin-top:22px;flex-wrap:wrap}
.dica{font-size:13px;color:var(--mute)}
button{font:inherit;font-weight:700;border-radius:10px;padding:12px 22px;border:1.5px solid var(--acc);background:var(--acc);color:#fff;cursor:pointer;min-height:48px}
button.sec{background:#fff;color:var(--acc)}
button:disabled{opacity:.5;cursor:default}
@media (prefers-reduced-motion:no-preference){button,.op{transition:background .15s,border-color .15s,transform .1s}.op:active,button:active{transform:scale(.98)}.progresso i{transition:width .4s ease}}
.erro-msg{color:var(--err);font-size:15px;margin-top:10px;min-height:1em}
.rodape{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 35%)}
.link-btn{background:#fff;color:var(--acc);font-weight:600;font-size:14px;padding:8px 14px;min-height:40px}
.setas{display:flex;gap:6px}
.seta{width:44px;height:44px;min-height:44px;padding:0;font-size:20px}
.modal{position:fixed;inset:0;background:rgba(10,20,17,.45);display:grid;place-items:center;padding:16px;z-index:30}
.caixa{background:#fff;border-radius:14px;padding:20px;max-width:520px;width:100%}
.caixa h2{margin:0 0 8px;font-size:20px}
.caixa code{display:block;word-break:break-all;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;margin:10px 0;font-size:14px}
.lista-falta{margin:10px 0 0;padding-left:20px}
.lista-falta a{color:var(--acc)}
.fim h1{font-size:clamp(24px,5vw,32px)}
