/* MNDN Jornada v78: telas em pé (Vigilância nova e Horta comunitária) */
.v8-camada{background:#0d2522}
.v8-camada>.a76-palco,.v8-camada>.a76-ui{display:none!important}
.v8{position:absolute;left:50%;top:0;transform:translateX(-50%);height:100%;width:min(100%,calc(100dvh*.62));overflow:hidden;background:#69bff5;--u:4px;user-select:none;-webkit-user-select:none;touch-action:manipulation;font-family:"Trebuchet MS",system-ui,sans-serif;color:#fff;text-align:left}
.v8 *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* v79: aviso enquanto o servidor da horta responde (e nada de toque repetido) */
.v8.v8-salvando::after{content:'⏳ salvando…';position:absolute;left:50%;top:calc(var(--u)*17);transform:translateX(-50%);background:#0d2f2bdd;color:#fff;padding:.35em 1em;border-radius:2em;font:800 calc(var(--u)*3.4) system-ui;z-index:60;pointer-events:none;animation:v8pisca 1s infinite alternate}
.v8.v8-salvando .sheet button,.v8.v8-salvando .barra-h button{pointer-events:none;opacity:.6}
@keyframes v8pisca{from{opacity:.65}to{opacity:1}}
/* v79.1: "+1" que sobe do botão da loja e some */
.v8-sobe{position:absolute;z-index:70;transform:translate(-50%,0);font:900 calc(var(--u)*5.2) system-ui;color:#ffd34d;-webkit-text-stroke:1.5px #3a2410;text-shadow:0 2px 0 #3a2410;pointer-events:none;white-space:nowrap;animation:v8sobe 1.05s ease-out forwards}
@keyframes v8sobe{0%{opacity:0;transform:translate(-50%,6px) scale(.6)}15%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}100%{opacity:0;transform:translate(-50%,-70px) scale(1)}}
.v8 .v8-cv{position:absolute;left:0;bottom:0;display:block}
.v8 button{font:inherit;cursor:pointer;text-transform:none;letter-spacing:normal;min-height:0;min-width:0;margin:0}
.v8 h3,.v8 h4,.v8 p{color:inherit}
.comunidade-online .v8-horta-btn{display:block;width:100%;margin-top:.6em;border:0;border-radius:12px;padding:.7em 1em;background:#2fa25a;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 3px 0 #1b6b38}
.v8-ui{position:absolute;inset:0;pointer-events:none;font-size:calc(var(--u)*3.6)}
.v8-ui button,.v8-ui .clic,.v8-ui .painel,.v8-ui .sheet,.v8-ui .card{pointer-events:auto}
.v8 button{font:inherit;cursor:pointer}
.v8 .hud{position:absolute;left:0;right:0;top:0;padding:calc(var(--u)*2.4) calc(var(--u)*3) calc(var(--u)*4);background:linear-gradient(#0d2f2bee,#0d2f2b00);display:flex;align-items:center;gap:calc(var(--u)*2)}
.v8 .hud small{display:block;color:#ffd34d;font-size:.62em;letter-spacing:.12em;font-weight:900}
.v8 .hud b{font-size:1.05em;line-height:1.1}
.v8 .sair{border:0;border-radius:2em;background:#fffdf3;color:#1e4d3a;font-weight:900;padding:.45em .9em;box-shadow:0 .2em 0 #0004;white-space:nowrap}
.v8 .chip{background:#0d2f2bcc;border:2px solid #ffffff33;border-radius:2em;padding:.25em .7em;font-weight:900;white-space:nowrap}
.v8 .chip.ouro{background:#ffd34d;color:#3a2410;border-color:#b07a10}
.v8 .bandeja{position:absolute;left:0;right:0;bottom:0;height:calc(var(--u)*15);background:linear-gradient(#0d2f2b00,#0d2f2bf2 35%);display:flex;align-items:flex-end;justify-content:center;gap:calc(var(--u)*1.2);padding:0 2% calc(var(--u)*2.2);flex-wrap:wrap}
.v8 .slot{width:calc(var(--u)*8.6);height:calc(var(--u)*8.6);border-radius:30%;background:#ffffff1f;border:2px dashed #ffffff55;display:grid;place-items:center;font-size:1.25em;filter:grayscale(1) brightness(.35);transition:.3s}
.v8 .slot.ok{filter:none;background:#3ddc8433;border:2px solid #3ddc84;transform:scale(1.08)}
.v8 .card{position:absolute;left:4%;right:4%;top:15%;background:#fffdf3;color:#24352b;border-radius:1.2em;padding:1em 1.1em;border:3px solid #2b6b45;box-shadow:0 .6em 2em #0008;transform:scale(.6);opacity:0;transition:.35s cubic-bezier(.3,1.6,.5,1)}
.v8 .card.on{transform:none;opacity:1}
.v8 .card h3{margin:.1em 0 .3em;font-size:1.15em;display:flex;gap:.4em;align-items:center}
.v8 .card h3 span{font-size:1.6em}
.v8 .card p{margin:.35em 0;line-height:1.35;font-size:.92em}
.v8 .card .op{display:grid;gap:.5em;margin-top:.7em}
.v8 .card .op button{border:2px solid #bdd4c0;background:#fff;border-radius:.8em;padding:.7em .8em;text-align:left;font-weight:800;color:#1e4d3a}
.v8 .card .op button.certo{background:#d8f5dc;border-color:#2fa25a}
.v8 .card .op button.errado{background:#ffe1e1;border-color:#e05555;animation:v8treme .4s}
.v8 .btn{border:0;border-radius:2em;padding:.7em 1.1em;font-weight:900;background:#ffd34d;color:#3a2410;box-shadow:0 .25em 0 #b07a10}
.v8 .btn.verde{background:#2fa25a;color:#fff;box-shadow:0 .25em 0 #1b6b38}
.v8 .btn.bco{background:#fffdf3;color:#1e4d3a;box-shadow:0 .25em 0 #0003}
.v8 .btn:disabled{opacity:.45}
@keyframes v8treme{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.v8 .fb{font-weight:800;color:#b3561a;min-height:1.2em}
.v8 .titulo{position:absolute;left:0;right:0;top:30%;text-align:center;pointer-events:none}
.v8 .titulo small{display:block;color:#ffd34d;font-weight:900;letter-spacing:.3em;font-size:.75em}
.v8 .titulo h1{margin:.15em 0;font:400 calc(var(--u)*11) Impact,"Anton",sans-serif;color:#fff;letter-spacing:2px;text-shadow:0 .08em 0 #0b3b2e,0 0 .4em #000;line-height:1}
.v8 .titulo h1 span{display:inline-block;opacity:0;transform:translateY(-1.4em) scale(1.6);animation:v8letra .45s cubic-bezier(.3,1.7,.5,1) forwards}
@keyframes v8letra{to{opacity:1;transform:none}}
.v8 .toast{position:absolute;left:4%;right:4%;top:13%;background:#fffdf3;color:#24352b;border-radius:1em;padding:.7em .9em;border:3px solid #ffd34d;box-shadow:0 .5em 1.4em #0007;display:flex;gap:.6em;align-items:center;font-weight:700;font-size:.9em;animation:v8desce .5s cubic-bezier(.3,1.5,.5,1)}
@keyframes v8desce{from{transform:translateY(-150%)}}
.v8 .sheet{position:absolute;left:0;right:0;bottom:0;max-height:70%;overflow:auto;background:#fffdf3;color:#24352b;border-radius:1.3em 1.3em 0 0;padding:.9em 1em 1.3em;box-shadow:0 -.5em 2em #0007;transform:translateY(105%);transition:.35s cubic-bezier(.3,1.2,.5,1)}
.v8 .sheet.on{transform:none}
.v8 .sheet h3{margin:.1em 0 .5em;display:flex;align-items:center;gap:.4em}
.v8 .sheet h3 .x{margin-left:auto;border:0;background:#e9efe7;border-radius:50%;width:2em;height:2em;font-weight:900;color:#1e4d3a}
.v8 .sheet h4{margin:.9em 0 .4em;color:#2b6b45;font-size:.85em;letter-spacing:.06em;text-transform:uppercase}
.v8 .grade{display:grid;grid-template-columns:repeat(3,1fr);gap:.5em}
.v8 .it{border:2px solid #d4e3d2;background:#fff;border-radius:.9em;padding:.5em .3em;text-align:center;font-weight:800;color:#1e4d3a;font-size:.82em;position:relative}
.v8 .it big{display:block;font-size:2em;line-height:1.1}
.v8 .it em{display:block;font-style:normal;font-weight:700;color:#6a7d6c;font-size:.85em}
.v8 .it .q{position:absolute;right:.3em;top:.2em;background:#2fa25a;color:#fff;border-radius:1em;padding:0 .4em;font-size:.85em}
.v8 .it:disabled{opacity:.4}
.v8 .barra-h{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:.4em .3em calc(.6em + env(safe-area-inset-bottom));background:linear-gradient(#0d2f2b00,#0d2f2bf5 40%)}
.v8 .barra-h button{border:0;background:#fffdf3;color:#1e4d3a;border-radius:1em;padding:.35em .2em;width:18.5%;font-weight:900;font-size:.72em;box-shadow:0 .2em 0 #0005;position:relative}
.v8 .barra-h button big{display:block;font-size:1.9em;line-height:1.15}
.v8 .barra-h button .ponto{position:absolute;top:-.3em;right:-.2em;background:#e8453c;color:#fff;border-radius:1em;padding:0 .45em;font-size:.95em}
.v8 .menu{position:absolute;left:6%;right:6%;bottom:9%;display:grid;gap:.8em}
.v8 .menu button{border:0;border-radius:1.2em;padding:1em;font-weight:900;font-size:1.1em;text-align:left;display:flex;gap:.6em;align-items:center;box-shadow:0 .3em 0 #0005}
.v8 .menu button big{font-size:2em}
.v8 .menu button small{display:block;font-weight:700;font-size:.72em;opacity:.8}
.v8 .cal{display:grid;grid-template-columns:repeat(4,1fr);gap:.45em}
.v8 .cal div{border-radius:.8em;background:#eef6ec;border:2px solid #d4e3d2;text-align:center;padding:.4em .2em;font-weight:800;font-size:.75em}
.v8 .cal div big{display:block;font-size:1.8em}
.v8 .cal div.hoje{background:#fff4c2;border-color:#e3b21a;animation:v8pulsa 1s infinite alternate}
.v8 .cal div.pego{opacity:.45}
@keyframes v8pulsa{to{transform:scale(1.06)}}
.v8 .vacia{color:#6a7d6c;font-size:.85em}
.v8 .prog{height:.6em;background:#e3ece1;border-radius:1em;overflow:hidden;margin:.3em 0 .6em}
.v8 .prog i{display:block;height:100%;background:linear-gradient(90deg,#8bd36a,#2fa25a)}
.v8 .selo{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-12deg) scale(3);opacity:0;border:.25em solid #2fa25a;color:#2fa25a;border-radius:.4em;padding:.2em .6em;font:900 1.6em Impact,sans-serif;background:#fffdf3cc;transition:.35s cubic-bezier(.3,1.6,.5,1)}
.v8 .selo.on{transform:translate(-50%,-50%) rotate(-12deg) scale(1);opacity:1}
.v8 .v8-viz{display:flex!important;width:100%;height:auto!important;margin:.4em 0!important;text-align:left;gap:.6em;align-items:center;border:2px solid #d4e3d2;border-radius:1em;background:#fff;color:#1e4d3a;font-weight:900;padding:.6em .8em}
/* participação cidadã animada */
.jornada-simulacao-v39.v8-part .js39-scene{position:sticky;top:0;z-index:5;height:min(46vh,520px)!important;min-height:260px}
.jornada-simulacao-v39.v8-part .js39-player-marker{display:none}
.jornada-simulacao-v39.v8-part .js39-location{z-index:3}
.v8-part-cv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
/* tutorial: quando o botão destacado está embaixo, o cartão sobe */
.tg-overlay.tg-topo .tg-card{bottom:auto;top:calc(90px + env(safe-area-inset-top))}
