/* Calculadora de meta de retiro ([ppr_calculadora_meta]). Base visual: css/ppr-simulador.css (.ppr-sim). Mobile-first. */

.ppr-cm { margin-bottom: 20px; }
.ppr-cm__ayuda, .ppr-cm__error { margin: 4px 0 0; font-size: .85rem; line-height: 1.4; color: var(--ppr-suave); }
.ppr-cm__ayuda:empty, .ppr-cm__error:empty { display: none; }
.ppr-cm__error { color: #b3261e; font-weight: 600; }
.ppr-cm__ayuda a { color: var(--ppr-primario); text-decoration: underline; }
.ppr-sim__campo input.is-error { border-color: #b3261e; }

.ppr-cm__avanzadas { background: #fff; border: 1px solid var(--ppr-borde); border-radius: 8px; padding: 0 12px; }
.ppr-cm__avanzadas summary { cursor: pointer; padding: 12px 0; min-height: 44px; font-weight: 600; font-size: .95rem; color: var(--ppr-primario); }
.ppr-cm__avanzadas[open] summary { border-bottom: 1px solid var(--ppr-borde); margin-bottom: 12px; }
.ppr-cm__avanzadas-campos { display: grid; gap: 12px; padding-bottom: 12px; }

.ppr-cm__resultados .ppr-sim__valor { overflow-wrap: anywhere; }
.ppr-cm [data-ppr-cm-alcanza] { font-size: 1.15rem; line-height: 1.3; }
.ppr-cm__sat { color: var(--ppr-texto); font-size: .95rem; }

/* El formulario de leads queda pegado a los resultados. */
.ppr-cm + .sg-card { margin-top: 8px; }

@media (min-width: 768px) {
	.ppr-cm__form { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); align-items: start; }
	.ppr-cm__avanzadas { grid-column: 1 / -1; }
	.ppr-cm__avanzadas-campos { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
}

/* Campos: sin desbordes (el padding cuenta dentro del ancho) y etiquetas con interlineado propio, no el del tema. */
.ppr-cm .ppr-sim__campo { min-width: 0; }
.ppr-cm .ppr-sim__campo label { line-height: 1.3; }
.ppr-cm .ppr-sim__campo input { box-sizing: border-box; max-width: 100%; }
.ppr-cm__avanzadas summary { line-height: 1.3; }
.ppr-cm__avanzadas-campos { column-gap: 16px; row-gap: 12px; }

/* En escritorio las etiquetas largas ocupan 2 líneas: se reserva el alto para que todos los campos de la fila queden alineados. */
@media (min-width: 768px) {
	.ppr-cm__form > .ppr-sim__campo > label { min-height: 2.6em; }
	.ppr-cm__avanzadas-campos .ppr-sim__campo > label { min-height: 0; }
}

/* Resumen fijo: solo en el teléfono. Pegado al borde inferior mientras se llenan los campos; se va con la sección. */
.ppr-cm__resumen {
	position: sticky; bottom: 0; z-index: 5;
	display: flex; gap: 8px; margin: 12px -16px -16px; padding: 10px 16px;
	background: #fff; border-top: 1px solid var(--ppr-borde); border-radius: 0 0 10px 10px;
	box-shadow: 0 -4px 12px rgba(0, 0, 0, .08);
	transition: opacity .15s;
}
.ppr-cm__resumen p { margin: 0; flex: 1; line-height: 1.25; min-width: 0; }
.ppr-cm__resumen span { display: block; font-size: .75rem; color: var(--ppr-suave); }
.ppr-cm__resumen strong { display: block; font-size: 1.05rem; color: var(--ppr-primario); overflow-wrap: anywhere; }
.ppr-cm--ver-res .ppr-cm__resumen { opacity: 0; pointer-events: none; }
@media (min-width: 768px) { .ppr-cm__resumen { display: none; } }

/* Aviso de que el dinero debe estar invertido: ocupa todo el ancho de los resultados. */
.ppr-cm__supuestos { border-left-color: #f2a900; }
.ppr-cm__supuestos .ppr-sim__nota { margin-top: 6px; color: var(--ppr-texto); }
@media (min-width: 768px) { .ppr-cm__supuestos { grid-column: 1 / -1; } }
