/*
 * AVS Custom Login (frontend WP Page)
 * Scoped to `.avs-auth-*` selectors to avoid theme collisions.
 */

.avs-auth-shell {
	--avs-auth-bg: rgba(12, 14, 24, 0.62);
	--avs-auth-surface-solid: rgba(12, 14, 24, 0.92);
	--avs-auth-surface-raised: rgba(17, 24, 39, 0.7);
	--avs-auth-border: rgba(255, 255, 255, 0.22);
	--avs-auth-text: #f7f9ff;
	--avs-auth-muted: rgba(255, 255, 255, 0.7);
	--avs-auth-soft: rgba(255, 255, 255, 0.65);
	--avs-auth-faint: rgba(255, 255, 255, 0.55);
	--avs-auth-accent-start: #5b21b6;
	--avs-auth-accent-end: #9333ea;
	--avs-auth-cool-rgb: 129, 140, 248;
	--avs-auth-warm-rgb: 236, 72, 153;
	--avs-auth-aux-rgb: 34, 211, 238;
	--avs-auth-outline-rgb: 148, 163, 255;
	--avs-auth-link-rgb: 165, 180, 252;
	--avs-auth-shadow-rgb: 124, 58, 237;
	--avs-auth-placeholder: #c9c7ff;
	--avs-auth-focus: rgba(var(--avs-auth-cool-rgb), 0.55);
	--avs-auth-error-fg: rgba(248, 113, 113, 0.95);
	--avs-auth-error-fg-soft: rgba(248, 113, 113, 0.9);
	--avs-auth-error-bg: rgba(248, 113, 113, 0.12);
	--avs-auth-error-border: rgba(248, 113, 113, 0.28);
	--avs-auth-error-border-strong: rgba(248, 113, 113, 0.35);
	--avs-auth-notice-fg: rgba(96, 165, 250, 0.95);
	--avs-auth-notice-bg: rgba(59, 130, 246, 0.12);
	--avs-auth-notice-border: rgba(96, 165, 250, 0.28);
	--avs-passkey-success-easing: cubic-bezier(0.2, 0, 0, 1);

	/* Login background (optional, controlled by Login Designer). */
	--avs-login-bg-desktop: none;
	--avs-login-bg-mobile: none;
	--avs-login-bg-color-desktop: none;
	--avs-login-bg-color-mobile: none;
	--avs-login-bg-glow-one-desktop: radial-gradient(900px circle at 12% 18%, rgba(var(--avs-auth-cool-rgb), 0.16), transparent 55%);
	--avs-login-bg-glow-one-mobile: radial-gradient(900px circle at 12% 18%, rgba(var(--avs-auth-cool-rgb), 0.16), transparent 55%);
	--avs-login-bg-glow-two-desktop: radial-gradient(820px circle at 82% 76%, rgba(var(--avs-auth-warm-rgb), 0.12), transparent 58%);
	--avs-login-bg-glow-two-mobile: radial-gradient(820px circle at 82% 76%, rgba(var(--avs-auth-warm-rgb), 0.12), transparent 58%);
	--avs-login-bg-glow-three-desktop: radial-gradient(680px circle at 62% 40%, rgba(var(--avs-auth-aux-rgb), 0.06), transparent 60%);
	--avs-login-bg-glow-three-mobile: radial-gradient(680px circle at 62% 40%, rgba(var(--avs-auth-aux-rgb), 0.06), transparent 60%);
	--avs-login-bg-position-desktop: center center;
	--avs-login-bg-position-mobile: center center;
	--avs-login-bg-size-desktop: cover;
	--avs-login-bg-size-mobile: cover;
	--avs-login-overlay-color: transparent;
	--avs-login-overlay-opacity: 0;
	--avs-login-overlay-color-desktop: transparent;
	--avs-login-overlay-opacity-desktop: 0;
	--avs-login-overlay-color-mobile: transparent;
	--avs-login-overlay-opacity-mobile: 0;
	--avs-login-bg-current: var(--avs-login-bg-desktop);
	--avs-login-bg-color-current: var(--avs-login-bg-color-desktop);
	--avs-login-bg-glow-one-current: var(--avs-login-bg-glow-one-desktop);
	--avs-login-bg-glow-two-current: var(--avs-login-bg-glow-two-desktop);
	--avs-login-bg-glow-three-current: var(--avs-login-bg-glow-three-desktop);
	--avs-login-bg-position-current: var(--avs-login-bg-position-desktop);
	--avs-login-bg-size-current: var(--avs-login-bg-size-desktop);
	--avs-login-overlay-color-current: var(--avs-login-overlay-color-desktop);
	--avs-login-overlay-opacity-current: var(--avs-login-overlay-opacity-desktop);

	/* Spacing + type scale (single source of truth) */
	--avs-s1: 8px;
	--avs-s2: 12px;
	--avs-s3: 16px;
	--avs-s4: 22px;
	--avs-s5: 32px;
	--avs-title: clamp(32px, 3.6vw, 42px);
	--avs-subtitle: 15px;
	--avs-label: 13px;
	--avs-row: 13px;
	--avs-input: 20px;
}

.avs-auth-shell,
.avs-auth-shell * {
	box-sizing: border-box;
}

/* Stretch wp-login.php wrapper to match the shortcode layout */
body.login {
	background: #0c0e18;
	min-height: 100vh;
	padding: 0;
}

body.login #login {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.login #login h1,
body.login #login .message,
body.login #login #backtoblog,
body.login #login #nav {
	display: none;
}

body.login #login form {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

/* Hide core privacy link; plugin shows its own compliance links */
body.login .privacy-policy-page-link {
	display: none !important;
}

