/**
 * Zippyn — Login / registro 2026
 * Mobile-first: estilos base para 375–430px; desktop después en @media (min-width: 900px).
 * Clase body.zp-login-mobile = teléfono/tablet (experiencia principal).
 */

body.zp-login-2026:has(#menu-footer.zp-bottom-nav-shell) #page,
body.zp-login-2026:has(#menu-footer.zp-bottom-nav-shell) #wrapper,
body.zp-login-2026:has(#menu-footer.zp-bottom-nav-shell) .wrapper-mobile {
	padding-bottom: 0 !important;
}

html:has(body.zp-login-2026),
body.zp-login-2026 {
	--zp-login-header-offset: calc(env(safe-area-inset-top, 0px) + 84px);
	--zp-login-bottom-nav: calc(72px + env(safe-area-inset-bottom, 0px));
	--zp-login-bg-top: #0b224f;
	--zp-login-bg-mid: #0d3a7a;
	--zp-login-bg-bottom: #009ee3;
	min-height: 100dvh;
	background: linear-gradient(
		165deg,
		var(--zp-login-bg-top) 0%,
		var(--zp-login-bg-mid) 42%,
		var(--zp-login-bg-bottom) 100%
	) !important;
	background-attachment: fixed;
	color: #0f172a;
}

@media (min-width: 900px) {
	body.zp-login-2026 {
		--zp-login-header-offset: calc(env(safe-area-inset-top, 0px) + 76px);
		--zp-login-bottom-nav: calc(16px + env(safe-area-inset-bottom, 0px));
	}
}

/* Scroll de página permitido; espacio para header y bottom nav (insets vía JS) */
body.zp-login-2026 #page,
body.zp-login-2026 #wrapper,
body.zp-login-2026 #main {
	padding-top: 0 !important;
	margin: 0 !important;
	min-height: auto !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
}

body.zp-login-2026 #page-authentication,
body.zp-login-2026 #login-page,
body.zp-login-2026 .zp-login-page {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	width: 100% !important;
	min-height: calc(100dvh - var(--zp-login-header-offset, 120px) - var(--zp-login-bottom-nav, 72px));
	margin: 0 !important;
	padding: 12px 12px var(--zp-login-bottom-nav, 72px) !important;
	padding-top: var(--zp-login-header-offset, 120px) !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: flex-start !important;
	overflow: visible !important;
	z-index: 1 !important;
}

body.zp-login-2026 #page-authentication {
	width: 100%;
}

/* Móvil: un solo panel visible (login | registro | recuperar) */
body.zp-login-2026 #page-authentication > #login,
body.zp-login-2026 #page-authentication > #register,
body.zp-login-2026 #page-authentication > #forgotpass {
	position: relative;
	inset: auto;
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	min-height: 0;
	width: 100%;
	overflow: visible;
}

body.zp-login-2026 #page-authentication > #login.zp-login-panel--active,
body.zp-login-2026 #page-authentication > #register.zp-login-panel--active,
body.zp-login-2026 #page-authentication > #forgotpass.zp-login-panel--active {
	display: flex !important;
}

body.zp-login-2026 #page-authentication > .zp-login-panel--hidden,
body.zp-login-2026 #page-authentication > #login[style*='display:none'],
body.zp-login-2026 #page-authentication > #login[style*='display: none'],
body.zp-login-2026 #page-authentication > #register[style*='display:none'],
body.zp-login-2026 #page-authentication > #register[style*='display: none'],
body.zp-login-2026 #page-authentication > #forgotpass[style*='display:none'],
body.zp-login-2026 #page-authentication > #forgotpass[style*='display: none'] {
	display: none !important;
}

body.zp-login-2026 #page-authentication #login-page-wrapper {
	flex: 0 0 auto;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 0;
	width: 100%;
	max-height: none;
	padding: 0 !important;
	overflow: visible;
}

body.zp-login-2026 #top-bar,
body.zp-login-2026 .breadcrumb-blog-page,
body.zp-login-2026 #login-page .blog-wrapper > .section-detail-wrapper:first-child,
body.zp-login-2026 .title-blog,
body.zp-login-2026 .media-heading.title-blog {
	display: none !important;
}

body.zp-login-2026 #login-page-wrapper,
body.zp-login-2026 #login-page .container,
body.zp-login-2026 #page-authentication .container {
	max-width: 440px;
	margin: 0 auto;
	padding: 0 !important;
	width: 100%;
}

