/* =========================================================
   Formulario público de autorregistro

   Hoja aparte de la del panel a propósito: aquí manda el móvil, los
   objetivos son grandes y no hay ni barra de navegación ni tablas.
   Compartir la hoja del panel obligaría a deshacer con excepciones casi
   todo lo que allí está bien.
   ========================================================= */

:root {
	--alta-azul: #2f6296;
	--alta-azul-osc: #1f4a6d;
	--alta-tinta: #182a3c;
	--alta-suave: #48607a;
	--alta-linea: #ced8e2;
	--alta-crema: #e3edf6;
	--alta-fondo: #f4f8fc;
	--alta-radio: 14px;
}

* { box-sizing: border-box; }

body.alta {
	margin: 0;
	padding: 0;
	background: var(--alta-fondo);
	color: var(--alta-tinta);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 17px;
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
}

.alta-shell {
	max-width: 34rem;
	margin: 0 auto;
	padding: 1.5rem 1.1rem 2rem;
}

.alta-card {
	background: #fff;
	border: 1px solid var(--alta-linea);
	border-radius: var(--alta-radio);
	padding: 1.6rem 1.3rem 1.4rem;
}

.alta-card--centro { text-align: center; }

.alta-card h1 {
	margin: 0 0 .6rem;
	font-size: 1.45rem;
	line-height: 1.25;
	font-weight: 700;
}

.alta-intro { margin: 0 0 1.4rem; color: var(--alta-suave); }
.alta-ayuda { margin: -.2rem 0 1.2rem; color: var(--alta-suave); font-size: .9375rem; }

/* --- Progreso --- */

.alta-progreso {
	height: 6px;
	border-radius: 3px;
	background: var(--alta-crema);
	overflow: hidden;
}

.alta-progreso span {
	display: block;
	height: 100%;
	background: var(--alta-azul);
	transition: width .25s ease;
}

.alta-cuenta {
	margin: .55rem 0 1.1rem;
	font-size: .8125rem;
	color: var(--alta-suave);
}

/* --- Respuestas de una sola opción --- */

.alta-opciones { display: grid; gap: .55rem; }

.alta-opcion {
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .95rem 1rem;
	border: 1.5px solid var(--alta-linea);
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	/* Objetivo cómodo para el dedo: nunca por debajo de 48 px de alto. */
	min-height: 48px;
}

.alta-opcion:hover { border-color: var(--alta-azul); }
.alta-opcion.is-elegida { border-color: var(--alta-azul); background: var(--alta-crema); }
.alta-opcion input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--alta-azul); }
.alta-opcion span { flex: 1 1 auto; }

.alta-multi .alta-opciones { margin-bottom: 1.1rem; }

.alta-grupo {
	margin: 0 0 .5rem;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--alta-suave);
}

/* --- Campos escritos --- */

.alta-campos { display: grid; gap: .8rem; }
.alta-campos--par { grid-template-columns: 1fr 1fr; }

.alta-campo { display: block; }
.alta-campo span {
	display: block;
	margin-bottom: .3rem;
	font-size: .8125rem;
	color: var(--alta-suave);
}

.alta-campo input,
.alta-campo select {
	width: 100%;
	padding: .8rem .85rem;
	border: 1.5px solid var(--alta-linea);
	border-radius: 10px;
	background: #fff;
	color: var(--alta-tinta);
	font: inherit;
	/* 17 px o más: por debajo de 16 el navegador del iPhone hace zoom solo
	   al enfocar el campo y descoloca la pantalla. */
	font-size: 17px;
}

.alta-campo input:focus,
.alta-campo select:focus {
	outline: none;
	border-color: var(--alta-azul);
	box-shadow: 0 0 0 3px rgba(47, 98, 150, .15);
}

.alta-archivo {
	display: block;
	padding: 1.3rem 1rem;
	border: 2px dashed var(--alta-linea);
	border-radius: 12px;
	text-align: center;
	cursor: pointer;
	color: var(--alta-suave);
}

.alta-archivo input { display: block; margin: 0 auto .6rem; max-width: 100%; }

.alta-recibidos {
	margin: 0 0 .9rem;
	padding: 0;
	list-style: none;
	display: grid;
	gap: .4rem;
}

.alta-recibidos li {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .65rem .8rem;
	border: 1.5px solid var(--alta-azul);
	border-radius: 10px;
	background: var(--alta-crema);
	font-size: .9375rem;
	word-break: break-all;
}

.alta-recibidos em { margin-left: auto; font-style: normal; opacity: .7; font-size: .8125rem; }

.alta-limite {
	display: block;
	margin-top: .35rem;
	font-size: .8125rem;
	opacity: .8;
}

/* --- Botones --- */

.alta-acciones {
	display: flex;
	gap: .6rem;
	margin-top: 1.5rem;
}

.alta-boton {
	flex: 1 1 auto;
	min-height: 52px;
	padding: .9rem 1.1rem;
	border: 1.5px solid transparent;
	border-radius: 10px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.alta-boton--principal { background: var(--alta-azul); color: #fff; }
.alta-boton--principal:hover { background: var(--alta-azul-osc); }

.alta-boton--suave {
	flex: 0 0 auto;
	background: #fff;
	border-color: var(--alta-linea);
	color: var(--alta-suave);
}

.alta-saltar {
	display: block;
	width: 100%;
	margin-top: .9rem;
	padding: .5rem;
	border: 0;
	background: none;
	color: var(--alta-suave);
	font: inherit;
	font-size: .875rem;
	text-decoration: underline;
	cursor: pointer;
}

.alta-error {
	margin: 0 0 1rem;
	padding: .75rem .9rem;
	border-radius: 10px;
	background: #fdeaea;
	color: #8c2b2b;
	font-size: .9375rem;
}

.alta-tic {
	margin: 0 0 .4rem;
	font-size: 2.6rem;
	line-height: 1;
	color: var(--alta-azul);
}

.alta-idioma { margin: 1.2rem 0 0; font-size: .9375rem; text-align: center; }
.alta-idioma a,
.alta-idioma button {
	padding: .4rem .6rem;
	border: 0;
	background: none;
	color: var(--alta-azul);
	font: inherit;
	font-size: .9375rem;
	text-decoration: underline;
	cursor: pointer;
}

.alta-pie {
	max-width: 34rem;
	margin: 0 auto;
	padding: 0 1.1rem 2rem;
	text-align: center;
	color: var(--alta-suave);
	font-size: .8125rem;
}

/* El campo trampa: fuera de la vista pero sin display:none, que algunos
   programas de relleno automático saben saltarse. */
.alta-trampa {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 400px) {
	.alta-campos--par { grid-template-columns: 1fr; }
}
