.csp-map-skip {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 100000;
	padding: 10px 14px;
	color: #fff !important;
	background: #520f7d;
	border-radius: 10px;
	transform: translateY(-160%);
}

.csp-map-skip:focus { transform: translateY(0); }

#csp-map-mvp {
	--csp-map-purple: #520f7d;
	--csp-map-purple-hover: #3f0b61;
	--csp-map-purple-soft: #f4eafa;
	--csp-map-teal: #3ccec2;
	--csp-map-teal-ink: #08766f;
	--csp-map-blue: #4074e9;
	--csp-map-gold: #f7c143;
	--csp-map-ink: #101828;
	--csp-map-muted: #667085;
	--csp-map-canvas: #f7f8fc;
	--csp-map-map: #f1f3f9;
	--csp-map-surface: #fff;
	--csp-map-border: #e4e7ec;
	--csp-map-focus: #4074e9;
	--csp-map-shadow: 0 18px 48px rgba(82, 15, 125, .12);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	min-height: calc(100svh - 96px);
	margin: 0;
	overflow: hidden;
	color: var(--csp-map-ink);
	background: var(--csp-map-canvas);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

#csp-map-mvp *,
#csp-map-mvp *::before,
#csp-map-mvp *::after { box-sizing: border-box; }

#csp-map-mvp button,
#csp-map-mvp input,
#csp-map-mvp textarea { margin: 0; font: inherit; }

#csp-map-mvp button,
#csp-map-mvp a { -webkit-tap-highlight-color: transparent; }

#csp-map-mvp svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

#csp-map-mvp [hidden] { display: none !important; }

.csp-map-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.csp-map-heading {
	display: grid;
	grid-template-columns: minmax(250px, .8fr) minmax(340px, 1.7fr);
	align-items: end;
	gap: 34px;
	padding: 28px 28px 16px;
	background: var(--csp-map-canvas);
}

.csp-map-intro h1 {
	margin: 0 0 4px !important;
	color: var(--csp-map-ink) !important;
	font-size: clamp(28px, 3vw, 38px) !important;
	font-weight: 650 !important;
	line-height: 1.08 !important;
	letter-spacing: -.035em !important;
}

.csp-map-intro p {
	margin: 0 !important;
	color: var(--csp-map-muted) !important;
	font-size: 14px;
}

.csp-map-search {
	display: flex;
	align-items: center;
	gap: 11px;
	min-height: 52px;
	padding: 0 17px;
	background: var(--csp-map-surface);
	border: 1px solid var(--csp-map-border);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(16, 24, 40, .05);
}

.csp-map-search:focus-within {
	outline: 3px solid rgba(64, 116, 233, .25);
	border-color: var(--csp-map-focus);
}

.csp-map-search > svg { flex: 0 0 auto; color: var(--csp-map-muted); }

.csp-map-search input {
	width: 100%;
	min-width: 0;
	min-height: 44px;
	padding: 12px 0 !important;
	color: var(--csp-map-ink) !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
}

