/* =========================================================
   1AUTO — Unified OTP CSS
   Registration: .elementor-element-97c2d61
   Login fallback: .elementor-element-5bc5113
   Forgot password: .elementor-element-5e38de7
   ========================================================= */

/* Pinned OTP messages — held visible by JS for a few seconds even
   after the plugin clears the original error/status element. */
.oneauto-otp-pinned-msg {
	display: none;
	width: 100% !important;
	margin: -6px 0 16px !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	text-align: center !important;
	opacity: 0;
	transition: opacity .15s ease;
}

.oneauto-otp-pinned-msg--visible {
	display: block !important;
	opacity: 1;
}

.oneauto-otp-pinned-msg--error {
	color: #dc2626 !important;
	font-weight: 700 !important;
}

.oneauto-otp-pinned-msg--info {
	color: #0D53C5 !important;
	font-weight: 600 !important;
}

/* Wrong-code message — shown below the OTP inputs. Deliberately
   not styled with notranslate anywhere in the HTML so TranslatePress
   can translate it automatically. */
.oneauto-otp-wrongcode-msg {
	display: none;
	width: 100% !important;
	margin: 14px 0 4px !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
	font-weight: 700 !important;
	color: #dc2626 !important;
	text-align: center !important;
}

.oneauto-otp-wrongcode-msg--visible {
	display: block !important;
}

.oneauto-otp-wrongcode-msg--lockout {
	color: #991b1b !important;
}

/* Redirect message — single line, with our own spinner, replacing
   whatever the plugin renders (which can duplicate or mistranslate). */
.oneauto-otp-redirect-msg {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	margin: 0 !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #0D53C5 !important;
}

.oneauto-otp-redirect-msg:before {
	content: "";
	width: 14px;
	height: 14px;
	border: 2px solid rgba(13, 83, 197, .25);
	border-top-color: #0D53C5;
	border-radius: 50%;
	animation: oneauto-otp-spin .7s linear infinite;
	flex-shrink: 0;
}

@keyframes oneauto-otp-spin {
	to { transform: rotate(360deg); }
}

/* Resend confirmation / limit-reached states */
.ap-otp-actions p.oneauto-otp-resend-confirm {
	color: #15803d !important;
	font-weight: 700 !important;
}

.ap-otp-actions p.oneauto-otp-limit-reached {
	color: #dc2626 !important;
	font-weight: 700 !important;
}

/* Keep the language switcher dropdown above any OTP overlay
   (the OTP card uses z-index: 60, which could otherwise sit on
   top of part of the dropdown menu). */
.trp-language-switcher-container,
.trp-language-switcher-container .sub-menu,
.elementor-nav-menu__container .sub-menu,
nav.elementor-nav-menu--dropdown {
	z-index: 99999 !important;
}

/* Custom language-switch confirmation modal */
#oneauto-lang-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
}

#oneauto-lang-modal.is-visible {
	display: block;
}

.oneauto-lang-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.45);
}

.oneauto-lang-modal-box {
	position: absolute;
	top: 50%;
	left: 50%;
	width: calc(100% - 32px);
	max-width: 440px;
	transform: translate(-50%, -50%);
	background: #fff;
	border-radius: 12px;
	padding: 26px;
	box-shadow: 0 20px 60px rgba(0,0,0,.2);
}

.oneauto-lang-modal-title {
	font-size: 20px;
	font-weight: 700;
	color: #111827;
	margin-bottom: 10px;
}

.oneauto-lang-modal-text {
	font-size: 15px;
	color: #444;
	margin-bottom: 22px;
}

.oneauto-lang-modal-actions {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
}

.oneauto-lang-modal-btn {
	border: 0;
	border-radius: 999px;
	padding: 12px 18px;
	font-weight: 700;
	cursor: pointer;
	transition: all .2s ease;
	font-size: 14px;
}

.oneauto-lang-modal-stay {
	background: #0D53C5;
	color: #fff;
}

.oneauto-lang-modal-stay:hover {
	background: #0a4399;
}

.oneauto-lang-modal-leave {
	background: #d92d20;
	color: #fff;
}

.oneauto-lang-modal-leave:hover {
	background: #b42318;
}

html.oneauto-login-otp-verified .ap-otp-container,
html.oneauto-login-otp-verified .elementor-message-danger {
	opacity: 0 !important;
	pointer-events: none !important;
}

.oneauto-password-error + .elementor-message-danger,
.elementor-message-danger:empty {
	display: none !important;
}

.oneauto-inline-otp-link {
	display: inline !important;
	white-space: nowrap !important;
}

.elementor-element-97c2d61,
.elementor-element-5bc5113,
.elementor-element-5e38de7 {
	position: relative !important;
}

/* Register + forgot: overlay mode */
.elementor-element-97c2d61.oneauto-otp-active .elementor-form-fields-wrapper,
.elementor-element-5e38de7.oneauto-otp-active .elementor-form-fields-wrapper,
.elementor-element-97c2d61:has(.ap-otp-container) .elementor-form-fields-wrapper,
.elementor-element-5e38de7:has(.ap-otp-container) .elementor-form-fields-wrapper {
	position: relative !important;
	min-height: 390px !important;
	overflow: visible !important;
}

