FÚTBOL DE PRIMERA

Agregar Olé en

Malaspina y el “no” a River en el cambio de formato del torneo: “Ningún club estaba acuerdo con diez descensos”

El secretario general de la AFA explicó por qué los clubes rechazaron la postura del Millonario de bajar de 30 a 20 equipos en la Primera División.

  • Fútbol de Primera 2027: nuevo torneo y todos los cambios en los últimos 12 años
  • River fue el único club que votó en contra del nuevo formato del fútbol argentino

El nuevo torneo de Primera División 2027 salió este jueves 29 de octubre a la cancha: se aprobó por mayoría el cambio de formato para la temporada que viene en el fútbol argentino. No todos estuvieron de acuerdo: River se opuso y Estudiantes no pudo votar.

¿Qué se votó? Con Claudio Chiqui Tapia, presidente de la AFA a la cabeza de la mesa, secundado por el tesorero, Pablo Toviggino y Francisco Duarte, CEO de la LPF., se decidió mantener los 30 equipos, eliminar las dos zonas y disputar un torneo largo, a una sola rueda, pero sin perder los playoffs con dos campeones (Apertura y Clausura, que se seguirán llamando así).

River, representado por Ignacio Villarroel, su vicepresidente, bancó el formato pero no la cantidad de clubes: insistió con una reducción a 20. Aunque no propuso diez descensos de una vez -como trascendió-, sino que sea gradual: dos ascensos / cuatro descensos hasta que se llegara a 20 equipos.

Ignacio Villarroel, en la vuelta de River al Comité Ejecutivo de AFA (Prensa AFA / archivo).

El dirigente del club de Núñez entró al cónclave en compañía de Juan Manuel Cerolini, quien actualmente ocupa los cargos de secretario de Seguridad, y es vocal de Estudiantes. Semanas atrás, el Millonario y el Pincha abrieron un frente común para profundizar cambios en el fútbol argentino. Pero al no ser representante del Comité Ejecutivo, Cerolini no pudo votar.

Sin embargo, mediante un tuit en la red social X, Estudiantes expresó que "a través de su presidente, Juan Sebastián Verón, Estudiantes ratifica su acompañamiento al voto del Club Atlético River Plate y reafirma su compromiso con las propuestas de cambio que contribuyan a mejorar el fútbol argentino".

El Club Estudiantes de La Plata informa a sus socios, socias, hinchas y a la comunidad en general que, en la reunión del Comité Ejecutivo de la Liga Profesional de Fútbol realizada este mediodía, la institución estuvo representada por el dirigente Juan Martín Cerolini, quien no…

— Estudiantes de La Plata (@EdelpOficial) October 29, 2026

A la salida de la reunión del Comité Ejecutivo, en las oficinas de la Liga Profesional en Puerto Madero, Cristian Malaspina, presidente de Argentinos y secretario general de la AFA, habló con los medios junto a Matías Mariotto, titular de Banfield. El dirigente confirmó el cambio de formato y destacó: “Se ha escuchado la opinión de todos los clubes y de los socios. Se da este formato que va a ser aún más competitivo. Ya es durísimo: entramos a la fase definitoria y muchos equipos están jugando por algo. De esta manera, seguimos contribuyendo a que sea una de las liga más competitivas del mundo”.

Malaspina también comentó de los motivos de por qué el Millonario quedó parado en la vereda opuesta: “ Solamente River planteó la postura del torneo de 20 equipos. En la mesa también se planteó la moción de quién estaría de acuerdo con diez descensos. Y por unanimidad de esa moción, salvo River, ningún club estaba convencido o de acuerdo en fomentar diez descensos masivos en el fútbol argentino. Planteada esa votación, se siguió con el tema y por amplia mayoría se ha votado este nuevo formato de torneo para el año que viene”.

RIVER VOTÓ EN CONTRA DEL NUEVO FORMATO ❌🇦🇷

A la salida del Comité Ejecutivo de AFA, Cristian Malaspina tomó la palabra y explicó que todos los clubes estuvieron de acuerdo con el nuevo formato para 2027 a excepción de RIVER.

