/**
 * Lomito Inversionista - Simulador Afore o PPR.
 * Solo variables del tema. El verde y el rojo fuertes se redefinen por modo
 * para no bajar de 4.5:1 en texto chico.
 */
.lmt-retpage {
	--lmt-ret-strong: var(--lmt-emerald-700);
	--lmt-ret-down: #b91c1c;
	--lmt-ret-pes: #b45309;
}

html[data-lomito-theme="dark"] .lmt-retpage {
	--lmt-ret-strong: var(--lmt-accent);
	--lmt-ret-down: var(--lmt-down);
	--lmt-ret-pes: #fbbf24;
}

.lmt-ret-cuerpo {
	padding-top: clamp(28px, 5vw, 48px);
	padding-bottom: clamp(40px, 7vw, 72px);
}

/* Paneles */
.lmt-ret-panel {
	margin-bottom: 16px;
	padding: clamp(18px, 3.5vw, 28px);
	border: 1px solid var(--lmt-border);
	border-radius: var(--lmt-radius-lg);
	background: var(--lmt-surface);
	box-shadow: var(--lmt-shadow);
}

.lmt-ret-h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-family: var(--lmt-font-display);
	font-size: clamp(1.05rem, 2.2vw, 1.25rem);
	font-weight: 800;
	line-height: 1.25;
	color: var(--lmt-text);
}

.lmt-ret-h3 {
	margin: 0 0 10px;
	font-size: 1rem;
	font-weight: 800;
	color: var(--lmt-text);
}

.lmt-ret-paso {
	flex: none;
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--lmt-ret-strong);
	font-size: 0.85rem;
	font-weight: 800;
	color: var(--lmt-surface);
}

.lmt-ret-campos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px clamp(14px, 3vw, 24px);
}

@media (max-width: 600px) {
	.lmt-ret-campos { grid-template-columns: 1fr; }
}

.lmt-ret-campo { min-width: 0; }

.lmt-ret-label {
	display: block;
	margin-bottom: 8px;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--lmt-text-muted);
}

.lmt-ret-caja {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 0 12px;
	border: 1px solid var(--lmt-border);
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface-2);
}

.lmt-ret-caja:focus-within { border-color: var(--lmt-accent); }

.lmt-ret-caja--chica { width: 96px; flex: none; }

.lmt-ret-unidad { flex: none; font-weight: 700; color: var(--lmt-text-muted); }

.lmt-ret-num {
	width: 100%;
	min-width: 0;
	padding: 11px 0;
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: 1.05rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--lmt-text);
	-moz-appearance: textfield;
}

.lmt-ret-num::-webkit-outer-spin-button,
.lmt-ret-num::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.lmt-ret-num:focus { outline: none; }

.lmt-ret-ayuda {
	display: block;
	margin-top: 6px;
	font-size: 0.78rem;
	color: var(--lmt-text-muted);
}

.lmt-ret-nota {
	margin: 10px 0 0;
	font-size: 0.85rem;
	line-height: 1.55;
	color: var(--lmt-text-muted);
}

.lmt-ret-nota a, .lmt-ret-bloque a { color: var(--lmt-ret-strong); }

/* Perfiles y modos */
.lmt-ret-perfiles, .lmt-ret-modos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}

.lmt-ret-modos { grid-template-columns: repeat(2, 1fr); }

.lmt-ret-perfil, .lmt-ret-modo {
	padding: 11px 10px;
	border: 1px solid var(--lmt-border);
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface);
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--lmt-text-muted);
	cursor: pointer;
}

.lmt-ret-perfil.is-activo, .lmt-ret-modo.is-activo {
	border-color: var(--lmt-accent);
	background: var(--lmt-accent-soft);
	color: var(--lmt-ret-strong);
}

/* Activos */
.lmt-ret-activos { display: grid; gap: 12px; margin-top: 16px; }

.lmt-ret-activo__cab {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}

.lmt-ret-activo__nombre { display: block; font-weight: 700; color: var(--lmt-text); }

.lmt-ret-activo__clave {
	display: inline-block;
	margin-top: 2px;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: .04em;
	color: var(--lmt-text-muted);
}

.lmt-ret-range {
	width: 100%;
	height: 4px;
	margin: 0;
	border-radius: 999px;
	background: var(--lmt-border);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.lmt-ret-range::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	border: 3px solid var(--lmt-surface);
	border-radius: 50%;
	background: var(--lmt-accent);
}