/* Ensure AVS login inputs keep the component theme wherever the form is rendered. */
.avs-auth-shell #avs-auth-card input.avs-auth-input,
.avs-auth-shell #avs-auth-card input.avs-auth-input-text,
.avs-auth-shell #avs-auth-card .avs-auth-inputwrap-container input.avs-auth-input,
.avs-auth-shell #avs-auth-card input.avs-auth-input:focus,
.avs-auth-shell #avs-auth-card input.avs-auth-input:focus-visible {
	background: transparent !important;
	background-color: transparent !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	outline: none !important;
	box-shadow: none !important;
}

/* Neutralize Chrome autofill highlight without depending on wp-login.php body classes. */
.avs-auth-shell #avs-auth-card input.avs-auth-input:-webkit-autofill,
.avs-auth-shell #avs-auth-card input.avs-auth-input:-webkit-autofill:focus {
	box-shadow: 0 0 0 999px rgba(12, 14, 24, 0.92) inset !important;
	-webkit-text-fill-color: #ffffff !important;
}

.avs-auth-shell {
	min-height: 100vh;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(22px, 3.2vw, 44px);
	font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
	font-size: 16px;
	line-height: 1.4;
	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: #0c0e18;
	background-image:
		var(--avs-login-bg-current),
		var(--avs-login-bg-color-current),
		var(--avs-login-bg-glow-one-current),
		var(--avs-login-bg-glow-two-current),
		var(--avs-login-bg-glow-three-current);
	background-size:
		var(--avs-login-bg-size-current, cover),
		cover,
		auto,
		auto,
		auto,
		auto;
	background-position:
		var(--avs-login-bg-position-current),
		center,
		center,
		center,
		center;
	background-repeat:
		no-repeat,
		no-repeat,
		no-repeat,
		no-repeat;
	background-attachment: fixed;
}

.avs-auth-shell::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--avs-login-overlay-color-current);
	opacity: var(--avs-login-overlay-opacity-current);
	pointer-events: none;
	z-index: 0;
}

.avs-auth-shell[data-avs-device="mobile"] {
	--avs-login-bg-current: var(--avs-login-bg-mobile);
	--avs-login-bg-color-current: var(--avs-login-bg-color-mobile);
	--avs-login-bg-glow-one-current: var(--avs-login-bg-glow-one-mobile);
	--avs-login-bg-glow-two-current: var(--avs-login-bg-glow-two-mobile);
	--avs-login-bg-glow-three-current: var(--avs-login-bg-glow-three-mobile);
	--avs-login-bg-position-current: var(--avs-login-bg-position-mobile);
	--avs-login-bg-size-current: var(--avs-login-bg-size-mobile);
	--avs-login-overlay-color-current: var(--avs-login-overlay-color-mobile);
	--avs-login-overlay-opacity-current: var(--avs-login-overlay-opacity-mobile);
}

@media (max-width: 640px) {
	.avs-auth-shell {
		--avs-login-bg-current: var(--avs-login-bg-mobile);
		--avs-login-bg-color-current: var(--avs-login-bg-color-mobile);
		--avs-login-bg-glow-one-current: var(--avs-login-bg-glow-one-mobile);
		--avs-login-bg-glow-two-current: var(--avs-login-bg-glow-two-mobile);
		--avs-login-bg-glow-three-current: var(--avs-login-bg-glow-three-mobile);
		--avs-login-bg-position-current: var(--avs-login-bg-position-mobile);
		--avs-login-bg-size-current: var(--avs-login-bg-size-mobile);
		--avs-login-overlay-color-current: var(--avs-login-overlay-color-mobile);
		--avs-login-overlay-opacity-current: var(--avs-login-overlay-opacity-mobile);
	}
}

.avs-auth-card {
	width: 100%;
	max-width: 440px;
	border-radius: 30px;
	padding: clamp(15px, 1vw, 44px);
	background: var(--avs-auth-bg);
	background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
	backdrop-filter: blur(34px) saturate(160%);
	border: 1px solid var(--avs-auth-border);
	box-shadow:
		0 34px 70px rgba(0, 0, 0, 0.42),
		inset 0 1px 0 rgba(255, 255, 255, 0.12);
	color: var(--avs-auth-text);
	position: relative;
	z-index: 1;
	overflow: hidden;
}

.avs-auth-card::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: 32px;
	background:
		radial-gradient(circle at 20% 0%, rgba(var(--avs-auth-cool-rgb), 0.28), transparent 55%),
		radial-gradient(circle at 92% 110%, rgba(var(--avs-auth-warm-rgb), 0.22), transparent 58%);
	opacity: 0.9;
	pointer-events: none;
	mix-blend-mode: screen;
	filter: blur(14px);
	z-index: 0;
}

.avs-auth-card > * {
	position: relative;
	z-index: 1;
}

.avs-auth-card--shake {
	animation: avs-auth-shake 0.6s ease both;
}

.avs-turnstile-slot {
	margin: 18px 0 0;
	display: flex;
	justify-content: center;
	max-height: 120px;
	overflow: hidden;
	transition: opacity 160ms ease, transform 160ms ease, max-height 180ms ease, margin 180ms ease;
}

.avs-turnstile-widget {
	width: 100%;
	display: flex;
	justify-content: center;
}

.avs-auth-header {
	margin-bottom: var(--avs-s5);
	text-align: center;
}

.avs-auth-eyebrow {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 4px;
	color: var(--avs-auth-muted);
	margin: 0 0 6px;
}

