/* Recepta · Finanzas (finanzas*.js): resultados, gastos, rentabilidad, equilibrio, simulador, inflación y dólar. Usa los colores del tema. */
:is(.fz-tabla, .fz-tarjeta, .fz-eq-grande, .fz-eq-mes, .fz-sim-resultado, .fz-parada, .fz-dato, .fz-veredicto, .fz-alerta) .verde { color: var(--menta-texto); }
:is(.fz-tabla, .fz-tarjeta, .fz-eq-grande, .fz-eq-mes, .fz-sim-resultado, .fz-parada, .fz-dato, .fz-veredicto, .fz-alerta) .rojo { color: var(--error); }
.fz-grilla { margin: 16px 0; }
.fz-grilla > .panel { min-width: 0; margin: 0; }
.fz-sub { font-size: 0.92rem; margin: 18px 0 8px; }
.fz-sub small, .panel h2 small { color: var(--pizarra); font-weight: 600; font-size: 0.8rem; margin-left: 6px; }
.fz-fuente { color: var(--pizarra); font-size: 0.8rem; line-height: 1.5; margin: 18px 2px 4px; max-width: 980px; }
.fz-dato { font-size: 0.88rem; margin: 10px 0 0; color: var(--tinta); }
.fz-ok { color: var(--menta-texto); font-weight: 700; margin: 8px 0; }
.fz-grande { font-size: 1.6rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; display: block; }
.fz-vacio { text-align: center; padding: 36px 20px; }
.fz-vacio p { max-width: 560px; margin: 6px auto 14px; }
.fz-alerta { padding: 12px 16px; border-radius: 12px; background: var(--ambar-suave); color: var(--tinta); font-size: 0.9rem; margin: 0 0 16px; line-height: 1.5; }
.fz-alerta.suave { background: var(--cobalto-suave); }
.panel .fz-alerta { margin: 14px 0 0; }
.fz-sugerencia { padding: 10px 12px; border-radius: 12px; background: var(--menta-suave); font-size: 0.88rem; line-height: 1.5; margin: 10px 0; }
.fz-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 0.74rem; font-weight: 800; white-space: nowrap; vertical-align: middle; }
.fz-chip.mejor { background: var(--menta-suave); color: var(--menta-texto); }
.fz-chip.peor { background: var(--error-suave); color: var(--error); }
.fz-chip.igual { background: var(--perla-suave); color: var(--pizarra); }
.fz-chip.ojo { background: var(--ambar-suave); color: var(--ambar-texto); }
.fz-chip a { color: inherit; text-decoration: none; }

/* Filtros: segmentos hechos con enlaces */
.fz-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 16px; }
.segmentos a.boton-seg { padding: 8px 16px; border-radius: 9px; color: var(--pizarra); text-decoration: none; font-weight: 600; font-size: 0.9rem; }
.segmentos.chico a.boton-seg { padding: 6px 12px; font-size: 0.85rem; }
.segmentos a.boton-seg:hover { background: rgba(255, 255, 255, 0.6); color: var(--tinta); }
.segmentos a.boton-seg.activo { background: var(--hoja); color: var(--tinta); box-shadow: 0 1px 3px rgba(20, 26, 51, 0.1); }
.fz-llave-real { margin-right: 4px; }

