/**
 * Side Checkout — Map Recovery modal (lazy Leaflet).
 */

body.pgsc-checkout-map-recovery-open {
	overflow: hidden;
}

.pgsc-checkout-map-recovery {
	position: fixed;
	inset: 0;
	z-index: calc(var(--pgsc-sidecart-z-index, 99999) + 20);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0;
	pointer-events: auto;
}

.pgsc-checkout-map-recovery__backdrop {
	position: absolute;
	inset: 0;
	background: var(--pgsc-color-overlay-backdrop-checkout, rgba(42, 38, 38, 0.48));
	backdrop-filter: blur(4px);
}

.pgsc-checkout-map-recovery__sheet {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(100%, 32rem);
	max-height: min(92vh, 42rem);
	margin: 0 auto;
	border-radius: 16px 16px 0 0;
	background: var(--pgsc-color-surface, #fff);
	box-shadow: 0 -8px 32px rgba(17, 24, 39, 0.16);
	overflow: hidden;
}

.pgsc-checkout-map-recovery__header {
	padding: 18px 18px 10px;
}

.pgsc-checkout-map-recovery__title {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--pgsc-color-text-heading, #111827);
}

.pgsc-checkout-map-recovery__intro {
	margin: 6px 0 0;
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--pgsc-color-text-secondary, #5c4a52);
}

.pgsc-checkout-map-recovery__map {
	width: 100%;
	height: min(52vh, 22rem);
	min-height: 240px;
	background: var(--pgsc-color-surface-muted, #f3f4f6);
}

.pgsc-checkout-map-recovery__map-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	height: 100%;
	min-height: 240px;
	color: var(--pgsc-color-text-secondary, #5c4a52);
}

.pgsc-checkout-map-recovery__map-loading-spinner {
	width: 28px;
	height: 28px;
	border: 3px solid var(--pgsc-color-border-subtle, #ece6e9);
	border-top-color: var(--pgsc-color-button-functional-bg, #6b2838);
	border-radius: 50%;
	animation: pgsc-map-recovery-spin 0.7s linear infinite;
}

.pgsc-checkout-map-recovery__map-loading-text {
	font-size: 0.875rem;
	line-height: 1.4;
}

.pgsc-checkout-map-recovery__button--confirm:disabled {
	opacity: 0.55;
	cursor: wait;
}

@keyframes pgsc-map-recovery-spin {
	to {
		transform: rotate(360deg);
	}
}

.pgsc-checkout-map-recovery__footer {
	display: flex;
	gap: 10px;
	padding: 14px 18px 18px;
	border-top: 1px solid var(--pgsc-color-border-subtle, #ece6e9);
}

.pgsc-checkout-map-recovery__button {
	flex: 1;
	min-height: 42px;
	padding: 0 14px;
	border-radius: var(--pgsc-radius-button, 6px);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
}

.pgsc-checkout-map-recovery__button--cancel {
	border: 1px solid var(--pgsc-color-border-input, #d1d5db);
	background: var(--pgsc-color-surface, #fff);
	color: var(--pgsc-color-text-label, #374151);
}

.pgsc-checkout-map-recovery__button--confirm {
	border: 1px solid var(--pgsc-color-button-functional-border, #6b2838);
	background: var(--pgsc-color-button-functional-bg, #6b2838);
	color: var(--pgsc-color-on-primary, #fff);
}

.pgsc-checkout-map-recovery__button--confirm:hover,
.pgsc-checkout-map-recovery__button--confirm:focus-visible {
	background: var(--pgsc-color-button-functional-bg-hover, #4f1c2a);
	border-color: var(--pgsc-color-button-functional-bg-hover, #4f1c2a);
	outline: none;
}

@media (min-width: 640px) {
	.pgsc-checkout-map-recovery {
		align-items: flex-end;
		padding: 0 24px 24px;
	}

	.pgsc-checkout-map-recovery__sheet {
		border-radius: 16px 16px 0 0;
		max-height: min(88vh, 40rem);
	}
}