.avs-auth-title {
	margin: 0;
	font-size: var(--avs-title);
	line-height: 1.08;
	letter-spacing: -0.02em;
	background-image: linear-gradient(135deg, rgba(129, 140, 248, 1), rgba(236, 72, 153, 0.92));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* High-specificity header styles to prevent Kleo overrides */
.avs-auth-shell .avs-auth-header-wrapper {
	margin: 0 0 32px;
	padding: 0;
	text-align: center;
}

.avs-auth-shell .avs-auth-header-wrapper h2.avs-auth-title-main {
	margin: 0 0 10px;
	padding: 0;
	font-size: clamp(28px, 3.2vw, 38px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: #f7f9ff;
	text-align: center;
}

.avs-auth-subtitle {
	color: var(--avs-auth-muted);
	font-size: var(--avs-subtitle);
	line-height: 1.55;
	margin-top: 8px;
	margin-bottom: 0;
	max-width: 44ch;
}

.avs-auth-shell .avs-auth-header-wrapper p.avs-auth-subtitle-main {
	margin: 0;
	padding: 0;
	color: var(--avs-auth-soft);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	max-width: 100%;
	text-align: center;
}

.avs-auth-form {
	display: flex;
	flex-direction: column;
	gap: var(--avs-s3);
}

.avs-auth-card.is-passkey-authenticating .avs-auth-header-wrapper,
.avs-auth-card.is-passkey-success .avs-auth-header-wrapper {
	margin-bottom: 18px;
}

#avs-login-form.is-passkey-authenticating,
#avs-login-form.is-passkey-success {
	gap: 12px;
}

#avs-login-form.is-passkey-authenticating .avs-auth-login-fields {
	gap: 18px;
}

.avs-auth-form[hidden],
.avs-auth-view[hidden] {
	display: none !important;
}

.avs-auth-login-fields {
	display: flex;
	flex-direction: column;
	gap: var(--avs-s4);
	transition: opacity 160ms ease, transform 160ms ease;
}

.avs-auth-field {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-height: 180px;
	overflow: visible;
	transition: opacity 160ms ease, transform 160ms ease, max-height 180ms ease, margin 180ms ease;
}

.avs-auth-inputwrap {
	position: relative;
	display: flex;
	align-items: center;
	border-radius: 999px;
	padding: 1px;
	background:
		linear-gradient(135deg, rgba(var(--avs-auth-cool-rgb), 0.65), rgba(var(--avs-auth-warm-rgb), 0.45));
	box-shadow:
		0 18px 44px rgba(0, 0, 0, 0.55),
		inset 0 1px 0 rgba(255, 255, 255, 0.12);
	min-height: 50px;
	max-height: 50px;
	overflow: hidden;
}

.avs-auth-inputwrap::before {
	content: "";
	position: absolute;
	inset: 1px;
	border-radius: 999px;
	background:
		radial-gradient(circle at 20% 0%, rgba(var(--avs-auth-cool-rgb), 0.28), transparent 55%),
		radial-gradient(circle at 90% 110%, rgba(var(--avs-auth-warm-rgb), 0.24), transparent 58%),
		var(--avs-auth-surface-solid);
	z-index: 0;
	pointer-events: none;
}

.avs-auth-label {
	font-size: var(--avs-label);
	color: var(--avs-auth-muted);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: none;
}

.avs-auth-input {
	width: 100%;
	display: block;
	border-radius: 999px;
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: 13px 20px;
	margin: 0;
	color: var(--avs-auth-text);
	font-size: 20px;
	font-weight: 600;
	caret-color: rgba(255, 255, 255, 0.95);
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	z-index: 2;
	transition: color 0.16s ease;
	line-height: 1.4;
	box-sizing: border-box;
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
}

/* Higher specificity to beat Kleo's generic input[type="text"] selector (0,3,1) */
/* Our selectors: ID + classes + element + attribute = (1,4,1) - beats Kleo's (0,3,1) */
.avs-auth-shell #avs-login-form .avs-auth-field input.avs-auth-input[type="text"],
.avs-auth-shell #avs-login-form .avs-auth-field input.avs-auth-input[type="password"],
.avs-auth-shell #avs-login-form .avs-auth-field input.avs-auth-input[type="email"],
.avs-auth-shell #avs-lostpassword-form .avs-auth-field input.avs-auth-input[type="text"],
.avs-auth-shell #avs-lostpassword-form .avs-auth-field input.avs-auth-input[type="email"],
.avs-auth-shell #avs-resetpass-form .avs-auth-field input.avs-auth-input[type="password"],
.avs-auth-shell #avs-login-form .avs-auth-invite-panel .avs-auth-field input.avs-auth-input[type="text"] {
	padding: 13px 20px;
	margin: 0;
	border-style: none;
	border-width: 0;
	color: #ffffff !important;
	font-size: 20px !important;
	line-height: 1.4 !important;
}

/* Even higher specificity with inputwrap container to ensure white text color */
.avs-auth-shell #avs-login-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="text"],
.avs-auth-shell #avs-login-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="password"],
.avs-auth-shell #avs-login-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="email"],
.avs-auth-shell #avs-lostpassword-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="text"],
.avs-auth-shell #avs-lostpassword-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="email"],
.avs-auth-shell #avs-resetpass-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="password"],
.avs-auth-shell #avs-login-form .avs-auth-invite-panel .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input[type="text"] {
	color: #ffffff !important;
}

.avs-auth-shell #avs-login-form .avs-auth-invite-panel .avs-auth-field label.avs-auth-label {
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--avs-auth-muted);
	line-height: 1.4;
}

.avs-auth-shell #avs-login-form .avs-auth-field input.avs-auth-input[type="text"]::placeholder,
.avs-auth-shell #avs-login-form .avs-auth-field input.avs-auth-input[type="password"]::placeholder,
.avs-auth-shell #avs-login-form .avs-auth-field input.avs-auth-input[type="email"]::placeholder,
.avs-auth-shell #avs-lostpassword-form .avs-auth-field input.avs-auth-input[type="text"]::placeholder,
.avs-auth-shell #avs-resetpass-form .avs-auth-field input.avs-auth-input[type="password"]::placeholder {
	color: var(--avs-auth-placeholder);
	opacity: 0.7;
}

.avs-auth-input:focus {
	outline: none;
	box-shadow: none;
}

.avs-auth-inputwrap:focus-within {
	box-shadow:
		0 0 0 1px rgba(15, 23, 42, 1),
		0 0 0 4px var(--avs-auth-focus),
		0 26px 70px rgba(0, 0, 0, 0.75);
}

.avs-auth-input::placeholder {
	color: var(--avs-auth-placeholder);
}

