/**
 * DESK by Prana — Pantalla de acceso (diseño v16 21a–21d)
 * Fuente: design-system/export/login-v16.html. Estructura de v16; valores
 * de desk-theme.css (SCREEN_MAP: en archivos < v20 los valores los ponen
 * los tokens). Jerarquía de alturas del diseño (52/48) mapeada a tokens
 * (48/44) — pendiente de confirmación de Claude Design, ver
 * docs/analisis_login_vs_diseno.md.
 */

/* svh (no dvh): el viewport "pequeño" estable — dvh salta con el teclado
   de iOS y deja alto fantasma al cerrarse */
.lg { min-height: 100svh; display: flex; background: var(--desk-bg); }
html, body { overscroll-behavior-y: none; }

/* ─── Mitad imagen (620/1440 ≈ 43%) ─────────────────────────────── */
.lg-izq {
	width: 43%;
	max-width: 620px;
	flex: none;
	position: relative;
	background: #16181B; /* carbón fijo del diseño (§1: el acento nunca lo toca) */
	overflow: hidden;
}
.lg-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 700ms ease;
	background-size: cover;
	background-position: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: var(--desk-s12) 48px 110px;
}
.lg-slide.is-visible { opacity: 1; }
.lg-slide__c { display: flex; flex-direction: column; gap: var(--desk-s7); }
.lg-slide__eyebrow {
	font-size: var(--desk-fs-eyebrow);
	letter-spacing: var(--desk-fs-eyebrow-ls);
	text-transform: uppercase;
	font-weight: 700;
	color: rgba(255, 255, 255, .55);
}
.lg-slide__t {
	font-size: var(--desk-fs-h1);
	line-height: var(--desk-lh-tight);
	font-weight: 700;
	letter-spacing: var(--desk-fs-h1-ls);
	color: #fff;
	max-width: 22ch;
	text-wrap: pretty;
}
.lg-slide__d {
	font-size: var(--desk-fs-lead);
	line-height: var(--desk-lh-body);
	color: rgba(255, 255, 255, .66);
	max-width: 44ch;
	text-wrap: pretty;
}
.lg-marca {
	position: absolute;
	top: var(--desk-s12);
	left: 48px;
	display: flex;
	align-items: center;
	gap: var(--desk-s6);
}
.lg-marca__iso { width: 38px; height: 38px; flex: none; background: url('/assets/desk-iso.png') center/contain no-repeat; }
.lg-marca__n { font-size: 24px; font-weight: 800; letter-spacing: -.03em; color: #fff; }
.lg-marca__by { font-size: var(--desk-fs-eyebrow); letter-spacing: .22em; text-transform: uppercase; font-weight: 700; color: rgba(255, 255, 255, .5); margin-top: 8px; }
.lg-puntos { position: absolute; bottom: 52px; left: 48px; display: flex; align-items: center; gap: 9px; }
.lg-punto {
	cursor: pointer;
	width: 6px;
	height: 6px;
	border: 0;
	padding: 0;
	border-radius: var(--desk-r-pill);
	background: rgba(255, 255, 255, .35);
	transition: width 300ms ease, background 300ms ease;
}
.lg-punto.is-elegido { width: 22px; background: #fff; }

/* ─── Mitad formulario ──────────────────────────────────────────── */
.lg-der { flex: 1; min-width: 0; display: flex; flex-direction: column; padding: var(--desk-s11) 40px; }
.lg-arriba { display: flex; align-items: center; justify-content: flex-end; gap: var(--desk-s5); flex: none; }
.lg-arriba__t { font-size: var(--desk-fs-xs); color: var(--desk-text3); }
.lg-soporte {
	display: inline-flex;
	align-items: center;
	gap: var(--desk-s4);
	height: 36px;
	padding: 0 15px;
	border-radius: var(--desk-r-pill);
	background: transparent;
	box-shadow: inset 0 0 0 1px var(--desk-hair);
	font-size: var(--desk-fs-xs);
	font-weight: 500;
	color: var(--desk-text2);
	text-decoration: none;
}
.lg-soporte > i { color: var(--desk-text3); font-size: var(--desk-ico-13); }
.lg-centro { flex: 1; display: flex; align-items: center; justify-content: center; }
.lg-card {
	width: 420px;
	max-width: 100%;
	background: var(--desk-surface);
	border-radius: var(--desk-r-panel);
	box-shadow: var(--desk-shadow);
	padding: var(--desk-pad-panel); /* = radio 30 · v27 36 */
	display: flex;
	flex-direction: column;
	gap: var(--desk-s9);
}
.lg-card__head { display: flex; flex-direction: column; gap: var(--desk-s3); }
.lg-card__volver {
	display: inline-flex;
	align-items: center;
	gap: var(--desk-s4);
	align-self: flex-start;
	min-height: var(--desk-touch);
	font-size: var(--desk-fs-xs);
	font-weight: 600;
	color: var(--desk-text2);
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}
.lg-card__t { font-size: var(--desk-fs-h2); font-weight: 700; letter-spacing: var(--desk-fs-h2-ls); color: var(--desk-text); }
.lg-card__d { font-size: var(--desk-fs-sm); color: var(--desk-text3); }

/* Alerta (v16 21b: superficie tenue, radio 18, ícono en disco) */
.lg-alerta {
	display: flex;
	gap: var(--desk-s6);
	padding: 15px;
	border-radius: var(--desk-r-field-lg);
	/* TOKEN FALTANTE: v16 usa --dangerSoft y desk-theme.css no lo trae.
	   Derivado de tokens (sin hex) hasta que Claude Design lo agregue. */
	background: color-mix(in srgb, var(--desk-danger) 9%, var(--desk-surface));
}
.lg-alerta__ico {
	width: 26px;
	height: 26px;
	flex: none;
	border-radius: var(--desk-r-pill);
	background: var(--desk-danger);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.lg-alerta__ico > i { font-size: var(--desk-ico-13); }
.lg-alerta__c { display: flex; flex-direction: column; gap: 3px; }
.lg-alerta__t { font-size: var(--desk-fs-sm); font-weight: 700; color: var(--desk-danger); }
.lg-alerta__d { font-size: var(--desk-fs-xs); line-height: 1.5; color: var(--desk-text2); }
.lg-alerta__d .mono { font-family: var(--desk-font-mono); font-weight: 500; }
.lg-alerta__x {
	width: 26px;
	height: 26px;
	flex: none;
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--desk-danger);
}
.lg-alerta--ok { background: var(--desk-soft); }
.lg-alerta--ok .lg-alerta__ico { background: var(--desk-accent); color: var(--desk-onAccent); }
.lg-alerta--ok .lg-alerta__t { color: var(--desk-text); }

/* El navegador pinta celeste los campos autocompletados por el llavero
   (:-webkit-autofill). La transición eterna difiere ese fondo para siempre
   y el texto queda en nuestro color. */
.desk-field__input:-webkit-autofill,
.desk-field__input:-webkit-autofill:hover,
.desk-field__input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--desk-text);
	caret-color: var(--desk-text);
	transition: background-color 9999999s ease-out;
}