body.zp-login-2026 .zp-login-shell {
	padding: 0;
	max-width: 420px;
	width: 100%;
	margin: 0 auto;
	max-height: none;
	overflow: visible;
}

body.zp-login-2026 .zp-login-card {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 20px;
	box-shadow: 0 16px 40px rgba(7, 24, 64, 0.35);
	padding: 18px 16px 16px;
	max-height: none;
	overflow: visible;
	width: 100%;
	box-sizing: border-box;
}

@media (min-width: 900px) {
	body.zp-login-2026 .zp-login-card {
		padding: 22px 20px 18px;
	}
}

body.zp-login-2026 .zp-login-card__brand {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
}

body.zp-login-2026 .zp-login-card__icon {
	width: 40px;
	height: 40px;
	border-radius: 14px;
	background: linear-gradient(135deg, #009ee3 0%, #0b224f 100%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	flex-shrink: 0;
	box-shadow: 0 6px 16px rgba(0, 158, 227, 0.28);
}

body.zp-login-2026 .zp-login-card__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.2;
	color: #0f172a;
	letter-spacing: -0.02em;
}

body.zp-login-2026 .zp-login-card__subtitle {
	margin: 2px 0 0;
	font-size: 0.78rem;
	line-height: 1.35;
	color: #64748b;
}

/* Inicio de sesión: cabecera mínima */
body.zp-login-2026.zp-login-2026--signin .zp-login-card__subtitle,
body.zp-login-2026:not(.zp-login-2026--signup) .zp-login-card__subtitle {
	display: none;
}

body.zp-login-2026.zp-login-2026--signin .zp-login-card__brand {
	margin-bottom: 10px;
}

/* Registro: layout más compacto para entrar en pantalla */
body.zp-login-2026.zp-login-2026--signup .zp-login-card__brand {
	margin-bottom: 8px;
}

body.zp-login-2026.zp-login-2026--signup .zp-login-card__subtitle {
	display: none;
}

body.zp-login-2026.zp-login-2026--signup .zp-login-card {
	padding: 14px 14px 12px;
}

body.zp-login-2026.zp-login-2026--signup .zp-field {
	margin-bottom: 8px;
}

body.zp-login-2026.zp-login-2026--signup .zp-field__hint {
	margin-bottom: 4px;
	font-size: 0.68rem;
	line-height: 1.25;
}

body.zp-login-2026.zp-login-2026--signup .zp-field__control input.text-field,
body.zp-login-2026.zp-login-2026--signup .zp-field__control input[type='text'],
body.zp-login-2026.zp-login-2026--signup .zp-field__control input[type='email'],
body.zp-login-2026.zp-login-2026--signup .zp-field__control input[type='password'],
body.zp-login-2026.zp-login-2026--signup .zp-field__control input[type='tel'] {
	min-height: 40px;
	padding-top: 10px;
	padding-bottom: 10px;
}

body.zp-login-2026.zp-login-2026--signup .zp-login-terms {
	margin: 2px 0 8px;
	font-size: 0.72rem;
}

body.zp-login-2026 .login-page .message:empty {
	display: none;
}

body.zp-login-2026 .login-page .message:not(:empty) {
	margin: 0 0 16px;
	padding: 12px 14px;
	border-radius: 12px;
	font-size: 0.88rem;
	line-height: 1.4;
	background: #fef3c7;
	border: 1px solid #fcd34d;
	color: #92400e;
}

/* Fields */
body.zp-login-2026 .zp-field {
	margin-bottom: 12px;
}

body.zp-login-2026 .zp-field__label {
	display: block;
	margin-bottom: 4px;
	font-size: 0.82rem;
	font-weight: 600;
	color: #334155;
	letter-spacing: 0.01em;
}

body.zp-login-2026 .zp-field__hint {
	margin: 0 0 8px;
	font-size: 0.76rem;
	line-height: 1.4;
	color: #64748b;
}

body.zp-login-2026 .zp-field__control {
	position: relative;
	display: flex;
	align-items: center;
}

body.zp-login-2026 .zp-field__control .zp-field__icon {
	position: absolute;
	left: 14px;
	color: #94a3b8;
	font-size: 15px;
	pointer-events: none;
	z-index: 1;
}

