/**
 * Kort v2 — immersive map-app til telefon og tablet.
 *
 * Alle selectors er isoleret til Kort v2. Kortet er den permanente canvas;
 * topbar, filtre, destination og detaljer er progressive overlays.
 */

html.beamii-shell-map-view,
html.beamii-shell-map-view body.beamii-view-map-v2,
body.beamii-view-map-v2 {
	margin: 0 !important;
	height: 100% !important;
	min-height: 100% !important;
	width: 100% !important;
	max-width: none !important;
	overflow: hidden !important;
	overscroll-behavior: none;
	background: #dce8ef;
}

/* Den globale dokument-scrollregel indlæses efter page-CSS. Kort v2 er den
 * særlige viewport-låste undtagelse; kun egne paneler må scrolle. */
html.beamii-shell-map-view:not(.beamii-modal-open):not(.is-lock-scroll) body.beamii-view-map-v2:not(.is-lock-scroll) {
	overflow: hidden !important;
}

.app.beamii-map-v2 {
	--map-v2-place: #1565c0;
	--map-v2-association: #6f56a6;
	--map-v2-route: #d6782a;
	--map-v2-ink: #132c43;
	--map-v2-muted: #607488;
	--map-v2-surface: rgba(255, 255, 255, .95);
	--map-v2-nav-h: var(--beamii-map-sheet-bottom-offset, var(--beamii-shell-bottomnav-layout-h, 74px));
	--map-v2-preview-h: 0px;
	--map-v2-topbar-bottom: calc(env(safe-area-inset-top, 0px) + 54px);
	--map-v2-controls-bottom: calc(var(--map-v2-topbar-bottom) + 54px);
	--map-v2-side-left: max(8px, env(safe-area-inset-left, 0px));
	--map-v2-side-right: max(8px, env(safe-area-inset-right, 0px));
	position: fixed !important;
	z-index: 0;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: var(--beamii-map-shell-h, var(--beamii-app-viewport-h, 100dvh)) !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	overscroll-behavior: none;
	background: #dce8ef;
	/* Samme som /kort/: fixed bottomnav/FABs må være viewport-forankrede. */
	contain: none;
}

html.beamii-shell-map-view body.beamii-view-map-v2 .app.beamii-map-v2 {
	inset: 0 !important;
	height: var(--beamii-map-shell-h, var(--beamii-app-viewport-h, 100dvh)) !important;
	min-height: 0 !important;
	max-height: none !important;
}

@supports not (height: 100dvh) {
	body.beamii-view-map-v2,
	html.beamii-shell-map-view body.beamii-view-map-v2 .app.beamii-map-v2 {
		height: var(--beamii-map-shell-h, var(--beamii-app-viewport-h, 100vh)) !important;
	}
}

.beamii-map-v2__map,
.beamii-map-v2__map #BeaMiiMapV2 {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 100%;
}

.beamii-map-v2__map {
	z-index: 1;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
}

.beamii-map-v2__topbar {
	position: absolute;
	z-index: 760;
	top: 0;
	right: 0;
	left: 0;
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) 46px;
	align-items: end;
	height: calc(52px + env(safe-area-inset-top, 0px));
	padding: env(safe-area-inset-top, 0px) var(--map-v2-side-right) 4px var(--map-v2-side-left);
	border-bottom: 1px solid rgba(19, 44, 67, .09);
	background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(255, 255, 255, .90));
	box-shadow: 0 5px 18px rgba(19, 44, 67, .09);
	-webkit-backdrop-filter: blur(18px) saturate(1.2);
	backdrop-filter: blur(18px) saturate(1.2);
}

.beamii-map-v2__back,
.beamii-map-v2__topbar-search {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	align-self: end;
	padding: 0;
	border: 0;
	border-radius: 14px;
	color: #244d70;
	background: transparent;
	font: inherit;
	font-size: 18px;
	text-decoration: none;
	cursor: pointer;
}

.beamii-map-v2__topbar-search {
	justify-self: end;
}

.beamii-map-v2__back:active,
.beamii-map-v2__topbar-search:active {
	background: rgba(36, 77, 112, .09);
}

.beamii-map-v2__topbar-title {
	display: inline-flex;
	min-width: 0;
	height: 44px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--map-v2-ink);
	font-size: 16px;
	font-weight: 850;
}