/* Gráficos */
.fz-grafico { width: 100%; height: auto; display: block; overflow: visible; }
.fz-grafico .eje { stroke: var(--perla); stroke-dasharray: 3 4; }
.fz-grafico .cero { stroke: var(--pizarra); stroke-width: 1; opacity: 0.6; }
.fz-grafico .eje-t { fill: var(--pizarra); font-size: 11.5px; font-weight: 600; }
.fz-grafico .resalte { fill: var(--cobalto-suave); opacity: 0.55; }
.fz-grafico .guia { stroke: var(--cobalto); stroke-dasharray: 4 4; stroke-width: 1.5; }
.fz-grafico .guia.actual { stroke: var(--pizarra); }
.fz-grafico .zona-perdida { fill: var(--error-suave); }
.fz-grafico .zona-ganancia { fill: var(--menta-suave); }
.fz-g-rotulo { fill: var(--cobalto); font-size: 12.5px; font-weight: 800; }
.fz-g-rotulo.actual { fill: var(--pizarra); font-weight: 700; }
.fz-leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; font-size: 0.82rem; color: var(--pizarra); font-weight: 600; }
.fz-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.fz-leyenda i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.fz-leyenda i.linea { height: 3px; width: 16px; border-radius: 2px; }
.fz-leyenda i.punteada { background: repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 8px) !important; color: var(--ambar); }
.fz-dona { width: 180px; height: 180px; flex: none; }
.fz-dona .dona-c { fill: var(--tinta); font-size: 17px; font-weight: 800; letter-spacing: -0.02em; }
.fz-dona .dona-s { fill: var(--pizarra); font-size: 11px; font-weight: 600; }
.fz-avance { height: 10px; border-radius: 999px; background: var(--perla-suave); overflow: hidden; margin: 8px 0 6px; }
.fz-avance i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--ambar), #f7c35f); transition: width 0.35s ease; }
.fz-avance.ok i { background: linear-gradient(90deg, var(--menta), #4fe0bb); }
.fz-avance.mal i { background: linear-gradient(90deg, var(--error), #ff9aa9); }

/* Resumen */
.fz-tarjetas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.fz-tarjeta { display: flex; flex-direction: column; gap: 2px; background: var(--hoja); border: 1px solid var(--perla); border-radius: 16px; padding: 16px; box-shadow: var(--sombra); color: var(--tinta); text-decoration: none; min-width: 0; transition: transform 0.15s, box-shadow 0.2s; }
a.fz-tarjeta:hover { transform: translateY(-2px); box-shadow: var(--elevar, var(--sombra)); text-decoration: none; }
.fz-tarjeta .fz-t-titulo { color: var(--pizarra); font-size: 0.8rem; font-weight: 700; }
.fz-tarjeta b { font-size: 1.45rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fz-tarjeta small { color: var(--pizarra); font-weight: 600; font-size: 0.82rem; }
.fz-tarjeta .fz-t-pie { margin-top: auto; padding-top: 8px; font-size: 0.8rem; color: var(--pizarra); font-weight: 600; }
.fz-tarjeta .fz-avance { margin: 10px 0 0; }
.fz-tarjeta.destacada { background: linear-gradient(135deg, var(--cobalto), #4d2bff); border: 0; color: #fff; }
.fz-tarjeta.destacada .fz-t-titulo, .fz-tarjeta.destacada small { color: rgba(255, 255, 255, 0.85); }
.fz-atajos { display: flex; flex-direction: column; gap: 4px; }
.fz-atajo { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px; color: var(--tinta); text-decoration: none; }
.fz-atajo:hover { background: var(--perla-suave); text-decoration: none; }
.fz-atajo-i { width: 38px; height: 38px; border-radius: 11px; background: var(--cobalto-suave); display: grid; place-items: center; font-size: 1.1rem; flex: none; }
.fz-atajo b { display: block; font-size: 0.92rem; }
.fz-atajo small { display: block; color: var(--pizarra); font-size: 0.82rem; }
.fz-atajo > span:nth-child(2) { flex: 1; min-width: 0; }
.fz-flecha { color: var(--pizarra); font-size: 1.3rem; }

/* Tablas */
.fz-tabla tfoot td { font-weight: 800; border-top: 2px solid var(--perla); border-bottom: 0; }
.fz-tabla.compacta td, .fz-tabla.compacta th { padding: 7px 10px; }
.fz-tabla td .tenue { font-size: 0.8rem; }
.fz-fila-mes, .fz-fila-click { cursor: pointer; }
.fz-fila-mes:hover td, .fz-fila-click:hover td { background: var(--perla-suave); }
.fz-abrir { display: inline-block; width: 16px; color: var(--pizarra); transition: transform 0.15s; }
.fz-fila-mes.abierta .fz-abrir { transform: rotate(90deg); }
.fz-detalle td { background: var(--perla-suave); padding: 0; }
.fz-detalle-caja { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; padding: 14px 18px 18px; }
.fz-detalle-caja h3 { font-size: 0.82rem; color: var(--pizarra); margin: 0 0 6px; }
.fz-detalle-caja h3:not(:first-child) { margin-top: 12px; }
.fz-detalle-caja ul, .fz-lista { list-style: none; margin: 0; padding: 0; }
.fz-detalle-caja li, .fz-lista li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; font-size: 0.86rem; border-bottom: 1px dashed var(--perla); }
.fz-detalle-caja li b, .fz-lista li b { font-variant-numeric: tabular-nums; }
.fz-detalle-caja .enlace { display: inline-block; margin-top: 10px; font-size: 0.85rem; }

/* Gastos */
.fz-reparto { display: flex; gap: 18px; align-items: flex-start; }
.fz-cats { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 0; }
.fz-cats li { padding: 3px 0; }
.fz-cat { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border: 0; background: none; box-shadow: none; border-radius: 9px; text-align: left; color: var(--tinta); font-size: 0.88rem; min-height: 0; }
button.fz-cat:hover { background: var(--perla-suave); }
.fz-cat i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.fz-cat .nombre { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.fz-cat b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fz-cat-pie { display: flex; align-items: center; gap: 8px; margin: 0 8px 4px 26px; }
.fz-cat-pie .tenue { font-size: 0.78rem; font-weight: 700; min-width: 34px; text-align: right; }
.fz-cat .tenue { font-size: 0.8rem; }
.fz-barra-h { flex: 1; height: 5px; border-radius: 4px; background: var(--perla-suave); overflow: hidden; }
.fz-barra-h i { display: block; height: 100%; border-radius: 4px; opacity: 0.75; }
.fz-clase { font-size: 0.7rem; font-weight: 800; padding: 2px 7px; border-radius: 999px; background: var(--perla-suave); color: var(--pizarra); white-space: nowrap; cursor: pointer; }
.fz-clase.fijo { background: var(--cobalto-suave); color: var(--cobalto); }
.fz-clase.variable { background: var(--ambar-suave); color: var(--ambar-texto); }
.fz-clase.mercaderia { background: var(--menta-suave); color: var(--menta-texto); }
td .fz-clase { cursor: default; }
.fz-opciones { display: flex; flex-direction: column; gap: 8px; }
.fz-opcion { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--perla); border-radius: 12px; cursor: pointer; margin: 0; }
.fz-opcion:has(input:checked) { border-color: var(--cobalto); background: var(--cobalto-suave); }
.fz-opcion input { width: auto; margin-top: 3px; }
.fz-opcion b { display: block; } .fz-opcion small { color: var(--pizarra); }

/* Rentabilidad */
.fz-destacados { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 16px; }
.fz-destacado { padding: 14px 16px; border-radius: 14px; background: var(--hoja); border: 1px solid var(--perla); display: flex; flex-direction: column; gap: 2px; }
.fz-destacado span { font-size: 0.8rem; font-weight: 700; color: var(--pizarra); }
.fz-destacado b { font-size: 1.1rem; }
.fz-destacado small { color: var(--pizarra); font-weight: 600; }
.fz-destacado.bueno { border-color: rgba(18, 183, 134, 0.35); }
.fz-destacado.ojo { border-color: rgba(245, 165, 36, 0.45); }
.fz-col-barra { width: 26%; min-width: 140px; }
.fz-doble { position: relative; height: 16px; border-radius: 5px; background: var(--perla-suave); overflow: hidden; }
.fz-doble i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px; }
.fz-doble i.v { background: color-mix(in srgb, var(--cobalto) 30%, transparent); }
.fz-doble i.g { background: var(--menta); top: 4px; bottom: 4px; }
.fz-margen { font-weight: 800; }
.fz-margen.bajo { color: var(--error); } .fz-margen.alto { color: var(--menta-texto); }

/* Punto de equilibrio */
.fz-eq-grande { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: center; margin-bottom: 16px; }
.fz-eq-grande > div > span { display: block; font-size: 0.88rem; font-weight: 600; }
.fz-eq-grande > div:first-child > b { display: block; font-size: 2.3rem; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; margin: 2px 0 4px; }
.fz-eq-grande b small { font-size: 1rem; color: var(--pizarra); letter-spacing: 0; font-weight: 700; }
.fz-eq-grande p { margin: 0; line-height: 1.55; font-size: 0.92rem; }
.fz-eq-mes { padding: 14px 16px; border-radius: 14px; background: var(--perla-suave); }
.fz-eq-mes > b { display: block; font-size: 1.3rem; font-variant-numeric: tabular-nums; margin-top: 4px; }
.fz-eq-mes small { color: var(--tinta); font-size: 0.85rem; line-height: 1.45; display: block; }
.fz-eq-form td input { width: 130px; text-align: right; }
.fz-eq-form tr.extra td:first-child input { width: 100%; text-align: left; }
.fz-eq-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 14px 0; }
.fz-eq-campos label { margin: 0; }
.fz-eq-botones { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.fz-con-unidad { position: relative; display: flex; align-items: center; }
.fz-con-unidad input { padding-right: 34px; }
.fz-con-unidad i { position: absolute; right: 10px; color: var(--pizarra); font-style: normal; font-weight: 700; font-size: 0.85rem; pointer-events: none; }
.fz-con-unidad.izq input { padding-right: 12px; padding-left: 40px; }
.fz-con-unidad.izq i { right: auto; left: 12px; }
.fz-con-unidad.izq.ancha input { padding-left: 54px; }

/* Simulador */
.fz-escenarios { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.fz-sim { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.fz-palanca { padding: 10px 0; border-bottom: 1px solid var(--perla-suave); }
.fz-palanca label { display: flex; flex-direction: column; margin: 0 0 6px; }
.fz-palanca label small { font-size: 0.8rem; font-weight: 500; }
.fz-palanca-fila { display: flex; align-items: center; gap: 12px; }
.fz-palanca-fila .fz-con-unidad { width: 220px; }
.fz-palanca input[type=range] { flex: 1; padding: 0; border: 0; box-shadow: none; accent-color: var(--cobalto); background: none; min-height: 0; }
.fz-palanca output { width: 64px; text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }
.fz-partida { margin-top: 14px; }
.fz-partida summary { cursor: pointer; font-weight: 700; font-size: 0.9rem; padding: 6px 0; }
.fz-partida-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.fz-partida-campos label { margin: 0; }
.fz-sim-resultado { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 12px; }
.fz-sim-resultado .fz-alerta { margin: 0; }
.fz-sim-grande { display: flex; flex-direction: column; gap: 2px; }
.fz-sim-grande span { font-weight: 600; font-size: 0.9rem; color: var(--pizarra); }
.fz-sim-grande b { font-size: 2.1rem; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.fz-sim-grande small { font-weight: 700; font-size: 0.88rem; }
.fz-sim-grande.bien { border-color: rgba(18, 183, 134, 0.45); } .fz-sim-grande.bien small { color: var(--menta-texto); }
.fz-sim-grande.mal { border-color: rgba(229, 72, 77, 0.45); } .fz-sim-grande.mal small { color: var(--error); }
.fz-sim-tabla tr.fz-sim-total td { font-weight: 800; background: var(--perla-suave); }
.fz-sim-barra span { font-weight: 700; font-size: 0.88rem; }
.fz-sim-barra small { font-size: 0.85rem; color: var(--pizarra); font-weight: 600; }

/* Inflación */
.fz-veredicto { display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; border-radius: 14px; margin-bottom: 16px; border: 1px solid var(--perla); background: var(--hoja); }
.fz-veredicto.bien { border-color: rgba(18, 183, 134, 0.45); background: var(--menta-suave); }
.fz-veredicto.mal { border-color: rgba(229, 72, 77, 0.4); background: var(--error-suave); }
.fz-veredicto span { font-size: 0.92rem; }
.fz-calc { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.fz-calc label { margin: 0; flex: 1; min-width: 150px; }
.fz-calc-igual { font-size: 1.3rem; color: var(--pizarra); padding-bottom: 8px; }
.fz-calc-res p { margin: 12px 0 0; }
.fz-calc-res .fz-grande { display: inline; font-size: 1.35rem; }
.fz-ipc-grilla { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.fz-ipc-grilla label { display: grid; grid-template-columns: 1fr 110px; gap: 8px; align-items: center; margin: 0; font-size: 0.88rem; font-weight: 600; }
.fz-ipc-grilla label small { display: block; font-weight: 500; font-size: 0.75rem; }
.fz-ipc-est { margin: 16px 0 0; }
.fz-ipc-est .fz-con-unidad { max-width: 220px; }
.fz-ipc-est .fz-con-unidad input { padding-right: 84px; }
.fz-form-simple label { display: block; margin: 0 0 14px; }
.fz-form-simple .fz-con-unidad input { padding-right: 76px; }
.fz-form-simple small { display: block; margin-top: 4px; }
.fz-provs { display: flex; flex-direction: column; gap: 8px; }
.fz-prov { display: grid; grid-template-columns: minmax(90px, 1fr) 1.4fr auto auto; gap: 10px; align-items: center; font-size: 0.88rem; }
.fz-prov .nombre { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fz-prov b { font-variant-numeric: tabular-nums; }
.fz-barra-doble { position: relative; height: 14px; border-radius: 5px; background: var(--perla-suave); overflow: hidden; }
.fz-barra-doble i { position: absolute; left: 0; border-radius: 5px; }
.fz-barra-doble i.ipc { top: 0; bottom: 0; background: var(--ambar-suave); border-right: 2px solid var(--ambar); border-radius: 5px 0 0 5px; }
.fz-barra-doble i.prov { top: 4px; bottom: 4px; background: var(--cobalto); }
.fz-barra-doble i.prov.sobre { background: var(--error); } .fz-barra-doble i.prov.bajo { background: var(--menta); }

/* Plata parada */
.fz-parada-total { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.fz-parada-total > div > span { display: block; font-weight: 600; font-size: 0.9rem; }
.fz-parada-total > div > b { display: block; font-size: 2.3rem; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; color: var(--error); }
.fz-parada-total small { color: var(--pizarra); font-weight: 600; line-height: 1.5; display: block; max-width: 620px; }
.fz-parada-total .fz-dona { width: 150px; height: 150px; }
.fz-parada { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.fz-parada > .panel, .fz-sim > .panel { margin: 0; }
.fz-parada .panel p { font-size: 0.9rem; line-height: 1.5; }
.fz-parada .panel .tenue { margin: 0 0 8px; font-size: 0.82rem; }

/* Dólar */
.fz-casas { display: grid; grid-template-columns: repeat(auto-fill, minmax(136px, 1fr)); gap: 10px; margin-bottom: 6px; }
.fz-casa { background: var(--hoja); border: 1px solid var(--perla); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; box-shadow: var(--sombra); }
.fz-casa.ref { border-color: var(--cobalto); box-shadow: 0 0 0 2px var(--cobalto-suave), var(--sombra); }
.fz-casa .nombre { font-size: 0.8rem; font-weight: 700; color: var(--pizarra); }
.fz-casa b { font-size: 1.25rem; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.fz-casa small { color: var(--pizarra); font-size: 0.78rem; font-weight: 600; }
.fz-casa .enlace { align-self: flex-start; font-size: 0.8rem; margin-top: 4px; }
.fz-cat.sin-click { cursor: default; }
.fz-casas + .fz-fuente { margin-top: 4px; margin-bottom: 16px; }
.fz-casas ~ .fz-tarjetas { grid-template-columns: 1.3fr 1fr 1fr; }

@media (max-width: 1100px) {
  .fz-tarjetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fz-parada { grid-template-columns: 1fr; }
  .fz-sim { grid-template-columns: 1fr; }
  .fz-sim-resultado { position: static; }
}
@media (max-width: 760px) {
  .fz-tarjetas, .fz-casas ~ .fz-tarjetas { grid-template-columns: 1fr; }
  .fz-eq-grande { grid-template-columns: 1fr; }
  .fz-eq-grande > div:first-child > b, .fz-parada-total > div > b { font-size: 1.8rem; }
  .fz-detalle-caja { grid-template-columns: 1fr; }
  .fz-reparto { flex-direction: column; align-items: center; }
  .fz-reparto .fz-cats { width: 100%; }
  .fz-parada-total { flex-direction: column; align-items: flex-start; }
  .fz-ipc-grilla, .fz-eq-campos, .fz-partida-campos { grid-template-columns: 1fr; }
  .fz-prov { grid-template-columns: 1fr auto auto; }
  .fz-prov .fz-barra-doble { grid-column: 1 / -1; grid-row: 2; }
  .fz-eq-form td input { width: 100px; }
}

/* Indicadores (finanzas-kpis.js): salud financiera, balance y tarjetas con semáforo */
.kp-arriba { display: grid; grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.6fr) minmax(220px, 1fr); gap: 12px; margin-bottom: 8px; align-items: stretch; }
.kp-arriba > .panel { margin: 0; min-width: 0; }
.kp-salud b { font-size: 2.1rem; }
.kp-barra { height: 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.25); overflow: hidden; margin: 10px 0 8px; }
.kp-barra i { display: block; height: 100%; border-radius: 999px; background: #fff; }
.kp-cuentas { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: auto; font-size: 0.8rem; font-weight: 700; color: rgba(255, 255, 255, 0.9); }
.kp-balance-cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.kp-balance-cifras span { display: block; font-size: 0.8rem; font-weight: 700; }
.kp-balance-cifras b { font-size: 1.3rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.kp-balance .verde { color: var(--menta-texto); }
.kp-balance .rojo { color: var(--error); }
.kp-proporcion { display: flex; height: 12px; border-radius: 999px; overflow: hidden; background: var(--perla-suave); margin: 12px 0 4px; }
.kp-proporcion .deuda { background: var(--ambar); }
.kp-proporcion .propio { background: var(--menta); }
.kp-desglose { margin-top: 8px; }
.kp-desglose summary { cursor: pointer; color: var(--cobalto); font-weight: 700; font-size: 0.88rem; }
.kp-desglose .grilla-2 { margin-top: 10px; gap: 12px; }
.kp-subtotal td { font-weight: 700; background: var(--perla-suave); }
.kp-total td { font-weight: 800; border-top: 2px solid var(--perla); }
.kp-alertas { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.kp-alertas a { display: block; padding: 9px 12px; border-radius: 12px; color: var(--tinta); text-decoration: none; border-left: 4px solid var(--ambar); background: var(--ambar-suave); }
.kp-alertas li.kp-mal a { border-left-color: var(--error); background: var(--error-suave); }
.kp-alertas b { display: block; font-size: 0.88rem; }
.kp-alertas small { color: var(--pizarra); font-size: 0.78rem; }
.kp-grupo { margin-top: 22px; scroll-margin-top: 80px; }
.kp-titulo { font-size: 1.1rem; margin: 0 0 10px; }
.kp-titulo small { color: var(--pizarra); font-weight: 600; font-size: 0.85rem; margin-left: 6px; }
.kp-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; align-items: start; }
.kp-tarjeta { background: var(--hoja); border: 1px solid var(--perla); border-radius: 16px; box-shadow: var(--sombra); border-top: 4px solid var(--perla); min-width: 0; }
.kp-tarjeta.kp-bien { border-top-color: var(--menta); }
.kp-tarjeta.kp-ojo { border-top-color: var(--ambar); }
.kp-tarjeta.kp-mal { border-top-color: var(--error); }
.kp-tarjeta summary { list-style: none; cursor: pointer; display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; }
.kp-tarjeta summary::-webkit-details-marker { display: none; }
.kp-cabeza { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.kp-nombre { font-weight: 800; font-size: 0.95rem; }
.kp-ingles { color: var(--pizarra); font-size: 0.74rem; font-weight: 600; font-style: italic; }
.kp-valor { font-size: 1.55rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; margin: 4px 0 2px; overflow-wrap: anywhere; }
.kp-bien .kp-valor { color: var(--menta-texto); }
.kp-mal .kp-valor { color: var(--error); }
.kp-que { font-size: 0.84rem; color: var(--tinta); line-height: 1.45; }
.kp-ref { font-size: 0.78rem; color: var(--pizarra); font-weight: 600; margin-top: 4px; }
.kp-mas { font-size: 0.8rem; color: var(--cobalto); font-weight: 700; margin-top: 6px; }
.kp-tarjeta[open] .kp-mas { display: none; }
.kp-detalle { padding: 0 16px 14px; font-size: 0.84rem; border-top: 1px dashed var(--perla); }
.kp-detalle p { margin: 8px 0 0; line-height: 1.45; overflow-wrap: anywhere; }
.kp-consejo { padding: 9px 11px; border-radius: 10px; background: var(--cobalto-suave); }
.kp-detalle button { margin-top: 10px; }
.kp-campo { display: block; margin-bottom: 12px; }
.kp-campo small { display: block; margin-top: 3px; }
@media (max-width: 1100px) { .kp-arriba { grid-template-columns: 1fr 1fr; } .kp-balance { grid-column: 1 / -1; order: 3; } }
@media (max-width: 640px) {
  .kp-arriba { grid-template-columns: 1fr; }
  .kp-balance-cifras { grid-template-columns: 1fr 1fr; }
  .kp-balance-cifras > div:last-child { grid-column: 1 / -1; }
  .kp-desglose .grilla-2 { grid-template-columns: 1fr; }
}
