POLITICA
Uno por uno, cómo votaron en general los diputados la reforma de la ley de DNU, que ahora vuelve al Senado

`
: `
`
}
${bloque}
`;
targetContainer.appendChild(card);
}
function createHemicicleSmall(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-diputados__hemiciclo.small’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 10;
// Array of seats per row (from outer to inner)
const seatsPerRow = [38, 36, 33, 30, 27, 24, 21, 19, 16, 13];
const verticalOffset = 2;
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 * (16 – 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.
const leyText = nAfirmativo > nNegativo ? ‘Ley Aprobada’ : ‘Ley no aprobada’;
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-diputados__hemiciclo.big’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 10;
// Array of seats per row (outer to inner; total should be 257)
const seatsPerRow = [38, 36, 33, 30, 27, 24, 21, 19, 16, 13];
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 + «).»);
}
// — 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 * (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 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);
}
}
}
/* // — Update Legend —
const leyText = nAfirmativo > nNegativo ? «Ley Aprobada» : «Ley no aprobada»;
const resultsText=»shshs»;
document.querySelector(«#voto-summary»).innerHTML = leyText + resultsText; */
}
// Go-to-top button functionality.
document.addEventListener(‘DOMContentLoaded’, function() {
const goToTopButton = document.querySelector(‘.votos-diputados__go-to-top’);
const targetElement = document.querySelector(‘.votos-diputados’);
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-diputados__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
Antes del debate de la Ley de Glaciares, el gobernador Raúl Jalil advirtió: “No hay impacto ambiental más negativo que la pobreza”

“No hay impacto ambiental más negativo que la pobreza”. Con esa definición, el gobernador de Catamarca, Raúl Jalil, defendió el proyecto de Ley de Glaciares que el Senado tiene previsto tratar este jueves y que busca promover la actividad minera bajo nuevos parámetros regulatorios.
En declaraciones a Radio Mitre, el mandatario provincial sostuvo que el debate sobre el impacto ambiental de la minería debe analizarse junto con la realidad social y productiva de las provincias cordilleranas. “Si hoy no tuviéramos minería, tendríamos 7.000 empleos menos”, afirmó. Además, indicó que cada emprendimiento debe evaluarse según el “balance” entre su impacto ambiental y su contribución a la economía local.
Jalil precisó: “Todo proyecto —hacer una casa, un hotel o una explotación minera— tiene su impacto ambiental. Lo que debe evaluarse es el balance que dicho emprendimiento tiene en la economía y en la política ambiental de la provincia”. Así respondió a las críticas de sectores que advierten sobre posibles daños a los ecosistemas y la salud de la población.
El gobernador remarcó que la actividad minera está sometida a estrictos controles. “No hay ninguna actividad que tenga tanto control, desde audiencias públicas, como la minería”, subrayó. Detalló que para otorgar una Declaración de Impacto Ambiental a una empresa que pretenda explorar o explotar un yacimiento deben cumplirse instancias específicas de evaluación.
“Cuando se genera una declaración de impacto ambiental de una empresa que desea explorar o explotar un yacimiento minero, debe atravesar tres controles”, explicó Jalil. Según describió, el primero es el control ambiental, que calificó como “muy importante” para las provincias y en el que —aseguró— se han registrado avances, incluso en articulación con comunidades locales. El segundo es el control económico, es decir, que el proyecto tenga un impacto positivo en la economía y contribuya a mejorar la calidad de vida de los catamarqueños.
En esa línea, Jalil destacó el destino de los fondos derivados de la actividad. “Todos los recursos de las regalías o fondos extra regalía van a las comunidades”, señaló. Añadió que estos ingresos permiten “cambiar la matriz económica”, fortalecer el turismo, la agroindustria y financiar obras estratégicas en la puna catamarqueña y la región cordillerana.

El mandatario vinculó el debate legislativo con la discusión sobre federalismo y competencias. “Fuimos al Congreso, a las comisiones de Minería, Energía y Combustibles y de Ambiente y Desarrollo Sustentable, a defender esta ley que le regresa derechos a las provincias”, expresó.
En ese contexto, citó el artículo 41 de la Constitución Nacional, que establece la obligación de proteger el ambiente sin impedir el desarrollo humano, y el artículo 124, que reconoce que las provincias son originarias de los recursos naturales existentes en su territorio. Para Jalil, el proyecto se enmarca en esa lógica: preservar el ambiente sin clausurar las posibilidades de desarrollo productivo.
El tratamiento del proyecto en el Senado ocurre con el respaldo de los gobernadores de provincias cordilleranas, que consideran la minería un eje central de sus economías regionales. La iniciativa es vista como clave para el desarrollo de distritos como Jujuy, Salta, La Rioja, Catamarca, Mendoza, Neuquén, Santa Cruz y Chubut, donde la actividad tiene un peso significativo en términos de empleo, inversiones y generación de divisas.
El bloque del presidente Javier Milei busca reunir los votos necesarios, con el acompañamiento de senadores aliados, para aprobar el proyecto en la sesión prevista para mañana. Desde el oficialismo sostienen que la reforma permitirá dar mayor previsibilidad al sector y fortalecer el perfil exportador del país, en un momento en que la minería —en especial el litio— es presentada como uno de los motores potenciales de crecimiento.

Jalil planteó que el debate trasciende la coyuntura política. “Agradezco que esto se trate en el Congreso, porque fue un pedido de los gobernadores al presidente Milei y le agradezco que hoy se esté debatiendo”, afirmó. Su declaración sintetiza la posición de los mandatarios provinciales que impulsaron la discusión en la Cámara alta: una apuesta por consolidar un marco normativo que, según sostienen, combine control ambiental, desarrollo económico y mayor protagonismo de las provincias en la gestión de sus recursos naturales.
Mientras los sectores críticos alertan sobre los riesgos ambientales, los gobernadores del arco cordillerano insisten en que la discusión no puede omitir la dimensión social. Para Jalil, la clave está en evitar que el debate ambiental se convierta en un obstáculo para combatir el problema más urgente: la pobreza.
POLITICA
Jorge Macri inauguró el ciclo lectivo en CABA: «La escuela es el lugar donde se construye la posibilidad de crecer y ser libres»

El jefe de gobierno porteño, Jorge Macri, inauguró el ciclo lectivo en la ciudad de Buenos Aires: “La escuela es donde se construye la posibilidad de ser libres”.
El mandatario porteño destacó, en una nueva escuela, Estación Buenos Aires, en Barracas: “Por tercer año consecutivo empezamos las clases en el día en que nos habíamos planteado. Es una muy buena noticia, cada día cuenta”.
Macri destacó: “Cada escuela es el lugar donde se construye la posibilidad de aprender, crecer, ser libre, pero para eso se necesita tiempo, constancia y presencialidad”.
El jefe de gobierno porteño dijo celebró: “No es poca cosa que se abran nuevos lugares de aprendizaje. Esta escuela, no es solo un nuevo espacio, si no que además es diferente porque se desafía con un sistema de educación distinto. Es modelo, bilingüe y tiene formación tecnología”. Se trata de una institución modelo en el sur de la Ciudad para 400 alumnos de Primaria y de los tres primeros años del secundario.
Los alumnos del nivel inicial y primario de la ciudad de Buenos Aires vuelven hoy a las escuelas, mientras que los de la secundaria lo harán el próximo lunes.
Noticia que está siendo actualizada.-
Jorge Macri
POLITICA
Con Milei presente, el Gobierno reunió al Gabinete y puso el eje en la agenda legislativa

El presidente Javier Milei encabezó la su primera reunión de Gabinete del año en la Casa Rosada, la cual convocó el jefe de ministros Manuel Adorni para abordar cuestiones legislativas que el oficialismo impulsará este año en las sesiones ordinarias que comenzarán este 1 de agosto.
Agenda legislativa
Este encuentro se dio en la previa a la sesión del Senado que se desarrollará este viernes para ratificar o no la reforma laboral. Entre otros temas en desarrollo, en el marco de las sesiones extraordinarias que finalizan esta semana, se encuentra la elección de autoridades para ambas cámaras del Congreso.
Entre los principales temas que se abarcaron en la reunión se encuentran las reformas que el oficialismo empujará en el Poder Legislativo a lo largo del año, como las reformas en el Código Penal y el régimen tributario.
El PJ apuntó contra los peronistas que apoyaron la reforma laboral: “Eligieron estar del lado equivocado”
Otros proyectos de ley en carpeta para las sesiones ordinarias de 2026 son: la reforma política, la Ley de Financiamiento Universitario, la reforma de la seguridad nacional, la Ley de Salud mental y la Ley de Glaciares, sobre la cual se espera que el Senado la respalde y se trate, posteriormente, dentro del mes de marzo, en Diputados.
Respecto a la Corte Suprema y sus cargos vacantes, el Gobierno decidió que este año no avanzará para cubrir dichos cargos ni con los pliegos de jueces, fiscales y defensores públicos.
Mensaje de Milei en la apertura de las sesiones ordinarias
Otra cuestión que estuvo presente en la reunión que se celebra en la Casa Rosada es el discurso que brindará el presidente Javier Milei. Un mensaje que se centrará en los próximos pasos de la gestión del Gobierno, para los cuales el accionar legislativo es muy importante.
Martín Menem defendió la reforma laboral: “Los que nos critican son los artífices del fracaso”
La entrada Con Milei presente, el Gobierno reunió al Gabinete y puso el eje en la agenda legislativa se publicó primero en Nexofin.
Casa Rosada,Gobierno,Javier Milei,Oficialismo,Proyectos de ley,Reformas,Reunión de Gabinete
POLITICA2 días agoDaiana Fernández Molero defendió la reforma laboral: “Va a haber mayor creación de empleo porque va a ser más fácil contratar en blanco”
POLITICA2 días ago“Nos hacemos cargo”: Patricia Bullrich admitió un error del Gobierno en la inclusión del artículo de las licencias médicas
ECONOMIA2 días agoEl salario pretendido por los argentinos volvió a caer en enero: cuánto piden por cada puesto












