/* ==========================================================================
   CONVERSA - LUXURY EXECUTIVE LOGIN EXPERIENCE (2026)
   ========================================================================== */

:root {
	--dt-login-bg: #0b141a;
	--dt-login-card-bg: rgba(17, 27, 33, 0.92);
	--dt-login-card-border: rgba(255, 255, 255, 0.08);
	--dt-login-primary: #00a884;
	--dt-login-primary-hover: #02b68f;
	--dt-login-text: #e9edef;
	--dt-login-text-muted: #8696a0;
	--dt-login-input-bg: rgba(255, 255, 255, 0.04);
	--dt-login-input-border: rgba(255, 255, 255, 0.12);
	--dt-login-input-focus: #00a884;
}

body[data-path="login"],
body.login-page {
	background: radial-gradient(ellipse at 50% 0%, #153438 0%, #0b141a 70%) !important;
	background-attachment: fixed !important;
	background-color: #0b141a !important;
	color: var(--dt-login-text) !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	min-height: 100vh !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;
	margin: 0 !important;
	padding: 20px !important;
	box-sizing: border-box !important;
}

/* Ocultar secciones inactivas y respetar toggle de Frappe */
section.for-signup,
section.for-forgot,
section.for-email-login,
section.for-login-with-email-link {
	display: none;
}

section[style*="display: none"],
section[style*="display:none"],
section.hide,
.form-signin.hide,
.hide {
	display: none !important;
}

section.for-login {
	width: 100% !important;
	max-width: 400px !important;
	margin: 0 auto !important;
}

/* Ocultar elementos innecesarios */
body[data-path="login"] .navbar,
body.login-page .navbar,
.for-login .navbar,
.web-footer,
footer,
header.navbar {
	display: none !important;
}

/* Contenedor Principal (Glassmorphic Luxury Card) */
.page-card {
	background: var(--dt-login-card-bg) !important;
	border: 1px solid var(--dt-login-card-border) !important;
	border-radius: 20px !important;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.05), 0 0 35px rgba(0, 168, 132, 0.1) !important;
	padding: 38px 32px !important;
	max-width: 400px !important;
	width: 100% !important;
	margin: 0 auto !important;
	backdrop-filter: blur(24px) !important;
	-webkit-backdrop-filter: blur(24px) !important;
	box-sizing: border-box !important;
	animation: dt-login-fade-in 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

@keyframes dt-login-fade-in {
	from {
		opacity: 0;
		transform: translateY(10px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.page-card-head {
	text-align: center !important;
	margin-bottom: 22px !important;
}

/* Logo de Conversa */
.page-card-head img.app-logo,
.page-card-head .app-logo,
.page-card-head > img,
.login-header-logo {
	max-height: 72px !important;
	height: 72px !important;
	width: 72px !important;
	border-radius: 16px !important;
	margin: 0 auto 14px auto !important;
	display: block !important;
	box-shadow: 0 8px 20px rgba(0, 168, 132, 0.3) !important;
	object-fit: contain !important;
	background: transparent !important;
	transition: transform 0.2s ease !important;
}

.page-card-head img.app-logo:hover {
	transform: scale(1.04);
}

.page-card-head h4,
.page-card-head .page-card-title {
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: #ffffff !important;
	letter-spacing: -0.4px !important;
	margin: 8px 0 2px 0 !important;
}


/* Formulario */
.page-card form {
	margin-top: 14px !important;
}

.form-group {
	margin-bottom: 16px !important;
}

/* Ocultar iconos SVG conflictivos */
.field-icon,
.email-icon,
.password-icon,
.form-group > svg,
.form-group > .icon,
svg.field-icon {
	display: none !important;
}

/* Labels elegantes para los campos */
.form-group > label.form-label,
.form-group > label[for="login_email"],
.form-group > label[for="login_password"],
.page-card label.form-label {
	display: block !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
	white-space: normal !important;
	font-size: 0.78rem !important;
	font-weight: 600 !important;
	color: #94a3b8 !important;
	margin: 0 0 6px 0 !important;
	letter-spacing: 0.2px !important;
}

.email-field::before,
.password-field::before {
	display: none !important;
	content: none !important;
}

/* Contenedores de campos */
.email-field {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.password-field {
	position: relative !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	width: 100% !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

/* Inputs modernos y refinados */
.email-field input,
.password-field input,
.email-field .form-control,
.password-field .form-control,
.for-login .page-card .page-card-body input[type="text"],
.for-login .page-card .page-card-body input[type="email"],
.for-login .page-card .page-card-body input[type="password"],
.form-control,
#login_email,
#login_password {
	background-color: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	color: #111827 !important;
	border-radius: 10px !important;
	padding-left: 14px !important;
	padding-right: 14px !important;
	height: 46px !important;
	line-height: 46px !important;
	font-size: 0.92rem !important;
	margin: 0 !important;
	margin-bottom: 0 !important;
	margin-top: 0 !important;
	transition: all 0.2s ease !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Input de contraseña con botón acoplado */
.password-field input,
.password-field .form-control,
#login_password {
	flex: 1 1 auto !important;
	width: calc(100% - 46px) !important;
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
	border-right: none !important;
	padding-right: 14px !important;
}

.form-control:focus,
#login_email:focus,
#login_password:focus {
	border-color: var(--dt-login-primary) !important;
	box-shadow: 0 0 0 3px rgba(0, 168, 132, 0.25) !important;
	outline: none !important;
}

.form-control::placeholder,
#login_email::placeholder,
#login_password::placeholder {
	color: #94a3b8 !important;
}

/* Botón Mostrar / Ocultar Contraseña como Botón Acoplado al Lado Derecho */
.for-login .page-card .page-card-body .password-field .toggle-password,
.for-login .page-card .password-field .toggle-password,
.password-field .toggle-password,
.toggle-password {
	position: static !important;
	top: auto !important;
	bottom: auto !important;
	right: auto !important;
	left: auto !important;
	transform: none !important;
	flex: 0 0 46px !important;
	width: 46px !important;
	height: 46px !important;
	display: block !important;
	cursor: pointer !important;
	z-index: 5 !important;
	user-select: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	border-left: 1px solid #e2e8f0 !important;
	border-top-right-radius: 10px !important;
	border-bottom-right-radius: 10px !important;
	border-top-left-radius: 0 !important;
	border-bottom-left-radius: 0 !important;
	background-color: #ffffff !important;
	box-shadow: none !important;
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	text-indent: -9999px !important;
	overflow: hidden !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: 20px 20px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") !important;
	transition: background-color 0.15s ease, opacity 0.15s ease !important;
	opacity: 0.9 !important;
	box-sizing: border-box !important;
}

.toggle-password:hover {
	opacity: 1 !important;
	background-color: #f1f5f9 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2300a884' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") !important;
}

/* Cuando la contraseña es visible (input tipo text), mostrar ojo tachado */
.password-field:has(input[type="text"]) .toggle-password,
.password-field .toggle-password.active {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2300a884' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E") !important;
}

/* Enlaces */
.forgot-password-message {
	text-align: right !important;
	margin: -4px 0 16px 0 !important;
}

.forgot-password-message a,
.page-card a {
	color: #34d399 !important;
	font-size: 0.8rem !important;
	font-weight: 500 !important;
	text-decoration: none !important;
	transition: color 0.15s ease !important;
}

.forgot-password-message a:hover,
.page-card a:hover {
	color: #6ee7b7 !important;
	text-decoration: underline !important;
}

/* Botón de Inicio de Sesión Principal */
.btn-login,
.btn-primary,
button[type="submit"] {
	background: linear-gradient(135deg, #00a884 0%, #059669 100%) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 12px 20px !important;
	height: 46px !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.3px !important;
	width: 100% !important;
	box-shadow: 0 4px 14px rgba(0, 168, 132, 0.35) !important;
	transition: all 0.2s ease !important;
	cursor: pointer !important;
	margin-top: 4px !important;
}

.btn-login:hover,
.btn-primary:hover,
button[type="submit"]:hover {
	background: linear-gradient(135deg, #02b68f 0%, #047857 100%) !important;
	box-shadow: 0 6px 20px rgba(0, 168, 132, 0.5) !important;
	transform: translateY(-1px) !important;
}

.btn-login:active,
.btn-primary:active,
button[type="submit"]:active {
	transform: translateY(0) !important;
	box-shadow: 0 2px 8px rgba(0, 168, 132, 0.25) !important;
}

/* Separador 'o' Elegante */
.page-card .text-muted:not(a),
.page-card .sign-up-message {
	display: flex !important;
	align-items: center !important;
	text-align: center !important;
	color: #64748b !important;
	font-size: 0.72rem !important;
	margin: 16px 0 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
}

.page-card .text-muted:not(a)::before,
.page-card .text-muted:not(a)::after,
.page-card .sign-up-message::before,
.page-card .sign-up-message::after {
	content: "" !important;
	flex: 1 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.page-card .text-muted:not(a):not(:empty)::before,
.page-card .sign-up-message:not(:empty)::before {
	margin-right: 12px !important;
}

.page-card .text-muted:not(a):not(:empty)::after,
.page-card .sign-up-message:not(:empty)::after {
	margin-left: 12px !important;
}

/* Botón alternativo (enlace de correo) */
.btn-email-link,
.btn-secondary,
.btn-login-option {
	background: rgba(255, 255, 255, 0.03) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	color: #94a3b8 !important;
	border-radius: 10px !important;
	padding: 10px 16px !important;
	font-size: 0.84rem !important;
	font-weight: 600 !important;
	width: 100% !important;
	margin-top: 0 !important;
	transition: all 0.2s ease !important;
}

.btn-email-link:hover,
.btn-secondary:hover,
.btn-login-option:hover {
	background: rgba(255, 255, 255, 0.07) !important;
	color: #e2e8f0 !important;
	border-color: rgba(255, 255, 255, 0.2) !important;
}

/* Mensajes de error */
.invalid-feedback,
.frappe-control[data-fieldtype] .help-box {
	color: #f87171 !important;
	font-size: 0.8rem !important;
	font-weight: 500 !important;
}