🗣️"Quería 20 equipos y que haya 10 descensos, pero… pic.twitter.com/WZGmkwh64J

— TNT Sports Argentina (@TNTSportsAR) October 29, 2026

Negativa al cambio de cupos para las copas

Malaspina también reconoció que no tuvo quórum su propuesta de cambiar la forma de entrar a las copas, donde el presidente del Bicho planteaba que el Repechaje para la Libertadores fuera para el 9° de la Anual y no para el 3°, como ahora.

“Fue un tema que se trató pero por amplia mayoría se decidió que siga el formato que teníamos, el tercer puesto de la general para la Fase 2 de la Libertadores. Eso no va a cambiar. En este caso me tocó perder, por unanimidad del resto”, aceptó el dirigente,.

Cristian Malaspina, presidente de Argentinos Juniors y secretario general de la AFA (Luciano Thieberger).

Promociones y VAR semiautomático

En la reunión del Comité Ejecutivo de la LPF, hubo una moción de Lanús para reflotar la Promoción por la permanencia: en este caso, una sola, entre uno de los últimos de la Primera División y uno de la Primera Nacional.

Malaspina confirmó el pedido y avisó: “Va a haber una Comisión que la analice y se desarrolle en las próximas reuniones”

El dirigente además anunció cambios en el VAR: “ Se viene el VAR semiautomático desde el año que viene. El primer caso de éxito va a ser la final del 12 de diciembre de este año. Eso es un crecimiento para el fútbol argentino. Y ya el año que viene, desde el segundo semestre, lo tendremos en todos los estadios”.

La referencia es la final del Clausura, que se jugará en el Estadio Único Diego Maradona de La Plata. La demora, para su implementación completa, tiene que ver con que hay que adecuar todos los estadios para poder implementar la tecnología.

¿Cómo se jugará finalmente la temporada 2027?

Acostumbrados a cambios constantes en los formatos desde 2014, otra vez se modifican las reglas, con la intención de ponerle un poco más de justicia a un desproporcionado campeonato entre 30 equipos.

La idea que impulsó el cambio es buscar un equilibrio entre el deseo de los grandes de jugar una temporada larga todos contra todos y la necesidad de los chicos, que ven cómo los torneos cortos les permiten sumar estrellas al escudo.

El todos contra todos es un torneo a 30 fechas, lo que le dará sentido al campeón anual. Porque serán 30 partidos: cada equipo se enfrentará una vez contra los otros 29 y dos veces contra su clásico.

El corte sería después la fecha 15. Única tabla, sin Zonas A y B. Con el acumulado, del 1° al 16° jugarán un playoff (desde octavos de final: el 1° vs. el 16°, el 2°, vs. el 15°, y así...). Se respeta la cantidad actual, que son ocho clubes por zona. De ahí sale el campeón del Apertura.

El Boca - River se mantendría dos veces por año, igual que cada clásico.

El formato se repite de la fecha 16 a 30: se arma una nueva tabla, nuevo playoff (del 1° al 16° de la segunda rueda) y otro campeón (Clausura). Y al equipo que más puntos sume en la temporada regular del año (las 30 fechas, sin playoffs) se le da otro título, como campeón de Liga.

La idea madre es que todos vuelvan a jugar contra todos, tal como ocurrió por última vez en 2024 (eran 28 equipos, con una Liga Profesional ganada por Vélez a 27 encuentros). En ese mismo año, se había jugado la Copa de la Liga (ganada por Estudiantes), con dos zonas y luego cruces de eliminación directa.

Esto atiende el reclamo de los futboleros, que incluye a jugadores y entrenadores. Por ejemplo, River e Independiente no se enfrentaron en este 2026 (salvo que haya un encuentro en playoffs) o Boca, por caso, no jugó contra el descendido Estudiantes de Río Cuarto por tampoco compartir zona. O por citar dos casos, Platense vs. Tigre y Gimnasia vs. Boca no se cruzan hace dos temporadas.

