*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;overflow:hidden;background:var(--page-bg);}
:root{
  /* Theme: edit this block for fast color changes. */
  --page-bg:#f7bd16;
  --header-bg:rgba(247,189,22,0.96);
  --surface:#fff8de;
  --surface-strong:#fff1bf;
  --surface-soft:#fff6d0;
  --ink:#10285f;
  --ink-soft:#4f5d7d;
  --brand:#ef2857;
  --brand-hot:#d91f4b;
  --spark:#f7bd16;
  --shadow-ink:rgba(16,40,95,.22);
  --cat-na:#d9982f;
  --cat-thc:#2fbf71;
  --cat-mocktails:#d86b93;
  --cat-zero:#4f8edc;
  --accent:var(--brand);
  --accent-hot:var(--brand-hot);
  --text:var(--ink);
  --muted:var(--ink-soft);
  --border:rgba(16,40,95,0.16);
  --ui-bg:rgba(255,248,222,0.96);
  --hdr-bg:var(--header-bg);
  --panel:var(--surface-strong);
  --wash:var(--surface-soft);
}
body{font-family:"Roboto",Inter,Arial,sans-serif;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

#map-shell{
  position:fixed;inset:74px 22px 22px 342px;z-index:0;
  overflow:hidden;border-radius:28px;
  background:#111718;
  border:5px solid rgba(17,23,24,.96);
  box-shadow:
    inset 0 0 0 1px rgba(252,250,242,.18),
    inset 0 0 46px rgba(24,36,38,.30),
    0 18px 48px rgba(24,36,38,.20);
}
#map-shell::before{
  content:"";position:absolute;inset:0;z-index:420;pointer-events:none;
  background:
    radial-gradient(ellipse at center,rgba(255,255,255,0) 50%,rgba(24,36,38,.20) 100%),
    linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,0) 34%);
  mix-blend-mode:multiply;
}
#map-shell::after{
  content:"";position:absolute;inset:0;z-index:421;pointer-events:none;
  border-radius:21px;
  box-shadow:inset 0 0 32px rgba(24,36,38,.38);
}
#map{position:absolute;inset:0;z-index:0;border-radius:inherit;overflow:hidden;}
.leaflet-tile{filter:saturate(.98) contrast(1.2) brightness(1.02);}
.leaflet-control-attribution{font-size:9px!important;color:#606770!important;background:rgba(255,255,255,.78)!important;}

#hdr{
  position:fixed;top:0;left:0;right:0;z-index:400;
  height:62px;display:flex;align-items:center;
  padding:7px 22px;gap:16px;
  background:var(--hdr-bg);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(255,255,255,0.08);
  box-shadow:0 1px 22px rgba(0,0,0,0.36),0 0 44px rgba(66,103,178,.16);
}
#hdr::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 20% 10%,rgba(79,142,220,.20),transparent 34%),
    radial-gradient(circle at 62% -18%,rgba(216,107,147,.16),transparent 36%);
  opacity:.85;
}
#logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0;}
#logo-pip{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(66,103,178,.16);flex-shrink:0;}
#logo-text{
  font-family:"Righteous","Roboto Condensed","Roboto",Inter,Arial,sans-serif;
  font-weight:700;font-size:22px;
  letter-spacing:.2px;text-transform:none;color:#f7f7f2;line-height:.86;
}
.logo-proof{color:var(--accent);}
#logo-sub{font-size:10px;color:rgba(255,255,255,.68);margin-top:5px;letter-spacing:.18px;line-height:1.05;}

#locate-btn{
  display:flex;align-items:center;gap:7px;flex-shrink:0;
  height:36px;padding:0 17px;border-radius:99px;
  border:1.5px solid var(--accent);
  background:var(--accent);color:#fff;
  font-size:12px;font-weight:850;letter-spacing:.78px;text-transform:uppercase;
  box-shadow:inset 0 0 0 1.5px var(--spark),0 8px 24px rgba(66,103,178,.24);
  cursor:pointer;transition:all .18s;
}
#locate-btn:hover{background:var(--accent-hot);border-color:var(--accent-hot);}
#locate-btn.located{background:var(--accent-hot);color:#fff;border-color:var(--accent-hot);box-shadow:inset 0 0 0 1.5px var(--spark),0 8px 24px rgba(66,103,178,.28);}
.loc-dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(255,255,255,.18);}