.avs-auth-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: var(--avs-row);
	gap: 12px;
}

.avs-auth-nav {
	margin-top: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: var(--avs-row);
	color: var(--avs-auth-muted);
}

.avs-auth-remember {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	user-select: none;
	padding: 6px 10px;
	border-radius: 999px;
	transition: background-color 0.16s ease;
}

.avs-auth-checkbox {
	appearance: none;
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	margin: 0;
	border-radius: 6px;
	border: 1px solid rgba(var(--avs-auth-outline-rgb), 0.45);
	background: var(--avs-auth-surface-raised);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
	display: inline-block;
	vertical-align: middle;
	transition: transform 0.12s ease, border-color 0.16s ease, background-color 0.16s ease;
}

.avs-auth-remember:hover {
	background: rgba(255, 255, 255, 0.04);
}

.avs-auth-checkbox:checked {
	border-color: rgba(var(--avs-auth-cool-rgb), 0.95);
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M6.2 11.6 2.9 8.3l1.1-1.1 2.2 2.2 5-5 1.1 1.1z'/%3E%3C/svg%3E"),
		linear-gradient(135deg, rgba(var(--avs-auth-cool-rgb), 0.95), rgba(var(--avs-auth-warm-rgb), 0.78));
	background-repeat: no-repeat, no-repeat;
	background-position: center, center;
	background-size: 12px 12px, cover;
}

.avs-auth-checkbox:focus {
	outline: none;
	transform: scale(1.03);
	box-shadow:
		0 0 0 1px rgba(15, 23, 42, 1),
		0 0 0 3px var(--avs-auth-focus);
}

.avs-auth-forgot {
	color: rgba(var(--avs-auth-link-rgb), 0.95) !important;
	text-decoration: none !important;
	font-weight: 700;
	padding: 6px 10px;
	border-radius: 999px;
	transition: background-color 0.16s ease, color 0.16s ease;
}

.avs-auth-forgot:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 4px;
	background: rgba(255, 255, 255, 0.04);
}

.avs-auth-forgot.avs-auth-forgot--disabled,
.avs-auth-forgot[aria-disabled="true"] {
	color: rgba(var(--avs-auth-link-rgb), 0.45) !important;
	background: transparent;
	cursor: not-allowed;
	pointer-events: none;
	text-decoration: none !important;
}

.avs-auth-submit {
	position: relative;
	width: 100%;
	border-radius: 999px;
	border: none;
	padding: 18px 28px !important;
	min-height: 56px !important;
	background-image: linear-gradient(135deg, var(--avs-auth-accent-start), var(--avs-auth-accent-end));
	color: #fff;
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	transition: transform 0.16s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.16s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.12s ease;
	appearance: none;
	-webkit-appearance: none;
	box-shadow:
		0 8px 24px rgba(var(--avs-auth-shadow-rgb), 0.35),
		0 4px 12px rgba(0, 0, 0, 0.4),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
	overflow: hidden;
}

.avs-auth-submit::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background:
		radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.25), transparent 50%),
		radial-gradient(circle at 70% 80%, rgba(255, 255, 255, 0.15), transparent 50%);
	opacity: 0.6;
	transition: opacity 0.16s ease;
	pointer-events: none;
	z-index: 1;
}

.avs-auth-submit::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), transparent);
	opacity: 0;
	transition: opacity 0.16s ease;
	pointer-events: none;
	z-index: 1;
}

.avs-auth-shell .avs-auth-submit {
	padding: 18px 28px !important;
	min-height: 56px !important;
	font-size: 16px;
	letter-spacing: -0.01em;
}

.avs-auth-submit__label {
	display: inline-block;
	position: relative;
	z-index: 2;
}