body.zp-login-2026 .zp-field__control input.text-field,
body.zp-login-2026 .zp-field__control input[type='text'],
body.zp-login-2026 .zp-field__control input[type='email'],
body.zp-login-2026 .zp-field__control input[type='password'],
body.zp-login-2026 .zp-field__control input[type='tel'] {
	width: 100%;
	min-height: 44px;
	padding: 10px 40px 10px 40px;
	border: 1px solid #cbd5e1;
	border-radius: 14px;
	font-size: 1rem;
	line-height: 1.2;
	color: #0f172a;
	background: #f8fafc;
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

body.zp-login-2026 .zp-field__control input::placeholder {
	color: #94a3b8;
	opacity: 1;
}

body.zp-login-2026 .zp-field__control input:focus {
	outline: none;
	border-color: #009ee3;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(0, 158, 227, 0.18);
}

body.zp-login-2026 .zp-field__toggle-pw {
	position: absolute;
	right: 8px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: #64748b;
	cursor: pointer;
	z-index: 2;
}

body.zp-login-2026 .zp-field__toggle-pw:hover {
	background: #f1f5f9;
	color: #0f172a;
}

body.zp-login-2026 .zp-field-row--phone {
	display: flex;
	gap: 8px;
	align-items: stretch;
}

body.zp-login-2026 .zp-field-row--phone .zp-field__prefix {
	flex: 0 0 72px;
}

body.zp-login-2026 .zp-field-row--phone .zp-field__prefix input {
	width: 100%;
	min-height: 48px;
	padding: 12px 10px;
	text-align: center;
	border-radius: 14px;
	border: 1px solid #cbd5e1;
	background: #e2e8f0;
	color: #475569;
	font-weight: 600;
}

body.zp-login-2026 .zp-field-row--phone .zp-field__number {
	flex: 1 1 auto;
}

body.zp-login-2026 .zp-field-row--phone .zp-field__number input {
	padding-left: 14px;
}

body.zp-login-2026 .zp-login-actions {
	margin-top: 8px;
}

body.zp-login-2026 .zp-login-actions .form-submit {
	margin: 0;
}

body.zp-login-2026 .zp-btn-primary,
body.zp-login-2026 input.zp-btn-primary[type='submit'],
body.zp-login-2026 .form-field.submit_singin input[type='submit'],
body.zp-login-2026 #login-page .btn-submit {
	display: block;
	width: 100%;
	min-height: 50px;
	padding: 14px 18px;
	border: 0;
	border-radius: 14px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	color: #fff !important;
	background: linear-gradient(135deg, #009ee3 0%, #0077b6 100%) !important;
	box-shadow: 0 10px 24px rgba(0, 119, 182, 0.28);
	cursor: pointer;
	transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}

body.zp-login-2026 .zp-btn-primary:hover,
body.zp-login-2026 input.zp-btn-primary[type='submit']:hover,
body.zp-login-2026 .form-field.submit_singin input[type='submit']:hover {
	filter: brightness(1.04);
	box-shadow: 0 12px 28px rgba(0, 119, 182, 0.34);
}

body.zp-login-2026 .zp-btn-primary:active {
	transform: scale(0.98);
}

body.zp-login-2026 .zp-btn-primary:disabled,
body.zp-login-2026 .custom-sign-up:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	box-shadow: none;
}

body.zp-login-2026 .zp-login-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 16px;
	margin-top: 14px;
	font-size: 0.88rem;
}

body.zp-login-2026 .zp-login-links a,
body.zp-login-2026 .link_sign_up,
body.zp-login-2026 .link_sign_in,
body.zp-login-2026 .link_forgot_pass,
body.zp-login-2026 .page_link_sign_up,
body.zp-login-2026 .page_link_sign_in,
body.zp-login-2026 .page_link_forgot_pass {
	color: #009ee3;
	font-weight: 600;
	text-decoration: none;
}

body.zp-login-2026 .zp-login-links a:hover,
body.zp-login-2026 .link_forgot_pass:hover {
	text-decoration: underline;
}

body.zp-login-2026 .zp-login-divider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 18px 0 14px;
	font-size: 0.78rem;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

body.zp-login-2026 .zp-login-divider::before,
body.zp-login-2026 .zp-login-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #e2e8f0;
}

body.zp-login-2026 .social-login-wrapper,
body.zp-login-2026 .social-login {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0;
}

body.zp-login-2026 .social-login .sc-icon,
body.zp-login-2026 .social-login a {
	margin: 0;
}

body.zp-login-2026 .zp-login-terms {
	margin: 4px 0 12px;
	font-size: 0.82rem;
	line-height: 1.45;
	color: #64748b;
}

body.zp-login-2026 .zp-login-terms label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
}

