/* Método N90 · estilos del registro y el área privada */
.n90 {
	--n90-fondo: #F3F6F2;
	--n90-tinta: #1C2B24;
	--n90-suave: #4A5A52;
	--n90-verde: #1F4D3A;
	--n90-oscuro: #1F3B2F;
	--n90-oscuro-2: #284A3B;
	--n90-melocoton: #F6D9C6;
	--n90-teja: #6B2E14;
	--n90-linea: #DCE4DD;
	--n90-borde: #B9C7BD;
	font-family: 'Figtree', 'Segoe UI', system-ui, sans-serif;
	color: var(--n90-tinta);
	font-size: 17px;
	line-height: 1.55;
	max-width: 1000px;
	margin: 0 auto;
	padding: 32px 0 64px;
	box-sizing: border-box;
}
.n90 *, .n90 *::before, .n90 *::after { box-sizing: border-box; }
.n90-registro { max-width: 680px; }
.n90 a { color: var(--n90-verde); }

.n90-titulo {
	font-family: 'Bricolage Grotesque', Georgia, sans-serif;
	font-weight: 800;
	font-size: clamp(28px, 4vw, 40px);
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
	color: inherit;
}
.n90-subtitulo {
	font-family: 'Bricolage Grotesque', Georgia, sans-serif;
	font-weight: 700;
	font-size: 22px;
	line-height: 1.2;
	margin: 0 0 14px;
	color: inherit;
}
.n90-suave { color: var(--n90-suave); }
.n90 p { margin: 0 0 12px; }

