/*
 * 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-border: rgba(255, 255, 255, 0.22);
	--avs-auth-text: #f7f9ff;
	--avs-auth-muted: rgba(255, 255, 255, 0.7);
	--avs-auth-accent-start: #5b21b6;
	--avs-auth-accent-end: #9333ea;
	--avs-auth-focus: rgba(99, 102, 241, 0.3);

	/* Login background (optional, controlled by Login Designer). */
	--avs-login-bg-desktop: none;
	--avs-login-bg-mobile: none;
	--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-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;
}

.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),
		radial-gradient(900px circle at 12% 18%, rgba(129, 140, 248, 0.16), transparent 55%),
		radial-gradient(820px circle at 82% 76%, rgba(236, 72, 153, 0.12), transparent 58%),
		radial-gradient(680px circle at 62% 40%, rgba(34, 211, 238, 0.06), transparent 60%);
	background-size:
		var(--avs-login-bg-size-current, cover),
		auto,
		auto,
		auto;
	background-position:
		var(--avs-login-bg-position-current),
		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-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-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(129, 140, 248, 0.28), transparent 55%),
		radial-gradient(circle at 92% 110%, rgba(236, 72, 153, 0.22), transparent 58%);
	opacity: 0.9;
	pointer-events: none;
	mix-blend-mode: screen;
	filter: blur(14px);
}

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

.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: rgba(255, 255, 255, 0.65);
	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-form[hidden],
.avs-auth-view[hidden] {
	display: none !important;
}

.avs-auth-login-fields {
	display: flex;
	flex-direction: column;
	gap: var(--avs-s4);
}

.avs-auth-field {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.avs-auth-inputwrap {
	position: relative;
	display: flex;
	align-items: center;
	border-radius: 999px;
	padding: 1px;
	background:
		linear-gradient(135deg, rgba(129, 140, 248, 0.65), rgba(236, 72, 153, 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(129, 140, 248, 0.28), transparent 55%),
		radial-gradient(circle at 90% 110%, rgba(236, 72, 153, 0.24), transparent 58%),
		rgba(12, 14, 24, 0.92);
	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;
}

/* 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: #c9c7ff;
	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 rgba(129, 140, 248, 0.55),
		0 26px 70px rgba(0, 0, 0, 0.75);
}

.avs-auth-input::placeholder {
	color: #c9c7ff;
}

.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(148, 163, 255, 0.45);
	background: rgba(17, 24, 39, 0.7);
	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(129, 140, 248, 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(99, 102, 241, 0.95), rgba(236, 72, 153, 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 rgba(129, 140, 248, 0.55);
}

.avs-auth-forgot {
	color: rgba(165, 180, 252, 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-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(124, 58, 237, 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(124, 58, 237, 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(124, 58, 237, 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-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: rgba(248, 113, 113, 0.9);
	line-height: 1.4;
}

.avs-auth-help {
	margin: 2px 0 0;
	min-height: 0;
	font-size: 13px;
	color: rgba(248, 113, 113, 0.9);
	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(148, 163, 255, 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(148, 163, 255, 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(148, 163, 255, 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(148, 163, 255, 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: rgba(248, 113, 113, 0.9);
	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: rgba(255, 255, 255, 0.55);
	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: rgba(248, 113, 113, 0.95);
	background: rgba(248, 113, 113, 0.12);
	border: 1px solid rgba(248, 113, 113, 0.28);
	border-radius: 12px;
}

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

.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 rgba(248, 113, 113, 0.35);
	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;
	}
}

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

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

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

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

@keyframes avs-auth-pulse {
	0%, 100% {
		box-shadow:
			0 8px 24px rgba(124, 58, 237, 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(124, 58, 237, 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;
}

