/**
 * Authentication pages — Tabler-aligned, scoped to body.evst-auth (no theme bleed).
 *
 * @package Everstory
 * @subpackage Public
 */

/* Full-height shell so auth background (gradient / image) never shows body “gaps” */
html.evst-auth-html {
	height: 100%;
}

/* Shell: isolate from Hello Elementor / WP global link & heading rules */
body.evst-auth {
	isolation: isolate;
	font-family: var(
		--tblr-font-sans-serif,
		-apple-system,
		BlinkMacSystemFont,
		San Francisco,
		Segoe UI,
		Roboto,
		Helvetica Neue,
		sans-serif
	);
	color: var(--tblr-body-color);
	/* Matches gradient end so any sub-pixel gap is invisible (esp. long pages e.g. register) */
	background-color: var(--tblr-white);
	min-height: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	min-height: -webkit-fill-available;
	overflow-x: hidden;
}

body.evst-auth .evst-auth-skip-link {
	z-index: 1080;
}

body.evst-auth .evst-auth-honeypot {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Tabler sign-in layout: centered page — flex-grow + min-height fills viewport on tall forms */
body.evst-auth .page.page-center {
	flex: 1 0 auto;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	background: var(--tblr-white);
	min-height: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	min-height: -webkit-fill-available;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: var(--tblr-spacer-4, 1.25rem);
	position: relative;
}

/* Optional branded background image (URL set inline as --evst-auth-bg-image) */
body.evst-auth .page.page-center[data-evst-auth-bg='1'] {
	background-image: var(--evst-auth-bg-image);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-color: var(--tblr-white);
}

body.evst-auth .page.page-center[data-evst-auth-bg='1']::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.35);
	z-index: 0;
}

body.evst-auth .page.page-center[data-evst-auth-bg='1'] > * {
	position: relative;
	z-index: 1;
}

body.evst-auth .page.page-center .navbar-brand {
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--tblr-white) !important;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	line-height: 0;
	max-width: 100%;
}

body.evst-auth .evst-auth-brand {
	--evst-auth-logo-height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: calc(var(--evst-auth-logo-height) + 1.25rem);
	padding: 0.375rem 0 1.25rem;
	margin-bottom: 0;
	overflow: visible;
	box-sizing: border-box;
	flex-shrink: 0;
}

body.evst-auth .page.page-center .navbar-brand:hover,
body.evst-auth .page.page-center .navbar-brand:focus-visible {
	color: var(--tblr-white) !important;
	opacity: 1;
}

body.evst-auth .page.page-center .navbar-brand:hover .evst-auth-logo,
body.evst-auth .page.page-center .navbar-brand:focus-visible .evst-auth-logo {
	opacity: 1;
	filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(0, 0, 0, 0.28));
}

body.evst-auth .page.page-center .navbar-brand:hover .evst-auth-logo.evst-auth-logo--natural,
body.evst-auth .page.page-center .navbar-brand:focus-visible .evst-auth-logo.evst-auth-logo--natural {
	filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.35));
}

body.evst-auth .evst-auth-brand .navbar-brand {
	min-height: 0;
	min-width: 0;
	padding: 0.125rem 0;
}

/* Logo — horizontal mark on dark hero; cap height, preserve aspect ratio */
body.evst-auth .page.page-center .evst-auth-logo {
	width: auto;
	height: auto;
	max-height: var(--evst-auth-logo-height, 3rem);
	max-width: min(18rem, 86vw);
	margin: 0;
	display: block;
	object-fit: contain;
	object-position: center center;
	/* Any colored/dark logo → white on dark backgrounds */
	filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(0, 0, 0, 0.28));
}

/* Opt-out: logo already light/white on transparent — add class on <img> to keep original colors */
body.evst-auth .page.page-center .evst-auth-logo.evst-auth-logo--natural {
	filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.35));
}

body.evst-auth .evst-logo {
	max-width: 150px;
	height: auto;
	display: block;
}