.avs-auth-submit:hover {
	transform: translateY(-2px);
	box-shadow:
		0 12px 32px rgba(var(--avs-auth-shadow-rgb), 0.45),
		0 6px 16px rgba(0, 0, 0, 0.5),
		inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.avs-auth-submit:hover::before {
	opacity: 0.8;
}

.avs-auth-submit:hover::after {
	opacity: 1;
}

.avs-auth-submit {
	transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.avs-auth-submit:active {
	transform: translateY(0px) scale(0.98);
	box-shadow:
		0 4px 12px rgba(var(--avs-auth-shadow-rgb), 0.3),
		0 2px 6px rgba(0, 0, 0, 0.4),
		inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.avs-auth-submit:active::before {
	opacity: 0.4;
}

.avs-auth-submit--loading {
	transform: scale(0.98);
}

.avs-auth-submit--loading {
	cursor: progress;
	animation: avs-auth-pulse 2s ease-in-out infinite;
}

.avs-auth-submit--loading::before {
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.1) 50%,
		transparent
	);
	background-size: 200% 100%;
	animation: avs-auth-shimmer 2s ease-in-out infinite, avs-auth-pulse-overlay 2s ease-in-out infinite;
}

.avs-auth-submit--loading .avs-auth-submit__label {
	opacity: 0.7;
	transition: opacity 0.3s ease;
}

.avs-auth-spinner {
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2.5px solid rgba(255, 255, 255, 0.3);
	border-top-color: rgba(255, 255, 255, 0.9);
	animation: avs-auth-spin 0.75s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
	transform-origin: center center;
}

	.avs-auth-submit--loading .avs-auth-spinner {
		opacity: 1;
	}

	.avs-auth-password-choice {
		display: none;
	}

	.avs-auth-passkey-choice-ready:not(.is-password-flow-active) .avs-auth-password-flow {
		display: none !important;
	}

	.avs-auth-passkey-choice-ready:not(.is-password-flow-active) .avs-auth-password-choice {
		display: flex;
	}

	.avs-auth-passkey-choice-ready.is-password-flow-active .avs-auth-password-choice,
	.avs-auth-passkey-choice-ready.is-password-flow-active .avs-auth-passkey,
	.avs-auth-passkey-choice-ready.is-password-flow-active .avs-auth-passkey-waitmark {
		display: none !important;
	}

	.is-passkey-authenticating .avs-auth-login-fields > .avs-auth-field,
	.is-passkey-authenticating .avs-auth-login-fields > .avs-auth-secondary,
	.is-passkey-authenticating .avs-auth-password-flow,
	.is-passkey-authenticating .avs-auth-password-choice,
	.is-passkey-authenticating .avs-auth-secondary,
	.is-passkey-authenticating .avs-turnstile-slot,
	.is-passkey-success .avs-auth-login-fields > .avs-auth-field,
	.is-passkey-success .avs-auth-login-fields > .avs-auth-secondary,
	.is-passkey-success .avs-auth-password-flow,
	.is-passkey-success .avs-auth-password-choice,
	.is-passkey-success .avs-auth-secondary,
	.is-passkey-success .avs-turnstile-slot {
		opacity: 0;
		transform: translateY(-8px);
		max-height: 0;
		margin-top: 0;
		margin-bottom: 0;
		overflow: hidden;
		pointer-events: none;
	}

	.is-passkey-success .avs-auth-login-fields > .avs-auth-field,
	.is-passkey-success .avs-auth-login-fields > .avs-auth-secondary,
	.is-passkey-success .avs-auth-secondary,
	.is-passkey-success .avs-turnstile-slot {
		transition: none;
	}

	.is-passkey-success .avs-auth-password-flow,
	.is-passkey-success .avs-auth-password-choice {
		display: none !important;
		transition: none;
	}

#avs-login-form.is-passkey-authenticating > .avs-auth-password-flow,
#avs-login-form.is-passkey-authenticating > .avs-auth-password-choice,
#avs-login-form.is-passkey-authenticating > .avs-auth-secondary,
#avs-login-form.is-passkey-authenticating > .avs-turnstile-slot,
#avs-login-form.is-passkey-success > .avs-auth-password-flow,
#avs-login-form.is-passkey-success > .avs-auth-password-choice,
#avs-login-form.is-passkey-success > .avs-auth-secondary,
#avs-login-form.is-passkey-success > .avs-turnstile-slot {
	display: none !important;
	opacity: 0;
	transform: translateY(-8px);
	max-height: 0;
	margin-top: 0;
	margin-bottom: 0;
	overflow: hidden;
	pointer-events: none;
}

	.avs-auth-passkey {
		position: relative;
	width: 100%;
	min-height: 50px;
	margin-top: 10px;
	padding: 14px 24px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	overflow: visible;
	transition:
		border-color 180ms var(--avs-passkey-success-easing),
		background 180ms var(--avs-passkey-success-easing),
		color 180ms var(--avs-passkey-success-easing),
		box-shadow 220ms var(--avs-passkey-success-easing);
}

.avs-auth-passkey[hidden] {
	display: none !important;
}

.avs-auth-passkey:hover {
	border-color: rgba(255, 255, 255, 0.42);
	background: rgba(255, 255, 255, 0.13);
}

.avs-auth-passkey:disabled {
	cursor: default;
	opacity: 0.78;
}

.is-passkey-authenticating .avs-auth-passkey:disabled {
	opacity: 1;
}

.is-passkey-authenticating .avs-auth-passkey {
	margin-top: 0;
}

	.avs-auth-passkey .avs-auth-spinner {
		display: none !important;
	}

	.avs-auth-passkey-waitmark {
		position: relative;
		width: 190px;
		height: 190px;
		margin: 0 auto 14px;
		display: grid;
		place-items: center;
		opacity: 0;
		transform: translateY(8px) scale(0.94);
		transition: opacity 180ms ease, transform 180ms ease, filter 180ms ease;
	}

	.avs-auth-passkey-waitmark[hidden] {
		display: none !important;
	}

	.avs-auth-passkey-waitmark:not([hidden]) {
		opacity: 1;
		transform: translateY(0) scale(1);
	}

	.avs-auth-passkey-waitmark img,
	.avs-auth-passkey-success-icon {
		grid-area: 1 / 1;
		width: 150px;
		height: 150px;
	}

	.avs-auth-passkey-waitmark img {
		object-fit: contain;
		filter: drop-shadow(0 10px 24px rgba(var(--avs-auth-cool-rgb), 0.28));
	}

	.avs-auth-passkey-success-icon {
		display: none;
		overflow: visible;
		color: #7ddf9b;
		filter: drop-shadow(0 12px 30px rgba(74, 222, 128, 0.34));
	}

	.avs-auth-passkey-success-icon circle {
		fill: rgba(34, 197, 94, 0.16);
		stroke: rgba(125, 223, 155, 0.82);
		stroke-width: 1.6;
	}

	.avs-auth-passkey-success-icon path {
		fill: none;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 2.5;
	}

	.avs-auth-passkey-waitmark::after {
		content: "";
		position: absolute;
		inset: 12px;
		border-radius: 24px;
		background: linear-gradient(
			110deg,
			transparent 0%,
			rgba(255, 255, 255, 0.12) 42%,
			rgba(255, 255, 255, 0.28) 50%,
			rgba(255, 255, 255, 0.1) 58%,
			transparent 100%
		);
		background-size: 220% 100%;
		mix-blend-mode: screen;
		pointer-events: none;
	}

	.is-passkey-authenticating .avs-auth-passkey-waitmark::after {
		animation: avs-passkey-wait-shimmer 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
	}

	.is-passkey-authenticating .avs-auth-passkey-waitmark {
		margin-bottom: 0;
	}

	.is-passkey-success .avs-auth-passkey-waitmark {
		filter: drop-shadow(0 12px 34px rgba(74, 222, 128, 0.28));
	}

	.is-passkey-success .avs-auth-passkey-waitmark img {
		display: none;
	}

	.is-passkey-success .avs-auth-passkey-success-icon {
		display: block;
	}

	.is-passkey-success .avs-auth-passkey-waitmark::after {
		animation: none;
		background: radial-gradient(circle, rgba(125, 223, 155, 0.22), transparent 64%);
	}

	.is-passkey-success .avs-auth-passkey-another-way {
		display: none !important;
	}

	@media (max-width: 640px) {
		.avs-auth-passkey-waitmark {
			width: 150px;
			height: 150px;
		}

		.avs-auth-passkey-waitmark img,
		.avs-auth-passkey-success-icon {
			width: 120px;
			height: 120px;
		}
	}

	.avs-auth-passkey__label {
		position: relative;
	z-index: 2;
}

