:root{
  --bg:#110a18;--panel:#1b1126;--panel2:#24152f;--text:#fff8ed;--muted:#c9bdd0;
  --orange:#ff7a18;--orange2:#ff9b33;--purple:#8e5cff;--green:#58d68d;--red:#ff5f6d;
  --yellow:#ffd166;--line:rgba(255,255,255,.11);--shadow:0 18px 50px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;background:radial-gradient(circle at top,#271238 0,#110a18 46%,#0c0810 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100%;overscroll-behavior:none}
button,input{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:#d4bdde;margin:0 0 .35rem}
.auth-gate{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:
radial-gradient(circle at 18% 12%,rgba(255,122,24,.21),transparent 22%),
radial-gradient(circle at 78% 20%,rgba(142,92,255,.18),transparent 26%)}
.hero-card{width:min(650px,100%);background:linear-gradient(160deg,rgba(36,21,47,.96),rgba(19,10,27,.96));border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.hero-card:after{content:"";position:absolute;width:240px;height:240px;border:1px dashed rgba(255,255,255,.07);border-radius:50%;right:-90px;top:-90px;pointer-events:none}
.brand-hero{display:flex;align-items:center;margin:0 0 12px;position:relative;z-index:1}
.brand-hero-logo{display:block;width:clamp(104px,24vw,148px);height:auto;object-fit:contain;filter:drop-shadow(0 10px 24px rgba(0,0,0,.32))}
.topbar-brand{display:flex;align-items:center;gap:10px;min-width:0}
.topbar-logo{width:48px;height:48px;object-fit:contain;flex:0 0 48px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.32))}
.topbar-brand>div{min-width:0}
h1{font-size:clamp(2.3rem,9vw,4.4rem);line-height:.92;margin:.2rem 0 1rem;letter-spacing:-.055em}
h1 span{color:var(--orange)}
h2,h3,h4,p{margin-top:0}
h2{font-size:1.35rem;margin-bottom:0}
h3{font-size:1.45rem;margin-bottom:16px}
.hero-copy{font-size:1.03rem;line-height:1.55;color:#e1d5e5;max-width:560px}
.segmented,.admin-tabs{display:flex;gap:4px;background:#100918;border:1px solid var(--line);border-radius:14px;padding:4px;margin:20px 0}
.segmented button,.admin-tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:11px 10px;border-radius:10px;font-weight:800}
.segmented button.active,.admin-tabs button.active{background:var(--panel2);color:white;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.auth-form{display:grid;gap:14px}
label{display:grid;gap:7px;font-size:.86rem;color:#e8dce9;font-weight:750}
input{width:100%;border:1px solid var(--line);background:#100918;color:white;border-radius:13px;padding:13px 14px;outline:none}
input:focus{border-color:rgba(255,122,24,.7);box-shadow:0 0 0 3px rgba(255,122,24,.12)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{grid-template-columns:auto 1fr;align-items:flex-start;font-weight:500;line-height:1.35}
.check input{width:19px;height:19px;margin-top:1px}
small,.muted{color:var(--muted);line-height:1.45}
.btn{border:1px solid var(--line);border-radius:13px;padding:12px 14px;background:var(--panel2);color:white;font-weight:850}
.btn.primary{background:linear-gradient(135deg,var(--orange),#ff4f36);border-color:transparent}
.btn.accent{background:linear-gradient(135deg,#8756ff,#b45cff);border-color:transparent}
.btn.ghost{background:rgba(255,255,255,.04)}
.btn.danger{background:rgba(255,95,109,.13);border-color:rgba(255,95,109,.35);color:#ffdce0}
.btn.mini{padding:9px 12px;font-size:.84rem}
.btn.wide{width:100%}
.link-btn{width:100%;border:0;background:transparent;color:#baa9c2;font-weight:700;padding:9px}
.divider{display:flex;align-items:center;gap:10px;color:#9f8ca8;font-size:.78rem;margin:18px 0 10px}
.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}
.app{min-height:100dvh;padding-bottom:84px}
.topbar{height:74px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;background:rgba(17,10,24,.92);backdrop-filter:blur(16px);position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--line)}
.top-actions{display:flex;gap:8px;align-items:center}
.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:white;font-size:1.25rem;display:grid;place-items:center}
.status-pill{display:inline-flex;align-items:center;border:1px solid rgba(88,214,141,.3);background:rgba(88,214,141,.12);color:#aef3c9;padding:6px 9px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.08em}
.status-pill.demo{color:#ffd6a9;background:rgba(255,122,24,.13);border-color:rgba(255,122,24,.35)}
.screen{display:none;padding:14px}
.screen.active{display:block}
#screen-map{padding:0 0 14px}
.map-wrap{height:calc(100dvh - 159px);min-height:460px;position:relative}
#map{height:100%;width:100%;background:#1e1724}
.leaflet-container{font-family:inherit}
.map-float{position:absolute;z-index:500;left:12px;right:12px;display:flex;gap:8px;pointer-events:none}
.map-float>*{pointer-events:auto}
.map-float.top{top:12px;background:rgba(17,10,24,.88);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:var(--shadow)}
.map-float.bottom{bottom:12px;justify-content:center}
.stat{flex:1;text-align:center;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat b{font-size:1.18rem;display:block}
.stat span{font-size:.68rem;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.dot.available{background:var(--green)}.dot.low{background:var(--yellow)}.dot.soldout{background:var(--red)}.dot.child{background:var(--purple)}
.notice{margin:12px 14px 0;padding:12px 13px;border-radius:13px;background:rgba(142,92,255,.11);border:1px solid rgba(142,92,255,.22);font-size:.79rem;line-height:1.4;color:#e8dcff}
.section-card{max-width:760px;margin:0 auto;background:linear-gradient(180deg,var(--panel),rgba(25,15,34,.97));border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-head h3{margin-bottom:0}
.field-title{font-size:.82rem;font-weight:850;color:#e9dce9;margin:18px 0 8px}
.icon-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.icon-picker button{aspect-ratio:1;border-radius:12px;border:1px solid var(--line);background:#120b19;color:white;font-size:1.55rem}
.icon-picker button.active{border-color:var(--orange);background:rgba(255,122,24,.13);box-shadow:0 0 0 2px rgba(255,122,24,.12)}
.candy-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.candy-picker button{border:1px solid var(--line);border-radius:12px;background:#120b19;color:white;padding:11px 9px;text-align:left;font-size:.78rem;font-weight:800}
.candy-picker button.active{border-color:var(--orange);background:rgba(255,122,24,.12)}
.coords{font-size:.75rem;color:#b8a8bf;margin:8px 0 14px}
.file-label{margin-top:14px}
.photo-preview{width:100%;max-height:260px;object-fit:cover;border-radius:14px;margin:10px 0}
form>.btn.wide{margin-top:16px}
.children-list{display:grid;gap:10px;margin-top:15px}
.child-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:12px;background:#130c1b}
.child-avatar{width:48px;height:48px;border-radius:14px;background:var(--panel2);display:grid;place-items:center;font-size:1.8rem;overflow:hidden}
.child-avatar img{width:100%;height:100%;object-fit:cover}
.child-card h4{margin:0 0 3px}
.child-card p{font-size:.74rem;color:var(--muted);margin:0}
.child-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.child-actions button{padding:7px 8px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:white;font-size:.72rem}
.child-actions button.active{background:rgba(142,92,255,.18);border-color:rgba(142,92,255,.5)}
.album-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:14px}
.album-item{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1;background:#100918}
.album-item img{width:100%;height:100%;object-fit:cover}
.album-item span{position:absolute;left:0;right:0;bottom:0;padding:24px 9px 8px;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:.72rem}
.empty{border:1px dashed var(--line);border-radius:15px;padding:24px;text-align:center;color:var(--muted)}
.profile-details{display:grid;gap:8px;margin:16px 0}
.profile-details div{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#120b19}
.profile-details span{display:block;color:#a997b2;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.privacy-card{border:1px solid rgba(142,92,255,.25);background:rgba(142,92,255,.08);padding:14px;border-radius:14px;margin:18px 0}
.privacy-card h4{margin-bottom:7px}.privacy-card p{margin-bottom:0;color:#d9cfe2;font-size:.8rem;line-height:1.48}
.stack{display:grid;gap:9px}
.bottom-nav{position:fixed;z-index:1100;left:0;right:0;bottom:0;min-height:72px;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(13,8,18,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line)}
.bottom-nav button{border:0;background:transparent;color:#a994b3;display:grid;place-items:center;gap:2px;padding:4px;border-radius:10px}
.bottom-nav button span{font-size:1.25rem}.bottom-nav button b{font-size:.67rem}
.bottom-nav button.active{color:white;background:rgba(255,122,24,.1)}
.modal{border:0;padding:0;background:transparent;color:white;width:min(620px,calc(100% - 24px));max-height:92dvh}
.modal::backdrop{background:rgba(5,3,8,.78);backdrop-filter:blur(4px)}
.modal-card{background:linear-gradient(180deg,#24152f,#140c1d);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow);max-height:88dvh;overflow:auto}
.wide-modal{width:min(820px,calc(100% - 18px))}
#pinMap,#geofenceMap{height:360px;border-radius:15px;overflow:hidden;margin:12px 0}
.admin-pane{display:none}.admin-pane.active{display:block}
.pending-card{border:1px solid var(--line);border-radius:14px;padding:12px;margin:9px 0;background:#130b1a}
.pending-card h4{margin:0 0 5px}
.pending-card p{font-size:.76rem;color:var(--muted);margin:3px 0}
.pending-actions{display:flex;gap:8px;margin-top:10px}
.pending-actions button{flex:1}
.marker-house,.marker-child{display:grid;place-items:center;position:relative;filter:drop-shadow(0 4px 5px rgba(0,0,0,.35))}
.marker-house{font-size:28px}.marker-child{font-size:30px}
.marker-status{position:absolute;right:-8px;top:-5px;width:13px;height:13px;border:2px solid #fff;border-radius:50%}
.marker-status.available{background:var(--green)}.marker-status.low{background:var(--yellow)}.marker-status.soldout{background:var(--red)}.marker-status.paused{background:#999}
.soldout-stamp{font-size:.6rem;position:absolute;bottom:-8px;background:#b7212c;color:white;border:1px solid white;border-radius:5px;padding:1px 3px;font-weight:950;transform:rotate(-7deg)}
.toast{position:fixed;z-index:3000;left:50%;bottom:92px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#fff;color:#1b1126;padding:11px 14px;border-radius:12px;box-shadow:var(--shadow);font-size:.82rem;font-weight:800;transition:.2s;max-width:calc(100% - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:760px){
  .app{max-width:1100px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}
  .bottom-nav{left:50%;transform:translateX(-50%);max-width:1100px}
  .map-wrap{height:calc(100dvh - 165px)}
  .album-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:520px){
  .hero-card{padding:22px 17px;border-radius:23px}.grid2{grid-template-columns:1fr}
  .icon-picker{grid-template-columns:repeat(4,1fr)}.candy-picker{grid-template-columns:1fr}
  .section-card{border-radius:18px;padding:15px}.map-wrap{height:calc(100dvh - 157px)}
}

.event-banner{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.event-banner>div{border:1px solid var(--line);border-radius:13px;padding:11px;background:rgba(255,255,255,.035)}.event-banner b,.event-banner span{display:block}.event-banner b{color:var(--orange);font-size:.94rem}.event-banner span{color:var(--muted);font-size:.72rem;margin-top:4px;line-height:1.35}.demo-help{display:block;text-align:center;margin-top:8px}.qr-landing{border:1px solid rgba(255,122,24,.35);background:rgba(255,122,24,.08);border-radius:14px;padding:12px;margin:14px 0}.qr-card{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.qr-box{background:white;padding:12px;border-radius:16px;width:max-content;max-width:100%;margin:12px auto}.qr-box img,.qr-box canvas{max-width:220px!important;width:100%!important;height:auto!important}.qr-url{display:block;overflow:auto;white-space:nowrap;background:#0d0812;border:1px solid var(--line);padding:9px;border-radius:10px;font-size:.7rem;color:#d9cce0;margin:10px 0}.fun-pane{display:none}.fun-pane.active{display:block}.compact-head{margin:10px 0}.vote-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0 18px}.vote-card{border:1px solid var(--line);background:#130c1b;border-radius:15px;padding:11px;display:grid;gap:8px}.vote-card .visual{height:110px;border-radius:12px;background:#0e0913;display:grid;place-items:center;font-size:3rem;overflow:hidden}.vote-card .visual img{width:100%;height:100%;object-fit:cover}.vote-card h4{margin:0;font-size:.9rem}.vote-card p{margin:0;color:var(--muted);font-size:.72rem}.vote-card .btn{padding:8px;font-size:.72rem}select{width:100%;border:1px solid var(--line);background:#100918;color:white;border-radius:13px;padding:13px 14px}#devMap{height:370px;border-radius:15px;overflow:hidden;margin:12px 0}.dev-badge{background:rgba(255,209,102,.12);color:#ffe6a0;border-color:rgba(255,209,102,.35)}
@media(max-width:520px){.event-banner{grid-template-columns:1fr}.vote-grid{grid-template-columns:1fr 1fr}}

/* V04 — seleção de mapa e configuração do perímetro */
.map-style-switch{position:absolute;z-index:520;right:12px;top:92px;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:13px;background:rgba(17,10,24,.9);backdrop-filter:blur(12px);box-shadow:0 6px 20px rgba(0,0,0,.25)}
.map-style-switch button{border:0;background:transparent;color:#cbbbd2;border-radius:9px;padding:8px 10px;font-size:.72rem;font-weight:850}
.map-style-switch button.active{background:var(--panel2);color:#fff}
.bounds-card{border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:15px;padding:12px;margin:12px 0}
.compact-notice{margin:10px 0;padding:9px 10px}
.leaflet-control-layers{border:1px solid rgba(255,255,255,.18)!important;border-radius:10px!important;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.22)!important}
@media(max-width:520px){.map-style-switch{top:88px}.map-style-switch button{padding:7px 8px;font-size:.68rem}}

/* ===== V06: mapa, filtros, fantasias e ranking QR ===== */
.icon-picker{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));max-height:290px;overflow:auto;padding:4px;scrollbar-width:thin}
.icon-picker button{min-height:48px;font-size:1.75rem;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.icon-picker button:hover{transform:translateY(-2px) scale(1.04)}

.map-filter-bar{position:absolute;z-index:530;left:12px;right:12px;top:80px;display:flex;gap:6px;overflow-x:auto;padding:4px;background:rgba(17,10,24,.9);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.25);scrollbar-width:none}
.map-filter-bar::-webkit-scrollbar{display:none}
.map-filter-bar button{white-space:nowrap;border:1px solid transparent;background:transparent;color:#d8c9df;border-radius:10px;padding:8px 10px;font-size:.73rem;font-weight:850}
.map-filter-bar button.active{background:var(--panel2);border-color:rgba(255,255,255,.12);color:white}
.map-filter-bar button.candy-live{background:rgba(255,122,24,.15);border-color:rgba(255,122,24,.38);color:#ffe1b5;animation:candyFilterPulse 1.35s ease-in-out infinite}
@keyframes candyFilterPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,122,24,.12)}50%{box-shadow:0 0 0 6px rgba(255,122,24,.03)}}

.map-style-switch{top:132px}

.marker-house,.marker-child{background:transparent!important;border:0!important}
.marker-house{font-size:31px;line-height:1;transform-origin:50% 70%;text-shadow:0 3px 8px rgba(0,0,0,.45)}
.marker-house.has-candy{animation:houseCandyPulse 1.25s ease-in-out infinite}
.marker-house.low-candy{animation:houseLowPulse 1.8s ease-in-out infinite}
.marker-child{font-size:31px;line-height:1;text-shadow:0 3px 8px rgba(0,0,0,.45)}
@keyframes houseCandyPulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(255,166,53,0))}50%{transform:scale(1.18);filter:drop-shadow(0 0 7px rgba(255,166,53,.85))}}
@keyframes houseLowPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.10)}}
.soldout-stamp{bottom:-10px;right:-15px;white-space:nowrap}

.device-selection-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(142,92,255,.28);background:rgba(142,92,255,.08);border-radius:15px;padding:12px;margin:14px 0}
.device-selection-card>div{display:grid;gap:4px}.device-selection-card b{font-size:.84rem}.device-selection-card span:not(.status-pill){font-size:.74rem;line-height:1.4;color:var(--muted)}
.child-card.device-active{border-color:rgba(142,92,255,.62);background:rgba(142,92,255,.10);box-shadow:inset 3px 0 0 rgba(142,92,255,.8)}
.child-actions button.active{background:rgba(142,92,255,.26);border-color:rgba(142,92,255,.7);color:#fff}

.visit-fantasy-list{display:grid;gap:7px;margin:12px 0 4px}
.visit-fantasy-option{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;border:1px solid var(--line);background:#120b19;border-radius:12px;padding:9px 10px;cursor:pointer}
.visit-fantasy-option input{width:19px;height:19px}.visit-fantasy-option b{font-size:.8rem}.visit-fantasy-option span{color:var(--muted);font-size:.72rem}

.qr-progress-card{margin:12px 0;border:1px solid rgba(255,122,24,.3);background:linear-gradient(135deg,rgba(255,122,24,.12),rgba(142,92,255,.08));border-radius:16px;padding:14px}
.qr-progress-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.qr-progress-top strong{font-size:1.6rem;color:var(--orange)}.qr-progress-top span{font-size:.75rem;color:var(--muted)}
.qr-progress-bar{height:8px;background:#0e0913;border-radius:999px;overflow:hidden;margin:10px 0 8px}.qr-progress-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--purple));border-radius:999px}
.qr-vote-summary{display:flex;gap:8px;flex-wrap:wrap}.qr-vote-summary span{border:1px solid var(--line);background:rgba(0,0,0,.12);border-radius:999px;padding:6px 9px;font-size:.7rem;font-weight:800}
.leaderboard-card{border:1px solid var(--line);background:#120b19;border-radius:16px;padding:12px;margin:12px 0 18px}
.qr-leaderboard{display:grid;gap:6px}.qr-rank{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:8px;border-radius:11px;background:rgba(255,255,255,.035)}.qr-rank.me{border:1px solid rgba(255,122,24,.4);background:rgba(255,122,24,.07)}.qr-rank .place{font-weight:950;text-align:center}.qr-rank b{font-size:.8rem}.qr-rank small{font-size:.67rem;color:var(--muted)}.qr-rank .score{font-weight:950;color:#ffe0b4;font-size:.78rem}
.vote-limit{font-size:.7rem;color:#e7dce9;padding:7px 9px;border-radius:10px;background:rgba(142,92,255,.08);border:1px solid rgba(142,92,255,.2);margin:8px 0}

#devChildSelect[multiple]{min-height:150px}
#devChildSelect option{padding:7px}

@media(max-width:520px){
  .icon-picker{grid-template-columns:repeat(5,1fr);max-height:260px}
  .icon-picker button{min-height:46px;font-size:1.6rem}
  .map-filter-bar{top:80px}
  .map-style-switch{top:132px}
  .map-style-switch button{padding:8px 9px}
  .device-selection-card{align-items:flex-start;flex-direction:column}
}
.device-selection-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:520px){.device-selection-actions{justify-content:flex-start}}

/* V07 — galerias e votação por participante */
.manage-photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px}
.manage-photo{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#0e0913;border:1px solid var(--line)}
.manage-photo img{width:100%;height:100%;object-fit:cover;display:block}
.manage-photo button,.mini-photo button{position:absolute;right:4px;top:4px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(8,5,12,.82);color:white;font-size:1rem;line-height:1;display:grid;place-items:center}
.mini-empty{grid-column:1/-1;padding:14px}
.child-card-v07{align-items:start}.child-main{min-width:0}.photo-counter{font-size:.68rem;color:var(--muted);font-weight:800;margin:6px 0}
.child-photo-strip{display:flex;gap:5px;flex-wrap:wrap}.mini-photo{position:relative;width:54px;height:54px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#0e0913}.mini-photo img{width:100%;height:100%;object-fit:cover}.mini-photo button{width:19px;height:19px;font-size:.78rem;right:2px;top:2px}
.child-photo-empty{font-size:1.7rem;opacity:.75}.child-upload-btn{display:inline-flex;align-items:center;justify-content:center;padding:7px 8px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:white;font-size:.72rem;font-weight:800;cursor:pointer}.child-upload-btn input{display:none}.child-upload-btn.disabled{opacity:.45;cursor:not-allowed}
.voter-select-card{border:1px solid rgba(142,92,255,.28);background:rgba(142,92,255,.08);border-radius:15px;padding:12px;margin:12px 0}.voter-select-card p{margin:8px 0 0;font-size:.76rem}
.vote-photo-gallery{width:100%;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:4px}.vote-main-photo{width:100%;height:100%;min-height:76px;object-fit:cover;border-radius:9px}.vote-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;height:27px}.vote-thumbs img{width:100%;height:27px;object-fit:cover;border-radius:5px;border:1px solid rgba(255,255,255,.12)}.vote-photo-fallback{display:grid;place-items:center;width:100%;height:100%;font-size:3rem}
.vote-card .visual{height:150px}
@media(max-width:520px){.manage-photo-grid{grid-template-columns:repeat(3,1fr)}.child-card-v07{grid-template-columns:auto 1fr}.child-card-v07 .child-actions{grid-column:1/-1;justify-content:flex-start}.vote-card .visual{height:132px}}
.visit-house-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.visit-house-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}

/* Branding V08 */
@media(max-width:520px){
  .topbar-logo{width:42px;height:42px;flex-basis:42px}
  .topbar-brand{gap:8px}
  .topbar .eyebrow{font-size:.62rem;letter-spacing:.12em}
  .topbar h2{font-size:1.18rem}
}

/* Base V10 — QR por casa */
.map-score-badge,.map-qr-badge,.visit-mini-badge{position:absolute;z-index:3;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;border:1px solid rgba(255,255,255,.5);background:rgba(15,9,20,.94);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);font-weight:900;line-height:1}
.map-qr-badge{top:-18px;left:50%;transform:translateX(-50%);padding:3px 5px;font-size:.54rem;letter-spacing:.01em}
.map-score-badge{right:-13px;top:-6px;padding:3px 5px;font-size:.52rem}.house-score{color:#bff7d0}.fantasy-score{color:#e3c7ff}
.visit-mini-badge{left:-12px;bottom:-7px;min-width:20px;height:17px;padding:0 4px;font-size:.5rem}.marker-house.unvisited .visit-mini-badge{color:#ffd9a8;border-color:rgba(255,122,24,.7)}.marker-house.visited .visit-mini-badge{color:#bdf5cd;border-color:rgba(88,214,141,.7)}
.ghost-scan-btn{background:linear-gradient(135deg,rgba(255,122,24,.95),rgba(142,92,255,.92));border-color:transparent}
.visit-status-box{margin:12px 0;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);font-size:.8rem;font-weight:800}
.qr-video-wrap{position:relative;width:100%;aspect-ratio:4/3;background:#060508;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:12px 0}.qr-video-wrap video{width:100%;height:100%;object-fit:cover}.qr-scan-frame{position:absolute;inset:18%;border:3px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.18);pointer-events:none}.local-qr-test{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.qr-rule-note{margin-top:10px;text-align:center}
.ghost-wallet-card{margin:12px 0 18px;border:1px solid rgba(142,92,255,.28);background:linear-gradient(145deg,rgba(142,92,255,.1),rgba(255,122,24,.07));border-radius:18px;padding:14px}.ghost-wallet-title{display:flex;justify-content:space-between;gap:14px;margin-bottom:12px}.ghost-wallet-title>div{flex:1}.ghost-wallet-title span,.ghost-wallet-title strong{display:block}.ghost-wallet-title span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:850}.ghost-wallet-title strong{font-size:1.45rem;margin-top:3px}.ghost-wallet-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ghost-token{border:1px solid var(--line);border-radius:14px;padding:12px;background:#100918}.ghost-token b,.ghost-token strong,.ghost-token span,.ghost-token small{display:block}.ghost-token strong{font-size:2rem;margin:3px 0}.ghost-token span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.ghost-token small{font-size:.65rem;color:var(--muted);margin-top:6px}.ghost-token.slimer strong{color:#8df3aa}.ghost-token.boo strong{color:#caa9ff}
.haunt-control{display:grid;grid-template-columns:42px 1fr 42px;gap:6px;align-items:center}.haunt-control button{height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:white;font-size:1.1rem;font-weight:900}.haunt-control button:disabled{opacity:.35;cursor:not-allowed}.haunt-control strong{text-align:center;font-size:1.2rem}.own-block{border:1px dashed var(--line);border-radius:10px;padding:9px;text-align:center;color:var(--muted);font-size:.72rem;font-weight:800}

/* V11 — assombrações simplificadas */
.haunt-target-tabs{margin:14px 0 12px}
.haunt-pane{display:none}.haunt-pane.active{display:block}
.contest-explain{display:grid;gap:4px;border:1px solid var(--line);border-radius:14px;padding:12px;margin:0 0 12px;background:rgba(255,255,255,.035)}
.contest-explain b{font-size:.9rem}.contest-explain span{font-size:.74rem;color:var(--muted);line-height:1.45}
.house-secret-explain{border-color:rgba(88,214,141,.24);background:rgba(88,214,141,.06)}
.fantasy-live-explain{border-color:rgba(142,92,255,.28);background:rgba(142,92,255,.07)}
.photo-vote-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vote-card{align-content:start}.vote-card .visual{height:190px}
.vote-main-photo-btn{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.vote-main-photo{display:block;width:100%;height:100%;object-fit:cover;border-radius:9px}
.vote-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;height:34px}
.vote-thumb{padding:0;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#0c0810;overflow:hidden;opacity:.72}
.vote-thumb.active{opacity:1;border-color:var(--orange);box-shadow:0 0 0 1px rgba(255,122,24,.3)}
.vote-thumb img{width:100%;height:32px;object-fit:cover;display:block}
.received-total{border-radius:9px;padding:8px!important;font-weight:800}.received-total.secret{background:rgba(255,209,102,.07);color:#eedfb4!important}.received-total.reveal{background:rgba(88,214,141,.08);color:#bdf1cf!important}.received-total.gaspar-live{background:rgba(142,92,255,.11);color:#dfd1ff!important}
.my-allocation{font-size:.7rem;color:#d8cde0;border-top:1px solid var(--line);padding-top:7px}.best-costume-label{font-size:.64rem;font-weight:950;letter-spacing:.08em;color:#ffd98c;text-transform:uppercase}
.muted-block{opacity:.8}
.photo-viewer-dialog{width:min(980px,calc(100% - 20px));max-height:95dvh}.photo-viewer-card{position:relative;background:#08050b;border:1px solid var(--line);border-radius:18px;padding:10px;display:grid;place-items:center}.photo-viewer-card img{display:block;max-width:100%;max-height:88dvh;object-fit:contain;border-radius:12px}.photo-viewer-close{position:absolute;right:16px;top:16px;z-index:2;background:rgba(17,10,24,.88)}
@media(max-width:620px){.photo-vote-grid{grid-template-columns:1fr}.vote-card .visual{height:230px}.vote-thumbs{grid-template-columns:repeat(5,1fr)}}

/* ===== Base — viewport fixo no mapa, navegação inferior full-width e marcadores enriquecidos ===== */
html.app-open,body.app-open{height:100%;overflow:hidden}
.app{width:100%;max-width:none!important;height:100dvh;min-height:0;padding-bottom:0!important;margin:0!important;display:flex;flex-direction:column;overflow:hidden;border:0!important}
.topbar{position:relative;top:auto;flex:0 0 70px;height:70px;min-height:70px;width:100%;z-index:1000}
.screen{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}
.screen.active{display:block}
#screen-map{padding:0!important;overflow:hidden!important;min-height:0}
#screen-map.active{display:flex!important;flex-direction:column}
#screen-map .map-wrap{height:auto!important;min-height:0!important;flex:1 1 auto;position:relative}
#screen-map #eventNotice{flex:0 0 auto;margin:5px 8px;padding:7px 10px;min-height:0;max-height:42px;overflow:hidden;font-size:.69rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bottom-nav{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-width:none!important;flex:0 0 calc(68px + env(safe-area-inset-bottom));min-height:68px;padding:5px 0 env(safe-area-inset-bottom)!important;margin:0!important;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:rgba(13,8,18,.98);border-top:1px solid rgba(255,255,255,.15);box-shadow:0 -8px 24px rgba(0,0,0,.28);backdrop-filter:blur(18px);z-index:1200}
.bottom-nav button{min-width:0;border-radius:0!important;padding:4px 2px!important}
.bottom-nav button span{font-size:1.28rem}.bottom-nav button b{font-size:.68rem;white-space:nowrap}
.bottom-nav button.active{background:linear-gradient(180deg,rgba(255,122,24,.12),rgba(255,122,24,.04));box-shadow:inset 0 3px 0 rgba(255,122,24,.8)}

/* Status visual anexado ao mesmo marcador da casa */
.marker-core{display:inline-block;position:relative;z-index:2}
.candy-status-badge{position:absolute;z-index:6;right:-14px;top:-13px;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 3px;border-radius:999px;background:rgba(18,11,25,.94);border:1px solid rgba(255,255,255,.82);font-size:13px;line-height:1;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45));transform-origin:center}
.candy-available{animation:candyBadgeGlow 1.1s ease-in-out infinite}
.candy-low{font-size:11px;min-width:30px;animation:candyBadgeLow .9s ease-in-out infinite}
.candy-paused{opacity:.85}
@keyframes candyBadgeGlow{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,180,55,.1)}50%{transform:scale(1.17);box-shadow:0 0 0 5px rgba(255,180,55,.12)}}
@keyframes candyBadgeLow{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.12) rotate(2deg)}}

/* Movimentos sutis: divertidos sem deixar o mapa agitado */
.marker-child .marker-core{display:inline-block;transform-origin:50% 80%}
.motion-float .marker-core{animation:fantasyFloat 2.2s ease-in-out infinite}
.motion-flap .marker-core{animation:fantasyFlap 1.05s ease-in-out infinite}
.motion-shiver .marker-core{animation:fantasyShiver 1.8s ease-in-out infinite}
.motion-bob .marker-core{animation:fantasyBob 1.45s ease-in-out infinite}
@keyframes fantasyFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@keyframes fantasyFlap{0%,100%{transform:translateY(0) scaleX(1)}50%{transform:translateY(-4px) scaleX(.82)}}
@keyframes fantasyShiver{0%,80%,100%{transform:translateX(0)}84%{transform:translateX(-2px) rotate(-2deg)}88%{transform:translateX(2px) rotate(2deg)}92%{transform:translateX(-1px)}}
@keyframes fantasyBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px) scale(1.05)}}

/* Ações de fantasia mais organizadas */
.child-actions{align-content:center}
.child-actions button[data-edit-child]{background:rgba(255,209,102,.1);border-color:rgba(255,209,102,.25)}

@media(max-width:720px){
  .topbar{flex-basis:64px;height:64px;min-height:64px;padding:8px 10px}
  .topbar-logo{width:38px;height:38px}
  .topbar .eyebrow{font-size:.61rem}.topbar h2{font-size:1.05rem}
  #screen-map #eventNotice{margin:4px 6px;max-height:38px;font-size:.65rem;padding:6px 8px}
  .bottom-nav{flex-basis:calc(64px + env(safe-area-inset-bottom));min-height:64px}
  .bottom-nav button span{font-size:1.18rem}.bottom-nav button b{font-size:.62rem}
}

@media(max-height:650px){
  .topbar{flex-basis:58px;height:58px;min-height:58px}
  #screen-map #eventNotice{display:none}
  .bottom-nav{flex-basis:58px;min-height:58px}
  .bottom-nav button span{font-size:1.05rem}
}

/* ===== V13 — mapa 2D simplificado, resumo no cabeçalho e toolbar única ===== */
.topbar{
  position:relative!important;top:auto!important;height:auto!important;min-height:0!important;flex:0 0 auto!important;
  width:100%;padding:6px 10px;display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;
  align-items:center;gap:5px 8px;background:rgba(17,10,24,.96);border-bottom:1px solid var(--line);z-index:1000
}
.topbar-brand{grid-column:1;grid-row:1;min-width:0;gap:8px}
.topbar-logo{width:38px!important;height:38px!important;flex:0 0 38px!important}
.topbar .eyebrow{font-size:.58rem!important;letter-spacing:.1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar h2{font-size:1.03rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{grid-column:2;grid-row:1;display:flex;gap:6px;align-items:center;justify-content:flex-end}
.top-actions .icon-btn{width:38px;height:38px;border-radius:11px;font-size:1.25rem;font-weight:900}
.map-header-metrics{
  grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;min-width:0;
  border-top:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:9px;overflow:hidden
}
.map-header-metrics>div{min-width:0;text-align:center;padding:4px 3px;border-right:1px solid rgba(255,255,255,.08)}
.map-header-metrics>div:last-child{border-right:0}
.map-header-metrics b,.map-header-metrics span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-header-metrics b{font-size:.78rem;line-height:1.05;color:#fff}
.map-header-metrics span{font-size:.49rem;line-height:1.15;color:var(--muted);font-weight:800;margin-top:2px;text-transform:uppercase;letter-spacing:.025em}
.app:not(.map-screen-active) .map-header-metrics{display:none}
.app:not(.map-screen-active) .topbar{grid-template-rows:auto;padding-top:8px;padding-bottom:8px}

#screen-map{padding:0!important;overflow:hidden!important;min-height:0}
#screen-map.active{display:flex!important;flex-direction:column}
#screen-map .map-wrap{height:auto!important;min-height:0!important;flex:1 1 auto;position:relative}
#screen-map #eventNotice{flex:0 0 auto;margin:4px 7px;padding:6px 9px;min-height:0;max-height:36px;overflow:hidden;font-size:.66rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* Uma única linha: filtros à esquerda, Mapa/Satélite fixos à direita */
.map-toolbar{position:absolute;z-index:560;left:8px;right:8px;top:8px;display:flex;align-items:stretch;gap:5px;min-width:0}
.map-filter-bar{
  position:static!important;left:auto!important;right:auto!important;top:auto!important;flex:1 1 auto;min-width:0;
  display:flex;gap:3px;overflow-x:auto;padding:3px;background:rgba(17,10,24,.91);backdrop-filter:blur(12px);
  border:1px solid var(--line);border-radius:12px;box-shadow:0 5px 16px rgba(0,0,0,.24);scrollbar-width:none
}
.map-filter-bar::-webkit-scrollbar{display:none}
.map-filter-bar button{flex:0 0 auto;white-space:nowrap;border:1px solid transparent;background:transparent;color:#d8c9df;border-radius:8px;padding:7px 8px;font-size:.67rem;font-weight:850}
.map-filter-bar button.active{background:var(--panel2);border-color:rgba(255,255,255,.12);color:#fff}
.map-style-switch{
  position:static!important;left:auto!important;right:auto!important;top:auto!important;flex:0 0 auto;display:flex;gap:2px;padding:3px;
  border:1px solid var(--line);border-radius:12px;background:rgba(17,10,24,.94);backdrop-filter:blur(12px);box-shadow:0 5px 16px rgba(0,0,0,.24)
}
.map-style-switch button{border:0;background:transparent;color:#cbbbd2;border-radius:8px;padding:7px 8px;font-size:.67rem;font-weight:850;white-space:nowrap}
.map-style-switch button.active{background:var(--panel2);color:#fff}

/* O perímetro do condomínio continua válido para regras de GPS, mas não é desenhado no mapa público. */
.map-float.bottom{bottom:8px;gap:5px;justify-content:center}
.map-float.bottom .btn{padding:8px 9px;font-size:.7rem;box-shadow:0 5px 15px rgba(0,0,0,.25)}

/* Navegação inferior ocupa toda a borda inferior; só os demais menus rolam. */
.bottom-nav{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-width:none!important;margin:0!important}

@media(min-width:900px){
  .topbar{grid-template-columns:auto minmax(420px,1fr) auto;grid-template-rows:auto;padding:7px 12px;gap:12px}
  .topbar-brand{grid-column:1;grid-row:1}.map-header-metrics{grid-column:2;grid-row:1}.top-actions{grid-column:3;grid-row:1}
  .map-header-metrics b{font-size:.86rem}.map-header-metrics span{font-size:.52rem}
}
@media(max-width:520px){
  .topbar{padding:5px 6px;gap:4px 5px}
  .topbar-logo{width:34px!important;height:34px!important;flex-basis:34px!important}
  .topbar .eyebrow{font-size:.52rem!important}.topbar h2{font-size:.94rem!important}
  .top-actions .icon-btn{width:34px;height:34px;font-size:1.12rem}
  .map-header-metrics>div{padding:3px 1px}.map-header-metrics b{font-size:.7rem}.map-header-metrics span{font-size:.43rem;letter-spacing:0}
  .map-toolbar{left:5px;right:5px;top:5px;gap:3px}
  .map-filter-bar{padding:2px;gap:1px}.map-filter-bar button{padding:6px 7px;font-size:.61rem}
  .map-style-switch{padding:2px;gap:1px}.map-style-switch button{padding:6px 6px;font-size:.61rem}
  .map-float.bottom{left:5px;right:5px}.map-float.bottom .btn{padding:7px 7px;font-size:.64rem}
  #screen-map #eventNotice{margin:3px 5px;padding:5px 7px;max-height:32px;font-size:.61rem}
}
@media(max-height:650px){
  .map-header-metrics>div{padding:2px 1px}.map-header-metrics span{display:none}.map-header-metrics b{font-size:.68rem}
  #screen-map #eventNotice{display:none}
}

/* ===== V14 — identidade visual inspirada no mockup aprovado ===== */
:root{
  --bg:#07111f;--panel:#0b1725;--panel2:#14263a;--text:#f7f8fa;--muted:#b8c1cd;
  --orange:#ff8a00;--orange2:#ffad35;--purple:#8393a8;--green:#68d85d;--red:#ff4b35;
  --yellow:#ffd52f;--line:rgba(255,255,255,.14);--shadow:0 16px 38px rgba(0,0,0,.38)
}
html,body{background:#07111f;color:var(--text)}
body{background:linear-gradient(180deg,#06101c 0,#0a1625 45%,#07111f 100%)}

/* cabeçalho cinematográfico */
.topbar.halloween-topbar{
  display:grid!important;grid-template-columns:minmax(260px,340px) minmax(420px,1fr) auto!important;
  grid-template-rows:auto!important;align-items:center!important;gap:14px!important;
  padding:8px 16px!important;background:
    radial-gradient(circle at 18% 15%,rgba(255,126,0,.14),transparent 23%),
    linear-gradient(180deg,#06101c 0,#081523 100%)!important;
  border-bottom:1px solid rgba(255,255,255,.16)!important;box-shadow:0 8px 28px rgba(0,0,0,.26)
}
.halloween-wordmark{display:flex!important;align-items:center;gap:10px!important;min-width:0}
.halloween-wordmark .topbar-logo{width:62px!important;height:62px!important;flex:0 0 62px!important;filter:drop-shadow(0 5px 14px rgba(255,126,0,.16))}
.wordmark-copy{display:grid;line-height:.9;min-width:0}
.wordmark-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:2rem;letter-spacing:-.055em;color:#ff8a00;text-shadow:0 2px 0 #4c1e00,0 0 14px rgba(255,138,0,.2);white-space:nowrap}
.wordmark-copy span{font-size:.68rem;font-weight:950;letter-spacing:.24em;color:#ffd09a;margin-top:5px;white-space:nowrap}
.headline-zone{display:grid;gap:5px;align-items:center;min-width:0}
.headline-zone #screenTitle{margin:0!important;text-align:center;color:#ff8a00;font-size:1.12rem!important;line-height:1.1;font-weight:950;letter-spacing:.01em;text-shadow:0 1px 12px rgba(255,138,0,.12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-header-metrics{display:flex!important;align-items:center;justify-content:center;gap:0;background:transparent!important;border:0!important;border-radius:0!important;overflow:visible!important;min-width:0}
.map-header-metrics>div{display:grid!important;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:7px;align-items:center;justify-content:center;min-width:94px;padding:2px 14px!important;border-right:1px solid rgba(255,255,255,.14)!important}
.map-header-metrics>div:last-child{border-right:0!important}
.map-header-metrics .metric-icon{grid-row:1/3;grid-column:1;font-size:1.55rem;line-height:1;filter:drop-shadow(0 2px 5px rgba(0,0,0,.35))}
.map-header-metrics .metric-check{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#71db51;color:#07111f;font-size:1.15rem;font-weight:950}
.map-header-metrics b{grid-column:2;grid-row:1;font-size:1.18rem!important;line-height:1!important;color:#fff!important;text-align:left}
.map-header-metrics small{grid-column:2;grid-row:2;font-size:.58rem;color:#c3cad3;text-transform:uppercase;font-weight:900;letter-spacing:.035em;white-space:nowrap}
.top-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px!important;min-width:0}
.install-action,.refresh-action,.header-profile{border:1px solid rgba(255,255,255,.12);color:white;font:inherit;cursor:pointer}
.install-action{height:43px;border-radius:12px;padding:0 16px;display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,#ff9814,#f17800);box-shadow:0 7px 18px rgba(255,126,0,.2);font-weight:900}
.install-action span{font-size:1.3rem}.install-action b{white-space:nowrap}
.refresh-action{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:#142437;font-size:1.5rem;font-weight:900}
.refresh-action:hover{background:#1a3047}.refresh-action:active{transform:scale(.96)}
.header-profile{min-height:48px;padding:4px 10px 4px 5px;border-radius:13px;background:transparent;display:flex;align-items:center;gap:8px;text-align:left}
.header-profile img{width:40px;height:40px;object-fit:contain;border-radius:50%;background:#102234;border:1px solid rgba(255,138,0,.35)}
.header-profile span{display:grid;font-size:.68rem;color:#d5d9df;line-height:1.15;max-width:130px}.header-profile b{font-size:.77rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-pill.demo{background:#ff8a00!important;color:#07111f!important;border-color:#ffb653!important}

/* mapa dominante */
#screen-map{background:#07111f!important;position:relative}
#screen-map .map-wrap{background:#10202d!important;border-bottom:1px solid rgba(255,255,255,.12)}
#map{background:#10202d!important}
.leaflet-control-zoom a{background:#102031!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important}
.leaflet-control-zoom a:hover{background:#183047!important}
.leaflet-control-attribution{background:rgba(6,16,28,.76)!important;color:#d0d6df!important}
.leaflet-control-attribution a{color:#ffb35b!important}

/* barra de filtros como no mockup */
.map-toolbar{left:0!important;right:0!important;top:0!important;gap:0!important;padding:7px 14px!important;background:rgba(6,16,28,.96);border-bottom:1px solid rgba(255,255,255,.16);box-shadow:0 5px 18px rgba(0,0,0,.2);align-items:center!important}
.map-filter-bar{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;padding:0!important;gap:8px!important}
.map-filter-bar button{min-height:35px;border:1px solid rgba(255,255,255,.28)!important;border-radius:999px!important;padding:7px 17px!important;background:#132234!important;color:#f0f3f6!important;font-size:.73rem!important;font-weight:850!important}
.map-filter-bar button.active{background:linear-gradient(180deg,#ff9a16,#ff7a00)!important;border-color:#ffb04d!important;color:#07111f!important;box-shadow:0 5px 12px rgba(255,126,0,.17)}
.map-filter-bar button.candy-live:not(.active){background:#132234!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;animation:none!important}
.map-style-switch{background:#132234!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:999px!important;box-shadow:none!important;padding:3px!important;gap:2px!important;margin-left:auto}
.map-style-switch button{border-radius:999px!important;padding:7px 15px!important;font-size:.72rem!important;color:#fff!important}
.map-style-switch button.active{background:#f5f7fa!important;color:#07111f!important;font-weight:950!important}

/* carteira compacta sobre o mapa */
.map-wallet-hud{position:absolute;z-index:545;left:14px;top:59px;display:flex;gap:7px;pointer-events:none}
.wallet-chip{display:flex;align-items:center;gap:6px;min-height:36px;padding:5px 9px 5px 6px;border-radius:12px;background:rgba(5,14,24,.88);border:1px solid rgba(255,255,255,.18);box-shadow:0 5px 15px rgba(0,0,0,.25);backdrop-filter:blur(8px)}
.wallet-chip img{width:27px;height:27px;object-fit:contain}.wallet-chip span{display:grid;line-height:1}.wallet-chip b{font-size:.88rem}.wallet-chip small{font-size:.5rem;color:#bec7d2;text-transform:uppercase;font-weight:900;letter-spacing:.04em;margin-top:3px}

/* controles de ação inferiores no mapa */
.map-float.bottom{bottom:10px!important;left:50%!important;right:auto!important;transform:translateX(-50%);gap:7px!important;background:rgba(7,17,31,.78);border:1px solid rgba(255,255,255,.14);padding:5px;border-radius:14px;backdrop-filter:blur(10px);box-shadow:0 7px 18px rgba(0,0,0,.25)}
.map-float.bottom .btn{border-radius:10px!important;background:#14263a!important;border:1px solid rgba(255,255,255,.16)!important;color:#fff!important}
.map-float.bottom .ghost-scan-btn{background:linear-gradient(180deg,#ff9814,#f17800)!important;color:#07111f!important;border-color:#ffaf45!important}
.map-float.bottom .accent{background:#6d49e8!important;border-color:#8d72f0!important}

/* marcadores com badges negros e tokens próprios */
.marker-house,.marker-child{filter:drop-shadow(0 3px 4px rgba(0,0,0,.55))!important}
.marker-house{font-size:34px!important}.marker-child{font-size:36px!important}
.map-score-badge{height:23px!important;min-width:39px!important;padding:2px 6px 2px 3px!important;border-radius:9px!important;background:rgba(4,13,21,.95)!important;border:1px solid rgba(255,255,255,.22)!important;color:#fff!important;font-size:.62rem!important;gap:2px;box-shadow:0 3px 8px rgba(0,0,0,.42)!important}
.map-score-badge img{width:19px;height:19px;object-fit:contain;display:inline-block;vertical-align:middle}
.house-score{right:-20px!important;top:-15px!important}.fantasy-score{right:-19px!important;top:-14px!important}
.candy-status-badge{right:-19px!important;top:16px!important;background:transparent!important;border:0!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55))!important;font-size:17px!important;min-width:auto!important;height:auto!important;padding:0!important}
.candy-low{font-size:14px!important}
.visit-mini-badge{left:-10px!important;bottom:-10px!important;background:#fff!important;color:#07111f!important;border:2px solid rgba(7,17,31,.82)!important;min-width:22px!important;height:22px!important;font-size:.62rem!important;border-radius:50%!important;padding:0!important}
.marker-house.visited .visit-mini-badge{background:#70db55!important;color:#07111f!important;border-color:#153c1d!important}
.marker-house.unvisited .visit-mini-badge{background:#fff!important;color:#07111f!important;border-color:#22364a!important}
.soldout-stamp{bottom:-16px!important;left:50%;transform:translateX(-50%) rotate(-2deg)!important;background:#ff3b22!important;border:1px solid #fff!important;border-radius:5px!important;padding:3px 6px!important;font-size:.58rem!important;white-space:nowrap}

/* popup escuro */
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#081522!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)}
.leaflet-popup-content-wrapper{border-radius:14px!important;box-shadow:0 12px 28px rgba(0,0,0,.42)!important}
.leaflet-popup-content{margin:10px!important;min-width:220px}
.map-popup-card{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px;align-items:start}.map-popup-photo,.map-popup-fallback{width:78px;height:86px;border-radius:10px;object-fit:cover;border:1px solid rgba(255,255,255,.15);background:#122336}.map-popup-fallback{display:grid;place-items:center;font-size:2.9rem}.map-popup-copy{display:grid;gap:5px;min-width:0}.map-popup-copy strong{font-size:.92rem}.map-popup-copy span,.map-popup-copy small{font-size:.68rem;line-height:1.35;color:#d7dce3}.popup-status{font-weight:900;color:#ffb55e!important}.popup-status.soldout{color:#ff735f!important}.popup-token{display:flex!important;align-items:center;gap:4px}.popup-token img{width:19px;height:19px}.popup-qr-btn{border:0;border-radius:8px;background:#ff8a00;color:#07111f;font-weight:900;padding:7px 8px;font-size:.67rem;cursor:pointer}
.fantasy-popup-card{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center}.fantasy-popup-avatar{width:58px;height:58px;display:grid;place-items:center;font-size:2.4rem;border-radius:12px;background:#122336}.fantasy-popup-card>div:last-child{display:grid;gap:4px}.fantasy-popup-card strong{font-size:.9rem}.fantasy-popup-card span{font-size:.69rem;color:#d6dce4}.fantasy-popup-card small{font-size:.68rem;color:#d6dce4}

/* legenda fixa entre mapa e navegação */
.map-legend-strip{flex:0 0 auto;min-height:42px;display:flex;align-items:center;justify-content:center;gap:22px;padding:5px 14px;background:#071421;border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.12);overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.map-legend-strip::-webkit-scrollbar{display:none}.map-legend-strip>div{display:flex;align-items:center;gap:6px;font-size:.61rem;color:#e1e6ec}.map-legend-strip img{width:24px;height:24px}.legend-candy{font-size:1.2rem}.legend-low{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ffd52f;font-size:.9rem}.legend-sold{display:inline-flex;align-items:center;background:#ff3b22;color:#fff;border-radius:5px;padding:3px 5px;font-size:.52rem;font-weight:950}.legend-visited,.legend-unvisited{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:950}.legend-visited{background:#6ed650;color:#07111f}.legend-unvisited{background:#fff;color:#07111f}
#screen-map #eventNotice{display:none!important}

/* navegação inferior igual ao conceito visual */
.bottom-nav{background:linear-gradient(180deg,#0a1826,#07111f)!important;border-top:1px solid rgba(255,255,255,.15)!important;box-shadow:0 -8px 24px rgba(0,0,0,.24)!important;padding-top:0!important}
.bottom-nav button{color:#b9c3cf!important;min-height:68px;gap:3px!important;position:relative}
.bottom-nav button span{font-size:1.42rem!important;filter:grayscale(.25)}
.bottom-nav button b{font-size:.72rem!important;font-weight:750}
.bottom-nav button.active{color:#ff9718!important;background:linear-gradient(180deg,rgba(255,138,0,.11),rgba(255,138,0,0))!important;box-shadow:inset 0 4px 0 #ff8a00!important}
.bottom-nav button.active span{filter:none}

/* demais telas acompanham a identidade */
.section-card,.modal-card{background:linear-gradient(180deg,#0d1c2b,#091522)!important;border-color:rgba(255,255,255,.13)!important}
.btn.primary{background:linear-gradient(180deg,#ff9814,#f17800)!important;color:#07111f!important}
.btn.ghost{background:#14263a!important}.segmented,.admin-tabs{background:#081522!important}.segmented button.active,.admin-tabs button.active{background:#183047!important}
input{background:#081522!important;border-color:rgba(255,255,255,.16)!important}

/* Desktop grande */
@media(min-width:1100px){
  .app{max-width:none!important}
  .bottom-nav{grid-template-columns:repeat(5,1fr)!important}
}

/* Tablet e celular — mesma linguagem, sem perder a tela inteira */
@media(max-width:900px){
  .topbar.halloween-topbar{grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;padding:6px 8px!important;gap:5px 8px!important}
  .halloween-wordmark{grid-column:1;grid-row:1}.halloween-wordmark .topbar-logo{width:42px!important;height:42px!important;flex-basis:42px!important}.wordmark-copy strong{font-size:1.3rem}.wordmark-copy span{font-size:.48rem;letter-spacing:.18em}
  .top-actions{grid-column:2;grid-row:1}.headline-zone{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center}
  .headline-zone #screenTitle{font-size:.86rem!important;text-align:left;max-width:220px}
  .map-header-metrics{justify-content:flex-end!important}
  .map-header-metrics>div{min-width:68px!important;padding:1px 7px!important;column-gap:4px}.map-header-metrics .metric-icon{font-size:1.05rem}.map-header-metrics .metric-check{width:23px;height:23px;font-size:.82rem}.map-header-metrics b{font-size:.86rem!important}.map-header-metrics small{font-size:.45rem}
  .header-profile{display:none}.install-action{width:38px;height:38px;padding:0;justify-content:center}.install-action b{display:none}.refresh-action{width:38px;height:38px}
  .map-legend-strip{justify-content:flex-start;gap:16px;padding:4px 8px;min-height:38px}.map-legend-strip>div{font-size:.56rem}.map-legend-strip img{width:21px;height:21px}
}

@media(max-width:600px){
  .topbar.halloween-topbar{padding:4px 6px!important}
  .halloween-wordmark .topbar-logo{width:36px!important;height:36px!important;flex-basis:36px!important}.wordmark-copy strong{font-size:1.08rem}.wordmark-copy span{font-size:.41rem}
  .headline-zone{grid-template-columns:1fr;gap:3px}.headline-zone #screenTitle{font-size:.72rem!important;max-width:none;text-align:center;order:2;color:#ffad35}.map-header-metrics{order:1;width:100%;justify-content:space-between!important}
  .map-header-metrics>div{flex:1 1 25%;min-width:0!important;padding:1px 3px!important}.map-header-metrics .metric-icon{font-size:.9rem}.map-header-metrics .metric-check{width:20px;height:20px;font-size:.72rem}.map-header-metrics b{font-size:.72rem!important}.map-header-metrics small{font-size:.39rem;letter-spacing:0}
  .install-action,.refresh-action{width:34px;height:34px;border-radius:10px}.install-action span{font-size:1.05rem}.refresh-action{font-size:1.2rem}
  .map-toolbar{padding:5px 5px!important}.map-filter-bar{gap:4px!important}.map-filter-bar button{min-height:31px;padding:5px 9px!important;font-size:.61rem!important}.map-style-switch button{padding:5px 8px!important;font-size:.61rem!important}
  .map-wallet-hud{left:6px;top:47px;gap:4px}.wallet-chip{min-height:30px;padding:3px 6px 3px 4px}.wallet-chip img{width:22px;height:22px}.wallet-chip b{font-size:.74rem}.wallet-chip small{font-size:.42rem}
  .map-float.bottom{bottom:6px!important;padding:3px;gap:3px!important}.map-float.bottom .btn{padding:6px 7px!important;font-size:.59rem!important}
  .marker-house{font-size:30px!important}.marker-child{font-size:31px!important}.map-score-badge{transform:scale(.9);transform-origin:center}.map-legend-strip{min-height:34px;gap:13px}.map-legend-strip>div{font-size:.51rem}.map-legend-strip img{width:19px;height:19px}
  .bottom-nav button{min-height:60px!important}.bottom-nav button span{font-size:1.2rem!important}.bottom-nav button b{font-size:.61rem!important}
}

@media(max-height:680px) and (max-width:900px){
  .wordmark-copy span,.headline-zone #screenTitle{display:none}.topbar.halloween-topbar{grid-template-rows:auto auto!important}.map-header-metrics>div{padding:0 3px!important}.map-header-metrics small{display:none}.map-header-metrics b{font-size:.72rem!important}
  .map-legend-strip{min-height:30px}.map-legend-strip>div{font-size:.48rem}.map-legend-strip img{width:17px;height:17px}
  .bottom-nav button{min-height:54px!important}
}
.inline-token{width:1.35em;height:1.35em;object-fit:contain;vertical-align:-.32em;margin-right:.18em}.token-reward{display:inline-flex!important;align-items:center;gap:3px}.token-reward img{width:18px;height:18px}.ghost-token b{display:flex!important;align-items:center;gap:3px}
.app:not(.map-screen-active) .map-header-metrics{display:none!important}
.app:not(.map-screen-active) .headline-zone{display:flex;align-items:center;justify-content:center}
.app:not(.map-screen-active) .headline-zone #screenTitle{text-align:center;color:#fff}

/* ===== V15 — reprodução fiel do mockup aprovado ===== */
:root{
  --mock-navy:#07131f;
  --mock-navy-2:#0a1b2a;
  --mock-panel:#0d2030;
  --mock-line:rgba(205,223,238,.22);
  --mock-orange:#ff8a00;
  --mock-orange-2:#ff9f1c;
  --mock-text:#f7f9fb;
  --mock-muted:#bbc6d2;
}

html,body{width:100%;height:100%;overflow:hidden!important;background:var(--mock-navy)!important}
body{background:linear-gradient(180deg,#07111c 0,#0a1724 100%)!important}

/* O aplicativo passa a ocupar exatamente o viewport: cabeçalho + tela + barra inferior. */
.app{
  width:100%!important;max-width:none!important;height:100dvh!important;min-height:0!important;
  padding:0!important;margin:0!important;display:grid!important;
  grid-template-columns:1fr;grid-template-rows:122px minmax(0,1fr) 98px;
  overflow:hidden!important;background:var(--mock-navy)!important;
}
.app>.topbar{grid-row:1;grid-column:1}.app>.screen{grid-row:2;grid-column:1}.app>.bottom-nav{grid-row:3;grid-column:1}
.screen{min-height:0!important;max-height:none!important;overflow:auto;padding:14px 16px!important;background:linear-gradient(180deg,#091725,#07131f)!important}
.screen:not(.active){display:none!important}.screen.active{display:block!important}
#screen-map.active{display:grid!important;grid-template-rows:minmax(0,1fr) 50px!important;overflow:hidden!important;padding:0!important;background:#07131f!important}

/* Cabeçalho: proporções e composição do mockup. */
.topbar.halloween-topbar{
  position:relative!important;inset:auto!important;height:122px!important;min-height:122px!important;
  display:grid!important;grid-template-columns:minmax(300px,390px) minmax(520px,1fr) auto!important;
  grid-template-rows:1fr!important;align-items:center!important;gap:16px!important;
  padding:0 24px 0 0!important;margin:0!important;
  background:linear-gradient(180deg,#07111d 0%,#081521 100%)!important;
  border:0!important;border-bottom:1px solid rgba(170,196,217,.34)!important;
  box-shadow:0 7px 22px rgba(0,0,0,.34)!important;z-index:1200!important;overflow:hidden!important;
}
.topbar.halloween-topbar:after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:5px;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,138,0,.0),rgba(255,138,0,.18) 24%,rgba(255,255,255,.06) 60%,rgba(255,138,0,0));
}
.halloween-wordmark{height:100%!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;min-width:0!important;overflow:hidden!important}
.halloween-wordmark-img{width:min(390px,100%)!important;height:122px!important;object-fit:cover!important;object-position:left top!important;display:block!important;mix-blend-mode:normal;filter:none!important}
.headline-zone{display:grid!important;grid-template-rows:auto auto!important;gap:9px!important;align-content:center!important;justify-items:center!important;min-width:0!important}
.headline-zone #screenTitle{margin:0!important;color:var(--mock-orange)!important;font-size:1.28rem!important;line-height:1!important;font-weight:950!important;letter-spacing:.005em;text-align:center!important;white-space:nowrap!important;text-shadow:0 1px 12px rgba(255,138,0,.16)!important}
.map-header-metrics{display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;width:auto!important;min-width:0!important;background:transparent!important;border:0!important;overflow:visible!important}
.map-header-metrics>div{display:grid!important;grid-template-columns:36px auto!important;grid-template-rows:auto auto!important;column-gap:8px!important;row-gap:0!important;align-items:center!important;justify-content:center!important;min-width:118px!important;padding:2px 18px!important;border-right:1px solid rgba(255,255,255,.15)!important}
.map-header-metrics>div:last-child{border-right:0!important}
.map-header-metrics .metric-icon{grid-column:1!important;grid-row:1/3!important;display:grid!important;place-items:center!important;font-size:1.7rem!important;line-height:1!important;filter:drop-shadow(0 2px 4px rgba(0,0,0,.34))!important}
.map-header-metrics .metric-check{width:34px!important;height:34px!important;border-radius:50%!important;background:#73da4f!important;color:#07131f!important;font-size:1.15rem!important;font-weight:950!important}
.map-header-metrics b{grid-column:2!important;grid-row:1!important;font-size:1.35rem!important;line-height:1!important;color:white!important;text-align:left!important;font-weight:950!important}
.map-header-metrics small{grid-column:2!important;grid-row:2!important;font-size:.59rem!important;line-height:1!important;color:#c4cbd4!important;text-transform:uppercase!important;font-weight:900!important;letter-spacing:.03em!important;white-space:nowrap!important;margin-top:4px!important}
.top-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:12px!important;min-width:0!important;height:100%!important}
.install-action{height:52px!important;border-radius:13px!important;padding:0 20px!important;background:linear-gradient(180deg,#ff9b12,#f47b00)!important;color:#fff!important;border:1px solid #ffae42!important;box-shadow:0 7px 16px rgba(255,126,0,.16)!important;font-size:.9rem!important}
.install-action span{font-size:1.4rem!important}.install-action b{font-size:.92rem!important}
.refresh-action{width:52px!important;height:52px!important;border-radius:13px!important;background:#18293a!important;border:1px solid rgba(255,255,255,.08)!important;color:#fff!important;display:grid!important;place-items:center!important;padding:0!important}
.refresh-action svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.refresh-action:hover{background:#20364b!important}.refresh-action:active{transform:scale(.96)}
.header-profile{min-width:205px!important;min-height:64px!important;border:0!important;border-left:1px solid rgba(255,255,255,.13)!important;border-radius:0!important;padding:4px 0 4px 16px!important;background:transparent!important;gap:11px!important;position:relative!important}
.header-profile img{width:54px!important;height:54px!important;border-radius:50%!important;background:#112233!important;border:2px solid rgba(255,91,25,.6)!important;box-shadow:0 0 0 2px rgba(8,20,31,.9)!important}
.header-profile span{font-size:.74rem!important;color:#e0e5ea!important;line-height:1.15!important;max-width:126px!important;padding-bottom:14px!important}
.header-profile b{font-size:.83rem!important;color:white!important;margin-top:3px!important}
.header-profile:after{content:"Ver perfil ›";position:absolute;left:81px;bottom:7px;font-size:.65rem;color:#d2dae2;font-weight:650;white-space:nowrap}

/* A aba mapa é uma composição fechada: filtros + mapa + legenda. */
#screen-map .map-wrap{height:auto!important;min-height:0!important;position:relative!important;overflow:hidden!important;background:#0d1d29!important;border:0!important}
#screen-map #map{position:absolute!important;left:0!important;right:0!important;top:59px!important;bottom:0!important;width:auto!important;height:auto!important;background:#122331!important}
.map-toolbar{
  position:absolute!important;z-index:580!important;left:0!important;right:0!important;top:0!important;height:59px!important;
  display:flex!important;align-items:center!important;gap:14px!important;padding:8px 26px 8px 36px!important;
  background:linear-gradient(180deg,#0c1d2c,#0a1927)!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.17)!important;
  box-shadow:none!important;backdrop-filter:none!important;overflow:hidden!important
}
.map-filter-bar{display:flex!important;align-items:center!important;gap:10px!important;flex:1 1 auto!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;white-space:nowrap!important}
.map-filter-bar::-webkit-scrollbar{display:none}
.map-filter-bar button{flex:0 0 auto!important;min-height:38px!important;padding:7px 20px!important;border-radius:999px!important;border:1px solid rgba(208,225,239,.42)!important;background:#152738!important;color:#f4f6f8!important;font-size:.78rem!important;font-weight:800!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)!important}
.map-filter-bar button.active{background:linear-gradient(180deg,#ff9f20,#ff8200)!important;border-color:#ffb04c!important;color:#08131e!important;box-shadow:0 4px 12px rgba(255,126,0,.18)!important}
.map-filter-bar button.candy-live:not(.active){animation:none!important;background:#152738!important;color:#fff!important}
.map-style-switch{display:flex!important;align-items:center!important;gap:2px!important;flex:0 0 auto!important;margin-left:auto!important;padding:3px!important;border-radius:999px!important;background:#152738!important;border:1px solid rgba(208,225,239,.34)!important;box-shadow:none!important}
.map-style-switch button{height:37px!important;padding:0 17px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:#fff!important;font-size:.78rem!important;font-weight:800!important}
.map-style-switch button.active{background:#f4f5f7!important;color:#07131f!important;font-weight:950!important}

/* Contadores de moedas no próprio mapa, discretos como HUD. */
.map-wallet-hud{position:absolute!important;z-index:550!important;left:14px!important;top:73px!important;display:flex!important;gap:7px!important;pointer-events:none!important}
.wallet-chip{display:flex!important;align-items:center!important;gap:6px!important;min-height:36px!important;padding:4px 9px 4px 5px!important;border-radius:10px!important;background:rgba(5,15,24,.91)!important;border:1px solid rgba(255,255,255,.16)!important;box-shadow:0 4px 12px rgba(0,0,0,.3)!important;backdrop-filter:blur(8px)!important}
.wallet-chip img{width:28px!important;height:28px!important}.wallet-chip b{font-size:.88rem!important}.wallet-chip small{font-size:.48rem!important;color:#c3ccd5!important;text-transform:uppercase!important;letter-spacing:.04em!important}

/* Controles de ação do mapa: pequenos e centrados, sem cobrir a legenda. */
.map-float.bottom{left:50%!important;right:auto!important;bottom:9px!important;transform:translateX(-50%)!important;display:flex!important;justify-content:center!important;gap:7px!important;padding:5px!important;border-radius:13px!important;background:rgba(7,18,29,.82)!important;border:1px solid rgba(255,255,255,.16)!important;backdrop-filter:blur(9px)!important;box-shadow:0 6px 14px rgba(0,0,0,.28)!important}
.map-float.bottom .btn{min-height:35px!important;padding:7px 12px!important;border-radius:9px!important;background:#162a3e!important;border:1px solid rgba(255,255,255,.16)!important;color:#fff!important;font-size:.69rem!important}
.map-float.bottom .ghost-scan-btn{background:linear-gradient(180deg,#ff9c17,#f37b00)!important;color:#07131f!important;border-color:#ffaf48!important}
.map-float.bottom .accent{background:#6c50e7!important;border-color:#917cf0!important;color:#fff!important}

/* Leaflet com controles visuais iguais ao mockup. */
.leaflet-control-zoom{border:1px solid rgba(218,230,240,.5)!important;border-radius:16px!important;overflow:hidden!important;box-shadow:0 5px 12px rgba(0,0,0,.25)!important}
.leaflet-control-zoom a{width:43px!important;height:43px!important;line-height:41px!important;background:#122334!important;color:#fff!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.16)!important;font-size:1.45rem!important}
.leaflet-control-zoom a:last-child{border-bottom:0!important}
.leaflet-bottom.leaflet-right{right:6px!important;bottom:6px!important}
.leaflet-control-attribution{font-size:8px!important;opacity:.72!important;border-radius:6px 0 0 0!important}

/* Marcadores: visual forte, sem pontos duplicados. */
.marker-house,.marker-child{filter:drop-shadow(0 3px 5px rgba(0,0,0,.68))!important;isolation:isolate}
.marker-house{font-size:36px!important}.marker-child{font-size:38px!important}
.marker-core{display:inline-block;position:relative;z-index:2}
.map-score-badge{height:24px!important;min-width:40px!important;padding:2px 6px 2px 3px!important;border-radius:9px!important;background:#07131f!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;font-size:.64rem!important;font-weight:950!important;gap:2px!important;box-shadow:0 3px 7px rgba(0,0,0,.45)!important}
.map-score-badge img{width:20px!important;height:20px!important}
.house-score{right:-21px!important;top:-15px!important}.fantasy-score{right:-20px!important;top:-15px!important}
.candy-status-badge{right:-19px!important;top:16px!important;background:transparent!important;border:0!important;box-shadow:none!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))!important;font-size:19px!important;min-width:0!important;height:auto!important;padding:0!important}
.candy-available{animation:mockCandyPulse 1.3s ease-in-out infinite!important}.candy-low{font-size:16px!important;animation:mockLowPulse 1.05s ease-in-out infinite!important}
@keyframes mockCandyPulse{0%,100%{transform:scale(.92);filter:drop-shadow(0 0 2px rgba(255,118,0,.2))}50%{transform:scale(1.12);filter:drop-shadow(0 0 8px rgba(255,96,0,.85))}}
@keyframes mockLowPulse{0%,100%{transform:scale(.94)}50%{transform:scale(1.1)}}
.visit-mini-badge{left:-10px!important;bottom:-10px!important;min-width:23px!important;width:auto!important;height:23px!important;padding:0 4px!important;border-radius:50%!important;background:#fff!important;color:#07131f!important;border:2px solid #102233!important;font-size:.58rem!important;font-weight:950!important;display:grid!important;place-items:center!important}
.marker-house.visited .visit-mini-badge{background:#6cdb51!important;color:#07131f!important;border-color:#153b1d!important}
.soldout-stamp{left:50%!important;bottom:-16px!important;transform:translateX(-50%) rotate(-2deg)!important;background:#ff3d21!important;color:#fff!important;border:1px solid #fff!important;border-radius:5px!important;padding:3px 6px!important;font-size:.57rem!important;font-weight:950!important;box-shadow:0 2px 5px rgba(0,0,0,.35)!important;white-space:nowrap!important}

/* Popup: miniatura + fundo preto-azul, igual ao mockup. */
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#061521!important;color:#fff!important;border:1px solid rgba(235,244,250,.62)!important}
.leaflet-popup-content-wrapper{border-radius:15px!important;box-shadow:0 12px 26px rgba(0,0,0,.48)!important}
.leaflet-popup-content{margin:10px!important;min-width:260px!important}
.map-popup-card{display:grid!important;grid-template-columns:98px minmax(0,1fr)!important;gap:12px!important;align-items:stretch!important}
.map-popup-photo,.map-popup-fallback{width:98px!important;height:106px!important;border-radius:9px!important;border:1px solid rgba(255,255,255,.16)!important;background:#102233!important;object-fit:cover!important}
.map-popup-fallback{display:grid!important;place-items:center!important;font-size:3.4rem!important}
.map-popup-copy{display:grid!important;gap:6px!important;align-content:start!important}.map-popup-copy strong{font-size:.98rem!important;color:#fff!important}.map-popup-copy span,.map-popup-copy small{font-size:.72rem!important;color:#dce3e9!important;line-height:1.3!important}.popup-status{color:#ff9f1c!important;font-weight:950!important}.popup-status.soldout{color:#ff6048!important}.popup-qr-btn{margin-top:2px!important;min-height:31px!important;border-radius:8px!important;border:0!important;background:#ff8a00!important;color:#07131f!important;font-size:.67rem!important;font-weight:950!important}
.fantasy-popup-card{display:grid!important;grid-template-columns:86px minmax(0,1fr)!important;gap:12px!important;align-items:center!important;min-width:245px!important}
.fantasy-popup-avatar,.fantasy-popup-photo{width:86px!important;height:92px!important;border-radius:10px!important;background:#102233!important;border:1px solid rgba(255,255,255,.16)!important;object-fit:cover!important;display:grid!important;place-items:center!important;font-size:3.2rem!important}
.fantasy-popup-card>div:last-child{display:grid!important;gap:6px!important}.fantasy-popup-card strong{font-size:.98rem!important}.fantasy-popup-card span{font-size:.72rem!important;color:#dce3e9!important}.fantasy-popup-card small{font-size:.72rem!important;color:#fff!important}
.popup-token{display:flex!important;align-items:center!important;gap:5px!important}.popup-token img{width:22px!important;height:22px!important}

/* Legenda horizontal, fixa entre mapa e menu inferior. */
.map-legend-strip{grid-row:2!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:30px!important;min-height:50px!important;height:50px!important;padding:5px 22px!important;background:linear-gradient(180deg,#071723,#06131f)!important;border-top:1px solid rgba(255,255,255,.12)!important;border-bottom:1px solid rgba(255,255,255,.16)!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;white-space:nowrap!important}
.map-legend-strip::-webkit-scrollbar{display:none}.map-legend-strip>div{display:flex!important;align-items:center!important;gap:7px!important;font-size:.64rem!important;color:#f0f3f6!important}.map-legend-strip img{width:28px!important;height:28px!important}.legend-candy{font-size:1.35rem!important}.legend-low{display:inline-grid!important;place-items:center!important;width:27px!important;height:27px!important;border-radius:50%!important;background:#ffd830!important;font-size:.95rem!important}.legend-sold{background:#ff3c22!important;color:#fff!important;border-radius:6px!important;padding:4px 7px!important;font-size:.53rem!important;font-weight:950!important}.legend-visited,.legend-unvisited{display:grid!important;place-items:center!important;width:27px!important;height:27px!important;border-radius:50%!important;font-weight:950!important}.legend-visited{background:#6ad84f!important;color:#07131f!important}.legend-unvisited{background:#fff!important;color:#07131f!important}
#screen-map #eventNotice{display:none!important}

/* Menu inferior: ícones vetoriais e proporções do mockup. */
.bottom-nav{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;max-width:none!important;width:100%!important;height:98px!important;min-height:98px!important;display:grid!important;grid-template-columns:repeat(5,1fr)!important;padding:0!important;margin:0!important;background:linear-gradient(180deg,#0a1927,#07131f)!important;border:0!important;border-top:1px solid rgba(255,255,255,.16)!important;box-shadow:0 -8px 20px rgba(0,0,0,.24)!important;overflow:hidden!important;z-index:1300!important}
.bottom-nav button{position:relative!important;border:0!important;border-radius:0!important;background:transparent!important;color:#c2cad5!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-height:98px!important;padding:8px 4px 5px!important;box-shadow:none!important}
.bottom-nav button:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:transparent}
.bottom-nav button.active{color:var(--mock-orange)!important;background:linear-gradient(180deg,rgba(255,138,0,.07),rgba(255,138,0,0) 55%)!important;box-shadow:none!important}
.bottom-nav button.active:before{background:var(--mock-orange)!important;box-shadow:0 0 14px rgba(255,138,0,.38)}
.nav-icon{width:36px!important;height:36px!important;display:grid!important;place-items:center!important;font-size:0!important;filter:none!important;color:currentColor!important}
.nav-icon svg{width:35px;height:35px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav-ghost svg{fill:currentColor;stroke:currentColor}.nav-ghost svg circle{fill:#07131f;stroke:none}
.bottom-nav button b{font-size:.79rem!important;font-weight:750!important;color:currentColor!important;line-height:1!important}

/* Demais menus: painéis escuros e roláveis, inspirados no mesmo visual. */
.app:not(.map-screen-active) .topbar.halloween-topbar{height:80px!important;min-height:80px!important;grid-template-columns:240px 1fr auto!important}
.app:not(.map-screen-active){grid-template-rows:80px minmax(0,1fr) 76px!important}
.app:not(.map-screen-active) .halloween-wordmark-img{height:80px!important;width:250px!important;object-fit:cover!important}
.app:not(.map-screen-active) .map-header-metrics{display:none!important}
.app:not(.map-screen-active) .headline-zone{display:flex!important;justify-content:center!important}.app:not(.map-screen-active) .headline-zone #screenTitle{font-size:1rem!important;color:#ff9a1a!important}
.app:not(.map-screen-active) .bottom-nav{height:76px!important;min-height:76px!important}.app:not(.map-screen-active) .bottom-nav button{min-height:76px!important}.app:not(.map-screen-active) .nav-icon{width:29px!important;height:29px!important}.app:not(.map-screen-active) .nav-icon svg{width:28px;height:28px}.app:not(.map-screen-active) .bottom-nav button b{font-size:.68rem!important}
.section-card,.modal-card{background:linear-gradient(180deg,#0d2030,#091725)!important;border:1px solid rgba(255,255,255,.13)!important;box-shadow:0 12px 26px rgba(0,0,0,.2)!important}
.section-card{max-width:900px!important;border-radius:18px!important}.child-card,.leaderboard-card,.ghost-wallet-card,.vote-card{background:#0a1927!important;border-color:rgba(255,255,255,.13)!important}
.btn{border-radius:10px!important}.btn.primary{background:linear-gradient(180deg,#ff9b13,#f27a00)!important;color:#07131f!important;border-color:#ffad3e!important}.btn.ghost{background:#15283a!important}.btn.accent{background:#6650dc!important}
input,select,textarea{background:#071522!important;border-color:rgba(255,255,255,.17)!important;color:#fff!important}
.segmented,.admin-tabs{background:#071522!important;border-color:rgba(255,255,255,.13)!important}.segmented button.active,.admin-tabs button.active{background:#183149!important;color:#fff!important}
.brand-hero-logo.brand-hero-wordmark{width:min(390px,82vw)!important;max-height:122px!important;object-fit:cover!important;object-position:left top!important;border-radius:8px!important}
.hero-card{background:linear-gradient(180deg,#0b1b2a,#07131f)!important;border-color:rgba(255,255,255,.14)!important;box-shadow:0 18px 46px rgba(0,0,0,.42)!important}
.hero-card:after{display:none!important}.auth-gate{background:radial-gradient(circle at 50% 0,rgba(255,138,0,.12),transparent 32%),linear-gradient(180deg,#07131f,#050b12)!important}

/* Desktop específico para o mesmo enquadramento 1536×1024 do mockup. */
@media(min-width:1100px){
  .app{grid-template-rows:122px minmax(0,1fr) 98px!important}
  .topbar.halloween-topbar{grid-template-columns:390px minmax(520px,1fr) minmax(430px,auto)!important}
  .map-toolbar{padding-left:36px!important;padding-right:26px!important}
}

/* Tablet */
@media(max-width:1099px){
  .app{grid-template-rows:104px minmax(0,1fr) 82px!important}
  .topbar.halloween-topbar{height:104px!important;min-height:104px!important;grid-template-columns:245px minmax(0,1fr) auto!important;padding-right:10px!important;gap:8px!important}
  .halloween-wordmark-img{height:104px!important;width:245px!important;object-fit:cover!important}
  .headline-zone{gap:5px!important}.headline-zone #screenTitle{font-size:.92rem!important}
  .map-header-metrics>div{min-width:82px!important;padding:2px 8px!important;grid-template-columns:28px auto!important;column-gap:5px!important}.map-header-metrics .metric-icon{font-size:1.2rem!important}.map-header-metrics .metric-check{width:27px!important;height:27px!important;font-size:.9rem!important}.map-header-metrics b{font-size:.95rem!important}.map-header-metrics small{font-size:.46rem!important}
  .header-profile{display:none!important}.install-action{height:42px!important;padding:0 12px!important}.install-action b{font-size:.76rem!important}.refresh-action{width:42px!important;height:42px!important}.refresh-action svg{width:22px;height:22px}
  #screen-map.active{grid-template-rows:minmax(0,1fr) 42px!important}.map-legend-strip{height:42px!important;min-height:42px!important;justify-content:flex-start!important;gap:18px!important;padding:4px 10px!important}.map-legend-strip>div{font-size:.56rem!important}.map-legend-strip img{width:23px!important;height:23px!important}
  .bottom-nav{height:82px!important;min-height:82px!important}.bottom-nav button{min-height:82px!important}.nav-icon{width:31px!important;height:31px!important}.nav-icon svg{width:30px;height:30px}.bottom-nav button b{font-size:.69rem!important}
}

/* Celular — prioridade do projeto. Mantém mapa sem rolagem e filtros roláveis na horizontal. */
@media(max-width:700px){
  .app{grid-template-rows:92px minmax(0,1fr) calc(66px + env(safe-area-inset-bottom))!important}
  .topbar.halloween-topbar{height:92px!important;min-height:92px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:48px 38px!important;gap:2px 6px!important;padding:3px 6px 3px 0!important;overflow:hidden!important}
  .halloween-wordmark{grid-column:1!important;grid-row:1!important;height:48px!important}.halloween-wordmark-img{width:174px!important;height:54px!important;object-fit:cover!important;object-position:left top!important}
  .top-actions{grid-column:2!important;grid-row:1!important;gap:5px!important;height:48px!important}.header-profile{display:none!important}.install-action{width:36px!important;height:36px!important;padding:0!important;justify-content:center!important;border-radius:10px!important}.install-action span{font-size:1.05rem!important}.install-action b{display:none!important}.refresh-action{width:36px!important;height:36px!important;border-radius:10px!important}.refresh-action svg{width:20px;height:20px}.status-pill.demo{font-size:.46rem!important;padding:4px 5px!important}
  .headline-zone{grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:1fr!important;gap:0!important;width:100%!important;align-self:stretch!important}.headline-zone #screenTitle{display:none!important}
  .map-header-metrics{width:100%!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;align-items:stretch!important;justify-content:stretch!important}
  .map-header-metrics>div{min-width:0!important;width:100%!important;padding:1px 3px!important;display:grid!important;grid-template-columns:auto auto!important;grid-template-rows:1fr!important;column-gap:4px!important;border-right:1px solid rgba(255,255,255,.13)!important}.map-header-metrics .metric-icon{grid-column:1!important;grid-row:1!important;font-size:.9rem!important}.map-header-metrics .metric-check{width:20px!important;height:20px!important;font-size:.7rem!important}.map-header-metrics b{grid-column:2!important;grid-row:1!important;font-size:.75rem!important;align-self:center!important}.map-header-metrics small{display:none!important}
  #screen-map.active{grid-template-rows:minmax(0,1fr) 34px!important}
  #screen-map #map{top:45px!important}.map-toolbar{height:45px!important;padding:5px 5px 5px 7px!important;gap:6px!important}.map-filter-bar{gap:5px!important}.map-filter-bar button{min-height:32px!important;padding:5px 10px!important;font-size:.62rem!important}.map-style-switch{padding:2px!important}.map-style-switch button{height:31px!important;padding:0 8px!important;font-size:.61rem!important}
  .map-wallet-hud{left:6px!important;top:53px!important;gap:4px!important}.wallet-chip{min-height:29px!important;padding:2px 5px 2px 3px!important;border-radius:8px!important}.wallet-chip img{width:22px!important;height:22px!important}.wallet-chip b{font-size:.7rem!important}.wallet-chip small{display:none!important}
  .map-float.bottom{bottom:4px!important;gap:3px!important;padding:3px!important;border-radius:10px!important;max-width:calc(100% - 12px)!important}.map-float.bottom .btn{min-height:29px!important;padding:4px 7px!important;font-size:.55rem!important;white-space:nowrap!important}
  .leaflet-control-zoom a{width:35px!important;height:35px!important;line-height:33px!important;font-size:1.2rem!important}.leaflet-bottom.leaflet-right{right:3px!important;bottom:3px!important}
  .marker-house{font-size:30px!important}.marker-child{font-size:31px!important}.map-score-badge{height:20px!important;min-width:34px!important;font-size:.54rem!important}.map-score-badge img{width:16px!important;height:16px!important}.candy-status-badge{font-size:15px!important}.candy-low{font-size:13px!important}.visit-mini-badge{width:auto!important;min-width:19px!important;height:19px!important;font-size:.49rem!important}.soldout-stamp{font-size:.48rem!important;padding:2px 4px!important;bottom:-13px!important}
  .map-legend-strip{height:34px!important;min-height:34px!important;justify-content:flex-start!important;gap:12px!important;padding:2px 7px!important}.map-legend-strip>div{font-size:.47rem!important;gap:4px!important}.map-legend-strip img{width:18px!important;height:18px!important}.legend-candy{font-size:1rem!important}.legend-low,.legend-visited,.legend-unvisited{width:19px!important;height:19px!important;font-size:.63rem!important}.legend-sold{font-size:.43rem!important;padding:2px 4px!important}
  .bottom-nav{height:calc(66px + env(safe-area-inset-bottom))!important;min-height:calc(66px + env(safe-area-inset-bottom))!important;padding-bottom:env(safe-area-inset-bottom)!important}.bottom-nav button{min-height:66px!important;padding:5px 2px 3px!important;gap:3px!important}.bottom-nav button:before{height:3px!important}.nav-icon{width:25px!important;height:25px!important}.nav-icon svg{width:25px;height:25px}.bottom-nav button b{font-size:.59rem!important}
  .leaflet-popup-content{min-width:215px!important}.map-popup-card{grid-template-columns:72px minmax(0,1fr)!important;gap:8px!important}.map-popup-photo,.map-popup-fallback{width:72px!important;height:82px!important}.map-popup-fallback{font-size:2.7rem!important}.map-popup-copy strong{font-size:.83rem!important}.map-popup-copy span,.map-popup-copy small{font-size:.62rem!important}.fantasy-popup-card{grid-template-columns:66px minmax(0,1fr)!important;min-width:205px!important}.fantasy-popup-avatar,.fantasy-popup-photo{width:66px!important;height:72px!important;font-size:2.5rem!important}.fantasy-popup-card strong{font-size:.82rem!important}.fantasy-popup-card span,.fantasy-popup-card small{font-size:.62rem!important}
  .app:not(.map-screen-active){grid-template-rows:60px minmax(0,1fr) calc(62px + env(safe-area-inset-bottom))!important}.app:not(.map-screen-active) .topbar.halloween-topbar{height:60px!important;min-height:60px!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:1fr!important}.app:not(.map-screen-active) .halloween-wordmark{grid-row:1!important;height:54px!important}.app:not(.map-screen-active) .halloween-wordmark-img{height:60px!important;width:185px!important}.app:not(.map-screen-active) .headline-zone{display:none!important}.app:not(.map-screen-active) .bottom-nav{height:calc(62px + env(safe-area-inset-bottom))!important;min-height:calc(62px + env(safe-area-inset-bottom))!important}.app:not(.map-screen-active) .bottom-nav button{min-height:62px!important}
  .screen{padding:10px 8px!important}.section-card{border-radius:14px!important;padding:13px!important}.brand-hero-logo.brand-hero-wordmark{width:min(340px,92vw)!important}
}

/* Celulares muito baixos: compacta HUD e controles antes de sacrificar o mapa. */
@media(max-width:700px) and (max-height:680px){
  .app{grid-template-rows:82px minmax(0,1fr) calc(58px + env(safe-area-inset-bottom))!important}.topbar.halloween-topbar{height:82px!important;min-height:82px!important;grid-template-rows:42px 34px!important}.halloween-wordmark,.halloween-wordmark-img{height:44px!important}.halloween-wordmark-img{width:150px!important}.top-actions{height:42px!important}.install-action,.refresh-action{width:32px!important;height:32px!important}.map-header-metrics b{font-size:.69rem!important}
  #screen-map.active{grid-template-rows:minmax(0,1fr) 30px!important}.map-legend-strip{height:30px!important;min-height:30px!important}.map-legend-strip>div{font-size:.43rem!important}.map-legend-strip img{width:16px!important;height:16px!important}.map-toolbar{height:41px!important}.map-toolbar+#map,#screen-map #map{top:41px!important}.map-wallet-hud{top:47px!important}.map-float.bottom .btn{min-height:26px!important;padding:3px 6px!important}.bottom-nav{height:calc(58px + env(safe-area-inset-bottom))!important;min-height:calc(58px + env(safe-area-inset-bottom))!important}.bottom-nav button{min-height:58px!important}.nav-icon{width:22px!important;height:22px!important}.nav-icon svg{width:22px;height:22px}.bottom-nav button b{font-size:.54rem!important}
}
.bottom-nav button .nav-icon{font-size:0!important;filter:none!important;color:currentColor!important}


/* ===== V16 — correção da rolagem de login/cadastro =====
   A viewport só é travada depois que o app é aberto (.app-open).
   A autenticação possui seu próprio scroll, inclusive em telas baixas/mobile. */
html:not(.app-open),
body:not(.app-open){
  height:auto!important;
  min-height:100%!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:auto!important;
}
body:not(.app-open) .auth-gate{
  box-sizing:border-box!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  padding:24px 16px max(32px,env(safe-area-inset-bottom))!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
}
body:not(.app-open) .auth-gate .hero-card{
  flex:0 0 auto!important;
  margin:0 auto!important;
  max-height:none!important;
}
@media(min-height:920px){
  body:not(.app-open) .auth-gate{align-items:center!important;}
}
@media(max-width:700px){
  body:not(.app-open) .auth-gate{padding:12px 10px max(24px,env(safe-area-inset-bottom))!important;}
  body:not(.app-open) .hero-card{padding:18px 14px!important;}
}


/* ===== V17 — cabeçalho integrado + ajuste fino da wordmark + ícones de moedas ===== */
.topbar.halloween-topbar{
  grid-template-columns: minmax(250px, 360px) minmax(0, 1fr) auto !important;
  gap: 14px !important;
  padding: 0 18px 0 0 !important;
}
.halloween-wordmark{
  position: relative !important;
  background: radial-gradient(circle at 18% 40%, rgba(255,139,32,.14), transparent 42%),
              linear-gradient(180deg, rgba(255,149,51,.06), rgba(255,149,51,0));
}
.halloween-wordmark:after{
  content: "";
  position: absolute;
  top: 14px; bottom: 14px; right: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.14), transparent);
}
.halloween-wordmark-img{
  width: min(100%, 352px) !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: left center !important;
  padding-left: 10px !important;
}
.headline-zone{
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(260px, max-content) minmax(0, 1fr) !important;
  grid-template-rows: 1fr !important;
  align-items: center !important;
  justify-items: stretch !important;
  gap: 14px !important;
}
.headline-zone #screenTitle{
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-align: left !important;
  font-size: clamp(1rem, 1.65vw, 1.48rem) !important;
  line-height: 1.04 !important;
  max-width: 100% !important;
}
.map-header-metrics{
  justify-content: flex-start !important;
  width: 100% !important;
}
.map-header-metrics > div{
  min-width: 0 !important;
  flex: 1 1 0 !important;
  padding: 2px 12px !important;
}
.map-header-metrics .metric-icon{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255,149,47,.18), rgba(255,149,47,.05));
  border: 1px solid rgba(255,255,255,.08);
  font-size: 1.2rem !important;
}
.map-header-metrics .metric-check{
  border-radius: 10px !important;
  width: 34px !important;
  height: 34px !important;
}
.top-actions{
  gap: 10px !important;
  padding-left: 10px !important;
  border-left: 1px solid rgba(255,255,255,.12);
}
.header-profile{
  min-width: 178px !important;
  border-left: 0 !important;
  padding-left: 0 !important;
}
.header-profile:after{left:65px !important;}
.header-profile img{width:48px !important;height:48px !important;}
.header-profile span{padding-bottom: 12px !important; max-width: 110px !important;}

.app:not(.map-screen-active) .topbar.halloween-topbar{
  height: 84px !important;
  min-height: 84px !important;
  grid-template-columns: minmax(210px, 300px) minmax(0, 1fr) auto !important;
  gap: 12px !important;
}
.app:not(.map-screen-active) .halloween-wordmark-img{
  width: min(100%, 285px) !important;
  height: 74px !important;
  object-fit: contain !important;
}
.app:not(.map-screen-active) .headline-zone{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.app:not(.map-screen-active) .headline-zone #screenTitle{
  display: block !important;
  color: #ffab31 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: 1.22rem !important;
}
.app:not(.map-screen-active) .top-actions{height: auto !important;}

@media (min-width: 1024px){
  .topbar.halloween-topbar{grid-template-columns:minmax(270px,360px) minmax(0,1fr) auto !important;}
  .map-header-metrics > div{padding: 2px 14px !important;}
}

@media (max-width: 900px){
  .topbar.halloween-topbar{
    height: 100px !important;
    min-height: 100px !important;
    grid-template-columns: minmax(180px, 235px) minmax(0, 1fr) auto !important;
    padding-right: 8px !important;
    gap: 8px !important;
  }
  .halloween-wordmark-img{width: min(100%, 230px) !important;}
  .headline-zone{grid-template-columns: minmax(180px, 1fr) minmax(0,1fr) !important; gap: 8px !important;}
  .headline-zone #screenTitle{font-size: 1.02rem !important;}
  .map-header-metrics > div{padding: 1px 8px !important;}
  .map-header-metrics b{font-size: 1rem !important;}
  .map-header-metrics small{font-size: .5rem !important;}
  .top-actions{gap: 8px !important; padding-left: 8px !important;}
  .install-action{height: 46px !important; padding: 0 14px !important;}
  .header-profile{min-width: 152px !important;}
  .header-profile:after{display:none !important;}
}

@media (max-width: 700px){
  .app{grid-template-rows: 96px minmax(0,1fr) calc(66px + env(safe-area-inset-bottom)) !important;}
  .topbar.halloween-topbar{
    height: 96px !important;
    min-height: 96px !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    grid-template-rows: 52px 38px !important;
    gap: 3px 6px !important;
    padding: 2px 6px 2px 0 !important;
  }
  .halloween-wordmark{height: 52px !important;}
  .halloween-wordmark-img{width: min(100%, 198px) !important; height: 52px !important; padding-left: 4px !important;}
  .top-actions{grid-column: 2 !important; grid-row: 1 !important; gap: 5px !important; padding-left: 6px !important; border-left: 0 !important;}
  .headline-zone{
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 2px !important;
    padding: 0 6px 0 8px !important;
  }
  .headline-zone #screenTitle{
    display: block !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: .86rem !important;
    order: 1;
  }
  .map-header-metrics{
    order: 2;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0 !important;
    width: 100% !important;
  }
  .map-header-metrics > div{
    width: 100% !important;
    padding: 0 3px !important;
    grid-template-columns: 22px auto !important;
    border-right: 1px solid rgba(255,255,255,.12) !important;
  }
  .map-header-metrics > div:last-child{border-right:0 !important;}
  .map-header-metrics .metric-icon{
    width: 20px; height: 20px; border-radius: 7px; font-size: .78rem !important;
  }
  .map-header-metrics .metric-check{width:20px !important;height:20px !important;font-size:.66rem !important;}
  .map-header-metrics b{font-size: .76rem !important;}
  .map-header-metrics small{display: block !important; font-size: .39rem !important; letter-spacing: 0 !important; margin-top: 1px !important;}
  .install-action{width: 35px !important; height: 35px !important; padding: 0 !important;}
  .refresh-action{width: 35px !important; height: 35px !important;}
  .status-pill.demo{display:none !important;}
  .app:not(.map-screen-active) .topbar.halloween-topbar{
    height: 70px !important;
    min-height: 70px !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    grid-template-rows: 1fr !important;
    gap: 5px !important;
    padding: 0 6px 0 0 !important;
  }
  .app:not(.map-screen-active) .halloween-wordmark{height: 68px !important;}
  .app:not(.map-screen-active) .halloween-wordmark-img{width: 182px !important; height: 58px !important;}
  .app:not(.map-screen-active) .headline-zone{
    position: absolute !important; left: 118px !important; right: 92px !important; top: 0 !important; bottom: 0 !important;
    display: flex !important; align-items: center !important; padding: 0 !important;
  }
  .app:not(.map-screen-active) .headline-zone #screenTitle{
    display: block !important; width: 100% !important; text-align: center !important; font-size: .98rem !important;
  }
}

@media (max-width: 390px){
  .halloween-wordmark-img{width: 178px !important;}
  .headline-zone #screenTitle{font-size: .81rem !important;}
  .map-header-metrics b{font-size: .71rem !important;}
  .map-header-metrics small{display:none !important;}
  .app:not(.map-screen-active) .headline-zone{left: 108px !important; right: 82px !important;}
  .app:not(.map-screen-active) .headline-zone #screenTitle{font-size: .9rem !important;}
}


/* ===== V18 — cabeçalho respirado, sem sobreposição ===== */
@media (min-width: 1101px){
  .app{grid-template-rows:112px minmax(0,1fr) 98px!important;}
  .topbar.halloween-topbar{
    height:112px!important;min-height:112px!important;
    grid-template-columns:340px minmax(430px,1fr) auto!important;
    grid-template-rows:64px 48px!important;
    column-gap:18px!important;row-gap:0!important;
    padding:0 18px 0 0!important;overflow:hidden!important;
  }
  .halloween-wordmark{grid-column:1!important;grid-row:1/3!important;height:112px!important;align-self:stretch!important;}
  .halloween-wordmark-img{width:330px!important;height:106px!important;object-fit:contain!important;object-position:left center!important;padding-left:10px!important;}
  .headline-zone{
    grid-column:2!important;grid-row:1/3!important;
    display:grid!important;grid-template-columns:1fr!important;grid-template-rows:64px 48px!important;
    gap:0!important;min-width:0!important;align-self:stretch!important;padding:0!important;
  }
  .headline-zone #screenTitle{
    grid-row:1!important;display:flex!important;align-items:end!important;justify-content:flex-start!important;
    padding:0 0 9px 4px!important;font-size:1.34rem!important;line-height:1!important;
    overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  }
  .map-header-metrics{
    grid-row:2!important;width:100%!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:center!important;justify-content:stretch!important;border-top:1px solid rgba(255,255,255,.08)!important;
  }
  .map-header-metrics>div{
    min-width:0!important;width:100%!important;height:40px!important;padding:3px 12px!important;
    grid-template-columns:30px auto!important;grid-template-rows:auto auto!important;column-gap:7px!important;
  }
  .map-header-metrics .metric-icon{width:28px!important;height:28px!important;border-radius:8px!important;font-size:1rem!important;}
  .map-header-metrics .metric-check{width:28px!important;height:28px!important;font-size:.85rem!important;border-radius:8px!important;}
  .map-header-metrics b{font-size:1rem!important;line-height:1!important;}
  .map-header-metrics small{font-size:.5rem!important;margin-top:2px!important;}
  .top-actions{grid-column:3!important;grid-row:1/3!important;height:112px!important;align-self:stretch!important;padding-left:14px!important;}
  .install-action{height:48px!important;padding:0 17px!important;}
  .refresh-action{width:48px!important;height:48px!important;}
  .header-profile{min-width:170px!important;}
}

/* Desktop intermediário: reduz o perfil e a arte antes de comprimir título/indicadores. */
@media (min-width: 901px) and (max-width: 1250px){
  .app{grid-template-rows:106px minmax(0,1fr) 82px!important;}
  .topbar.halloween-topbar{
    height:106px!important;min-height:106px!important;
    grid-template-columns:260px minmax(400px,1fr) auto!important;
    grid-template-rows:58px 48px!important;padding-right:10px!important;gap:10px!important;
  }
  .halloween-wordmark{grid-column:1!important;grid-row:1/3!important;height:106px!important;}
  .halloween-wordmark-img{width:250px!important;height:100px!important;object-fit:contain!important;padding-left:6px!important;}
  .headline-zone{grid-column:2!important;grid-row:1/3!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:58px 48px!important;gap:0!important;}
  .headline-zone #screenTitle{grid-row:1!important;display:flex!important;align-items:end!important;padding:0 0 8px 2px!important;font-size:1.08rem!important;}
  .map-header-metrics{grid-row:2!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;border-top:1px solid rgba(255,255,255,.08)!important;}
  .map-header-metrics>div{min-width:0!important;padding:2px 7px!important;grid-template-columns:25px auto!important;column-gap:5px!important;}
  .map-header-metrics .metric-icon{width:24px!important;height:24px!important;font-size:.88rem!important;border-radius:7px!important;}
  .map-header-metrics .metric-check{width:24px!important;height:24px!important;font-size:.74rem!important;border-radius:7px!important;}
  .map-header-metrics b{font-size:.86rem!important;}.map-header-metrics small{font-size:.42rem!important;}
  .top-actions{grid-column:3!important;grid-row:1/3!important;height:106px!important;gap:7px!important;padding-left:8px!important;}
  .install-action{width:44px!important;height:44px!important;padding:0!important;justify-content:center!important}.install-action b{display:none!important}.install-action span{font-size:1.15rem!important}
  .refresh-action{width:44px!important;height:44px!important}.header-profile{display:none!important}
  .bottom-nav{height:82px!important;min-height:82px!important}.bottom-nav button{min-height:82px!important}
}

/* Mobile: identidade em cima, indicadores na segunda linha. No mapa o slogan some para não lotar. */
@media (max-width: 900px){
  .app{grid-template-rows:92px minmax(0,1fr) calc(66px + env(safe-area-inset-bottom))!important;}
  .topbar.halloween-topbar{
    height:92px!important;min-height:92px!important;
    grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:50px 38px!important;
    gap:2px 5px!important;padding:2px 6px 2px 0!important;
  }
  .halloween-wordmark{grid-column:1!important;grid-row:1!important;height:50px!important;}
  .halloween-wordmark-img{width:190px!important;height:50px!important;object-fit:contain!important;object-position:left center!important;padding-left:3px!important;}
  .top-actions{grid-column:2!important;grid-row:1!important;height:50px!important;gap:5px!important;padding-left:5px!important;border-left:0!important;}
  .header-profile{display:none!important}.install-action{width:35px!important;height:35px!important;padding:0!important}.install-action b{display:none!important}.refresh-action{width:35px!important;height:35px!important}.status-pill.demo{display:none!important}
  .headline-zone{grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:38px!important;padding:0 5px!important;gap:0!important;}
  .map-screen-active .headline-zone #screenTitle{display:none!important;}
  .map-header-metrics{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;height:38px!important;border-top:1px solid rgba(255,255,255,.08)!important;}
  .map-header-metrics>div{min-width:0!important;padding:1px 3px!important;grid-template-columns:20px auto!important;grid-template-rows:auto auto!important;column-gap:4px!important;}
  .map-header-metrics .metric-icon{width:19px!important;height:19px!important;border-radius:6px!important;font-size:.72rem!important}.map-header-metrics .metric-check{width:19px!important;height:19px!important;font-size:.62rem!important;border-radius:6px!important}
  .map-header-metrics b{font-size:.7rem!important}.map-header-metrics small{font-size:.34rem!important;letter-spacing:0!important;margin-top:0!important}
  .app:not(.map-screen-active){grid-template-rows:68px minmax(0,1fr) calc(62px + env(safe-area-inset-bottom))!important;}
  .app:not(.map-screen-active) .topbar.halloween-topbar{height:68px!important;min-height:68px!important;grid-template-columns:160px minmax(0,1fr) auto!important;grid-template-rows:68px!important;padding:0 6px 0 0!important;}
  .app:not(.map-screen-active) .halloween-wordmark{grid-column:1!important;grid-row:1!important;height:68px!important}.app:not(.map-screen-active) .halloween-wordmark-img{width:158px!important;height:62px!important;}
  .app:not(.map-screen-active) .headline-zone{grid-column:2!important;grid-row:1!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 6px!important;min-width:0!important;}
  .app:not(.map-screen-active) .headline-zone #screenTitle{display:block!important;width:100%!important;text-align:center!important;font-size:.9rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .app:not(.map-screen-active) .top-actions{grid-column:3!important;grid-row:1!important;height:68px!important;}
  .app:not(.map-screen-active) .map-header-metrics{display:none!important;}
}

@media (max-width: 420px){
  .halloween-wordmark-img{width:170px!important;}
  .map-header-metrics b{font-size:.66rem!important}.map-header-metrics small{display:none!important}
  .app:not(.map-screen-active) .topbar.halloween-topbar{grid-template-columns:138px minmax(0,1fr) auto!important;}
  .app:not(.map-screen-active) .halloween-wordmark-img{width:136px!important;}
  .app:not(.map-screen-active) .headline-zone #screenTitle{font-size:.82rem!important;}
}
