/* DrVaper Phone Login. Matches the store's login popup: black buttons, 10px radius, 52px controls. */
.drvpl[hidden],
.drvpl [hidden] {
	display: none !important;
}

.drvpl {
	--drvpl-ink: #111;
	--drvpl-muted: #71717a;
	--drvpl-line: #e4e4e7;
	--drvpl-soft: #fafafa;
	--drvpl-h: 52px;
	margin: 0 0 16px;
	text-align: start;
	color: var(--drvpl-ink);
	font-family: inherit;
	line-height: 1.5;
}

/* While the code flow is showing, the store's own forms step aside. The popup's stylesheet
   forces them visible, so the popup rules here carry its id to outrank it. */
.drvpl-phone-mode #customer_login,
.drvpl-phone-mode > .u-columns,
.drvpl-phone-mode > h2,
.drvpl-phone-mode > form.woocommerce-form-login,
#noon-login-modal.drvpl-phone-mode #noon-woocommerce-forms #customer_login,
#noon-login-modal.drvpl-phone-mode #noon-woocommerce-forms .col2-set,
#noon-login-modal.drvpl-phone-mode #noon-woocommerce-forms form.login,
#noon-login-modal.drvpl-phone-mode #noon-woocommerce-forms form.register {
	display: none !important;
}

/* The two tabs stay on the first step only, and the code screens need no greeting above them. */
#noon-login-modal.drvpl-no-tabs #noon-tabs-container,
#noon-login-modal.drvpl-inner #noon-main-title {
	display: none !important;
}

/* Desktop: a taller picture at the top of the popup. Phones already give it the top of the screen. */
@media (min-width: 769px) {
	#noon-login-modal .noon-modal-header-img img {
		height: clamp(190px, 31vh, 280px);
	}
}

.drvpl .drvpl-label {
	display: block !important;
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 700;
	color: var(--drvpl-ink);
}

.drvpl .drvpl-field {
	display: flex;
	direction: ltr;
	align-items: stretch;
	height: var(--drvpl-h);
	border: 1.5px solid var(--drvpl-line);
	border-radius: 10px;
	background: var(--drvpl-soft);
	overflow: hidden;
	transition: border-color .2s, background-color .2s;
}

.drvpl .drvpl-field:focus-within {
	border-color: var(--drvpl-ink);
	background: #fff;
	box-shadow: 0 0 0 3px rgb(17 17 17 / .1);
}

.drvpl .drvpl-prefix {
	display: flex;
	align-items: center;
	padding: 0 14px;
	border-right: 1.5px solid var(--drvpl-line);
	font-size: 16px;
	font-weight: 700;
	color: var(--drvpl-ink);
	user-select: none;
}

.drvpl input.drvpl-input {
	flex: 1 1 auto;
	min-width: 0;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	color: var(--drvpl-ink) !important;
	font-family: inherit;
	font-size: 16px !important; /* 16px keeps iOS from zooming the page */
	text-align: left;
}

.drvpl input.drvpl-input[dir="rtl"] {
	text-align: right;
}

.drvpl input.drvpl-input::placeholder {
	color: #8e8e96;
	font-size: 15px;
	opacity: 1;
}

/* Clears the field, as on the store's reference design. */
.drvpl button.drvpl-clear {
	display: flex;
	flex: 0 0 44px;
	align-items: center;
	justify-content: center;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: none !important;
	box-shadow: none;
	color: #52525b !important;
	cursor: pointer;
	touch-action: manipulation;
}

.drvpl button.drvpl-clear:hover {
	color: var(--drvpl-ink) !important;
}

.drvpl .drvpl-otp {
	position: relative;
	display: flex;
	direction: ltr;
	justify-content: center;
	gap: 8px;
	height: var(--drvpl-h);
	margin: 0 auto;
}

.drvpl .drvpl-otp-box {
	position: relative;
	display: flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	min-width: 0;
	max-width: 54px;
	border: 1.5px solid #c9c9cf;
	border-radius: 10px;
	background: #fff;
	color: var(--drvpl-ink);
	font-size: 22px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	transition: border-color .15s, box-shadow .15s;
}