body.zp-login-2026 .zp-login-terms input[type='checkbox'] {
	margin-top: 3px;
	width: 18px;
	height: 18px;
	accent-color: #009ee3;
	flex-shrink: 0;
}

body.zp-login-2026 .zp-login-terms a {
	color: #009ee3;
	font-weight: 600;
}

body.zp-login-2026 .login-page .content-news,
body.zp-login-2026 .zp-login-forms {
	padding: 0;
	border: 0;
	background: transparent;
}

/* Etiquetas visibles en todos los campos de login/registro */
body.zp-login-2026 .zp-field__label,
body.zp-login-2026 .zp-login-forms .form-field > label:first-child,
body.zp-login-2026 .zp-login-form .form-field > label:first-child {
	display: block !important;
	margin-bottom: 6px !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	color: #334155 !important;
	letter-spacing: 0.01em !important;
}

body.zp-login-2026 .zp-login-terms > label {
	display: flex !important;
}

/* Modal login (footer) — mismas etiquetas visibles */
body.zp-login-2026 #login_register .zp-field__label,
body.zp-login-2026 #login_register .form-field > label:first-child {
	display: block !important;
}

body.zp-login-2026 #login-page .col-md-3,
body.zp-login-2026 #login-page aside,
body.zp-login-2026 #login-page .col-md-9 .blog-wrapper > .section-detail-wrapper {
	display: none !important;
}

body.zp-login-2026 #login-page .col-md-9,
body.zp-login-2026 #login-page .col-xs-12 {
	width: 100% !important;
	max-width: none;
	margin: 0;
	float: none;
	padding: 0;
}

body.zp-login-2026 #login-page .row {
	display: block;
	margin: 0;
}

/* Formularios móvil (tabs login / register / forgot) */
body.zp-login-2026 #page-authentication .login-page {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

body.zp-login-2026 #page-authentication #register,
body.zp-login-2026 #page-authentication #forgotpass {
	margin-top: 0;
}

/* Desktop: formularios dentro de la misma card */
body.zp-login-2026 .zp-login-form--signup,
body.zp-login-2026 .zp-login-form--forgot {
	display: none;
}

body.zp-login-2026 .zp-login-form--signin.zp-login-form--active,
body.zp-login-2026 .zp-login-form--signup.zp-login-form--active,
body.zp-login-2026 .zp-login-form--forgot.zp-login-form--active {
	display: block !important;
}

body.zp-login-2026 .zp-login-form[style*='display:none'],
body.zp-login-2026 .zp-login-form[style*='display: none'] {
	display: none !important;
}

body.zp-login-2026 .form-field.submit_singin {
	padding-top: 0 !important;
}

body.zp-login-2026 .form-field.submit_singin .form-submit {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body.zp-login-2026 .form-field.submit_singin .form-submit input[type='submit'] {
	order: 1;
}

body.zp-login-2026 .form-field.submit_singin .form-submit > a {
	order: 2;
	text-align: center;
}

body.zp-login-2026 .form-field.submit_singin > p:not(.form-submit) {
	margin-top: 12px;
	text-align: center;
}

body.zp-login-2026 .custom-input-mobile {
	display: flex;
	gap: 8px;
}

body.zp-login-2026 .custom-input-mobile input[disabled] {
	flex: 0 0 72px;
	min-width: 0 !important;
	width: 72px !important;
	text-align: center;
	border-radius: 14px;
	background: #e2e8f0;
}

body.zp-login-2026 .custom-input-mobile input.mobile_number {
	flex: 1 1 auto;
	min-width: 0 !important;
	width: auto !important;
}

/* Scroll de página — override explícito (no panel fijo) */
html:has(body.zp-login-2026),
body.zp-login-2026 {
	height: auto !important;
	max-height: none !important;
	min-height: 100dvh;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
}

body.zp-login-2026 #page-authentication,
body.zp-login-2026 #login-page,
body.zp-login-2026 .zp-login-page {
	position: relative !important;
	top: auto !important;
	bottom: auto !important;
	left: auto !important;
	right: auto !important;
	overflow: visible !important;
	min-height: 0 !important;
	height: auto !important;
	max-height: none !important;
}

body.zp-login-2026 #page-authentication > #login.zp-login-panel--active,
body.zp-login-2026 #page-authentication > #register.zp-login-panel--active,
body.zp-login-2026 #page-authentication > #forgotpass.zp-login-panel--active {
	position: relative !important;
	inset: auto !important;
	overflow: visible !important;
}