/* Tarjetas */
.n90-tarjeta {
	background: #fff;
	border: 1px solid var(--n90-linea);
	border-radius: 24px;
	padding: clamp(22px, 4vw, 40px);
	margin-bottom: 20px;
}
.n90-centro { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.n90-centro p { max-width: 34em; }
.n90-ok {
	width: 68px; height: 68px; border-radius: 999px;
	background: var(--n90-melocoton); color: var(--n90-teja);
	display: inline-flex; align-items: center; justify-content: center; margin-bottom: 8px;
}

/* Botones */
.n90-boton {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 50px; padding: 12px 28px;
	border-radius: 999px; border: 0;
	background: var(--n90-verde); color: #fff !important;
	font: inherit; font-weight: 600; text-decoration: none !important;
	cursor: pointer; line-height: 1.2;
}
.n90-boton:hover { background: #163828; }
.n90-boton:focus-visible, .n90 input:focus-visible, .n90 select:focus-visible, .n90 textarea:focus-visible {
	outline: 3px solid #E8A98A; outline-offset: 2px;
}
.n90-boton-linea { background: transparent; color: var(--n90-tinta) !important; border: 1.5px solid var(--n90-tinta); }
.n90-boton-linea:hover { background: var(--n90-linea); }
.n90-boton-claro { background: var(--n90-melocoton); color: #3A1A0C !important; }
.n90-boton-claro:hover { background: #F0C9B0; }
.n90-boton-blanco { background: #fff; color: var(--n90-oscuro) !important; width: 100%; }
.n90-boton-blanco:hover { background: var(--n90-linea); }
.n90-acciones { display: flex; flex-wrap: wrap; gap: 10px; }

/* Campos */
.n90-campo { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 15px; margin-bottom: 18px; }
.n90 input[type="text"], .n90 input[type="email"], .n90 input[type="tel"], .n90 input[type="number"],
.n90 input[type="password"], .n90 input[type="search"], .n90 input[type="url"], .n90 input[type="date"], .n90 select, .n90 textarea {
	font: inherit; font-weight: 400; font-size: 16px;
	width: 100%; min-height: 50px; padding: 12px 16px;
	border: 1.5px solid var(--n90-borde); border-radius: 12px;
	background: #fff; color: var(--n90-tinta); box-shadow: none;
}
.n90 textarea { min-height: 0; resize: vertical; }
.n90-fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 18px; }
.n90 fieldset { border: 0; margin: 0 0 22px; padding: 0; min-width: 0; }
.n90 legend { font-weight: 600; font-size: 15px; margin-bottom: 10px; padding: 0; }
.n90-opciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.n90-opcion {
	display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 12px 16px;
	border: 1.5px solid var(--n90-linea); border-radius: 12px; cursor: pointer;
}
.n90-opcion:has(input:checked) { border-color: var(--n90-verde); background: #EEF4EF; }
.n90 input[type="checkbox"], .n90 input[type="radio"] { width: 20px; height: 20px; margin: 0; accent-color: var(--n90-verde); flex-shrink: 0; }

.n90-sino { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--n90-linea) !important; padding-top: 16px !important; margin-bottom: 16px !important; }
.n90-sino legend { float: left; max-width: 28em; margin: 0; font-size: 16px; }
.n90-sino-opciones { display: flex; gap: 10px; }
.n90-pastilla { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px; border: 1.5px solid var(--n90-linea); border-radius: 999px; cursor: pointer; }
.n90-pastilla:has(input:checked) { border-color: var(--n90-verde); background: #EEF4EF; }

.n90-consentimientos { display: flex; flex-direction: column; gap: 14px; background: var(--n90-fondo); border-radius: 16px; padding: 20px; font-size: 15px; }
.n90-consentimientos label { display: flex; align-items: flex-start; gap: 12px; }
.n90-consentimientos input { margin-top: 2px !important; }
.n90-consentimientos em { color: var(--n90-teja); font-style: normal; }

.n90-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Progreso del registro */
.n90-progreso { display: none; margin-bottom: 20px; }
.n90-js .n90-progreso { display: block; }
.n90-progreso-info { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 14px; color: var(--n90-suave); margin-bottom: 10px; }
.n90-paso-texto { font-weight: 600; color: var(--n90-verde); }
.n90-barra { height: 8px; background: var(--n90-linea); border-radius: 999px; overflow: hidden; }
.n90-barra-relleno { height: 8px; width: 25%; background: var(--n90-verde); border-radius: 999px; transition: width .3s ease; }

.n90-paso { margin-bottom: 28px; }
.n90-js .n90-paso { display: none; margin-bottom: 0; }
.n90-js .n90-paso.n90-paso-activo { display: block; }

.n90-navegacion { display: flex; flex-wrap: wrap-reverse; justify-content: space-between; gap: 12px; border-top: 1px solid var(--n90-linea); padding-top: 24px; margin-top: 24px; }
.n90-atras, .n90-siguiente { display: none; }
.n90-js .n90-atras, .n90-js .n90-siguiente { display: inline-flex; }
.n90-js .n90-enviar { display: none; }
.n90-js.n90-ultimo .n90-enviar { display: inline-flex; }
.n90-js.n90-ultimo .n90-siguiente { display: none; }
.n90-js.n90-primero .n90-atras { visibility: hidden; }

.n90-errores, .n90-aviso-paso { background: #FBEDE6; color: #5A2A14; border-radius: 14px; padding: 16px 20px; margin-bottom: 24px; }
.n90-errores ul { margin: 6px 0 0 18px; padding: 0; }
.n90-aviso { background: #E6F0E9; color: var(--n90-oscuro); border-radius: 14px; padding: 14px 20px; margin-bottom: 20px; font-weight: 500; }

/* Área privada */
.n90-cabecera { margin-bottom: 22px; }
.n90-bloque-oscuro { background: var(--n90-oscuro); color: #F3F6F2; border-radius: 24px; padding: clamp(22px, 4vw, 40px); margin-bottom: 20px; }
.n90-bloque-oscuro .n90-titulo { color: #fff; }
.n90-dos { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.n90-bloque-oscuro.n90-dos { gap: 32px; }
.n90-etiqueta { display: inline-block; background: var(--n90-melocoton); color: var(--n90-teja); font-size: 13px; font-weight: 600; padding: 5px 12px; border-radius: 999px; margin-bottom: 14px; }
.n90-pack { font-family: 'Bricolage Grotesque', Georgia, sans-serif; font-weight: 700; font-size: 22px; line-height: 1.3; margin-bottom: 14px; }
.n90-nota { color: #C9D6CD; font-size: 15px; border-top: 1px solid #36584A; padding-top: 14px; }
.n90-caja-pedido { background: var(--n90-oscuro-2); border-radius: 18px; padding: 24px; }
.n90-caja-pedido p { color: #C9D6CD; font-size: 15px; }
.n90-caja-pedido .n90-caja-titulo { color: #fff; font-weight: 600; font-size: 17px; }
.n90-caja-pedido .n90-campo { color: #fff; }
.n90-caja-pedido input[type="text"] { background: var(--n90-oscuro); color: #fff; border-color: #5E8270; }

.n90-video { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; align-items: center; }
.n90-video-marco iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 14px; display: block; }

.n90-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 24px; }
.n90-bloqueado { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px dashed var(--n90-borde); border-radius: 18px; padding: 20px; color: var(--n90-suave); font-weight: 600; }
.n90-bloqueado-ancho { margin: 16px 0; }
.n90-candado { flex-shrink: 0; }
.n90-enlace-tarjeta { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--n90-linea); border-radius: 18px; padding: 22px; text-decoration: none !important; color: var(--n90-tinta) !important; }
.n90-enlace-tarjeta:hover { border-color: var(--n90-verde); }
.n90-enlace-titulo { font-family: 'Bricolage Grotesque', Georgia, sans-serif; font-weight: 700; font-size: 20px; }

.n90-saludo { color: #C9D6CD; margin-bottom: 4px; }
.n90-progreso-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 18px; }
.n90-insignia { background: var(--n90-melocoton); color: var(--n90-teja); font-size: 14px; font-weight: 600; padding: 6px 14px; border-radius: 999px; }
.n90-segmentos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.n90-segmento { height: 10px; border-radius: 6px; background: #36584A; overflow: hidden; }
.n90-segmento div { height: 10px; background: var(--n90-melocoton); border-radius: 6px; }
.n90-segmentos-texto { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; font-size: 14px; color: #C9D6CD; margin-top: 10px; }

.n90-tareas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.n90-tareas label { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
.n90-tareas input:checked + span { color: var(--n90-suave); text-decoration: line-through; }
.n90-rutina { line-height: 1.8; }

.n90-escala { margin-bottom: 18px !important; }
.n90-escala-opciones { display: flex; flex-wrap: wrap; gap: 8px; }
.n90-escala-opciones label { position: relative; cursor: pointer; }
.n90-escala-opciones input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.n90-escala-opciones span { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1.5px solid var(--n90-linea); border-radius: 12px; font-weight: 600; }
.n90-escala-opciones input:checked + span { background: var(--n90-verde); border-color: var(--n90-verde); color: #fff; }
.n90-escala-opciones input:focus-visible + span { outline: 3px solid #E8A98A; outline-offset: 2px; }

.n90-acceso { max-width: 480px; margin: 0 auto 20px; }
.n90-acceso form p { margin-bottom: 16px; }
.n90-acceso label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.n90-acceso .login-remember label { display: flex; align-items: center; gap: 10px; font-weight: 400; }
.n90-acceso input[type="submit"] {
	min-height: 50px; padding: 12px 28px; border-radius: 999px; border: 0;
	background: var(--n90-verde); color: #fff; font: inherit; font-weight: 600; cursor: pointer; width: 100%;
}

.n90-whatsapp { margin: 8px 0 20px; }
.n90-pie { text-align: center; font-size: 14px; margin-top: 24px; }

@media (prefers-reduced-motion: reduce) {
	.n90-barra-relleno { transition: none; }
}

/* Panel de clientas */
.n90p { max-width: 1160px; }
.n90 .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.n90p-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 24px; margin-bottom: 22px; }
.n90p-cabecera .n90-titulo { margin-bottom: 4px; }
.n90p-buscar { display: flex; gap: 8px; flex: 1 1 320px; max-width: 460px; }
.n90p-buscar input { flex: 1; min-width: 0; }
.n90p-buscar .n90-boton { min-height: 50px; padding: 10px 20px; }

.n90p-pestanas { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 14px; scrollbar-width: thin; }
.n90p-pestana { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 1.5px solid var(--n90-linea); background: #fff; color: var(--n90-tinta) !important; text-decoration: none !important; font-weight: 600; font-size: 15px; }
.n90p-pestana b { min-width: 24px; height: 24px; padding: 0 7px; border-radius: 999px; background: var(--n90-linea); font-size: 13px; display: inline-flex; align-items: center; justify-content: center; }
.n90p-pestana b.n90p-urgente { background: #E8A98A; color: #3A1A0C; }
.n90p-pestana.n90p-activa { background: var(--n90-verde); border-color: var(--n90-verde); color: #fff !important; }
.n90p-pestana.n90p-activa b { background: rgba(255,255,255,.2); color: #fff; }

.n90p-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.n90p-tarjeta { background: #fff; border: 1px solid var(--n90-linea); border-radius: 20px; padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; }
.n90p-tarjeta:hover { border-color: var(--n90-borde); }
.n90p-enlace { display: flex; flex-direction: column; gap: 6px; text-decoration: none !important; color: var(--n90-tinta) !important; }
.n90p-nombre { font-family: 'Bricolage Grotesque', Georgia, sans-serif; font-weight: 700; font-size: 20px; line-height: 1.2; }
.n90p-datos { color: var(--n90-suave); font-size: 15px; }
.n90p-etiquetas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 2px; }
.n90p-chip { display: inline-block; background: var(--n90-fondo); color: var(--n90-oscuro); font-size: 13px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.n90p-chip-alerta { background: #FBEDE6; color: #8A2C0D; }
.n90p-fecha { margin-left: auto; font-size: 13px; color: var(--n90-suave); }
.n90p-contacto { display: flex; flex-wrap: wrap; gap: 8px; }
.n90p-mini { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 16px; border-radius: 999px; border: 1.5px solid var(--n90-linea); font-size: 14px; font-weight: 600; color: var(--n90-verde) !important; text-decoration: none !important; }
.n90p-mini:hover { border-color: var(--n90-verde); }

.n90p-volver { margin-bottom: 10px; font-weight: 600; }
.n90p-volver a { text-decoration: none; }
.n90p-cabecera-ficha { align-items: center; }
.n90p-columnas { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.n90p-principal { flex: 999 1 520px; min-width: 0; }
.n90p-lateral { flex: 1 1 320px; min-width: 0; position: sticky; top: 90px; }
.n90p-gestion .n90-subtitulo { margin-bottom: 8px; }
.n90p-gestion hr { border: 0; border-top: 1px solid var(--n90-linea); margin: 22px 0; }
.n90p-gestion .n90-campo { margin-bottom: 6px; }
.n90p-ayuda { font-size: 13px; color: var(--n90-suave); font-weight: 400; margin: 0 0 14px !important; }
.n90p-ancho { width: 100%; margin-top: 4px; }
.n90p-pedido { background: var(--n90-fondo); border-radius: 12px; padding: 12px 14px; margin: 0 0 16px !important; line-height: 1.4; }
.n90p-no-apta { margin-top: 18px; }
.n90p-no-apta summary { cursor: pointer; color: #8A2C0D; font-weight: 600; min-height: 44px; display: flex; align-items: center; }

.n90p-datos-lista { display: grid; grid-template-columns: minmax(140px, 38%) 1fr; gap: 10px 18px; margin: 0; }
.n90p-datos-lista dt { color: var(--n90-suave); font-size: 15px; }
.n90p-datos-lista dd { margin: 0; font-weight: 500; }
.n90p-tabla { overflow-x: auto; }
.n90p-tabla table { width: 100%; border-collapse: collapse; font-size: 15px; }
.n90p-tabla th, .n90p-tabla td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--n90-linea); white-space: nowrap; }
.n90p-tabla th { color: var(--n90-suave); font-weight: 600; font-size: 13px; }
.n90p-nota-fila td { white-space: normal; color: var(--n90-suave); font-style: italic; border-bottom-color: var(--n90-linea); }

@media (max-width: 760px) {
	.n90p-lateral { position: static; }
	.n90p-datos-lista { grid-template-columns: 1fr; gap: 2px; }
	.n90p-datos-lista dd { margin-bottom: 10px; }
	.n90p-buscar { max-width: none; }
}

/* Productos de la rutina */
.n90-productos-seccion { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0; padding: 0 !important; overflow: hidden; }
.n90-pack-foto { width: 100%; height: 100%; object-fit: cover; display: block; background: #EFE6DA; }
.n90-pack-lista { padding: clamp(22px, 3vw, 34px); display: flex; flex-direction: column; justify-content: center; }
.n90-pack-lista ul { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; }
.n90-pack-lista li { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 0; border-bottom: 1px solid var(--n90-linea); }
.n90-pack-lista li:first-child { padding-top: 4px; }
.n90-pack-lista strong { font-family: 'Bricolage Grotesque', Georgia, sans-serif; font-weight: 700; font-size: 19px; line-height: 1.2; }
.n90-pack-lista .n90-suave { font-size: 15px; margin: 0; }
.n90-momento { display: inline-block; background: var(--n90-melocoton); color: var(--n90-teja); font-size: 13px; font-weight: 600; padding: 4px 12px; border-radius: 999px; }
.n90-momento-noche { background: var(--n90-oscuro); color: #fff; }
@media (max-width: 760px) {
	.n90-productos-seccion { grid-template-columns: 1fr; }
	.n90-pack-foto { height: auto; aspect-ratio: 5 / 4; }
}

/* Avisos del día */
.n90-aviso-dia { background: var(--n90-melocoton); color: #3A1A0C; border-radius: 24px; padding: clamp(20px, 3vw, 30px); margin-bottom: 20px; }
.n90-aviso-dia .n90-etiqueta { background: #fff; }
.n90-aviso-dia .n90-subtitulo { margin: 4px 0 8px; }
.n90-aviso-dia p { margin: 0; font-size: 17px; }

/* Avisos en la ficha del panel */
.n90p-avisos { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.n90p-avisos li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--n90-fondo); border-radius: 14px; padding: 12px 14px; }
.n90p-avisos li > div { flex: 1 1 100%; display: flex; flex-direction: column; gap: 2px; }
.n90p-avisos strong { font-size: 15px; }
.n90p-avisos .n90p-ayuda { margin: 0 !important; }
.n90p-avisos .n90p-mini { margin-left: auto; background: #fff; cursor: pointer; font: inherit; font-size: 14px; font-weight: 600; }
.n90p-chip-aviso { background: var(--n90-melocoton); color: var(--n90-teja); }

.n90-aviso-boton { margin-top: 16px !important; }

/* Mensajes de aviso: texto centrado en la caja y separación con lo de debajo */
.n90 p.n90-errores, .n90 p.n90-aviso, .n90 .n90-errores, .n90 .n90-aviso {
	display: block;
	margin: 0 0 28px !important;
	padding: 18px 22px !important;
	line-height: 1.5;
	text-align: center;
	border-radius: 16px;
}
.n90 .n90-errores ul { text-align: left; display: inline-block; }

/* Eliminar clienta */
.n90p-eliminar { margin-top: 18px; text-align: center; }
.n90p-boton-eliminar { width: 100%; min-height: 48px; border-radius: 999px; border: 1.5px solid #B4321A; background: #fff; color: #B4321A; font: inherit; font-weight: 600; cursor: pointer; }
.n90p-boton-eliminar:hover { background: #B4321A; color: #fff; }
.n90p-eliminar .n90p-ayuda { margin-top: 8px !important; }

/* Pestaña Avisos */
.n90p-aviso-tarjeta { background: var(--n90-melocoton); color: #3A1A0C; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.n90p-aviso-tarjeta strong { font-size: 15px; }
.n90p-aviso-tarjeta span { font-size: 14px; }
.n90p-contacto form { margin: 0; }
.n90p-contacto button.n90p-mini { background: #fff; cursor: pointer; font: inherit; font-size: 14px; font-weight: 600; }
.n90p-mini.n90p-mini-lleno { background: var(--n90-verde); border-color: var(--n90-verde); color: #fff !important; }

.n90-enlace-foto { width: calc(100% + 44px); max-width: none; height: 150px; object-fit: cover; margin: -22px -22px 10px; border-radius: 18px 18px 0 0; display: block; }
.n90-enlace-tarjeta { overflow: hidden; }
.n90-mant-area .n90-etiqueta { align-self: flex-start; }
.n90-mant-area .n90-pack-lista p { font-size: 16px; }

.n90-tarjeta-cerrada { position: relative; background: #F3F6F2; border-style: dashed; cursor: default; }
.n90-tarjeta-cerrada:hover { border-color: var(--n90-linea); }
.n90-tarjeta-cerrada .n90-enlace-titulo { color: var(--n90-suave); }
.n90-cerrada-icono { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: #fff; color: #1F4D3A; border: 1px solid var(--n90-linea); margin-bottom: 4px; }
.n90-cerrada-faltan { align-self: flex-start; margin-top: auto; background: #F6D9C6; color: #6B2E14; font-size: 13px; font-weight: 600; padding: 4px 12px; border-radius: 999px; }
