#lce-app {
	--lce-primario: #003B95;
	--lce-secundario: #DBB06E;
	--lce-texto: #58595B;
	--lce-linea: #E4E7EC;
	--lce-fondo: #F7F8FA;
	color: var(--lce-texto);
	font-size: 16px;
	line-height: 1.5;
	max-width: 900px;
	margin: 0 auto;
}

#lce-app *,
#lce-app *::before,
#lce-app *::after { box-sizing: border-box; }

#lce-app .lce-head { margin-bottom: 24px; }

#lce-app .lce-titulo {
	color: var(--lce-primario);
	font-size: 1.6rem;
	line-height: 1.2;
	margin: 0 0 6px;
	font-weight: 700;
}

#lce-app .lce-sub { margin: 0; font-size: .95rem; }

#lce-app .lce-form { border-top: 2px solid var(--lce-secundario); padding-top: 22px; }

#lce-app .lce-bloque {
	border: 0;
	border-bottom: 1px solid var(--lce-linea);
	padding: 0 0 20px;
	margin: 0 0 20px;
}

#lce-app legend {
	color: var(--lce-primario);
	font-size: .95rem;
	font-weight: 700;
	padding: 0;
	margin-bottom: 14px;
}

#lce-app .lce-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 18px;
}

#lce-app .lce-campo { display: flex; flex-direction: column; gap: 5px; }

#lce-app .lce-campo > span {
	font-size: .8rem;
	color: var(--lce-texto);
	font-weight: 600;
}

#lce-app .lce-campo em { font-style: normal; font-weight: 400; opacity: .6; }

#lce-app input[type="text"],
#lce-app input[type="email"],
#lce-app input[type="tel"],
#lce-app input[type="number"],
#lce-app select {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--lce-linea);
	border-radius: 2px;
	background: #fff;
	font-size: .95rem;
	color: var(--lce-primario);
	font-family: inherit;
}

#lce-app input:focus-visible,
#lce-app select:focus-visible,
#lce-app button:focus-visible,
#lce-app a:focus-visible {
	outline: 2px solid var(--lce-secundario);
	outline-offset: 2px;
}

#lce-app .lce-hijos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}

#lce-app .lce-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: .88rem;
	margin-top: 16px;
}

#lce-app .lce-check input { margin-top: 3px; }

#lce-app .lce-consent { margin-bottom: 22px; }

#lce-app .lce-trampa { position: absolute; left: -9999px; opacity: 0; height: 0; }

#lce-app .lce-boton {
	display: inline-block;
	background: var(--lce-primario);
	color: #fff;
	border: 0;
	padding: 14px 26px;
	font-size: .95rem;
	font-weight: 600;
	font-family: inherit;
	border-radius: 2px;
	cursor: pointer;
	text-decoration: none;
}

#lce-app .lce-boton:hover { background: #002A6B; }
#lce-app .lce-boton[disabled] { opacity: .55; cursor: progress; }

#lce-app .lce-boton-solido {
	background: var(--lce-secundario);
	color: #2B2B2B;
}

#lce-app .lce-boton-solido:hover { background: #C99C56; }

#lce-app .lce-error {
	margin: 14px 0 0;
	color: #9B1C1C;
	font-size: .88rem;
	border-left: 3px solid #9B1C1C;
	padding-left: 10px;
}

#lce-app .lce-resultado { margin-top: 38px; }

#lce-app .lce-res-head { border-top: 2px solid var(--lce-secundario); padding-top: 18px; }

#lce-app .lce-res-head h3 {
	color: var(--lce-primario);
	margin: 0 0 4px;
	font-size: 1.25rem;
}

#lce-app .lce-res-sub { margin: 0; font-size: .85rem; }

#lce-app [hidden] { display: none !important; }

#lce-app .lce-tabs {
	display: flex;
	gap: 0;
	margin: 20px 0 0;
	border-bottom: 1px solid var(--lce-linea);
}

#lce-app .lce-tab {
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 10px 16px;
	font-size: .9rem;
	font-family: inherit;
	color: var(--lce-texto);
	cursor: pointer;
}

#lce-app .lce-tab.activo {
	color: var(--lce-primario);
	border-bottom-color: var(--lce-secundario);
	font-weight: 700;
}

#lce-app .lce-tabla-wrap { overflow-x: auto; }

#lce-app .lce-tabla {
	width: 100%;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
	font-size: .86rem;
	min-width: 620px;
}

/* La primera columna queda fija al desplazar cuadros de muchos deducibles. */
#lce-app .lce-tabla th:first-child,
#lce-app .lce-tabla td:first-child {
	position: sticky;
	left: 0;
	z-index: 1;
	background: #fff;
	min-width: 140px;
}

#lce-app .lce-tabla th:first-child { background: var(--lce-fondo); }
#lce-app .lce-tabla tr.lce-total td:first-child { background: var(--lce-fondo); }

#lce-app .lce-ded-sel.lce-ded-rotulo .lce-ded-botones { display: none; }
#lce-app .lce-ded-sel.lce-ded-rotulo { margin-bottom: 10px; }