A su vez, le da chance a los equipos que no les da la nafta para pelear la anual pero que, metiéndose en mitad de tabla, pueden pelear por levantar un trofeo. Como muestra, en 2025, Platense se consagró habiendo sido sexto en su zona y 13° de la tabla anual a mitad de año (en el año, fue 22°). O Estudiantes, que fue octavo en su grupo, 15° en la general y, como campeón, se clasificó a una Copa Libertadores de la que hoy es finalista.

Platense, campeón del Apertura 2025.

La idea es repetir el formato en 2028, invirtiendo las localías de 2027. Siempre con 30 equipos. Y se empezará a evaluar desde ahora si en 2029 se vuelve a cambiar. ¿Chau promedios? ¿Más descensos para reducir la cantidad de participantes?

Descensos, copas internacionales y las finales que siguen en pie

Después, el resto se mantuvo igual: dos descensos (uno por tabla anual, el otro por promedios). En cuanto a los clasificados a los torneos internacionales, tanto Libertadores como Sudamericana, se seguirá rigiendo por la tabla acumulada del todo el año (las 30 fechas).

Pablo Toviggino, Claudio Tapia y Cristian Malaspina, en una reunión de Comité Ejecutivo de la AFA (archivo).

Y también seguirán en juego otras cuatro finales: el Trofeo de Campeones (ganador de Apertura vs. Clausura), la Supercopa Argentina (ganador de la Copa Argentina vs. Trofeo de Campeones), Supercopa Internacional (ganador de tabla anual vs. Trofeo de Campeones) y la novedosa Recopa de Campeones (ganador de Trofeo de Campeones, Supercopa Argentina y Supercopa Internacional).

De este modo, sumando a la Copa Argentina, se completan los ocho campeones por año en el fútbol argentino.

Los cambios en los torneos de Primera División desde el 2000 hasta el 2027

Olé · DatosPrimera División · 2000–2027

Formato del fútbol argentino

La Primera
cambia otra vez

Entre 2000 y 2011 el campeonato no se tocó. Desde 2012 le cambiaron el formato, la cantidad de equipos, el nombre y el calendario una y otra vez. Y el descenso cambió todavía más: bajaron 4, 3, 2, 1 y ninguno. Para 2027, la AFA trata un torneo nuevo: los 30 en una sola tabla y dos playoffs.

36

cambios en 16 temporadasDe 2012 a 2027, contando el que se viene. En los 12 años anteriores: ninguno.

9de formato de disputa

7en la cantidad de equipos

7de nombre del torneo

3de calendario

10en el sistema de descenso

2000–2027De 20 a 30 clubes, con una baja a 24

36cambios acumulados

Arriba: clubes en Primera. Abajo: un cuadrado por cada cambio del año (formato, equipos, nombre, calendario o descenso).

Tocá una etapa para marcarla en el gráfico · deslizá para ver más

2000–2011

Doce años sin tocar nada

20 clubes, dos torneos por año a 19 fechas y el descenso por promedios de tres temporadas: 2 directos y 2 a la Promoción. Fueron 24 torneos seguidos con el mismo reglamento.

Cambios en el período: 0

2012–2014

Primero cambian los nombres

Apertura y Clausura pasan a ser Inicial y Final, y en 2013 se juega una final entre los dos campeones (la ganó Vélez). En el segundo semestre de 2014, un torneo de transición sin descensos (Racing) prepara la expansión. Desaparece la Promoción: desde 2012/13 bajan 3 directos por promedio.

Cambios en el período: 6

2015–2016

El salto a 30

La AFA pasa de 20 a 30 clubes y al año calendario: liga de 30 fechas con una de clásicos (Boca). En 2016, dos zonas de 15 y final (Lanús). En agosto vuelve el calendario europeo con otra liga de 30. Bajan 2 en 2015 y uno solo en 2016. Todo se decidió antes de Tapia.

Cambios en el período: 8

2017–2019

Llega Tapia, nace la Superliga

Claudio Tapia asume en marzo de 2017. Con 4 descensos y 2 ascensos por temporada, la Primera se achica: 28, 26 y 24. Campeones: Boca, Racing y Boca. Aparece además la Copa de la Superliga.

