/* Data Center Map application and single-facility map. Loaded only where a map is rendered. */
.bc-map-page,
.bc-map-page * { box-sizing: border-box; }

.bc-map-desktop-site-header { flex: 0 0 auto; }
body.bc-map-app-page .bc-map-page {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
}
body.bc-map-app-page .bc-map-app {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	min-height: 0;
	background: #e8edef;
}

.bc-map-unavailable {
	position: relative;
	z-index: 12;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: .5rem;
	min-height: 42px;
	padding: .55rem var(--bc-gutter);
	color: #6d4b00;
	background: #fff8e6;
	border-bottom: 1px solid #ecd493;
	font-size: .82rem;
}
.bc-map-unavailable strong { color: #4f3700; }

.bc-map-app {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	min-height: 0;
	background: #e8edef;
}
.bc-map-app--unavailable { opacity: .86; }
.bc-map-app--unavailable .bc-map-search,
.bc-map-app--unavailable #bc-map-near-me,
.bc-map-app--unavailable #bc-map-panel-toggle,
.bc-map-app--unavailable .bc-map-canvas-wrap { display: none; }
.bc-map-app--unavailable .bc-map-nav-backdrop,
.bc-map-app--unavailable .bc-map-nav-drawer { display: none; }

.bc-map-workspace { grid-template-columns: minmax(0, 1fr); }
.bc-map-app--unavailable .bc-map-panel {
	position: relative;
	width: 100%;
	max-width: none;
	opacity: 1;
	pointer-events: auto;
	transform: none;
	border-right: 0;
}
.bc-map-app--error { min-height: 360px; height: auto; overflow: visible; }
.bc-map-app--error .bc-map-canvas-wrap { display: none; }
.bc-map-app--error .bc-map-workspace { display: block; overflow: visible; }
.bc-map-app--error .bc-map-panel {
	position: relative;
	inset: auto;
	width: 100%;
	height: auto;
	max-width: none;
	max-height: none;
	opacity: 1;
	pointer-events: auto;
	transform: none;
	border-right: 0;
}
.bc-map-app--error .bc-map-panel__view { visibility: visible !important; pointer-events: auto !important; }


/* Shared command-bar geometry and search presentation are provided by commandbar.css. */
@media (min-width: 1280px) {
	/* Keep the complete map identity intrinsic and let the flexible search track absorb narrow desktop pressure. */
	.bc-map-commandbar { grid-template-columns: max-content minmax(280px, 760px) max-content; }
	.bc-map-commandbar__identity { width: max-content; }
	.bc-map-commandbar__count { flex: 0 0 auto; }
}
.bc-map-mobile-search-toggle,
.bc-map-mobile-search-close { display: none; }

.bc-map-suggestions {
	position: absolute;
	z-index: 50;
	top: calc(100% + .4rem);
	left: 0;
	right: 0;
	max-height: min(430px, 60vh);
	overflow-y: auto;
	overscroll-behavior: contain;
	color: var(--bc-text);
	background: #fff;
	border: 1px solid var(--bc-border);
	border-radius: 10px;
	box-shadow: 0 18px 48px rgba(17,24,39,.25);
}
.bc-map-suggestions[hidden] { display: none; }
.bc-map-suggestions__group + .bc-map-suggestions__group { border-top: 1px solid var(--bc-border); }
.bc-map-suggestions__label {
	display: block;
	padding: .55rem .85rem .38rem;
	color: var(--bc-muted);
	background: var(--bc-surface-alt);
	font-size: .67rem;
	font-weight: 850;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.bc-map-suggestion {
	display: block;
	width: 100%;
	min-width: 0;
	padding: .72rem .85rem;
	color: var(--bc-text);
	text-align: left;
	background: #fff;
	border: 0;
	border-top: 1px solid var(--bc-border);
}
.bc-map-suggestion:hover,
.bc-map-suggestion:focus-visible,
.bc-map-suggestion.is-active { background: #f2f7f3; }
.bc-map-suggestion strong,
.bc-map-suggestion span { display: block; min-width: 0; overflow-wrap: anywhere; }
.bc-map-suggestion strong { font-size: .88rem; line-height: 1.3; }
.bc-map-suggestion span { margin-top: .15rem; color: var(--bc-text-soft); font-size: .76rem; }
.bc-map-suggestions__empty { margin: 0; padding: .85rem; color: var(--bc-text-soft); font-size: .82rem; }

.bc-map-panel__head button,
.bc-map-details-back,
.bc-map-reset,
.bc-map-search-area {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	min-height: 40px;
	padding: .5rem .7rem;
	font-weight: 780;
	line-height: 1.2;
	text-decoration: none;
	border-radius: 8px;
	cursor: pointer;
}
.bc-map-command--directory:hover,
.bc-map-command--directory:focus-visible { color: #071208; background: var(--bc-accent-dark); border-color: var(--bc-accent-dark); }

.bc-map-about { position: relative; }
.bc-map-about > summary { list-style: none; }
.bc-map-about > summary::-webkit-details-marker { display: none; }
.bc-map-about__panel {
	position: absolute;
	top: calc(100% + .5rem);
	right: 0;
	z-index: 60;
	width: min(440px, calc(100vw - (2 * var(--bc-gutter))));
	max-height: min(520px, 70vh);
	overflow-y: auto;
	padding: 1.05rem 1.1rem;
	color: var(--bc-text);
	background: #fff;
	border: 1px solid var(--bc-border);
	border-radius: 10px;
	box-shadow: 0 18px 48px rgba(17,24,39,.25);
}
.bc-map-about__panel h2 { margin: 0 0 .65rem; font-size: 1.08rem; }
.bc-map-about__panel p { margin: 0; color: var(--bc-text-soft); font-size: .84rem; line-height: 1.52; }
.bc-map-about__panel p + p { margin-top: .68rem; }
.bc-map-about__panel a { display: inline-block; margin-top: .8rem; font-size: .84rem; font-weight: 800; }

.bc-map-workspace {
	position: relative;
	display: grid;
	flex: 1 1 auto;
	grid-template-columns: 320px minmax(0, 1fr);
	width: 100%;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
}
.bc-map-workspace > * { min-width: 0; min-height: 0; }

/* One panel owns results, filters, and selected-facility details. */
.bc-map-panel {
	position: relative;
	z-index: 8;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	background: #fff;
	border-right: 1px solid var(--bc-border);
	box-shadow: 4px 0 18px rgba(17,24,39,.08);
	transition: opacity .16s ease, transform .18s ease;
}
.bc-map-panel__head {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: space-between;
	gap: .7rem;
	min-height: 54px;
	padding: .7rem .8rem .7rem 1rem;
	border-bottom: 1px solid var(--bc-border);
}
.bc-map-panel__peek {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: flex-start;
	gap: .55rem;
	min-width: 0;
	min-height: 38px;
	padding: 0;
	color: var(--bc-text);
	background: transparent;
	border: 0;
	text-align: left;
}
.bc-map-panel__controls { display: flex; flex: 0 0 auto; align-items: center; gap: .2rem; }
.bc-map-panel__head strong { min-width: 0; font-size: .91rem; line-height: 1.25; overflow-wrap: anywhere; }
.bc-map-panel__head span {
	display: inline-grid;
	place-items: center;
	min-width: 27px;
	height: 22px;
	padding-inline: .4rem;
	color: #071208;
	background: var(--bc-accent);
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 850;
}
.bc-map-panel__head span:empty { display: none; }
.bc-map-panel__controls button {
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	min-height: 38px;
	padding: 0;
	color: var(--bc-text);
	background: transparent;
	border: 1px solid transparent;
}
.bc-map-panel__controls button:hover,
.bc-map-panel__controls button:focus-visible { background: var(--bc-surface-alt); border-color: var(--bc-border); }
.bc-map-panel__head .bc-icon { width: 18px; height: 18px; }
.bc-map-panel__handle,
.bc-map-panel__size { display: none !important; }
.bc-map-panel__peek-label { display: none !important; }
.bc-map-panel__view { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
.bc-map-panel__view[hidden] { display: none; }

.bc-map-filter-panel { flex: 0 0 auto; border-bottom: 1px solid var(--bc-border); }
.bc-map-filter-disclosure {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: .5rem;
	width: 100%;
	min-width: 0;
	min-height: 48px;
	padding: .65rem 1rem;
	color: var(--bc-text);
	background: #fff;
	border: 0;
	font-size: .88rem;
	font-weight: 800;
	text-align: left;
}
.bc-map-filter-disclosure:hover,
.bc-map-filter-disclosure:focus-visible { background: var(--bc-surface-alt); }
.bc-map-filter-disclosure > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.bc-map-filter-disclosure .bc-icon { width: 16px; height: 16px; color: var(--bc-muted); transition: transform .16s ease; }
.bc-map-filter-disclosure[aria-expanded="true"] .bc-icon { transform: rotate(180deg); }
.bc-map-filter-count {
	display: inline-flex;
	align-items: center;
	min-height: 22px;
	padding: .15rem .45rem;
	color: var(--bc-text-soft);
	background: var(--bc-surface-alt);
	border-radius: 999px;
	font-size: .65rem;
	font-weight: 800;
	white-space: nowrap;
}
.bc-map-filter-count.is-active { color: #071208; background: var(--bc-accent-soft); }
.bc-map-filter-fields {
	max-height: min(48vh, 430px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0 1rem 1rem;
	background: #fff;
}
.bc-map-filter-fields[hidden] { display: none; }
.bc-map-filter-fields p { margin: .72rem 0 0; }
.bc-map-filter-fields label {
	display: block;
	margin-bottom: .28rem;
	color: var(--bc-text-soft);
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.bc-map-filter-fields select {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 40px;
	padding: .5rem .6rem;
	color: var(--bc-text);
	background: #fff;
	border: 1px solid #cfd6da;
	border-radius: 7px;
}
.bc-map-reset {
	width: 100%;
	margin-top: .8rem;
	color: var(--bc-text);
	background: var(--bc-surface-alt);
	border: 1px solid #cfd6da;
}
.bc-map-reset:hover,
.bc-map-reset:focus-visible { border-color: #9aa5ab; }

.bc-map-status {
	flex: 0 0 auto;
	padding: 0 1rem;
	color: var(--bc-text-soft);
	font-size: .76rem;
}
.bc-map-status:not(:empty) { padding-block: .55rem; border-bottom: 1px solid var(--bc-border); }
.bc-map-status--error { color: #9f1c1c; background: #fff1f1; }
.bc-map-results {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}
.bc-map-results:focus-visible { outline: 2px solid var(--bc-link); outline-offset: -2px; }
.bc-map-result {
	display: block;
	width: 100%;
	min-width: 0;
	padding: .88rem 1rem;
	color: var(--bc-text);
	text-align: left;
	text-decoration: none;
	background: #fff;
	border: 0;
	border-bottom: 1px solid var(--bc-border);
}
.bc-map-result:hover,
.bc-map-result:focus-visible,
.bc-map-result.is-active { color: var(--bc-text); background: #f2f7f3; }
.bc-map-result.is-active { box-shadow: inset 4px 0 0 var(--bc-accent); }
.bc-map-result__type {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem;
	margin-bottom: .28rem;
	color: var(--bc-text-soft);
	font-size: .64rem;
	font-weight: 850;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.bc-map-result__type em,
.bc-map-badge {
	display: inline-flex;
	padding: .14rem .4rem;
	color: #071208;
	background: var(--bc-accent-soft);
	border-radius: 999px;
	font-style: normal;
	font-size: .62rem;
	font-weight: 850;
}
.bc-map-result strong,
.bc-map-result span,
.bc-map-result small { display: block; min-width: 0; overflow-wrap: anywhere; }
.bc-map-result strong { font-size: .91rem; line-height: 1.3; }
.bc-map-result > span:not(.bc-map-result__type) { margin-top: .22rem; color: var(--bc-text-soft); font-size: .78rem; }
.bc-map-result small { margin-top: .18rem; color: var(--bc-muted); font-size: .73rem; }
.bc-map-empty { margin: 0; padding: 1rem; color: var(--bc-text-soft); }

.bc-map-details-view { overflow-y: auto; overscroll-behavior: contain; }
.bc-map-details-back {
	justify-content: flex-start;
	width: 100%;
	min-height: 46px;
	padding: .65rem 1rem;
	color: var(--bc-text);
	background: var(--bc-surface-alt);
	border: 0;
	border-bottom: 1px solid var(--bc-border);
	border-radius: 0;
	font-size: .78rem;
}
.bc-map-details-back:hover,
.bc-map-details-back:focus-visible { background: #e8efea; }
.bc-map-details-back .bc-icon { width: 16px; height: 16px; }
.bc-map-details-content { padding: 1.15rem 1rem 1.4rem; }
.bc-map-details__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: .85rem;
	color: #071208;
	background: var(--bc-accent);
	border-radius: 9px;
}
.bc-map-details__icon svg { width: 26px; height: 26px; }
.bc-map-details__eyebrow { margin: 0 0 .3rem; color: var(--bc-link); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.bc-map-details-content h2 { margin: 0 0 .5rem; font-size: 1.35rem; line-height: 1.18; overflow-wrap: anywhere; }
.bc-map-details-content p { overflow-wrap: anywhere; }
.bc-map-details__operator,
.bc-map-details__location,
.bc-map-details__precision,
.bc-map-details__meta { color: var(--bc-text-soft); }
.bc-map-details__meta { display: grid; gap: .45rem; margin: .8rem 0; padding: .8rem; background: var(--bc-surface-alt); border-radius: 8px; font-size: .78rem; }
.bc-map-details__meta span { display: block; }
.bc-map-details-content .bc-button { width: 100%; margin-top: .8rem; }
.bc-map-details-loading { color: var(--bc-text-soft); }

.bc-map-canvas-wrap { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
.bc-map-panel-reopen {
	position: absolute;
	z-index: 7;
	top: .8rem;
	left: .8rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	min-height: 42px;
	padding: .5rem .7rem;
	color: var(--bc-text);
	background: #fff;
	border: 1px solid #cfd6da;
	border-radius: 8px;
	box-shadow: 0 6px 22px rgba(17,24,39,.2);
	font-size: .78rem;
	font-weight: 800;
	line-height: 1.2;
	white-space: nowrap;
}
.bc-map-panel-reopen[hidden] { display: none; }
.bc-map-panel-reopen:hover,
.bc-map-panel-reopen:focus-visible { color: var(--bc-text); background: #f2f7f3; border-color: #9aa5ab; }
.bc-map-panel-reopen .bc-icon { width: 17px; height: 17px; }
.bc-map-panel-reopen__count {
	display: inline-grid;
	place-items: center;
	min-width: 23px;
	height: 20px;
	padding-inline: .35rem;
	color: #071208;
	background: var(--bc-accent);
	border-radius: 999px;
	font-size: .65rem;
	font-weight: 850;
}
.bc-map-canvas { width: 100%; height: 100%; min-height: 0; background: #dce2e5; }
.bc-map-loading {
	position: absolute;
	z-index: 6;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .65rem;
	padding: 1rem;
	color: #243036;
	background: #e8edef;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .01em;
	opacity: 1;
	visibility: visible;
	transition: opacity .16s ease, visibility .16s ease;
}
.bc-map-loading[hidden] { display: none; }
.bc-map-app--ready .bc-map-loading { opacity: 0; visibility: hidden; pointer-events: none; }
.bc-map-loading__spinner {
	width: 22px;
	height: 22px;
	border: 3px solid rgba(36,48,54,.22);
	border-top-color: var(--bc-accent);
	border-radius: 999px;
	animation: bc-map-loading-spin .7s linear infinite;
}
@keyframes bc-map-loading-spin { to { transform: rotate(360deg); } }
.bc-map-search-area {
	position: absolute;
	z-index: 5;
	top: .8rem;
	left: 50%;
	transform: translateX(-50%);
	color: var(--bc-text);
	background: #fff;
	border: 1px solid #cfd6da;
	box-shadow: 0 6px 22px rgba(17,24,39,.2);
	white-space: nowrap;
}
.bc-map-search-area[hidden] { display: none; }

/* Small local grid clusters avoid a runtime dependency on another CDN. */
.bc-map-cluster {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .5rem;
	color: #071208;
	background: var(--bc-accent);
	border: 3px solid #fff;
	border-radius: 999px;
	box-shadow: 0 4px 16px rgba(17,24,39,.32);
	font-size: .76rem;
	font-weight: 900;
	line-height: 1;
	cursor: pointer;
}
.bc-map-cluster:hover,
.bc-map-cluster:focus-visible { transform: scale(1.06); outline: 2px solid var(--bc-link); outline-offset: 2px; }

/* Provider-neutral point marker used by the independent MapLibre renderer. */
.bc-map-pin {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	padding: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
}
.bc-map-pin span {
	display: block;
	width: 15px;
	height: 15px;
	background: var(--bc-accent);
	border: 3px solid #fff;
	border-radius: 50% 50% 50% 0;
	box-shadow: 0 3px 10px rgba(17,24,39,.34);
	transform: rotate(-45deg);
}
.bc-map-pin:hover span,
.bc-map-pin:focus-visible span { background: var(--bc-accent-dark); }
.bc-map-pin:focus-visible { outline: 2px solid var(--bc-link); outline-offset: 2px; border-radius: 999px; }

/* Keep independent-renderer controls restrained inside the established map shell. */
.bc-map-canvas .maplibregl-ctrl-group {
	border-radius: 5px;
	box-shadow: 0 1px 5px rgba(17,24,39,.28);
	overflow: hidden;
}
.bc-map-canvas .maplibregl-ctrl-group button { width: 40px; height: 40px; }
.bc-map-canvas .maplibregl-ctrl-attrib {
	color: #4d5960;
	background: rgba(255,255,255,.88);
	font-size: 10px;
}
.bc-map-canvas .maplibregl-ctrl-attrib a { color: inherit; }

.bc-map-fallback { padding-block: 1.5rem; }

@media (min-width: 1280px) {
	body.bc-map-app-page {
		display: flex;
		flex-direction: column;
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
		min-height: 0;
		overflow: hidden;
	}
	.bc-map-desktop-site-header { display: block; flex: 0 0 auto; }
	.bc-map-desktop-site-header .bc-header { position: relative; top: auto; }
	body.bc-map-app-page .bc-map-page { position: relative; flex: 1 1 auto; min-height: 0; }
	.bc-map-app--panel-collapsed .bc-map-workspace { grid-template-columns: 0 minmax(0, 1fr); }
	.bc-map-app--panel-collapsed .bc-map-panel { opacity: 0; pointer-events: none; transform: translateX(-100%); }
	#bc-map-panel-close .bc-icon { transform: rotate(90deg); }
}

@media (max-width: 1279px) {
	html.bc-map-document { height: 100%; overflow: hidden; }
	body.bc-map-app-page {
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100%;
		min-height: 0;
		margin: 0;
		overflow: hidden;
		overscroll-behavior: none;
		background: #e8edef;
	}
	body.admin-bar.bc-map-app-page { top: var(--wp-admin--admin-bar--height, 46px); height: calc(100% - var(--wp-admin--admin-bar--height, 46px)); }
	.bc-map-desktop-site-header { display: none !important; }
	body.bc-map-app-page .bc-map-page {
		position: fixed;
		z-index: 1000;
		top: var(--bc-map-vv-top, 0px);
		left: var(--bc-map-vv-left, 0px);
		display: flex;
		width: var(--bc-map-vv-width, 100vw);
		height: var(--bc-map-vv-height, 100dvh);
		min-height: 0;
		overflow: hidden;
		background: #e8edef;
		isolation: isolate;
	}
	body.admin-bar.bc-map-app-page .bc-map-page {
		top: calc(var(--bc-map-vv-top, 0px) + var(--wp-admin--admin-bar--height, 46px));
		height: calc(var(--bc-map-vv-height, 100dvh) - var(--wp-admin--admin-bar--height, 46px));
	}
	body.bc-map-app-page .bc-map-app {
		display: grid;
		flex: 1 1 auto;
		grid-template-rows: auto minmax(0, 1fr);
		width: 100%;
		height: 100%;
		min-height: 0;
		overflow: hidden;
	}
	body.bc-map-app-page .bc-map-app--unavailable { grid-template-rows: auto minmax(0, 1fr); }

	.bc-map-commandbar {
		position: relative;
		z-index: 70;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: .35rem;
		min-height: calc(54px + env(safe-area-inset-top, 0px));
		padding: calc(.35rem + env(safe-area-inset-top, 0px)) .5rem .35rem;
		color: #fff;
		background: rgba(14, 19, 22, .99);
		border-bottom: 1px solid rgba(255,255,255,.12);
		box-shadow: 0 2px 12px rgba(17,24,39,.22);
	}
	.bc-map-commandbar__identity {
		align-items: center;
		gap: .5rem;
		min-width: 0;
		overflow: hidden;
	}
	.bc-map-nav-toggle {
		display: grid;
		flex: 0 0 auto;
		place-items: center;
		width: 40px;
		height: 40px;
		padding: 0;
		color: #fff;
		background: rgba(255,255,255,.055);
		border: 1px solid rgba(255,255,255,.18);
		border-radius: 9px;
		cursor: pointer;
	}
	.bc-map-nav-toggle:hover,
	.bc-map-nav-toggle:focus-visible { color: #fff; background: rgba(255,255,255,.12); }
	.bc-map-nav-toggle .bc-brand-logo__icon { width: 25px; height: 25px; flex-basis: 25px; }
	.bc-map-commandbar__identity h1 {
		min-width: 0;
		margin: 0;
		overflow: hidden;
		font-size: 1rem;
		line-height: 1.12;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.bc-map-commandbar__count { display: none; }
	.bc-map-commandbar__actions { gap: .28rem; }
	.bc-map-mobile-search-toggle { display: inline-flex; }
	.bc-map-commandbar__actions .bc-map-command {
		width: 40px;
		min-width: 40px;
		height: 40px;
		min-height: 40px;
		padding: 0;
	}
	.bc-map-command > span:not(.bc-map-command__badge),
	#bc-map-panel-toggle,
	.bc-map-about,
	.bc-map-command--directory { display: none; }
	#bc-map-near-me { display: inline-flex; }

	.bc-map-search { display: none; }
	.bc-map-mobile-search-close {
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		padding: 0;
		color: var(--bc-text);
		background: transparent;
		border: 0;
		border-radius: 8px;
	}
	.bc-map-mobile-search-close:hover,
	.bc-map-mobile-search-close:focus-visible { background: var(--bc-surface-alt); }
	.bc-map-commandbar.is-searching { grid-template-columns: minmax(0, 1fr); }
	.bc-map-commandbar.is-searching .bc-map-commandbar__identity,
	.bc-map-commandbar.is-searching .bc-map-commandbar__actions { display: none; }
	.bc-map-commandbar.is-searching .bc-map-search {
		display: flex;
		min-height: 42px;
		padding-inline: .25rem .55rem;
		border-radius: 9px;
	}
	.bc-map-commandbar.is-searching .bc-map-mobile-search-close { display: inline-flex; }
	.bc-map-commandbar.is-searching .bc-map-search > .bc-icon { display: none; }
	.bc-map-search input { min-height: 40px; padding: .42rem .45rem; font-size: 16px; }
	.bc-map-suggestions {
		top: calc(100% + .3rem);
		max-height: calc(var(--bc-map-vv-height, 100dvh) - 72px - env(safe-area-inset-bottom, 0px));
		border-radius: 9px;
	}


	.bc-map-workspace {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		grid-template-columns: none;
		width: 100%;
		height: 100%;
		min-height: 0;
		overflow: hidden;
	}
	.bc-map-canvas-wrap { order: 1; flex: 1 1 auto; min-height: 0; }
	.bc-map-panel-reopen { display: none !important; }
	.bc-map-panel {
		position: relative;
		inset: auto;
		order: 2;
		flex: 0 0 auto;
		width: 100%;
		height: calc(58px + env(safe-area-inset-bottom, 0px));
		max-width: none;
		max-height: calc(100% - 72px);
		padding-bottom: env(safe-area-inset-bottom, 0px);
		opacity: 1;
		pointer-events: auto;
		transform: none;
		background: #fff;
		border-top: 1px solid var(--bc-border);
		border-right: 0;
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -9px 28px rgba(17,24,39,.2);
		transition: height .22s ease;
	}
	.bc-map-app--panel-transitioning .bc-map-panel { will-change: height; }
	.bc-map-app--panel-dragging .bc-map-panel {
		height: var(--bc-map-panel-drag-height) !important;
		transition: none;
		will-change: height;
	}
	.bc-map-app--panel-open .bc-map-panel {
		height: min(calc(46% + env(safe-area-inset-bottom, 0px)), calc(460px + env(safe-area-inset-bottom, 0px)));
	}
	.bc-map-app--panel-expanded .bc-map-panel {
		height: min(calc(84% + env(safe-area-inset-bottom, 0px)), calc(100% - 176px));
	}
	.bc-map-panel__head {
		position: relative;
		min-height: 58px;
		padding: .65rem .55rem .45rem .85rem;
	}
	.bc-map-panel__handle {
		position: absolute;
		z-index: 3;
		top: 0;
		left: 50%;
		display: inline-flex !important;
		align-items: flex-start;
		justify-content: center;
		width: 56px;
		height: 26px;
		min-height: 26px;
		padding: 6px 0 0;
		transform: translateX(-50%);
		color: transparent;
		background: transparent;
		border: 0;
		border-radius: 999px;
		touch-action: none;
		cursor: ns-resize;
	}
	.bc-map-panel__handle span {
		display: block;
		width: 34px;
		min-width: 34px;
		height: 4px;
		padding: 0;
		background: #c5ccd0;
		border-radius: 999px;
		transition: width .16s ease, background-color .16s ease;
	}
	.bc-map-panel__handle:hover span,
	.bc-map-panel__handle:focus-visible span,
	.bc-map-app--panel-dragging .bc-map-panel__handle span { width: 40px; background: #8f999f; }
	.bc-map-panel__handle:focus-visible { outline: 2px solid var(--bc-link); outline-offset: -3px; }
	.bc-map-panel__peek { min-height: 42px; padding-top: .2rem; cursor: pointer; }
	.bc-map-panel__peek-label {
		display: inline-flex !important;
		min-width: 0 !important;
		height: auto !important;
		margin-left: auto;
		padding: 0 !important;
		color: var(--bc-link) !important;
		background: transparent !important;
		border-radius: 0 !important;
		font-size: .7rem !important;
		white-space: nowrap;
	}
	.bc-map-app--panel-open .bc-map-panel__peek-label { display: none !important; }
	.bc-map-panel__controls { display: none; }
	.bc-map-app--panel-open .bc-map-panel__controls { display: flex; }
	.bc-map-panel__size { display: inline-flex !important; }
	.bc-map-panel__size .bc-icon { transform: rotate(180deg); transition: transform .16s ease; }
	.bc-map-app--panel-expanded .bc-map-panel__size .bc-icon { transform: rotate(0deg); }
	.bc-map-app:not(.bc-map-app--panel-open) .bc-map-panel__view { visibility: hidden; pointer-events: none; }
	.bc-map-filter-fields { max-height: 42vh; }
	.bc-map-search-area {
		top: .65rem;
		min-height: 38px;
		max-width: calc(100% - 5rem);
		padding: .38rem .7rem;
		font-size: .74rem;
		border-radius: 999px;
	}
	.bc-map-fallback {
		position: absolute;
		z-index: 90;
		inset: calc(54px + env(safe-area-inset-top, 0px)) 0 0;
		overflow-y: auto;
		padding: 1.2rem;
		background: #fff;
	}
}

@media (max-width: 420px) {
	.bc-map-commandbar { padding-inline: .38rem; }
	.bc-map-commandbar__identity { gap: .38rem; }
	.bc-map-commandbar__identity h1 { font-size: .94rem; }
	.bc-map-commandbar__actions { gap: .2rem; }
	.bc-map-commandbar__actions .bc-map-command,
	.bc-map-nav-toggle { width: 38px; min-width: 38px; height: 38px; min-height: 38px; }
	.bc-map-suggestions { max-height: calc(var(--bc-map-vv-height, 100dvh) - 68px); }
	.bc-map-panel__head strong { font-size: .84rem; }
}

@media (max-width: 1279px) and (max-height: 520px) {
	.bc-map-commandbar { min-height: calc(50px + env(safe-area-inset-top, 0px)); padding-block: calc(.25rem + env(safe-area-inset-top, 0px)) .25rem; }
	.bc-map-panel { height: calc(52px + env(safe-area-inset-bottom, 0px)); }
	.bc-map-app--panel-open .bc-map-panel { height: min(calc(52% + env(safe-area-inset-bottom, 0px)), calc(290px + env(safe-area-inset-bottom, 0px))); }
	.bc-map-app--panel-expanded .bc-map-panel { height: min(calc(74% + env(safe-area-inset-bottom, 0px)), calc(100% - 120px)); }
	.bc-map-panel__head { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
	.bc-map-panel,
	.bc-map-nav-backdrop,
	.bc-map-nav-drawer,
	.bc-map-filter-disclosure .bc-icon,
	.bc-map-panel__size .bc-icon,
	.bc-map-panel__handle span,
	.bc-map-cluster { transition: none; }
	.bc-map-loading__spinner { animation: none; }
}

@media (forced-colors: active) {
	.bc-map-panel__handle span { background: ButtonText; }
	.bc-map-panel__handle:focus-visible { outline-color: Highlight; }
}

/* Preserve normal site navigation and the existing directory fallback when the map application cannot run. */
html:not(.bc-js) body.bc-map-app-page {
	position: static;
	display: block;
	width: auto;
	height: auto;
	min-height: 100vh;
	overflow: auto;
	overscroll-behavior: auto;
	background: var(--bc-surface);
}
html:not(.bc-js) .bc-map-desktop-site-header { display: block !important; }
html:not(.bc-js) body.bc-map-app-page .bc-map-page {
	position: static;
	display: block;
	width: 100%;
	height: auto;
	min-height: 55vh;
	overflow: visible;
}
html:not(.bc-js) .bc-map-app { display: none; }
