/* ── Job Map block ────────────────────────────────────────────────────────── */
.wcb-job-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 ─────────────────────────────────────────────── */
.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-jm-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-jm-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-jm-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-jm-radius-select {
	padding: var( --wcb-space-sm, 8px ) var( --wcb-space-md );
	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 );
}

/* Plain `:focus` keeps the browser-default outline as a graceful
 * fallback; `:focus-visible` below adds the explicit keyboard ring. */
.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-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-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-primary` is the canonical token defined in
 * frontend-tokens.css and inheritable through theme overrides
 * (Reign sets it to its red accent). The earlier
 * `--wp--preset--color--wcb-primary` chain only resolves when the
 * active theme registers a matching palette entry, which most
 * non-Wbcom themes don't, so the button silently fell back to the
 * hardcoded blue. */
.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-jm-location-btn:hover:not( :disabled ) {
	background: var( --wcb-primary-dark, #1d4ed8 );
}

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

.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 );
	cursor: pointer;
	line-height: 1;
	transition: background var( --wcb-transition-fast, 0.12s );
}

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

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