:root{
  --bg:#0a0a0a; --panel:#141414; --panel2:#1f1f1f; --line:#333333;
  --text:#f4f1ec; --muted:#a3a09a; --amber:#ff7a00; --amber-ink:#140800; --coral:#fff1de; --ok:#4ade9a;
  --r:12px;
  --display:'Bricolage Grotesque',system-ui,sans-serif; --body:'Figtree',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font:16px/1.55 var(--body)}
h1,h2,h3{font-family:var(--display);line-height:1.15;margin:0 0 .5rem}
h1{font-size:2rem} h2{font-size:1.35rem} h3{font-size:1.1rem}
a{color:var(--amber)}
p{margin:.35rem 0}
.muted{color:var(--muted);font-size:.92rem}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:56px;padding:0 1rem;background:var(--bg);border-bottom:1px solid var(--line);position:relative;z-index:2000}
.brand{font:700 1.35rem var(--display);color:var(--text);text-decoration:none}
.brand b{color:var(--amber)}
.topbar nav{display:flex;align-items:center;gap:1rem;font-size:.95rem}
.topbar nav a{color:var(--text);text-decoration:none}
.topbar nav a:hover{color:var(--amber)}
form.inline{display:inline;margin:0}
.linklike{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0}
.linklike:hover{color:var(--amber)}

.flash{background:var(--panel2);border-bottom:1px solid var(--line);padding:.6rem 1rem;text-align:center;position:relative;z-index:2000}
.wrap{max-width:960px;margin:0 auto;padding:1.5rem 1rem 4rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem}
.card.narrow{max-width:460px;margin:2rem auto}

.btn{display:inline-block;background:var(--amber);color:var(--amber-ink);border:0;border-radius:999px;padding:.65rem 1.25rem;font:600 1rem var(--body);cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.6;cursor:wait}
.btn.small{padding:.35rem .9rem;font-size:.9rem}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.danger{background:#ff5a4d;color:#1a0000}

.form{display:grid;gap:.9rem}
.form label{display:grid;gap:.3rem;font-size:.95rem;color:var(--muted)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=datetime-local],input[type=date],input:not([type]),select,textarea{
  width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;font:inherit}
textarea{min-height:90px;resize:vertical}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem}
.error{background:#3a1410;border:1px solid #ff5a4d;color:#ffd9d4;border-radius:8px;padding:.6rem .8rem}
.ok{color:var(--ok)}
.choice{display:grid;gap:.5rem}
.choice label{display:flex;align-items:center;gap:.5rem;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem}

.subnav{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.5rem}
.subnav a{padding:.4rem .9rem;border-radius:999px;border:1px solid var(--line);color:var(--text);text-decoration:none}
.subnav a[aria-current=page]{background:var(--amber);color:var(--amber-ink);border-color:var(--amber)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:500;font-size:.9rem}
.tag{display:inline-block;background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:.05rem .6rem;font-size:.8rem;color:var(--text)}
.tag.hot,.promo-tag{background:var(--coral);border-color:var(--coral);color:#1a0d00;font-weight:600}

/* --- mapa --- */
body.map-page{overflow:hidden}
.app{position:relative;display:grid;grid-template-columns:400px 1fr;height:calc(100dvh - 56px)}
#map{height:100%;width:100%;background:#0a0a0a}
.drawer{background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:1rem;z-index:1500}
.drawer-head{margin-bottom:.75rem}
.filters{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:.6rem .8rem;margin-bottom:1rem}
.filters summary{cursor:pointer;font:600 1rem var(--display)}
.filters fieldset{border:0;padding:0;margin:.9rem 0 0}
.filters legend{padding:0;margin-bottom:.35rem;color:var(--muted);font-size:.9rem}
.filters input[type=range]{width:100%;accent-color:var(--amber)}
.chip{display:inline-block;margin:0 .3rem .35rem 0}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:.25rem .75rem;border:1px solid var(--line);border-radius:999px;font-size:.88rem;cursor:pointer;background:var(--panel)}
.chip input:checked+span{background:var(--amber);color:var(--amber-ink);border-color:var(--amber);font-weight:600}
.chip input:focus-visible+span{outline:3px solid var(--amber);outline-offset:2px}
.results{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.item{display:grid;gap:.15rem;width:100%;text-align:left;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .85rem;cursor:pointer;font:inherit}
.item:hover{border-color:var(--amber)}
.item-title{font:600 1.02rem var(--display)}
.promo-tag{justify-self:start;border-radius:999px;padding:.05rem .6rem;font-size:.8rem}
.filters-toggle{display:none;position:absolute;z-index:1100;left:.75rem;top:.75rem;box-shadow:0 2px 12px rgba(0,0,0,.4)}

.pin span{display:block;width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--amber);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.pin-club span{background:#ffffff}
.pin-boost span{background:var(--coral);width:26px;height:26px}
.leaflet-popup-content-wrapper{background:var(--panel);color:var(--text);border-radius:var(--r)}
.leaflet-popup-tip{background:var(--panel)}
.pop{font:14px/1.45 var(--body)}
.pop h3{font-size:1.05rem}
.pop-photo{width:100%;max-height:140px;object-fit:cover;border-radius:8px;margin-bottom:.4rem}
.pop .promo{margin:.2rem .3rem 0 0}
.code-box{display:grid;gap:.25rem;margin-top:.4rem}
.code{font:700 1.7rem var(--display);letter-spacing:.18em;color:var(--amber)}

.coupon .code{font-size:2rem;margin-bottom:.4rem}
.coupon.used{opacity:.55}

@media (max-width:760px){
  .app{grid-template-columns:1fr}
  .drawer{position:absolute;inset:0 auto 0 0;width:min(92vw,400px);transform:translateX(-102%);transition:transform .2s ease}
  .drawer.open{transform:none}
  .filters-toggle{display:inline-block}
  .topbar nav{gap:.6rem;font-size:.85rem}
}
@media (prefers-reduced-motion:reduce){.drawer{transition:none}}

[hidden]{display:none !important}
.drawer-close{display:none}
@media (max-width:760px){.drawer-close{display:inline-block;float:right}}
@media (max-width:480px){.brand{font-size:1.05rem}.topbar{padding:0 .6rem}}

/* galeria no cartão do mapa */
.gallery{display:flex;gap:.4rem;overflow-x:auto;scroll-snap-type:x mandatory;margin-bottom:.5rem;border-radius:8px}
.gallery>*{flex:0 0 100%;width:100%;height:160px;object-fit:cover;border-radius:8px;scroll-snap-align:start;background:#000}
/* gestão de fotos e vídeos no painel */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.8rem;margin-top:1.2rem}
.media-item{margin:0;display:grid;gap:.4rem;align-content:start}
.media-item img,.media-item video{width:100%;height:120px;object-fit:cover;border-radius:8px;background:#000}