.drvpl .drvpl-otp-box.drvpl-otp-filled {
	border-color: #8e8e96;
}

.drvpl .drvpl-otp-box.drvpl-otp-on {
	border-color: var(--drvpl-ink);
	box-shadow: 0 0 0 3px rgb(17 17 17 / .1);
}

/* The cursor of the box that is waiting for a digit. */
.drvpl .drvpl-otp-box.drvpl-otp-on:not(.drvpl-otp-filled)::after {
	content: "";
	width: 1.5px;
	height: 22px;
	background: var(--drvpl-ink);
	animation: drvpl-blink 1.1s steps(1) infinite;
}

@keyframes drvpl-blink {
	50% {
		opacity: 0;
	}
}

/* The real field covers the boxes and shows nothing itself. */
.drvpl .drvpl-otp input.drvpl-code {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	padding: 0 !important;
	color: transparent !important;
	caret-color: transparent;
	text-align: left;
	letter-spacing: 0;
	cursor: text;
	-webkit-text-fill-color: transparent;
}

.drvpl .drvpl-otp input.drvpl-code::selection {
	background: transparent;
}

.drvpl .drvpl-hint,
.drvpl .drvpl-wait {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--drvpl-muted);
}

.drvpl .drvpl-hint {
	display: flex;
	align-items: center;
	gap: 6px;
}

.drvpl .drvpl-wa,
.drvpl .drvpl-ch {
	display: inline-flex;
	vertical-align: middle;
	margin-inline-end: 6px;
}

.drvpl .drvpl-hint .drvpl-wa {
	margin: 0;
}

.drvpl .drvpl-wa svg,
.drvpl .drvpl-ch svg {
	width: 18px;
	height: 18px;
}

.drvpl .drvpl-wa,
.drvpl .drvpl-ch-whatsapp {
	color: #128c4a;
}

.drvpl.drvpl-primary-sms .drvpl-wa,
.drvpl.drvpl-primary-sms .drvpl-ch-whatsapp {
	color: var(--drvpl-muted);
}

.drvpl .drvpl-sent {
	margin: 0 0 16px;
	font-size: 15px;
	color: var(--drvpl-ink);
	text-align: center;
}

.drvpl .drvpl-sent-text {
	display: block;
}

.drvpl .drvpl-sent-to {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 6px;
}

.drvpl .drvpl-sent-to .drvpl-ch {
	margin: 0;
}

.drvpl .drvpl-target {
	max-width: 100%;
	overflow: hidden;
	font-size: 16px;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.drvpl button.drvpl-pill {
	min-height: 0;
	margin: 0;
	padding: 3px 12px;
	border: 0;
	border-radius: 999px;
	background: #f1f1f4 !important;
	box-shadow: none;
	color: var(--drvpl-ink) !important;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
	touch-action: manipulation;
}

.drvpl button.drvpl-pill:hover {
	background: #e4e4e7 !important;
}

.drvpl .drvpl-ask {
	margin: 0 0 2px;
	font-size: 14.5px;
	color: var(--drvpl-ink);
}

.drvpl .drvpl-tip {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 14px 0 0;
	padding: 10px 12px;
	border-radius: 10px;
	background: #fffbe8;
	color: #52525b;
	font-size: 13px;
	line-height: 1.5;
}

.drvpl .drvpl-tip-icon {
	display: inline-flex;
	flex: 0 0 auto;
	color: #d49a06;
}

.drvpl .drvpl-error {
	margin: 10px 0 0;
	padding: 10px 14px;
	border: 1px solid #fecaca;
	border-radius: 10px;
	background: #fef2f2;
	color: #b91c1c;
	font-size: 13.5px;
}

.drvpl button.drvpl-btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: var(--drvpl-h) !important;
	min-height: 0;
	margin: 16px 0 0 !important;
	padding: 0 16px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--drvpl-ink) !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 16px !important;
	font-weight: 700 !important;
	cursor: pointer;
	transition: opacity .2s, background-color .2s, color .2s;
	touch-action: manipulation;
}

