/* FAB instalar app — look & feel municipalidad.css (cta-pay / primary) */
.pwa-install-fab {
	--pwa-fab-bg: #14422d;
	--pwa-fab-border: #003f43;
	--pwa-fab-accent: var(--primary-color, #2d5a43);
	--pwa-fab-bottom: 28px;
	--pwa-fab-side: 24px;

	position: fixed;
	bottom: var(--pwa-fab-bottom);
	z-index: 9990;
	font-family: var(--font-body, 'Montserrat', sans-serif);
	pointer-events: none;
}

.pwa-install-fab--left {
	left: var(--pwa-fab-side);
}

.pwa-install-fab--right {
	right: var(--pwa-fab-side);
}

.pwa-install-fab__messages {
	position: absolute;
	bottom: calc(100% + 10px);
	left: 0;
	max-width: min(280px, calc(100vw - 32px));
	pointer-events: auto;
}

.pwa-install-fab--right .pwa-install-fab__messages {
	left: auto;
	right: 0;
	text-align: right;
}

.pwa-install-fab__ios-help,
.pwa-install-fab__fallback {
	margin: 0 0 8px;
	padding: 10px 14px;
	border-radius: 12px;
	background: var(--header-glass-solid, rgba(255, 255, 255, 0.97));
	border: 1px solid rgba(45, 90, 67, 0.15);
	box-shadow: var(--header-sub-shadow, 0 8px 24px rgba(0, 0, 0, 0.12));
	color: var(--text-color, #717973);
	font-size: 0.8125rem;
	line-height: 1.45;
}

.pwa-install-fab__ios-help[hidden],
.pwa-install-fab__fallback[hidden] {
	display: none !important;
}

.pwa-install-fab__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	height: 52px;
	min-width: 52px;
	padding: 0 14px;
	border: 2px solid var(--pwa-fab-border);
	border-radius: 999px;
	background: var(--pwa-fab-bg);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1;
	cursor: pointer;
	overflow: hidden;
	pointer-events: auto;
	box-shadow: 0 4px 18px rgba(20, 66, 45, 0.35);
	transition:
		gap 0.35s cubic-bezier(0.4, 0, 0.2, 1),
		padding 0.35s cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 0.3s ease,
		transform 0.25s ease,
		background 0.25s ease;
	animation: pwa-fab-pulse 3.5s ease-in-out infinite;
}

.pwa-install-fab__btn:hover,
.pwa-install-fab__btn:focus-visible {
	animation: none;
	gap: 10px;
	padding: 0 22px 0 16px;
	background: var(--pwa-fab-accent);
	box-shadow: 0 8px 28px rgba(45, 90, 67, 0.45);
	transform: translateY(-2px);
	outline: none;
}

.pwa-install-fab--right .pwa-install-fab__btn:hover,
.pwa-install-fab--right .pwa-install-fab__btn:focus-visible {
	padding: 0 16px 0 22px;
}

.pwa-install-fab__btn:active {
	transform: translateY(0);
}

.pwa-install-fab__btn:disabled {
	opacity: 0.75;
	cursor: wait;
	animation: none;
}

.pwa-install-fab__btn[hidden],
.pwa-install-fab[hidden] {
	display: none !important;
}

.pwa-install-fab__icon {
	flex-shrink: 0;
	font-size: 22px;
	line-height: 1;
}

.pwa-install-fab__label {
	display: block;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	white-space: nowrap;
	transition:
		max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.28s ease;
}

.pwa-install-fab__btn:hover .pwa-install-fab__label,
.pwa-install-fab__btn:focus-visible .pwa-install-fab__label,
.pwa-install-fab.is-expanded .pwa-install-fab__label {
	max-width: 220px;
	opacity: 1;
}

.pwa-install-fab__btn:hover,
.pwa-install-fab__btn:focus-visible,
.pwa-install-fab.is-expanded .pwa-install-fab__btn {
	gap: 10px;
	padding: 0 22px 0 16px;
	animation: none;
}

.pwa-install-fab--right .pwa-install-fab__btn:hover,
.pwa-install-fab--right .pwa-install-fab__btn:focus-visible,
.pwa-install-fab--right.is-expanded .pwa-install-fab__btn {
	padding: 0 16px 0 22px;
}

@keyframes pwa-fab-pulse {
	0%,
	100% {
		box-shadow: 0 4px 18px rgba(20, 66, 45, 0.35);
	}
	50% {
		box-shadow: 0 4px 22px rgba(45, 90, 67, 0.55), 0 0 0 6px rgba(45, 90, 67, 0.12);
	}
}

@media (hover: none) {
	.pwa-install-fab.is-expanded .pwa-install-fab__btn {
		animation: none;
	}

	.pwa-install-fab:not(.is-expanded) .pwa-install-fab__btn {
		animation: pwa-fab-pulse 4s ease-in-out infinite;
	}
}

@media (max-width: 782px) {
	.pwa-install-fab {
		--pwa-fab-bottom: 20px;
		--pwa-fab-side: 16px;
	}

	.pwa-install-fab__btn {
		height: 48px;
		min-width: 48px;
	}
}

@media (min-width: 1025px) {
	.pwa-install-fab--hide-desktop {
		display: none !important;
	}
}

@media (min-width: 783px) and (max-width: 1024px) {
	.pwa-install-fab--hide-tablet {
		display: none !important;
	}
}

@media (max-width: 782px) {
	.pwa-install-fab--hide-mobile {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pwa-install-fab__btn {
		animation: none;
		transition: none;
	}

	.pwa-install-fab__label {
		transition: none;
	}
}