.csp-map-search input::placeholder { color: #98a2b3; opacity: 1; }
.csp-map-searchhint { display: grid; color: var(--csp-map-muted); }

.csp-map-filterbar {
	position: relative;
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	padding: 0 28px 18px;
	background: var(--csp-map-canvas);
}

.csp-map-layers {
	display: inline-grid;
	grid-template-columns: 1fr 1fr;
	padding: 3px;
	background: #eaf7f7;
	border: 1px solid #cbe9e7;
	border-radius: 13px;
}

.csp-map-layer {
	min-height: 44px;
	padding: 7px 14px !important;
	color: #315b60 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 9px !important;
	box-shadow: none !important;
	font-size: 14px;
	font-weight: 650;
	cursor: pointer;
}

.csp-map-layer[aria-pressed="true"] {
	color: #fff !important;
	background: #087f87 !important;
	box-shadow: 0 4px 10px rgba(8, 127, 135, .18) !important;
}

.csp-map-memberopen {
	display: inline-flex !important;
	align-items: center;
	gap: 7px;
	min-height: 44px;
	margin-left: auto !important;
	padding: 9px 14px !important;
	color: #087f87 !important;
	background: #fff !important;
	border: 1px solid #b9dddc !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	font-size: 14px;
	font-weight: 650;
	cursor: pointer;
}

.csp-map-memberopen:hover { background: #f1fbfa !important; border-color: #79c5c2 !important; }

.csp-map-personsettings {
	position: relative;
	z-index: 18;
	width: min(880px, calc(100% - 56px));
	margin: 0 28px 22px auto;
	padding: 24px;
	background: #fff;
	border: 1px solid #d7e6e6;
	border-radius: 18px;
	box-shadow: 0 20px 45px rgba(19, 52, 59, .12);
}

.csp-map-personsettings-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
}

.csp-map-eyebrow {
	display: block;
	margin-bottom: 4px;
	color: #087f87;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.csp-map-personsettings h2 {
	margin: 0 !important;
	color: #102a35 !important;
	font-size: 24px !important;
	font-weight: 680 !important;
	line-height: 1.15 !important;
	letter-spacing: -.025em !important;
}

.csp-map-panelclose,
.csp-map-personcard-close {
	display: grid !important;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0 !important;
	color: #527078 !important;
	background: #f5f9f9 !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	cursor: pointer;
}

.csp-map-personform { display: grid; gap: 18px; }

.csp-map-personenable {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 16px 18px;
	background: #f2fafa;
	border: 1px solid #d5eeee;
	border-radius: 14px;
}

.csp-map-personenable strong { display: block; color: #102a35; font-size: 15px; }
.csp-map-personenable div > span { display: block; margin-top: 3px; color: #60777d; font-size: 12px; }

.csp-map-switch {
	position: relative;
	flex: 0 0 auto;
	width: 58px;
	height: 44px;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 18px !important;
	box-shadow: none !important;
	cursor: pointer;
}

.csp-map-switch::before {
	content: "";
	position: absolute;
	top: 6px;
	left: 2px;
	width: 54px;
	height: 32px;
	background: #b6c6c9;
	border-radius: 18px;
}

.csp-map-switch > span:first-child {
	position: absolute;
	top: 10px;
	left: 6px;
	width: 24px;
	height: 24px;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 5px rgba(16, 42, 53, .2);
	transition: transform .16s ease;
}

.csp-map-switch[aria-checked="true"]::before { background: #087f87; }
.csp-map-switch[aria-checked="true"] > span:first-child { transform: translateX(22px); }

.csp-map-personfields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.csp-map-personfields[data-enabled="false"] { opacity: .48; }
.csp-map-personfields label { display: grid; gap: 7px; color: #294950; font-size: 13px; font-weight: 650; }

.csp-map-personfields input,
.csp-map-personfields textarea {
	width: 100%;
	min-height: 46px;
	padding: 11px 13px !important;
	color: #102a35 !important;
	background: #fff !important;
	border: 1px solid #cfdfe0 !important;
	border-radius: 11px !important;
	box-shadow: none !important;
	outline: 0 !important;
	font-size: 14px;
	font-weight: 450;
	resize: vertical;
}

.csp-map-personfields input:focus,
.csp-map-personfields textarea:focus { border-color: #087f87 !important; box-shadow: 0 0 0 3px rgba(8, 127, 135, .14) !important; }
.csp-map-persondescription { grid-column: 1 / -1; position: relative; }
.csp-map-persondescription small { position: absolute; right: 10px; bottom: 8px; color: #789096; font-size: 11px; font-weight: 500; }

.csp-map-consentcheck {
	grid-column: 1 / -1;
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	width: 100%;
	min-height: 44px;
	padding: 4px 0 !important;
	color: #294950 !important;
	text-align: left;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.csp-map-consentbox {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	color: transparent;
	background: #fff;
	border: 1px solid #9db9bc;
	border-radius: 7px;
}

.csp-map-consentcheck[aria-checked="true"] .csp-map-consentbox { color: #fff; background: #087f87; border-color: #087f87; }
.csp-map-consentcheck:disabled { cursor: not-allowed; }

.csp-map-personprivacy {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 13px 15px;
	color: #527078;
	background: #f8fbfb;
	border-radius: 12px;
}

.csp-map-personprivacy svg { flex: 0 0 auto; color: #087f87; }
.csp-map-personprivacy p { margin: 0 !important; font-size: 12px; }

.csp-map-personactions { display: flex; align-items: center; gap: 14px; }
.csp-map-personsave {
	min-height: 44px;
	padding: 10px 18px !important;
	color: #fff !important;
	background: #087f87 !important;
	border: 1px solid #087f87 !important;
	border-radius: 11px !important;
	box-shadow: none !important;
	font-size: 14px;
	font-weight: 680;
	cursor: pointer;
}

.csp-map-personsave:hover { background: #076c73 !important; }
.csp-map-personsave:disabled { cursor: wait; opacity: .65; }
.csp-map-personactions [data-kind="error"] { color: #b42318; }
.csp-map-personactions [data-kind="success"] { color: #08766f; }
.csp-map-personactions [role="status"] { font-size: 12px; font-weight: 600; }

.csp-map-filter {
	display: inline-flex !important;
	align-items: center;
	gap: 7px;
	min-height: 44px;
	padding: 9px 14px !important;
	color: var(--csp-map-ink) !important;
	background: var(--csp-map-surface) !important;
	border: 1px solid var(--csp-map-border) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
}

.csp-map-filter:hover {
	color: var(--csp-map-purple) !important;
	border-color: rgba(82, 15, 125, .35) !important;
	background: #fcfaff !important;
}

.csp-map-filter[aria-pressed="true"],
.csp-map-filter[data-active="true"] {
	color: #fff !important;
	background: var(--csp-map-purple) !important;
	border-color: var(--csp-map-purple) !important;
}

.csp-map-filter[aria-pressed="true"] svg:first-child { color: var(--csp-map-teal); }
.csp-map-radius-short { display: none; }
.csp-map-popoverhost { position: relative; }

.csp-map-popover {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 50;
	width: max-content;
	min-width: 220px;
	max-width: min(320px, calc(100vw - 32px));
	max-height: 280px;
	padding: 7px;
	overflow: auto;
	background: var(--csp-map-surface);
	border: 1px solid var(--csp-map-border);
	border-radius: 14px;
	box-shadow: var(--csp-map-shadow);
}

.csp-map-option {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 44px;
	padding: 9px 11px !important;
	color: var(--csp-map-ink) !important;
	text-align: left;
	background: transparent !important;
	border: 0 !important;
	border-radius: 9px !important;
	box-shadow: none !important;
	cursor: pointer;
}

.csp-map-option:hover,
.csp-map-option[aria-selected="true"] {
	color: var(--csp-map-purple) !important;
	background: var(--csp-map-purple-soft) !important;
}

.csp-map-workspace {
	position: relative;
	flex: 1 1 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	min-height: clamp(520px, calc(100svh - 275px), 760px);
	background: var(--csp-map-map);
	border-top: 1px solid var(--csp-map-border);
	border-bottom: 1px solid var(--csp-map-border);
}

.csp-map-stage {
	position: relative;
	min-width: 0;
	min-height: 520px;
	overflow: hidden;
}

.csp-map-canvas {
	position: absolute !important;
	inset: 0;
	background:
		linear-gradient(112deg, transparent 0 29%, rgba(255,255,255,.94) 29.3% 31.6%, transparent 31.9% 100%),
		linear-gradient(24deg, transparent 0 49%, rgba(255,255,255,.9) 49.3% 51.8%, transparent 52.1% 100%),
		linear-gradient(164deg, transparent 0 67%, rgba(255,255,255,.82) 67.3% 69.5%, transparent 69.8% 100%),
		radial-gradient(ellipse at 26% 70%, rgba(60,206,194,.10) 0 13%, transparent 13.5%),
		linear-gradient(90deg, rgba(64,116,233,.035), rgba(60,206,194,.055)),
		var(--csp-map-map);
}

.csp-map-canvas .gm-style,
.csp-map-canvas .gm-style-cc,
.csp-map-canvas .gmnoprint { font-family: inherit; }

.csp-map-consent {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 8;
	display: grid;
	justify-items: center;
	width: min(440px, calc(100% - 40px));
	padding: 30px;
	color: var(--csp-map-ink);
	text-align: center;
	background: rgba(255, 255, 255, .98);
	border: 1px solid rgba(82, 15, 125, .14);
	border-radius: 20px;
	box-shadow: var(--csp-map-shadow);
	transform: translate(-50%, -52%);
}

.csp-map-consentmark {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	margin-bottom: 14px;
	color: var(--csp-map-purple);
	background: var(--csp-map-purple-soft);
	border-radius: 15px;
}

.csp-map-consentmark svg { width: 24px !important; height: 24px !important; }

.csp-map-consent h2 {
	margin: 0 0 9px !important;
	color: var(--csp-map-ink) !important;
	font-size: 23px !important;
	font-weight: 650 !important;
	line-height: 1.15 !important;
	letter-spacing: -.025em !important;
}

.csp-map-consent > p {
	max-width: 38em;
	margin: 0 !important;
	color: var(--csp-map-muted) !important;
	font-size: 13px;
}

.csp-map-consentactions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	margin: 20px 0 13px;
}

.csp-map-consentbutton,
.csp-map-consentlink {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 17px !important;
	border-radius: 11px !important;
	font-size: 14px;
	font-weight: 650;
	line-height: 1.2;
	text-decoration: none !important;
}

.csp-map-consentbutton {
	color: #fff !important;
	background: var(--csp-map-purple) !important;
	border: 1px solid var(--csp-map-purple) !important;
	box-shadow: none !important;
	cursor: pointer;
}

.csp-map-consentbutton:hover { background: var(--csp-map-purple-hover) !important; }
.csp-map-consentbutton:disabled { cursor: wait; opacity: .68; }

.csp-map-consentlink {
	color: var(--csp-map-blue) !important;
	background: transparent;
	border: 1px solid rgba(64, 116, 233, .35);
}

.csp-map-consentlink:hover { background: rgba(64, 116, 233, .06); }
.csp-map-consent .csp-map-consentnote { font-size: 11px; }
.csp-map-consent .csp-map-consentfeedback { margin-top: 10px !important; color: var(--csp-map-ink) !important; font-weight: 600; }

.csp-map-consentreset {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 6;
	min-height: 44px;
	padding: 8px 12px !important;
	color: var(--csp-map-purple) !important;
	background: rgba(255, 255, 255, .96) !important;
	border: 1px solid rgba(82, 15, 125, .18) !important;
	border-radius: 11px !important;
	box-shadow: 0 8px 20px rgba(16, 24, 40, .10) !important;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
}

.csp-map-maptools {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 5;
	display: grid;
	gap: 8px;
}

.csp-map-iconbutton {
	display: grid !important;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0 !important;
	color: var(--csp-map-ink) !important;
	background: rgba(255, 255, 255, .96) !important;
	border: 1px solid var(--csp-map-border) !important;
	border-radius: 12px !important;
	box-shadow: 0 8px 20px rgba(16, 24, 40, .10) !important;
	cursor: pointer;
}

.csp-map-iconbutton:hover { color: var(--csp-map-purple) !important; border-color: rgba(82, 15, 125, .28) !important; }
.csp-map-iconbutton:active { transform: translateY(1px); }

.csp-map-mapnote {
	position: absolute;
	left: 14px;
	bottom: 14px;
	z-index: 4;
	padding: 7px 10px;
	color: var(--csp-map-muted);
	background: rgba(255, 255, 255, .94);
	border-radius: 9px;
	font-size: 11px;
	pointer-events: none;
}

.csp-map-status {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 7;
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: calc(100% - 40px);
	padding: 12px 16px;
	color: var(--csp-map-ink);
	text-align: center;
	background: rgba(255, 255, 255, .96);
	border: 1px solid var(--csp-map-border);
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(16, 24, 40, .12);
	transform: translate(-50%, -50%);
}

#csp-map-mvp:not([data-map-consent="granted"]) .csp-map-status {
	top: auto;
	bottom: 14px;
	transform: translateX(-50%);
}

.csp-map-status[data-kind="error"] { color: #b42318; border-color: #fecdca; }
.csp-map-status[data-kind="empty"] .csp-map-spinner,
.csp-map-status[data-kind="error"] .csp-map-spinner { display: none; }

.csp-map-spinner {
	width: 18px;
	height: 18px;
	border: 2px solid rgba(82, 15, 125, .20);
	border-top-color: var(--csp-map-purple);
	border-radius: 50%;
	animation: csp-map-spin .8s linear infinite;
}

@keyframes csp-map-spin { to { transform: rotate(360deg); } }

.csp-map-results {
	position: relative;
	z-index: 8;
	padding: 20px 18px;
	overflow: auto;
	background: var(--csp-map-surface);
	border-left: 1px solid var(--csp-map-border);
}

.csp-map-resulthead {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.csp-map-resulthead strong { color: var(--csp-map-ink); font-weight: 650; }
.csp-map-resulthead > span { color: var(--csp-map-muted); font-size: 12px; }

.csp-map-result {
	position: relative;
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	margin-bottom: 10px;
	padding: 14px;
	background: var(--csp-map-surface);
	border: 1px solid var(--csp-map-border);
	border-radius: 14px;
	transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.csp-map-result:hover { border-color: rgba(82, 15, 125, .26); transform: translateY(-1px); }

.csp-map-result[data-selected="true"] {
	background: var(--csp-map-purple-soft);
	border-color: rgba(82, 15, 125, .48);
}

.csp-map-result[data-layer="person"][data-selected="true"] { background: #eef9f8; border-color: rgba(8, 127, 135, .42); }
.csp-map-result[data-layer="person"][data-selected="true"] .csp-map-resulttitle { color: #087f87; }

.csp-map-resultbutton {
	position: absolute;
	inset: 0;
	z-index: 1;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
}

.csp-map-result[data-selected="true"] .csp-map-resulttitle { color: var(--csp-map-purple); }
.csp-map-result[data-layer="person"][data-selected="true"] .csp-map-resulttitle { color: #087f87; }

.csp-map-avatar {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	color: var(--csp-map-purple);
	background: var(--csp-map-purple-soft);
	border-radius: 11px;
	font-size: 12px;
	font-weight: 650;
}

.csp-map-resultcopy { min-width: 0; }
.csp-map-resulttitle { display: flex; align-items: center; gap: 5px; color: var(--csp-map-ink); font-weight: 650; }
.csp-map-verified { color: var(--csp-map-teal-ink); font-size: 13px; }
.csp-map-resultmeta,
.csp-map-resultdistance { display: block; margin-top: 3px; color: var(--csp-map-muted); font-size: 12px; }
.csp-map-resultdistance { margin-top: 6px; color: var(--csp-map-ink); }

.csp-map-profilelink {
	position: relative;
	z-index: 2;
	padding: 6px 4px;
	color: var(--csp-map-blue) !important;
	font-size: 12px;
	font-weight: 650;
	text-decoration: none !important;
}

.csp-map-profilelink:hover { color: var(--csp-map-purple) !important; }

.csp-map-overlay {
	position: absolute;
	z-index: 2;
	transform: translate(-50%, -100%);
}

.csp-map-overlay[data-selected="true"] { z-index: 12; }

.csp-map-marker {
	position: relative;
	display: grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	color: #fff;
	background: var(--csp-map-purple);
	border: 3px solid var(--csp-map-surface);
	border-radius: 19px 19px 19px 5px;
	box-shadow: 0 8px 18px rgba(82, 15, 125, .30);
	font: 650 12px/1 Inter, ui-sans-serif, system-ui, sans-serif;
	cursor: pointer;
	white-space: nowrap;
}

.csp-map-overlay[data-layer="person"] .csp-map-marker {
	width: 56px;
	height: 64px;
	padding: 0 0 8px !important;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.csp-map-overlay[data-layer="person"] .csp-map-marker::before {
	content: "";
	position: absolute;
	bottom: 1px;
	left: 50%;
	z-index: -1;
	width: 28px;
	height: 28px;
	background: #0796a0;
	border-radius: 4px 50% 50%;
	box-shadow: 0 8px 18px rgba(8, 127, 135, .28);
	transform: translateX(-50%) rotate(45deg);
}

.csp-map-marker-avatar {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	object-fit: cover;
	color: #087f87;
	background: #e1f4f3;
	border: 4px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 3px rgba(8, 175, 180, .28), 0 8px 20px rgba(16, 42, 53, .18);
}

.csp-map-overlay[data-layer="person"][data-selected="true"] .csp-map-marker-avatar { box-shadow: 0 0 0 5px rgba(8, 175, 180, .24), 0 10px 24px rgba(16, 42, 53, .22); }

.csp-map-personcard {
	position: absolute;
	top: 72px;
	left: 50%;
	width: 360px;
	padding: 22px;
	color: #102a35;
	background: #fff;
	border: 1px solid #d6e2e3;
	border-radius: 18px;
	box-shadow: 0 22px 55px rgba(16, 42, 53, .18);
	transform: translateX(-50%);
}

.csp-map-personcard::before {
	content: "";
	position: absolute;
	top: -8px;
	left: 50%;
	width: 16px;
	height: 16px;
	background: #fff;
	border-top: 1px solid #d6e2e3;
	border-left: 1px solid #d6e2e3;
	transform: translateX(-50%) rotate(45deg);
}

.csp-map-personcard-close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; }
.csp-map-personcard-identity { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 13px; padding-right: 34px; }
.csp-map-personcard-avatar { display: grid; place-items: center; width: 64px; height: 64px; object-fit: cover; color: #087f87; background: #e1f4f3; border-radius: 50%; font-weight: 700; }
.csp-map-personcard-identity strong { display: block; color: #102a35; font-size: 20px; line-height: 1.15; }
.csp-map-personcard-identity span { display: block; margin-top: 5px; color: #087f87; font-size: 13px; font-weight: 650; }
.csp-map-personcard-location { margin: 16px 0 0 !important; padding: 10px 0 14px; color: #506b72; border-bottom: 1px solid #e3ebeb; font-size: 12px; }
.csp-map-personcard-description { margin: 14px 0 18px !important; color: #294950; font-size: 13px; line-height: 1.55; }

.csp-map-personcard-primary,
.csp-map-personcard-secondary {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 14px !important;
	border-radius: 11px;
	font-size: 14px;
	font-weight: 680;
	text-decoration: none !important;
}

.csp-map-personcard-primary { color: #fff !important; background: #087f87; }
.csp-map-personcard-primary:hover { background: #076c73; }
.csp-map-personcard-secondary { margin-top: 5px; color: #087f87 !important; background: transparent; }
.csp-map-personcard-secondary:hover { background: #eef9f8; }
.csp-map-personcard-privacy { margin: 10px 0 0 !important; padding-top: 12px; color: #6d858b; border-top: 1px solid #e3ebeb; font-size: 11px; }

.csp-map-avatar[src] { object-fit: cover; }

.csp-map-marker[data-selected="true"] { z-index: 3; color: var(--csp-map-ink); background: var(--csp-map-teal); }
.csp-map-overlay[data-layer="person"] .csp-map-marker[data-selected="true"] { background: transparent; }
.csp-map-marker[data-cluster="true"] { min-width: 44px; border-radius: 22px; }

.csp-map-listtoggle {
	position: absolute;
	top: 14px;
	left: 50%;
	z-index: 7;
	display: none;
	align-items: center;
	gap: 7px;
	min-height: 42px;
	padding: 10px 14px !important;
	color: #fff !important;
	background: var(--csp-map-purple) !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: 0 8px 22px rgba(82, 15, 125, .24) !important;
	transform: translateX(-50%);
	cursor: pointer;
}

.csp-map-mobilecard {
	position: absolute;
	right: 12px;
	bottom: 12px;
	left: 12px;
	z-index: 6;
	display: none;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 14px;
	background: var(--csp-map-surface);
	border: 1px solid rgba(82, 15, 125, .18);
	border-radius: 16px;
	box-shadow: var(--csp-map-shadow);
}

.csp-map-mobilecard .csp-map-avatar { width: 48px; height: 48px; }

#csp-map-mvp button:focus-visible,
#csp-map-mvp input:focus-visible,
#csp-map-mvp textarea:focus-visible,
#csp-map-mvp a:focus-visible,
#csp-map-mvp .csp-map-marker:focus-visible {
	outline: 3px solid var(--csp-map-focus) !important;
	outline-offset: 3px !important;
}

@media (max-width: 860px) {
	.csp-map-heading { grid-template-columns: minmax(220px, .75fr) minmax(300px, 1.25fr); gap: 20px; padding-inline: 20px; }
	.csp-map-filterbar { padding-inline: 20px; }
	.csp-map-workspace { grid-template-columns: minmax(0, 1fr) 300px; }
}

@media (max-width: 720px) {
	#csp-map-mvp { min-height: 0; }
	.csp-map-heading { grid-template-columns: 1fr; gap: 14px; padding: 20px 16px 12px; }
	.csp-map-intro h1 { font-size: 28px !important; }
	.csp-map-search { min-height: 50px; }
	.csp-map-filterbar { flex-wrap: wrap; padding: 0 16px 14px; overflow: visible; }
	.csp-map-layers { flex: 1 0 100%; }
	.csp-map-layer { width: 100%; }
	.csp-map-memberopen { margin-left: 0 !important; }
	.csp-map-personsettings { width: calc(100% - 32px); margin: 0 16px 18px; padding: 20px 16px; }
	.csp-map-personfields { grid-template-columns: 1fr; }
	.csp-map-persondescription,
	.csp-map-consentcheck { grid-column: 1; }
	.csp-map-personactions { align-items: stretch; flex-direction: column; }
	.csp-map-personsave { width: 100%; }
	.csp-map-filter { flex: 0 0 auto; min-height: 44px; white-space: nowrap; }
	.csp-map-radius-label { display: none; }
	.csp-map-radius-short { display: inline; }
	.csp-map-popoverhost { position: static; }
	.csp-map-popover { right: 16px; left: 16px; width: auto; max-width: none; }
	.csp-map-workspace { display: flex; flex-direction: column; min-height: 0; }
	.csp-map-stage { flex: 0 0 auto; min-height: 500px; }
	.csp-map-results {
		position: relative;
		display: block;
		max-height: none;
		padding: 18px 16px 24px;
		border: 0;
		border-top: 1px solid var(--csp-map-border);
	}
	.csp-map-results[data-open="true"] { display: block; }
	.csp-map-listtoggle { display: none; }
	.csp-map-consent {
		width: min(440px, calc(100% - 28px));
		padding: 23px 18px;
		transform: translate(-50%, -53%);
	}
	.csp-map-consentactions { flex-direction: column; gap: 8px; }
	.csp-map-consentbutton,
	.csp-map-consentlink { width: 100%; }
	.csp-map-maptools { top: 14px; }
	.csp-map-consentreset { top: 14px; left: 10px; }
	.csp-map-mapnote { bottom: 82px; }
	.csp-map-mobilecard { display: grid; }
	.csp-map-mobilecard[data-variant="person"] {
		display: block;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
	}
	.csp-map-mobilecard[data-variant="person"] .csp-map-personcard {
		position: relative;
		top: auto;
		left: auto;
		width: 100%;
		max-height: calc(500px - 24px);
		overflow-y: auto;
		padding: 20px 18px;
		transform: none;
	}
	.csp-map-mobilecard[data-variant="person"] .csp-map-personcard::before { display: none; }
	.csp-map-personcard { width: min(360px, calc(100vw - 28px)); padding: 20px 18px; }
	.csp-map-status { width: max-content; max-width: calc(100% - 32px); }
}

@media (max-width: 380px) {
	.csp-map-heading { padding-inline: 14px; }
	.csp-map-filterbar { padding-inline: 14px; }
	.csp-map-consent { padding: 20px 14px; }
	.csp-map-consent h2 { font-size: 21px !important; }
	.csp-map-stage { min-height: 480px; }
	.csp-map-result { grid-template-columns: 40px minmax(0, 1fr); }
	.csp-map-profilelink { grid-column: 2; justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
	.csp-map-spinner { animation: none; }
	#csp-map-mvp *,
	#csp-map-mvp *::before,
	#csp-map-mvp *::after { scroll-behavior: auto !important; transition: none !important; }
}
