*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100vh;min-height:100dvh}
button{font-family:inherit}
a{text-decoration:none}

body.modo-escuro{color:#E6F4F1;background:#04231F;background-image:radial-gradient(900px 520px at 50% -8%,#0F6156 0%,rgba(4,35,31,0) 62%),radial-gradient(700px 500px at 90% 108%,#0A4C44 0%,rgba(4,35,31,0) 60%)}
body.modo-claro{color:#0F172A;background:#EDF1F4}

.wrap{width:100%;max-width:540px;margin:0 auto;padding:0 20px}

.login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 20px}
.marca{text-align:center;margin-bottom:8px}
.marca-icone{width:66px;height:66px;border-radius:22px;background:linear-gradient(140deg,#5EEAD4,#0D9488);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;box-shadow:0 16px 40px rgba(20,184,166,.34)}
.marca-icone svg{width:34px;height:34px}
.marca-icone img{width:66px;height:66px;border-radius:22px;object-fit:cover}
.marca h1{font-size:25px;font-weight:800;letter-spacing:-.6px;margin:0 0 6px}
.marca p{margin:0;font-size:13.5px;font-weight:500;color:rgba(230,244,241,.55)}

.pin-legenda{margin:30px 0 14px;font-size:13px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:rgba(230,244,241,.45)}
.pin-dots{display:flex;gap:15px;justify-content:center;margin-bottom:28px;height:18px;align-items:center}
.pin-dot{width:15px;height:15px;border-radius:50%;border:2px solid rgba(94,234,212,.38);transition:transform .16s,background .16s,box-shadow .16s}
.pin-dot.cheio{background:#5EEAD4;border-color:#5EEAD4;transform:scale(1.18);box-shadow:0 0 18px rgba(94,234,212,.55)}

.teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;width:100%;max-width:288px}
.tecla{height:66px;border-radius:20px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);color:#E6F4F1;font-size:23px;font-weight:600;cursor:pointer;transition:transform .1s,background .15s}
.tecla:active{transform:scale(.93);background:rgba(94,234,212,.2)}
.tecla.mini{font-size:13px;font-weight:700;letter-spacing:.3px;color:#5EEAD4}
.tecla.ok{background:linear-gradient(140deg,#5EEAD4,#0D9488);border:none;color:#04231F;font-size:14px;font-weight:800;letter-spacing:.4px}
.tecla:disabled{opacity:.45}

.aviso{max-width:288px;width:100%;padding:12px 16px;border-radius:14px;font-size:13.5px;font-weight:600;text-align:center;margin-bottom:20px;line-height:1.4}
.aviso.erro{background:rgba(244,63,94,.14);border:1px solid rgba(244,63,94,.35);color:#FDA4AF}
.aviso.ok{background:rgba(52,211,153,.14);border:1px solid rgba(52,211,153,.35);color:#6EE7B7}

.rodape-login{margin-top:34px;font-size:12px;color:rgba(230,244,241,.32);letter-spacing:.3px}

.topo{background:linear-gradient(135deg,#0D5249 0%,#083832 100%);color:#fff;padding:26px 0 58px}
.topo .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px}
.topo-ola{margin:0 0 3px;font-size:12.5px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:rgba(255,255,255,.5)}
.topo-nome{margin:0;font-size:23px;font-weight:800;letter-spacing:-.5px}
.btn-sair{display:inline-block;color:#fff;font-size:12.5px;font-weight:700;background:rgba(255,255,255,.14);padding:9px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.12)}

.conteudo{margin-top:-38px;padding-bottom:44px}
.secao-titulo{margin:26px 4px 12px;font-size:12.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#7C8B99}

.card{background:#fff;border-radius:22px;padding:20px;box-shadow:0 12px 34px rgba(15,23,42,.09);margin-bottom:14px}

.ativo{background:linear-gradient(140deg,#0F766E,#065F52);color:#fff;border-radius:26px;padding:24px;box-shadow:0 20px 44px rgba(6,95,82,.34);margin-bottom:18px}
.ativo-tag{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;background:rgba(255,255,255,.16);padding:7px 13px;border-radius:999px;margin-bottom:16px}
.pulso{width:8px;height:8px;border-radius:50%;background:#5EEAD4;box-shadow:0 0 0 0 rgba(94,234,212,.7);animation:pulso 1.8s infinite}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(94,234,212,.7)}70%{box-shadow:0 0 0 12px rgba(94,234,212,0)}100%{box-shadow:0 0 0 0 rgba(94,234,212,0)}}
.ativo h2{margin:0 0 5px;font-size:21px;font-weight:800;letter-spacing:-.4px}
.ativo .zona{margin:0 0 18px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.62)}
.cronometro{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.cronometro b{font-size:40px;font-weight:800;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}
.cronometro span{font-size:13px;font-weight:600;color:rgba(255,255,255,.6)}
.desde{margin:0 0 20px;font-size:13px;font-weight:600;color:rgba(255,255,255,.58)}

.btn{display:block;width:100%;text-align:center;border:none;border-radius:18px;padding:17px 20px;font-size:15.5px;font-weight:800;letter-spacing:.2px;cursor:pointer;transition:transform .1s,opacity .15s}
.btn:active{transform:scale(.985)}
.btn:disabled{opacity:.6}
.btn-finalizar{background:#fff;color:#065F52}
.btn-iniciar{background:linear-gradient(140deg,#14B8A6,#0D9488);color:#fff;box-shadow:0 14px 30px rgba(13,148,136,.32)}
.btn-neutro{background:#E2E8F0;color:#334155}

.lista{display:flex;flex-direction:column;gap:11px}
.item{display:flex;align-items:center;gap:14px;background:#fff;border-radius:20px;padding:16px 18px;box-shadow:0 8px 24px rgba(15,23,42,.07);color:#0F172A;transition:transform .1s}
.item:active{transform:scale(.985)}
.item-icone{width:46px;height:46px;flex:0 0 46px;border-radius:15px;background:linear-gradient(140deg,#CCFBF1,#99F6E4);display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;color:#0F766E}
.item-txt{flex:1;min-width:0}
.item-txt b{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.2px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item-txt small{font-size:12.5px;font-weight:600;color:#7C8B99}
.item-seta{color:#B6C2CD;font-size:20px;font-weight:700;flex:0 0 auto}

.voltar{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.75);font-size:13.5px;font-weight:700;margin-bottom:14px}

.local-hero{text-align:center;padding:30px 22px 26px}
.local-hero .icone{width:72px;height:72px;border-radius:24px;background:linear-gradient(140deg,#CCFBF1,#5EEAD4);display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 18px}
.local-hero h2{margin:0 0 6px;font-size:22px;font-weight:800;letter-spacing:-.5px}
.local-hero p{margin:0 0 4px;font-size:14px;font-weight:600;color:#7C8B99}

.status-gps{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12.5px;font-weight:700;color:#7C8B99;margin:18px 0 4px;min-height:18px}
.girando{width:14px;height:14px;border-radius:50%;border:2px solid #CBD5E1;border-top-color:#0D9488;animation:girar .7s linear infinite}
@keyframes girar{to{transform:rotate(360deg)}}

.flash{border-radius:18px;padding:15px 18px;font-size:14px;font-weight:700;margin-bottom:14px;line-height:1.45}
.flash.ok{background:#D1FAE5;color:#065F46;border:1px solid #6EE7B7}
.flash.erro{background:#FFE4E6;color:#9F1239;border:1px solid #FDA4AF}
.flash.alerta{background:#FEF3C7;color:#92400E;border:1px solid #FCD34D}

.vazio{text-align:center;padding:44px 20px;color:#7C8B99;font-size:14px;font-weight:600}
.rodape{text-align:center;padding:26px 20px 34px;font-size:11.5px;font-weight:600;letter-spacing:.4px;color:#9AA8B4}