body.evst-auth .card-md {
	max-width: 28rem;
	margin: 0 auto;
	box-shadow:
		0 14px 36px rgba(31, 41, 55, 0.14),
		0 2px 10px rgba(31, 41, 55, 0.08);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

body.evst-auth .card-md:hover {
	transform: translateY(-1px);
	box-shadow:
		0 18px 42px rgba(31, 41, 55, 0.18),
		0 4px 12px rgba(31, 41, 55, 0.1);
}

/* Divider with “or” (Tabler hr-text pattern) */
body.evst-auth .hr-text {
	position: relative;
	text-align: center;
	margin: 1rem 0;
}

body.evst-auth .hr-text::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--tblr-border-color);
}

body.evst-auth .hr-text span,
body.evst-auth .hr-text-center span {
	position: relative;
	background: var(--tblr-bg-surface);
	padding: 0 1rem;
	color: var(--tblr-secondary);
}

body.evst-auth .btn-primary .evst-login-spinner.spinner-border,
body.evst-auth .btn-primary .evst-register-spinner.spinner-border,
body.evst-auth .btn-primary .evst-forgot-spinner.spinner-border,
body.evst-auth .btn-primary .evst-reset-spinner.spinner-border {
	border-color: rgba(255, 255, 255, 0.35);
	border-right-color: #fff;
}

body.evst-auth .evst-password-meter-bar.progress {
	height: 4px;
	background-color: var(--tblr-border-color-translucent, rgba(0, 0, 0, 0.08));
	border-radius: var(--tblr-border-radius-sm, 2px);
	overflow: hidden;
}

body.evst-auth .evst-password-meter-fill.progress-bar {
	width: 0;
	transition: width 0.15s ease, background-color 0.15s ease;
	min-width: 0;
}

/* Password visibility toggle: avoid btn-link (underline / active state clashes inside input-group-text) */
body.evst-auth .input-group .input-group-text .evst-toggle-password.btn-ghost-secondary {
	border: 0;
	box-shadow: none;
	color: var(--tblr-secondary);
}

body.evst-auth .input-group .input-group-text .evst-toggle-password.btn-ghost-secondary:hover {
	color: var(--evst-hover-fg);
	background-color: var(--evst-hover-surface);
}

body.evst-auth .input-group .input-group-text .evst-toggle-password.btn-ghost-secondary:focus-visible {
	outline: 2px solid var(--tblr-primary);
	outline-offset: 2px;
	box-shadow: none;
}

body.evst-auth .input-group .input-group-text .evst-toggle-password.btn-ghost-secondary[aria-pressed='true'] {
	color: var(--tblr-primary);
	background-color: var(--evst-hover-surface);
}

/* ── Card: shadow + backdrop-blur when auth background image is active ───── */
body.evst-auth .page.page-center[data-evst-auth-bg='1'] .card {
	box-shadow:
		0 4px 24px rgba(0, 0, 0, 0.18),
		0 1px 6px rgba(0, 0, 0, 0.12);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	background-color: rgba(255, 255, 255, 0.96);
}

/* ── Card entrance animation ─────────────────────────────────────────────── */
@keyframes evst-auth-card-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

body.evst-auth .card-md {
	animation: evst-auth-card-in 250ms ease both;
}

@media (prefers-reduced-motion: reduce) {
	body.evst-auth .card-md {
		animation: none;
		transition: none;
	}
}

/* ── Alert icon alignment ────────────────────────────────────────────────── */
body.evst-auth .alert.d-flex {
	align-items: flex-start;
}

body.evst-auth .alert.d-flex .ti {
	flex-shrink: 0;
	margin-top: 0.1rem;
	font-size: 1.1em;
}

body.evst-auth .evst-banner-notice .alert-icon {
	font-size: 1.25rem;
	line-height: 1;
}

body.evst-auth .alert-danger .alert-icon {
	color: var(--tblr-danger);
}