.drvpl button.drvpl-btn:disabled {
	opacity: .6;
	cursor: default;
}

/* Nothing typed yet: the button waits, greyed out. */
.drvpl button.drvpl-btn[data-empty] {
	background: #e4e4e7 !important;
	color: #8e8e96 !important;
	opacity: 1;
}

.drvpl button.drvpl-link {
	display: inline;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: none !important;
	box-shadow: none;
	color: var(--drvpl-ink) !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.drvpl .drvpl-alt {
	margin: 16px 0 0;
	text-align: center;
}

/* The way to the password form: always there, never competing with the main button. */
.drvpl button.drvpl-quiet {
	color: var(--drvpl-muted) !important;
	font-size: 13.5px;
	font-weight: 600;
}

.drvpl button.drvpl-quiet:hover {
	color: var(--drvpl-ink) !important;
}

.drvpl button.drvpl-switch {
	display: block;
	margin: 0 auto 14px;
}

.drvpl .drvpl-after {
	margin-top: 16px;
	text-align: center;
}

.drvpl .drvpl-after .drvpl-wait {
	margin: 0;
}

.drvpl .drvpl-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.drvpl button.drvpl-ghost {
	display: inline-flex;
	flex: 1 1 140px;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	margin: 0;
	padding: 8px 12px;
	border: 1.5px solid var(--drvpl-line);
	border-radius: 10px;
	background: #fff !important;
	color: var(--drvpl-ink) !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
	touch-action: manipulation;
}

.drvpl button.drvpl-ghost:hover,
.drvpl button.drvpl-option:hover {
	border-color: var(--drvpl-ink);
}

.drvpl button.drvpl-ghost span {
	display: inline-flex;
}

.drvpl button.drvpl-option {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 60px;
	margin: 0 0 10px;
	padding: 10px 14px;
	border: 1.5px solid var(--drvpl-line);
	border-radius: 10px;
	background: #fff !important;
	color: var(--drvpl-ink) !important;
	font-family: inherit;
	text-align: start;
	cursor: pointer;
	touch-action: manipulation;
}

.drvpl .drvpl-option-icon {
	display: inline-flex;
	flex: 0 0 40px;
	align-items: center;
	justify-content: center;
	height: 40px;
	border-radius: 50%;
	background: #f4f4f5;
}

.drvpl .drvpl-option-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.drvpl .drvpl-option-text strong {
	font-size: 15px;
	font-weight: 700;
}

.drvpl .drvpl-option-text small {
	font-size: 12.5px;
	color: var(--drvpl-muted);
}

.drvpl .drvpl-done {
	margin: 8px 0;
	padding: 18px;
	border-radius: 10px;
	background: #f0fdf4;
	color: #166534;
	font-size: 16px;
	font-weight: 700;
	text-align: center;
}

.drvpl.drvpl-busy .drvpl-ghost,
.drvpl.drvpl-busy .drvpl-option,
.drvpl.drvpl-busy .drvpl-pill,
.drvpl.drvpl-busy .drvpl-link {
	pointer-events: none;
	opacity: .6;
}

.drvpl button:focus-visible {
	outline: 2px solid var(--drvpl-ink);
	outline-offset: 2px;
}

/* Firebase's invisible reCAPTCHA badge must sit above the login popup. */
.grecaptcha-badge {
	z-index: 1000000;
}

@media (max-width: 768px) {
	.drvpl {
		--drvpl-h: 48px;
		margin-bottom: 10px;
	}

	.drvpl .drvpl-otp {
		gap: 6px;
	}

	.drvpl .drvpl-tip {
		margin-top: 10px;
		padding: 8px 10px;
	}

	.drvpl button.drvpl-option {
		min-height: 54px;
		margin-bottom: 8px;
	}

	.drvpl .drvpl-alt {
		margin-top: 12px;
	}
}

@media (max-width: 768px) and (max-height: 700px) {
	.drvpl .drvpl-tip {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.drvpl .drvpl-otp-box.drvpl-otp-on::after {
		animation: none;
	}

	.drvpl * {
		transition: none !important;
	}
}