.beamii-map-v2__topbar-mark {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border-radius: 11px;
	color: #17608b;
	background: #e4f2fb;
	font-size: 14px;
}

.beamii-map-v2__controls {
	position: absolute;
	z-index: 700;
	top: calc(var(--map-v2-topbar-bottom) + 7px);
	left: var(--map-v2-side-left);
	max-width: calc(100% - var(--map-v2-side-left) - var(--map-v2-side-right));
	pointer-events: none;
}

.beamii-map-v2__search-shell {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) 42px auto;
	width: min(520px, calc(100vw - var(--map-v2-side-left) - var(--map-v2-side-right)));
	min-height: 48px;
	align-items: center;
	padding: 0 4px 0 7px;
	border: 1px solid rgba(19, 44, 67, .12);
	border-radius: 17px;
	color: #36566f;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 10px 28px rgba(19, 44, 67, .18);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	pointer-events: auto;
}

.beamii-map-v2__search-shell[hidden] {
	display: none;
}

.beamii-map-v2__search-shell > i {
	justify-self: center;
	font-size: 15px;
}

.beamii-map-v2__search {
	display: flex;
	min-width: 0;
	align-items: center;
}

.beamii-map-v2__search input {
	width: 100%;
	min-width: 0;
	height: 46px;
	padding: 0 5px;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--map-v2-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
}

.beamii-map-v2__search input::placeholder {
	color: #728599;
	opacity: 1;
}

.beamii-map-v2__search-clear,
.beamii-map-v2__search-close {
	display: grid;
	min-width: 42px;
	height: 44px;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 13px;
	color: #536d83;
	background: transparent;
	font: inherit;
	cursor: pointer;
}

.beamii-map-v2__search-clear[hidden] {
	display: none;
}

.beamii-map-v2__search-close {
	min-width: 48px;
	padding: 0 8px;
	color: #1c587f;
	font-size: 12px;
	font-weight: 850;
}

.beamii-map-v2__layers,
.beamii-map-v2__categories {
	display: flex;
	width: min-content;
	max-width: calc(100vw - var(--map-v2-side-left) - var(--map-v2-side-right));
	align-items: center;
	gap: 6px;
	overflow-x: auto;
	padding: 1px 2px 5px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-inline: contain;
	pointer-events: auto;
}

.beamii-map-v2__layers {
	margin-top: 0;
}

.beamii-map-v2.is-search-open .beamii-map-v2__layers {
	margin-top: 7px;
}

.beamii-map-v2__categories {
	margin-top: 2px;
}

.beamii-map-v2__layers::-webkit-scrollbar,
.beamii-map-v2__categories::-webkit-scrollbar {
	display: none;
}