body.evst-auth .alert-warning .alert-icon {
	color: var(--tblr-warning);
}

/* ── Captcha widget spacing ─────────────────────────────────────────────── */
body.evst-auth .evst-captcha-wrap {
	min-height: 2rem;
}

/* Legal footer below auth card — muted on branded background */
body.evst-auth .evst-legal-footer-links--auth {
	margin-top: 1.25rem;
	padding-bottom: env(safe-area-inset-bottom, 0);
}

body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-links--auth {
	color: rgba(255, 255, 255, 0.58);
}

body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-links--auth .text-muted {
	color: rgba(255, 255, 255, 0.45) !important;
}

body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-link {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
}

body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-link:hover,
body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-link:focus-visible {
	color: #ffffff;
}

body.evst-auth .evst-legal-footer-link {
	color: var(--tblr-secondary);
	text-decoration: none;
}

body.evst-auth .evst-legal-footer-link:hover,
body.evst-auth .evst-legal-footer-link:focus-visible {
	color: var(--tblr-body-color);
}

/* ── Mobile & touch-friendly auth chrome ─────────────────────────────────── */
@media (max-width: 767.98px) {
	body.evst-auth .page.page-center {
		justify-content: flex-start;
		align-items: stretch;
		padding:
			max(1rem, env(safe-area-inset-top, 0px))
			max(0.875rem, env(safe-area-inset-right, 0px))
			max(1rem, env(safe-area-inset-bottom, 0px))
			max(0.875rem, env(safe-area-inset-left, 0px));
	}

	body.evst-auth .page.page-center .container.container-tight {
		width: 100%;
		max-width: 28rem;
		padding-top: 0;
		padding-bottom: 0.5rem;
	}

	body.evst-auth .evst-auth-brand {
		--evst-auth-logo-height: 2.875rem;
		min-height: calc(var(--evst-auth-logo-height) + 1.75rem);
		padding: 0.875rem 0 1.25rem;
		margin-bottom: 0 !important;
	}

	body.evst-auth .page.page-center .evst-auth-logo {
		max-width: min(16rem, 82vw);
	}

	body.evst-auth .card-md {
		width: 100%;
		max-width: none;
	}

	body.evst-auth .card-md:hover {
		transform: none;
	}

	body.evst-auth .page.page-center[data-evst-auth-bg='1'] .card {
		background-color: #ffffff;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		box-shadow:
			0 10px 28px rgba(15, 23, 42, 0.16),
			0 2px 8px rgba(15, 23, 42, 0.08);
	}

	body.evst-auth .page.page-center[data-evst-auth-bg='1']::before {
		background: rgba(0, 0, 0, 0.42);
	}

	body.evst-auth .form-control,
	body.evst-auth .form-select {
		font-size: 1rem;
		min-height: 2.75rem;
	}

	body.evst-auth .btn-primary,
	body.evst-auth .btn-outline-primary {
		min-height: 2.75rem;
	}

	body.evst-auth .input-group .input-group-text .evst-toggle-password.btn-ghost-secondary {
		min-width: 2.75rem;
		min-height: 2.75rem;
	}

	body.evst-auth .page.page-center[data-evst-auth-bg='1'] .form-label a {
		color: var(--tblr-primary);
		font-weight: 600;
	}

	body.evst-auth .evst-legal-footer-links--auth {
		margin-top: 1rem;
		text-align: center;
	}

	body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-links--auth {
		color: rgba(255, 255, 255, 0.88);
		text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
	}

	body.evst-auth .page.page-center[data-evst-auth-bg='1'] .evst-legal-footer-links--auth .evst-legal-footer-link {
		color: rgba(255, 255, 255, 0.92);
	}
}

@media (hover: none) and (pointer: coarse) {
	body.evst-auth .card-md:hover {
		transform: none;
		box-shadow:
			0 14px 36px rgba(31, 41, 55, 0.14),
			0 2px 10px rgba(31, 41, 55, 0.08);
	}
}
