: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);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#07111f;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overscroll-behavior:none}
body{background:linear-gradient(180deg,#06101c 0,#0a1625 45%,#07111f 100%)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.app-shell{min-height:100vh}
.boot-screen{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;background:#05070b}
.boot-mark{font-size:60px;filter:drop-shadow(0 10px 24px rgba(255,126,0,.32));animation:hnBoot 1s ease-in-out infinite alternate}
@keyframes hnBoot{from{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.04)}}
.boot-screen span{color:var(--muted)}
.test-ribbon{position:fixed;z-index:5000;top:0;left:50%;transform:translateX(-50%);background:#ff9a2f;color:#271000;font-weight:950;font-size:.68rem;letter-spacing:.08em;padding:4px 12px;border-radius:0 0 10px 10px;box-shadow:0 8px 22px rgba(0,0,0,.28)}

.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:#d4bdde;margin:0 0 .35rem}
.public-page{min-height:100dvh;display:grid;place-items:center;padding:34px 16px;background:
  radial-gradient(circle at 18% 12%,rgba(255,138,0,.18),transparent 22%),
  radial-gradient(circle at 78% 20%,rgba(64,113,168,.15),transparent 26%),
  linear-gradient(180deg,#07111f,#0a1625)}
.auth-wrap{width:min(650px,100%)}
.brand-hero{width:100%;min-height:185px;background:
  radial-gradient(circle at 82% 18%,rgba(255,153,35,.36),transparent 13%),
  radial-gradient(circle at 50% 110%,rgba(255,126,0,.12),transparent 30%),
  linear-gradient(160deg,rgba(14,33,52,.98),rgba(5,15,26,.99));
  border:1px solid var(--line);border-radius:28px 28px 18px 18px;padding:28px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.brand-hero:after{content:"";position:absolute;inset:auto -40px -26px -40px;height:72px;background:
  radial-gradient(ellipse at 16% 100%,#10273b 0 28%,transparent 29%),
  radial-gradient(ellipse at 42% 100%,#142d41 0 32%,transparent 33%),
  radial-gradient(ellipse at 74% 100%,#0d2234 0 31%,transparent 32%);
  opacity:.95}
.brand-lockup{position:relative;z-index:2}
.brand-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.45rem,9vw,4.4rem);line-height:.9;margin:.3rem 0 .75rem;letter-spacing:-.055em;color:#ff8a00;text-shadow:0 2px 0 #4c1e00,0 0 14px rgba(255,138,0,.22)}
.brand-hero p{color:#d6dde6;font-size:.98rem;line-height:1.5;max-width:500px;margin:0}
.hero-moon{position:absolute;right:22px;top:22px;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 35% 32%,#fff0bc,#ffb254 58%,#e66a17);box-shadow:0 0 34px rgba(255,138,0,.22)}
.hero-bats{position:absolute;right:105px;top:34px;color:#070d14;font-size:22px;z-index:2}
.community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.community-card{border:1px solid var(--line);background:linear-gradient(160deg,#0b1826,#08121e);color:#fff;border-radius:16px;padding:13px 14px;text-align:left;box-shadow:0 6px 18px rgba(0,0,0,.2);transition:.18s}
.community-card:hover,.community-card.selected{border-color:rgba(255,138,0,.72);box-shadow:0 0 0 2px rgba(255,138,0,.10),0 10px 28px rgba(0,0,0,.3)}
.community-card strong{display:block;font-size:.95rem}
.community-card span{display:block;color:var(--muted);font-size:.72rem;margin-top:5px}
.auth-card{background:linear-gradient(160deg,rgba(13,30,47,.98),rgba(7,18,30,.98));border:1px solid var(--line);border-radius:18px 18px 28px 28px;padding:22px 24px 26px;box-shadow:var(--shadow)}
.auth-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.auth-title h2{margin:2px 0 0;font-size:1.3rem}
.pill,.status-pill{display:inline-flex;align-items:center;border:1px solid rgba(255,138,0,.35);background:rgba(255,138,0,.11);color:#ffd6a9;padding:6px 9px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.04em}
.tabs,.segmented{display:flex;gap:4px;background:#050d17;border:1px solid var(--line);border-radius:14px;padding:4px;margin:18px 0}
.tabs button,.segmented button{flex:1;border:0;background:transparent;color:var(--muted);padding:11px 10px;border-radius:10px;font-weight:850}
.tabs button.active,.segmented button.active{background:#14263a;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.field{display:grid;gap:7px;margin:12px 0}
.field label{font-size:.84rem;color:#e8edf3;font-weight:750}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#050d17;color:#fff;border-radius:13px;padding:13px 14px;outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(255,138,0,.72);box-shadow:0 0 0 3px rgba(255,138,0,.10)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{border:1px solid var(--line);border-radius:13px;padding:12px 14px;background:#14263a;color:#fff;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn.primary{background:linear-gradient(135deg,#ff8a00,#ff4b35);border-color:transparent}
.btn.secondary{background:#14263a}
.btn.ghost{background:rgba(255,255,255,.04)}
.btn.danger{background:rgba(255,75,53,.12);border-color:rgba(255,75,53,.34);color:#ffd9d3}
.btn.full{width:100%}
.preview-quick{margin-top:14px;padding:12px;border:1px dashed rgba(255,138,0,.4);background:rgba(255,138,0,.055);border-radius:14px}
.preview-quick strong{display:block;color:#ffcc91;font-size:.82rem}
.preview-quick p{margin:4px 0 10px;color:var(--muted);font-size:.76rem}
.alert{margin:10px 0;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#0d1d2d;font-size:.82rem}
.alert.error{border-color:rgba(255,75,53,.45);background:rgba(255,75,53,.09);color:#ffd9d3}
.alert.success{border-color:rgba(104,216,93,.36);background:rgba(104,216,93,.08);color:#d7ffd2}

.app-page{min-height:100dvh;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.topbar.halloween-topbar{display:grid;grid-template-columns:minmax(220px,320px) minmax(330px,1fr) auto;align-items:center;gap:12px;min-height:84px;padding:8px 14px;background:
  radial-gradient(circle at 18% 15%,rgba(255,126,0,.14),transparent 23%),
  linear-gradient(180deg,#06101c 0,#081523 100%);
  border-bottom:1px solid rgba(255,255,255,.16);box-shadow:0 8px 28px rgba(0,0,0,.26);position:sticky;top:0;z-index:1000}
.halloween-wordmark{display:flex;align-items:center;min-width:0}
.hn-wordmark{display:grid;line-height:.86;min-width:0}
.hn-wordmark strong{font-family:Georgia,"Times New Roman",serif;font-size:1.9rem;letter-spacing:-.055em;color:#ff8a00;text-shadow:0 2px 0 #4c1e00,0 0 14px rgba(255,138,0,.18);white-space:nowrap}
.hn-wordmark span{font-size:.63rem;font-weight:950;letter-spacing:.16em;color:#ffd09a;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}
.headline-zone{display:grid;align-items:center;min-width:0}
.screen-title{margin:0;color:#ffad35;font-size:1.05rem;line-height:1.1;font-weight:950;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-screen-active .screen-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.map-header-metrics{display:none;grid-template-columns:repeat(4,minmax(0,1fr));height:54px;border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;background:rgba(3,12,21,.48)}
.map-screen-active .map-header-metrics{display:grid}
.map-header-metrics>div{display:grid;grid-template-columns:24px auto;grid-template-rows:auto auto;align-content:center;justify-content:center;column-gap:6px;padding:3px 8px;border-right:1px solid rgba(255,255,255,.12);min-width:0}
.map-header-metrics>div:last-child{border-right:0}
.metric-icon{grid-row:1/3;font-size:18px;align-self:center}
.map-header-metrics b{font-size:.98rem;line-height:1}
.map-header-metrics small{font-size:.56rem;color:var(--muted);line-height:1.2;white-space:nowrap}
.top-actions{display:flex;gap:7px;align-items:center;justify-self:end}
.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#14263a;color:#fff;font-size:1.18rem;display:grid;place-items:center}
.header-profile{height:42px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#0d1c2b;color:#fff;border-radius:13px;padding:5px 9px}
.header-profile .avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#1b3045;font-size:18px}
.header-profile span{display:grid;text-align:left;font-size:.58rem;color:var(--muted);line-height:1.1}
.header-profile b{color:#fff;font-size:.7rem;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-page:not(.map-screen-active) #refresh-btn{display:none}

.content{width:min(100%,1000px);margin:0 auto;padding:14px}
.map-screen-active .content{width:100%;max-width:none;padding:0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 2px 12px}
.section-head h2{margin:0;font-size:1.25rem}
.section-head p{margin:4px 0 0;color:var(--muted);font-size:.78rem}
.card{background:linear-gradient(160deg,#0c1a29,#091522);border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.card+.card{margin-top:12px}
.card-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.card-title .emoji{font-size:26px}
.card-title strong{display:block;font-size:.95rem}
.card-title span{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}
.info-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.84rem}
.info-row:last-child{border-bottom:0}
.info-row span{color:var(--muted)}
.info-row strong{text-align:right}
.inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.small-btn{border:1px solid var(--line);background:#14263a;color:#fff;border-radius:11px;padding:8px 10px;font-size:.76rem;font-weight:850}
.small-btn.primary,.small-btn.active{background:linear-gradient(135deg,#ff8a00,#ff6035);border-color:transparent;color:#1f0e00}
.stack{display:grid;gap:9px}
.item-card{display:grid;grid-template-columns:58px 1fr auto;gap:11px;align-items:center;border:1px solid var(--line);background:#0b1826;border-radius:14px;padding:10px}
.thumb{width:58px;height:58px;border-radius:12px;display:grid;place-items:center;font-size:29px;background:#10263a;border:1px solid rgba(255,255,255,.12);overflow:hidden}
.item-card h3{margin:0;font-size:.9rem}
.item-card p{margin:3px 0 0;color:var(--muted);font-size:.72rem}
.tag{font-size:.62rem;padding:5px 7px;border-radius:999px;background:#102236;border:1px solid var(--line);color:#dbe4ec}
.empty{border:1px dashed rgba(255,255,255,.17);border-radius:14px;padding:20px;text-align:center;color:var(--muted);font-size:.82rem}
.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.kpi{background:#08131f;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
.kpi b{display:block;font-size:1.35rem}
.kpi span{display:block;font-size:.62rem;color:var(--muted);margin-top:3px}
.kpi.orange b{color:#ffad35}.kpi.purple b{color:#b8c6d7}.kpi.green b{color:#83e17b}
.game-card{border:1px solid var(--line);background:#0b1826;border-radius:14px;padding:12px}
.game-card h3{margin:0 0 5px;font-size:.9rem}
.game-card p{margin:0;color:var(--muted);font-size:.7rem}
.haunt-row{display:flex;align-items:center;gap:7px;margin-top:9px}
.haunt-row input{width:58px;border:1px solid var(--line);border-radius:9px;background:#06101a;color:#fff;padding:7px;text-align:center}

.map-wrap{position:relative;width:100%;height:calc(100dvh - 84px - 76px - env(safe-area-inset-bottom) - 38px);min-height:390px;overflow:hidden;background:#0d1722}
.leaflet-map{position:absolute;inset:0;width:100%;height:100%;background:#0d1722}
.leaflet-container{font-family:inherit;background:#0d1722}
.leaflet-control-attribution{font-size:9px!important;background:rgba(255,255,255,.82)!important}

.map-toolbar{position:absolute;z-index:680;left:8px;right:8px;top:8px;display:flex;align-items:stretch;gap:5px;min-width:0;pointer-events:none}
.map-filter-bar{position:static;flex:1 1 auto;min-width:0;display:flex;gap:3px;overflow-x:auto;padding:3px;background:rgba(5,15,25,.91);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:12px;box-shadow:0 5px 16px rgba(0,0,0,.24);scrollbar-width:none;pointer-events:auto}
.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:#d8e0e8;border-radius:8px;padding:7px 8px;font-size:.67rem;font-weight:850}
.map-filter-bar button.active{background:#ff8a00;border-color:#ff8a00;color:#241100}
.map-style-switch{position:static;flex:0 0 auto;display:flex;gap:2px;padding:3px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:rgba(5,15,25,.94);backdrop-filter:blur(12px);box-shadow:0 5px 16px rgba(0,0,0,.24);pointer-events:auto}
.map-style-switch button{border:0;background:transparent;color:#c8d1db;border-radius:8px;padding:7px 8px;font-size:.67rem;font-weight:850;white-space:nowrap;display:flex;align-items:center;gap:4px}
.map-style-switch button.active{background:#ff8a00;color:#241100}

.map-gps-btn{position:absolute;z-index:650;right:10px;bottom:82px;border:1px solid rgba(255,255,255,.2);background:rgba(5,15,25,.92);color:#fff;border-radius:999px;padding:9px 12px;font-size:.7rem;font-weight:850;box-shadow:0 8px 24px rgba(0,0,0,.3);backdrop-filter:blur(8px)}
.map-gps-btn.active{background:rgba(48,148,91,.94);border-color:rgba(122,239,166,.7);box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 3px rgba(74,190,116,.14)}
.map-gps-btn.paused{background:rgba(151,101,18,.94);border-color:rgba(255,193,94,.6)}

.map-legend-strip{height:38px;display:flex;align-items:center;justify-content:flex-start;gap:15px;padding:4px 9px;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:5px;font-size:.56rem;color:#e1e6ec}
.map-legend-strip i{font-style:normal;flex:0 0 auto}
.legend-house{width:20px;height:20px;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);background:#13283c;border:2px solid #ff8a00}
.legend-candy{width:12px;height:12px;border-radius:50%;border:2px solid #fff}.legend-candy.available{background:#68d85d}.legend-candy.low{background:#ffd52f}.legend-candy.soldout{background:#ff4b35}
.legend-fantasy{font-size:18px;line-height:1}
.legend-visited,.legend-unvisited{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-weight:950}.legend-visited{background:#68d85d;color:#07111f}.legend-unvisited{background:#fff;color:#07111f}

.hn-house-marker-wrap,.hn-fantasy-marker-wrap{background:transparent!important;border:0!important}
.hn-house-marker{width:36px;height:36px;border-radius:50% 50% 50% 11px;transform:rotate(-45deg);display:grid;place-items:center;background:#13283c;border:2px solid #ff8a00;box-shadow:0 5px 14px rgba(0,0,0,.42)}
.hn-house-marker span{transform:rotate(45deg);font-size:19px}
.hn-house-marker.available{border-color:#68d85d}.hn-house-marker.low{border-color:#ffd52f}.hn-house-marker.soldout{border-color:#ff4b35}.hn-house-marker.paused{border-color:#8995a3}
.hn-house-marker.mine{box-shadow:0 0 0 3px rgba(255,255,255,.88),0 5px 14px rgba(0,0,0,.42)}
.hn-fantasy-marker{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#10263a;border:2px solid #68d85d;box-shadow:0 5px 14px rgba(0,0,0,.42)}
.hn-fantasy-marker span{font-size:20px}.hn-fantasy-marker.stale{filter:grayscale(1);opacity:.58;border-color:#8995a3}
.hn-map-popup{display:grid;gap:4px;min-width:150px;color:#13202b}.hn-map-popup b{font-size:.9rem}.hn-map-popup span,.hn-map-popup small{font-size:.72rem}.hn-map-popup em{font-size:.68rem;font-style:normal;font-weight:800;color:#536271}
.map-load-error{position:absolute;inset:18px;display:grid;place-items:center}

.bottom-nav{position:fixed;z-index:1200;left:0;right:0;bottom:0;height:calc(76px + env(safe-area-inset-bottom));padding:5px 8px calc(5px + env(safe-area-inset-bottom));display:flex;background:rgba(5,15,25,.96);border-top:1px solid rgba(255,255,255,.15);box-shadow:0 -6px 22px rgba(0,0,0,.34);backdrop-filter:blur(14px)}
.bottom-nav-inner{width:min(100%,820px);margin:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}
.nav-btn{border:0;background:transparent;color:#95a4b5;border-radius:11px;padding:5px 2px 4px;font-size:.62rem;font-weight:850;min-width:0}
.nav-btn .nav-icon{display:grid;place-items:center;height:27px;margin-bottom:2px}
.nav-btn svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.nav-btn.active{background:rgba(255,138,0,.10);color:#ffad35}

.profile-card{display:grid;gap:0}
.privacy-card{margin-top:12px;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.025)}
.privacy-card h4{margin:0 0 6px;font-size:.84rem}.privacy-card p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}

.modal-backdrop{position:fixed;inset:0;z-index:5000;background:rgba(0,0,0,.66);display:grid;place-items:end center;padding:16px 10px calc(16px + env(safe-area-inset-bottom));backdrop-filter:blur(5px)}
.modal{position:relative;width:min(100%,620px);max-height:min(88dvh,760px);overflow:auto;overscroll-behavior:contain;background:#0b1826;border:1px solid rgba(255,255,255,.16);border-radius:22px 22px 16px 16px;padding:17px;box-shadow:0 26px 80px rgba(0,0,0,.55)}
.modal h2{margin:0 0 12px}
body.modal-open{overflow:hidden}
@media(min-width:700px){.modal-backdrop{place-items:center;padding:24px}.modal{border-radius:22px;max-height:min(86dvh,760px)}}
.toast{position:fixed;z-index:6000;left:50%;bottom:88px;transform:translateX(-50%);width:min(calc(100% - 26px),520px);background:#0d1d2d;border:1px solid rgba(255,255,255,.18);border-radius:13px;padding:11px 13px;box-shadow:var(--shadow);font-size:.8rem}
.toast.error{border-color:rgba(255,75,53,.48);background:#30151a}
.loading{opacity:.55;pointer-events:none}

@media(max-width:900px){
  .topbar.halloween-topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "metrics metrics";gap:0 6px;min-height:82px;padding:4px 7px 0}
  .halloween-wordmark{grid-area:brand;justify-content:center;min-height:54px}
  .hn-wordmark{text-align:center}
  .hn-wordmark strong{font-size:1.65rem}
  .hn-wordmark span{font-size:.56rem;max-width:220px}
  .headline-zone{grid-area:metrics;width:100%}
  .top-actions{grid-area:actions}
  .map-screen-active .topbar.halloween-topbar{min-height:132px}
  .map-screen-active .map-header-metrics{height:50px;border-radius:0;border-left:0;border-right:0;border-bottom:0}
  .map-wrap{height:calc(100dvh - 132px - 76px - env(safe-area-inset-bottom) - 38px)}
}
@media(max-width:620px){
  .public-page{padding:28px 10px}
  .brand-hero{border-radius:20px 20px 14px 14px;padding:22px 18px;min-height:165px}
  .brand-hero h1{font-size:2.65rem}
  .community-grid,.grid2{grid-template-columns:1fr}
  .auth-card{padding:17px 14px 20px;border-radius:14px 14px 20px 20px}
  .header-profile span{display:none}
  .header-profile{width:40px;padding:5px;justify-content:center}
  .map-header-metrics>div{grid-template-columns:20px auto;padding:2px 3px;column-gap:3px}
  .metric-icon{font-size:15px}.map-header-metrics b{font-size:.88rem}.map-header-metrics small{font-size:.48rem}
  .content{padding:10px}
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .item-card{grid-template-columns:52px 1fr}.item-card>.tag{grid-column:2}
  .thumb{width:52px;height:52px}
  .nav-btn{font-size:.56rem}
  .nav-btn svg{width:22px;height:22px}
  .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;font-size:.61rem}
  .map-style-switch button b{display:none}
  .map-style-switch button span{font-size:1rem}
  .map-gps-btn span{display:none}
  .map-gps-btn{width:42px;height:42px;padding:0;display:grid;place-items:center;font-size:1rem;bottom:66px}
  .map-legend-strip{gap:13px;padding:4px 7px}
}
/* V5 — Paridade Família + Fantasias */
.family-screen,.fantasy-screen{max-width:760px;margin:0 auto}
.family-head,.fantasy-head{margin-bottom:10px}
.family-head .eyebrow,.fantasy-head .eyebrow{margin:0 0 3px;font-size:.64rem;letter-spacing:.13em;color:#ffad35}
.family-head h2,.fantasy-head h2{margin:0;font-size:1.2rem}
.family-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;margin:0 0 10px;padding:9px 10px;border:1px solid rgba(255,173,53,.42);border-radius:13px;background:rgba(255,138,0,.08)}
.family-alert>span{font-size:1.3rem}.family-alert b{display:block;font-size:.77rem}.family-alert small{display:block;color:#d9c9b6;font-size:.62rem;margin-top:2px;line-height:1.3}.family-alert button{border:0;border-radius:9px;background:#ff8a00;color:#211000;font-size:.65rem;font-weight:900;padding:8px 9px}
.family-house-card{position:relative;display:grid;grid-template-columns:66px minmax(0,1fr) 38px;gap:10px;align-items:center;padding:11px;margin-bottom:10px;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:linear-gradient(160deg,#0d1c2b,#091522);box-shadow:0 8px 22px rgba(0,0,0,.2)}
.family-house-visual{position:relative;width:66px;height:66px;border-radius:14px;background:#10263a;display:grid;place-items:center;font-size:2rem;border:1px solid rgba(255,255,255,.13)}
.family-house-visual .candy-dot{position:absolute;right:4px;bottom:4px;width:14px;height:14px;border:2px solid #fff;border-radius:50%}.candy-dot.available{background:#68d85d}.candy-dot.low{background:#ffd52f}.candy-dot.soldout{background:#ff4b35}.candy-dot.paused{background:#8995a3}
.family-house-main{min-width:0}.family-house-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.family-house-title strong{font-size:.94rem}.family-house-title span{font-size:.61rem;color:#ffc77b;border:1px solid rgba(255,138,0,.25);background:rgba(255,138,0,.06);padding:4px 6px;border-radius:999px}.family-house-main>p{margin:5px 0;color:#b8c1cd;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.family-state-row{display:flex;gap:6px;flex-wrap:wrap}.family-state-row span{font-size:.59rem;padding:4px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#081522;color:#ced7df}.family-state-row .ok{color:#caffc7;border-color:rgba(104,216,93,.28)}.family-state-row .warn{color:#ffe1a3;border-color:rgba(255,213,47,.28)}
.family-edit-btn{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.13);background:#14263a;color:#fff}
.family-controls{padding:12px;margin-top:0!important;margin-bottom:10px}.family-control-head strong{font-size:.82rem}.family-control-head span{display:block;color:#aeb9c6;font-size:.64rem;margin-top:2px}
.candy-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:9px}.candy-status-grid button{min-width:0;min-height:48px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#081522;color:#e4e9ee;display:grid;place-items:center;align-content:center;gap:4px;padding:5px}.candy-status-grid button.active{border-color:#ff8a00;background:rgba(255,138,0,.11)}.candy-status-grid i{width:12px;height:12px;border:2px solid #fff;border-radius:50%}.candy-status-grid i.available{background:#68d85d}.candy-status-grid i.low{background:#ffd52f}.candy-status-grid i.soldout{background:#ff4b35}.candy-status-grid i.paused{background:#8995a3}.candy-status-grid b{font-size:.57rem;line-height:1.15}
.participation-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.participation-grid button{border:1px solid rgba(255,255,255,.12);background:#081522;color:#e4e9ee;border-radius:11px;padding:9px;display:grid;gap:3px;text-align:left}.participation-grid button.active{border-color:#ff8a00;background:rgba(255,138,0,.09)}.participation-grid b{font-size:.7rem}.participation-grid small{color:#9fabb8;font-size:.57rem;line-height:1.25}
.family-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px}.family-tools .btn{font-size:.68rem;padding:10px}

.house-icon-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.house-icon-picker button{height:44px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:#081522;font-size:1.5rem}.house-icon-picker button.active{border-color:#ff8a00;background:rgba(255,138,0,.12)}

.fantasy-screen{padding-bottom:6px}.fantasy-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important}.fantasy-head .small-btn{min-height:38px}
.device-selection-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:0 0 9px;padding:9px 10px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:#0b1826}.device-selection-card b{display:block;font-size:.76rem}.device-selection-card span:not(.status-pill){display:block;color:#aeb9c6;font-size:.61rem;margin-top:2px;line-height:1.3}.device-selection-actions{display:grid;grid-template-columns:auto auto;gap:5px}.device-selection-actions .status-pill{grid-column:1/-1;justify-self:end}.device-selection-actions button{height:32px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#14263a;color:#fff;font-size:.62rem;font-weight:800;padding:0 8px}
.fantasy-list{display:grid;gap:8px}.fantasy-card{padding:9px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:linear-gradient(160deg,#0c1a29,#091522)}.fantasy-card.device-active{border-color:rgba(255,138,0,.42);box-shadow:inset 3px 0 0 #ff8a00}
.fantasy-card-headline{display:flex;align-items:center;gap:5px;min-width:0;padding:0 1px 7px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.fantasy-card-headline::-webkit-scrollbar{display:none}.fantasy-card-headline strong{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;font-size:.82rem}.fantasy-card-headline strong span{font-size:1rem}
.fantasy-chip{display:inline-flex;align-items:center;flex:0 0 auto;min-height:23px;padding:4px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#dbe4ed;font-size:.56rem;font-weight:800}.fantasy-chip.costume{color:#e1d9ec;background:rgba(131,147,168,.08)}.fantasy-chip.on{color:#d9ffe6;border-color:rgba(104,216,93,.24);background:rgba(104,216,93,.07)}.fantasy-chip.off{color:#b8c1cd}.fantasy-chip.photo-count{margin-left:auto;color:#d7e8f7}
.fantasy-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-bottom:7px}.fantasy-photo-slot{aspect-ratio:1.16/1;border-radius:9px;border:1px solid rgba(255,255,255,.11);background:#081522;display:grid;place-items:center;align-content:center;overflow:hidden}.fantasy-photo-slot.empty-slot{border-style:dashed;color:#718092}.fantasy-photo-slot.empty-slot>span{font-size:1.2rem;line-height:1}.fantasy-photo-slot small,.fantasy-photo-slot.filled>span{font-size:.52rem;color:#8e9baa;margin-top:2px}.fantasy-photo-slot .photo-placeholder{font-size:1.45rem}
.fantasy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.fantasy-actions button{height:33px;min-width:0;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#14263a;color:#fff;font-size:.62rem;font-weight:800}.fantasy-actions button.active{background:rgba(255,138,0,.13);border-color:rgba(255,138,0,.5);color:#ffd39f}.fantasy-actions .delete-child{grid-column:2;height:29px;color:#ffd2d2;border-color:rgba(255,75,53,.22);background:rgba(255,75,53,.07)}.fantasy-actions .photo-soon{color:#cad5df}.contest-toggle small{display:block;color:#93a0ad;font-size:.61rem;margin-top:4px}

@media(max-width:620px){
  .family-alert{grid-template-columns:auto minmax(0,1fr)}.family-alert button{grid-column:2;justify-self:start}
  .family-house-card{grid-template-columns:56px minmax(0,1fr) 34px;padding:9px;gap:8px}.family-house-visual{width:56px;height:56px;font-size:1.75rem}.family-house-title strong{font-size:.86rem}
  .candy-status-grid{gap:4px}.candy-status-grid button{min-height:45px;padding:4px}.candy-status-grid b{font-size:.52rem}
  .family-tools{grid-template-columns:1fr}
  .device-selection-card{grid-template-columns:1fr}.device-selection-actions{grid-template-columns:auto 1fr 1fr}.device-selection-actions .status-pill{grid-column:auto;justify-self:start}
  .fantasy-card{padding:8px}.fantasy-card-headline{gap:4px}.fantasy-card-headline strong{font-size:.78rem}.fantasy-chip{font-size:.53rem;padding:4px 5px}
}

/* V6 — Mídia real casa/fantasia */
.family-photo-card{padding:11px;margin-top:0!important;margin-bottom:10px}
.family-photo-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.family-photo-head strong{display:block;font-size:.8rem}.family-photo-head span:not(.status-pill){display:block;color:#9fabb8;font-size:.61rem;margin-top:2px}
.family-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}
.family-photo-actions button{height:36px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:#14263a;color:#fff;font-size:.64rem;font-weight:850}
.family-house-visual.has-photo{overflow:hidden;padding:0}.family-house-visual.has-photo>img{width:100%;height:100%;object-fit:cover;display:block}
.media-photo-slot{position:relative;padding:0!important}
.media-photo-slot>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .18s}.media-photo-slot>img.loaded{opacity:1}.media-photo-slot>img.media-error{display:none}
.media-photo-slot>span{position:absolute;left:5px;bottom:4px;z-index:2;background:rgba(5,15,25,.78);border-radius:6px;padding:2px 4px;color:#fff!important;font-size:.49rem!important;margin:0!important}
.photo-delete-btn{position:absolute;z-index:4;right:4px;top:4px;width:25px;height:25px;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(22,8,10,.82);color:#fff;font-size:1rem;line-height:1;padding:0}
.photo-empty-button{appearance:none;width:100%;color:#718092;cursor:pointer}
.photo-empty-button:active{border-color:#ff8a00;background:rgba(255,138,0,.07)}
.fantasy-actions button[data-child-gallery],.fantasy-actions button[data-child-camera]{color:#f3f6f9}
.media-uploading{pointer-events:none;opacity:.62}

@media(max-width:620px){
  .family-photo-actions button{height:34px}
  .photo-delete-btn{width:24px;height:24px}
}

/* V9 — Diversão: paridade Villa Alpina */
.fun-screen{max-width:820px;margin:0 auto;padding-bottom:8px}
.fun-section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:9px}
.fun-section-head .eyebrow{margin:0 0 3px;color:#ffad35;font-size:.62rem;letter-spacing:.12em}
.fun-section-head h2{margin:0;font-size:1.22rem}
.fun-section-head h2 span{color:#ffad35;font-weight:800}
.fun-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;margin-bottom:9px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:#071421}
.fun-tabs button{min-width:0;border:0;background:transparent;color:#aeb9c6;border-radius:9px;padding:9px 5px;font-size:.66rem;font-weight:900;white-space:nowrap}
.fun-tabs button.active{background:linear-gradient(135deg,#ff8a00,#ff6234);color:#201000;box-shadow:0 3px 12px rgba(255,115,22,.18)}
.fun-pane{display:none}.fun-pane.active{display:block}
.haunt-status-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:8px;padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#0a1724}
.haunt-status-row>div>b{display:block;font-size:.74rem}.haunt-status-row>div>span{display:block;color:#aeb9c6;font-size:.58rem;margin-top:2px}
.haunt-help{position:relative}.haunt-help summary{list-style:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#14263a;color:#fff;font-weight:950;cursor:pointer}
.haunt-help summary::-webkit-details-marker{display:none}.haunt-help>div{position:absolute;z-index:20;right:0;top:42px;width:min(310px,80vw);padding:11px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#0a1724;box-shadow:0 16px 36px rgba(0,0,0,.45)}
.haunt-help>div b{font-size:.78rem}.haunt-help>div p{margin:6px 0 0;color:#c0c9d2;font-size:.65rem;line-height:1.45}
.fun-wallet-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:6px;margin-bottom:9px}
.wallet-earn-more,.fun-wallet-stat{min-height:86px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:linear-gradient(160deg,#0d1b2a,#081522);padding:9px}
.wallet-earn-more{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center}
.wallet-earn-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,138,0,.12);border:1px solid rgba(255,138,0,.35);color:#ffad35;font-size:.72rem;font-weight:950}
.wallet-earn-more b{display:block;font-size:.68rem}.wallet-earn-more small{display:block;color:#b5c0cb;font-size:.53rem;margin-top:1px}.wallet-earn-more span{display:block;color:#ffc376;font-size:.52rem;font-weight:800;margin-top:4px}.wallet-earn-more em{display:block;color:#82909e;font-size:.48rem;font-style:normal;margin-top:2px}
.fun-wallet-stat{display:grid;grid-template-rows:auto auto auto;align-content:center}
.wallet-stat-head{display:flex;align-items:center;gap:6px}.wallet-stat-head>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#12263a;font-size:.9rem}.wallet-stat-head img{width:27px;height:27px;object-fit:contain}
.wallet-stat-head b{display:block;font-size:.61rem}.wallet-stat-head small{display:block;color:#96a4b1;font-size:.46rem}
.wallet-stat-value{font-size:1.2rem;font-weight:950;margin-top:4px}.wallet-stat-value small{font-size:.48rem;color:#aeb8c2;font-weight:700}
.wallet-stat-foot{font-size:.47rem;color:#8f9ba8;margin-top:2px}
.fun-wallet-stat.slimer .wallet-stat-value{color:#90e873}.fun-wallet-stat.gaspar .wallet-stat-value{color:#d9e9f8}.fun-wallet-stat.qr .wallet-stat-value{color:#ffbd63}
.haunt-target-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:4px 0 5px;padding:4px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#071421}
.haunt-target-tabs button{border:0;background:transparent;color:#aeb9c6;border-radius:8px;padding:8px;font-size:.65rem;font-weight:900}
.haunt-target-tabs button.active{background:#14263a;color:#fff}
.haunt-target-caption{display:flex;align-items:center;gap:5px;margin:4px 1px 7px;color:#c5ced7;font-size:.57rem}.haunt-target-caption img{width:20px;height:20px;object-fit:contain}
.haunt-list{display:grid;gap:7px}
.haunt-modern-card{display:grid;grid-template-columns:minmax(112px,36%) minmax(0,1fr);gap:8px;padding:7px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:linear-gradient(160deg,#0c1a29,#081522);overflow:hidden}
.haunt-visual{position:relative;width:100%;aspect-ratio:4/5;border-radius:11px;overflow:hidden;background:#08121d;border:1px solid rgba(255,255,255,.1)}
.haunt-card-photo{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .18s}.haunt-card-photo.loaded{opacity:1}.haunt-card-photo.media-error{display:none}
.haunt-photo-fallback{width:100%;height:100%;display:grid;place-items:center;font-size:2.4rem;background:radial-gradient(circle at 50% 38%,rgba(255,255,255,.06),transparent 50%)}
.haunt-card-copy{display:flex;flex-direction:column;gap:5px;min-width:0;padding:1px 0}
.haunt-card-title{display:flex;align-items:flex-start;gap:5px}.haunt-card-title h4{flex:1;min-width:0;margin:0;font-size:.76rem;line-height:1.12}.haunt-card-title>span{flex:0 0 auto;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:3px 5px;color:#9eabb7;font-size:.43rem}
.haunt-info-row{display:flex;flex-wrap:wrap;gap:4px}.haunt-info-chip{display:inline-flex;align-items:center;gap:3px;min-height:20px;padding:3px 5px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.025);color:#bfc9d3;font-size:.45rem;line-height:1}.haunt-info-chip.wide{flex:1 0 100%;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.haunt-info-chip.received b{color:#fff}
.haunt-blocked{margin-top:auto;min-height:35px;display:flex;align-items:center;justify-content:center;padding:6px;border-radius:10px;background:rgba(255,255,255,.035);border:1px dashed rgba(255,255,255,.12);color:#9eabb7;text-align:center;font-size:.49rem;line-height:1.25}
.haunt-action-shell{display:grid;grid-template-columns:minmax(0,1fr) 50px;gap:5px;margin-top:auto}
.haunt-primary-btn{height:38px;border:1px solid rgba(255,146,52,.58);border-radius:11px;background:linear-gradient(180deg,#ffa536,#ef7a0c);color:#111c25;font-size:.59rem;font-weight:950;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 7px}
.haunt-primary-btn img{width:21px;height:21px;object-fit:contain}.haunt-primary-btn b{padding:2px 5px;border-radius:999px;background:rgba(0,0,0,.12);font-size:.48rem}.haunt-primary-btn.no-credit{opacity:.55;filter:saturate(.65)}
.haunt-sent-chip{height:38px;border:1px solid rgba(255,196,96,.27);border-radius:11px;background:rgba(255,174,64,.07);color:#fff;display:flex;align-items:center;justify-content:center;gap:3px;padding:0 5px}.haunt-sent-chip img{width:19px;height:19px;object-fit:contain}.haunt-sent-chip b{font-size:.65rem}.haunt-sent-chip:disabled{opacity:.35}

.fun-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 8px;padding:0 2px}.fun-panel-head b{display:block;font-size:.78rem}.fun-panel-head span:not(.status-pill):not(.token-label){display:block;color:#9eabb7;font-size:.57rem;margin-top:2px}
.participant-directory{display:grid;gap:5px}.participant-house-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid rgba(255,255,255,.11);border-radius:11px;background:#0a1724}
.participant-house-icon{width:42px;height:42px;border-radius:10px;background:#12263a;display:grid;place-items:center;font-size:1.45rem}
.participant-house-copy{min-width:0}.participant-house-copy b{display:block;font-size:.7rem}.participant-house-copy span{display:block;color:#b3bec8;font-size:.55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.participant-house-copy small{display:block;color:#81909e;font-size:.49rem;margin-top:3px}
.participant-house-state span{display:inline-flex;min-width:34px;justify-content:center;border-radius:999px;padding:5px 6px;font-size:.49rem;font-weight:900}.participant-house-state .mine{background:rgba(255,138,0,.12);color:#ffbd67}.participant-house-state .visited{background:rgba(104,216,93,.1);color:#adf4a7}.participant-house-state .pending{background:rgba(255,255,255,.05);color:#8895a2}

.ranking-card{padding:9px;margin-bottom:8px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:#0a1724}.ranking-card:last-child{margin-bottom:0}
.token-label{display:inline-flex!important;align-items:center;gap:4px!important;border:1px solid rgba(255,255,255,.11);border-radius:999px;padding:5px 7px;color:#d8e1e9!important;font-size:.49rem!important;white-space:nowrap}.token-label img{width:18px;height:18px;object-fit:contain}
.fun-rank-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 6px;border-top:1px solid rgba(255,255,255,.07)}.fun-rank-row:first-of-type{border-top:0}.fun-rank-row.me{background:rgba(255,138,0,.045);border-radius:9px}
.rank-place{font-size:.8rem;font-weight:950;text-align:center}.rank-copy{min-width:0}.rank-copy b{display:block;font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-copy small{display:block;color:#8795a2;font-size:.5rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-score{display:flex;align-items:center;gap:3px}.rank-score img{width:22px;height:22px;object-fit:contain}.rank-score b{font-size:.68rem}.qr-rank-score{font-size:.58rem;font-weight:900;color:#ffbd67}

.album-head{margin-bottom:8px}.fun-album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.album-post{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#0a1724}.album-photo-open{display:block;width:100%;aspect-ratio:1.15/1;padding:0;border:0;background:#08131f;overflow:hidden}.album-photo-open img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .18s}.album-photo-open img.loaded{opacity:1}
.album-post-copy{padding:7px 8px;min-width:0}.album-post-copy b{display:block;font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-post-copy span{display:block;color:#8795a2;font-size:.5rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.album-delete{position:absolute;right:5px;top:5px;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(20,5,8,.82);color:#fff;font-size:1rem}
.album-compose-pick{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.album-compose-pick button{height:42px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#14263a;color:#fff;font-weight:850;font-size:.68rem}.album-file-status{min-height:38px;display:flex;align-items:center;padding:8px 10px;margin-bottom:9px;border:1px dashed rgba(255,255,255,.14);border-radius:9px;color:#9aa7b4;font-size:.61rem}
.simple-photo-view{width:100%;max-height:66vh;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:#050d17}.simple-photo-view img{max-width:100%;max-height:66vh;object-fit:contain;opacity:0}.simple-photo-view img.loaded{opacity:1}

@media(max-width:620px){
  .fun-screen{padding:0 0 4px}
  .fun-tabs button{padding:8px 3px;font-size:.61rem}
  .fun-wallet-grid{grid-template-columns:1fr 1fr;gap:5px}
  .wallet-earn-more{grid-column:1/-1;min-height:67px;grid-template-columns:37px minmax(0,1fr);padding:7px}.wallet-earn-icon{width:37px;height:37px}
  .fun-wallet-stat{min-height:78px;padding:7px}.wallet-stat-value{font-size:1.08rem}
  .haunt-modern-card{grid-template-columns:minmax(104px,38%) minmax(0,1fr);gap:6px}
  .haunt-card-title h4{font-size:.7rem}.haunt-info-chip{font-size:.41rem}
  .fun-album-grid{gap:6px}
}
@media(max-width:390px){
  .fun-tabs button{font-size:.56rem}
  .haunt-modern-card{grid-template-columns:minmax(98px,38%) minmax(0,1fr)}
  .haunt-action-shell{grid-template-columns:minmax(0,1fr) 46px}.haunt-sent-chip{padding:0 3px}
  .participant-house-row{grid-template-columns:38px minmax(0,1fr) auto}.participant-house-icon{width:38px;height:38px}
}

.fun-qr-inline{margin-top:6px;border:1px solid rgba(255,138,0,.35);background:rgba(255,138,0,.08);color:#ffbd6a;border-radius:8px;padding:6px 8px;font-size:.56rem;font-weight:900}

/* V10 — feedback visual de Assombrar */
.haunt-primary-btn.blocked{background:#142231!important;border-color:rgba(255,255,255,.11)!important;color:#8795a2!important;box-shadow:none!important;opacity:.72}
.haunt-primary-btn.busy,.haunt-sent-chip.busy{pointer-events:none;opacity:.55}
.haunt-visual{isolation:isolate}
.hn-haunt-flash{position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 48% 54%,rgba(255,182,80,.38),rgba(255,112,18,.22) 46%,rgba(255,104,0,0) 76%);box-shadow:inset 0 0 0 2px rgba(255,155,49,.6),inset 0 0 26px rgba(255,113,21,.3)}
.haunt-modern-card.haunt-hit .haunt-visual{animation:hnHauntPulse .78s ease}
@keyframes hnHauntPulse{0%{transform:scale(1);filter:brightness(1)}38%{transform:scale(1.018);filter:brightness(1.14) saturate(1.13)}100%{transform:scale(1);filter:brightness(1)}}

/* V14 — Administração geral/local + acesso Demo persistente */
.admin-entry-btn{width:100%;margin:12px 0 4px;padding:12px 14px;border:1px solid rgba(255,173,53,.24);border-radius:14px;background:linear-gradient(145deg,rgba(255,138,0,.07),rgba(11,27,42,.98));color:#e9eef3;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left}
.admin-entry-btn>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#14263a;font-size:1.15rem}.admin-entry-btn b{display:block;font-size:.78rem}.admin-entry-btn small{display:block;color:#93a2b0;font-size:.58rem;margin-top:2px}.admin-entry-btn>strong{color:#ffad35;font-size:1rem}
.admin-page{min-height:100dvh;background:#06111d;color:#eef3f7}.admin-topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(5,15,25,.96);backdrop-filter:blur(12px)}
.test-ribbon+.admin-page .admin-topbar{top:0}.admin-topbar>div>small{display:block;color:#ffad35;font-size:.53rem;font-weight:900;letter-spacing:.1em}.admin-topbar h1{margin:2px 0 0;font-size:1.02rem}.admin-topbar p{margin:2px 0 0;color:#93a2b0;font-size:.56rem}.admin-back-public{width:36px;height:36px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:#14263a;color:#fff;font-size:1rem}.admin-top-actions{display:flex;align-items:center;gap:6px}.admin-top-actions>button{height:34px;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:#14263a;color:#fff;padding:0 9px;font-size:.58rem;font-weight:850}.admin-user-chip{display:inline-flex;align-items:center;min-height:32px;border:1px solid rgba(255,173,53,.2);border-radius:999px;background:rgba(255,138,0,.07);padding:0 8px;color:#ffc170;font-size:.55rem;font-weight:850}
.admin-content{width:min(980px,100%);margin:0 auto;padding:14px}.admin-login-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.admin-login-card,.admin-setup-card{padding:15px;border:1px solid rgba(255,255,255,.13);border-radius:15px;background:#0a1724}.admin-card-title{display:flex;gap:9px;align-items:center;margin-bottom:12px}.admin-card-title>span{font-size:1.45rem}.admin-card-title h2{margin:0;font-size:1rem}.admin-card-title p{margin:3px 0 0;color:#94a3b1;font-size:.61rem}.admin-setup-card details>summary{cursor:pointer;color:#ffc170;font-size:.68rem;font-weight:850;padding:8px 0}.admin-setup-card form{margin-top:8px}.admin-setup-card .field small{display:block;color:#83919e;font-size:.54rem;margin-top:3px}
.admin-dashboard-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:12px}.admin-dashboard-head .eyebrow{margin:0 0 3px;color:#ffad35;font-size:.58rem;letter-spacing:.1em}.admin-dashboard-head h2{margin:0;font-size:1.25rem}.admin-dashboard-head p{margin:4px 0 0;color:#96a5b3;font-size:.65rem}.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:12px}.admin-kpis>div{padding:11px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#0a1724}.admin-kpis b{display:block;font-size:1.25rem}.admin-kpis span{display:block;color:#90a0ae;font-size:.56rem;margin-top:2px}.admin-kpis .attention{border-color:rgba(255,166,54,.46);background:rgba(255,138,0,.07)}.admin-kpis .attention b{color:#ffb65c}
.admin-community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.admin-community-card{padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:linear-gradient(155deg,#0d1b2a,#081522)}.admin-community-head{display:flex;justify-content:space-between;gap:8px;align-items:start}.admin-community-head>div{display:flex;gap:8px}.admin-community-head>div>span{font-size:1.35rem}.admin-community-head h3{margin:0;font-size:.83rem}.admin-community-head small{display:block;color:#8493a1;font-size:.53rem;margin-top:2px}.admin-status{border-radius:999px;padding:4px 7px;font-size:.48rem;font-weight:900;text-transform:uppercase;border:1px solid rgba(255,255,255,.12)}.admin-status.active{color:#aef2aa;border-color:rgba(104,216,93,.3)}.admin-status.draft{color:#ffd294;border-color:rgba(255,173,53,.3)}.admin-status.suspended,.admin-status.archived{color:#ffb5ab;border-color:rgba(255,75,53,.3)}
.admin-community-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:10px 0}.admin-community-metrics>div{padding:7px 4px;border-radius:9px;background:#07131f;text-align:center}.admin-community-metrics b{display:block;font-size:.82rem}.admin-community-metrics span{display:block;color:#7f8e9c;font-size:.45rem;margin-top:2px}.admin-community-metrics .attention{outline:1px solid rgba(255,138,0,.32)}.admin-community-metrics .attention b{color:#ffb760}
.admin-inline-back{margin:0 0 10px;border:0;background:transparent;color:#ffb45a;font-size:.64rem;font-weight:850}.admin-section-title{display:flex;justify-content:space-between;align-items:center;margin:12px 0 7px}.admin-section-title b{font-size:.78rem}.admin-section-title span{display:block;color:#8e9daa;font-size:.55rem;margin-top:2px}
.admin-family-list{display:grid;gap:6px}.admin-family-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-template-areas:"avatar copy status" "avatar actions actions";gap:5px 8px;align-items:center;padding:9px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:#0a1724}.admin-family-row.pending{border-color:rgba(255,173,53,.32)}.admin-family-avatar{grid-area:avatar;width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#14263a}.admin-family-copy{grid-area:copy;min-width:0}.admin-family-copy b{display:block;font-size:.7rem}.admin-family-copy span{display:block;color:#aab6c1;font-size:.54rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-family-copy small{display:block;color:#7f8f9d;font-size:.49rem;margin-top:2px}.admin-family-status{grid-area:status}.admin-family-status span{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 7px;font-size:.49rem}.admin-family-row.approved .admin-family-status span{color:#aef2aa;border-color:rgba(104,216,93,.3)}.admin-family-row.pending .admin-family-status span{color:#ffd294;border-color:rgba(255,173,53,.3)}.admin-family-row.rejected .admin-family-status span{color:#ffb5ab;border-color:rgba(255,75,53,.3)}.admin-family-actions{grid-area:actions;display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}.admin-family-actions button{height:30px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#14263a;color:#fff;padding:0 8px;font-size:.52rem;font-weight:850}.admin-family-actions button:first-child{border-color:rgba(104,216,93,.28);color:#bbf4b7}.admin-family-actions button.danger{border-color:rgba(255,75,53,.25);color:#ffc0b8;background:rgba(255,75,53,.06)}
@media(max-width:700px){.admin-login-grid,.admin-community-grid{grid-template-columns:1fr}.admin-user-chip{display:none}.admin-content{padding:11px}.admin-dashboard-head{align-items:start;flex-direction:column}.admin-kpis{grid-template-columns:repeat(2,1fr)}.admin-community-metrics{grid-template-columns:repeat(4,1fr)}}
@media(max-width:420px){.admin-topbar{grid-template-columns:auto minmax(0,1fr) auto;padding:10px}.admin-topbar p{display:none}.admin-community-metrics{grid-template-columns:repeat(2,1fr)}.admin-family-row{grid-template-columns:36px minmax(0,1fr) auto}.admin-family-avatar{width:36px;height:36px}.admin-family-actions{justify-content:flex-start}}


/* V17 — Perfil e Ajuda: paridade funcional Villa Alpina */
.profile-screen{max-width:780px;margin:0 auto;padding-bottom:8px}
.profile-section-head{margin-bottom:10px}
.profile-id-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px 18px;padding:14px;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:linear-gradient(155deg,#0d1c2b,#08131f);box-shadow:0 14px 34px rgba(0,0,0,.24)}
.profile-community-brand{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:8px;border:1px solid rgba(255,138,0,.17);border-radius:15px;background:rgba(255,138,0,.045);text-align:center}
.profile-community-mark{width:86px;height:86px;display:grid;place-items:center;border-radius:24px;background:radial-gradient(circle at 35% 30%,#ffb347,#ff7d18 55%,#7a2b00);box-shadow:0 10px 24px rgba(0,0,0,.3);font-size:44px;line-height:1}
.profile-community-brand span{margin-top:9px;color:#ffad35;font-size:.52rem;font-weight:950;letter-spacing:.16em}
.profile-community-brand strong{margin-top:3px;max-width:100%;color:#fff;font-size:.72rem;line-height:1.18;overflow-wrap:anywhere}
.profile-id-main{grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.profile-id-main .eyebrow{margin:0 0 4px}
.profile-id-main h3{margin:0 0 12px;font-size:1.22rem;line-height:1.08}
.profile-identity-details{display:grid;gap:8px}
.profile-identity-details>div{position:relative;display:grid;gap:2px;min-width:0;padding-bottom:7px}
.profile-identity-details>div:not(:last-child)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.075)}
.profile-identity-details span,.profile-id-extra span{color:var(--muted);font-size:.54rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.profile-identity-details b{min-width:0;color:#fff;font-size:.76rem;line-height:1.25;overflow-wrap:anywhere}
.profile-id-extra{grid-column:1/-1;display:grid;grid-template-columns:1.2fr .9fr 1fr;gap:7px;margin-top:1px}
.profile-id-extra>div{display:grid;gap:3px;min-width:0;padding:9px 10px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.025)}
.profile-id-extra b{font-size:.68rem;line-height:1.25;overflow-wrap:anywhere}
.profile-privacy-card{margin:10px 0 0;border-color:rgba(142,92,255,.24);background:rgba(142,92,255,.075)}
.profile-privacy-card p{font-size:.74rem;line-height:1.48}
.profile-actions-card{margin-top:10px;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:#081521}
.profile-actions-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px}
.profile-actions-title b{display:block;font-size:.82rem}
.profile-actions-title span{display:block;margin-top:2px;color:var(--muted);font-size:.64rem}
.profile-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.profile-action-btn{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#0e1e2d;color:#fff;text-align:left}
.profile-action-btn>span{font-size:20px;text-align:center}
.profile-action-btn>div{min-width:0}
.profile-action-btn b{display:block;font-size:.72rem}
.profile-action-btn small{display:block;margin-top:2px;color:var(--muted);font-size:.56rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-action-btn>strong{color:#8796a5;font-size:.9rem}
.profile-action-btn.primary{border-color:rgba(255,138,0,.28);background:linear-gradient(145deg,rgba(255,138,0,.13),rgba(14,30,45,.96))}
.profile-action-btn.primary>strong{color:#ffad35}
.profile-logout{margin-top:9px}
.profile-help{display:grid;gap:12px}
.profile-help-head{display:flex;align-items:center;gap:11px}
.profile-help-head>span{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:rgba(255,138,0,.11);border:1px solid rgba(255,138,0,.2);font-size:27px}
.profile-help-head .eyebrow{margin:0 0 2px}
.profile-help-head h2{margin:0;font-size:1.12rem}
.profile-help-head p:last-child{margin:3px 0 0;color:var(--muted);font-size:.66rem}
.profile-help-list{display:grid;gap:7px}
.profile-help-list article{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;padding:9px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.022)}
.profile-help-list article>span{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:rgba(255,138,0,.12);color:#ffad35;font-size:.65rem;font-weight:950}
.profile-help-list b{display:block;font-size:.72rem}
.profile-help-list p{margin:3px 0 0;color:#bdc8d2;font-size:.62rem;line-height:1.4}
.profile-help-note{display:grid;gap:3px;padding:10px;border:1px dashed rgba(255,173,53,.28);border-radius:11px;background:rgba(255,173,53,.055)}
.profile-help-note b{font-size:.68rem;color:#ffbd58}
.profile-help-note span{color:var(--muted);font-size:.59rem;line-height:1.4}

@media(max-width:560px){
  .profile-id-card{grid-template-columns:112px minmax(0,1fr);gap:10px 12px;padding:11px}
  .profile-community-brand{padding:6px}
  .profile-community-mark{width:72px;height:72px;border-radius:20px;font-size:37px}
  .profile-community-brand span{font-size:.45rem}.profile-community-brand strong{font-size:.62rem}
  .profile-id-main h3{margin-bottom:8px;font-size:1.02rem}
  .profile-identity-details{gap:5px}.profile-identity-details>div{padding-bottom:5px}
  .profile-identity-details span,.profile-id-extra span{font-size:.48rem}.profile-identity-details b{font-size:.67rem}
  .profile-id-extra{grid-template-columns:1fr 1fr}
  .profile-id-extra>div:first-child{grid-column:1/-1}
  .profile-id-extra b{font-size:.63rem}
  .profile-action-grid{grid-template-columns:1fr}
  .profile-action-btn{grid-template-columns:32px minmax(0,1fr) auto;padding:9px}
}


/* V18 — Administração: operação, filtros e ciclo de vida */
.admin-kpis-overview>div{display:grid;align-content:start;min-height:86px}
.admin-kpis-overview small{display:block;margin-top:5px;color:#71808e;font-size:.49rem}
.admin-lifecycle-strip{display:flex;gap:7px;flex-wrap:wrap;margin:-3px 0 12px;padding:8px 10px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#081521}
.admin-lifecycle-strip span{display:inline-flex;align-items:center;gap:5px;color:#aab6c1;font-size:.55rem;font-weight:800}
.admin-lifecycle-strip i{width:8px;height:8px;border-radius:50%;background:#7c8995}
.admin-lifecycle-strip i.active{background:#68d85d}.admin-lifecycle-strip i.draft{background:#ffad35}.admin-lifecycle-strip i.suspended{background:#ff715e}.admin-lifecycle-strip i.archived{background:#8995a3}
.admin-community-toolbar,.admin-family-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:8px;margin-bottom:9px}
.admin-community-toolbar .field,.admin-family-toolbar .field{margin:0}
.admin-community-toolbar label,.admin-family-toolbar label{font-size:.54rem}
.admin-community-toolbar input,.admin-community-toolbar select,.admin-family-toolbar input,.admin-family-toolbar select{height:38px;padding:0 10px;font-size:.68rem}
.admin-community-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07)}
.admin-community-footer>span{min-width:0;color:#81909d;font-size:.51rem;line-height:1.25}
.admin-community-footer .btn{width:auto;min-width:112px;padding:8px 10px;font-size:.58rem}
.admin-community-title{align-items:center}
.admin-community-title-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.admin-ops-card{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-bottom:10px;padding:10px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:linear-gradient(155deg,#0c1a28,#081522)}
.admin-ops-copy{min-width:0;padding:8px 9px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.02)}
.admin-ops-copy span{display:block;color:#7f8e9c;font-size:.48rem;font-weight:900;letter-spacing:.08em}
.admin-ops-copy b{display:block;margin-top:3px;font-size:.75rem}
.admin-ops-copy small{display:block;margin-top:4px;color:#98a6b3;font-size:.53rem;line-height:1.35}
.admin-lifecycle-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;padding-top:2px}
.admin-lifecycle-actions .btn{width:auto;padding:8px 10px;font-size:.56rem}
.admin-kpis-detail{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-family-section-title{margin-top:13px}
.admin-readonly-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 8px;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#8795a2;font-size:.5rem;font-weight:800}
.admin-filter-empty{margin-top:8px;padding:14px}
.hidden{display:none!important}

@media(max-width:760px){
  .admin-community-toolbar,.admin-family-toolbar{grid-template-columns:1fr 145px}
  .admin-ops-card{grid-template-columns:1fr}
  .admin-lifecycle-actions{grid-column:1}
  .admin-kpis-detail{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:480px){
  .admin-community-toolbar,.admin-family-toolbar{grid-template-columns:1fr}
  .admin-community-title-meta{justify-content:flex-start}
  .admin-community-footer{align-items:flex-start;flex-direction:column}
  .admin-community-footer .btn{width:100%}
  .admin-kpis-detail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-lifecycle-actions{display:grid;grid-template-columns:1fr 1fr}
  .admin-lifecycle-actions .btn{width:100%}
}


/* V19 — Administradores locais */
.admin-local-admins{margin:11px 0 2px;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#081521}
.admin-local-admins .admin-section-title{margin:0 0 8px}
.admin-local-admins .admin-section-title>button{flex:0 0 auto}
.admin-local-list{display:grid;gap:6px}
.admin-local-row{display:grid;grid-template-columns:38px minmax(0,1fr) 150px auto;gap:7px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:#0b1927}
.admin-local-row.inactive{opacity:.72}
.admin-local-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#14263a}
.admin-local-copy{min-width:0}.admin-local-copy b{display:block;font-size:.68rem}.admin-local-copy span{display:block;color:#9eacb9;font-size:.53rem;margin-top:1px}.admin-local-copy small{display:block;color:#71808e;font-size:.48rem;margin-top:2px}
.admin-local-role select{width:100%;height:32px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0e2132;color:#fff;padding:0 7px;font-size:.56rem}
.admin-local-actions{display:flex;gap:4px;justify-content:flex-end}
.admin-local-actions button{height:30px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#14263a;color:#fff;padding:0 7px;font-size:.5rem;font-weight:850}
.admin-local-actions button.danger{border-color:rgba(255,75,53,.25);background:rgba(255,75,53,.06);color:#ffc0b8}
.admin-local-hint{margin-top:7px;color:#7f8e9c;font-size:.5rem;line-height:1.35}

@media(max-width:680px){
  .admin-local-row{grid-template-columns:34px minmax(0,1fr);grid-template-areas:"avatar copy" "role role" "actions actions"}
  .admin-local-avatar{grid-area:avatar;width:34px;height:34px}.admin-local-copy{grid-area:copy}.admin-local-role{grid-area:role}.admin-local-actions{grid-area:actions;justify-content:flex-start}
  .admin-local-role select{height:35px}
}


/* V20 — Painel operacional da comunidade */
.admin-community-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;margin-bottom:8px;scrollbar-width:none}
.admin-community-tabs::-webkit-scrollbar{display:none}
.admin-community-tabs button{flex:0 0 auto;height:38px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:#0a1724;color:#aeb9c6;padding:0 11px;font-size:.58rem;font-weight:850;display:inline-flex;align-items:center;gap:5px}
.admin-community-tabs button.active{border-color:rgba(255,138,0,.55);background:rgba(255,138,0,.11);color:#ffd29d}
.admin-community-tabs button span{font-size:.9rem}
.admin-tab-panel{min-height:240px}
.admin-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}
.admin-quick-grid button{min-height:88px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#0a1724;color:#eef3f7;text-align:left;padding:10px;display:grid;align-content:start;gap:3px}
.admin-quick-grid button>span{font-size:1.2rem}.admin-quick-grid button>b{font-size:.68rem}.admin-quick-grid button>small{color:#80909e;font-size:.5rem;line-height:1.3}
.admin-street-list{display:grid;gap:6px}
.admin-street-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:9px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#0a1724}
.admin-street-row.inactive{opacity:.68}
.admin-street-order{width:42px;height:34px;border-radius:8px;background:#14263a;display:grid;place-items:center;color:#ffbd68;font-size:.58rem;font-weight:900}
.admin-street-copy{min-width:0}.admin-street-copy b{display:block;font-size:.68rem}.admin-street-copy small{display:block;color:#7f8f9d;font-size:.49rem;margin-top:2px}
.admin-street-status{border:1px solid rgba(104,216,93,.25);border-radius:999px;padding:4px 7px;color:#baf4b6;font-size:.48rem;font-weight:850}
.admin-street-row.inactive .admin-street-status{border-color:rgba(255,255,255,.1);color:#a1aab3}
.admin-street-actions{display:flex;gap:4px}
.admin-street-actions button{height:30px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#14263a;color:#fff;padding:0 7px;font-size:.5rem;font-weight:850}
.admin-street-actions button.danger{border-color:rgba(255,75,53,.25);background:rgba(255,75,53,.06);color:#ffc0b8}
.admin-config-card{padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#091724}
.admin-config-card .admin-section-title{margin:0 0 10px}
.admin-config-form{display:grid;gap:8px}
.admin-config-form .field{margin:0}
.admin-config-form textarea{width:100%;resize:vertical;min-height:105px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:#07131f;color:#eef3f7;padding:9px 10px;font:inherit;font-size:.62rem;line-height:1.4}
.admin-config-form .field small{display:block;color:#7e8d9b;font-size:.5rem;margin-top:3px;line-height:1.35}
.admin-check{display:flex;gap:9px;align-items:flex-start;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#07131f}
.admin-check input{margin-top:2px}.admin-check span{display:block}.admin-check b{display:block;font-size:.64rem}.admin-check small{display:block;color:#7e8d9b;font-size:.5rem;margin-top:2px;line-height:1.35}
.admin-readonly-note{padding:9px 10px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#07131f;color:#8593a0;font-size:.55rem}

@media(max-width:720px){
  .admin-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-street-row{grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"order copy status" "actions actions actions"}
  .admin-street-order{grid-area:order;width:36px}.admin-street-copy{grid-area:copy}.admin-street-status{grid-area:status}.admin-street-actions{grid-area:actions;justify-content:flex-start}
}
@media(max-width:460px){
  .admin-community-tabs button{height:36px;padding:0 9px;font-size:.54rem}
  .admin-quick-grid{grid-template-columns:1fr 1fr}
  .admin-config-form .grid2{grid-template-columns:1fr}
}


/* V21 — Login e Cadastro alinhados ao Villa Alpina */
.auth-card-v21{padding:18px 20px 22px}
.auth-community-banner{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:#091724}
.auth-community-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#14263a,#0b1725);font-size:1.45rem;border:1px solid rgba(255,138,0,.24)}
.auth-community-banner .eyebrow{font-size:.56rem;margin:0 0 2px;color:#ffb461}
.auth-community-banner h2{margin:0;font-size:1rem}.auth-community-banner p{margin:3px 0 0;color:#8e9daa;font-size:.56rem;line-height:1.35}
.auth-event-note{display:flex;gap:8px;align-items:flex-start;margin:9px 0 0;padding:9px 10px;border-radius:11px;border:1px solid rgba(255,138,0,.18);background:rgba(255,138,0,.05)}
.auth-event-note>span{font-size:1.05rem}.auth-event-note b{display:block;font-size:.67rem}.auth-event-note small{display:block;color:#9aa8b4;font-size:.53rem;line-height:1.35;margin-top:2px}
.auth-tabs{margin:12px 0 9px}
.auth-form-v21{display:grid;gap:0}
.auth-form-v21 .field{margin:8px 0}
.auth-form-v21 .field label{font-size:.68rem}
.auth-form-v21 .field input,.auth-form-v21 .field select{padding:11px 12px;border-radius:11px;font-size:.72rem}
.auth-form-v21 .auth-submit{margin-top:8px}
.auth-footnote{display:block;text-align:center;color:#7d8b98;font-size:.52rem;line-height:1.4;margin-top:7px}
.auth-consent{display:flex;gap:9px;align-items:flex-start;margin-top:7px;padding:9px 10px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#07131f}
.auth-consent input{margin-top:2px;accent-color:#ff8a00}
.auth-consent b{display:block;font-size:.61rem}.auth-consent small{display:block;color:#8e9ca9;font-size:.51rem;line-height:1.35;margin-top:2px}

@media(max-width:560px){
  .auth-card-v21{padding:14px}
  .auth-community-banner{grid-template-columns:40px minmax(0,1fr);align-items:start}
  .auth-community-mark{width:40px;height:40px}
  .auth-community-banner .pill{grid-column:2;justify-self:start}
  .auth-form-v21 .grid2{grid-template-columns:1fr}
  .auth-form-v21 .field{margin:6px 0}
}


/* V22 — HUD avançado do mapa */
.hn-house-marker,.hn-fantasy-marker{position:relative}
.hn-house-marker{width:44px!important;height:44px!important;border-radius:50% 50% 50% 12px!important}
.hn-house-marker>span{font-size:20px!important}
.hn-house-marker.mine{box-shadow:0 0 0 3px rgba(255,138,0,.24),0 6px 16px rgba(0,0,0,.45)}
.hn-marker-score{position:absolute;left:50%;top:-12px;transform:translateX(-50%) rotate(45deg);z-index:3;min-width:28px;height:17px;padding:0 4px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(5,15,25,.95);border:1px solid rgba(255,255,255,.24);color:#ffd289;font-style:normal;font-size:8px;font-weight:950;white-space:nowrap}
.hn-marker-candy{position:absolute;right:-8px;top:2px;transform:rotate(45deg);z-index:3;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#07131f;border:1px solid rgba(255,255,255,.34);font-style:normal;font-size:11px}
.hn-marker-visit{position:absolute;left:-7px;bottom:-4px;transform:rotate(45deg);z-index:3;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#07111f;border:2px solid #07111f;font-style:normal;font-size:10px;font-weight:950}.hn-marker-visit.visited{background:#68d85d}
.hn-fantasy-marker{width:42px!important;height:42px!important;border-radius:50%!important;display:grid;place-items:center;background:#13283c;border:2px solid #9a87ff;box-shadow:0 6px 16px rgba(0,0,0,.42)}
.hn-fantasy-marker>span{font-size:22px}.hn-fantasy-marker.live{animation:hnFantasyFloat 2.3s ease-in-out infinite}.hn-fantasy-marker.stale{opacity:.55;filter:grayscale(.4)}
.hn-fantasy-marker .hn-marker-score{transform:translateX(-50%);top:-12px}.hn-fantasy-live-dot{position:absolute;right:-2px;bottom:0;width:9px;height:9px;border-radius:50%;background:#68d85d;border:2px solid #07111f}.hn-fantasy-marker.stale .hn-fantasy-live-dot{background:#8995a3}
@keyframes hnFantasyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.hn-map-popup.modern{display:grid;gap:3px;min-width:150px}.hn-map-popup.modern>b{font-size:.78rem}.hn-map-popup.modern>span{font-size:.66rem}.hn-map-popup.modern>small{font-size:.6rem;color:#526273}.hn-map-popup.modern>em{font-size:.6rem;font-style:normal;font-weight:800}


/* V24 — acesso administrativo explícito no login */
.auth-admin-shortcut{width:100%;margin-top:7px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:#0a1724;color:#b9c4cf;padding:9px 10px;font-size:.58rem;font-weight:850}
.auth-admin-shortcut:hover{border-color:rgba(255,138,0,.28);color:#ffd19a}


/* V25 — identidade visual por comunidade */
:root{--hn-community-accent:#ff8a00;--hn-community-bg:#07131f;--hn-community-surface:#0b1927}
.auth-card-v21,.admin-config-card,.family-qr-live-card{border-color:color-mix(in srgb,var(--hn-community-accent) 22%,rgba(255,255,255,.08))}
.btn.primary,.small-btn.primary{background:var(--hn-community-accent)!important;border-color:var(--hn-community-accent)!important}
.tabs button.active,.auth-tabs button.active,.admin-community-tabs button.active{border-color:color-mix(in srgb,var(--hn-community-accent) 55%,transparent)!important;background:color-mix(in srgb,var(--hn-community-accent) 12%,transparent)!important;color:color-mix(in srgb,var(--hn-community-accent) 65%,#fff)!important}
.auth-community-mark.has-image{padding:3px;background:#fff}.auth-community-mark.has-image img{width:100%;height:100%;object-fit:contain;border-radius:8px}
.halloween-wordmark{display:flex;align-items:center;gap:8px}.header-community-logo{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:var(--hn-community-surface);border:1px solid color-mix(in srgb,var(--hn-community-accent) 28%,rgba(255,255,255,.08));font-size:1.15rem;overflow:hidden}.header-community-logo.has-image{background:#fff;padding:2px}.header-community-logo img{width:100%;height:100%;object-fit:contain}
.auth-community-banner,.auth-event-note{background:color-mix(in srgb,var(--hn-community-surface) 92%,black)}
.auth-event-note{border-color:color-mix(in srgb,var(--hn-community-accent) 22%,transparent)}
.auth-community-banner .eyebrow,.hn-wordmark strong{color:var(--hn-community-accent)}
@media(max-width:520px){.header-community-logo{width:31px;height:31px}.halloween-wordmark{gap:6px}}

.profile-community-mark.has-image{background:#fff;padding:4px;box-sizing:border-box}
.profile-community-mark.has-image img{width:100%;height:100%;object-fit:contain;border-radius:18px}


/* V28 — ações do painel geral */
.admin-dashboard-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:620px){.admin-dashboard-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.admin-dashboard-actions .btn{width:100%}}

/* Build 40 — modo de suporte administrativo */
.impersonation-banner{position:sticky;top:0;z-index:1800;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:#4a2d08;border-bottom:1px solid rgba(255,190,83,.35);color:#ffe1aa;box-shadow:0 7px 20px rgba(0,0,0,.28)}.impersonation-banner b{display:block;font-size:.58rem}.impersonation-banner span{display:block;margin-top:2px;font-size:.46rem;line-height:1.35;color:#e9c793}.impersonation-banner button{flex:0 0 auto;height:30px;border:1px solid rgba(255,220,158,.35);border-radius:8px;background:#25170a;color:#ffe0a5;padding:0 9px;font-size:.46rem;font-weight:900}
@media(max-width:560px){.impersonation-banner{align-items:stretch;flex-direction:column}.impersonation-banner button{width:100%}}

/* Build 49 — base visual/responsiva da Etapa 3 */
@media(max-width:430px){.modal-backdrop{padding-left:6px;padding-right:6px;padding-top:8px}.modal{padding:14px;border-radius:18px 18px 10px 10px}.section-head{align-items:flex-start}.section-head h2{font-size:1.15rem}}

/* Build 50 — legibilidade mínima da Etapa 3 */
.auth-community-banner p,.auth-event-note small,.auth-footnote,.auth-consent small{font-size:.62rem}
.profile-action-btn small{font-size:.62rem}
.impersonation-banner span,.impersonation-banner button{font-size:.58rem}
.admin-topbar>div>small{font-size:.62rem}.admin-topbar p{font-size:.64rem}.admin-user-chip{font-size:.62rem}
.admin-kpis span,.admin-community-head small,.admin-section-title span{font-size:.62rem}
.admin-community-metrics span,.admin-kpis-overview small{font-size:.56rem}
.admin-status,.admin-family-status span,.admin-street-status{font-size:.56rem}
.admin-family-copy span,.admin-local-copy span{font-size:.62rem}
.admin-family-copy small,.admin-local-copy small,.admin-street-copy small,.admin-quick-grid button>small{font-size:.58rem}
.admin-family-actions button,.admin-local-actions button,.admin-street-actions button{font-size:.60rem;min-height:34px}
.admin-community-toolbar label,.admin-family-toolbar label,.admin-config-form .field small,.admin-check small,.admin-readonly-note,.admin-local-hint{font-size:.60rem}
.admin-community-tabs button,.admin-local-role select,.admin-lifecycle-actions .btn{font-size:.62rem}
.admin-ops-copy span{font-size:.56rem}.admin-ops-copy small{font-size:.60rem}
@media(max-width:620px){.admin-topbar p{font-size:.60rem}.admin-section-title span{line-height:1.35}.admin-family-actions button,.admin-local-actions button,.admin-street-actions button{min-height:36px}}

/* Build 51 — cabeçalho interno e navegação inferior consistentes */
.app-page:not(.map-screen-active) .headline-zone{display:flex;align-items:center;justify-content:center;min-width:0}
.app-page:not(.map-screen-active) .screen-title{display:block;width:100%}
.bottom-nav-inner{height:100%;align-items:stretch}
.nav-btn{min-height:58px;display:grid;grid-template-rows:29px 16px;align-content:center;justify-items:center;gap:3px;touch-action:manipulation}
.nav-btn b{display:block;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.nav-btn.active{box-shadow:inset 0 2px 0 rgba(255,173,53,.65)}
@media(max-width:900px){
  .app-page:not(.map-screen-active) .topbar.halloween-topbar{grid-template-rows:58px 42px;min-height:100px;padding-bottom:4px}
  .app-page:not(.map-screen-active) .halloween-wordmark{min-height:58px}
  .app-page:not(.map-screen-active) .headline-zone{height:42px;min-height:42px;border-top:1px solid rgba(255,255,255,.06)}
  .app-page:not(.map-screen-active) .screen-title{font-size:1rem}
}
@media(max-width:620px){
  .nav-btn{min-height:64px;padding:6px 2px 4px}
  .nav-btn .nav-icon{height:29px}
  .nav-btn svg{width:24px;height:24px}
  .nav-btn b{font-size:.62rem}
}
@media(display-mode:standalone) and (max-width:720px){
  .nav-btn{min-height:68px}
  .nav-btn svg{width:27px;height:27px}
  .nav-btn b{font-size:.66rem}
}

/* Build 52 — revisão Login/Família/Fantasias */
.community-card{position:relative;min-height:66px;display:flex;flex-direction:column;justify-content:center}
.community-card.selected:after{content:"Bairro selecionado";position:absolute;right:10px;top:8px;color:#ffbd70;font-size:.52rem;font-weight:900;letter-spacing:.03em}
.auth-admin-shortcut{min-height:38px;font-size:.62rem}
.family-tools{display:grid;grid-template-columns:1fr;margin-bottom:10px}
.family-tools .btn{min-height:42px}
.fantasy-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.fantasy-actions button{height:35px}
.fantasy-actions .delete-child{grid-column:auto;height:35px}
.fantasy-actions button[data-device-child]{border-color:rgba(255,138,0,.26)}
@media(max-width:620px){
  .community-card.selected:after{position:static;margin-top:4px;font-size:.55rem}
  .auth-admin-shortcut{font-size:.60rem}
  .fantasy-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fantasy-actions button{height:36px;font-size:.60rem}
  .fantasy-actions .delete-child{grid-column:1/-1;justify-self:end;width:min(140px,45%);height:32px}
  .fantasy-photo-slot small,.fantasy-photo-slot.filled>span{font-size:.57rem}
}

/* Build 53 — revisão Diversão/Perfil/Administração */
.profile-action-section{margin-top:12px}.profile-action-section:first-of-type{margin-top:8px}
.profile-action-section-title{margin:0 2px 6px;color:#ffbd70;font-size:.62rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.profile-action-section .profile-action-grid{margin-top:0}
.fun-section-head h2 span{display:none}
.admin-page,.admin-content,.admin-tab-panel{min-width:0;max-width:100%;overflow-x:hidden}
.admin-community-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none;overscroll-behavior-inline:contain}
.admin-community-tabs::-webkit-scrollbar{display:none}
.admin-community-tabs button{flex:0 0 auto;white-space:nowrap}
.admin-content input,.admin-content select,.admin-content textarea{min-width:0;max-width:100%}
.admin-config-card,.admin-dashboard-card,.admin-community-card,.admin-tab-panel>*{max-width:100%}
@media(max-width:620px){
  .profile-action-section-title{font-size:.60rem}
  .profile-action-grid{grid-template-columns:1fr}
  .profile-action-btn{min-height:58px}
  .admin-topbar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"back title" "actions actions";align-items:center}
  .admin-back-public{grid-area:back}.admin-topbar>div:not(.admin-top-actions){grid-area:title;min-width:0}
  .admin-top-actions{grid-area:actions;width:100%;justify-content:space-between}
  .admin-user-chip{max-width:72vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .admin-community-tabs{margin-left:-2px;margin-right:-2px;padding-bottom:3px}
}

/* Build 54 — editor visual de geofence */
.admin-geofence-editor{overflow:hidden;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:#07131f}
.admin-geofence-map{height:360px;width:100%;background:#0d1722}
.admin-geofence-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border-top:1px solid rgba(255,255,255,.08)}
.admin-geofence-tools button,.admin-map-quick button{min-height:34px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#14263a;color:#fff;padding:0 9px;font-size:.60rem;font-weight:850}
.admin-geofence-tools button.active{border-color:#ff8a00;background:rgba(255,138,0,.16);color:#ffd09a}
.admin-geofence-tools button.danger{border-color:rgba(255,75,53,.3);background:rgba(255,75,53,.08);color:#ffc4bc}
.admin-geofence-tools>span{margin-left:auto;color:#9eacb8;font-size:.58rem}
.admin-map-quick{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.admin-map-advanced{border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#07131f}
.admin-map-advanced>summary{cursor:pointer;padding:9px 10px;color:#b8c5d0;font-size:.62rem;font-weight:850}
.admin-map-advanced[open]{padding:0 10px 10px}
.admin-map-advanced[open]>summary{margin:0 -10px 8px;border-bottom:1px solid rgba(255,255,255,.07)}
@media(max-width:620px){.admin-geofence-map{height:300px}.admin-map-quick{grid-template-columns:1fr}.admin-geofence-tools>span{width:100%;margin-left:0}.admin-geofence-tools button{flex:1 1 130px}}

/* Build 55 — ruas e mapa */
.admin-street-copy small{white-space:normal;line-height:1.35}

/* Build 56 — operação GPS ao vivo */
.admin-gps-live-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.admin-gps-live-summary>div{min-width:0;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#07131f;text-align:center}
.admin-gps-live-summary span{display:block;color:#8494a1;font-size:.54rem;font-weight:900;letter-spacing:.06em}
.admin-gps-live-summary b{display:block;margin-top:3px;color:#eaf0f5;font-size:1.05rem}
.admin-gps-live-summary b.admin-gps-last{font-size:.78rem}
.admin-gps-live-summary small{display:block;margin-top:2px;color:#7f8d99;font-size:.54rem;line-height:1.3}
@media(max-width:620px){.admin-gps-live-summary{grid-template-columns:1fr 1fr}}


/* Portal por bairro + internacionalização — build 85 */
.portal-language{display:flex;justify-content:flex-end;margin:0 0 10px}
.locale-switch{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:800}
.locale-switch.compact{display:flex;align-items:center;gap:8px}
.locale-switch select{border:1px solid var(--line);background:#07131f;color:#fff;border-radius:11px;padding:9px 11px;min-width:140px}
.community-direct-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}
.community-back-link{color:#dce6ef;text-decoration:none;font-size:.8rem;font-weight:850}
.community-brand-hero .portal-community-mark{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:14px;background:#10263a;border:1px solid var(--line);font-size:28px;overflow:hidden;margin-bottom:10px}
.community-brand-hero .portal-community-mark.has-image img{width:100%;height:100%;object-fit:cover}
.portal-community-picker{margin-top:12px}
.portal-search-field{margin:0 0 10px}
.admin-locale-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.admin-locale-check{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:#08131f}
.admin-locale-check input{width:auto}
.admin-section-title.compact{margin-top:16px}
.profile-language-card .locale-switch select{width:100%}
@media(max-width:640px){
  .community-direct-tools{align-items:flex-start;flex-direction:column}
  .locale-switch.compact{width:100%;justify-content:space-between}
  .locale-switch.compact select{min-width:0;max-width:58%}
  .admin-locale-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