Cambios en el período: 6

2020–2021

La pandemia frena todo

La AFA da por terminada la temporada 2019/20 y suspende los descensos. Se juega la Copa Diego Maradona, la Liga Profesional reemplaza a la Superliga y el calendario vuelve a ser enero-diciembre. Sin bajas, la Primera crece a 26.

Cambios en el período: 7

2022–2024

Copa, Liga y otra marcha atrás

Con 28 clubes conviven la Copa de la Liga y la Liga. Vuelven los descensos en 2022 (2 por promedio); en 2023 se bajan de 3 a 2 con el torneo en juego y nace el sistema mixto, y el 17 de octubre de 2024, con el torneo en juego, se anulan los descensos y se decide volver a 30.

Cambios en el período: 4

2025–2026

Vuelven Apertura y Clausura

30 clubes en dos zonas de 15, 16 fechas y playoffs desde octavos. Platense y Estudiantes ganaron en 2025; Belgrano, quinto de su zona, se quedó con el Apertura 2026. Vuelve el descenso mixto: uno por promedio y otro por tabla anual.

Cambios en el período: 4

2027 · propuesta

Y ahora, tabla única

Los 30 en una sola tabla, todos contra todos a 30 fechas. Corte en la 15 para el playoff del Apertura, otro al final para el Clausura y, como desde 2025, un Campeón de Liga por la tabla anual. El descenso seguiría mixto, a recalcular sobre 30 partidos.

Cuenta total: 36

Contá los cambios

Año por año, qué se tocó

Elegí un tipo de cambio para filtrar y tocá un año para ver el detalle. Las barras de arriba suman los cambios de cada temporada.

Todos 36 Formato 9 Equipos 7 Nombre 7 Calendario 3 Descenso 10

Deslizá la matriz para recorrer los años

Los nombres del campeonato

El descenso

Bajaron 4, 3, 2, 1 y ninguno

Clubes que perdieron la categoría en cada temporada. Con la Promoción bajaban entre 2 y 4; desde 2012 la regla cambió 10 veces. Tocá una barra para ver quiénes fueron.

Por promedioPerdió la PromociónPor tabla anualPrevistos y anulados2027, propuesta

HoyEn 2026 baja uno por promedio de tres temporadas y otro por la tabla anual, sin contar los playoffs. Estudiantes de Río Cuarto ya descendió por promedio (26/10). Como también es último en la anual, el segundo lugar pasa al siguiente peor: la pelea sigue abierta, con Aldosivi y Deportivo Riestra entre los más comprometidos.

Los planes que se cayeron

En cuatro años hubo tres metas distintas para el tamaño de la Primera.

  • Dic 202122 equipos en 2026, con 4 descensos por año desde 2023No se aplicó
  • Dic 202222 equipos en 2029 y fin de los promedios desde 2025Se cambió
  • Jun 2023De 3 descensos a 2, con el torneo en juego: nace el mixtoSe aplicó
  • Oct 2024Se anulan los 2 descensos y la Primera pasa a 30Se aplicó
  • Oct 2025Estatuto: 30 clubes, 2 ascensos y 2 descensos por añoVigente

Afuera, la regla no se toca

Cómo se desciende en las grandes ligas y cuánto cambió desde 2000.

LigaCómo se bajaCambios Argentina1 por promedio + 1 por tabla anual10 Premier LeagueLos 3 últimos, directo0 LaLigaLos 3 últimos, directo0 Bundesliga2 directos + el 16.º a playoff1 Serie A3, con desempate si hay igualdad en el corte* Ligue 12 directos + el 16.º a playoff*

* Ajustes de desempate o del playoff, sin suspender ni reimplantar el descenso. Ligue 1 además pasó de 20 a 18 clubes. Bundesliga: vuelve el playoff en 2008/09.

Lo que se viene

2026 contra 2027: se terminan las zonas

Cada punto es un club. Los llenos son los 16 que llegan a octavos. Cambiá de temporada para ver cómo se reordenan.

2026 2027