.elementor-element-97c2d61.oneauto-otp-active .elementor-field-group:not(.ap-otp-container),
.elementor-element-97c2d61.oneauto-otp-active .elementor-field-type-submit,
.elementor-element-97c2d61.oneauto-otp-active .elementor-message,
.elementor-element-5e38de7.oneauto-otp-active .elementor-field-group:not(.ap-otp-container),
.elementor-element-5e38de7.oneauto-otp-active .elementor-field-type-submit,
.elementor-element-5e38de7.oneauto-otp-active .elementor-message,
.elementor-element-97c2d61:has(.ap-otp-container) .elementor-field-group:not(.ap-otp-container),
.elementor-element-97c2d61:has(.ap-otp-container) .elementor-field-type-submit,
.elementor-element-97c2d61:has(.ap-otp-container) .elementor-message,
.elementor-element-5e38de7:has(.ap-otp-container) .elementor-field-group:not(.ap-otp-container),
.elementor-element-5e38de7:has(.ap-otp-container) .elementor-field-type-submit,
.elementor-element-5e38de7:has(.ap-otp-container) .elementor-message {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Register + forgot OTP container */
.elementor-element-97c2d61 .ap-otp-container,
.elementor-element-5e38de7 .ap-otp-container {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: auto !important;
	bottom: auto !important;
	width: var(--oneauto-otp-width, 100%) !important;
	max-width: none !important;
	margin: 0 !important;
	z-index: 60 !important;
	display: flex !important;
	align-items: flex-start !important;
	justify-content: center !important;
	padding-top: 6px !important;
	overflow: visible !important;
}

/* Login page OTP stays inline */
.elementor-element-5bc5113 .ap-otp-container {
	position: static !important;
	width: 100% !important;
	margin: 16px 0 0 !important;
	padding: 0 !important;
	display: flex !important;
	justify-content: center !important;
	overflow: visible !important;
}

/* Register + forgot card matches real form field width */
.elementor-element-97c2d61 .ap-otp-box,
.elementor-element-5e38de7 .ap-otp-box {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	background: #fff !important;
	border: 2px solid #0D53C5 !important;
	border-radius: 14px !important;
	padding: 28px 22px 24px !important;
	box-shadow: 0 14px 36px rgba(13, 83, 197, .18) !important;
	text-align: center !important;
	box-sizing: border-box !important;
	overflow: visible !important;
}

/* Login card compact */
.elementor-element-5bc5113 .ap-otp-box {
	width: 100% !important;
	max-width: 360px !important;
	margin: 0 auto !important;
	background: #fff !important;
	border: 2px solid #0D53C5 !important;
	border-radius: 14px !important;
	padding: 26px 22px 24px !important;
	box-shadow: 0 14px 36px rgba(13, 83, 197, .18) !important;
	text-align: center !important;
	box-sizing: border-box !important;
	overflow: visible !important;
}

/* Icon */
.elementor-element-97c2d61 .ap-otp-box:before,
.elementor-element-5bc5113 .ap-otp-box:before,
.elementor-element-5e38de7 .ap-otp-box:before {
	content: "email";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: rgba(13, 83, 197, .12);
	color: #0D53C5;
	font-family: "Material Icons" !important;
	font-size: 24px;
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Heading */
.elementor-element-97c2d61 .ap-otp-heading p,
.elementor-element-5bc5113 .ap-otp-heading p,
.elementor-element-5e38de7 .ap-otp-heading p {
	margin: 0 0 18px !important;
	font-size: 16px !important;
	line-height: 1.35 !important;
	font-weight: 800 !important;
	color: #111827 !important;
}

/* OTP inputs */
.elementor-element-97c2d61 .ap-otp-inputs,
.elementor-element-5bc5113 .ap-otp-inputs,
.elementor-element-5e38de7 .ap-otp-inputs {
	display: flex !important;
	justify-content: center !important;
	gap: 12px !important;
	margin: 0 0 22px !important;
}

.elementor-element-97c2d61 .ap-otp-input,
.elementor-element-5bc5113 .ap-otp-input,
.elementor-element-5e38de7 .ap-otp-input {
	width: 58px !important;
	height: 64px !important;
	border: 2px solid #d1d5db !important;
	border-radius: 12px !important;
	background: #f9fafb !important;
	font-size: 28px !important;
	font-weight: 800 !important;
	text-align: center !important;
	color: #111827 !important;
}

.elementor-element-97c2d61 .ap-otp-input:focus,
.elementor-element-5bc5113 .ap-otp-input:focus,
.elementor-element-5e38de7 .ap-otp-input:focus {
	border-color: #0D53C5 !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(13, 83, 197, .13) !important;
	outline: none !important;
}

.elementor-element-97c2d61 .ap-otp-input.oneauto-otp-locked,
.elementor-element-5bc5113 .ap-otp-input.oneauto-otp-locked,
.elementor-element-5e38de7 .ap-otp-input.oneauto-otp-locked {
	opacity: .45 !important;
	background: #f3f4f6 !important;
	pointer-events: none !important;
}

.elementor-element-97c2d61 .ap-otp-input.oneauto-otp-active-box,
.elementor-element-5bc5113 .ap-otp-input.oneauto-otp-active-box,
.elementor-element-5e38de7 .ap-otp-input.oneauto-otp-active-box {
	opacity: 1 !important;
	background: #fff !important;
}

/* Actions */
.elementor-element-97c2d61 .ap-otp-actions p,
.elementor-element-5bc5113 .ap-otp-actions p,
.elementor-element-5e38de7 .ap-otp-actions p {
	margin: 0 !important;
	font-size: 14px !important;
	color: #6b7280 !important;
}

.elementor-element-97c2d61 .ap-otp-actions a,
.elementor-element-5bc5113 .ap-otp-actions a,
.elementor-element-5e38de7 .ap-otp-actions a {
	color: #0D53C5 !important;
	font-weight: 800 !important;
}

/* Email change area */
.ap-otp-update-channel {
	width: 100% !important;
	margin-top: 18px !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	align-items: center !important;
	justify-content: center !important;
}

.ap-otp-update-channel .ap-channel-input {
	order: 1 !important;
	min-width: 220px !important;
	flex: 0 0 100% !important;
	height: 40px !important;
	padding: 8px 12px !important;
	border: 1px solid #d1d5db !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: #111827 !important;
	font-size: 14px !important;
	text-align: left !important;
}

.oneauto-otp-email-error {
	order: 2 !important;
	flex: 0 0 100% !important;
	width: 100% !important;
	margin: -2px 0 2px !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
	color: #dc2626 !important;
	text-align: left !important;
	background: transparent !important;
}

.ap-otp-update-channel button {
	order: 3 !important;
	height: 40px !important;
	padding: 0 14px !important;
	border: 0 !important;
	border-radius: 8px !important;
	white-space: nowrap !important;
	background: #f3f4f6 !important;
	color: #111827 !important;
	font-size: 14px !important;
	cursor: pointer !important;
}

/* Email change closed/open */
.ap-otp-update-channel.oneauto-email-change-hidden,
.ap-otp-update-channel:not(.oneauto-email-change-open) {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

.ap-otp-update-channel.oneauto-email-change-open {
	display: flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
	overflow: visible !important;
}

/* Extra vertical room */
.elementor-element-97c2d61:has(.oneauto-email-change-open) .elementor-form-fields-wrapper,
.elementor-element-5e38de7:has(.oneauto-email-change-open) .elementor-form-fields-wrapper {
	min-height: 540px !important;
}

.elementor-element-97c2d61:has(.ap-otp-actions strong) .elementor-form-fields-wrapper,
.elementor-element-5e38de7:has(.ap-otp-actions strong) .elementor-form-fields-wrapper {
	min-height: 430px !important;
}

/* Register redirect cleanup */
html.oneauto-register-redirecting .ap-otp-actions,
html.oneauto-register-redirecting .ap-otp-box p,
html.oneauto-register-redirecting .ap-otp-box span,
html.oneauto-register-redirecting .ap-otp-box div {
	display: none !important;
}

/* Mobile */
@media (max-width: 480px) {
	.elementor-element-97c2d61.oneauto-otp-active .elementor-form-fields-wrapper,
	.elementor-element-5e38de7.oneauto-otp-active .elementor-form-fields-wrapper,
	.elementor-element-97c2d61:has(.ap-otp-container) .elementor-form-fields-wrapper,
	.elementor-element-5e38de7:has(.ap-otp-container) .elementor-form-fields-wrapper {
		min-height: 400px !important;
	}

	.elementor-element-97c2d61:has(.oneauto-email-change-open) .elementor-form-fields-wrapper,
	.elementor-element-5e38de7:has(.oneauto-email-change-open) .elementor-form-fields-wrapper {
		min-height: 560px !important;
	}

	.elementor-element-97c2d61 .ap-otp-box,
	.elementor-element-5bc5113 .ap-otp-box,
	.elementor-element-5e38de7 .ap-otp-box {
		width: 100% !important;
		max-width: 360px !important;
		margin: 0 auto !important;
	}

	.elementor-element-97c2d61 .ap-otp-inputs,
	.elementor-element-5bc5113 .ap-otp-inputs,
	.elementor-element-5e38de7 .ap-otp-inputs {
		gap: 10px !important;
	}

	.elementor-element-97c2d61 .ap-otp-input,
	.elementor-element-5bc5113 .ap-otp-input,
	.elementor-element-5e38de7 .ap-otp-input {
		width: 56px !important;
		height: 60px !important;
	}
}

/* Hide the "you haven't verified your email" message on the login
   widget once the OTP box is open — it has nowhere good to sit
   inline and was shifting position after a wrong-code attempt. */
.elementor-element-5bc5113.oneauto-otp-active .elementor-message-danger,
.elementor-element-5bc5113:has(.ap-otp-container) .elementor-message-danger {
	display: none !important;
}