.lmt-ret-range::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border: 3px solid var(--lmt-surface);
	border-radius: 50%;
	background: var(--lmt-accent);
}

.lmt-ret-suma {
	margin: 14px 0 0;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--lmt-ret-strong);
}

.lmt-ret-suma.is-error { color: var(--lmt-ret-down); }

/* Resultado */
.lmt-ret-resultado {
	margin: 24px 0 16px;
	padding: clamp(22px, 4vw, 36px);
	border: 1px solid var(--lmt-border);
	border-radius: var(--lmt-radius-lg);
	background: var(--lmt-surface);
	box-shadow: var(--lmt-shadow-lg);
}

.lmt-ret-resultado__k {
	margin: 0;
	text-align: center;
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--lmt-text-muted);
}

.lmt-ret-resultado__v {
	margin: 4px 0 0;
	text-align: center;
	font-family: var(--lmt-font-display);
	font-size: clamp(2.2rem, 7vw, 3.6rem);
	font-weight: 800;
	line-height: 1.05;
	color: var(--lmt-text);
}

.lmt-ret-resultado__sub {
	margin: 12px auto 0;
	max-width: 58ch;
	text-align: center;
	line-height: 1.55;
	color: var(--lmt-text-muted);
}

.lmt-ret-esc {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 22px;
}

@media (max-width: 560px) {
	.lmt-ret-esc { grid-template-columns: 1fr; }
}

.lmt-ret-esc__i {
	padding: 12px;
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface-2);
	border-top: 3px solid var(--lmt-border);
	text-align: center;
}

.lmt-ret-esc__i--optimista { border-top-color: var(--lmt-accent); }
.lmt-ret-esc__i--base { border-top-color: var(--lmt-text); }
.lmt-ret-esc__i--pesimista { border-top-color: var(--lmt-ret-pes); }

.lmt-ret-esc__k {
	display: block;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--lmt-text-muted);
}

.lmt-ret-esc__i strong {
	display: block;
	margin-top: 4px;
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--lmt-text);
}

.lmt-ret-esc__s { display: block; margin-top: 2px; font-size: 0.8rem; color: var(--lmt-text-muted); }

/* Grafica */
.lmt-ret-grafica { margin-top: 22px; }

.lmt-ret-svg { display: block; width: 100%; height: 260px; overflow: visible; }

.lmt-ret-svg path { fill: none; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.lmt-ret-svg__opt { stroke: var(--lmt-accent); }
.lmt-ret-svg__base { stroke: var(--lmt-text); stroke-width: 3 !important; }
.lmt-ret-svg__pes { stroke: var(--lmt-ret-pes); }
.lmt-ret-svg__ap { stroke: var(--lmt-text-muted); stroke-dasharray: 5 5; }
.lmt-ret-svg__meta { stroke: var(--lmt-border); stroke-width: 1.5; stroke-dasharray: 2 4; vector-effect: non-scaling-stroke; }
.lmt-ret-svg__ejes text { font-size: 11px; fill: var(--lmt-text-muted); }

.lmt-ret-leyenda {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	justify-content: center;
	margin: 10px 0 0;
	font-size: 0.8rem;
	color: var(--lmt-text-muted);
}

.lmt-ret-leyenda__i::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 3px;
	margin-right: 6px;
	vertical-align: middle;
	background: var(--lmt-text-muted);
}

.lmt-ret-leyenda__i--opt::before { background: var(--lmt-accent); }
.lmt-ret-leyenda__i--base::before { background: var(--lmt-text); }
.lmt-ret-leyenda__i--pes::before { background: var(--lmt-ret-pes); }

/* Caida, compra, venta */
.lmt-ret-caida, .lmt-ret-compra, .lmt-ret-venta {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--lmt-border);
}

.lmt-ret-check { display: flex; gap: 10px; align-items: center; font-weight: 700; color: var(--lmt-text); cursor: pointer; }
.lmt-ret-check input { width: 18px; height: 18px; accent-color: var(--lmt-accent); }

.lmt-ret-caida__r { margin: 8px 0 0; line-height: 1.55; color: var(--lmt-text-muted); }

.lmt-ret-tabla-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.lmt-ret-tabla { width: 100%; min-width: 420px; border-collapse: collapse; font-size: 0.9rem; }
.lmt-ret-tabla th, .lmt-ret-tabla td { padding: 9px 8px; border-bottom: 1px solid var(--lmt-border); text-align: left; color: var(--lmt-text); }
.lmt-ret-tabla th { font-size: 0.75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--lmt-text-muted); }
.lmt-ret-tabla td:nth-child(n+3), .lmt-ret-tabla th:nth-child(n+3) { text-align: right; font-variant-numeric: tabular-nums; }