#lce-app .lce-tabla th {
	background: var(--lce-fondo);
	color: var(--lce-primario);
	font-size: .78rem;
	padding: 10px 10px;
	text-align: right;
	border-bottom: 1px solid var(--lce-linea);
	white-space: nowrap;
}

#lce-app .lce-tabla th:first-child { text-align: left; }

#lce-app .lce-tabla td {
	padding: 9px 10px;
	border-bottom: 1px solid #F0F2F5;
	text-align: right;
	white-space: nowrap;
}

#lce-app .lce-tabla td:first-child { text-align: left; color: var(--lce-texto); white-space: normal; }

#lce-app .lce-tabla .lce-mini {
	display: block;
	font-size: .74rem;
	opacity: .7;
	margin-top: 2px;
}

#lce-app .lce-tabla .lce-monto {
	font-weight: 600;
	color: var(--lce-primario);
}

#lce-app .lce-tabla .lce-monto .lce-mini {
	font-weight: 400;
	font-size: .72rem;
	color: var(--lce-texto);
	opacity: .7;
	white-space: nowrap;
}

#lce-app .lce-tabla tr.lce-total td {
	font-weight: 700;
	color: var(--lce-primario);
	background: var(--lce-fondo);
}

#lce-app .lce-boton-linea {
	background: #fff;
	color: var(--lce-primario);
	border: 1px solid var(--lce-primario);
}

#lce-app .lce-boton-linea:hover {
	background: var(--lce-primario);
	color: #fff;
}

#lce-app .lce-acciones {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

#lce-app .lce-acciones .lce-nota { flex: 1 0 100%; }

#lce-app .lce-nota { font-size: .8rem; margin: 12px 0 0; opacity: .85; }

/* --------------------------------------------------- Página de pruebas */

#lce-app .lce-aviso-qa {
	border: 1px dashed #b7791f;
	border-radius: 4px;
	background: #fffaf0;
	color: #7a5213;
	padding: 14px 18px;
	margin-bottom: 24px;
	font-size: .85rem;
	line-height: 1.6;
}

#lce-app .lce-aviso-qa strong { color: #6b4710; }

#lce-app .lce-producto-prueba {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #7a5213;
	background: #fdf0d5;
	border: 1px solid #e8cf9a;
	border-radius: 999px;
	padding: 2px 9px;
}

/* ------------------------------------------------- Selector de producto */

#lce-app .lce-productos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 14px;
	margin-bottom: 30px;
}

#lce-app .lce-producto {
	position: relative;
	display: block;
	border: 1px solid var(--lce-linea);
	border-radius: 4px;
	background: #fff;
	padding: 18px 20px;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

#lce-app .lce-producto:hover { border-color: #c3cad6; }

#lce-app .lce-producto input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

#lce-app .lce-producto.sel {
	border-color: var(--lce-primario);
	box-shadow: 0 0 0 1px var(--lce-primario) inset, 0 6px 20px rgba(0, 59, 149, .09);
}

#lce-app .lce-producto.sel::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--lce-secundario);
	border-radius: 4px 4px 0 0;
}

#lce-app .lce-producto-cuerpo { display: block; }

#lce-app .lce-producto-cab {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 4px;
}

#lce-app .lce-producto-tit {
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--lce-primario);
	line-height: 1.25;
}

#lce-app .lce-producto-alc {
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #8a6420;
	background: #fbf3e6;
	border-radius: 999px;
	padding: 3px 10px;
}

#lce-app .lce-producto-desc {
	display: block;
	font-size: .85rem;
	line-height: 1.5;
	opacity: .85;
}

#lce-app .lce-producto-iconos {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 14px;
	flex-wrap: wrap;
}

#lce-app .lce-bandera { display: block; }
#lce-app .lce-pais { display: inline-flex; }

/* -------------------------------------------------- Opciones del plan */

#lce-app .lce-eleccion { margin-bottom: 18px; }
#lce-app .lce-eleccion:last-child { margin-bottom: 0; }

#lce-app .lce-eleccion-lbl {
	display: block;
	font-size: .72rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	opacity: .75;
	margin-bottom: 8px;
}

#lce-app .lce-opcion em {
	display: block;
	font-style: normal;
	font-size: .78rem;
	opacity: .7;
	margin-top: 2px;
}

#lce-app .lce-opcion.sel em { opacity: .85; }

#lce-app .lce-tabla .lce-na {
	font-weight: 400;
	font-size: .82rem;
	color: var(--lce-texto);
	opacity: .55;
}

/* ------------------------------------------------------ Selección de grupo */

#lce-app .lce-bloque-grupo .lce-opciones {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

#lce-app .lce-opcion {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 110px;
	padding: 12px 22px;
	border: 1px solid var(--lce-linea);
	border-radius: 2px;
	background: #fff;
	cursor: pointer;
	font-size: .95rem;
}

#lce-app .lce-opcion input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

#lce-app .lce-opcion.sel,
#lce-app .lce-opcion:has(input:checked) {
	background: var(--lce-primario);
	border-color: var(--lce-primario);
	color: #fff;
	font-weight: 600;
}