.avs-auth-passkey-help {
	display: none;
}

.avs-auth-passkey-tooltip {
	display: none;
}

@media (hover: hover) and (pointer: fine) {
	.avs-auth-passkey-help {
		position: absolute;
		right: 16px;
		top: 50%;
		z-index: 3;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		border-radius: 999px;
		border: 1px solid rgba(255, 255, 255, 0.32);
		background: rgba(255, 255, 255, 0.1);
		color: rgba(255, 255, 255, 0.92);
		font-size: 14px;
		font-weight: 800;
		line-height: 1;
		transform: translateY(-50%);
		cursor: help;
		transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
	}

	.avs-auth-passkey-help:hover,
	.avs-auth-passkey-help:focus {
		border-color: rgba(255, 255, 255, 0.54);
		background: rgba(255, 255, 255, 0.18);
		color: #fff;
		outline: none;
	}

	.avs-auth-passkey-help:focus {
		box-shadow: 0 0 0 3px var(--avs-auth-focus);
	}

	.avs-auth-passkey-tooltip {
		position: absolute;
		right: 8px;
		bottom: calc(100% + 12px);
		z-index: 10;
		display: block;
		width: min(310px, calc(100vw - 48px));
		padding: 14px 16px;
		border: 1px solid rgba(255, 255, 255, 0.2);
		border-radius: 8px;
		background: rgba(12, 15, 19, 0.96);
		box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
		color: var(--avs-auth-text);
		text-align: left;
		opacity: 0;
		transform: translateY(6px);
		pointer-events: none;
		transition: opacity 140ms ease, transform 140ms ease;
	}

	.avs-auth-passkey-tooltip::after {
		content: "";
		position: absolute;
		right: 24px;
		bottom: -7px;
		width: 12px;
		height: 12px;
		border-right: 1px solid rgba(255, 255, 255, 0.2);
		border-bottom: 1px solid rgba(255, 255, 255, 0.2);
		background: rgba(12, 15, 19, 0.96);
		transform: rotate(45deg);
	}

	.avs-auth-passkey-help:hover + .avs-auth-passkey-tooltip,
	.avs-auth-passkey-help:focus + .avs-auth-passkey-tooltip,
	.avs-auth-passkey-tooltip:hover {
		opacity: 1;
		transform: translateY(0);
	}
}

.is-passkey-authenticating .avs-auth-passkey-help,
.is-passkey-authenticating .avs-auth-passkey-tooltip,
.is-passkey-success .avs-auth-passkey-help,
.is-passkey-success .avs-auth-passkey-tooltip {
	display: none !important;
}

.avs-auth-passkey-tooltip__title,
.avs-auth-passkey-tooltip__body {
	display: block;
}

.avs-auth-passkey-tooltip__title {
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.25;
}

.avs-auth-passkey-tooltip__body {
	color: var(--avs-auth-muted);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.45;
}

.avs-auth-passkey-another-way {
	align-self: center;
	margin: 10px auto 0;
	padding: 4px 8px;
	border: 0;
	background: transparent;
	color: rgba(var(--avs-auth-link-rgb), 0.95);
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: color 160ms ease, background-color 160ms ease;
}

.avs-auth-passkey-another-way[hidden] {
	display: none !important;
}

.avs-auth-passkey-another-way:hover,
.avs-auth-passkey-another-way:focus {
	color: #fff;
	background: rgba(255, 255, 255, 0.06);
	outline: none;
}

.avs-auth-passkey-status {
	margin: 8px 0 0;
	color: var(--avs-auth-muted);
	font-size: 13px;
	line-height: 1.45;
	text-align: center;
}

.avs-auth-passkey-status[hidden] {
	display: none !important;
}

.avs-auth-invite-cta {
	display: flex;
	justify-content: center;
}

.avs-auth-secondary {
	margin-top: 12px;
	display: flex;
	justify-content: center;
}

/* Invite panel - high specificity to beat Kleo */
.avs-auth-shell #avs-login-form .avs-auth-invite-panel-wrapper {
	text-align: center;
	margin: 0;
	padding: 0;
}

.avs-auth-shell #avs-login-form .avs-auth-invite-panel-wrapper h3.avs-auth-invite-title-text {
	margin: 0 0 8px;
	padding: 0;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.2px;
	line-height: 1.2;
	color: #f7f9ff;
}


.avs-auth-shell #avs-login-form .avs-auth-invite-panel-wrapper .avs-auth-field-wrapper {
	margin: 0 0 20px;
	padding: 0;
}

.avs-auth-shell #avs-login-form .avs-auth-invite-panel-wrapper p.avs-auth-invite-msg-text {
	margin: 10px 0 0;
	padding: 0;
	min-height: 18px;
	font-size: 14px;
	font-weight: 400;
	color: var(--avs-auth-error-fg-soft);
	line-height: 1.4;
}

.avs-auth-help {
	margin: 2px 0 0;
	min-height: 0;
	font-size: 13px;
	color: var(--avs-auth-error-fg-soft);
	display: none;
}

.avs-auth-help:not(:empty) {
	display: block;
}

.avs-auth-shell #avs-login-form .avs-auth-invite-panel-wrapper button.avs-auth-invite-back-btn {
	margin: 12px 0 0;
	padding: 12px 14px;
	width: 100%;
	border-radius: 999px;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.28);
	color: var(--avs-auth-text);
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	transition: background-color 0.12s ease, border-color 0.12s ease;
}

