/* ==========================================================================
   Wise Addons Site: beta download popup, page form and link page.
   Uses the theme tokens (--wa-*) with fallbacks, so it also works without the theme.
   ========================================================================== */

.wab-box,
.wab-dialog,
.wab-link-page {
	--wab-primary: var(--wa-primary, #5b4cf5);
	--wab-primary-strong: var(--wa-primary-strong, #4334e0);
	--wab-text: var(--wa-text, #161a2b);
	--wab-ink-2: var(--wa-ink-2, #3a3f57);
	--wab-muted: var(--wa-muted, #5d6380);
	--wab-subtle: var(--wa-subtle, #8a90a8);
	--wab-border: var(--wa-border, #e6e8f1);
	--wab-border-strong: var(--wa-border-strong, #d6d9e7);
	--wab-tint: var(--wa-tint, #f0eeff);
	--wab-gradient: var(--wa-gradient, linear-gradient(135deg, #6d5dfc 0%, #22b8cf 70%, #2bd4c4 100%));
	--wab-radius: var(--wa-radius-lg, 24px);
	--wab-ease: var(--wa-ease, cubic-bezier(.2, .7, .2, 1));
	--wab-danger: #b4123f;
	font-family: var(--wa-font, "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
}

/* Modal ------------------------------------------------------------------ */

html.wab-locked { overflow: hidden; }

.wab-modal {
	position: fixed;
	inset: 0;
	z-index: 100002;
}

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

.wab-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(14, 17, 32, .62);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity .25s ease;
}

.wab-modal__scroll {
	position: absolute;
	inset: 0;
	display: flex;
	padding: 24px 16px;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.wab-dialog {
	position: relative;
	width: 100%;
	max-width: 460px;
	margin: auto;
	padding: 40px 32px 28px;
	border-radius: var(--wab-radius);
	background: #fff;
	box-shadow: 0 2px 6px rgba(22, 26, 43, .06), 0 40px 90px -30px rgba(53, 40, 170, .55);
	color: var(--wab-text);
	opacity: 0;
	transform: translateY(18px) scale(.97);
	transition: opacity .22s ease, transform .32s var(--wab-ease);
	isolation: isolate;
}

.wab-dialog:focus { outline: none; }

.wab-dialog::before,
.wab-box--page::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	z-index: -1;
	height: 200px;
	border-radius: inherit;
	background:
		radial-gradient(60% 90% at 18% 0%, rgba(109, 93, 252, .16), transparent 70%),
		radial-gradient(55% 80% at 88% 0%, rgba(34, 184, 207, .14), transparent 70%);
	pointer-events: none;
}

.wab-modal.is-open .wab-modal__backdrop { opacity: 1; }
.wab-modal.is-open .wab-dialog { opacity: 1; transform: none; }

.wab-close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--wab-muted);
	cursor: pointer;
	transition: background-color .15s, color .15s;
}

.wab-close:hover { background: #f1f2f8; color: var(--wab-text); }

/* Box (popup and page) --------------------------------------------------- */

.wab-box {
	color: var(--wab-text);
	text-align: center;
}

.wab-box--page {
	position: relative;
	max-width: 520px;
	margin: 8px auto 0;
	padding: clamp(28px, 5vw, 40px) clamp(20px, 5vw, 36px);
	border: 1px solid var(--wab-border);
	border-radius: var(--wab-radius);
	background: #fff;
	box-shadow: var(--wa-shadow, 0 1px 2px rgba(22, 26, 43, .05), 0 12px 32px -14px rgba(22, 26, 43, .18));
	isolation: isolate;
	scroll-margin-top: calc(var(--wa-header-h, 72px) + 24px);
}

.wab-box .wab-view[hidden] { display: none; }

.wab-box .wab-logo {
	display: block;
	width: 64px;
	height: 64px;
	margin: 0 auto 14px;
	border-radius: 0;
}

.wab-box .wab-badge {
	display: inline-flex;
	align-items: center;
	margin: 0 0 12px;
	padding: 4px 11px;
	border-radius: 999px;
	background: var(--wab-tint);
	color: var(--wab-primary-strong);
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .09em;
	line-height: 1.4;
	text-transform: uppercase;
}

.wab-box .wab-title {
	margin: 0 0 8px;
	color: var(--wab-text);
	font-size: clamp(1.375rem, 1.2rem + .8vw, 1.65rem);
	font-weight: 780;
	line-height: 1.2;
	letter-spacing: -.03em;
	text-wrap: balance;
}

.wab-box .wab-title:focus { outline: none; }

.wab-box .wab-title__tag {
	background: var(--wa-gradient-text, linear-gradient(100deg, #5b4cf5 5%, #6d5dfc 35%, #1497b8 78%, #0fa3a0 100%));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.wab-box .wab-lead {
	max-width: 36ch;
	margin: 0 auto 22px;
	color: var(--wab-muted);
	font-size: .98rem;
	line-height: 1.55;
}

.wab-box .wab-lead strong { display: inline-block; max-width: 100%; color: var(--wab-text); font-weight: 700; overflow-wrap: anywhere; }

/* Form ------------------------------------------------------------------- */

.wab-box .wab-form {
	display: grid;
	gap: 14px;
	margin: 0;
	text-align: left;
}

.wab-box .wab-field { margin: 0; }

.wab-box .wab-label {
	display: block;
	margin: 0 0 6px;
	color: var(--wab-text);
	font-size: .875rem;
	font-weight: 650;
}

.wab-box .wab-input {
	display: block;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 12px 16px;
	border: 1px solid var(--wab-border-strong);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(22, 26, 43, .04);
	color: var(--wab-text);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .15s, box-shadow .15s;
}

.wab-box .wab-input::placeholder { color: var(--wab-subtle); opacity: 1; }

.wab-box .wab-input:hover { border-color: #b9bdd3; }

.wab-box .wab-input:focus {
	border-color: var(--wab-primary);
	outline: none;
	box-shadow: 0 0 0 4px rgba(91, 76, 245, .16);
}

.wab-box .wab-input[aria-invalid="true"] {
	border-color: #d92d5c;
	box-shadow: 0 0 0 4px rgba(217, 45, 92, .12);
}

.wab-box .wab-field-error {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 8px 0 0;
	color: var(--wab-danger);
	font-size: .85rem;
	font-weight: 550;
	line-height: 1.4;
}

.wab-box .wab-field-error::before {
	content: "!";
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--wab-danger);
	color: #fff;
	font-size: .7rem;
	font-weight: 800;
}

.wab-box .wab-field-error[hidden] { display: none; }

.wab-box .wab-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.wab-box .wab-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 2px 0 4px;
	color: var(--wab-ink-2);
	font-size: .92rem;
	font-weight: 500;
	line-height: 1.45;
	cursor: pointer;
}

.wab-box .wab-check input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--wab-primary);
	cursor: pointer;
}

.wab-close,
.wab-box button,
.wab-box a { -webkit-tap-highlight-color: transparent; }

.wab-box .wab-submit,
.wab-box .wab-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font: inherit;
	line-height: 1.2;
	cursor: pointer;
	transition: transform .2s var(--wab-ease), box-shadow .2s, background-color .2s, border-color .2s, color .2s, opacity .2s;
}

.wab-box .wab-submit {
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: .8em 1.4em;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #5b4cf5, #6d5dfc);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 10px 22px -10px rgba(91, 76, 245, .75);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
}

.wab-box .wab-submit:hover {
	background: linear-gradient(135deg, #4b3cec, #5f50f7);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 14px 28px -10px rgba(91, 76, 245, .8);
	transform: translateY(-1px);
}

.wab-box .wab-submit:active { transform: none; }

.wab-box .wab-submit[aria-disabled="true"] { cursor: progress; opacity: .88; transform: none; }

.wab-box .wab-spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255, 255, 255, .35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: wab-spin .7s linear infinite;
}

.wab-box .wab-submit[aria-busy="true"] .wab-spinner { display: block; }

@keyframes wab-spin { to { transform: rotate(360deg); } }

.wab-box .wab-notice {
	margin: 0;
	color: var(--wab-muted);
	font-size: .8125rem;
	line-height: 1.5;
	text-align: center;
}

.wab-box .wab-notice a {
	color: var(--wab-primary);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .2em;
	white-space: nowrap;
}

.wab-box .wab-alert {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid #ffd3de;
	border-radius: 12px;
	background: #fff1f4;
	color: #9b1239;
	font-size: .9rem;
	font-weight: 550;
	line-height: 1.45;
	text-align: left;
}

.wab-box .wab-alert[hidden] { display: none; }

.wab-box .wab-alert--info {
	border-color: #e0dcff;
	background: var(--wab-tint);
	color: var(--wab-ink-2);
	text-align: center;
}

/* Success ---------------------------------------------------------------- */

.wab-box .wab-success-icon {
	display: grid;
	place-items: center;
	width: 68px;
	height: 68px;
	margin: 4px auto 18px;
	border-radius: 22px;
	background: var(--wab-gradient);
	box-shadow: 0 16px 32px -14px rgba(91, 76, 245, .7);
	color: #fff;
	animation: wab-pop .5s cubic-bezier(.3, 1.3, .6, 1) both;
}

@keyframes wab-pop {
	from { opacity: 0; transform: scale(.6) rotate(-8deg); }
	to { opacity: 1; transform: none; }
}

.wab-box .wab-view--success .wab-lead { max-width: 38ch; margin-bottom: 18px; }

.wab-box .wab-view--success .wab-alert { margin-bottom: 12px; }

.wab-box .wab-status {
	margin: 0 0 4px;
	color: #05665c;
	font-size: .9rem;
	font-weight: 600;
}

.wab-box .wab-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.wab-box .wab-secondary {
	min-height: 46px;
	padding: .65em 1.4em;
	border: 1px solid var(--wab-border-strong);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(22, 26, 43, .06);
	color: var(--wab-text);
	font-size: .95rem;
	font-weight: 650;
}

.wab-box .wab-secondary:hover { border-color: #b9bdd3; transform: translateY(-1px); }

.wab-box .wab-secondary[aria-disabled="true"] {
	border-color: var(--wab-border);
	background: #f7f8fc;
	box-shadow: none;
	color: var(--wab-subtle);
	font-variant-numeric: tabular-nums;
	cursor: not-allowed;
	transform: none;
}

.wab-box .wab-secondary[hidden] { display: none; }

.wab-box .wab-link-btn {
	padding: 6px 8px;
	border: 0;
	background: none;
	color: var(--wab-primary);
	font: inherit;
	font-size: .92rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .2em;
	cursor: pointer;
}

.wab-box .wab-link-btn:hover { color: var(--wab-primary-strong); }

/* Download link page (expired / unknown link) ---------------------------- */

.wab-link-page {
	padding: clamp(48px, 8vw, 96px) var(--wa-gutter, 16px) clamp(64px, 10vw, 120px);
	background:
		radial-gradient(50% 45% at 20% 0%, rgba(109, 93, 252, .1), transparent 70%),
		radial-gradient(45% 40% at 85% 0%, rgba(34, 184, 207, .1), transparent 70%);
}

.wab-link-page__inner { max-width: 560px; margin: 0 auto; }

.wab-link-page__intro { margin-bottom: 32px; text-align: center; }

.wab-link-page__icon {
	display: inline-grid;
	place-items: center;
	width: 60px;
	height: 60px;
	margin-bottom: 18px;
	border-radius: 18px;
	background: var(--wab-tint);
	color: var(--wab-primary-strong);
}

.wab-link-page__title {
	margin: 0 0 12px;
	color: var(--wab-text);
	font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem);
	font-weight: 780;
	line-height: 1.12;
	letter-spacing: -.035em;
	text-wrap: balance;
}

.wab-link-page__text {
	max-width: 46ch;
	margin: 0 auto;
	color: var(--wab-muted);
	font-size: 1.0625rem;
	line-height: 1.6;
}

/* Small screens ---------------------------------------------------------- */

@media (max-width: 480px) {
	.wab-modal__scroll { padding: 12px; }
	.wab-dialog { padding: 36px 20px 22px; border-radius: 20px; }
	.wab-close { top: 10px; right: 10px; }
	.wab-box .wab-logo { width: 56px; height: 56px; margin-bottom: 12px; }
	.wab-box .wab-lead { margin-bottom: 18px; font-size: .95rem; }
}

@media (prefers-reduced-motion: reduce) {
	.wab-modal__backdrop,
	.wab-dialog,
	.wab-box .wab-submit,
	.wab-box .wab-secondary { transition: none; }
	.wab-dialog { transform: none; }
	.wab-box .wab-success-icon { animation: none; }
	.wab-box .wab-spinner { animation-duration: 1.6s; }
}