/* Campos: desk-field del sistema + ojo de contraseña */
.lg-form { display: flex; flex-direction: column; gap: var(--desk-s8); }
.lg-campos { display: flex; flex-direction: column; gap: var(--desk-s7); }
.lg-label-fila { display: flex; align-items: baseline; justify-content: space-between; }
.lg-olvide { font-size: var(--desk-fs-xs); font-weight: 600; color: var(--desk-accentText); text-decoration: none; background: none; border: 0; padding: 0; cursor: pointer; }
.lg-ojo { margin-left: auto; background: none; border: 0; padding: 0; cursor: pointer; color: var(--desk-text3); display: inline-flex; }
.lg-ojo > i { font-size: var(--desk-ico-14); }
.is-apagado { opacity: .45; pointer-events: none; }

/* Recordar */
.lg-recordar { display: flex; align-items: center; gap: 11px; cursor: pointer; min-height: var(--desk-touch); }
.lg-recordar__t { font-size: var(--desk-fs-sm); color: var(--desk-text2); }

/* Botones (jerarquía v16: primaria > alternativas) */
.lg-primaria {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--desk-s5);
	height: var(--desk-h-field);
	border-radius: var(--desk-r-pill);
	border: 0;
	background: var(--desk-accent);
	color: var(--desk-onAccent);
	font: 600 var(--desk-fs-lead) var(--desk-font);
	cursor: pointer;
	transition: opacity var(--desk-t-fast) var(--desk-ease);
}
.lg-primaria:disabled { background: var(--desk-inset); color: var(--desk-text3); cursor: default; }
.lg-primaria .mono { font-family: var(--desk-font-mono); font-weight: 500; color: var(--desk-text2); }
.lg-anillo {
	width: 16px;
	height: 16px;
	flex: none;
	border-radius: var(--desk-r-pill);
	border: 2px solid currentColor;
	border-top-color: transparent;
	animation: lg-girar .8s linear infinite;
}
@keyframes lg-girar { to { transform: rotate(360deg); } }
.lg-divisor { display: flex; align-items: center; gap: var(--desk-s7); }
.lg-divisor::before, .lg-divisor::after { content: ''; flex: 1; height: 1px; background: var(--desk-hair); }
.lg-divisor__t { font-size: var(--desk-fs-micro); color: var(--desk-text3); }
.lg-alt { display: flex; flex-direction: column; gap: var(--desk-s5); }
.lg-alt__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
	height: var(--desk-touch);
	border-radius: var(--desk-r-pill);
	border: 0;
	font: 600 var(--desk-fs-body) var(--desk-font);
	cursor: pointer;
}
.lg-alt__btn--google { background: var(--desk-surface); box-shadow: inset 0 0 0 1px var(--desk-hair); color: var(--desk-text); }
.lg-alt__btn--codigo { background: var(--desk-inset); color: var(--desk-text2); }
.lg-alt__btn--codigo > i { color: var(--desk-text3); font-size: var(--desk-ico-14); }
.lg-g {
	width: 20px;
	height: 20px;
	flex: none;
	border-radius: var(--desk-r-pill);
	background: #fff;
	box-shadow: inset 0 0 0 1px rgba(16, 18, 20, .12);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--desk-fs-xs);
	font-weight: 800;
	color: #4285F4; /* azul de marca Google, fijo */
}
.lg-nota { font-size: var(--desk-fs-micro); line-height: 1.5; color: var(--desk-text3); text-align: center; margin-top: 2px; }
.lg-nota strong { font-weight: 600; color: var(--desk-text2); }