.avs-auth-shell #avs-login-form .avs-auth-invite-panel-wrapper button.avs-auth-invite-back-btn:hover {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(255, 255, 255, 0.36);
}

/* Back button in forgot password and reset password views */
.avs-auth-shell .avs-auth-nav-wrapper .avs-auth-invite-cta-wrapper button.avs-auth-invite-back-btn {
	margin: 0;
	padding: 0;
	width: auto;
	border-radius: 0;
	background: transparent;
	border: 0;
	color: rgba(255, 255, 255, 0.7);
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
	transition: color 0.15s ease;
}

.avs-auth-shell .avs-auth-nav-wrapper .avs-auth-invite-cta-wrapper button.avs-auth-invite-back-btn:hover {
	background: transparent;
	border: 0;
	color: rgba(255, 255, 255, 0.9);
	text-decoration: underline;
}

.avs-auth-shell #avs-login-form .avs-auth-invite-panel button.avs-auth-submit.avs-auth-invite-verify {
	margin: 0 0 10px;
	padding: 14px 20px;
	width: 100%;
	min-height: 48px;
	font-size: 16px;
	font-weight: 700;
}

.avs-auth-shell .avs-auth-secondary button.avs-auth-invite-toggle {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(var(--avs-auth-outline-rgb), 0.26);
	color: rgba(226, 232, 240, 0.92);
	border-radius: 999px;
	padding: 14px 18px;
	margin: 0;
	min-height: 48px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	transition: transform 0.12s ease, background-color 0.16s ease, border-color 0.16s ease;
}

.avs-auth-shell .avs-auth-secondary button.avs-auth-invite-toggle:hover {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(var(--avs-auth-outline-rgb), 0.45);
	transform: translateY(-1px);
}

.avs-auth-shell .avs-auth-secondary a.avs-auth-signup-link {
	display: inline-block;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(var(--avs-auth-outline-rgb), 0.26);
	color: rgba(226, 232, 240, 0.92);
	border-radius: 999px;
	padding: 14px 18px;
	margin: 0;
	min-height: 48px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
	text-align: center;
	transition: transform 0.12s ease, background-color 0.16s ease, border-color 0.16s ease;
}

.avs-auth-shell .avs-auth-secondary a.avs-auth-signup-link:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(var(--avs-auth-outline-rgb), 0.4);
	transform: translateY(-1px);
	color: rgba(226, 232, 240, 1);
	text-decoration: none;
}

/* High-specificity styles for all labels to prevent Kleo overrides */
.avs-auth-shell .avs-auth-field-wrapper label.avs-auth-label-text {
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.4;
	display: block;
}

/* High-specificity styles for all help text */
.avs-auth-shell .avs-auth-field-wrapper p.avs-auth-help-text {
	margin: 2px 0 0;
	padding: 0;
	min-height: 0;
	font-size: 13px;
	color: var(--avs-auth-error-fg-soft);
	line-height: 1.4;
	display: none;
}

.avs-auth-shell .avs-auth-field-wrapper p.avs-auth-help-text:not(:empty) {
	display: block;
}

/* High-specificity styles for all submit button labels */
.avs-auth-shell button.avs-auth-submit-primary span.avs-auth-submit-label-text {
	margin: 0;
	padding: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	color: inherit;
}

/* High-specificity styles for spinner */
.avs-auth-shell span.avs-auth-spinner-icon {
	margin: 0;
	padding: 0;
	display: block !important;
}

/* High-specificity styles for remember me text */
.avs-auth-shell label.avs-auth-remember-label span.avs-auth-remember-text {
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.85);
}

/* High-specificity styles for toggle password text */
.avs-auth-shell button.avs-auth-togglepass-btn span.avs-auth-togglepass-text {
	margin: 0;
	padding: 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	color: rgba(226, 232, 240, 0.9);
}

/* High-specificity styles for navigation wrapper */
.avs-auth-shell .avs-auth-nav-wrapper {
	margin: 0;
	padding: 0;
}

.avs-auth-shell .avs-auth-row-wrapper {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

/* High-specificity styles for invite CTA wrapper */
.avs-auth-shell .avs-auth-invite-cta-wrapper {
	margin: 0;
	padding: 0;
	width: 100%;
	text-align: center;
}

/* Compliance links footer */
.avs-auth-shell .avs-auth-compliance-wrapper {
	margin: 24px 0 0;
	padding: 0;
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 20px;
}

.avs-auth-shell .avs-auth-compliance-wrapper a.avs-auth-compliance-link {
	margin: 0;
	padding: 0 8px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--avs-auth-faint);
	text-decoration: none;
	transition: color 0.15s ease;
}

.avs-auth-shell .avs-auth-compliance-wrapper a.avs-auth-compliance-link:hover {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
}

.avs-auth-shell .avs-auth-compliance-wrapper span.avs-auth-compliance-separator {
	margin: 0;
	padding: 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.3);
}

/* High-specificity styles for error wrapper */
.avs-auth-shell .avs-auth-error-wrapper {
	margin: 0 0 20px;
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--avs-auth-error-fg);
	background: var(--avs-auth-error-bg);
	border: 1px solid var(--avs-auth-error-border);
	border-radius: 12px;
}

.avs-auth-shell .avs-auth-error-wrapper[hidden] {
	display: none !important;
}

.avs-auth-notice {
	margin: 0 0 20px;
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--avs-auth-notice-fg);
	background: var(--avs-auth-notice-bg);
	border: 1px solid var(--avs-auth-notice-border);
	border-radius: 12px;
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.avs-auth-notice.is-dismissing {
	opacity: 0;
	transform: translateY(-4px);
	pointer-events: none;
}

.avs-auth-togglepass {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(15, 23, 42, 0.45);
	color: rgba(226, 232, 240, 0.9);
	border-radius: 999px;
	padding: 8px 12px;
	line-height: 1;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	backdrop-filter: blur(10px);
}

