// --- DATOS DE MEJORAS ---
// Mejoras con versiones por partido (PSOE y PP)
// Las funciones effect() acceden a variables globales y usan partidoElegido

const upgradesDataRaw = {
    sudadera: {
        psoe: {
            name: "Sudadera Morada +8M",
            cost: 500,
            effect: function() { gameState.buildings.charo.baseVps *= 2; },
            desc: "Doble potencia para tus Charos."
        },
        pp: {
            name: "Gorra de la Selección",
            cost: 500,
            effect: function() { gameState.buildings.charo.baseVps *= 2; },
            desc: "Doble potencia para tus Jubilados."
        },
        vox: {
            name: "Bandera de España XXL",
            cost: 500,
            effect: function() { gameState.buildings.charo.baseVps *= 2; },
            desc: "Doble potencia para tus Patriotas."
        },
        podemos: {
            name: "Camiseta del Ché",
            cost: 500,
            effect: function() { gameState.buildings.charo.baseVps *= 2; },
            desc: "Doble potencia para tus Activistas."
        }
    },
    satisfayer: {
        psoe: {
            name: "Satisfyer Industrial",
            cost: 5000,
            effect: function() { gameState.buildings.aliade.baseVps *= 2; },
            desc: "Mantiene a la tropa distraída. (x2 Aliades)"
        },
        pp: {
            name: "Suscripción a The Economist",
            cost: 5000,
            effect: function() { gameState.buildings.aliade.baseVps *= 2; },
            desc: "Mantiene a los señoros informados. (x2 Señoros)"
        },
        vox: {
            name: "Licencia de Armas",
            cost: 5000,
            effect: function() { gameState.buildings.aliade.baseVps *= 2; },
            desc: "Defensa personal para guerreros del teclado. (x2)"
        },
        podemos: {
            name: "Carnet de Biblioteca",
            cost: 5000,
            effect: function() { gameState.buildings.aliade.baseVps *= 2; },
            desc: "Cultura para el pueblo. (x2 Cooperativistas)"
        }
    },
    tertuliano: {
        psoe: {
            name: "Tertuliano Afín",
            cost: 75000,
            effect: function() { gameState.tertulianoActive = true; },
            desc: "+25% VPS cuando tienes >10M votos."
        },
        pp: {
            name: "Tertuliano Estrella",
            cost: 75000,
            effect: function() { gameState.tertulianoActive = true; },
            desc: "+25% VPS cuando tienes >10M votos."
        },
        vox: {
            name: "Influencer Patriótico",
            cost: 75000,
            effect: function() { gameState.tertulianoActive = true; },
            desc: "+25% VPS cuando tienes >10M votos."
        },
        podemos: {
            name: "Streamer de Twitch",
            cost: 75000,
            effect: function() { gameState.tertulianoActive = true; },
            desc: "+25% VPS cuando tienes >10M votos."
        }
    },
    amnistia: {
        psoe: {
            name: "Ley de Amnistía",
            cost: 50000,
            effect: function() {
                // BALANCE: +5% VPS por click, +1 click base
                gameState.clickVpsRatio += 0.05;
                gameState.clickValue += 1;
            },
            desc: "+5% VPS por click. +1 click base."
        },
        pp: {
            name: "Bajada de Impuestos",
            cost: 50000,
            effect: function() {
                gameState.clickVpsRatio += 0.05;
                gameState.clickValue += 1;
            },
            desc: "+5% VPS por click. +1 click base."
        },
        vox: {
            name: "Ley de Seguridad Ciudadana",
            cost: 50000,
            effect: function() {
                gameState.clickVpsRatio += 0.05;
                gameState.clickValue += 1;
            },
            desc: "+5% VPS por click. +1 click base."
        },
        podemos: {
            name: "Renta Básica Universal",
            cost: 50000,
            effect: function() {
                gameState.clickVpsRatio += 0.05;
                gameState.clickValue += 1;
            },
            desc: "+5% VPS por click. +1 click base."
        }
    },
    frenesi_electoral: {
        psoe: {
            name: "Frenesí Electoral",
            cost: 300000,
            effect: function() { gameState.clickCritChance = 0.1; },
            desc: "10% probabilidad de click crítico (×5 votos)."
        },
        pp: {
            name: "Frenesí Electoral",
            cost: 300000,
            effect: function() { gameState.clickCritChance = 0.1; },
            desc: "10% probabilidad de click crítico (×5 votos)."
        },
        vox: {
            name: "Frenesí Patriótico",
            cost: 300000,
            effect: function() { gameState.clickCritChance = 0.1; },
            desc: "10% probabilidad de click crítico (×5 votos)."
        },
        podemos: {
            name: "Frenesí Popular",
            cost: 300000,
            effect: function() { gameState.clickCritChance = 0.1; },
            desc: "10% probabilidad de click crítico (×5 votos)."
        }
    },
    clickbait_profesional: {
        psoe: {
            name: "Clickbait Profesional",
            cost: 750000,
            effect: function() {
                // BALANCE: +8% VPS por click, +5% prob crítico extra
                gameState.clickVpsRatio += 0.08;
                gameState.clickCritChance += 0.05;
            },
            desc: "+8% VPS por click. +5% prob crítico extra."
        },
        pp: {
            name: "Marketing Político",
            cost: 750000,
            effect: function() {
                gameState.clickVpsRatio += 0.08;
                gameState.clickCritChance += 0.05;
            },
            desc: "+8% VPS por click. +5% prob crítico extra."
        },
        vox: {
            name: "Propaganda Viral",
            cost: 750000,
            effect: function() {
                gameState.clickVpsRatio += 0.08;
                gameState.clickCritChance += 0.05;
            },
            desc: "+8% VPS por click. +5% prob crítico extra."
        },
        podemos: {
            name: "Viralidad Militante",
            cost: 750000,
            effect: function() {
                gameState.clickVpsRatio += 0.08;
                gameState.clickCritChance += 0.05;
            },
            desc: "+8% VPS por click. +5% prob crítico extra."
        }
    },
    ultraderecha: {
        psoe: {
            name: "\"Que viene la ultraderecha\"",
            cost: 100000,
            effect: function() {
                const robo = partidos.podemos.votos * 0.1;
                partidos[partidoElegido].votos += robo;
                partidos.podemos.votos -= robo;
            },
            desc: "Roba 10% votos de Podemos."
        },
        pp: {
            name: "\"Que viene el comunismo\"",
            cost: 100000,
            effect: function() {
                const robo = partidos.vox.votos * 0.1;
                partidos[partidoElegido].votos += robo;
                partidos.vox.votos -= robo;
            },
            desc: "Roba 10% votos de VOX."
        },
        vox: {
            name: "\"Que viene el chavismo\"",
            cost: 100000,
            effect: function() {
                const robo = partidos.pp.votos * 0.1;
                partidos[partidoElegido].votos += robo;
                partidos.pp.votos -= robo;
            },
            desc: "Roba 10% votos de PP."
        },
        podemos: {
            name: "\"Que viene el fascismo\"",
            cost: 100000,
            effect: function() {
                const robo = partidos.psoe.votos * 0.1;
                partidos[partidoElegido].votos += robo;
                partidos.psoe.votos -= robo;
            },
            desc: "Roba 10% votos de PSOE."
        }
    },
    rtve: {
        psoe: {
            name: "Manipular RTVE",
            cost: 250000,
            effect: function() {
                partidos.pp.growthRate *= 0.8;
                partidos.vox.growthRate *= 0.8;
            },
            desc: "-20% growthRate de PP y VOX."
        },
        pp: {
            name: "Denunciar Manipulación RTVE",
            cost: 250000,
            effect: function() {
                partidos.psoe.growthRate *= 0.8;
                partidos.podemos.growthRate *= 0.8;
            },
            desc: "-20% growthRate de PSOE y Podemos."
        },
        vox: {
            name: "Boicot a RTVE",
            cost: 250000,
            effect: function() {
                partidos.psoe.growthRate *= 0.8;
                partidos.podemos.growthRate *= 0.8;
            },
            desc: "-20% growthRate de PSOE y Podemos."
        },
        podemos: {
            name: "RTVE Pública y Plural",
            cost: 250000,
            effect: function() {
                partidos.pp.growthRate *= 0.8;
                partidos.vox.growthRate *= 0.8;
            },
            desc: "-20% growthRate de PP y VOX."
        }
    },
    campana: {
        psoe: {
            name: "Campaña Electoral",
            cost: 500000,
            effect: function() {
                // BALANCE: Condicional por regiones (+3% por región, max +51%)
                gameState.campanaActive = true;
            },
            desc: "+3% VPS por región controlada (max +51%)."
        },
        pp: {
            name: "Campaña de España",
            cost: 500000,
            effect: function() {
                gameState.campanaActive = true;
            },
            desc: "+3% VPS por región controlada (max +51%)."
        },
        vox: {
            name: "Campaña Vistalegre",
            cost: 500000,
            effect: function() {
                gameState.campanaActive = true;
            },
            desc: "+3% VPS por región controlada (max +51%)."
        },
        podemos: {
            name: "Campaña Puerta del Sol",
            cost: 500000,
            effect: function() {
                gameState.campanaActive = true;
            },
            desc: "+3% VPS por región controlada (max +51%)."
        }
    },
    correos: {
        psoe: {
            name: "Leire Díaz en Correos",
            cost: 500000,
            effect: function() { gameState.correosActive = true; gameState.correosTimer = 0; },
            desc: "+100 votos/click cuando activo (60s cada 5min)."
        },
        pp: {
            name: "Amigo en Correos",
            cost: 500000,
            effect: function() { gameState.correosActive = true; gameState.correosTimer = 0; },
            desc: "+100 votos/click cuando activo (60s cada 5min)."
        },
        vox: {
            name: "Infiltrado en Correos",
            cost: 500000,
            effect: function() { gameState.correosActive = true; gameState.correosTimer = 0; },
            desc: "+100 votos/click cuando activo (60s cada 5min)."
        },
        podemos: {
            name: "Correos Público",
            cost: 500000,
            effect: function() { gameState.correosActive = true; gameState.correosTimer = 0; },
            desc: "+100 votos/click cuando activo (60s cada 5min)."
        }
    },
    indra: {
        psoe: {
            name: "Invierte en Indra",
            cost: 2000000,
            effect: function() { gameState.indraBonus = 0.05; },
            desc: "+5% a la producción automática de votos."
        },
        pp: {
            name: "Contrato con Indra",
            cost: 2000000,
            effect: function() { gameState.indraBonus = 0.05; },
            desc: "+5% a la producción automática de votos."
        },
        vox: {
            name: "Auditoría Electoral",
            cost: 2000000,
            effect: function() { gameState.indraBonus = 0.05; },
            desc: "+5% a la producción automática de votos."
        },
        podemos: {
            name: "Voto Electrónico Seguro",
            cost: 2000000,
            effect: function() { gameState.indraBonus = 0.05; },
            desc: "+5% a la producción automática de votos."
        }
    },
    corrupcion: {
        psoe: {
            name: "Corrupción Selectiva",
            cost: 25000,
            effect: function() {
                gameState.corrupcionActive = true;
                // BALANCE: -10% growth a todos los rivales permanente
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.9;
                    }
                }
            },
            desc: "-10% crecimiento rivales. 5% prob/s de robar votos."
        },
        pp: {
            name: "Operación Púnica",
            cost: 25000,
            effect: function() {
                gameState.corrupcionActive = true;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.9;
                    }
                }
            },
            desc: "-10% crecimiento rivales. 5% prob/s de robar votos."
        },
        vox: {
            name: "Denuncia Sistemática",
            cost: 25000,
            effect: function() {
                gameState.corrupcionActive = true;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.9;
                    }
                }
            },
            desc: "-10% crecimiento rivales. 5% prob/s de robar votos."
        },
        podemos: {
            name: "Fiscalización Popular",
            cost: 25000,
            effect: function() {
                gameState.corrupcionActive = true;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.9;
                    }
                }
            },
            desc: "-10% crecimiento rivales. 5% prob/s de robar votos."
        }
    },
    pacto: {
        psoe: {
            name: "Pacto con Podemos",
            cost: 3000000,
            effect: function() {
                const robo = partidos.podemos.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.podemos.votos -= robo;
                partidos.podemos.growthRate *= 0.6;
            },
            desc: "Absorbe 25% de votos de Podemos."
        },
        pp: {
            name: "Absorber a Ciudadanos",
            cost: 3000000,
            effect: function() {
                const robo = partidos.vox.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.vox.votos -= robo;
                partidos.vox.growthRate *= 0.6;
            },
            desc: "Absorbe 25% de votos de VOX."
        },
        vox: {
            name: "Absorber Disidentes PP",
            cost: 3000000,
            effect: function() {
                const robo = partidos.pp.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.pp.votos -= robo;
                partidos.pp.growthRate *= 0.6;
            },
            desc: "Absorbe 25% de votos de PP."
        },
        podemos: {
            name: "Absorber a IU",
            cost: 3000000,
            effect: function() {
                const robo = partidos.psoe.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.psoe.votos -= robo;
                partidos.psoe.growthRate *= 0.6;
            },
            desc: "Absorbe 25% de votos de PSOE."
        }
    },
    memoria: {
        psoe: {
            name: "Ley de Memoria",
            cost: 15000000,
            effect: function() {
                partidos.pp.growthRate *= 0.7;
                partidos.vox.growthRate *= 0.7;
            },
            desc: "Reduce el crecimiento de PP y VOX un 30%."
        },
        pp: {
            name: "Concordia Nacional",
            cost: 15000000,
            effect: function() {
                partidos.psoe.growthRate *= 0.7;
                partidos.podemos.growthRate *= 0.7;
            },
            desc: "Reduce el crecimiento de PSOE y Podemos un 30%."
        },
        vox: {
            name: "Ley de Concordia",
            cost: 15000000,
            effect: function() {
                partidos.psoe.growthRate *= 0.7;
                partidos.podemos.growthRate *= 0.7;
            },
            desc: "Reduce el crecimiento de PSOE y Podemos un 30%."
        },
        podemos: {
            name: "Ley de Memoria Democrática",
            cost: 15000000,
            effect: function() {
                partidos.pp.growthRate *= 0.7;
                partidos.vox.growthRate *= 0.7;
            },
            desc: "Reduce el crecimiento de PP y VOX un 30%."
        }
    },
    lawfare: {
        psoe: {
            name: "Lawfare Selectivo",
            cost: 100000,
            effect: function() {
                partidos.pp.growthRate *= 0.8;
                partidos.vox.growthRate *= 0.8;
            },
            desc: "-20% crecimiento de rivales."
        },
        pp: {
            name: "Lawfare Judicial",
            cost: 100000,
            effect: function() {
                partidos.psoe.growthRate *= 0.8;
                partidos.podemos.growthRate *= 0.8;
            },
            desc: "-20% crecimiento de rivales."
        },
        vox: {
            name: "Acusación Popular",
            cost: 100000,
            effect: function() {
                partidos.psoe.growthRate *= 0.8;
                partidos.podemos.growthRate *= 0.8;
            },
            desc: "-20% crecimiento de rivales."
        },
        podemos: {
            name: "Denuncia Ciudadana",
            cost: 100000,
            effect: function() {
                partidos.pp.growthRate *= 0.8;
                partidos.vox.growthRate *= 0.8;
            },
            desc: "-20% crecimiento de rivales."
        }
    },
    suscripcion_publico: {
        psoe: {
            name: "Suscripción Premium a Público",
            cost: 150000,
            effect: function() {
                gameState.corruptionShield = true;
                // BALANCE: +5% VPS permanente
                gameState.suscripcionBonus = 0.05;
            },
            desc: "Inmunidad a escándalos. +5% VPS permanente."
        },
        pp: {
            name: "Suscripción Premium a OK Diario",
            cost: 150000,
            effect: function() {
                gameState.corruptionShield = true;
                gameState.suscripcionBonus = 0.05;
            },
            desc: "Inmunidad a escándalos. +5% VPS permanente."
        },
        vox: {
            name: "Canal de YouTube Premium",
            cost: 150000,
            effect: function() {
                gameState.corruptionShield = true;
                gameState.suscripcionBonus = 0.05;
            },
            desc: "Inmunidad a escándalos. +5% VPS permanente."
        },
        podemos: {
            name: "Suscripción a El Salto",
            cost: 150000,
            effect: function() {
                gameState.corruptionShield = true;
                gameState.suscripcionBonus = 0.05;
            },
            desc: "Inmunidad a escándalos. +5% VPS permanente."
        }
    },
    indultos: {
        psoe: {
            name: "Indultos Estratégicos",
            cost: 500000,
            effect: function() {
                const roboPP = partidos.pp.votos * 0.1;
                const roboVOX = partidos.vox.votos * 0.1;
                partidos[partidoElegido].votos += roboPP + roboVOX;
                partidos.pp.votos -= roboPP;
                partidos.vox.votos -= roboVOX;
            },
            desc: "Roba 10% votos de PP y VOX."
        },
        pp: {
            name: "Promesa de Orden",
            cost: 500000,
            effect: function() {
                const roboPSOE = partidos.psoe.votos * 0.1;
                const roboPodemos = partidos.podemos.votos * 0.1;
                partidos[partidoElegido].votos += roboPSOE + roboPodemos;
                partidos.psoe.votos -= roboPSOE;
                partidos.podemos.votos -= roboPodemos;
            },
            desc: "Roba 10% votos de PSOE y Podemos."
        },
        vox: {
            name: "Mano Dura",
            cost: 500000,
            effect: function() {
                const roboPSOE = partidos.psoe.votos * 0.1;
                const roboPodemos = partidos.podemos.votos * 0.1;
                partidos[partidoElegido].votos += roboPSOE + roboPodemos;
                partidos.psoe.votos -= roboPSOE;
                partidos.podemos.votos -= roboPodemos;
            },
            desc: "Roba 10% votos de PSOE y Podemos."
        },
        podemos: {
            name: "Amnistía Social",
            cost: 500000,
            effect: function() {
                const roboPP = partidos.pp.votos * 0.1;
                const roboVOX = partidos.vox.votos * 0.1;
                partidos[partidoElegido].votos += roboPP + roboVOX;
                partidos.pp.votos -= roboPP;
                partidos.vox.votos -= roboVOX;
            },
            desc: "Roba 10% votos de PP y VOX."
        }
    },
    monteroSanidad: {
        psoe: {
            name: "Montero en Sanidad",
            cost: 2000000,
            effect: function() {
                // BALANCE: +15% VPS solo cuando tienes >500 VPS base
                gameState.monteroActive = true;
            },
            desc: "+15% VPS cuando tienes >500 VPS base."
        },
        pp: {
            name: "Privatización Sanitaria",
            cost: 2000000,
            effect: function() {
                gameState.monteroActive = true;
            },
            desc: "+15% VPS cuando tienes >500 VPS base."
        },
        vox: {
            name: "Sanidad sin Ideología",
            cost: 2000000,
            effect: function() {
                gameState.monteroActive = true;
            },
            desc: "+15% VPS cuando tienes >500 VPS base."
        },
        podemos: {
            name: "Sanidad 100% Pública",
            cost: 2000000,
            effect: function() {
                gameState.monteroActive = true;
            },
            desc: "+15% VPS cuando tienes >500 VPS base."
        }
    },
    zapateroMediador: {
        psoe: {
            name: "Zapatero Mediador",
            cost: 5000000,
            effect: function() {
                // BALANCE: +30% votos de eventos positivos, -15% growth rivales
                gameState.zapateroBonus = 0.3;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.85;
                    }
                }
            },
            desc: "+30% votos de eventos. -15% growth rivales."
        },
        pp: {
            name: "Aznar Asesor",
            cost: 5000000,
            effect: function() {
                gameState.zapateroBonus = 0.3;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.85;
                    }
                }
            },
            desc: "+30% votos de eventos. -15% growth rivales."
        },
        vox: {
            name: "General Retirado",
            cost: 5000000,
            effect: function() {
                gameState.zapateroBonus = 0.3;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.85;
                    }
                }
            },
            desc: "+30% votos de eventos. -15% growth rivales."
        },
        podemos: {
            name: "Asesor de Movimientos Sociales",
            cost: 5000000,
            effect: function() {
                gameState.zapateroBonus = 0.3;
                for (let key in partidos) {
                    if (key !== partidoElegido) {
                        partidos[key].growthRate *= 0.85;
                    }
                }
            },
            desc: "+30% votos de eventos. -15% growth rivales."
        }
    },
    deepfake_tool: {
        psoe: {
            name: "Herramienta Deepfake",
            cost: 1000000,
            effect: function() { gameState.deepfakeToolActive = true; },
            desc: "Opciones 'viral' en eventos dan +50% votos."
        },
        pp: {
            name: "Fábrica de Memes",
            cost: 1000000,
            effect: function() { gameState.deepfakeToolActive = true; },
            desc: "Opciones 'viral' en eventos dan +50% votos."
        },
        vox: {
            name: "Granja de Bots",
            cost: 1000000,
            effect: function() { gameState.deepfakeToolActive = true; },
            desc: "Opciones 'viral' en eventos dan +50% votos."
        },
        podemos: {
            name: "Guerrilla Digital",
            cost: 1000000,
            effect: function() { gameState.deepfakeToolActive = true; },
            desc: "Opciones 'viral' en eventos dan +50% votos."
        }
    },
    ego_boost: {
        psoe: {
            name: "Boost de Ego",
            cost: 200000,
            effect: function() {
                gameState.egoPolitico += 2;
                const egoBonus = Math.min(gameState.egoPolitico * 10, 50);
                document.getElementById('ego-display').innerText = `Ego Político: ${gameState.egoPolitico} (Bonus: +${egoBonus}%)`;
                markVpsDirty();
            },
            desc: "+2 Ego Político instantáneo."
        },
        pp: {
            name: "Boost de Carisma",
            cost: 200000,
            effect: function() {
                gameState.egoPolitico += 2;
                const egoBonus = Math.min(gameState.egoPolitico * 10, 50);
                document.getElementById('ego-display').innerText = `Carisma Político: ${gameState.egoPolitico} (Bonus: +${egoBonus}%)`;
                markVpsDirty();
            },
            desc: "+2 Carisma Político instantáneo."
        },
        vox: {
            name: "Boost de Patriotismo",
            cost: 200000,
            effect: function() {
                gameState.egoPolitico += 2;
                const egoBonus = Math.min(gameState.egoPolitico * 10, 50);
                document.getElementById('ego-display').innerText = `Fervor Patriótico: ${gameState.egoPolitico} (Bonus: +${egoBonus}%)`;
                markVpsDirty();
            },
            desc: "+2 Fervor Patriótico instantáneo."
        },
        podemos: {
            name: "Boost de Conciencia",
            cost: 200000,
            effect: function() {
                gameState.egoPolitico += 2;
                const egoBonus = Math.min(gameState.egoPolitico * 10, 50);
                document.getElementById('ego-display').innerText = `Conciencia de Clase: ${gameState.egoPolitico} (Bonus: +${egoBonus}%)`;
                markVpsDirty();
            },
            desc: "+2 Conciencia de Clase instantáneo."
        }
    },
    eu_funds: {
        psoe: {
            name: "Fondos UE Ilimitados",
            cost: 5000000,
            effect: function() {
                // BALANCE: +35% VPS (decae a +15% en 10 min)
                gameState.euFundsActive = true;
                gameState.euFundsStartTime = Date.now();
            },
            desc: "+35% VPS inicial, decae a +15% en 10 min."
        },
        pp: {
            name: "Fondos Europeos",
            cost: 5000000,
            effect: function() {
                gameState.euFundsActive = true;
                gameState.euFundsStartTime = Date.now();
            },
            desc: "+35% VPS inicial, decae a +15% en 10 min."
        },
        vox: {
            name: "Fondos de Soberanía",
            cost: 5000000,
            effect: function() {
                gameState.euFundsActive = true;
                gameState.euFundsStartTime = Date.now();
            },
            desc: "+35% VPS inicial, decae a +15% en 10 min."
        },
        podemos: {
            name: "Fondos de Cohesión Social",
            cost: 5000000,
            effect: function() {
                gameState.euFundsActive = true;
                gameState.euFundsStartTime = Date.now();
            },
            desc: "+35% VPS inicial, decae a +15% en 10 min."
        }
    },
    rival_absorb: {
        psoe: {
            name: "Absorber Rival",
            cost: 10000000,
            effect: function() {
                const robo = partidos.podemos.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.podemos.votos -= robo;
                partidos.podemos.growthRate *= 0.5;
            },
            desc: "25% votos Podemos, -50% su growth."
        },
        pp: {
            name: "Absorber Disidentes",
            cost: 10000000,
            effect: function() {
                const robo = partidos.vox.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.vox.votos -= robo;
                partidos.vox.growthRate *= 0.5;
            },
            desc: "25% votos VOX, -50% su growth."
        },
        vox: {
            name: "Purga de Tibios",
            cost: 10000000,
            effect: function() {
                const robo = partidos.pp.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.pp.votos -= robo;
                partidos.pp.growthRate *= 0.5;
            },
            desc: "25% votos PP, -50% su growth."
        },
        podemos: {
            name: "Unidad Popular",
            cost: 10000000,
            effect: function() {
                const robo = partidos.psoe.votos * 0.25;
                partidos[partidoElegido].votos += robo;
                partidos.psoe.votos -= robo;
                partidos.psoe.growthRate *= 0.5;
            },
            desc: "25% votos PSOE, -50% su growth."
        }
    },
    // Mejoras exclusivas VOX
    ley_seguridad: {
        vox: {
            name: "Ley de Seguridad Nacional",
            cost: 750000,
            effect: function() {
                partidos.psoe.growthRate *= 0.75;
                partidos.podemos.growthRate *= 0.75;
            },
            desc: "-25% crecimiento de PSOE y Podemos."
        }
    },
    frontera_sur: {
        vox: {
            name: "Frontera Sur Blindada",
            cost: 1500000,
            effect: function() {
                for (let key in gameState.buildings) { gameState.buildings[key].baseVps *= 1.15; }
            },
            desc: "+15% VPS de todos los edificios."
        }
    },
    // Mejoras exclusivas Podemos
    ley_eutanasia: {
        podemos: {
            name: "Ley de Eutanasia",
            cost: 750000,
            effect: function() {
                partidos.pp.growthRate *= 0.75;
                partidos.vox.growthRate *= 0.75;
            },
            desc: "-25% crecimiento de PP y VOX."
        }
    },
    feminismo_radical: {
        podemos: {
            name: "Feminismo de Estado",
            cost: 1500000,
            effect: function() {
                for (let key in gameState.buildings) { gameState.buildings[key].baseVps *= 1.15; }
            },
            desc: "+15% VPS de todos los edificios."
        }
    }
};

// Variable global que contendrá las mejoras del partido actual
let upgradesData = null;

// Obtener datos de mejoras para un partido específico
function getUpgradesData(partyKey) {
    partyKey = partyKey || partidoElegido || 'psoe';

    const result = {};
    for (let key in upgradesDataRaw) {
        const upgrade = upgradesDataRaw[key];
        // Usar la versión del partido, o la de PSOE si no existe
        if (upgrade[partyKey]) {
            result[key] = { ...upgrade[partyKey] };
        } else if (upgrade.psoe) {
            result[key] = { ...upgrade.psoe };
        }
    }
    return result;
}

// Inicializar upgradesData con el partido actual
function initUpgradesData(partyKey) {
    upgradesData = getUpgradesData(partyKey);
    return upgradesData;
}

// Para compatibilidad: inicializar con PSOE por defecto
(function() {
    if (upgradesData === null) {
        initUpgradesData('psoe');
    }
})();