#lce-app .lce-opcion input:focus-visible + span {
	outline: 2px solid var(--lce-secundario);
	outline-offset: 4px;
}

#lce-app .lce-leyenda {
	margin: 16px 0 0;
	padding: 12px 14px;
	border-left: 3px solid var(--lce-secundario);
	background: var(--lce-fondo);
	font-size: .85rem;
	line-height: 1.5;
}

/* ---------------------------------------------------- Selector de deducible */

#lce-app .lce-ded-sel { margin: 18px 0 4px; }

#lce-app .lce-ded-lbl {
	display: block;
	font-size: .72rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--lce-texto);
	opacity: .75;
	margin-bottom: 8px;
}

#lce-app .lce-ded-botones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

#lce-app .lce-ded-btn {
	background: #fff;
	border: 1px solid var(--lce-linea);
	border-radius: 2px;
	padding: 9px 14px;
	font-size: .85rem;
	font-family: inherit;
	font-variant-numeric: tabular-nums;
	color: var(--lce-texto);
	cursor: pointer;
}

#lce-app .lce-ded-btn.activo {
	background: var(--lce-primario);
	border-color: var(--lce-primario);
	color: #fff;
	font-weight: 600;
}

/* ------------------------------------------------------------- Cargando */

#lce-app .lce-cargando {
	position: fixed;
	inset: 0;
	z-index: 99990;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .93);
	padding: 24px;
}

#lce-app .lce-cargando[hidden] { display: none; }

#lce-app .lce-cargando-caja {
	text-align: center;
	max-width: 320px;
	border-top: 2px solid var(--lce-secundario);
	background: #fff;
	padding: 28px 24px 24px;
	box-shadow: 0 10px 40px rgba(0, 59, 149, .12);
}

#lce-app .lce-spinner {
	display: block;
	width: 34px;
	height: 34px;
	margin: 0 auto 16px;
	border: 2px solid var(--lce-linea);
	border-top-color: var(--lce-primario);
	border-radius: 50%;
	animation: lce-giro .8s linear infinite;
}

#lce-app .lce-cargando-t {
	margin: 0 0 6px;
	color: var(--lce-primario);
	font-weight: 700;
	font-size: 1rem;
}

#lce-app .lce-cargando-s { margin: 0; font-size: .82rem; opacity: .85; line-height: 1.45; }

#lce-app .lce-boton .lce-spinner-btn {
	display: inline-block;
	width: 13px;
	height: 13px;
	margin-right: 8px;
	vertical-align: -2px;
	border: 2px solid rgba(255, 255, 255, .4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: lce-giro .8s linear infinite;
}

@keyframes lce-giro { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
	#lce-app .lce-spinner,
	#lce-app .lce-boton .lce-spinner-btn { animation-duration: 2.4s; }
}

/* --------------------------------------------------------------- Móvil */

@media (max-width: 640px) {
	#lce-app { font-size: 15px; }
	#lce-app .lce-grid { grid-template-columns: 1fr; }
	#lce-app .lce-hijos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#lce-app .lce-titulo { font-size: 1.25rem; }
	#lce-app .lce-sub { font-size: .9rem; }

	/* 16px evita que iOS haga zoom al enfocar un campo */
	#lce-app input[type="text"],
	#lce-app input[type="email"],
	#lce-app input[type="tel"],
	#lce-app input[type="number"],
	#lce-app select { font-size: 16px; padding: 12px; }

	#lce-app .lce-boton {
		display: block;
		width: 100%;
		text-align: center;
		padding: 15px 20px;
	}

	#lce-app .lce-bloque { padding-bottom: 18px; margin-bottom: 18px; }
	#lce-app .lce-resultado { margin-top: 28px; }

	#lce-app .lce-tabs {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	#lce-app .lce-tab {
		padding: 10px 12px;
		font-size: .85rem;
		white-space: nowrap;
	}

	/* En móvil la tabla muestra un solo deducible, sin scroll horizontal */
	#lce-app .lce-tabla { min-width: 0; font-size: .92rem; }
	#lce-app .lce-tabla th, #lce-app .lce-tabla td { padding: 11px 10px; }
	#lce-app .lce-tabla td:first-child,
	#lce-app .lce-tabla th:first-child { white-space: normal; }

	#lce-app .lce-cargando-caja { padding: 24px 20px 20px; }
	#lce-app .lce-productos { grid-template-columns: 1fr; gap: 10px; margin-bottom: 24px; }
	#lce-app .lce-producto { padding: 15px 16px; }
	#lce-app .lce-producto-iconos { margin-top: 11px; }
	#lce-app .lce-opcion { flex: 1; min-width: 0; padding: 14px 10px; }
	#lce-app .lce-ded-botones { gap: 6px; }
	#lce-app .lce-ded-btn { flex: 1 1 0; min-width: 0; padding: 10px 4px; font-size: .78rem; text-align: center; }
}

@media (prefers-reduced-motion: no-preference) {
	#lce-app .lce-resultado[data-nuevo="1"] { animation: lce-entra .35s ease-out; }
	@keyframes lce-entra {
		from { opacity: 0; transform: translateY(8px); }
		to { opacity: 1; transform: none; }
	}
}