.avs-auth-togglepass:hover {
	background: rgba(15, 23, 42, 0.6);
	border-color: rgba(255, 255, 255, 0.22);
	color: #fff;
}

.avs-auth-shell .avs-auth-inputwrap input.avs-auth-input--password,
.avs-auth-shell .avs-auth-inputwrap input[type="password"].avs-auth-input,
.avs-auth-shell #avs-login-form .avs-auth-inputwrap input[type="password"],
.avs-auth-shell #avs-resetpass-form .avs-auth-inputwrap input[type="password"] {
	padding-right: 96px !important;
	padding-left: 20px !important;
	padding-top: 13px !important;
	padding-bottom: 13px !important;
	color: #ffffff !important;
}

/* Maximum specificity to override Kleo's .main-color input[type="text"] selector */
.avs-auth-shell #avs-auth-card #avs-login-form .avs-auth-login-fields-wrapper .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input-text[type="text"],
.avs-auth-shell #avs-auth-card #avs-login-form .avs-auth-login-fields-wrapper .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input-text[type="password"],
.avs-auth-shell #avs-auth-card #avs-login-form .avs-auth-login-fields-wrapper .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input-text[type="email"],
.avs-auth-shell #avs-auth-card #avs-lostpassword-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input-text[type="text"],
.avs-auth-shell #avs-auth-card #avs-lostpassword-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input-text[type="email"],
.avs-auth-shell #avs-auth-card #avs-resetpass-form .avs-auth-field-wrapper .avs-auth-inputwrap-container input.avs-auth-input-text[type="password"] {
	color: #ffffff !important;
}

.avs-auth-error {
	margin-top: 18px;
	padding: 12px 16px;
	border-radius: 20px;
	background: rgba(239, 68, 68, 0.15);
	border: 1px solid var(--avs-auth-error-border-strong);
	color: #fee2e2;
	font-size: 15px;
}

.avs-auth-social {
	margin-top: 20px;
	display: grid;
	gap: 12px;
}

/* Best-effort styling for social login buttons injected by 3rd-party plugins. */
.avs-auth-social button,
.avs-auth-social a {
	border-radius: 14px !important;
	background: rgba(255, 255, 255, 0.04) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	color: var(--avs-auth-text) !important;
	padding: 12px !important;
}

@media (max-width: 640px) {
	.avs-auth-shell {
		padding: 24px 16px;
	}

	.avs-auth-card {
		border-radius: 24px;
	}

	.avs-auth-title {
		font-size: 30px;
	}

	.avs-auth-row {
		flex-direction: column;
		align-items: flex-start;
	}
}

.avs-auth-shell[data-avs-device="mobile"] {
	padding: 24px 16px;
}

.avs-auth-shell[data-avs-device="mobile"] .avs-auth-card {
	border-radius: 24px;
}

.avs-auth-shell[data-avs-device="mobile"] .avs-auth-title {
	font-size: 30px;
}

.avs-auth-shell[data-avs-device="mobile"] .avs-auth-row {
	flex-direction: column;
	align-items: flex-start;
}

@media (min-width: 1200px) {
	.avs-auth-shell {
		padding: 60px 80px;
	}

	.avs-auth-card {
		max-width: 480px;
	}

	.avs-auth-title {
		font-size: 38px;
	}
}

	@media (prefers-reduced-motion: reduce) {
	.avs-auth-card,
	.avs-auth-card::after,
	.avs-auth-login-fields,
	.avs-auth-field,
	.avs-auth-passkey,
	.avs-auth-passkey::before,
	.avs-auth-passkey-waitmark,
	.avs-auth-passkey-help,
	.avs-auth-passkey-tooltip,
	.avs-auth-passkey-another-way,
	.avs-turnstile-slot {
		transition: none;
	}

		.avs-auth-submit--loading,
		.avs-auth-submit--loading::before,
		.is-passkey-authenticating .avs-auth-passkey-waitmark::after,
		.avs-auth-spinner {
			animation: none;
		}
}

	@keyframes avs-auth-spin {
		from {
			transform: translateY(-50%) rotate(0deg);
		}
		to {
			transform: translateY(-50%) rotate(360deg);
		}
	}

	@keyframes avs-passkey-wait-shimmer {
		0% {
			background-position: 140% 0;
		}
		100% {
			background-position: -120% 0;
		}
	}

@keyframes avs-auth-pulse {
	0%, 100% {
		box-shadow:
			0 8px 24px rgba(var(--avs-auth-shadow-rgb), 0.4),
			0 4px 12px rgba(0, 0, 0, 0.4),
			inset 0 1px 0 rgba(255, 255, 255, 0.2);
	}
	50% {
		box-shadow:
			0 12px 32px rgba(var(--avs-auth-shadow-rgb), 0.5),
			0 6px 16px rgba(0, 0, 0, 0.5),
			inset 0 1px 0 rgba(255, 255, 255, 0.25);
	}
}

@keyframes avs-auth-shimmer {
	0% {
		background-position: -200% center;
	}
	100% {
		background-position: 200% center;
	}
}

@keyframes avs-auth-pulse-overlay {
	0%, 100% {
		opacity: 0.6;
	}
	50% {
		opacity: 0.8;
	}
}

@keyframes avs-auth-shake {
	10%,
	90% {
		transform: translateX(-2px);
	}
	20%,
	80% {
		transform: translateX(4px);
	}
	30%,
	50%,
	70% {
		transform: translateX(-4px);
	}
	40%,
	60% {
		transform: translateX(4px);
	}
}

/* Hide footer on login page for clean, focused experience */
body.avs-login-page {
	margin: 0;
	padding: 0;
	overflow: hidden;
}

body.avs-login-page #main,
body.avs-login-page .container-wrap,
body.avs-login-page .wrap-content,
body.avs-login-page .article-content {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

body.avs-login-page .avs-auth-shell {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	margin: 0;
}


body.avs-login-page #footer,
body.avs-login-page #socket {
	display: none !important;
}