#hdr-cats{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
#hdr-cats::-webkit-scrollbar{display:none;}
#hdr-cats button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  font-size:11px;font-weight:700;
  letter-spacing:.32px;text-transform:uppercase;
  padding:6px 15px;border-radius:99px;
  border:1.5px solid rgba(5,5,5,0.14);
  background:rgba(255,255,255,0.5);color:#606770;
  cursor:pointer;transition:all .18s;
}
#hdr-cats button .cat-symbol{width:12px;height:12px;color:currentColor;}
.filter-label{line-height:1;}
#hdr-cats button:hover{color:var(--text);border-color:rgba(66,103,178,.42);background:rgba(66,103,178,.12);}
#hdr-cats button.on{color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(0,0,0,.15);}
button.on-all{background:var(--accent)!important;color:#fff!important;}
button.on-na{background:#d9982f!important;}
button.on-thc{background:#2fbf71!important;}
button.on-mocktails{background:#d86b93!important;}
button.on-zero{background:#4f8edc!important;color:#fff!important;}

#hdr-toggle{display:none;margin-left:auto;gap:2px;}
#hdr-toggle button{
  font-size:10px;font-weight:750;
  letter-spacing:.8px;text-transform:uppercase;
  padding:7px 15px;border-radius:99px;
  border:1.5px solid rgba(5,5,5,.18);
  background:rgba(255,255,255,.45);color:#606770;cursor:pointer;transition:all .15s;
}
#hdr-toggle button.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--spark),0 2px 10px rgba(66,103,178,.24);}
#hdr-toggle #vbtn-list.on{background:var(--spark);color:#050505;border-color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent),0 2px 10px rgba(247,201,72,.26);}

#sidebar{
  position:fixed;top:56px;left:0;bottom:0;width:320px;z-index:300;
  display:flex;flex-direction:column;
  background:rgba(248,248,245,.96);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-right:1px solid rgba(5,5,5,0.12);
  box-shadow:4px 0 34px rgba(0,0,0,0.30),0 0 50px rgba(66,103,178,.08);
}
#sb-filters{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  padding:0 14px 8px;
  border-bottom:0;
  background:rgba(252,250,242,.82);
}
.guide-card{
  padding:14px 16px 13px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(135deg,rgba(182,217,224,.28),rgba(219,226,220,.52));
  color:var(--muted);
  font-size:12px;
  line-height:1.38;
}
.guide-card p{margin:0;}
.guide-kicker{
  margin-bottom:5px!important;
  color:var(--text);
  font-family:"Roboto Condensed","Roboto",Inter,Arial,sans-serif;
  font-size:18px;
  font-weight:700;
  letter-spacing:.9px;
  line-height:.9;
  text-transform:uppercase;
}
.mobile-guide{display:none;}
#search-wrap{padding:12px 16px;border-bottom:1px solid var(--border);position:relative;}
#store-search{
  width:100%;height:39px;border-radius:10px;border:1px solid rgba(5,5,5,.16);
  background:rgba(137,143,156,.10);color:var(--text);outline:none;
  font-size:13px;padding:0 12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
#legend{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;gap:10px;flex-wrap:wrap;}
#type-filter{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;gap:6px;flex-wrap:wrap;}
#type-filter button,#mobile-type-filter button{border:1px solid rgba(51,87,101,.22);background:rgba(219,226,220,.45);color:#335765;border-radius:99px;padding:6px 9px;font-size:9px;font-weight:800;letter-spacing:.45px;text-transform:uppercase;}
#type-filter button.on,#mobile-type-filter button.on{background:#335765;color:#fff;border-color:#335765;}
.type-chip{display:inline-flex;margin-left:5px;padding:1px 5px;border-radius:99px;background:rgba(116,168,164,.18);color:#335765;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;vertical-align:1px;}
.legend-item{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:680;color:#315d61;}
.legend-dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 3px rgba(66,103,178,.08);border:1px solid rgba(5,5,5,.16);}
#map-legend{display:none;}
.map-legend-title{font-size:10px;font-weight:850;letter-spacing:.7px;text-transform:uppercase;color:#4267b2;}
#map-style-btn{
  position:fixed;right:32px;top:88px;z-index:265;
  height:34px;padding:0 12px;border-radius:10px;
  border:1px solid rgba(24,36,38,.16);
  background:rgba(252,250,242,.94);color:#173f46;
  box-shadow:0 8px 22px rgba(24,36,38,.12);
  font-size:10px;font-weight:850;letter-spacing:.55px;text-transform:uppercase;
  cursor:pointer;
}
#map-style-btn.is-aerial{background:#173f46;color:#fff;border-color:#173f46;}
#map-style-btn.hide{display:none;}
#category-note{padding:9px 16px;border-bottom:1px solid var(--border);color:#606770;font-size:11px;line-height:1.35;}
#sb-meta,#mlist-head{
  padding:9px 16px;
  font-size:10px;font-weight:550;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--border);flex-shrink:0;
}
#loc-msg{
  padding:9px 16px;border-bottom:1px solid var(--border);
  background:rgba(66,103,178,.10);color:#4267b2;
  font-size:11px;font-weight:680;
}
#slist{overflow-y:auto;flex:1;overscroll-behavior:contain;}
.si{
  width:100%;border:0;background:transparent;text-align:left;
  display:flex;align-items:center;gap:12px;
  padding:11px 16px;border-bottom:1px solid rgba(44,40,32,.04);
  cursor:pointer;transition:background .14s,border-color .14s;
  border-left:3px solid transparent;
}
.si:hover{background:rgba(66,103,178,.08);}
.si.sel{background:linear-gradient(90deg,rgba(66,103,178,.18),rgba(247,201,72,.08));border-left-color:var(--accent);}
.si-pin{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:#050505!important;box-shadow:0 0 0 3px rgba(66,103,178,.08);}
.cat-mask{
  display:block;
  width:19px;
  height:19px;
  background:currentColor;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-size:contain;
}
.cat-icon-na{--icon-url:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/beer.svg");}
.cat-icon-thc{--icon-url:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/cannabis.svg");}
.cat-icon-mocktails{--icon-url:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/glass-cocktail.svg");}
.cat-icon-zero{--icon-url:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/glass-full.svg");}
.cat-mask{
  -webkit-mask-image:var(--icon-url);
  mask-image:var(--icon-url);
}
.si-main{min-width:0;flex:1;}
.si-name{font-size:13px;font-weight:720;color:var(--text);line-height:1.25;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.si-addr{font-size:11px;color:var(--muted);}
.si-site{
  display:inline-flex;align-items:center;gap:3px;width:max-content;max-width:100%;
  margin-top:5px;padding:3px 7px;border-radius:8px;
  background:rgba(217,107,76,.12);border:1px solid rgba(217,107,76,.22);
  font-size:10px;font-weight:820;color:#173f46;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.si-site span{color:#c65f43;}
.si-dist{margin-top:3px;font-size:10px;font-weight:740;color:#4267b2;}
.si-row{display:flex;align-items:center;gap:5px;margin-top:6px;flex-wrap:wrap;}
.si-also{font-size:9px;font-weight:800;letter-spacing:.45px;text-transform:uppercase;color:#606770;align-self:center;}
.si-tag{font-size:9px;font-weight:650;letter-spacing:.4px;text-transform:uppercase;padding:2px 7px;border-radius:99px;}
.q-badges{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:7px;}
#detail-inner>.q-badges{margin-bottom:11px;}
.q-badge{display:inline-flex;align-items:center;min-height:18px;padding:3px 7px;border-radius:99px;background:rgba(36,49,44,.07);color:#24312c;font-size:8px;font-weight:800;letter-spacing:.42px;text-transform:uppercase;border:1px solid rgba(36,49,44,.10);}
.q-badge.strong{background:rgba(215,255,79,.28);border-color:rgba(36,49,44,.14);}
.q-badge.warn{background:rgba(255,176,0,.20);color:#6f4a00;border-color:rgba(255,176,0,.30);}
.si-arr{color:#cfd5df;font-size:22px;flex-shrink:0;}
.empty{padding:18px 16px;color:var(--muted);font-size:13px;line-height:1.4;}
.empty strong{display:block;color:var(--text);font-size:14px;margin-bottom:3px;}
.empty span{display:block;}

.leaflet-popup-content-wrapper{
  border-radius:14px!important;border:none!important;padding:0!important;overflow:hidden;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 12px 48px rgba(0,0,0,.34),0 2px 8px rgba(0,0,0,.18)!important;
}
.leaflet-popup-content{margin:0!important;font-family:"Roboto",Inter,Arial,sans-serif;}
.leaflet-popup-tip-container{display:none!important;}
.pop{width:272px;}
.pop-stripe{height:4px;background:#4267b2;}
.pop-inner{padding:15px 18px 18px;}
.pop-cat{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:5px;color:var(--accent);}
.pop-name{font-size:17px;font-weight:820;color:var(--text);line-height:1.2;margin-bottom:8px;padding-right:22px;}
.pop-row{font-size:12px;color:#606770;margin-bottom:7px;line-height:1.4;}
.pop-note{font-size:12px;color:#606770;margin-top:10px;padding-top:10px;border-top:1px solid rgba(5,5,5,.1);line-height:1.55;}
.pop-btn{
  display:block;margin-top:13px;padding:11px 14px;border-radius:8px;
  font-size:11px;font-weight:750;letter-spacing:.8px;text-transform:uppercase;
  text-align:center;text-decoration:none;color:#fff!important;background:var(--accent);
}
.option-pin{position:relative;background:var(--pin-bg,#ffffff)!important;border:2px solid #050505;display:grid;place-items:center;color:#050505!important;}
.otm-pin.option-pin{width:40px;height:46px;background:transparent!important;border:0;box-shadow:none;}
.otm-pin::before{content:"";position:absolute;left:4px;top:2px;width:30px;height:30px;background:var(--pin-bg,#ffffff);border:2px solid #050505;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 4px 16px rgba(0,0,0,.28),0 0 0 3px rgba(66,103,178,.10);}
.otm-pin .pin-core{position:absolute;left:50%;top:37%;transform:translate(-50%,-50%);z-index:1;}
.pin-core{width:10px;height:10px;border-radius:50%;background:var(--pin-core,#050505);box-shadow:0 0 0 2px rgba(255,255,255,.88);}
.pin-dots{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:2px;min-width:24px;z-index:2;}
.pin-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.28);}
.you-marker{
  width:22px;height:22px;border-radius:50%;
  background:var(--accent);border:4px solid #fff;
  box-shadow:0 0 0 5px rgba(66,103,178,.22),0 3px 16px rgba(0,0,0,.32);
}
.route-label{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  min-width:128px;max-width:190px;min-height:34px;padding:5px 11px;border-radius:12px;
  background:var(--route);color:#fff;
  font-size:10px;font-weight:800;letter-spacing:.3px;line-height:1.05;text-align:center;
  box-shadow:0 4px 16px rgba(22,34,35,.22);
  white-space:normal;
}
.route-place{
  max-width:168px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:11px;font-weight:900;
}
.route-meta{font-size:9px;opacity:.88;}
@media(max-width:640px){
  .route-label{max-width:154px;min-width:112px;padding:5px 9px;}
  .route-place{max-width:134px;font-size:10px;}
}
.venue-tooltip{
  background:rgba(255,255,255,.96)!important;color:#050505!important;border:1px solid rgba(5,5,5,.18)!important;
  border-radius:7px!important;padding:5px 8px!important;box-shadow:0 8px 18px rgba(0,0,0,.28)!important;
  font-size:11px!important;font-weight:800!important;letter-spacing:.2px!important;
}
.venue-tooltip::before{border-top-color:rgba(255,255,255,.96)!important;}

#detail-panel{
  position:fixed;right:44px;top:96px;width:315px;z-index:310;
  max-height:calc(100vh - 140px);
  background:rgba(255,255,255,.98);border-radius:12px;overflow:hidden;
  box-shadow:0 16px 44px rgba(0,0,0,.34),0 2px 8px rgba(0,0,0,.14),0 0 52px rgba(66,103,178,.14);
  border:1px solid rgba(5,5,5,.14);
}
#detail-panel[hidden]{display:none!important;}
#detail-stripe{height:5px;background:linear-gradient(90deg,#4267b2,#4f8edc,#d86b93);}
#detail-inner{
  max-height:calc(100vh - 145px);
  overflow:auto;
  padding:16px 18px 18px;
  scrollbar-width:thin;
}
#detail-close{
  position:absolute;top:12px;right:12px;
  height:30px;padding:0 10px;border-radius:99px;border:1px solid rgba(5,5,5,.18);
  background:rgba(137,143,156,.12);color:var(--text);
  font-size:10px;line-height:1;font-weight:800;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;
  display:flex;align-items:center;gap:5px;
}
#detail-close:hover{background:rgba(66,103,178,.12);}
#detail-cat{font-size:9px;font-weight:750;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:7px;}
#detail-name{font-size:24px;font-weight:840;letter-spacing:-.02em;line-height:1.06;color:var(--text);margin-bottom:10px;}
#detail-distance{display:inline-block;margin-bottom:12px;padding:4px 9px;border-radius:99px;background:rgba(66,103,178,.12);color:#4267b2;font-size:11px;font-weight:760;}
.detail-row{display:flex;gap:8px;font-size:13px;color:#606770;margin-bottom:8px;line-height:1.45;}
.detail-row a{color:#4267b2;text-decoration:none;font-weight:700;}
.detail-label{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.4px;color:#66716d;}
.detail-website{align-items:center;}
.detail-website a{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:8px;background:rgba(217,107,76,.12);border:1px solid rgba(217,107,76,.22);color:#c65f43;}
#detail-note{font-size:12px;color:#606770;margin-top:10px;padding-top:10px;border-top:1px solid rgba(5,5,5,.1);line-height:1.45;}
#drink-groups{display:grid;gap:10px;margin-top:11px;}
.drink-group h3{font-size:10px;font-weight:820;letter-spacing:.75px;text-transform:uppercase;color:#4267b2;margin-bottom:7px;}
.drink-group.muted h3{color:#606770;}
.drink-group ul{margin:0;padding:0;list-style:none;display:grid;gap:7px;}
.drink-group li{font-size:11px;line-height:1.35;color:#050505;background:rgba(66,103,178,.07);border:1px solid rgba(5,5,5,.08);border-radius:8px;padding:7px 9px;}
.drink-group.muted li{color:#606770;background:rgba(137,143,156,.10);}
#source-note{margin-top:9px;font-size:9px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;color:#606770;}
#detail-actions{
  position:sticky;bottom:-18px;
  display:flex;gap:8px;margin:12px -18px -18px;padding:10px 18px 14px;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.98) 28%);
}
#detail-directions,#detail-show-map{
  flex:1;min-height:40px;
  display:flex;align-items:center;justify-content:center;
  text-align:center;text-decoration:none;padding:10px 8px;border-radius:9px;
  font-size:10px;font-weight:850;letter-spacing:.55px;line-height:1.05;text-transform:uppercase;
}
#detail-directions{background:var(--accent);color:#fff;}
#detail-show-map{border:1px solid rgba(5,5,5,.16);background:rgba(137,143,156,.10);color:var(--text);cursor:pointer;}
#detail-show-map:hover{background:rgba(66,103,178,.12);}

#mlist-wrap{display:none;}

@media(max-width:640px){
  #hdr{height:154px;padding:16px 16px 12px;flex-wrap:wrap;align-content:flex-start;gap:10px;}
  #logo{min-width:0;flex:1 1 100%;width:100%;display:block;overflow:hidden;}
  #logo>div{width:100%;}
  #logo-text{display:inline-block;font-size:clamp(30px,8.7vw,38px);letter-spacing:.15px;line-height:.9;white-space:nowrap;width:auto;transform:none!important;}
  #logo-sub{display:block;width:100%;max-width:none;margin-top:6px;font-size:11px;text-align:center;white-space:normal;overflow:visible;line-height:1.2;}
  #locate-btn{height:34px;padding:0 13px;order:2;}
  #hdr-toggle{display:grid;grid-template-columns:1fr 1fr;order:2;flex:1 1 auto;gap:6px;}
  #hdr-toggle button{border-radius:10px;padding:8px 10px;background:rgba(255,255,255,.55);}
  #sidebar{display:none;}
  .guide-card{display:none;}
  .mobile-guide{
    display:block;
    padding:11px 18px 12px;
    background:linear-gradient(135deg,rgba(182,217,224,.30),rgba(219,226,220,.72));
  }
  #map-shell{
    inset:158px 10px 10px 10px;
    border-width:3px;
    border-radius:20px;
  }
  #map-shell::after{border-radius:14px;}
  #map-legend{
    position:fixed;left:12px;right:12px;top:165px;z-index:260;
    display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
    padding:7px 8px;border:1px solid rgba(5,5,5,.14);border-radius:10px;
    background:rgba(255,255,255,.9);box-shadow:0 8px 24px rgba(0,0,0,.18);
    backdrop-filter:blur(8px);
  }
  #map-legend.hide{display:none;}
  #map-style-btn{right:16px;top:auto;bottom:18px;z-index:270;height:32px;}
  #map-legend .legend-item{font-size:10px;color:#050505;}
  #detail-panel{
    display:block;left:20px;right:20px;top:auto;bottom:20px;width:auto;max-height:46vh;
    border-radius:16px;z-index:360;overflow:auto;
  }
  #detail-close{top:10px;right:10px;height:32px;padding:0 11px;font-size:10px;}
  #detail-inner{max-height:46vh;padding:13px 16px 16px;}
  #detail-name{font-size:21px;}
  #detail-note{font-size:12px;line-height:1.45;}
  #drink-groups{gap:10px;margin-top:10px;}
  .drink-group li{font-size:11px;padding:7px 9px;}
  #source-note{font-size:9px;}
  #detail-actions{bottom:-16px;margin:10px -16px -16px;padding:9px 16px 13px;}
  #detail-directions,#detail-show-map{min-height:38px;padding:8px 7px;}
  #mlist-wrap{
    position:fixed;inset:136px 0 0 0;z-index:330;background:#fff;
    display:none;flex-direction:column;
    box-shadow:inset 0 1px 0 rgba(5,5,5,.08);
  }
  #mlist-wrap.show{display:flex;}
  #mlist-head{padding:13px 18px 10px;background:#f8f8f5;line-height:1;}
  #msearch-wrap{padding:16px 18px 14px;border-bottom:1px solid var(--border);background:#f8f8f5;}
  #mobile-search{width:100%;height:44px;border-radius:12px;border:1px solid rgba(5,5,5,.16);background:rgba(137,143,156,.10);color:var(--text);padding:0 14px;font-size:15px;outline:none;}
  #mlist-filters{position:relative;z-index:2;display:flex;align-items:center;gap:5px;min-height:55px;overflow-x:auto;padding:12px 10px 13px;border-bottom:1px solid var(--border);background:#fff;scroll-padding-inline:10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  #mlist-filters::-webkit-scrollbar{display:none;}
  #mlist-filters::after{content:"";flex:0 0 10px;}
  #mlist-filters button{flex:0 0 auto;min-height:28px;line-height:1;border:1px solid rgba(5,5,5,.16);background:rgba(137,143,156,.10);color:var(--muted);border-radius:99px;padding:8px 10px;font-size:10px;font-weight:800;text-transform:uppercase;}
  #mlist-filters button.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:inset 0 0 0 1.5px var(--spark);}
  #mobile-type-filter{display:flex;gap:5px;overflow-x:auto;padding:0 10px 12px;border-bottom:1px solid var(--border);background:#fff;scrollbar-width:none;}
  #mobile-type-filter::-webkit-scrollbar{display:none;}
  #mobile-type-filter button{flex:0 0 auto;}
  #mlist{position:relative;z-index:1;overflow:auto;background:#f8f8f5;padding-bottom:max(18px,env(safe-area-inset-bottom));}
  .msi{width:100%;border:0;background:#f8f8f5;text-align:left;padding:14px 16px;border-bottom:1px solid var(--border);color:var(--text);display:flex;align-items:center;gap:12px;}
  .msi-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;box-shadow:0 0 0 5px rgba(66,103,178,.07);}
  .msi-icon svg{width:19px;height:19px;stroke:#050505;fill:none;}
  .msi-main{display:block;min-width:0;}
  .msi-main strong{display:block;font-size:14px;line-height:1.2;color:var(--text);}
  .msi-main span{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--muted);}
  .msi-main em{display:block;margin-top:4px;font-size:11px;font-style:normal;font-weight:800;color:#4267b2;}
  .msi-tags{display:flex!important;align-items:center;gap:5px;flex-wrap:wrap;margin-top:8px!important;}
.msi-tags .si-also{display:inline-flex;margin-top:0;font-size:8px;}
.msi-tags .si-tag{display:inline-flex;margin-top:0;font-size:8px;padding:2px 6px;}
  .msi-main .q-badges{margin-top:8px;}
  .msi-main .q-badge{font-size:8px;padding:2px 6px;}
}

/* Righteous calm theme override. Edit this compact block for future palette swaps. */
:root{
  --page-bg:#eef1e8;
  --hdr-bg:rgba(238,241,232,.96);
  --ui-bg:rgba(252,250,242,.97);
  --accent:#173f46;
  --accent-hot:#0d2b31;
  --spark:#d96b4c;
  --text:#182426;
  --muted:#66716d;
  --border:rgba(24,36,38,.15);
  --panel:#fff7e8;
  --wash:#dbe8df;
  --cat-na:#d99a2b;
  --cat-thc:#4f9d6b;
  --cat-mocktails:#d96b4c;
  --cat-zero:#4e91a8;
}
html,body{background:var(--page-bg);}
.leaflet-tile{filter:saturate(.72) contrast(1.08) brightness(1.04) hue-rotate(8deg);}
.leaflet-control-attribution{color:#173f46!important;background:rgba(252,250,242,.86)!important;}
#hdr{
  background:var(--hdr-bg);
  border-bottom:1px solid rgba(24,36,38,.16);
  box-shadow:0 10px 30px rgba(24,36,38,.10);
}
#hdr::before{
  background:linear-gradient(90deg,rgba(78,145,168,.14),rgba(217,107,76,.10),rgba(217,154,43,.10));
  opacity:.85;
}
#logo-pip{display:none;}
#logo-text{
  font-family:"Righteous","Roboto Condensed","Roboto",Inter,Arial,sans-serif;
  font-weight:700;
  color:#173f46;
  letter-spacing:.2px;
  text-shadow:none;
  -webkit-text-stroke:0;
}
.logo-proof{color:#d96b4c;}
#logo-sub{color:#66716d;font-weight:750;}
#locate-btn,#detail-directions,#hdr-toggle button.on{
  background:#173f46;
  border-color:#173f46;
  color:#fff;
  box-shadow:0 8px 20px rgba(23,63,70,.18);
}
#locate-btn:hover,#locate-btn.located{background:#0d2b31;border-color:#0d2b31;color:#fff;}
#hdr-toggle #vbtn-list.on{background:#d96b4c;color:#fff;border-color:#d96b4c;}
#hdr-cats button,#sb-filters button,#hdr-toggle button{
  border-color:rgba(24,36,38,.16);
  background:rgba(252,250,242,.70);
  color:#173f46;
}
#hdr-cats button:hover,#sb-filters button:hover{border-color:#173f46;background:rgba(78,145,168,.12);color:#0d2b31;}
#hdr-cats button.on,#sb-filters button.on{border-color:transparent;color:#fff;box-shadow:0 2px 8px rgba(24,36,38,.16);}
button.on-all{background:#173f46!important;color:#fff!important;}
button.on-na{background:#d99a2b!important;color:#fff!important;}
button.on-thc{background:#4f9d6b!important;color:#fff!important;}
button.on-mocktails{background:#d96b4c!important;color:#fff!important;}
button.on-zero{background:#4e91a8!important;color:#fff!important;}
#hdr-cats button[data-filter="na"]:hover,
#sb-filters button[data-filter="na"]:hover{background:#d99a2b;color:#fff;border-color:#d99a2b;}
#hdr-cats button[data-filter="mocktails"]:hover,
#sb-filters button[data-filter="mocktails"]:hover{background:#d96b4c;color:#fff;border-color:#d96b4c;}
#hdr-cats button[data-filter="zero"]:hover,
#sb-filters button[data-filter="zero"]:hover{background:#4e91a8;color:#fff;border-color:#4e91a8;}
#hdr-cats button[data-filter="thc"]:hover,
#sb-filters button[data-filter="thc"]:hover{background:#4f9d6b;color:#fff;border-color:#4f9d6b;}
#hdr-cats button.on .cat-symbol,
#sb-filters button.on .cat-symbol{color:#fff;}
#hdr-cats button[data-filter="na"],
#sb-filters button[data-filter="na"]{background:rgba(217,154,43,.16);border-color:rgba(217,154,43,.38);color:#8a5a09;}
#hdr-cats button[data-filter="mocktails"],
#sb-filters button[data-filter="mocktails"]{background:rgba(217,107,76,.14);border-color:rgba(217,107,76,.34);color:#8a3a27;}
#hdr-cats button[data-filter="zero"],
#sb-filters button[data-filter="zero"]{background:rgba(78,145,168,.14);border-color:rgba(78,145,168,.34);color:#245a6d;}
#hdr-cats button[data-filter="thc"],
#sb-filters button[data-filter="thc"]{background:rgba(79,157,107,.14);border-color:rgba(79,157,107,.34);color:#245a37;}
#hdr-cats button.on-all,#sb-filters button.on-all{background:#173f46!important;color:#fff!important;border-color:#173f46!important;}
#hdr-cats button.on-na,#sb-filters button.on-na{background:#d99a2b!important;color:#fff!important;border-color:#d99a2b!important;}
#hdr-cats button.on-mocktails,#sb-filters button.on-mocktails{background:#d96b4c!important;color:#fff!important;border-color:#d96b4c!important;}
#hdr-cats button.on-zero,#sb-filters button.on-zero{background:#4e91a8!important;color:#fff!important;border-color:#4e91a8!important;}
#hdr-cats button.on-thc,#sb-filters button.on-thc{background:#4f9d6b!important;color:#fff!important;border-color:#4f9d6b!important;}
#sidebar{
  background:var(--ui-bg);
  border-right:1px solid rgba(24,36,38,.14);
  box-shadow:4px 0 30px rgba(24,36,38,.10);
}
#store-search,#mobile-search{
  border-color:rgba(24,36,38,.16);
  background:rgba(255,255,255,.66);
  color:#182426;
}
.legend-item,.map-legend-title{color:#173f46;}
#category-note,.detail-row,#detail-note,#source-note,.si-addr{color:#66716d;}
#loc-msg,#detail-distance{background:rgba(78,145,168,.14);color:#173f46;}
.si:hover{background:rgba(78,145,168,.10);}
.si.sel{background:linear-gradient(90deg,rgba(78,145,168,.15),rgba(252,250,242,.62));border-left-color:#d96b4c;}
.si-pin{box-shadow:0 0 0 3px rgba(78,145,168,.13);}
.pop-stripe,#detail-stripe{background:linear-gradient(90deg,#173f46,#4e91a8,#d99a2b,#d96b4c);}
.option-pin{border-color:#173f46;color:#182426!important;}
.otm-pin::before{border-color:#173f46;box-shadow:0 4px 16px rgba(24,36,38,.22),0 0 0 3px rgba(78,145,168,.14);}
.pin-core{background:var(--pin-core,#182426);box-shadow:0 0 0 2px rgba(252,250,242,.94);}
.pin-dot{border-color:#fcfaf2;}
.you-marker{background:#173f46;border-color:#fcfaf2;box-shadow:0 0 0 5px rgba(78,145,168,.22),0 3px 16px rgba(24,36,38,.20);}
.venue-tooltip,#detail-panel,.leaflet-popup-content-wrapper{background:rgba(252,250,242,.98)!important;color:#182426!important;border-color:rgba(24,36,38,.15)!important;}
.drink-group h3{color:#173f46;}
.drink-group li{color:#182426;background:rgba(78,145,168,.10);border-color:rgba(24,36,38,.08);}
.drink-group.muted li{color:#66716d;background:rgba(238,241,232,.60);}
#detail-show-map{border-color:rgba(24,36,38,.16);background:rgba(255,255,255,.58);color:#173f46;}
#detail-show-map:hover{background:rgba(78,145,168,.12);}
#type-filter button,#mobile-type-filter button{border-color:rgba(24,36,38,.16);background:rgba(255,255,255,.58);color:#173f46;}
#type-filter button.on,#mobile-type-filter button.on{background:#173f46;color:#fff;border-color:#173f46;}
.type-chip{background:rgba(217,154,43,.16);color:#173f46;}
.si-dist,.msi-main em,.detail-row a{color:#c65f43;}
.si-site{color:#c65f43;}
.pop-row,.pop-note{color:#66716d;}
@media(max-width:640px){
  #logo-text{font-size:clamp(30px,8.4vw,38px);letter-spacing:.1px;}
  #map-legend{background:rgba(252,250,242,.94);border-color:rgba(24,36,38,.15);}
  #mlist-wrap,#mlist-head,#msearch-wrap,#mlist-filters{background:#fcfaf2;}
  #mobile-type-filter{background:#fcfaf2;}
  #mlist,#mlist .msi{background:#f5f2e9;}
  #mlist-filters button{border-color:rgba(24,36,38,.16);background:rgba(255,255,255,.58);color:#173f46;}
  #mlist-filters button.on{background:#173f46;border-color:#173f46;color:#fff;box-shadow:none;}
}

/* Interface cleanup: lighter chrome, clearer hierarchy, fewer strip dividers. */
#hdr{
  height:58px;
  padding:8px 18px;
  box-shadow:0 8px 24px rgba(24,36,38,.08);
}
#logo-text{font-size:24px;line-height:.9;}
#logo-sub{font-size:10px;margin-top:4px;}
#locate-btn{
  height:34px;
  padding:0 14px;
  border-radius:10px;
  letter-spacing:.35px;
  box-shadow:none;
}
#sidebar{
  top:72px;left:14px;bottom:18px;width:304px;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(24,36,38,.12);
  box-shadow:0 16px 44px rgba(24,36,38,.12);
}
#map-shell{inset:72px 18px 18px 336px;border-width:3px;border-radius:22px;}
#map-shell #map{border-radius:18px;}
#map-shell::before{opacity:.7;}
#map-shell::after{border-radius:18px;box-shadow:inset 0 0 22px rgba(24,36,38,.26);}
#search-wrap{
  padding:14px 14px 9px;
  border-bottom:0;
  background:rgba(252,250,242,.82);
}
#store-search{
  height:42px;
  border-radius:12px;
  font-size:14px;
  padding:0 13px;
  box-shadow:none;
}
#type-filter{
  padding:0 14px 12px;
  border-bottom:1px solid rgba(24,36,38,.10);
  gap:6px;
  background:rgba(252,250,242,.82);
}
#type-filter button,#mobile-type-filter button{
  border-radius:10px;
  padding:7px 9px;
  font-size:9px;
}
#legend{
  padding:9px 14px 10px;
  border-bottom:1px solid rgba(24,36,38,.10);
  gap:8px;
  background:rgba(252,250,242,.62);
}
.legend-item{font-size:9px;font-weight:760;}
.guide-card{
  padding:10px 14px;
  border-bottom:1px solid rgba(24,36,38,.10);
  background:rgba(238,241,232,.58);
  font-size:11px;
  line-height:1.35;
}
#category-note{
  padding:8px 14px;
  border-bottom:1px solid rgba(24,36,38,.10);
  font-size:10px;
  background:rgba(238,241,232,.46);
}
#category-note:empty{display:none;}
#sb-meta,#mlist-head{
  padding:10px 14px 8px;
  font-weight:850;
  letter-spacing:.65px;
  border-bottom:1px solid rgba(24,36,38,.10);
  background:rgba(252,250,242,.72);
}
#loc-msg{
  margin:8px 10px;
  padding:8px 10px;
  border:1px solid rgba(78,145,168,.14);
  border-radius:10px;
  font-size:10px;
}
#loc-msg:empty{display:none;}
#slist{padding:4px 0 8px;}
.si{
  margin:0 8px 6px;
  width:calc(100% - 16px);
  border:1px solid transparent;
  border-radius:12px;
  padding:10px 10px;
  gap:10px;
}
.si:hover{border-color:rgba(78,145,168,.16);}
.si.sel{border-color:rgba(217,107,76,.28);border-left-color:#d96b4c;}
.si-pin{width:31px;height:31px;}
.si-name{font-size:13px;font-weight:800;}
.si-addr{font-size:10px;line-height:1.25;}
.q-badges{gap:4px;margin-top:6px;}
.q-badge{min-height:17px;padding:2px 6px;font-size:7px;letter-spacing:.3px;}
.si-arr{font-size:16px;color:rgba(24,36,38,.26);}
#detail-panel{
  right:38px;top:90px;width:300px;
  border-radius:14px;
  box-shadow:0 14px 36px rgba(24,36,38,.18);
}
#detail-inner{padding:14px 16px 16px;}
#detail-close{top:10px;right:10px;height:28px;border-radius:9px;}
#detail-cat{letter-spacing:1px;margin-bottom:6px;}
#detail-name{font-size:22px;line-height:1.08;padding-right:58px;}
#detail-distance{margin-bottom:9px;}
.detail-row{font-size:12px;margin-bottom:6px;}
#detail-actions{margin:10px -16px -16px;padding:9px 16px 13px;}
#detail-directions,#detail-show-map{min-height:40px;padding:8px 7px;border-radius:10px;}
@media(max-width:640px){
  #hdr{height:112px;padding:10px 14px 7px;gap:5px;}
  #logo-sub{margin-top:2px;font-size:10px;line-height:1.05;}
  #logo-text{font-size:clamp(28px,7.7vw,34px);line-height:.86;transform:none!important;}
  #locate-btn{height:31px;border-radius:10px;}
  #hdr-cats{
    order:2;
    flex:1 1 auto;
    margin-left:0;
    overflow-x:auto;
    gap:5px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  #hdr-cats::-webkit-scrollbar{display:none;}
  #hdr-cats button{
    flex:0 0 auto;
    min-height:31px;
    padding:7px 10px;
    border-radius:10px;
    font-size:9px;
    line-height:1;
    white-space:nowrap;
    box-shadow:none!important;
  }
  #hdr-cats button .cat-symbol{width:12px;height:12px;}
  #hdr-toggle{min-width:0;}
  #hdr-toggle button{border-radius:10px;box-shadow:none!important;}
  #map-shell{inset:114px 8px 8px 8px;border-width:2px;border-radius:18px;}
  #map-shell #map{inset:0;border-radius:inherit;}
  #map-legend{top:122px;left:16px;right:16px;padding:6px 8px;gap:7px;box-shadow:0 8px 22px rgba(24,36,38,.12);}
  #map-style-btn{right:16px;bottom:18px;}
  #detail-panel{left:18px;right:18px;bottom:18px;max-height:44vh;border-radius:14px;}
  #detail-inner{max-height:44vh;}
  #mlist-wrap{inset:108px 0 0 0;}
  #msearch-wrap{padding:12px 14px 10px;}
  #mobile-search{height:42px;border-radius:12px;}
  #mlist-filters{min-height:48px;padding:9px 8px 10px;}
  #mobile-type-filter{padding:0 8px 10px;}
  .mobile-guide{padding:9px 14px;}
  .msi{padding:12px 14px;gap:10px;}
}

/* Single responsive interface and accessibility fixes. */
#thc-note{padding:0 14px 8px;color:#66716d;font-size:10px;line-height:1.35;background:rgba(252,250,242,.82);}
.legend-dot{display:inline-grid;place-items:center;width:18px;height:18px;font-size:7px;font-weight:900;color:#fff;text-align:center;}
.cat-symbol{
  display:inline-block;
  width:1em;
  height:1em;
  flex:0 0 auto;
  color:currentColor;
  overflow:visible;
}
.cat-symbol path{
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cat-icon-beer{--cat-icon:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/beer.svg");}
.cat-icon-mocktail{--cat-icon:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/glass-cocktail.svg");}
.cat-icon-zero{--cat-icon:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/sparkles.svg");}
.cat-icon-thc{--cat-icon:url("https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/cannabis.svg");}
.cat-code{
  font-family:"Roboto Condensed","Arial Narrow",Arial,sans-serif;
  font-size:.86em;
  font-weight:900;
  line-height:1;
  letter-spacing:.2px;
}
.legend-dot .cat-symbol{width:11px;height:11px;}
.pin-letter{display:grid;place-items:center;min-width:22px;height:20px;padding:0 3px;font-size:8px;font-weight:900;line-height:1;color:var(--pin-core,#173f46);background:#fcfaf2!important;border:0;}
.pin-letter .cat-symbol{width:14px;height:14px;}
.pin-letter .cat-code{display:none;}
.pin-dot{display:grid;place-items:center;width:12px;height:12px;font-size:0;color:var(--cat);background:#fcfaf2!important;border:0;box-shadow:none;}
.pin-dot .cat-symbol{width:5px;height:5px;}
.drink-marker{position:relative;width:var(--marker-w,42px);height:46px;filter:drop-shadow(0 5px 13px rgba(24,36,38,.18));}
.marker-shell{
  position:absolute;
  inset:0;
  z-index:1;
  width:var(--marker-w,42px);
  height:44px;
  overflow:visible;
  pointer-events:none;
}
.marker-shell-path{
  fill:#fcfaf2;
  stroke:#173f46;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.marker-svg-glyph{
  color:var(--cat);
}
.marker-svg-glyph path{
  fill:none;
  stroke:var(--cat);
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.marker-card{
  position:absolute;left:50%;top:0;transform:translateX(-50%);
  z-index:10;
  width:var(--marker-w,42px);height:33px;
  border:0;border-radius:0;
  background:transparent;overflow:visible;
  box-shadow:none;
  display:grid;
  place-items:center;
  pointer-events:none;
}
.marker-letters{
  position:relative;
  z-index:11;
  display:flex;align-items:center;justify-content:center;gap:1px;
  padding:0 4px;
  white-space:nowrap;
}
.marker-letter{
  display:grid;place-items:center;
  flex:0 0 21px;width:21px;height:23px;padding:0;border-radius:6px;
  background:transparent;color:var(--cat);
  border:0;
  font-family:"Roboto Condensed","Arial Narrow",Arial,sans-serif;
  font-size:8px;font-weight:900;line-height:1;text-shadow:none;
}
.marker-svg-icon{
  display:block;
  width:22px;
  height:22px;
  color:var(--cat);
}
.marker-svg-icon path{
  fill:none;
  stroke:var(--cat);
  stroke-width:2.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.marker-letter .cat-symbol{display:block;width:18px;height:18px;}
.marker-letter .cat-code{display:none;}
.marker-bands{display:none;}
.marker-band{flex:1 1 0;}
.marker-point{display:none;}
.leaflet-marker-icon:has(.drink-marker){background:transparent!important;border:0!important;}
.retry-btn{margin-top:10px;border:1px solid rgba(24,36,38,.16);border-radius:10px;background:#173f46;color:#fff;padding:8px 12px;font-weight:800;text-transform:uppercase;letter-spacing:.45px;}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(217,107,76,.72);outline-offset:3px;}
@media(max-width:640px){
  #sidebar{
    display:none;
    position:fixed;inset:108px 0 0 0;width:auto;left:0;top:108px;bottom:0;
    border-radius:0;z-index:330;box-shadow:inset 0 1px 0 rgba(24,36,38,.08);
  }
  body.show-list #sidebar{display:flex;}
  body.show-list #map-shell,body.show-list #map-legend,body.show-list #map-style-btn{display:none;}
  body.show-list #legend,
  body.show-list #sb-filters,
  body.show-list .guide-card,
  body.show-list #category-note,
  body.show-list #thc-note{display:none;}
  #search-wrap{padding:12px 14px 8px;}
  #type-filter{
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    background:rgba(252,250,242,.82);
  }
  #type-filter::-webkit-scrollbar{display:none;}
  #type-filter button{
    flex:0 0 auto;
    min-height:30px;
    padding:7px 11px;
    font-size:9px;
    line-height:1.05;
    white-space:nowrap;
  }
  #type-filter{padding:0 14px 10px;gap:6px;border-bottom:1px solid rgba(24,36,38,.10);}
  #slist{min-height:0;overflow-y:auto;padding:6px 8px 14px;}
  .si{width:100%;margin:0 0 8px;padding:11px 10px;align-items:flex-start;overflow:visible;}
  .si-pin{width:25px;height:25px;box-shadow:none;}
  .pin-letter{min-width:20px;height:18px;font-size:6px;}
  .pin-letter .cat-symbol{width:14px;height:14px;}
  .pin-dots{display:none;}
  .si-main{min-width:0;width:100%;overflow:visible;}
  .si-name{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.18;}
  .si-addr{overflow-wrap:anywhere;}
  .si-site,
  .q-badges,
  .si-row{display:none;}
  .si-arr{align-self:center;}
  #detail-panel{
    left:14px;
    right:14px;
    top:auto;
    bottom:14px;
    width:auto;
    max-height:min(34dvh,286px);
    border-radius:14px;
    overflow:hidden;
  }
  #detail-inner{
    max-height:min(calc(34dvh - 5px),281px);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:10px 14px 12px;
  }
  #detail-close{top:8px;right:8px;height:26px;padding:0 8px;font-size:9px;}
  #detail-cat{font-size:9px;margin-bottom:4px;line-height:1.1;}
  #detail-name{font-size:18px;line-height:1.05;margin-bottom:6px;padding-right:54px;}
  #detail-distance{margin-bottom:6px;padding:3px 8px;font-size:10px;}
  .detail-row{font-size:11px;line-height:1.25;margin-bottom:4px;}
  .detail-website a{min-height:22px;padding:2px 7px;}
  #detail-note{font-size:11px;line-height:1.3;margin-top:6px;padding-top:6px;}
  #drink-groups{gap:6px;margin-top:7px;}
  .drink-group h3{font-size:9px;margin-bottom:4px;}
  .drink-group ul{gap:4px;}
  .drink-group li{font-size:10px;line-height:1.22;padding:5px 7px;border-radius:7px;}
  #source-note{margin-top:6px;font-size:8px;line-height:1.2;}
  #detail-actions{
    margin:8px -14px -12px;
    padding:7px 14px max(10px,env(safe-area-inset-bottom));
  }
  #detail-directions,#detail-show-map{min-height:34px;padding:7px 6px;font-size:10px;}
}


/* Header category control polish: quiet default, color on intent. */
#hdr-cats{
  flex:0 1 auto;
  justify-content:flex-end;
  width:max-content;
  max-width:min(58vw,560px);
  padding:4px;
  border:1px solid rgba(24,36,38,.12);
  border-radius:14px;
  background:rgba(252,250,242,.74);
}
#hdr-cats button,
#sb-filters button{
  min-height:30px;
  border-radius:10px;
  border-color:rgba(24,36,38,.12);
  background:rgba(252,250,242,.86);
  box-shadow:none;
  color:#173f46;
}
#hdr-cats button[data-filter="na"],
#sb-filters button[data-filter="na"]{background:rgba(252,250,242,.9);border-color:rgba(217,154,43,.34);color:#9b6410;}
#hdr-cats button[data-filter="mocktails"],
#sb-filters button[data-filter="mocktails"]{background:rgba(252,250,242,.9);border-color:rgba(217,107,76,.34);color:#9a432d;}
#hdr-cats button[data-filter="zero"],
#sb-filters button[data-filter="zero"]{background:rgba(252,250,242,.9);border-color:rgba(78,145,168,.34);color:#28677b;}
#hdr-cats button[data-filter="thc"],
#sb-filters button[data-filter="thc"]{background:rgba(252,250,242,.9);border-color:rgba(79,157,107,.34);color:#2f6e45;}
#hdr-cats button[data-filter="na"]:hover,
#sb-filters button[data-filter="na"]:hover,
#hdr-cats button.on-na,
#sb-filters button.on-na{background:#d99a2b!important;border-color:#d99a2b!important;color:#fff!important;}
#hdr-cats button[data-filter="mocktails"]:hover,
#sb-filters button[data-filter="mocktails"]:hover,
#hdr-cats button.on-mocktails,
#sb-filters button.on-mocktails{background:#d96b4c!important;border-color:#d96b4c!important;color:#fff!important;}
#hdr-cats button[data-filter="zero"]:hover,
#sb-filters button[data-filter="zero"]:hover,
#hdr-cats button.on-zero,
#sb-filters button.on-zero{background:#4e91a8!important;border-color:#4e91a8!important;color:#fff!important;}
#hdr-cats button[data-filter="thc"]:hover,
#sb-filters button[data-filter="thc"]:hover,
#hdr-cats button.on-thc,
#sb-filters button.on-thc{background:#4f9d6b!important;border-color:#4f9d6b!important;color:#fff!important;}
#hdr-cats button.on-all,
#sb-filters button.on-all{background:#173f46!important;border-color:#173f46!important;color:#fff!important;}
#hdr-cats button:hover .cat-symbol,
#sb-filters button:hover .cat-symbol,
#hdr-cats button.on .cat-symbol,
#sb-filters button.on .cat-symbol{color:#fff;}

@media(max-width:640px){
  #hdr{
    height:146px;
    padding:9px 12px 8px;
    gap:7px;
  }
  #logo{flex:1 1 100%;}
  #logo-text{font-size:clamp(27px,7.2vw,34px);}
  #logo-sub{font-size:9px;margin-top:2px;}
  #hdr-cats{
    order:2;
    flex:1 1 100%;
    max-width:none;
    width:100%;
    margin-left:0;
    justify-content:flex-start;
    gap:5px;
    padding:4px;
  }
  #hdr-cats button{
    min-height:32px;
    padding:7px 10px;
  }
  #locate-btn{order:3;flex:0 0 auto;height:32px;}
  #hdr-toggle{order:3;flex:1 1 auto;}
  #map-shell{inset:148px 8px 8px 8px;}
  #map-legend{top:156px;}
  #sidebar{top:146px!important;inset:146px 0 0 0!important;}
}


/* Keep sidebar place-type filters on one clean line. */
#type-filter{
  display:flex;
  flex-wrap:nowrap;
  gap:4px;
  overflow:hidden;
}
#type-filter button{
  flex:.9 1 0;
  min-width:0;
  min-height:30px;
  padding:7px 4px;
  font-size:8.75px;
  font-weight:760;
  letter-spacing:0;
  line-height:1;
  white-space:nowrap;
}
#type-filter button[data-type-filter="restaurant"]{flex:1.35 1 0;}
@media(max-width:640px){
  #hdr-cats{
    overflow-x:auto;
  }
  #type-filter{
    overflow-x:visible;
    gap:4px;
  }
  #type-filter button{
    flex:.9 1 0;
    min-height:30px;
    padding:7px 4px;
    font-size:8.5px;
  }
  #type-filter button[data-type-filter="restaurant"]{flex:1.35 1 0;}
}

/* Venue list category icons: vertical marker-style badge. */
.si-pin.option-pin{
  position:relative;
  display:block;
  place-items:initial;
  width:39px;
  min-height:34px;
  height:auto;
  padding:0;
  background:transparent!important;
  border:0;
  border-radius:0;
  box-shadow:0 5px 12px rgba(24,36,38,.13);
  overflow:visible;
  align-self:flex-start;
  margin-top:1px;
}
.list-marker-shell{
  position:absolute;
  inset:0;
  width:39px;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.list-marker-shell path{
  fill:#fcfaf2;
  stroke:#173f46;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.pin-stack{
  display:grid;
  place-items:center;
  gap:1px;
  position:absolute;
  left:1px;
  top:50%;
  transform:translateY(-50%);
  z-index:1;
  width:30px;
  margin-left:0;
}
.pin-stack.multi{gap:0;}
.pin-stack-icon{
  display:grid;
  place-items:center;
  width:18px;
  height:10px;
  color:var(--cat);
}
.pin-stack-icon .cat-symbol{
  width:10px;
  height:10px;
}
.pin-stack:not(.multi) .pin-stack-icon{
  width:22px;
  height:22px;
}
.pin-stack:not(.multi) .cat-symbol{
  width:15px;
  height:15px;
}
@media(max-width:640px){
  .si-pin.option-pin{
    width:38px;
    min-height:34px;
    padding:0;
    margin-top:0;
  }
  .list-marker-shell{width:38px;}
  .pin-stack-icon{height:9px;}
  .pin-stack-icon .cat-symbol{width:9px;height:9px;}
  .pin-stack:not(.multi) .cat-symbol{width:14px;height:14px;}
}

/* Align list marker pointers with the venue name line. */
.si{align-items:flex-start;}

/* Keep the sidebar legend compact without squeezing the labels. */
#legend{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:5px;
  padding:8px 14px;
  overflow:visible;
}
#legend .map-legend-title{
  display:none;
}
#legend .legend-item{
  flex:0 1 auto;
  min-width:0;
  gap:4px;
  font-size:8.75px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
#legend .legend-dot{
  width:16px;
  height:16px;
  flex:0 0 16px;
  box-shadow:none;
}
#legend .legend-dot .cat-symbol{
  width:9px;
  height:9px;
}
@media(max-width:640px){
  #legend{
    gap:4px;
    padding:7px 10px;
  }
  #legend .map-legend-title{font-size:8px;}
  #legend .legend-item{font-size:8px;}
  #legend .legend-dot{
    width:15px;
    height:15px;
    flex-basis:15px;
  }
}

/* Combined zero-proof/mocktail category. */
#hdr-cats button[data-filter="zero"],
#sb-filters button[data-filter="zero"]{
  background:rgba(252,250,242,.9)!important;
  border-color:rgba(217,107,76,.34)!important;
  color:#9a432d!important;
}
#hdr-cats button[data-filter="zero"]:hover,
#sb-filters button[data-filter="zero"]:hover,
#hdr-cats button.on-zero,
#sb-filters button.on-zero,
button.on-zero{
  background:#d96b4c!important;
  border-color:#d96b4c!important;
  color:#fff!important;
}

/* Keep top category labels on one line; scroll the group instead of stacking text. */
#hdr-cats{
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden;
  white-space:nowrap;
  max-width:min(64vw,620px);
}
#hdr-cats button{
  flex:0 0 auto;
  white-space:nowrap!important;
  flex-wrap:nowrap!important;
}
#hdr-cats button .filter-label{
  display:inline-block;
  white-space:nowrap!important;
  line-height:1;
}
@media(max-width:640px){
  #hdr-cats{
    max-width:100%;
    width:100%;
    justify-content:flex-start;
  }
}