.beamii-map-v2__layer,
.beamii-map-v2__category {
	flex: 0 0 auto;
	display: inline-flex;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0 13px;
	border: 1px solid rgba(19, 44, 67, .10);
	border-radius: 14px;
	color: #354c62;
	background: var(--map-v2-surface);
	box-shadow: 0 5px 16px rgba(19, 44, 67, .13);
	font: inherit;
	font-size: 12px;
	font-weight: 850;
	white-space: nowrap;
	cursor: pointer;
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

.beamii-map-v2__category {
	min-height: 38px;
	padding-inline: 12px;
	border-radius: 13px;
	font-size: 11px;
}

.beamii-map-v2__category span {
	opacity: .7;
}

.beamii-map-v2__layer.is-active,
.beamii-map-v2__category.is-active {
	border-color: #1d547b;
	color: #fff;
	background: #1d547b;
	box-shadow: 0 7px 18px rgba(29, 84, 123, .23);
}

.beamii-map-v2__layer[data-map-v2-layer="place"].is-active { border-color: var(--map-v2-place); background: var(--map-v2-place); }
.beamii-map-v2__layer[data-map-v2-layer="association"].is-active { border-color: var(--map-v2-association); background: var(--map-v2-association); }
.beamii-map-v2__layer[data-map-v2-layer="route"].is-active { border-color: var(--map-v2-route); background: var(--map-v2-route); }

.beamii-map-v2__status {
	position: absolute;
	z-index: 690;
	top: calc(var(--map-v2-controls-bottom) + 4px);
	left: var(--map-v2-side-left);
	display: inline-flex;
	min-height: 32px;
	max-width: calc(100vw - 92px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
	align-items: center;
	gap: 7px;
	padding: 6px 11px;
	border-radius: 999px;
	color: #3b5268;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 5px 17px rgba(19, 44, 67, .14);
	font-size: 11px;
	font-weight: 800;
	white-space: nowrap;
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
}

.beamii-map-v2__status[hidden] { display: none; }
.beamii-map-v2__status.is-ready { opacity: 0; transform: translateY(-5px); }

.beamii-map-v2 .fab-stack {
	position: fixed !important;
	z-index: 730 !important;
	top: auto !important;
	right: max(14px, var(--beamii-shell-safe-right, env(safe-area-inset-right, 0px))) !important;
	bottom: calc(var(--map-v2-nav-h) + var(--map-v2-preview-h) + 14px) !important;
	left: auto !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	pointer-events: auto;
	transition: bottom .2s ease, opacity .2s ease;
}

.beamii-map-v2 .beamii-map-layers__panel {
	position: absolute !important;
	top: 0 !important;
	right: calc(100% + 12px) !important;
	bottom: auto !important;
}

.beamii-map-v2__preview {
	position: absolute;
	z-index: 750;
	right: var(--map-v2-side-right);
	bottom: calc(var(--map-v2-nav-h) + 7px);
	left: var(--map-v2-side-left);
	display: grid;
	gap: 5px;
	min-height: 104px;
	max-height: 118px;
	padding: 7px;
	border: 1px solid rgba(19, 44, 67, .11);
	border-radius: 20px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 12px 34px rgba(19, 44, 67, .23);
	-webkit-backdrop-filter: blur(18px) saturate(1.15);
	backdrop-filter: blur(18px) saturate(1.15);
	transition: opacity .2s ease, transform .2s ease;
}

.beamii-map-v2__preview[hidden] { display: none; }

.beamii-map-v2__preview-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 38px;
	align-items: center;
	gap: 2px;
}

.beamii-map-v2__preview-copy {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) 24px;
	min-width: 0;
	min-height: 42px;
	align-items: center;
	gap: 8px;
	padding: 0;
	border: 0;
	color: inherit;
	background: transparent;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.beamii-map-v2__preview-icon {
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	border-radius: 12px;
	color: #fff;
	background: var(--map-v2-place);
	font-size: 14px;
}

.beamii-map-v2__preview[data-entity-kind="association"] .beamii-map-v2__preview-icon { background: var(--map-v2-association); }
.beamii-map-v2__preview[data-entity-kind="route"] .beamii-map-v2__preview-icon { background: var(--map-v2-route); }

.beamii-map-v2__preview-text {
	display: block;
	min-width: 0;
}

.beamii-map-v2__preview-text strong,
.beamii-map-v2__preview-text span {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.beamii-map-v2__preview-text strong {
	color: var(--map-v2-ink);
	font-size: 14px;
	font-weight: 880;
	line-height: 1.2;
}

.beamii-map-v2__preview-text span {
	margin-top: 2px;
	color: var(--map-v2-muted);
	font-size: 11px;
	font-weight: 750;
}

.beamii-map-v2__preview-chevron {
	justify-self: center;
	color: #6a7d8e;
	font-size: 12px;
}

.beamii-map-v2__selection-clear {
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 12px;
	color: #62778a;
	background: #edf3f7;
	font: inherit;
	cursor: pointer;
}

.beamii-map-v2__route {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 7px;
}

.beamii-map-v2__route[hidden] { display: none; }

.beamii-map-v2__route-modes {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 2px;
	border-radius: 14px;
	background: #edf3f7;
}

.beamii-map-v2__route-modes button,
.beamii-map-v2__route-open {
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0 11px;
	border: 0;
	border-radius: 12px;
	font: inherit;
	font-size: 12px;
	font-weight: 850;
	white-space: nowrap;
	cursor: pointer;
}

.beamii-map-v2__route-modes button {
	color: #34516a;
	background: transparent;
}

.beamii-map-v2__route-modes button.is-active {
	color: #fff;
	background: #2d698f;
	box-shadow: 0 4px 11px rgba(37, 98, 139, .20);
}

.beamii-map-v2__route-open {
	width: 100%;
	color: #fff;
	background: #183f70;
}

.beamii-map-v2__route-open[hidden] { display: none; }

.beamii-map-v2.is-current-selection .beamii-map-v2__route-modes { display: none; }
.beamii-map-v2.is-current-selection .beamii-map-v2__route { grid-template-columns: 1fr; }

.beamii-map-v2__panel-backdrop {
	position: absolute;
	z-index: 770;
	inset: 0 0 var(--map-v2-nav-h);
	background: rgba(13, 31, 47, .24);
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s ease;
}

.beamii-map-v2__panel-backdrop[hidden] { display: none; }

.beamii-map-v2.is-panel-expanded .beamii-map-v2__panel-backdrop {
	opacity: 1;
	pointer-events: auto;
}

.beamii-map-v2__panel {
	--map-v2-panel-drag-y: 0px;
	position: absolute;
	z-index: 780;
	right: var(--map-v2-side-right);
	bottom: calc(var(--map-v2-nav-h) + 6px);
	left: var(--map-v2-side-left);
	display: flex;
	height: min(44%, 360px);
	min-height: 240px;
	max-height: calc(100% - var(--map-v2-topbar-bottom) - var(--map-v2-nav-h) - 14px);
	flex-direction: column;
	border: 1px solid rgba(19, 44, 67, .11);
	border-radius: 22px 22px 18px 18px;
	background: rgba(255, 255, 255, .985);
	box-shadow: 0 16px 46px rgba(19, 44, 67, .28);
	-webkit-backdrop-filter: blur(20px) saturate(1.12);
	backdrop-filter: blur(20px) saturate(1.12);
	transform: translateY(calc(115% + var(--map-v2-panel-drag-y)));
	visibility: hidden;
	pointer-events: none;
	transition: transform 280ms cubic-bezier(.22, .8, .24, 1), height .24s ease, visibility 0s linear .28s;
}

.beamii-map-v2__panel[data-map-v2-panel-state="medium"],
.beamii-map-v2__panel[data-map-v2-panel-state="expanded"] {
	transform: translateY(var(--map-v2-panel-drag-y));
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.beamii-map-v2__panel[data-map-v2-panel-state="expanded"] {
	height: calc(100% - var(--map-v2-topbar-bottom) - var(--map-v2-nav-h) - 14px);
}

.beamii-map-v2.is-panel-open .beamii-map-v2__preview {
	opacity: 0;
	transform: translateY(16px);
	pointer-events: none;
}

.beamii-map-v2__panel-handle {
	flex: 0 0 18px;
	display: grid;
	place-items: center;
	touch-action: none;
	cursor: grab;
}

.beamii-map-v2__panel-handle span {
	display: block;
	width: 36px;
	height: 4px;
	border-radius: 999px;
	background: rgba(19, 44, 67, .18);
}

.beamii-map-v2__panel-head {
	flex: 0 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	min-height: 54px;
	padding: 0 10px 8px 14px;
	border-bottom: 1px solid rgba(19, 44, 67, .08);
}

.beamii-map-v2__panel-kicker {
	display: block;
	margin-bottom: 2px;
	color: #748699;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.beamii-map-v2__panel-head h2 {
	overflow: hidden;
	margin: 0;
	color: var(--map-v2-ink);
	font-size: 15px;
	font-weight: 880;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.beamii-map-v2__panel-actions {
	display: flex;
	gap: 3px;
}

.beamii-map-v2__panel-actions button {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 13px;
	color: #3b5870;
	background: #eef4f7;
	font: inherit;
	cursor: pointer;
}

.beamii-map-v2__panel-content {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 8px 9px calc(16px + env(safe-area-inset-bottom, 0px));
}

.beamii-map-v2__detail {
	display: grid;
	gap: 8px;
	margin-bottom: 9px;
	padding: 10px;
	border-radius: 16px;
	background: #f2f7fa;
}

.beamii-map-v2__detail[hidden] { display: none; }

.beamii-map-v2__presence {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 6px;
	padding: 5px 9px;
	border-radius: 999px;
	color: #146042;
	background: #e4f5ec;
	font-size: 11px;
	font-weight: 850;
}

.beamii-map-v2__presence[hidden] { display: none; }

.beamii-map-v2__details-status {
	display: grid;
	gap: 7px;
}

.beamii-map-v2__selected-route-status,
.beamii-map-v2__route-summary {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 7px;
	padding: 9px 10px;
	border-radius: 12px;
	color: #4e667b;
	background: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.35;
}

.beamii-map-v2__selected-route-status[hidden],
.beamii-map-v2__route-summary:empty { display: none; }
.beamii-map-v2__selected-route-status { color: #21563f; background: #e8f6ef; }
.beamii-map-v2__selected-route-status.is-error { color: #8a321f; background: #fff0eb; }
.beamii-map-v2__selected-route-status.is-loading { color: #52697c; background: #edf3f7; }

.beamii-map-v2__entity-open {
	display: flex;
	min-height: 44px;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 0 12px;
	border-radius: 13px;
	color: #1d567d;
	background: #e6f1f8;
	font-size: 12px;
	font-weight: 850;
	text-decoration: none;
}

.beamii-map-v2__results {
	display: grid;
	gap: 7px;
	padding: 1px;
}

.beamii-map-v2__loading,
.beamii-map-v2__empty {
	display: grid;
	min-height: 130px;
	place-content: center;
	justify-items: center;
	gap: 9px;
	padding: 22px;
	color: #64788b;
	text-align: center;
}

.beamii-map-v2__empty i { font-size: 24px; }
.beamii-map-v2__empty h3,
.beamii-map-v2__empty p,
.beamii-map-v2__list-more p { margin: 0; }
.beamii-map-v2__empty h3 { color: var(--map-v2-ink); font-size: 15px; }
.beamii-map-v2__empty p,
.beamii-map-v2__list-more p { max-width: 34ch; font-size: 12px; line-height: 1.45; }

.beamii-map-v2__empty-action,
.beamii-map-v2__list-more button {
	min-height: 44px;
	padding: 0 16px;
	border: 0;
	border-radius: 13px;
	color: #fff;
	background: #1d567d;
	font: inherit;
	font-size: 12px;
	font-weight: 850;
	cursor: pointer;
}

.beamii-map-v2__list-more {
	display: grid;
	justify-items: center;
	gap: 9px;
	padding: 10px 12px 16px;
	color: #64788b;
	text-align: center;
}

.beamii-map-v2__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 42px;
	align-items: center;
	gap: 7px;
	min-width: 0;
	padding: 8px;
	border: 1px solid rgba(19, 44, 67, .08);
	border-radius: 15px;
	background: #fff;
}

.beamii-map-v2__card.is-selected { border-color: #8ba8bd; box-shadow: 0 4px 14px rgba(19, 44, 67, .09); }

.beamii-map-v2__card-select {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	gap: 9px;
	min-width: 0;
	min-height: 44px;
	padding: 0;
	border: 0;
	color: inherit;
	background: transparent;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.beamii-map-v2__card-icon {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border-radius: 12px;
	color: #fff;
	background: #64748b;
	font-size: 15px;
}

.beamii-map-v2__card-icon--image {
	overflow: hidden;
	background: #eef3f7;
}

.beamii-map-v2__card-icon--image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.beamii-map-v2__card[data-entity-kind="place"] .beamii-map-v2__card-icon { background: var(--map-v2-place); }
.beamii-map-v2__card[data-entity-kind="association"] .beamii-map-v2__card-icon { background: var(--map-v2-association); }
.beamii-map-v2__card[data-entity-kind="route"] .beamii-map-v2__card-icon { background: var(--map-v2-route); }
.beamii-map-v2__card-copy { min-width: 0; }

.beamii-map-v2__card-kicker,
.beamii-map-v2__card-meta {
	display: block;
	overflow: hidden;
	color: #64748b;
	font-size: 10px;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.beamii-map-v2__card-title {
	display: block;
	overflow: hidden;
	margin: 2px 0;
	color: var(--map-v2-ink);
	font-size: 13px;
	font-weight: 850;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.beamii-map-v2__card-open {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border-radius: 13px;
	color: #214765;
	background: #edf4f8;
	text-decoration: none;
}

.beamii-map-v2-marker {
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	border: 3px solid #fff;
	border-radius: 50% 50% 50% 12px;
	color: #fff;
	background: #64748b;
	box-shadow: 0 4px 12px rgba(15, 23, 42, .3);
	font-size: 13px;
	transform: rotate(-45deg);
}

.beamii-map-v2-marker > i,
.beamii-map-v2-marker > span { transform: rotate(45deg); }
.beamii-map-v2-marker--place { background: var(--map-v2-place); }
.beamii-map-v2-marker--association { background: var(--map-v2-association); }
.beamii-map-v2-marker--route { background: var(--map-v2-route); }
.beamii-map-v2-marker--cluster { width: 42px; height: 42px; border-radius: 50%; background: #1d547b; font-size: 12px; font-weight: 900; }
.beamii-map-v2-marker.is-selected { width: 42px; height: 42px; outline: 3px solid rgba(255, 255, 255, .75); }
.beamii-map-v2-marker.is-current { background: #147a54; outline: 4px solid rgba(20, 122, 84, .2); box-shadow: 0 5px 16px rgba(20, 122, 84, .38); }

.beamii-map-v2-user-location {
	display: block;
	width: 18px;
	height: 18px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: #1473e6;
	box-shadow: 0 0 0 5px rgba(20, 115, 230, .18), 0 4px 12px rgba(15, 23, 42, .24);
}

.beamii-map-v2-route-endpoint-wrap { border: 0; background: transparent; }

.beamii-map-v2-route-endpoint {
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	border: 3px solid #fff;
	border-radius: 50%;
	color: #fff;
	background: #155f8d;
	box-shadow: 0 4px 12px rgba(20, 52, 75, .32);
	font-size: 14px;
}

.beamii-map-v2-route-endpoint.is-start { background: #15815f; }
.beamii-map-v2-route-endpoint.is-finish { background: #d95f1b; }
.beamii-map-v2-route-endpoint.is-loop { background: #ef7f1a; }


.beamii-map-v2__back:focus-visible,
.beamii-map-v2__topbar-search:focus-visible,
.beamii-map-v2__search-clear:focus-visible,
.beamii-map-v2__search-close:focus-visible,
.beamii-map-v2__layer:focus-visible,
.beamii-map-v2__category:focus-visible,
.beamii-map-v2__preview-copy:focus-visible,
.beamii-map-v2__selection-clear:focus-visible,
.beamii-map-v2__route-modes button:focus-visible,
.beamii-map-v2__route-open:focus-visible,
.beamii-map-v2__panel-actions button:focus-visible,
.beamii-map-v2__entity-open:focus-visible,
.beamii-map-v2__card-select:focus-visible,
.beamii-map-v2__card-open:focus-visible {
	outline: 3px solid rgba(8, 120, 183, .28);
	outline-offset: 2px;
}

.beamii-map-v2.is-keyboard-open .beamii-map-v2__topbar,
.beamii-map-v2.is-keyboard-open .beamii-map-v2__layers,
.beamii-map-v2.is-keyboard-open .beamii-map-v2__categories,
.beamii-map-v2.is-keyboard-open > .beamii-app-bottomnav,
.beamii-map-v2.is-keyboard-open .fab-stack,
.beamii-map-v2.is-keyboard-open .beamii-map-v2__preview {
	opacity: 0 !important;
	pointer-events: none !important;
}

.beamii-map-v2.is-keyboard-open {
	--map-v2-nav-h: 0px;
	--map-v2-preview-h: 0px;
	--map-v2-topbar-bottom: 0px;
}

.beamii-map-v2.is-keyboard-open .beamii-map-v2__controls {
	top: calc(env(safe-area-inset-top, 0px) + 5px);
}

.beamii-map-v2.is-keyboard-open .beamii-map-v2__panel {
	bottom: 5px;
	height: calc(100% - 64px - env(safe-area-inset-top, 0px));
	max-height: calc(100% - 64px - env(safe-area-inset-top, 0px));
}

@media (min-width: 760px) {
	.app.beamii-map-v2 {
		--map-v2-side-left: max(16px, env(safe-area-inset-left, 0px));
		--map-v2-side-right: max(16px, env(safe-area-inset-right, 0px));
	}

	.beamii-map-v2__controls {
		max-width: min(650px, calc(100% - 118px));
	}

	.beamii-map-v2__search-shell {
		width: min(560px, calc(100vw - 150px));
	}

	.beamii-map-v2__layers,
	.beamii-map-v2__categories {
		max-width: min(650px, calc(100vw - 130px));
	}

	.beamii-map-v2__preview {
		right: auto;
		width: min(390px, calc(100vw - 32px));
		bottom: calc(var(--map-v2-nav-h) + 14px);
		left: var(--map-v2-side-left);
	}

	.beamii-map-v2__panel {
		top: calc(var(--map-v2-controls-bottom) + 8px);
		right: auto;
		bottom: calc(var(--map-v2-nav-h) + 14px);
		left: var(--map-v2-side-left);
		width: min(390px, calc(100vw - 32px));
		height: auto;
		min-height: 300px;
		max-height: min(62%, 560px);
		border-radius: 22px;
		transform: translateX(calc(-115% - var(--map-v2-panel-drag-y)));
	}

	.beamii-map-v2__panel[data-map-v2-panel-state="medium"],
	.beamii-map-v2__panel[data-map-v2-panel-state="expanded"] {
		transform: translateX(0);
	}

	.beamii-map-v2__panel[data-map-v2-panel-state="expanded"] {
		height: auto;
		max-height: calc(100% - var(--map-v2-controls-bottom) - var(--map-v2-nav-h) - 14px);
	}

	.beamii-map-v2__panel-backdrop { display: none !important; }

}

@media (orientation: landscape) and (max-height: 620px) {
	.beamii-map-v2__topbar {
		height: calc(48px + env(safe-area-inset-top, 0px));
		padding-bottom: 2px;
	}

	.app.beamii-map-v2 { --map-v2-topbar-bottom: calc(env(safe-area-inset-top, 0px) + 48px); }

	.beamii-map-v2__controls { top: calc(var(--map-v2-topbar-bottom) + 5px); }
	.beamii-map-v2__layers { max-width: calc(100vw - 76px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)); }
	.beamii-map-v2__layer { min-height: 40px; }
	.beamii-map-v2__preview { width: min(390px, calc(100vw - 92px)); min-height: 100px; }
	.beamii-map-v2__panel { top: calc(var(--map-v2-controls-bottom) + 7px); max-height: calc(100% - var(--map-v2-controls-bottom) - var(--map-v2-nav-h) - 14px); }
}

@media (orientation: landscape) and (max-height: 620px) and (min-width: 760px) {
	.beamii-map-v2__controls {
		width: calc(50% - 20px);
		max-width: calc(50% - 20px);
	}

	.beamii-map-v2__search-shell,
	.beamii-map-v2__layers,
	.beamii-map-v2__categories {
		width: 100%;
		max-width: 100%;
	}

	.beamii-map-v2__panel,
	.beamii-map-v2__panel[data-map-v2-panel-state="expanded"] {
		top: calc(var(--map-v2-topbar-bottom) + 7px);
		right: var(--map-v2-side-right);
		bottom: calc(var(--map-v2-nav-h) + 7px);
		left: auto;
		width: min(390px, calc(50vw - 24px));
		height: auto;
		min-height: 0;
		max-height: calc(100% - var(--map-v2-topbar-bottom) - var(--map-v2-nav-h) - 14px);
	}
}

@media (max-width: 374px) {
	.beamii-map-v2__layer { padding-inline: 11px; }
	.beamii-map-v2__layer i { display: none; }
	.beamii-map-v2__route-modes button,
	.beamii-map-v2__route-open { padding-inline: 9px; }
	.beamii-map-v2__preview-text strong { font-size: 13px; }
}


/* =====================================================
   Kort v2 — samme /kort/-shell på mobilweb OG installeret PWA.
   App-shell ejer viewport, safe-area og bundnavigation i alle display modes.
===================================================== */
body.beamii-view-map-v2 .app.beamii-map-v2,
html.beamii-shell-map-view body.beamii-view-map-v2 .app.beamii-map-v2 {
	--map-v2-nav-h: var(--beamii-map-sheet-bottom-offset, var(--beamii-shell-bottomnav-layout-h, 74px));
	inset: 0 !important;
	height: var(--beamii-map-shell-h, var(--beamii-app-viewport-h, 100dvh)) !important;
	min-height: 0 !important;
	max-height: none !important;
	contain: none;
}

/* Leaflet-attribution skal ikke være en synlig del af Kort v2. Controlleren
 * opretter den ikke; dette er også guard mod stale/cached Leaflet-DOM. */
body.beamii-view-map-v2 #BeaMiiMapV2 .leaflet-control-attribution,
html.beamii-shell-map-view body.beamii-view-map-v2 #BeaMiiMapV2 .leaflet-control-attribution {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.beamii-map-v2__status,
	.beamii-map-v2__preview,
	.beamii-map-v2__panel,
	.beamii-map-v2__panel-backdrop,
	html.beamii-shell-map-view body.beamii-view-map-v2 .app.beamii-map-v2 .fab-stack {
		transition: none;
	}
}
