.fpf-modal {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	padding: 24px;
	pointer-events: none;
	position: fixed;
	transition: opacity 180ms ease;
	z-index: 999999;
}

.fpf-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}

.fpf-modal[hidden] {
	display: none;
}

.fpf-modal__overlay {
	background: rgba(var(--fpf-overlay-rgb, 0, 0, 0), var(--fpf-overlay-opacity, 0.7));
	inset: 0;
	position: absolute;
}

.fpf-modal__dialog {
	background: var(--fpf-popup-bg, #ffffff);
	border-radius: var(--fpf-popup-radius, 12px);
	box-shadow: 0 22px 60px rgba(15, 23, 42, 0.34);
	color: var(--fpf-popup-text, #1f2937);
	max-height: calc(100vh - 48px);
	overflow: auto;
	padding: 32px;
	position: relative;
	transform: translateY(12px) scale(0.98);
	transition: transform 180ms ease;
	width: min(100%, var(--fpf-popup-width, 640px));
	z-index: 1;
}

.fpf-modal.is-open .fpf-modal__dialog {
	transform: translateY(0) scale(1);
}

.fpf-modal__dialog:focus {
	outline: none;
}

.fpf-modal__close {
	align-items: center;
	appearance: none;
	background: var(--fpf-close-bg, #111827);
	border: 0;
	border-radius: 999px;
	color: var(--fpf-close-text, #ffffff);
	cursor: pointer;
	display: inline-flex;
	font-size: 24px;
	font-weight: 700;
	height: 38px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 12px;
	top: 12px;
	width: 38px;
	z-index: 2;
}

.fpf-modal__close:hover,
.fpf-modal__close:focus {
	opacity: 0.88;
}

.fpf-modal__close:focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.35);
	outline-offset: 2px;
}

.fpf-modal__content {
	padding-top: 12px;
}

.fpf-modal__content .forminator-ui {
	margin-bottom: 0;
}

.fpf-popup-lock {
	overflow: hidden;
}

.fpf-admin-warning {
	background: #fff8e5;
	border-left: 4px solid #f59e0b;
	color: #7c2d12;
	padding: 10px 12px;
}

@media (max-width: 600px) {
	.fpf-modal {
		align-items: flex-start;
		padding: 14px;
	}

	.fpf-modal__dialog {
		max-height: calc(100vh - 28px);
		padding: 26px 18px 20px;
	}

	.fpf-modal__close {
		height: 34px;
		right: 8px;
		top: 8px;
		width: 34px;
	}
}
