POLITICA
Uno por uno, cómo votaron los senadores para aprobar la ley Garrahan de emergencia pediátrica

`
: `
`
}
${bloque}
`;
targetContainer.appendChild(card);
}
function createHemicicleSmall(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.small’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (from outer to inner)
const seatsPerRow = [21, 18, 16, 12, 7];
const verticalOffset = 0;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
// Instead of percentage-based rounding, we’ll compute a per-row distribution
// using floor() and then distribute any remaining seats based on the remainders.
let rowSeatCounts = seatsPerRow.map((seatsInRow) => {
// Compute the exact (floating point) allocation for each category.
const exactAfirmativo = (nAfirmativo * seatsInRow) / totalSeats;
const exactNegativo = (nNegativo * seatsInRow) / totalSeats;
const exactAbstencion = (nAbstencion * seatsInRow) / totalSeats;
const exactAusente = (nAusente * seatsInRow) / totalSeats;
// Take floor values.
let rowAfirmativo = Math.floor(exactAfirmativo);
let rowNegativo = Math.floor(exactNegativo);
let rowAbstencion = Math.floor(exactAbstencion);
let rowAusente = Math.floor(exactAusente);
let assigned = rowAfirmativo + rowNegativo + rowAbstencion + rowAusente;
let diff = seatsInRow – assigned;
// Create an array of remainders along with category identifiers.
let remainders = [{
cat: «afirmativo»,
remainder: exactAfirmativo – rowAfirmativo
},
{
cat: «negativo»,
remainder: exactNegativo – rowNegativo
},
{
cat: «abstencion»,
remainder: exactAbstencion – rowAbstencion
},
{
cat: «ausente»,
remainder: exactAusente – rowAusente
}
];
// Sort descending by remainder.
remainders.sort((a, b) => b.remainder – a.remainder);
// Distribute the remaining seats one by one to the categories with the highest remainders.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowAfirmativo++;
break;
case «negativo»:
rowNegativo++;
break;
case «abstencion»:
rowAbstencion++;
break;
case «ausente»:
rowAusente++;
break;
}
diff–;
}
}
return {
afirmativo: rowAfirmativo,
negativo: rowNegativo,
abstencion: rowAbstencion,
ausente: rowAusente
};
});
// Now, using your inverted loop order (columns first, then rows)
const maxSeatsInRow = seatsPerRow[0]; // maximum seats in the outer row
// For each seat position (by column, then row), assign the color based on that row’s distribution.
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // only if this row has a seat at this column
const seatsInThisRow = seatsPerRow[row];
const radius = 170 – row * (30 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);
// For this row, assign colors in order:
// First use available «afirmativo», then «negativo», then «abstencion», then «ausente»
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}
/* // Set the legend text (sin mostrar Ley Aprobada o no aprobada)
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
`; */
/* // — Update Legend —
const leyText = nAfirmativo > nNegativo ? «Ley Aprobada» : «Ley no aprobada»;
const resultsText=»shshs»;
document.querySelector(«#voto-summary»).innerHTML = leyText + resultsText; */
/*
// Set the legend text. Mayoría simple
const leyText = nAfirmativo > nNegativo ? ‘Ley Aprobada’ : ‘Ley no aprobada’;
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
` + ‘
‘ + leyText + ‘
‘; */
// Set the legend text. Dos tercios de los presentes (******EDITAR LEYENDA*****)
function votosNecesarios(presentes) {
return Math.ceil((2 / 3) * presentes);
}
const leyText = nAfirmativo >= (votosNecesarios(72 – nAusente)) ? ‘Aprobada’ : ‘Rechazada’;
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
` + ‘
‘ + leyText + ‘
‘;
}
// Creates the big hemiciclo visualization.
function createHemicicleBig(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.big’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (outer to inner; total should be 257)
const seatsPerRow = [21, 18, 16, 11, 6];
const verticalOffset = 2;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
// Raw vote counts must sum to totalSeats (257)
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
if (totalVotes !== totalSeats) {
console.warn(«Total votes (» + totalVotes + «) do not equal total seats (» + totalSeats + «).»);
}
console.log(nAfirmativo, nNegativo, nAbstencion, nAusente, totalSeats, totalVotes);
// — Per-Row Distribution Using Absolute Counts —
// For each row, compute the exact allocation for each vote category based on its fraction of the total seats.
let rowSeatCounts = seatsPerRow.map(seatsInRow => {
const exactA = (nAfirmativo / totalSeats) * seatsInRow;
const exactN = (nNegativo / totalSeats) * seatsInRow;
const exactAb = (nAbstencion / totalSeats) * seatsInRow;
const exactAu = (nAusente / totalSeats) * seatsInRow;
let rowA = Math.floor(exactA);
let rowN = Math.floor(exactN);
let rowAb = Math.floor(exactAb);
let rowAu = Math.floor(exactAu);
let assigned = rowA + rowN + rowAb + rowAu;
let diff = seatsInRow – assigned;
// Create an array of remainders for each category.
let remainders = [{
cat: «afirmativo»,
rem: exactA – rowA
},
{
cat: «negativo»,
rem: exactN – rowN
},
{
cat: «abstencion»,
rem: exactAb – rowAb
},
{
cat: «ausente»,
rem: exactAu – rowAu
}
];
// Sort the remainders in descending order.
remainders.sort((a, b) => b.rem – a.rem);
// Distribute any leftover seats one by one.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowA++;
break;
case «negativo»:
rowN++;
break;
case «abstencion»:
rowAb++;
break;
case «ausente»:
rowAu++;
break;
}
diff–;
}
}
return {
afirmativo: rowA,
negativo: rowN,
abstencion: rowAb,
ausente: rowAu
};
});
// — Global Correction —
// Sum the allocated seats for each category across all rows.
let globalA = rowSeatCounts.reduce((sum, row) => sum + row.afirmativo, 0);
let globalN = rowSeatCounts.reduce((sum, row) => sum + row.negativo, 0);
let globalAb = rowSeatCounts.reduce((sum, row) => sum + row.abstencion, 0);
let globalAu = rowSeatCounts.reduce((sum, row) => sum + row.ausente, 0);
// For each category, if the global total is less than the raw count, add the missing seats to the outer row (row 0).
if (globalA < nAfirmativo) {
rowSeatCounts[0].afirmativo += (nAfirmativo – globalA);
}
if (globalN < nNegativo) {
rowSeatCounts[0].negativo += (nNegativo – globalN);
}
if (globalAb < nAbstencion) {
rowSeatCounts[0].abstencion += (nAbstencion – globalAb);
}
if (globalAu < nAusente) {
rowSeatCounts[0].ausente += (nAusente – globalAu);
}
// — Seat Placement Using Inverted Loop Order —
const maxSeatsInRow = seatsPerRow[0];
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // Only process if this row has a seat at the current column.
const seatsInThisRow = seatsPerRow[row];
const radius = 300 – row * (55 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);
// For the current row, assign the color in order: afirmativo, then negativo, then abstencion, then ausente.
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}
}
// Go-to-top button functionality.
document.addEventListener(‘DOMContentLoaded’, function() {
const goToTopButton = document.querySelector(‘.votos-senadores__go-to-top’);
const targetElement = document.querySelector(‘.votos-senadores’);
goToTopButton.addEventListener(‘click’, function() {
targetElement.scrollIntoView({
behavior: ‘smooth’
});
});
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
goToTopButton.style.display = entry.isIntersecting ? ‘block’ : ‘none’;
});
}, {
root: null,
rootMargin: ‘0px’,
threshold: 0.1
});
observer.observe(targetElement);
// Attach the toggle listener to each vote button.
const toggleBtns = document.getElementsByClassName(‘votos-senadores__voto-btn’);
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].addEventListener(‘click’, function() {
this.classList.toggle(‘active’);
const panel = this.nextElementSibling;
panel.style.maxHeight = panel.style.maxHeight ? null : ‘14000px’;
});
}
// Now simulate a click on each button from within DOMContentLoaded.
// This will trigger the listener and expand each panel on load.
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].click();
}
});
POLITICA
Máximo Kirchner reabrió la interna con Axel Kicillof y cuestionó su gestión: “Ojalá el gobernador ponga la misma plata”

En el marco de la inauguración del Polideportivo Diego Armando Maradona en Quilmes, el diputado nacional Máximo Kirchner reabrió la interna dentro del kirchnerismo y apuntó contra la gobernación de Axel Kicillof. Acompañado por la intendenta, Mayra Mendoza, en su discurso acusó al gobernador de no destinar la misma cantidad de fondos a cada ciudad.
“Qué linda está la ciudad de La Plata. Ojalá el gobernador ponga la misma plata que pone en La Plata en Quilmes. Me va a encantar porque Quilmes lo necesita”, expresó Máximo Kirchner durante el acto, que ocurrió tres semanas atrás y donde también participaron Jorge Taiana, candidato a diputado nacional por la Provincia en el peronismo, y Facundo Tignanelli.
A raíz de las declaraciones de Máximo Kirchner, desde otros sectores del arco político reaccionaron. Diego Valenzuela, quien encabeza la lista de La Libertad Avanza (LLA) en la primera sección en la provincia de Buenos Aires, respondió: “Acá se ve la decadencia del kirchnerismo. No solamente discriminan a los municipios gobernados por la oposición sino que se discriminan entre ellos por la interna. No lo digo yo, lo dice Máximo Kirchner. El 7 de septiembre hay que empezar a decirle basta a esta gente”.
Los comentarios del diputado se dieron en medio de una fuerte crisis interna dentro del peronismo, donde la relación entre Kicillof y el kirchnerismo está cada vez más rota. Tal como informó , desde las filas del gobernador hay intereses de romper lazos para armar un proyecto más amplio y que incluya a gobernadores de otros signos políticos para crear un frente “anti-Milei”.
Por su parte, Máximo Kirchner, al igual que Massa, también prioriza lo que sucederá en Diputados desde el 10 de diciembre. Tanto es así, que ya hay rumores de que podría retomar la jefatura del bloque peronista, a la que renunció en medio del gobierno de Alberto Fernández. “Algunos compañeros lo están diciendo”, admitieron en la bancada kirchnerista.
El diputado encarna la pelea con Kicillof porque, en el fondo, disputan el control de la provincia de Buenos Aires y la posibilidad de poner al sucesor en el sillón de Dardo Rocha.
Semanas atrás, antes del cierre de listas, Máximo Kirchner había planteado que la única razón por la que aceptaría ser primer candidato a diputado nacional por la provincia de Buenos Aires en las elecciones del 26 de octubre sería si su madre se lo pidiera, y cuestionó el plan de elecciones que impuso Kicillof. “Los marcos de las candidaturas o no candidaturas, quién es, quién no es… Yo no estuve de acuerdo con el diseño electoral. Sigo pensando que, más allá de los resultados, puede ganarse o perderse, es un tema aparte. Ojalá hubiéramos tenido un proceso diferente para llegar a este lugar, se llegó de esta manera, pero votar el 26 de octubre, las dos elecciones juntas, era muy sano“, dijo en AM 530.
Axel Kicillof,pic.twitter.com/aQdUXcVtcB,August 26, 2025,LA NACION,Axel Kicillof,Máximo Kirchner,Conforme a,,LN+. Maqueda habló sobre los audios y criticó al Gobierno: «Llegaron tratando de evitar el barro y ahora están en el barro»,,»Le empezaron a pegar a la gente». Atacaron a militantes de LLA en Junín y hay heridos: Milei culpó a “hordas kirchneristas”,,En medio del audiogate. Milei abrazó a Karina, presentó a sus candidatos y denunció que el kirchnerismo busca «sembrar el caos»,Axel Kicillof,,Grave situación. Revelan que hay más de un millón de hectáreas bajo el agua en Buenos Aires,,Escándalo por los audios. Axel Kicillof: “¿Por qué echarían a Spagnuolo si son falsos?»,,Alineados con Cristina o Kicillof. Los intendentes del PJ bonaerense muestran un compromiso dispar con la elección de octubre
POLITICA
Coimas: el ministro de Salud se reunió en Casa Rosada para explicar la auditoría en la ANDIS

En medio del escándalo por presuntas coimas en la Agencia Nacional de Discapacidad (ANDIS), el ministro de Salud, Mario Lugones, se reunió este lunes en la Casa Rosada con el jefe de Gabinete, Guillermo Francos, y el asesor presidencial, Santiago Caputo, para presentar el plan de auditoría interna que se llevará a cabo en el organismo. La intervención se produce tras la difusión de audios del exdirector de la ANDIS, Diego Spagnuolo, en los que se menciona un supuesto esquema de corrupción.
Según fuentes cercanas a Lugones, la auditoría se centrará en las licitaciones realizadas a través del programa Incluir Salud, destinado a brindar cobertura médica a titulares de pensiones no contributivas. El objetivo es revisar los contratos y determinar si existieron irregularidades en los procesos de adjudicación.
El Congreso busca que Karina Milei brinde explicaciones sobre el escándalo de las coimas
El interventor de la ANDIS, Alejandro Vilches, firmó la orden para iniciar la revisión de los contratos, que comenzará este martes. Además, se llevará a cabo un sumario administrativo dentro del organismo para evaluar el estado general de la situación y asegurar mecanismos transparentes en la gestión de las prestaciones a cargo de la ANDIS.
En relación a la licitación con la empresa Suizo Argentina, mencionada en los audios filtrados, fuentes oficiales aseguraron que fue un proceso abierto y competitivo, en el que la droguería compitió contra otras compañías como Andreani, Correo Argentino y OCA. La empresa fue adjudicada por presentar una propuesta de un 17% por debajo del precio de referencia. Sin embargo, el Gobierno destaca que solo el 6% de lo que compra el Ministerio de Salud en medicamentos es a través de esta empresa.
Mientras tanto, el empresario Jonathan Simón Kovalivker, uno de los propietarios de Suizo Argentina, se presentó en los tribunales federales de Comodoro Py para declarar en la causa que investiga las presuntas coimas. Entregó su celular para una eventual revisión pericial, aunque no proporcionó la clave de su dispositivo.
La entrada Coimas: el ministro de Salud se reunió en Casa Rosada para explicar la auditoría en la ANDIS se publicó primero en Nexofin.
Agencia Nacional de Discapacidad,Auditoría,Coimas,Diego Spagnuolo,Mario Lugones
POLITICA
Qué dijo Javier Milei en medio del escándalo por los audios

El presidente Javier Milei participó este lunes de un acto público en medio de una fuerte controversia política. Una serie de grabaciones filtradas generó acusaciones de corrupción contra su círculo íntimo. El escándalo por los audios involucra a la secretaria general de la Presidencia, Karina Milei, y a los funcionarios Martín y Eduardo “Lule” Menem. En este contexto, el mandatario ofreció un discurso con un mensaje directo hacia sus adversarios políticos pero no hizo referencia al caso.
Javier Milei no hizo referencia directa a las grabaciones del extitular de la Agencia Nacional de Discapacidad (Andis), Diego Spagnuolo. Sus declaraciones se centraron en una supuesta estrategia de la oposición para perjudicar a su gestión y minimizó el impacto de estas acciones.
“No me importa todo el daño que puedan hacer de acá al 7 de septiembre o hasta el 26 de octubre”, afirmó el líder de La Libertad Avanza. Luego, planteó una pregunta retórica. “Si di vuelta el déficit fiscal de 123 años en un mes, ¿ustedes se creen que me voy a preocupar por lo que me van a hacer en dos meses?”, concluyó con una risa irónica.
El Presidente también aseguró que a su administración “no le falta política” y sostuvo que el problema reside en sus opositores. “Los de enfrente quieren romper todo, que es algo muy distinto”, señaló. Durante su alocución, dedicó un párrafo a Guillermo Francos: dijo que al funcionario “le toca lidiar con los orcos del Congreso, con esos destituyentes que lo único que están buscando es romper el programa económico”.
Milei acusó a estos sectores de apostar a “romper el país” y de promover “proyectos que buscan romper el equilibrio fiscal, aprobando cualquier tipo de barbaridades sin tener financiamiento”. El evento donde habló el Presidente fue la inauguración del nuevo edificio de Corporación América. Su hermana, Karina Milei, lo acompañó en el acto.
La polémica se desató por la difusión de audios grabados de manera clandestina. En ellos, la voz atribuida a Diego Spagnuolo, exdirector de la Andis, describe un presunto esquema de coimas. Las grabaciones involucran directamente a la secretaria general de la Presidencia, Karina Milei, y al subsecretario de Gestión Institucional, Eduardo “Lule” Menem.
Horas antes del discurso presidencial, Eduardo “Lule” Menem publicó un descargo en la red social X. El subsecretario calificó el hecho como una “burda operación política del kirchnerismo” y aclaró que nunca intervino en contrataciones de la Agencia Nacional de Discapacidad.
También afirmó que no tuvo conocimiento de hechos ilícitos. Menem remarcó que jamás habló sobre este tema particular con Karina Milei ni con el Presidente y sostuvo que el contenido de los audios “es absolutamente falso”.
Su primo, Martín Menem, presidente de la Cámara de Diputados, también se pronunció sobre el tema. El titular de la Cámara baja dijo que “pone las manos en el fuego por Lule y por Karina”. Aclaró que no puede garantizar la autenticidad técnica de los audios. Consideró que se trata de una maniobra política con fines electorales. Señaló que la difusión ocurrió a menos de dos semanas de las elecciones bonaerenses.
Este contenido fue producido por un equipo de con la asistencia de la IA.
participó este lunes de un acto público en medio de una fuerte controversia política,Audiencia,Karina Milei,Javier Milei,,»Rigor formal». Admiten un recurso de Milei contra Carlos Pagni, a pesar de una omisión de su abogado,,Se mostró junto a su hermana Karina. Javier Milei, en medio del escándalo por los audios: “¿Creen que me preocupa lo que puedan hacer de acá a dos meses?”,,Audios de Spagnuolo. Por qué se señala a Karina Milei en el escándalo de las coimas,Audiencia,,Pronóstico. Hasta cuándo seguirán la “mini primavera” y el sol en Buenos Aires, según el SMN,,Deuda energética. Qué le reclamaron las productoras de gas al Gobierno,,Escándalo. Qué pasó con Medvedev en el US Open
- DEPORTE3 días ago
Chile organizó una colecta para que la familia del hincha que fue operado por fractura de cráneo pueda viajar a la Argentina
- DEPORTE3 días ago
El fútbol chileno se solidarizó con la U tras los graves incidentes que se registraron ante Independiente
- DEPORTE2 días ago
¿Cómo va el historial entre Rosario Central y Newell´s Old Boys y quién ganó más?