/* ── Resume Map block ─────────────────────────────────────────────────────── */
.wcb-resume-map-block {
	border-radius: var(--wcb-radius-xl, 12px);
	overflow: hidden;
	border: 1px solid var(--wcb-border, #e2e8f0);
	font-family: inherit;
}

.wcb-job-map-canvas {
	width: 100%;
	display: block;
}

/* ── Location search toolbar ─────────────────────────────────────────────── */
/* render.php reuses job-map's .wcb-jm-* toolbar markup plus its own
 * .wcb-rm-location-input. WP loads block styles on demand, so resume-map
 * rendered without job-map on the page would otherwise have an unstyled,
 * cramped toolbar. Rules are scoped under .wcb-resume-map-block to stay
 * self-contained without colliding with job-map's own copy. */
.wcb-resume-map-block .wcb-jm-toolbar {
	display: flex;
	gap: var(--wcb-space-sm, 8px);
	align-items: center;
	padding: var(--wcb-space-md, 12px);
	background: var(--wcb-on-primary, #ffffff);
	border-bottom: 1px solid var(--wcb-border, #e2e8f0);
	flex-wrap: wrap;
}

.wcb-resume-map-block .wcb-rm-location-input {
	flex: 1;
	min-width: 180px;
	padding: var(--wcb-space-sm, 8px) var(--wcb-space-md, 12px);
	border: 1px solid var(--wcb-border, #e2e8f0);
	border-radius: var(--wcb-radius-sm, 4px);
	font-size: var(--wcb-text-base, 14px);
	font-family: inherit;
	color: var(--wcb-contrast, #0f172a);
}

.wcb-resume-map-block .wcb-rm-location-input:focus {
	border-color: var(--wcb-primary, #2563eb);
	box-shadow: var(--wcb-shadow-focus, 0 0 0 3px rgba(37, 99, 235, 0.12));
}

.wcb-resume-map-block .wcb-rm-location-input:focus-visible {
	outline: 2px solid var(--wcb-primary, #2563eb);
	outline-offset: 2px;
	border-color: var(--wcb-primary, #2563eb);
	box-shadow: var(--wcb-shadow-focus, 0 0 0 3px rgba(37, 99, 235, 0.12));
}

.wcb-resume-map-block .wcb-jm-radius-select {
	padding: var(--wcb-space-sm, 8px) var(--wcb-space-md, 12px);
	border: 1px solid var(--wcb-border, #e2e8f0);
	border-radius: var(--wcb-radius-sm, 4px);
	font-size: var(--wcb-text-base, 14px);
	font-family: inherit;
	color: var(--wcb-contrast, #0f172a);
	background: var(--wcb-on-primary, #ffffff);
}

.wcb-resume-map-block .wcb-jm-radius-select:focus {
	border-color: var(--wcb-primary, #2563eb);
	box-shadow: var(--wcb-shadow-focus, 0 0 0 3px rgba(37, 99, 235, 0.12));
}

.wcb-resume-map-block .wcb-jm-radius-select:focus-visible {
	outline: 2px solid var(--wcb-primary, #2563eb);
	outline-offset: 2px;
	border-color: var(--wcb-primary, #2563eb);
	box-shadow: var(--wcb-shadow-focus, 0 0 0 3px rgba(37, 99, 235, 0.12));
}

.wcb-resume-map-block .wcb-jm-location-btn {
	padding: var(--wcb-space-sm, 8px) var(--wcb-space-lg, 16px);
	background: var(--wcb-primary, #2563eb);
	color: var(--wcb-on-primary, #ffffff);
	border: none;
	border-radius: var(--wcb-radius-sm, 4px);
	font-size: var(--wcb-text-base, 14px);
	font-family: inherit;
	font-weight: var(--wcb-font-semibold, 600);
	cursor: pointer;
	transition: background var(--wcb-transition-fast, 0.12s);
}

.wcb-resume-map-block .wcb-jm-location-btn:hover:not(:disabled) {
	background: var(--wcb-primary-dark, #1d4ed8);
}

.wcb-resume-map-block .wcb-jm-location-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.wcb-resume-map-block .wcb-jm-myloc-btn {
	padding: var(--wcb-space-sm, 8px) var(--wcb-space-md, 12px);
	background: var(--wcb-surface, #f1f5f9);
	border: 1px solid var(--wcb-border, #e2e8f0);
	border-radius: var(--wcb-radius-sm, 4px);
	font-size: var(--wcb-text-lg, 1rem);
	cursor: pointer;
	line-height: 1;
	transition: background var(--wcb-transition-fast, 0.12s);
}

.wcb-resume-map-block .wcb-jm-myloc-btn:hover:not(:disabled) {
	background: var(--wcb-bg-hover, #f1f5f9);
	border-color: var(--wcb-text-tertiary, #9ca3af);
}

.wcb-resume-map-block .wcb-jm-myloc-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* ── Status / error live region ──────────────────────────────────────────── */
/* Written by view.js (state.statusMessage): geocode + geolocation failures and
 * radius-search result counts. Ships `hidden` from render.php and stays hidden
 * until there is something to announce. */
.wcb-resume-map-block .wcb-rm-status {
	margin: 0;
	padding: var(--wcb-space-sm, 8px) var(--wcb-space-md, 12px);
	background: var(--wcb-surface, #f1f5f9);
	border-bottom: 1px solid var(--wcb-border, #e2e8f0);
	color: var(--wcb-contrast, #0f172a);
	font-size: var(--wcb-text-base, 14px);
}

.wcb-resume-map-block .wcb-rm-status[hidden] {
	display: none;
}

/* ── Empty state (no geocoded resumes) ───────────────────────────────────── */
.wcb-resume-map-block .wcb-rm-empty {
	padding: var(--wcb-space-xl, 24px) var(--wcb-space-lg, 16px);
	text-align: center;
}

/* ── Reduced motion ──────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.wcb-resume-map-block .wcb-jm-location-btn,
	.wcb-resume-map-block .wcb-jm-myloc-btn {
		transition: none;
	}
}
