/**
 * CFSD overlay modals (subscription actions, interval change, unsaved changes).
 */

.cfsd-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--comfoo-space-s, 1rem);
}

.cfsd-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.cfsd-modal__content {
	position: relative;
	z-index: 1;
	width: min(100%, 30rem)!important;
	max-height: 90vh;
	overflow: auto;
	padding: var(--comfoo-space-m, 1.5rem);
	background: var(--comfoo-bg-surface, #fff);
	border-radius: var(--comfoo-radius-m, 8px);
	box-shadow: var(--comfoo-shadow-xl, 0 6px 48px rgba(0, 0, 0, 0.15));
}

.cfsd-modal__content h4 {
	margin: 0 0 var(--comfoo-space-xs, 0.75rem);
	font-size: var(--comfoo-text-l, 1.25rem);
	color: var(--comfoo-text-title, #000);
}

.cfsd-modal__content p {
	margin: 0 0 var(--comfoo-space-s, 1rem);
	color: var(--comfoo-text-body, #2b1a14);
}

.cfsd-modal__lede {
	margin: 0 0 var(--comfoo-space-s, 1rem);
	font-size: var(--comfoo-text-m, 1rem);
	color: var(--comfoo-text-body, #2b1a14);
	line-height: 1.45;
}

.cfsd-modal--pause .cfsd-modal__lede {
	margin: 0;
	font-size: var(--comfoo-text-s, 0.875rem);
}

.cfsd-modal--activate .cfsd-modal__lede {
	margin-bottom: var(--comfoo-space-xs, 0.75rem);
}

.cfsd-modal__content label {
	display: block;
	margin-bottom: var(--comfoo-space-s, 1rem);
	font-weight: 600;
}

.cfsd-modal__content input[type="date"],
.cfsd-modal__content input[type="text"],
.cfsd-modal__content select,
.cfsd-modal__content textarea {
	width: 100%;
	margin-top: var(--comfoo-space-2xs, 0.5rem);
	box-sizing: border-box;
}

.cfsd-modal__feedback {
	margin-top: var(--comfoo-space-xs, 0.75rem);
	font-size: var(--comfoo-text-s, 0.875rem);
	line-height: 1.4;
	min-height: 0;
}

.cfsd-modal__feedback:not(:empty) {
	margin-bottom: var(--comfoo-space-2xs, 0.5rem);
}

.cfsd-modal__feedback.is-error,
.cfsd-modal__feedback.cfsd-err {
	color: var(--comfoo-error, #ef5c5c);
}

.cfsd-modal__feedback.is-success,
.cfsd-modal__feedback.cfsd-ok {
	color: var(--comfoo-success, #83bc62);
}

.cfsd-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--comfoo-space-xs, 0.75rem);
	justify-content: flex-end;
	margin-top: var(--comfoo-space-s, 1rem);
}

.cfsd-modal__actions--stack {
	flex-direction: column;
	align-items: stretch;
	gap: var(--comfoo-space-s, 1rem);
}

.cfsd-modal__actions--stack .button {
	width: 100%;
	text-align: center;
	white-space: normal;
	line-height: 1.4;
	min-height: 3.25rem;
	height: auto !important;
	padding: var(--comfoo-space-s, 1rem) var(--comfoo-space-m, 1.25rem);
	overflow: visible;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.cfsd-modal__actions--pause {
	flex-direction: column;
	align-items: stretch;
}

.cfsd-modal__actions--pause .button {
	width: 100%;
}

.cfsd-modal__actions--pause .cfsd-modal__cancel {
	background: var(--comfoo-bg-surface, #fff) !important;
	color: var(--comfoo-text-body, #2b1a14) !important;
	border: 1px solid var(--comfoo-dark-20, #5e3e3233);
}

.cfsd-modal__actions--coupon .cfsd-modal__cancel {
	width: 100%;
	background: var(--comfoo-bg-surface, #fff) !important;
	color: var(--comfoo-text-body, #2b1a14) !important;
	border: 1px solid var(--comfoo-dark-20, #5e3e3233);
}

.cfsd-modal__confirm {
	position: relative;
	overflow: hidden;
}

.cfsd-modal .cfsd-action-btn--pause.cfsd-modal__confirm.cfsd-button-loading .cfsd-button-text {
	color: transparent !important;
}

.cfsd-modal__actions--activate .cfsd-modal__activate-checkout {
	width: 100%;
	text-align: center;
	text-decoration: none;
}

.cfsd-modal--cancel .cfsd-modal__confirm--pause-alt {
	background-color: #e67e22;
	border-color: var(--comfoo-dark-20, #5e3e3233);
	color: var(--comfoo-white, #ffffff);
	width: 100%;
}

@media (hover: hover) {
	.cfsd-modal--cancel .cfsd-modal__confirm--pause-alt:hover {
		background-color: #cf6d17;
		border-color: var(--comfoo-dark-80, #5e3e32cc);
	}
}

.cfsd-modal--cancel .cfsd-modal__confirm--skip-alt {
	background-color: var(--comfoo-blueberry, #92acc5);
	border-color: var(--comfoo-dark-20, #5e3e3233);
	color: var(--comfoo-white, #ffffff);
	width: 100%;
}

@media (hover: hover) {
	.cfsd-modal--cancel .cfsd-modal__confirm--skip-alt:hover {
		background-color: var(--comfoo-blueberry, #92acc5);
		border-color: var(--comfoo-dark-80, #5e3e32cc);
		color: var(--comfoo-white, #ffffff);
	}
}

.cfsd-modal--cancel .cfsd-modal__confirm--cancel {
	width: 100%;
}

.cfsd-modal--cancel .cfsd-modal__actions--cancel .cfsd-modal__cancel,
.cfsd-modal--cancel .cfsd-modal__cancel {
	background-color: var(--comfoo-success-80, #83bc62cc) !important;
	border-color: var(--comfoo-dark-20, #5e3e3233) !important;
	color: var(--comfoo-white, #ffffff) !important;
	width: 100%;
}

@media (hover: hover) {
	.cfsd-modal--cancel .cfsd-modal__actions--cancel .cfsd-modal__cancel:hover,
	.cfsd-modal--cancel .cfsd-modal__cancel:hover {
		background-color: var(--comfoo-success, #83bc62) !important;
		border-color: var(--comfoo-dark-80, #5e3e32cc) !important;
		color: var(--comfoo-white, #ffffff) !important;
	}
}

.cfsd-modal--interval-change .cfsd-modal__content {
	width: min(100%, 24rem);
}

.cfsd-modal--interval-change .cfsd-interval-modal__question {
	line-height: 1.45;
}

.cfsd-modal--interval-change .cfsd-interval-modal__question strong {
	font-weight: 700;
	color: var(--comfoo-text-title, #000);
}

.cfsd-modal--interval-change .cfsd-modal__actions .button.button-primary {
	height: auto !important;
	min-height: 3.25rem;
}

.cfsd-modal__actions--stack .cfsd-modal__cancel,
.cfsd-modal__actions--pause .cfsd-modal__cancel {
	width: 100%;
}

.cfsd-cancel-reasons {
	display: grid;
	gap: var(--comfoo-space-2xs, 0.5rem);
	margin-bottom: var(--comfoo-space-s, 1rem);
}

.cfsd-cancel-reason {
	display: flex;
	align-items: flex-start;
	gap: var(--comfoo-space-2xs, 0.5rem);
	font-weight: 500;
	cursor: pointer;
}

.cfsd-activate-date-field {
	display: block;
	width: 100%;
	margin-bottom: var(--comfoo-space-s, 1rem);
	cursor: pointer;
}

.cfsd-activate-date-field__label {
	display: block;
	margin-bottom: var(--comfoo-space-3xs, 0.35rem);
	font-size: var(--comfoo-text-s, 0.875rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cfsd-activate-date-input {
	display: block;
	width: 100%;
	padding: var(--comfoo-space-2xs, 0.5rem) var(--comfoo-space-xs, 0.75rem);
	border: 1px solid var(--comfoo-border-primary, rgba(0, 0, 0, 0.15));
	border-radius: var(--comfoo-radius-s, 6px);
	background: var(--comfoo-white, #fff);
	color: var(--comfoo-text-body, #2b1a14);
	font-size: var(--comfoo-text-s, 0.875rem);
	min-height: 2.75rem;
	cursor: pointer;
	box-sizing: border-box;
}

.cfsd-activate-modal__next-payment {
	margin: 0;
	font-size: var(--comfoo-text-s, 0.875rem);
	color: var(--comfoo-dark-80, #5e3e32cc);
	line-height: 1.4;
	text-align: center;
}

.cfsd-activate-modal__date-step .cfsd-modal__feedback {
	margin-bottom: var(--comfoo-space-xs, 0.75rem);
}

.cfsd-actions-feedback {
	margin-top: var(--comfoo-space-xs, 0.75rem);
	font-size: var(--comfoo-text-s, 0.875rem);
}

.cfsd-actions-feedback.is-error,
.cfsd-actions-feedback.cfsd-err {
	color: var(--comfoo-error, #ef5c5c);
}

.cfsd-actions-feedback.is-success,
.cfsd-actions-feedback.cfsd-ok {
	color: var(--comfoo-success, #83bc62);
}