.lmt-ret-aviso {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: var(--lmt-radius);
	background: rgba(220, 38, 38, 0.08);
	font-size: 0.88rem;
	line-height: 1.5;
	color: var(--lmt-ret-down);
}

.lmt-ret-aviso[hidden] { display: none; }

.lmt-ret-campo--inline { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.lmt-ret-campo--inline .lmt-ret-label { margin: 0; }

.lmt-ret-select {
	padding: 8px 12px;
	border: 1px solid var(--lmt-border);
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface-2);
	font-family: inherit;
	font-weight: 700;
	color: var(--lmt-text);
}

.lmt-ret-legal {
	margin: 22px auto 0;
	max-width: 64ch;
	text-align: center;
	font-size: 0.82rem;
	line-height: 1.55;
	color: var(--lmt-text-muted);
}

/* Excel */
.lmt-ret-excel {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 24px 0 16px;
	padding: clamp(20px, 4vw, 30px);
	border: 1px solid var(--lmt-accent);
	border-radius: var(--lmt-radius-lg);
	background: var(--lmt-accent-soft);
}

.lmt-ret-excel > div { flex: 1 1 320px; }

.lmt-ret-excel__k { margin: 0 0 6px; font-size: 0.75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--lmt-ret-strong); }
.lmt-ret-excel__t { margin: 0 0 8px; font-family: var(--lmt-font-display); font-size: clamp(1.2rem, 3vw, 1.5rem); font-weight: 800; color: var(--lmt-text); }
.lmt-ret-excel__p { margin: 0; line-height: 1.6; color: var(--lmt-text-muted); }

/* Explicacion */
.lmt-ret-info { margin-top: 28px; }

.lmt-ret-bloque { margin-bottom: 26px; line-height: 1.65; color: var(--lmt-text-muted); }
.lmt-ret-bloque p { margin: 12px 0; }
.lmt-ret-bloque strong { color: var(--lmt-text); }

.lmt-ret-lista { margin: 0 0 12px; padding-left: 1.2em; }
.lmt-ret-lista li { margin-bottom: 8px; }

.lmt-ret-legal2 {
	padding: 18px 20px;
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface-2);
	font-size: 0.9rem;
}

/* Selector de FIBRAs */
.lmt-ret-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 10px;
}

.lmt-ret-card {
	position: relative;
	display: block;
	padding: 12px 14px;
	border: 1px solid var(--lmt-border);
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface);
	cursor: pointer;
}

.lmt-ret-card:has(input:checked) {
	border-color: var(--lmt-accent);
	background: var(--lmt-accent-soft);
}

.lmt-ret-card:has(input:disabled) { opacity: .55; cursor: not-allowed; }

.lmt-ret-card input {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 18px;
	height: 18px;
	accent-color: var(--lmt-accent);
}

.lmt-ret-card__clave { display: block; padding-right: 26px; font-weight: 800; letter-spacing: .02em; color: var(--lmt-text); }
.lmt-ret-card__nombre { display: block; font-size: 0.85rem; color: var(--lmt-text-muted); }
.lmt-ret-card__datos {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin-top: 8px;
	font-size: 0.82rem;
	font-variant-numeric: tabular-nums;
	color: var(--lmt-text-muted);
}
.lmt-ret-card__datos strong { color: var(--lmt-text); }
.lmt-ret-card__ojo { display: block; margin-top: 6px; font-size: 0.78rem; font-weight: 700; color: var(--lmt-ret-pes); }

.lmt-ret-avisos { margin: 14px 0 0; padding-left: 1.2em; font-size: 0.85rem; line-height: 1.5; color: var(--lmt-text-muted); }
.lmt-ret-avisos li { margin-bottom: 6px; }
.lmt-ret-avisos strong { color: var(--lmt-text); }

.lmt-ret-opciones { display: grid; gap: 10px; margin-top: 16px; }

.lmt-ret-necesitas {
	margin-top: 22px;
	padding: 14px 16px;
	border-radius: var(--lmt-radius);
	background: var(--lmt-surface-2);
	line-height: 1.55;
	color: var(--lmt-text-muted);
}
.lmt-ret-necesitas strong { color: var(--lmt-text); }

.lmt-ret-leyenda__i--ap::before { background: var(--lmt-text-muted); }
.lmt-ret-compra .lmt-ret-lista { margin: 0; }
