/* ===== Traventia — Login / Recuperação de senha (redesign premium) =====
   Mesmo padrão visual de Home/Cadastro/Planos/Terapeutas: Hero sólido +
   card centralizado. Reaproveita tokens do design system (--tv-bg-alt,
   --tv-surface, --tv-primary/--tv-primary-dark, --tv-text-muted,
   --tv-border) em vez de cores soltas — é a mesma identidade visual em
   valores exatos (ex: --tv-border já é rgba(255,255,255,.08)). */

.tv-auth-wrap { overflow-x: hidden; }

/* Estas 3 páginas (Entrar, Recuperar Senha, Nova Senha) são páginas WP
   "puras" (sem Elementor) — o tema renderiza o próprio template de bloco
   nativo por cima: título da página em H1 (duplicado, o Hero já tem o
   título) e o body sem nenhum fundo escuro por trás do padding lateral do
   tema, então sobrava uma margem branca nas laterais em telas largas.
   Confirmado ao vivo em /entrar/. Escopado só a estas páginas via :has(),
   mesma técnica já usada para esconder .site-header/.site-footer. */
body:has(.tv-auth-wrap) {
	background: var(--tv-bg);
}

body:has(.tv-auth-wrap) .wp-block-post-title {
	display: none;
}

/* ===== Hero — pequeno, fundo sólido, sem gradiente forte ===== */

.tv-auth-hero {
	position: relative;
	overflow: hidden;
	min-height: 300px;
	display: flex;
	align-items: center;
	padding: var(--tv-space-12) 0;
	background: var(--tv-bg-alt);
	text-align: center;
}

/* Overlay leve — não é gradiente de cor, só uma vinheta escura discreta nas
   bordas, pedida explicitamente em vez de um gradiente forte. */
.tv-auth-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(10, 9, 7, 0.35), transparent 70%);
	pointer-events: none;
}

.tv-auth-hero-inner { position: relative; z-index: 1; max-width: 640px; margin: 0 auto; }

.tv-auth-headline {
	font-size: var(--tv-text-3xl);
	font-weight: var(--tv-font-bold);
	letter-spacing: -0.02em;
	color: var(--tv-text-heading);
	margin: 0 0 var(--tv-space-3);
}

.tv-auth-subheadline {
	font-size: var(--tv-text-base);
	color: var(--tv-text-muted);
	margin: 0 auto var(--tv-space-6);
	max-width: 480px;
}

.tv-auth-badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--tv-space-3) var(--tv-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.tv-auth-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--tv-space-2);
	font-size: var(--tv-text-sm);
	color: var(--tv-text-muted);
}

.tv-auth-badge svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--tv-primary); }

@media (max-width: 767px) {
	.tv-auth-headline { font-size: var(--tv-text-2xl); }
	.tv-auth-hero { min-height: 0; padding: var(--tv-space-10) 0; }
	.tv-auth-badges { flex-direction: column; align-items: center; gap: var(--tv-space-2); }
}

/* ===== Card ===== */

.tv-auth-card-section { padding: var(--tv-space-12) 0; }

.tv-auth-card-container { display: flex; justify-content: center; }

.tv-auth-card {
	width: 100%;
	max-width: 520px;
	background: var(--tv-surface);
	border: 1px solid var(--tv-border);
	border-radius: 24px;
	padding: var(--tv-space-10) var(--tv-space-8);
	box-shadow: var(--tv-shadow-md);
	transition: box-shadow 250ms ease;
}

.tv-auth-card-titulo {
	font-size: var(--tv-text-2xl);
	color: var(--tv-text-heading);
	text-align: center;
	margin: 0 0 var(--tv-space-2);
}

.tv-auth-card-subtitulo {
	color: var(--tv-text-muted);
	text-align: center;
	margin: 0 0 var(--tv-space-6);
}

.tv-auth-card .tv-alert { margin-bottom: var(--tv-space-5); }

.tv-auth-card .tv-field { margin-bottom: var(--tv-space-5); }

/* ===== Inputs com ícone ===== */

.tv-auth-field-icon-wrap { position: relative; display: flex; align-items: center; }

.tv-auth-field-icon {
	position: absolute;
	left: var(--tv-space-4);
	width: 18px;
	height: 18px;
	color: var(--tv-text-muted);
	pointer-events: none;
	transition: color 250ms ease;
}

.tv-auth-field-icon-wrap:focus-within .tv-auth-field-icon { color: var(--tv-primary); }

.tv-auth-input {
	height: 50px;
	padding-left: calc(var(--tv-space-4) * 2 + 18px);
	transition: border-color 250ms ease, box-shadow 250ms ease;
}

/* ===== Botão — largura total, 52px. O hover continua o padrão já usado em
   Home/Cadastro/Planos/Terapeutas (.tv-btn-primary:hover, mais escuro) —
   não foi introduzido um comportamento de hover diferente só para esta
   página. ===== */
.tv-auth-card .tv-btn-lg { height: 52px; transition: background-color 250ms ease, transform 250ms ease; }

/* ===== Links — dourados, mesmo tom do botão ===== */

.tv-auth-links {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--tv-space-3);
	margin-top: var(--tv-space-6);
	text-align: center;
}

.tv-auth-links a {
	color: var(--tv-primary);
	font-size: var(--tv-text-sm);
	font-weight: var(--tv-font-semibold);
	text-decoration: none;
	transition: color 250ms ease;
}

.tv-auth-links a:hover { color: var(--tv-primary-dark); text-decoration: underline; }

/* ===== Responsivo ===== */

@media (max-width: 599px) {
	.tv-auth-card { max-width: 92%; padding: var(--tv-space-8) var(--tv-space-5); }
}