Clasifica a octavosQueda afuera

Tabla anual · suma las 30 fechas

29 rivales + una fecha de clásicos. Reparte copas internacionales y un descenso.

Campeón de Liga

Apertura · fechas 1 a 15

Los 16 mejores de la tabla a esa altura juegan octavos.

OctavosCuartosSemisFinal

Campeón Apertura

Clausura · fechas 16 a 30

Tabla propia que arranca en cero; los 16 mejores a octavos.

OctavosCuartosSemisFinal

Campeón Clausura

A confirmarEs la propuesta de la Liga Profesional que el Comité Ejecutivo de AFA trata esta semana (29/10/2026). Falta definir si octavos y cuartos son a ida y vuelta o a partido único, y cómo se adapta el descenso a 30 partidos.

'; YEARS.forEach(y=>{ const n=countYear(y); h+=``; }); ROWS.forEach(r=>{ const tot = Object.keys(CH[r].y).length; h += `

${CH[r].label}${tot}

`; YEARS.forEach(y=>{ const has = CH[r].y[y]; const mk = has ? `` : ''; h += `

${mk}

`; }); }); h += ''; YEARS.forEach(y=>{ h += `${String(y).slice(2)}`; }); mx.innerHTML = h; mx.querySelectorAll('.yb').forEach(b=>b.addEventListener('click',()=>{ selY=+b.dataset.y; paintMx(); })); mx.querySelectorAll('.c').forEach(c=>c.addEventListener('click',()=>{ selY=+c.dataset.y; paintMx(); })); paintMx(); } function paintMx(){ mx.querySelectorAll('[data-r]').forEach(el=>{ el.classList.toggle('dim', filt!=='all' && el.dataset.r!==filt && !(filt==='all')); }); mx.querySelectorAll('.c').forEach(c=>c.classList.toggle('col-sel', +c.dataset.y===selY)); mx.querySelectorAll('.yb').forEach(b=>b.setAttribute('aria-pressed', +b.dataset.y===selY)); const items = ROWS.filter(r=>CH[r].y[selY]).map(r=>`
  • ${CH[r].label}${CH[r].y[selY]}
  • `).join(''); const n = countYear(selY); ROOT.querySelector('#detail').innerHTML = `

    ${selY}${n} ${n===1?'cambio':'cambios'}${selY===2027?' · propuesta':''}

    ` + (items?`
      ${items}
    `:`

    Sin cambios: se jugó con el mismo formato, la misma cantidad de equipos y el mismo nombre que el año anterior.

    `); } ROOT.querySelectorAll('.filters button').forEach(b=>b.addEventListener('click',()=>{ filt=b.dataset.f; ROOT.querySelectorAll('.filters button').forEach(x=>x.setAttribute('aria-pressed', x===b)); if(filt!=='all'){ const ys=Object.keys(CH[filt].y).map(Number); if(!CH[filt].y[selY]) selY=ys[0]; } paintMx(); })); buildMx(); const NAMES = [['Apertura y Clausura','2000–2012'],['Inicial y Final','2012–2014'],['Transición','2014'],['Campeonato de Primera División','2015–2017'],['Superliga','2017–2020'],['Copa de la Superliga','2019–2020'],['Copa Diego Maradona','2020'],['Liga Profesional','2021–2024'],['Copa de la Liga','2021–2024'],['Apertura y Clausura','2025–2026']]; ROOT.querySelector('#names').insertAdjacentHTML('beforeend', NAMES.map((n,i)=>`${n[0]}${n[1]}`).join('›')); // ---------- 2026 vs 2027 ---------- const field = ROOT.querySelector('#field'); let fh = ''; for(let i=0;i<30;i++) fh += ``; fh += 'Zona AZona BTabla única · 30 clubes'; field.innerHTML = fh; const FACTS = { 2026:[['Fase regular','2 zonas de 15',0],['Partidos','32 (16 + 16)',0],['Rivales','No todos se cruzan',0],['A octavos','8 por zona',0],['Campeones','Apertura, Clausura y Liga',0],['Descensos','2: promedio y tabla anual',0]], 2027:[['Fase regular','1 tabla única de 30',1],['Partidos','30 (15 + 15)',1],['Rivales','Todos contra todos + clásico',1],['A octavos','16 mejores de la tabla',1],['Campeones','Apertura, Clausura y Liga',0],['Descensos','2, a recalcular sobre 30 partidos',0]] }; function setYear(y){ ROOT.querySelector('#t26').setAttribute('aria-pressed', y===2026); ROOT.querySelector('#t27').setAttribute('aria-pressed', y===2027); field.classList.toggle('m27', y===2027); for(let i=0;i<30;i++){ const d = ROOT.querySelector('#d'+i); let lx, ly; if(y===2026){ const z=i%2, r=Math.floor(i/2), col=r%5, row=Math.floor(r/5); lx=(z?57:7)+col*8.6; ly=32+row*24; } else { const col=i%10, row=Math.floor(i/10); lx=7+col*9.6; ly=32+row*24; } d.style.left=lx+'%'; d.style.top=ly+'%'; } ROOT.querySelector('#lzA').style.opacity = ROOT.querySelector('#lzB').style.opacity = y===2026?1:0; ROOT.querySelector('#lT').style.opacity = y===2027?1:0; ROOT.querySelector('#facts').innerHTML = FACTS[y].map(([k,v,c])=>`

    ${k}${v}

    `).join(''); } ROOT.querySelector('#t26').addEventListener('click',()=>setYear(2026)); ROOT.querySelector('#t27').addEventListener('click',()=>setYear(2027)); setYear(2027); // ---------- descenso ---------- const DS = [ ['00/01',{p:2},'Los Andes y Almagro. Argentinos y Belgrano se salvaron en la Promoción.'], ['01/02',{p:2},'Argentinos Juniors y Belgrano. Lanús y Unión ganaron la Promoción.'], ['02/03',{p:2},'Unión y Huracán. Talleres y Nueva Chicago se salvaron en la Promoción.'], ['03/04',{p:2,r:2},'Chacarita y Nueva Chicago directos; Talleres y Atlético de Rafaela perdieron la Promoción.'], ['04/05',{p:2},'Almagro y Huracán de Tres Arroyos. Argentinos e Instituto ganaron la Promoción.'], ['05/06',{p:2,r:1},'Instituto y Tiro Federal directos; Olimpo perdió la Promoción.'], ['06/07',{p:2,r:2},'Quilmes y Belgrano directos; Godoy Cruz y Nueva Chicago perdieron la Promoción.'], ['07/08',{p:2},'Olimpo y San Martín de San Juan. Racing y Gimnasia de Jujuy se salvaron en la Promoción.'], ['08/09',{p:2},'San Martín de Tucumán y Gimnasia de Jujuy. Rosario Central y Gimnasia (LP) se salvaron.'], ['09/10',{p:2,r:1},'Atlético Tucumán y Chacarita directos; Rosario Central perdió la Promoción.'], ['10/11',{p:2,r:2},'Quilmes y Huracán directos; River y Gimnasia (LP) perdieron la Promoción.'], ['11/12',{p:2},'Banfield y Olimpo. San Lorenzo y San Martín de San Juan ganaron la última Promoción.'], ['12/13',{p:3},'Unión, Independiente y San Martín de San Juan. Primer año sin Promoción.'], ['13/14',{p:3},'All Boys, Argentinos Juniors y Colón (perdió el desempate con Atlético de Rafaela).'], ['2014',{},'Ninguno: torneo de transición y 10 ascensos para llegar a 30.'], ['2015',{p:2},'Crucero del Norte y Nueva Chicago.'], ['2016',{p:1},'Argentinos Juniors.'], ['16/17',{p:4},'Sarmiento, Quilmes, Atlético de Rafaela y Aldosivi (este último, por desempate).'], ['17/18',{p:4},'Arsenal, Chacarita, Olimpo y Temperley.'], ['18/19',{p:4},'Tigre, Belgrano, San Martín de San Juan y San Martín de Tucumán.'], ['19/20',{x:4},'Ninguno: los 4 previstos se anularon por la pandemia.'], ['2021',{},'Ninguno: los descensos siguieron suspendidos.'], ['2022',{p:2},'Aldosivi y Patronato, por promedio.'], ['2023',{p:1,a:1,x:1},'Arsenal por promedio y Colón por tabla anual (tras un desempate con Gimnasia). Estaban previstos 3.'], ['2024',{x:2},'Ninguno: en octubre se anularon los 2 previstos.'], ['2025',{p:1,a:1},'San Martín de San Juan por promedio y Godoy Cruz por tabla anual.'], ['2026',{p:1,q:1},'Estudiantes de Río Cuarto por promedio. El segundo, por tabla anual, todavía no está definido.'], ['2027',{n:2},'Propuesta: se mantendría uno por promedio y otro por tabla anual.'] ]; const dchart = ROOT.querySelector('#dchart'), ddet = ROOT.querySelector('#ddetail'); let dSel = 10; function showD(i){ dSel=i; const d=DS[i]; const n=(d[1].p||0)+(d[1].r||0)+(d[1].a||0); ddet.innerHTML = `

    ${d[0]}

    ${i===27?'2 previstos':n===0?'Ninguno':n+(n===1?' descenso':' descensos')}${d[1].q?' + 1 pendiente':''}. ${d[2]}

    `; dchart.querySelectorAll('.bar').forEach((b,k)=>b.classList.toggle('sel',k===i)); } function buildD(){ const W=Math.max(300,dchart.clientWidth), small=W<560, H=small?250:320; const L=small?18:24, R=W-4, T=small?54:80, B=H-34, n=DS.length, slot=(R-L)/n, bw=Math.max(5,slot*0.62); const yv=v=>B-v*(B-T)/4, uh=(B-T)/4; const ink=css('--fg'), mid=css('--mid'), mute=css('--mute'), acc=css('--accent'), line=css('--line'); let s=`

    `; const xP=L+12*slot; s+=``; s+=`Con Promoción${small?'':': de 2 a 4 por año'}`; s+=`Sin Promoción${small?'':': la regla cambia 10 veces'}`; [1,2,3,4].forEach(v=>{ s+=`

  • ${v}`; }); s+=`0`; DS.forEach((d,i)=>{ const cx=L+i*slot+(slot-bw)/2; let y=B, g=''; const seg=(k,fill,extra='')=>{ const v=d[1][k]||0; if(!v) return; y-=v*uh; g+=``; }; seg('p',ink); seg('r',mid); seg('a','url(#hatch)',`stroke="${ink}" stroke-width="1.2"`); ['x','q','n'].forEach(k=>{ const v=d[1][k]||0; if(!v) return; y-=v*uh; const c=k==='n'?acc:mute; g+=``; if(k==='q') g+=`?`; }); const tot=(d[1].p||0)+(d[1].r||0)+(d[1].a||0); if(tot===0 && !d[1].x && !d[1].n) g+=`0`; if(tot===0 && d[1].x) g+=`0`; s+=`${g}`; }); const lab=small?[0,10,14,19,27]:[0,3,6,10,12,14,16,19,22,25,27]; lab.forEach(i=>{ s+=`${DS[i][0]}`; }); s+=`
  • `; if(!small){ const xr=L+10*slot+slot/2; s+=`River`; const xc=L+19*slot+slot/2; s+=`Pandemia`; } s+=''; dchart.innerHTML=s; dchart.querySelectorAll('.bar').forEach(b=>{ const f=()=>showD(+b.dataset.i); b.addEventListener('click',f); b.addEventListener('keydown',e=>{ if(e.key==='Enter'||e.key===' '){e.preventDefault();f();} }); }); showD(dSel); } buildD(); window.addEventListener('resize',()=>{ clearTimeout(rt); rt=setTimeout(()=>{build();buildD();},150); }); const fb = ROOT.querySelector('#flbar'); let bh=''; for(let f=1;f<=30;f++){ if(f===16) bh+=''; bh+=`${f}`; } fb.innerHTML = bh; })();