/* v0.8.2: consistent local SVG icons and vertical menu items. */
.bsf-icon{display:inline-block;width:20px;height:20px;min-width:20px;flex-shrink:0;vertical-align:-.22em;pointer-events:none;overflow:visible}
[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;vertical-align:middle}
.brand-mark .bsf-icon,.login-mark .bsf-icon{width:30px;height:30px}
.brand-mark,.login-mark{display:grid;place-items:center}
.login-mark .bsf-icon{width:42px;height:42px}
.login-mobile-brand{display:flex;align-items:center;gap:9px}
.login-mobile-brand .bsf-icon{width:24px;height:24px}
.bottom-nav .nav-item{display:flex!important;flex-direction:column!important;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:62px;height:auto;padding:8px 4px;font-size:.75rem;line-height:1.2;text-align:center}
.bottom-nav .nav-item .nav-icon{display:flex;align-items:center;justify-content:center;width:34px;height:27px;border-radius:10px;font-size:inherit;line-height:1}
.bottom-nav .nav-item .nav-icon .bsf-icon{width:23px;height:23px;stroke-width:1.8}
.bottom-nav .nav-item .nav-label{display:block;max-width:100%;white-space:nowrap}
.bottom-nav .nav-item.active .nav-icon{background:var(--accent-soft);color:var(--accent-ink)}
.bottom-nav .nav-item.active{color:var(--accent-ink);background:var(--surface-2)}
.bottom-nav .nav-item[aria-current="page"] .nav-icon .bsf-icon{stroke-width:2.2}
.bsf-icon-only,.dialog-close,.favorite-button{display:inline-flex;align-items:center;justify-content:center}
.quick-icon .bsf-icon{width:23px;height:23px}
.empty-icon .bsf-icon{width:44px;height:44px;stroke-width:1.5}
.member-mode-icon .bsf-icon{width:29px;height:29px}
.suggestion-mark .bsf-icon,.visitor-theme-preview>span:first-child .bsf-icon{width:26px;height:26px}
.suggestion-success-icon .bsf-icon{width:28px;height:28px}
.member-profile-tabs [data-member-tab]{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:63px}
[data-member-tab] .tab-icon .bsf-icon{width:22px;height:22px}
.verified-mini .bsf-icon,.verified-badge .bsf-icon,.featured-ribbon .bsf-icon,.theme-status .bsf-icon,.reviewed-label .bsf-icon{width:15px;height:15px;min-width:15px;stroke-width:2}
.availability-badge .bsf-icon,.meta-item>span .bsf-icon{width:15px;height:15px;min-width:15px;vertical-align:-.18em}
.meta-item>span{display:flex;align-items:center;gap:5px}
.favorite-button{min-width:42px;min-height:42px}
.favorite-button.active .bsf-icon{color:var(--accent-ink)}
[data-control-icon]{gap:7px}
[data-control-icon]>.control-icon{display:inline-flex;vertical-align:middle;margin-right:6px;pointer-events:none}
button[data-control-icon]:is(.primary-button,.secondary-button,.ghost-button),a[data-control-icon]{display:inline-flex;align-items:center;justify-content:center}
button[data-control-icon]:is(.primary-button,.secondary-button,.ghost-button)>.control-icon{margin-right:0}
.bsf-icon-label{display:inline-flex;align-items:center;gap:6px}
.booking-help-note{color:var(--muted);font-size:.78rem;line-height:1.5;margin:14px 0 0}
[data-book-id]{gap:6px}.card-actions [data-book-id]{display:inline-flex;align-items:center;justify-content:center}
[aria-disabled="true"][data-book-id]{opacity:.55;cursor:not-allowed}
#checks .check a{display:inline-flex;align-items:center;gap:6px;margin-top:9px;color:var(--brand);font-weight:700;overflow-wrap:anywhere}
@media(max-width:700px){.bottom-nav{gap:2px;padding:5px}.bottom-nav .nav-item{min-height:59px;height:auto;font-size:.68rem;padding:5px 1px;gap:4px}.bottom-nav .nav-icon{width:32px;height:26px}.bottom-nav .nav-icon .bsf-icon{width:22px;height:22px}.member-profile-tabs [data-member-tab]{min-height:61px;padding:9px 5px;font-size:.82rem}.app-shell{padding-bottom:105px}.detail-sticky-cta .book{display:inline-flex;align-items:center;justify-content:center;gap:8px}}
@media(prefers-reduced-motion:reduce){.bsf-icon{animation:none!important}}
/* Presentation must never override gated/hidden controls. */
.hidden,.bottom-nav .nav-item.hidden,[hidden]{display:none!important}

.brand-mark .bsf-icon,.login-mark .bsf-icon{color:#fff}.verified-mini .bsf-icon,.featured-ribbon .bsf-icon{margin-right:3px}.icon-button .bsf-icon{width:20px;height:20px}.member-mode-action .bsf-icon{width:17px;height:17px}

/* Dedicated event dialog: details scroll, actions stay completely in view. */
#detailDialog{position:fixed;inset:0;margin:auto;box-sizing:border-box;overflow:hidden;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
#detailContent{display:flex;flex-direction:column;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:hidden}
#detailContent>.detail-scroll-content{min-height:0;overflow-y:auto;overscroll-behavior:contain}
#detailContent>.detail-sticky-cta{position:relative;bottom:auto;flex-shrink:0;margin:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(15,23,42,.05)}
#detailDialog>.dialog-close{z-index:3}
#detailContent .detail-body{padding-bottom:20px}
@media(max-width:420px){#detailContent>.detail-sticky-cta{padding-left:16px;padding-right:16px;gap:8px}}

#detailContent>.detail-sticky-cta .map{gap:7px}