/* Código de 6 dígitos (21c): cajas en mono, foco en la que sigue */
.lg-digitos { display: flex; gap: var(--desk-s4); justify-content: space-between; }
.lg-digito {
	flex: 1 1 0;
	min-width: 0;
	max-width: 48px;
	height: var(--desk-h-field);
	text-align: center;
	border: 0;
	outline: 0;
	border-radius: var(--desk-r-field);
	background: var(--desk-inset);
	font: 600 var(--desk-fs-h3) var(--desk-font-mono);
	color: var(--desk-text);
	transition: box-shadow var(--desk-t-fast) var(--desk-ease);
}
.lg-digito:focus { background: var(--desk-surface); box-shadow: inset 0 0 0 2px var(--desk-line); }
.lg-reenvio { font-size: var(--desk-fs-xs); color: var(--desk-text3); text-align: center; }
.lg-reenvio button { background: none; border: 0; padding: 0; font: 600 var(--desk-fs-xs) var(--desk-font); color: var(--desk-accentText); cursor: pointer; }
.lg-reenvio .mono { font-family: var(--desk-font-mono); }

.lg-pie { flex: none; display: flex; align-items: center; justify-content: space-between; font-size: var(--desk-fs-micro); color: var(--desk-text3); }
.lg-pie__der { display: flex; gap: 20px; }
.lg-pie .mono { font-family: var(--desk-font-mono); }
[hidden] { display: none !important; }

/* ─── Anchos intermedios: la imagen cede antes de apretar la card ── */
@media (max-width: 1080px) and (min-width: 761px) {
	.lg-izq { width: 36%; }
	.lg-slide { padding: var(--desk-s9) var(--desk-s9) 96px; }
	.lg-marca { left: var(--desk-s9); }
	.lg-puntos { left: var(--desk-s9); }
	.lg-der { padding: var(--desk-s9); }
}

/* ─── Móvil (v16 21d): imagen como franja, card solapada, pie fijo ── */
@media (max-width: 760px) {
	/* iOS hace ZOOM automático al enfocar inputs con fuente <16px.
	   Además el diseño §12 pide subir el cuerpo en móvil. */
	.desk-field__input { font-size: 16px; }
	.lg { flex-direction: column; }
	.lg-izq { width: 100%; max-width: none; height: 236px; flex: none; }
	.lg-slide { padding: 0 var(--desk-s9) var(--desk-s12); justify-content: flex-end; }
	.lg-slide__t { font-size: var(--desk-fs-h3); }
	.lg-slide__d, .lg-puntos { display: none; }
	.lg-marca { top: calc(env(safe-area-inset-top, 0px) + var(--desk-s7)); left: var(--desk-s9); }
	.lg-der { padding: 0 var(--desk-s7) calc(env(safe-area-inset-bottom, 0px) + var(--desk-s7)); }
	.lg-arriba { display: none; }
	.lg-centro { align-items: flex-start; margin-top: -30px; position: relative; z-index: 1; }
	.lg-card { padding: var(--desk-s9) var(--desk-s9) var(--desk-s8); border-radius: var(--desk-r-card); }
	/* Sin sticky: en iOS el sticky+teclado deja un alto fantasma bajo la
	   página. La card es corta: el botón queda a la vista igual. */
	.lg-primaria { height: var(--desk-h-btn-mobile); }
	.lg-pie { justify-content: center; padding-top: var(--desk-s7); }
	.lg-pie__der { display: none; }
}
