/* Carril MOD: estilos propios de este carril. Se carga después de estilo.css; solo lo toca su dueño. */

/* ── Perceptores (frontend/js/perceptores.js): los datos de los resúmenes anuales 190, 180 y 193 ── */
.perc-cuerpo { padding-top: var(--e4); }
.perc-acciones { margin-top: var(--e4); gap: var(--e2); align-items: center; flex-wrap: wrap; }
.perc-acciones .crece { min-width: 0; }
.perc-sub { font-size: var(--t-md); font-weight: 600; margin: var(--e5) 0 var(--e2); }
.perc-lista { margin: var(--e1) 0 0; padding-left: 18px; display: grid; gap: 3px; }

/* Formularios con más columnas: los contadores de hijos y ascendientes, el cómputo de los tres primeros hijos */
.campos.c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.campos.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campos.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.perc-familia { margin-top: var(--e3); }
.perc-familia > .cc { padding-top: 0; }
.perc-familia .etiqueta-mayus { margin-top: var(--e2); }
@media (max-width: 720px) {
  .campos.c2, .campos.c3 { grid-template-columns: minmax(0, 1fr); }
  .campos.c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .perc-acciones > * { flex: 1 1 100%; }
}

/* Hijos y ascendientes: una fila por concepto con dos casillas pequeñas, «total» y «por entero» */
.perc-fam { display: grid; gap: var(--e1); margin-bottom: var(--e3); }
.perc-fam-cab, .perc-fam-fila { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 7rem) minmax(0, 7rem); gap: var(--e2); align-items: center; }
.perc-fam-cab { font-size: var(--t-2xs); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--tenue); }
.perc-fam-cab span:not(:first-child) { text-align: center; }
.perc-fam-fila label { font-size: var(--t-sm); font-weight: 400; margin: 0; }
.perc-fam-fila input { height: var(--alto-sm); text-align: center; }

/* Los botones de cada fila de «Lo que sale en cada modelo» en una sola línea */
.perc-cuerpo .acc-fila .fila { flex-wrap: nowrap; justify-content: flex-end; gap: var(--e1); white-space: nowrap; }

/* ── Grupos de empresas (frontend/js/grupos.js): el grupo de IVA (039, 322, 353) y el grupo fiscal (220, 222) ── */
.gr-acciones { gap: var(--e2); align-items: center; flex-wrap: wrap; }
.gr-modelos { display: grid; gap: var(--e2); }
.gr-modelo { display: flex; align-items: center; gap: var(--e3); padding: var(--e2) var(--e3); border: 1px solid var(--linea); border-radius: var(--r); background: var(--card); flex-wrap: wrap; }
.gr-modelo .crece { flex: 1 1 14rem; min-width: 0; }
.gr-modelo > a.btn { flex: none; }
.gr-fila { border: 1px solid var(--linea); border-radius: var(--r); padding: var(--e3); margin-bottom: var(--e2); display: grid; gap: var(--e2); }
.gr-linea { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr) auto; gap: var(--e2) var(--e3); align-items: end; }
.gr-linea2 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gr-linea .campo, .gr-linea2 .campo { margin: 0; }
.gr-check { height: var(--alto-md); }
.gr-quitar { align-self: end; }
.gr-datos { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: start; }
.gr-resumen { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e3); padding: var(--e2) var(--e3); margin-bottom: var(--e3); border: 1px solid var(--linea); border-radius: var(--r); background: var(--sub); }
.gr-resumen b { font-size: var(--t-xl); font-variant-numeric: tabular-nums; }
@media (max-width: 980px) {
  .gr-datos { grid-template-columns: minmax(0, 1fr); }
  .gr-linea { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .gr-linea .gr-emp { grid-column: 1 / -1; }
  .gr-linea2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .gr-linea, .gr-linea2 { grid-template-columns: minmax(0, 1fr); }
  .gr-modelo > a.btn { flex: 1 1 100%; }
}
.gr-modelo svg.ico-modelo { width: 28px; height: 28px; flex: none; color: var(--tenue); }
