/* The selected speech bubble stays inside the measured Festivalpass dock. */
.community-pass-dock .dock-inner{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}
.festival-community{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;max-width:100%;min-height:47px;padding:9px 13px;background:#d7eeff;color:var(--ink);border:2px solid var(--action);border-radius:17px;box-shadow:3px 3px 0 #93164725;pointer-events:auto;font:inherit;cursor:pointer}
.festival-community[hidden]{display:none}
.festival-community::after{content:'';position:absolute;bottom:-8px;left:calc(50% - 6px);width:12px;height:12px;transform:rotate(45deg);background:#d7eeff;border-right:2px solid var(--action);border-bottom:2px solid var(--action)}
.community-copy{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;justify-content:center;line-height:1.15}
.community-copy strong{font-size:1.2rem;font-weight:750;font-variant-numeric:tabular-nums}
.community-copy>span{font-size:.8125rem;font-weight:500}
.community-status{flex:none;border-radius:5px;padding:3px 5px;background:var(--ink);color:var(--paper);font-size:.5625rem;font-weight:700;letter-spacing:.055em}
.community-pulse{position:relative;flex:none;width:9px;height:9px;border-radius:50%;background:#28785a}
.community-pulse i{position:absolute;inset:0;border:1.5px solid #28785a;border-radius:50%;opacity:0}
.festival-community[data-live='true'] .community-pulse i{animation:community-ripple 3s ease-out infinite}
.festival-community[data-live='true'] .community-pulse i+i{animation-delay:1.5s}
.festival-community[data-live='false'] .community-pulse{background:#813653}
.community-changed .community-copy strong{animation:community-number .35s ease-out}
.festival-community:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.dock.discovery-pass-dock.community-pass-dock:not(.restaurant-pass-tab){max-width:478px;margin-inline:auto;padding:0 24px max(40px,calc(30px + env(safe-area-inset-bottom)));border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
.community-pass-dock:not(.restaurant-pass-tab) .dock-inner{max-width:430px}
.community-pass-dock:not(.restaurant-pass-tab) .map-pass-button{position:relative;flex:none;min-height:60px;padding:10px 21px 10px 73px;gap:12px;justify-content:space-between;font-size:1.0625rem;line-height:1.3;text-align:left;white-space:normal;box-shadow:0 5px 20px #701a4230;pointer-events:auto}
.restaurant-pass-tab .dock-inner{max-width:430px;margin-inline:auto}
.restaurant-pass-tab .festival-community{min-height:43px;padding:8px 11px}
.restaurant-pass-tab .community-copy strong{font-size:1.125rem}
.restaurant-pass-tab .community-copy>span{font-size:.75rem}
/* Sources stay at the actual map edge, underneath sheets, independent of docks. */
body .matmeg-map .maplibregl-ctrl-bottom-left,body .matmeg-map .maplibregl-ctrl-bottom-right{bottom:env(safe-area-inset-bottom,0px)!important}
.matmeg-map .maplibregl-ctrl-attrib{font-size:11px;line-height:1.35;max-width:calc(100vw - 24px)}
.map-restaurant-open .matmeg-map .maplibregl-ctrl-bottom-left{visibility:hidden}
.community-toolbar-covered .discovery-map-toolbar{visibility:hidden}
@keyframes community-ripple{0%{opacity:.55;transform:scale(1)}80%,100%{opacity:0;transform:scale(3.4)}}
@keyframes community-number{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:350px){.dock.discovery-pass-dock.community-pass-dock:not(.restaurant-pass-tab){padding-inline:16px}.festival-community{gap:8px;padding-inline:10px}.community-copy>span{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.festival-community .community-pulse i,.community-changed .community-copy strong{animation:none!important}}
