.re-maps-map {
	width: 100%;
	height: 500px;
	min-height: 320px;
	border-radius: 12px;
	overflow: hidden;
	background: #f3f4f6;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.re-maps-wrapper {
	position: relative;
	margin: 24px 0;
}

.re-maps-wrapper--single .re-maps-map {
	height: 420px;
}

.re-maps-admin {
	display: grid;
	gap: 12px;
}

.re-maps-admin__controls {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.re-maps-admin__search {
	flex: 1 1 280px;
	padding: 8px 10px;
	border-radius: 4px;
	border: 1px solid #cbd5f5;
}

.re-maps-feedback {
	min-height: 20px;
	font-size: 0.9rem;
	color: #475569;
}

.re-maps-feedback--loading {
	color: #2563eb;
}

.re-maps-feedback--warning {
	color: #d97706;
}

.re-maps-feedback--error {
	color: #dc2626;
}

.re-maps-popup {
	max-width: 220px;
	line-height: 1.4;
}

.re-maps-popup a {
	color: #2563eb;
	text-decoration: none;
	font-weight: 600;
}

.re-maps-popup a:hover,
.re-maps-popup a:focus {
	text-decoration: underline;
}

.re-maps-message {
	margin-top: 12px;
	padding: 10px 14px;
	border-radius: 8px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	color: #334155;
}

/* Leaflet overrides */
.leaflet-control-zoom a {
	width: 36px;
	height: 36px;
	line-height: 36px;
}

/* Marker cluster customizations */
.leaflet-marker-icon.re-maps-cluster,
.leaflet-marker-icon.re-maps-cluster div {
	border-radius: 50%;
	background: rgba(59, 130, 246, 0.85);
	color: #fff;
	border: none;
	font-weight: 600;
}

@media (max-width: 768px) {
	.re-maps-map {
		height: 360px;
		min-height: 260px;
	}

	.re-maps-wrapper--single .re-maps-map {
		height: 320px;
	}

	.re-maps-admin__controls {
		flex-direction: column;
	}

	.re-maps-admin__search,
	.re-maps-admin__controls .button {
		width: 100%;
	}
}
