Landing imporvement

This commit is contained in:
Urtzi Alfaro
2025-11-08 12:02:18 +01:00
parent a1cd7958ed
commit 4678f96f8f
16 changed files with 475 additions and 393 deletions

View File

@@ -177,12 +177,36 @@ function ActionItemCard({
{/* Action Buttons */}
<div className="flex flex-wrap gap-2">
{(action.actions || []).map((button, index) => {
const buttonStyles = {
primary: 'bg-blue-600 hover:bg-blue-700 text-white',
secondary: 'bg-gray-200 hover:bg-gray-300 text-gray-800',
tertiary: 'bg-white hover:bg-gray-50 text-gray-700 border border-gray-300',
const buttonStyles: Record<string, React.CSSProperties> = {
primary: {
backgroundColor: 'var(--color-info-600)',
color: 'var(--text-inverse, #ffffff)',
},
secondary: {
backgroundColor: 'var(--bg-tertiary)',
color: 'var(--text-primary)',
},
tertiary: {
backgroundColor: 'var(--bg-primary)',
color: 'var(--text-primary)',
border: '1px solid var(--border-primary)',
},
};
const hoverStyles: Record<string, React.CSSProperties> = {
primary: {
backgroundColor: 'var(--color-info-700)',
},
secondary: {
backgroundColor: 'var(--bg-quaternary)',
},
tertiary: {
backgroundColor: 'var(--bg-secondary)',
},
};
const [isHovered, setIsHovered] = useState(false);
const handleClick = () => {
if (button.action === 'approve' && onApprove) {
onApprove(action.id);
@@ -193,11 +217,19 @@ function ActionItemCard({
}
};
const currentStyle = {
...buttonStyles[button.type],
...(isHovered ? hoverStyles[button.type] : {}),
};
return (
<button
key={index}
onClick={handleClick}
className={`${buttonStyles[button.type]} px-4 py-2 rounded-lg font-semibold text-sm transition-colors duration-200 flex items-center gap-2 min-h-[44px]`}
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
className="px-4 py-2 rounded-lg font-semibold text-sm transition-colors duration-200 flex items-center gap-2 min-h-[44px]"
style={currentStyle}
>
{button.action === 'approve' && <CheckCircle2 className="w-4 h-4" />}
{button.action === 'view_details' && <Eye className="w-4 h-4" />}

View File

@@ -67,7 +67,7 @@ function TimelineItemCard({
return (
<div
className="flex gap-4 p-4 rounded-lg border hover:shadow-md transition-shadow duration-200"
className="flex gap-4 p-4 md:p-5 rounded-lg border-2 hover:shadow-md transition-all duration-200"
style={{
backgroundColor: 'var(--bg-primary)',
borderColor: 'var(--border-primary)',

View File

@@ -160,38 +160,33 @@
},
"sustainability": {
"badge": "System Feature",
"title": "Help the Planet, Access Economic Aid",
"title": "Environmental Impact and Sustainability",
"un_sdg": {
"title": "Automatic UN SDG 12.3 Compliance",
"description": "Without doing anything extra, you comply with United Nations Sustainable Development Goal 12.3 (food waste reduction).",
"benefit": "You receive automatic certification → Credibility with customers"
},
"grants": {
"title": "Eligible for 5 Grant Programs:",
"pima": {
"title": "PIMA Adapta (MITECO)",
"amount": "Up to €50,000",
"description": "Circular economy projects. Your system = certified waste reduction"
"benefits": {
"title": "Sustainability Features:",
"impact_tracking": {
"title": "Environmental Impact Tracking",
"description": "Automatic measurement of CO₂, water, and food waste with detailed metrics"
},
"tourism": {
"title": "Tourism Sustainability Plans",
"amount": "Up to €30,000",
"description": "For bakeries in tourist areas"
"sdg_compliance": {
"title": "SDG 12.3 Compliance",
"description": "Automatic tracking of United Nations Sustainable Development Goals compliance"
},
"moves": {
"title": "MOVES Circular (Businesses)",
"amount": "Up to €20,000",
"description": "Sustainable digital transformation"
"reporting": {
"title": "Sustainability Reports",
"description": "Automatic generation of reports ready for audits and environmental certifications"
},
"regional": {
"title": "Regional Circular Economy Grants",
"amount": "Variable",
"description": "Depends on your autonomous region"
"certification": {
"title": "Certification Preparation",
"description": "Data and documentation ready for sustainability certification applications"
},
"tax": {
"title": "Tax Benefits",
"amount": "Up to 25% reduction",
"description": "Deduction for sustainability investment"
"data_export": {
"title": "Environmental Data Export",
"description": "Export your sustainability metrics in standard formats for external reports and audits"
}
},
"how_it_works": {

View File

@@ -137,36 +137,16 @@
"cta": "See All Features"
},
"pillar3": {
"title": "📊 Your Data, Your Grants",
"intro": "Your operational data is 100% yours. Never shared. Never sold. And it opens doors to European funding.",
"data_ownership": {
"title": "100% Data Ownership",
"item1": "Your sales, inventory, suppliers, recipes: all yours",
"item2": "GDPR compliance guaranteed (Spanish company)",
"item3": "Export your data whenever, wherever you want"
},
"sustainability": {
"title": "Certified Waste Reduction",
"intro": "Without doing anything extra, you comply with UN Sustainable Development Goal 12.3 (food waste reduction).",
"item1": "You receive automatic certification",
"item2": "Environmental impact metrics (kg CO₂, liters of water)",
"item3": "Reports ready for grant applications"
},
"grants": {
"title": "Eligible for €50,000 in European Grants",
"pima": "PIMA Adapta (MITECO) - Up to €50,000",
"tourism": "Tourism Sustainability Plans - Up to €30,000",
"moves": "MOVES Circular (Businesses) - Up to €20,000",
"regional": "Regional Circular Economy Grants - Variable",
"tax": "Tax Benefits - Up to 25% reduction",
"help": "We help you with the application process"
},
"impact": {
"co2": "reduced per month",
"co2_equivalent": "(equivalent to 3 trees planted)",
"water": "water saved per year",
"certification": "Certified UN SDG 12.3"
},
"title": "Your Data, Your Environmental Impact",
"intro": "100% of your data belongs to you. Measure your environmental impact automatically and generate sustainability reports that comply with international standards.",
"data_ownership_value": "100%",
"data_ownership": "Data ownership",
"co2_metric": "CO₂",
"co2": "Automatic measurement",
"sdg_value": "SDG 12.3",
"sdg": "Compliance tracking",
"sustainability_title": "Automated Sustainability Reports",
"sustainability_desc": "Generate reports that comply with international sustainability standards and food waste reduction",
"cta": "See All Features"
}
},

View File

@@ -50,41 +50,68 @@
"grants": {
"title": "Grant Program Eligibility",
"overall_readiness": "Overall Readiness",
"categories": {
"european_union": "European Union",
"spain": "Spain",
"regional": "Regional",
"international": "International"
},
"programs": {
"life_circular_economy": "LIFE Programme - Circular Economy",
"life_circular_economy_description": "EU LIFE Programme supporting circular economy initiatives for food waste reduction",
"life_circular_economy_funding": "€73M available for circular economy projects",
"life_circular_economy_deadline": "Application deadline: September 23, 2025",
"life_circular_economy_requirement": "Requires 15% waste reduction from baseline",
"life_circular_economy_link": "https://cinea.ec.europa.eu/life-calls-proposals-2025_en",
"horizon_europe_food_systems": "Horizon Europe - Cluster 6 Food Systems",
"horizon_europe_food_systems_description": "R&I funding for sustainable food systems, bioeconomy, and waste reduction",
"horizon_europe_food_systems_funding": "€3M - €12M per project",
"horizon_europe_food_systems_deadline": "Application deadline: February 18, 2026",
"horizon_europe_food_systems_requirement": "Requires 20% waste reduction from baseline",
"horizon_europe_food_systems_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_food_systems_category": "european_union",
"horizon_europe_cluster_6": "Horizon Europe - Cluster 6 Food Systems",
"horizon_europe_cluster_6_description": "R&I funding for sustainable food systems, bioeconomy, and waste reduction",
"horizon_europe_cluster_6_funding": "€880M+ annually for food systems projects",
"horizon_europe_cluster_6_deadline": "Rolling calls throughout 2025",
"horizon_europe_cluster_6_requirement": "Requires 20% waste reduction from baseline",
"horizon_europe_cluster_6_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_circular_sme": "Horizon Europe - Circular Transformation SME",
"horizon_europe_circular_sme_description": "Innovative solutions for sustainable and circular transformation of SMEs",
"horizon_europe_circular_sme_funding": "€10M total program",
"horizon_europe_circular_sme_deadline": "Application deadline: February 18, 2026",
"horizon_europe_circular_sme_requirement": "Requires 15% waste reduction from baseline",
"horizon_europe_circular_sme_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_circular_sme_category": "european_union",
"fedima_sustainability_grant": "Fedima Sustainability Grant",
"fedima_sustainability_grant_description": "Bi-annual grant for local bakery sustainability initiatives",
"fedima_sustainability_grant_funding": "€20,000 per award",
"fedima_sustainability_grant_deadline": "Next deadline: June 30, 2025",
"fedima_sustainability_grant_requirement": "Requires 15% waste reduction (bakery-specific)",
"fedima_sustainability_grant_link": "https://grant.fedima.org",
"eit_food_impact_2026": "EIT Food - Impact Funding 2026",
"eit_food_impact_2026_description": "Support for food systems innovation and waste reduction projects",
"eit_food_impact_2026_funding": "€50,000 - €1M per project",
"eit_food_impact_2026_deadline": "Rolling applications 2026",
"eit_food_impact_2026_requirement": "Requires 15% waste reduction from baseline",
"eit_food_impact_2026_link": "https://www.eitfood.eu/open-calls/impact-funding-framework",
"eit_food_impact_2026_category": "european_union",
"eit_food_retail": "EIT Food - Retail Innovation",
"eit_food_retail_description": "Support for retail food product launches addressing critical challenges",
"eit_food_retail_funding": "€15,000 - €45,000 per project",
"eit_food_retail_deadline": "Rolling applications",
"eit_food_retail_requirement": "Requires 20% waste reduction and retail innovation",
"eit_food_retail_link": "https://www.eitfood.eu/funding",
"eib_circular_economy": "EIB - Circular Economy Initiative",
"eib_circular_economy_description": "European Investment Bank loans for circular economy projects",
"eib_circular_economy_funding": "Up to €12.5M per project",
"eib_circular_economy_deadline": "Ongoing process 2026",
"eib_circular_economy_requirement": "Requires 10% waste reduction from baseline",
"eib_circular_economy_link": "https://www.eib.org/en/products/loans/sme-mid-caps/index.htm",
"eib_circular_economy_category": "european_union",
"circular_economy_perte": "Circular Economy PERTE",
"circular_economy_perte_description": "Strategic Project for Economic Recovery and Transformation - Circular Economy",
"circular_economy_perte_funding": "€150,000 - €10M per project",
"circular_economy_perte_deadline": "Rolling calls until 2026",
"circular_economy_perte_requirement": "Requires 15% waste reduction from baseline",
"circular_economy_perte_link": "https://www.miteco.gob.es",
"circular_economy_perte_category": "spain",
"planes_turismo_2026": "Tourism Sustainability Plans",
"planes_turismo_2026_description": "Support for sustainability in tourism destinations, including bakeries in tourist areas",
"planes_turismo_2026_funding": "Variable by region",
"planes_turismo_2026_deadline": "Until December 31, 2026",
"planes_turismo_2026_requirement": "Requires 10% waste reduction, location in tourism zone",
"planes_turismo_2026_link": "https://www.mintur.gob.es",
"planes_turismo_2026_category": "spain",
"un_sdg_certified": "UN SDG 12.3 Certification",
"un_sdg_certified_description": "Official certification for achieving SDG 12.3 targets",
"un_sdg_certified_funding": "Certification (not funding)",
"un_sdg_certified_deadline": "Ongoing certification process",
"un_sdg_certified_requirement": "Requires 50% waste reduction from baseline",
"un_sdg_certified_link": "https://sdgs.un.org/goals/goal12"
"un_sdg_certified_link": "https://sdgs.un.org/goals/goal12",
"un_sdg_certified_category": "international"
},
"confidence": {
"high": "High Confidence",
@@ -119,10 +146,12 @@
"export_error": "Failed to export report",
"types": {
"general": "General Sustainability Report",
"life_circular_economy": "LIFE Programme - Circular Economy Application",
"horizon_europe_cluster_6": "Horizon Europe Cluster 6 Application",
"fedima_sustainability_grant": "Fedima Sustainability Grant Application",
"eit_food_retail": "EIT Food Retail Innovation Application",
"horizon_europe_food_systems": "Horizon Europe - Food Systems Application",
"horizon_europe_circular_sme": "Horizon Europe - Circular Transformation SME Application",
"eit_food_impact_2026": "EIT Food - Impact Funding 2026 Application",
"eib_circular_economy": "EIB - Circular Economy Application",
"circular_economy_perte": "Circular Economy PERTE Application",
"planes_turismo_2026": "Tourism Sustainability Plans Application",
"un_sdg": "UN SDG 12.3 Certification Report"
}
}

View File

@@ -160,38 +160,33 @@
},
"sustainability": {
"badge": "Funcionalidad del Sistema",
"title": "Ayuda al Planeta, Accede a Ayudas Económicas",
"title": "Impacto Ambiental y Sostenibilidad",
"un_sdg": {
"title": "Cumplimiento Automático ODS 12.3 (ONU)",
"description": "Sin hacer nada extra, cumples con el Objetivo de Desarrollo Sostenible 12.3 de Naciones Unidas (reducción desperdicio alimentario).",
"benefit": "Recibes certificación automática → Credibilidad con clientes"
},
"grants": {
"title": "Elegible para 5 Programas de Ayudas:",
"pima": {
"title": "PIMA Adapta (MITECO)",
"amount": "Hasta €50,000",
"description": "Proyectos de economía circular. Tu sistema = reducción desperdicio certificada"
"benefits": {
"title": "Funcionalidades de Sostenibilidad:",
"impact_tracking": {
"title": "Seguimiento de Impacto Ambiental",
"description": "Medición automática de CO₂, agua y desperdicio alimentario con métricas detalladas"
},
"tourism": {
"title": "Planes de Sostenibilidad Turística",
"amount": "Hasta €30,000",
"description": "Para panaderías en zonas turísticas"
"sdg_compliance": {
"title": "Cumplimiento ODS 12.3",
"description": "Seguimiento automático del cumplimiento de los Objetivos de Desarrollo Sostenible de la ONU"
},
"moves": {
"title": "MOVES Circular (Empresas)",
"amount": "Hasta €20,000",
"description": "Transformación digital sostenible"
"reporting": {
"title": "Informes de Sostenibilidad",
"description": "Generación automática de informes listos para auditorías y certificaciones ambientales"
},
"regional": {
"title": "Ayudas Economía Circular Autonómicas",
"amount": "Variable",
"description": "Depende de tu comunidad autónoma"
"certification": {
"title": "Preparación para Certificaciones",
"description": "Datos y documentación listos para solicitudes de certificaciones de sostenibilidad"
},
"tax": {
"title": "Bonificaciones Fiscales",
"amount": "Hasta 25% reducción",
"description": "Deducción por inversión en sostenibilidad"
"data_export": {
"title": "Exportación de Datos Ambientales",
"description": "Exporta tus métricas de sostenibilidad en formatos estándar para reportes externos y auditorías"
}
},
"how_it_works": {

View File

@@ -137,36 +137,16 @@
"cta": "Ver Todas las Funcionalidades"
},
"pillar3": {
"title": "📊 Tus Datos, Tus Subvenciones",
"intro": "Tus datos operativos son 100% tuyos. Nunca compartidos. Nunca vendidos. Y además, te abren puertas a financiación europea.",
"data_ownership": {
"title": "100% Propiedad de Tus Datos",
"item1": "Tus ventas, inventario, proveedores, recetas: todo tuyo",
"item2": "Cumplimiento RGPD garantizado (empresa española)",
"item3": "Exporta tus datos cuando quieras, a donde quieras"
},
"sustainability": {
"title": "Reducción de Desperdicios Certificada",
"intro": "Sin hacer nada extra, cumples con el Objetivo de Desarrollo Sostenible 12.3 de la ONU (reducción desperdicio alimentario).",
"item1": "Recibes certificación automática",
"item2": "Métricas de impacto ambiental (kg CO₂, litros agua)",
"item3": "Reportes listos para solicitudes de ayudas"
},
"grants": {
"title": "Elegible para €50,000 en Ayudas Europeas",
"pima": "PIMA Adapta (MITECO) - Hasta €50,000",
"tourism": "Planes de Sostenibilidad Turística - Hasta €30,000",
"moves": "MOVES Circular (Empresas) - Hasta €20,000",
"regional": "Ayudas Economía Circular Autonómicas - Variable",
"tax": "Bonificaciones Fiscales - Hasta 25% reducción",
"help": "Te ayudamos con el proceso de solicitud"
},
"impact": {
"co2": "reducidos al mes",
"co2_equivalent": "(equivale a 3 árboles plantados)",
"water": "agua ahorrada al año",
"certification": "Certificado ODS 12.3 ONU"
},
"title": "Tus Datos, Tu Impacto Ambiental",
"intro": "100% de tus datos te pertenecen. Mide tu impacto ambiental automáticamente y genera informes de sostenibilidad que cumplen con los estándares internacionales.",
"data_ownership_value": "100%",
"data_ownership": "Propiedad de datos",
"co2_metric": "CO₂",
"co2": "Medición automática",
"sdg_value": "ODS 12.3",
"sdg": "Seguimiento de cumplimiento",
"sustainability_title": "Informes de Sostenibilidad Automatizados",
"sustainability_desc": "Genera informes que cumplen con los estándares internacionales de sostenibilidad y reducción de desperdicio alimentario",
"cta": "Ver Todas las Funcionalidades"
}
},

View File

@@ -50,41 +50,68 @@
"grants": {
"title": "Elegibilidad para Subvenciones",
"overall_readiness": "Preparación General",
"categories": {
"european_union": "Unión Europea",
"spain": "España",
"regional": "Regional",
"international": "Internacional"
},
"programs": {
"life_circular_economy": "Programa LIFE - Economía Circular",
"life_circular_economy_description": "Programa LIFE de la UE para iniciativas de economía circular y reducción de desperdicio alimentario",
"life_circular_economy_funding": "€73M disponibles para proyectos de economía circular",
"life_circular_economy_deadline": "Fecha límite: 23 de septiembre de 2025",
"life_circular_economy_requirement": "Requiere 15% de reducción de desperdicio desde línea base",
"life_circular_economy_link": "https://cinea.ec.europa.eu/life-calls-proposals-2025_en",
"horizon_europe_food_systems": "Horizonte Europa - Cluster 6 Sistemas Alimentarios",
"horizon_europe_food_systems_description": "Financiación I+D para sistemas alimentarios sostenibles, bioeconomía y reducción de desperdicio",
"horizon_europe_food_systems_funding": "€3M - €12M por proyecto",
"horizon_europe_food_systems_deadline": "Fecha límite: 18 de febrero de 2026",
"horizon_europe_food_systems_requirement": "Requiere 20% de reducción de desperdicio desde línea base",
"horizon_europe_food_systems_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_food_systems_category": "european_union",
"horizon_europe_cluster_6": "Horizonte Europa - Cluster 6 Sistemas Alimentarios",
"horizon_europe_cluster_6_description": "Financiación I+D para sistemas alimentarios sostenibles, bioeconomía y reducción de desperdicio",
"horizon_europe_cluster_6_funding": "€880M+ anuales para proyectos de sistemas alimentarios",
"horizon_europe_cluster_6_deadline": "Convocatorias continuas durante 2025",
"horizon_europe_cluster_6_requirement": "Requiere 20% de reducción de desperdicio desde línea base",
"horizon_europe_cluster_6_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_circular_sme": "Horizonte Europa - Transformación Circular PYME",
"horizon_europe_circular_sme_description": "Soluciones innovadoras para la transformación sostenible y circular de PYMEs",
"horizon_europe_circular_sme_funding": "€10M programa total",
"horizon_europe_circular_sme_deadline": "Fecha límite: 18 de febrero de 2026",
"horizon_europe_circular_sme_requirement": "Requiere 15% de reducción de desperdicio desde línea base",
"horizon_europe_circular_sme_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_circular_sme_category": "european_union",
"fedima_sustainability_grant": "Subvención de Sostenibilidad Fedima",
"fedima_sustainability_grant_description": "Subvención semestral para iniciativas locales de sostenibilidad en panaderías",
"fedima_sustainability_grant_funding": "€20.000 por proyecto",
"fedima_sustainability_grant_deadline": "Próxima fecha límite: 30 de junio de 2025",
"fedima_sustainability_grant_requirement": "Requiere 15% de reducción de desperdicio (específico para panaderías)",
"fedima_sustainability_grant_link": "https://grant.fedima.org",
"eit_food_impact_2026": "EIT Food - Financiación de Impacto 2026",
"eit_food_impact_2026_description": "Apoyo para proyectos de innovación en sistemas alimentarios y reducción de desperdicio",
"eit_food_impact_2026_funding": "€50.000 - €1M por proyecto",
"eit_food_impact_2026_deadline": "Solicitudes continuas 2026",
"eit_food_impact_2026_requirement": "Requiere 15% de reducción de desperdicio desde línea base",
"eit_food_impact_2026_link": "https://www.eitfood.eu/open-calls/impact-funding-framework",
"eit_food_impact_2026_category": "european_union",
"eit_food_retail": "EIT Food - Innovación en Retail",
"eit_food_retail_description": "Apoyo para lanzamientos de productos alimentarios en retail que aborden desafíos críticos",
"eit_food_retail_funding": "€15.000 - €45.000 por proyecto",
"eit_food_retail_deadline": "Solicitudes continuas",
"eit_food_retail_requirement": "Requiere 20% de reducción de desperdicio e innovación en retail",
"eit_food_retail_link": "https://www.eitfood.eu/funding",
"eib_circular_economy": "BEI - Iniciativa Economía Circular",
"eib_circular_economy_description": "Préstamos del Banco Europeo de Inversiones para proyectos de economía circular",
"eib_circular_economy_funding": "Hasta €12.5M por proyecto",
"eib_circular_economy_deadline": "Proceso continuo 2026",
"eib_circular_economy_requirement": "Requiere 10% de reducción de desperdicio desde línea base",
"eib_circular_economy_link": "https://www.eib.org/en/products/loans/sme-mid-caps/index.htm",
"eib_circular_economy_category": "european_union",
"circular_economy_perte": "PERTE Economía Circular",
"circular_economy_perte_description": "Proyecto Estratégico para la Recuperación y Transformación Económica - Economía Circular",
"circular_economy_perte_funding": "€150.000 - €10M por proyecto",
"circular_economy_perte_deadline": "Convocatorias continuas hasta 2026",
"circular_economy_perte_requirement": "Requiere 15% de reducción de desperdicio desde línea base",
"circular_economy_perte_link": "https://www.miteco.gob.es",
"circular_economy_perte_category": "spain",
"planes_turismo_2026": "Planes de Sostenibilidad Turística",
"planes_turismo_2026_description": "Apoyo para sostenibilidad en destinos turísticos, incluyendo panaderías en zonas turísticas",
"planes_turismo_2026_funding": "Variable según región",
"planes_turismo_2026_deadline": "Hasta 31 de diciembre de 2026",
"planes_turismo_2026_requirement": "Requiere 10% de reducción de desperdicio, ubicación en zona turística",
"planes_turismo_2026_link": "https://www.mintur.gob.es",
"planes_turismo_2026_category": "spain",
"un_sdg_certified": "Certificación ODS 12.3 de la ONU",
"un_sdg_certified_description": "Certificación oficial por alcanzar los objetivos del ODS 12.3",
"un_sdg_certified_funding": "Certificación (no financiación)",
"un_sdg_certified_deadline": "Proceso de certificación continuo",
"un_sdg_certified_requirement": "Requiere 50% de reducción de desperdicio desde línea base",
"un_sdg_certified_link": "https://sdgs.un.org/goals/goal12"
"un_sdg_certified_link": "https://sdgs.un.org/goals/goal12",
"un_sdg_certified_category": "international"
},
"confidence": {
"high": "Alta Confianza",
@@ -119,10 +146,12 @@
"export_error": "Error al exportar el informe",
"types": {
"general": "Informe General de Sostenibilidad",
"life_circular_economy": "Solicitud Programa LIFE - Economía Circular",
"horizon_europe_cluster_6": "Solicitud Horizonte Europa Cluster 6",
"fedima_sustainability_grant": "Solicitud Subvención Sostenibilidad Fedima",
"eit_food_retail": "Solicitud EIT Food Innovación en Retail",
"horizon_europe_food_systems": "Solicitud Horizonte Europa - Sistemas Alimentarios",
"horizon_europe_circular_sme": "Solicitud Horizonte Europa - Transformación Circular PYME",
"eit_food_impact_2026": "Solicitud EIT Food - Financiación de Impacto 2026",
"eib_circular_economy": "Solicitud BEI - Economía Circular",
"circular_economy_perte": "Solicitud PERTE Economía Circular",
"planes_turismo_2026": "Solicitud Planes de Sostenibilidad Turística",
"un_sdg": "Informe Certificación ODS 12.3 ONU"
}
}

View File

@@ -160,38 +160,33 @@
},
"sustainability": {
"badge": "Sistemaren Ezaugarria",
"title": "Planetari Lagundu, Laguntza Ekonomikoetara Sartu",
"title": "Ingurumen Inpaktua eta Iraunkortasuna",
"un_sdg": {
"title": "NBEren GIH 12.3 Betetzea Automatikoa",
"description": "Ezer gehigarri egin gabe, Nazio Batuen Garapen Iraunkorreko 12.3 Helburua betetzen duzu (elikagaien hondakinen murrizketa).",
"benefit": "Ziurtagiri automatikoa jasotzen duzu → Bezeroekin sinesgarritasuna"
},
"grants": {
"title": "5 Laguntza Programetarako Kaudimena:",
"pima": {
"title": "PIMA Adapta (MITECO)",
"amount": "€50.000 arte",
"description": "Ekonomia zirkularreko proiektuak. Zure sistema = hondakinen murrizketaren ziurtagiria"
"benefits": {
"title": "Iraunkortasun Ezaugarriak:",
"impact_tracking": {
"title": "Ingurumen Inpaktuaren Jarraipena",
"description": "CO₂, ur eta elikagai-hondakinen neurketa automatikoa metriken xehetasunekin"
},
"tourism": {
"title": "Turismo Iraunkortasuneko Planak",
"amount": "€30.000 arte",
"description": "Turismo eremuetako okindegientzat"
"sdg_compliance": {
"title": "GIH 12.3 Betetze",
"description": "Nazio Batuen Garapen Iraunkorreko Helburuen betetzearen jarraipena automatikoa"
},
"moves": {
"title": "MOVES Zirkularra (Enpresak)",
"amount": "€20.000 arte",
"description": "Transformazio digital iraunkorra"
"reporting": {
"title": "Iraunkortasun Txostenak",
"description": "Auditorietarako eta ingurumen ziurtagirietarako txostenen sorkuntza automatikoa"
},
"regional": {
"title": "Autonomi Erkidegoetako Ekonomia Zirkularreko Laguntzak",
"amount": "Aldakorra",
"description": "Zure autonomi erkidegoaren araberakoa"
"certification": {
"title": "Ziurtagirietarako Prestaketa",
"description": "Datuak eta dokumentazioa iraunkortasun ziurtagirietarako eskaerei prest"
},
"tax": {
"title": "Zerga Onak",
"amount": "%25 arte murrizketa",
"description": "Iraunkortasuneko inbertsioagatik kenkaria"
"data_export": {
"title": "Ingurumen Datuen Esportazioa",
"description": "Esportatu zure iraunkortasun-metrikak formatu estandarretan kanpoko txostenetarako eta auditorietarako"
}
},
"how_it_works": {

View File

@@ -137,36 +137,16 @@
"cta": "Ikusi Ezaugarri Guztiak"
},
"pillar3": {
"title": "📊 Zure Datuak, Zure Diru-laguntzak",
"intro": "Zure datu operatiboak 100% zureak dira. Inoiz partekatuak. Inoiz salduak. Eta gainera, Europako finantziaziora ateak irekitzen dizkizu.",
"data_ownership": {
"title": "Datuen %100eko Jabetza",
"item1": "Zure salmentak, inbentarioa, hornitzaileak, errezetak: guztiak zureak",
"item2": "RGPD betetzea bermatuta (Espainiako enpresa)",
"item3": "Esportatu zure datuak nahi duzunean, nahi duzun tokira"
},
"sustainability": {
"title": "Hondakinen Murrizketa Ziurtatua",
"intro": "Ezer gehigarri egin gabe, Nazio Batuen Garapen Iraunkorreko 12.3 Helburua betetzen duzu (elikagaien hondakinen murrizketa).",
"item1": "Ziurtagiri automatikoa jasotzen duzu",
"item2": "Ingurumen-inpaktuaren metrikak (kg CO₂, ur litroak)",
"item3": "Diru-laguntzen eskaerako txostenak prest"
},
"grants": {
"title": "€50,000ko Sarbidea Europako Laguntzetara",
"pima": "PIMA Adapta (MITECO) - €50,000 arte",
"tourism": "Turismo Iraunkortasuneko Planak - €30,000 arte",
"moves": "MOVES Zirkularra (Enpresak) - €20,000 arte",
"regional": "Autonomi Erkidegoetako Ekonomia Zirkularreko Laguntzak - Aldakorra",
"tax": "Zerga Onak - %25 arte murrizketa",
"help": "Eskaera prozesuan laguntzen dizugu"
},
"impact": {
"co2": "hilean murriztuta",
"co2_equivalent": "(3 zuhaitz landatzearen baliokidea)",
"water": "urtean ura aurreztuta",
"certification": "NBE GIH 12.3 Ziurtatua"
},
"title": "Zure Datuak, Zure Ingurumen Inpaktua",
"intro": "Zure datuen %100 zureak dira. Neurtu zure ingurumen-inpaktua automatikoki eta sortu nazioarteko estandarrak betetzen dituzten iraunkortasun-txostenak.",
"data_ownership_value": "100%",
"data_ownership": "Datuen jabetza",
"co2_metric": "CO₂",
"co2": "Neurketa automatikoa",
"sdg_value": "GIH 12.3",
"sdg": "Betetze-jarraipena",
"sustainability_title": "Iraunkortasun Txosten Automatizatuak",
"sustainability_desc": "Sortu nazioarteko iraunkortasun estandarrak eta elikagai-hondakinen murrizketarekin bat datozen txostenak",
"cta": "Ikusi Ezaugarri Guztiak"
}
},

View File

@@ -50,41 +50,68 @@
"grants": {
"title": "Diru-laguntzetarako Gaitasuna",
"overall_readiness": "Prestutasun Orokorra",
"categories": {
"european_union": "Europar Batasuna",
"spain": "Espainia",
"regional": "Eskualdekoa",
"international": "Nazioartekoa"
},
"programs": {
"life_circular_economy": "LIFE Programa - Ekonomia Zirkularra",
"life_circular_economy_description": "EBren LIFE Programa ekonomia zirkularreko ekimenetarako eta elikagai-hondakinen murrizketarako",
"life_circular_economy_funding": "€73M eskuragarri ekonomia zirkularreko proiektuetarako",
"life_circular_economy_deadline": "Azken eguna: 2025eko irailaren 23a",
"life_circular_economy_requirement": "%15eko hondakinen murrizketa behar da oinarri-lerrotik",
"life_circular_economy_link": "https://cinea.ec.europa.eu/life-calls-proposals-2025_en",
"horizon_europe_food_systems": "Horizonte Europa - 6. multzoa Elikagai Sistemak",
"horizon_europe_food_systems_description": "I+G finantzaketa elikagai sistema jasangarrietarako, bioekonomiako eta hondakinen murrizketarako",
"horizon_europe_food_systems_funding": "€3M - €12M proiektu bakoitzeko",
"horizon_europe_food_systems_deadline": "Azken eguna: 2026ko otsailaren 18a",
"horizon_europe_food_systems_requirement": "%20ko hondakinen murrizketa behar da oinarri-lerrotik",
"horizon_europe_food_systems_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_food_systems_category": "european_union",
"horizon_europe_cluster_6": "Horizonte Europa - 6. multzoa Elikagai Sistemak",
"horizon_europe_cluster_6_description": "I+G finantzaketa elikagai sistema jasangarrietarako, bioekonomiako eta hondakinen murrizketarako",
"horizon_europe_cluster_6_funding": "€880M+ urtero elikagai sistemen proiektuetarako",
"horizon_europe_cluster_6_deadline": "Deialdi jarraitua 2025ean",
"horizon_europe_cluster_6_requirement": "%20ko hondakinen murrizketa behar da oinarri-lerrotik",
"horizon_europe_cluster_6_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_circular_sme": "Horizonte Europa - ETE Eraldaketa Zirkularra",
"horizon_europe_circular_sme_description": "Irtenbide berritzaileak ETEen eraldaketa jasangarri eta zirkularrerako",
"horizon_europe_circular_sme_funding": "€10M programa osoa",
"horizon_europe_circular_sme_deadline": "Azken eguna: 2026ko otsailaren 18a",
"horizon_europe_circular_sme_requirement": "%15eko hondakinen murrizketa behar da oinarri-lerrotik",
"horizon_europe_circular_sme_link": "https://research-and-innovation.ec.europa.eu/funding/cluster-6",
"horizon_europe_circular_sme_category": "european_union",
"fedima_sustainability_grant": "Fedimaren Iraunkortasun Diru-laguntza",
"fedima_sustainability_grant_description": "Sei hilabeteko diru-laguntza okindegietako iraunkortasun ekimen lokaletarako",
"fedima_sustainability_grant_funding": "€20.000 proiektu bakoitzeko",
"fedima_sustainability_grant_deadline": "Hurrengo azken eguna: 2025eko ekainaren 30a",
"fedima_sustainability_grant_requirement": "%15eko hondakinen murrizketa behar da (okindegia-espezifikoa)",
"fedima_sustainability_grant_link": "https://grant.fedima.org",
"eit_food_impact_2026": "EIT Food - Inpaktu Finantzaketa 2026",
"eit_food_impact_2026_description": "Laguntza elikagai sistemen berrikuntza eta hondakinen murrizketa proiektuetarako",
"eit_food_impact_2026_funding": "€50.000 - €1M proiektu bakoitzeko",
"eit_food_impact_2026_deadline": "Eskaera jarraitua 2026an",
"eit_food_impact_2026_requirement": "%15eko hondakinen murrizketa behar da oinarri-lerrotik",
"eit_food_impact_2026_link": "https://www.eitfood.eu/open-calls/impact-funding-framework",
"eit_food_impact_2026_category": "european_union",
"eit_food_retail": "EIT Food - Salmenta Berrikuntza",
"eit_food_retail_description": "Laguntza elikagai-produktuen salmentetarako erronka kritikoak gainditzeko",
"eit_food_retail_funding": "€15.000 - €45.000 proiektu bakoitzeko",
"eit_food_retail_deadline": "Eskaera jarraitua",
"eit_food_retail_requirement": "%20ko hondakinen murrizketa eta salmentako berrikuntza behar da",
"eit_food_retail_link": "https://www.eitfood.eu/funding",
"eib_circular_economy": "BEI - Ekonomia Zirkularraren Ekimena",
"eib_circular_economy_description": "Europako Inbertsio Bankuko maileguak ekonomia zirkularreko proiektuetarako",
"eib_circular_economy_funding": "€12.5M arte proiektu bakoitzeko",
"eib_circular_economy_deadline": "Prozesu jarraitua 2026an",
"eib_circular_economy_requirement": "%10eko hondakinen murrizketa behar da oinarri-lerrotik",
"eib_circular_economy_link": "https://www.eib.org/en/products/loans/sme-mid-caps/index.htm",
"eib_circular_economy_category": "european_union",
"circular_economy_perte": "Ekonomia Zirkularraren PERTE",
"circular_economy_perte_description": "Berreskuratze eta Eraldaketa Ekonomikorako Proiektu Estrategikoa - Ekonomia Zirkularra",
"circular_economy_perte_funding": "€150.000 - €10M proiektu bakoitzeko",
"circular_economy_perte_deadline": "Deialdi jarraitua 2026ra arte",
"circular_economy_perte_requirement": "%15eko hondakinen murrizketa behar da oinarri-lerrotik",
"circular_economy_perte_link": "https://www.miteco.gob.es",
"circular_economy_perte_category": "spain",
"planes_turismo_2026": "Turismo Iraunkortasun Planak",
"planes_turismo_2026_description": "Turismo destinoetako iraunkortasunerako laguntza, turismo-eremuetako okindegiak barne",
"planes_turismo_2026_funding": "Aldakorra eskualdeka",
"planes_turismo_2026_deadline": "2026ko abenduaren 31ra arte",
"planes_turismo_2026_requirement": "%10eko hondakinen murrizketa, turismo-eremuan kokapena",
"planes_turismo_2026_link": "https://www.mintur.gob.es",
"planes_turismo_2026_category": "spain",
"un_sdg_certified": "NBEren GIH 12.3 Ziurtagiria",
"un_sdg_certified_description": "Ziurtagiri ofiziala GIH 12.3 helburuak lortzeagatik",
"un_sdg_certified_funding": "Ziurtagiria (ez finantzaketa)",
"un_sdg_certified_deadline": "Ziurtagiri-prozesua etengabea",
"un_sdg_certified_requirement": "%50eko hondakinen murrizketa behar da oinarri-lerrotik",
"un_sdg_certified_link": "https://sdgs.un.org/goals/goal12"
"un_sdg_certified_link": "https://sdgs.un.org/goals/goal12",
"un_sdg_certified_category": "international"
},
"confidence": {
"high": "Konfiantza Handia",
@@ -119,10 +146,12 @@
"export_error": "Errorea txostena esportatzean",
"types": {
"general": "Iraunkortasun Txosten Orokorra",
"life_circular_economy": "LIFE Programa Eskaera - Ekonomia Zirkularra",
"horizon_europe_cluster_6": "Horizonte Europa 6. multzoa Eskaera",
"fedima_sustainability_grant": "Fedima Iraunkortasun Diru-laguntza Eskaera",
"eit_food_retail": "EIT Food Salmenta Berrikuntza Eskaera",
"horizon_europe_food_systems": "Horizonte Europa - Elikagai Sistemak Eskaera",
"horizon_europe_circular_sme": "Horizonte Europa - ETE Eraldaketa Zirkularra Eskaera",
"eit_food_impact_2026": "EIT Food - Inpaktu Finantzaketa 2026 Eskaera",
"eib_circular_economy": "BEI - Ekonomia Zirkularra Eskaera",
"circular_economy_perte": "Ekonomia Zirkularraren PERTE Eskaera",
"planes_turismo_2026": "Turismo Iraunkortasun Planak Eskaera",
"un_sdg": "NBE GIH 12.3 Ziurtagiri Txostena"
}
}

View File

@@ -28,7 +28,9 @@ import {
Target,
TreeDeciduous,
Droplets,
Award
Award,
Database,
FileText
} from 'lucide-react';
const FeaturesPage: React.FC = () => {
@@ -648,7 +650,7 @@ const FeaturesPage: React.FC = () => {
<span>{t('features:sustainability.badge', 'Funcionalidad del Sistema')}</span>
</div>
<h2 className="text-3xl lg:text-4xl font-extrabold text-[var(--text-primary)] mb-4">
{t('features:sustainability.title', 'Ayuda al Planeta, Accede a Ayudas Económicas')}
{t('features:sustainability.title', 'Impacto Ambiental y Sostenibilidad')}
</h2>
</div>
@@ -676,26 +678,23 @@ const FeaturesPage: React.FC = () => {
</div>
</div>
{/* Grant Programs */}
{/* Sustainability Benefits */}
<div className="max-w-6xl mx-auto mb-12">
<h3 className="text-2xl font-bold text-[var(--text-primary)] mb-6 text-center">
{t('features:sustainability.grants.title', 'Elegible para 5 Programas de Ayudas:')}
{t('features:sustainability.benefits.title', 'Funcionalidades de Sostenibilidad:')}
</h3>
<div className="grid md:grid-cols-2 gap-6">
<div className="bg-[var(--bg-secondary)] rounded-xl p-6 border border-[var(--border-primary)]">
<div className="flex items-start gap-4">
<div className="w-10 h-10 bg-[var(--color-primary)]/10 rounded-lg flex items-center justify-center flex-shrink-0">
<Euro className="w-5 h-5 text-[var(--color-primary)]" />
<TreeDeciduous className="w-5 h-5 text-[var(--color-primary)]" />
</div>
<div>
<h4 className="font-bold text-[var(--text-primary)] mb-2">
{t('features:sustainability.grants.pima.title', 'PIMA Adapta (MITECO)')}
{t('features:sustainability.benefits.impact_tracking.title', 'Seguimiento de Impacto Ambiental')}
</h4>
<p className="text-sm text-[var(--text-secondary)] mb-2">
{t('features:sustainability.grants.pima.amount', 'Hasta €50,000')}
</p>
<p className="text-sm text-[var(--text-secondary)]">
{t('features:sustainability.grants.pima.description', 'Proyectos de economía circular. Tu sistema = reducción desperdicio certificada')}
{t('features:sustainability.benefits.impact_tracking.description', 'Medición automática de CO₂, agua y desperdicio alimentario con métricas detalladas')}
</p>
</div>
</div>
@@ -704,17 +703,14 @@ const FeaturesPage: React.FC = () => {
<div className="bg-[var(--bg-secondary)] rounded-xl p-6 border border-[var(--border-primary)]">
<div className="flex items-start gap-4">
<div className="w-10 h-10 bg-[var(--color-primary)]/10 rounded-lg flex items-center justify-center flex-shrink-0">
<Euro className="w-5 h-5 text-[var(--color-primary)]" />
<Globe className="w-5 h-5 text-[var(--color-primary)]" />
</div>
<div>
<h4 className="font-bold text-[var(--text-primary)] mb-2">
{t('features:sustainability.grants.tourism.title', 'Planes de Sostenibilidad Turística')}
{t('features:sustainability.benefits.sdg_compliance.title', 'Cumplimiento ODS 12.3')}
</h4>
<p className="text-sm text-[var(--text-secondary)] mb-2">
{t('features:sustainability.grants.tourism.amount', 'Hasta €30,000')}
</p>
<p className="text-sm text-[var(--text-secondary)]">
{t('features:sustainability.grants.tourism.description', 'Para panaderías en zonas turísticas')}
{t('features:sustainability.benefits.sdg_compliance.description', 'Seguimiento automático del cumplimiento de los Objetivos de Desarrollo Sostenible de la ONU')}
</p>
</div>
</div>
@@ -723,17 +719,14 @@ const FeaturesPage: React.FC = () => {
<div className="bg-[var(--bg-secondary)] rounded-xl p-6 border border-[var(--border-primary)]">
<div className="flex items-start gap-4">
<div className="w-10 h-10 bg-[var(--color-primary)]/10 rounded-lg flex items-center justify-center flex-shrink-0">
<Euro className="w-5 h-5 text-[var(--color-primary)]" />
<FileText className="w-5 h-5 text-[var(--color-primary)]" />
</div>
<div>
<h4 className="font-bold text-[var(--text-primary)] mb-2">
{t('features:sustainability.grants.moves.title', 'MOVES Circular (Empresas)')}
{t('features:sustainability.benefits.reporting.title', 'Informes de Sostenibilidad')}
</h4>
<p className="text-sm text-[var(--text-secondary)] mb-2">
{t('features:sustainability.grants.moves.amount', 'Hasta €20,000')}
</p>
<p className="text-sm text-[var(--text-secondary)]">
{t('features:sustainability.grants.moves.description', 'Transformación digital sostenible')}
{t('features:sustainability.benefits.reporting.description', 'Generación automática de informes listos para auditorías y certificaciones ambientales')}
</p>
</div>
</div>
@@ -742,17 +735,14 @@ const FeaturesPage: React.FC = () => {
<div className="bg-[var(--bg-secondary)] rounded-xl p-6 border border-[var(--border-primary)]">
<div className="flex items-start gap-4">
<div className="w-10 h-10 bg-[var(--color-primary)]/10 rounded-lg flex items-center justify-center flex-shrink-0">
<Euro className="w-5 h-5 text-[var(--color-primary)]" />
<Award className="w-5 h-5 text-[var(--color-primary)]" />
</div>
<div>
<h4 className="font-bold text-[var(--text-primary)] mb-2">
{t('features:sustainability.grants.regional.title', 'Ayudas Economía Circular Autonómicas')}
{t('features:sustainability.benefits.certification.title', 'Preparación para Certificaciones')}
</h4>
<p className="text-sm text-[var(--text-secondary)] mb-2">
{t('features:sustainability.grants.regional.amount', 'Variable')}
</p>
<p className="text-sm text-[var(--text-secondary)]">
{t('features:sustainability.grants.regional.description', 'Depende de tu comunidad autónoma')}
{t('features:sustainability.benefits.certification.description', 'Datos y documentación listos para solicitudes de certificaciones de sostenibilidad')}
</p>
</div>
</div>
@@ -761,17 +751,14 @@ const FeaturesPage: React.FC = () => {
<div className="md:col-span-2 bg-gradient-to-r from-[var(--color-primary)]/10 to-green-500/10 rounded-xl p-6 border-2 border-[var(--color-primary)]">
<div className="flex items-start gap-4">
<div className="w-10 h-10 bg-[var(--color-primary)] rounded-lg flex items-center justify-center flex-shrink-0">
<Award className="w-5 h-5 text-white" />
<Database className="w-5 h-5 text-white" />
</div>
<div>
<h4 className="font-bold text-[var(--text-primary)] mb-2">
{t('features:sustainability.grants.tax.title', 'Bonificaciones Fiscales')}
{t('features:sustainability.benefits.data_export.title', 'Exportación de Datos Ambientales')}
</h4>
<p className="text-sm text-[var(--text-secondary)] mb-2">
{t('features:sustainability.grants.tax.amount', 'Hasta 25% reducción')}
</p>
<p className="text-sm text-[var(--text-secondary)]">
{t('features:sustainability.grants.tax.description', 'Deducción por inversión en sostenibilidad')}
{t('features:sustainability.benefits.data_export.description', 'Exporta tus métricas de sostenibilidad en formatos estándar para reportes externos y auditorías')}
</p>
</div>
</div>

View File

@@ -342,7 +342,7 @@ const LandingPage: React.FC = () => {
</div>
</div>
{/* Pilar 3: Tus Datos, Tus Subvenciones */}
{/* Pilar 3: Tus Datos, Tu Impacto Ambiental */}
<div className="bg-[var(--bg-primary)] rounded-2xl p-8 lg:p-12 border-2 border-green-600 shadow-xl">
<div className="flex items-start gap-6">
<div className="w-16 h-16 bg-green-600 rounded-2xl flex items-center justify-center flex-shrink-0">
@@ -350,39 +350,45 @@ const LandingPage: React.FC = () => {
</div>
<div className="flex-1">
<h3 className="text-2xl lg:text-3xl font-bold text-[var(--text-primary)] mb-4">
{t('landing:pillar3.title', '🌱 Tus Datos, Tus Subvenciones')}
{t('landing:pillar3.title', 'Tus Datos, Tu Impacto Ambiental')}
</h3>
<p className="text-lg text-[var(--text-secondary)] mb-6">
{t('landing:pillar3.intro', '100% de tus datos te pertenecen. Cumples ODS 12.3 de la ONU automáticamente, lo que te hace elegible para subvenciones de sostenibilidad.')}
{t('landing:pillar3.intro', '100% de tus datos te pertenecen. Mide tu impacto ambiental automáticamente y genera informes de sostenibilidad que cumplen con los estándares internacionales.')}
</p>
<div className="grid md:grid-cols-3 gap-4 mb-6">
<div className="bg-[var(--bg-secondary)] rounded-lg p-4 text-center">
<div className="text-3xl font-bold text-green-600 mb-2">500-2,000</div>
<div className="text-3xl font-bold text-green-600 mb-2">
{t('landing:pillar3.data_ownership_value', '100%')}
</div>
<p className="text-sm text-[var(--text-secondary)]">
{t('landing:pillar3.savings', 'Ahorro mensual')}
{t('landing:pillar3.data_ownership', 'Propiedad de datos')}
</p>
</div>
<div className="bg-[var(--bg-secondary)] rounded-lg p-4 text-center">
<div className="text-3xl font-bold text-blue-600 mb-2">85kg CO</div>
<div className="text-3xl font-bold text-blue-600 mb-2">
{t('landing:pillar3.co2_metric', 'CO₂')}
</div>
<p className="text-sm text-[var(--text-secondary)]">
{t('landing:pillar3.co2', 'Reducidos al mes')}
{t('landing:pillar3.co2', 'Medición automática')}
</p>
</div>
<div className="bg-[var(--bg-secondary)] rounded-lg p-4 text-center">
<div className="text-3xl font-bold text-amber-600 mb-2">5</div>
<div className="text-3xl font-bold text-amber-600 mb-2">
{t('landing:pillar3.sdg_value', 'ODS 12.3')}
</div>
<p className="text-sm text-[var(--text-secondary)]">
{t('landing:pillar3.grants', 'Programas de ayudas')}
{t('landing:pillar3.sdg', 'Seguimiento de cumplimiento')}
</p>
</div>
</div>
<div className="bg-gradient-to-r from-green-50 to-emerald-50 dark:from-green-900/20 dark:to-emerald-900/20 rounded-lg p-4 border-l-4 border-green-600">
<p className="font-bold text-[var(--text-primary)] mb-2">
{t('landing:pillar3.grants_title', '💶 Elegible para hasta €50,000 en subvenciones')}
{t('landing:pillar3.sustainability_title', 'Informes de Sostenibilidad Automatizados')}
</p>
<p className="text-sm text-[var(--text-secondary)]">
{t('landing:pillar3.grants_desc', 'PIMA Adapta, Planes Turismo, MOVES Circular, y más')}
{t('landing:pillar3.sustainability_desc', 'Genera informes que cumplen con los estándares internacionales de sostenibilidad y reducción de desperdicio alimentario')}
</p>
</div>
</div>

View File

@@ -52,50 +52,50 @@
--color-success-light: #4ade80;
--color-success-dark: #16a34a;
/* Warning Colors */
--color-warning-50: #fffbeb;
--color-warning-100: #fef3c7;
--color-warning-200: #fde68a;
--color-warning-300: #fcd34d;
--color-warning-400: #fbbf24;
/* Warning Colors - Inverted scale for dark mode */
--color-warning-50: #422006;
--color-warning-100: #78350f;
--color-warning-200: #9a3412;
--color-warning-300: #c2410c;
--color-warning-400: #ea580c;
--color-warning-500: #f59e0b;
--color-warning-600: #ea580c;
--color-warning-700: #c2410c;
--color-warning-800: #9a3412;
--color-warning-900: #7c2d12;
--color-warning-600: #fbbf24;
--color-warning-700: #fcd34d;
--color-warning-800: #fde68a;
--color-warning-900: #fef3c7;
--color-warning: #fb923c; /* Brighter for dark theme */
--color-warning-light: #fdba74;
--color-warning-dark: #ea580c;
/* Error Colors */
--color-error-50: #fef2f2;
--color-error-100: #fee2e2;
--color-error-200: #fecaca;
--color-error-300: #fca5a5;
--color-error-400: #f87171;
/* Error Colors - Inverted scale for dark mode */
--color-error-50: #450a0a;
--color-error-100: #7f1d1d;
--color-error-200: #991b1b;
--color-error-300: #b91c1c;
--color-error-400: #dc2626;
--color-error-500: #ef4444;
--color-error-600: #dc2626;
--color-error-700: #b91c1c;
--color-error-800: #991b1b;
--color-error-900: #7f1d1d;
--color-error-600: #f87171;
--color-error-700: #fca5a5;
--color-error-800: #fecaca;
--color-error-900: #fee2e2;
--color-error: #ef4444; /* Brighter for dark theme */
--color-error-light: #f87171;
--color-error-dark: #dc2626;
/* Info Colors */
--color-info-50: #eff6ff;
--color-info-100: #dbeafe;
--color-info-200: #bfdbfe;
--color-info-300: #93c5fd;
--color-info-400: #60a5fa;
--color-info-500: #3b82f6;
--color-info-600: #0284c7;
--color-info-700: #0369a1;
--color-info-800: #075985;
--color-info-900: #0c4a6e;
--color-info: #0ea5e9; /* Brighter for dark theme */
--color-info-light: #0ea5e9;
--color-info-dark: #0369a1;
/* Info Colors - Adjusted for dark mode */
--color-info-50: #0c4a6e;
--color-info-100: #075985;
--color-info-200: #0369a1;
--color-info-300: #0284c7;
--color-info-400: #0ea5e9;
--color-info-500: #38bdf8;
--color-info-600: #38bdf8;
--color-info-700: #60a5fa;
--color-info-800: #93c5fd;
--color-info-900: #bfdbfe;
--color-info: #38bdf8; /* Brighter cyan for dark theme */
--color-info-light: #60a5fa;
--color-info-dark: #0ea5e9;
/* === THEME-SPECIFIC COLORS === */
@@ -116,10 +116,10 @@
--text-muted: #64748b;
--text-disabled: #475569;
/* Border Colors */
--border-primary: #334155;
--border-secondary: #475569;
--border-tertiary: #64748b;
/* Border Colors - Enhanced visibility for dark mode */
--border-primary: #475569;
--border-secondary: #64748b;
--border-tertiary: #94a3b8;
--border-focus: #f59e0b;
--border-error: #ef4444;
--border-success: #22c55e;

View File

@@ -734,44 +734,65 @@ class SustainabilityService:
def _assess_grant_readiness(self, sdg_compliance: Dict[str, Any]) -> Dict[str, Any]:
"""
Assess readiness for EU grant programs accessible to Spanish bakeries and retail.
Based on 2025 research and Spain's Law 1/2025 on food waste prevention.
Based on 2026 verified research. Updated Dec 2025.
"""
reduction = sdg_compliance['sdg_12_3']['reduction_achieved']
grants = {
'life_circular_economy': {
'eligible': reduction >= 15,
'confidence': 'high' if reduction >= 25 else 'medium' if reduction >= 15 else 'low',
'requirements_met': reduction >= 15,
'funding_eur': 73_000_000, # €73M available for circular economy
'deadline': '2025-09-23',
'program_type': 'grant'
},
'horizon_europe_cluster_6': {
'horizon_europe_food_systems': {
'eligible': reduction >= 20,
'confidence': 'high' if reduction >= 35 else 'medium' if reduction >= 20 else 'low',
'requirements_met': reduction >= 20,
'funding_eur': 880_000_000, # €880M+ annually for food systems
'deadline': 'rolling_2025',
'program_type': 'grant'
'funding_eur': 12_000_000, # €3-12M per project
'deadline': '2026-02-18',
'program_type': 'grant',
'category': 'European Union'
},
'fedima_sustainability_grant': {
'horizon_europe_circular_sme': {
'eligible': reduction >= 15,
'confidence': 'high' if reduction >= 20 else 'medium' if reduction >= 15 else 'low',
'confidence': 'high' if reduction >= 25 else 'medium' if reduction >= 15 else 'low',
'requirements_met': reduction >= 15,
'funding_eur': 20_000, # €20k bi-annual
'deadline': '2025-06-30',
'funding_eur': 10_000_000, # €10M total program
'deadline': '2026-02-18',
'program_type': 'grant',
'sector_specific': 'bakery'
'category': 'European Union'
},
'eit_food_retail': {
'eligible': reduction >= 20,
'confidence': 'high' if reduction >= 30 else 'medium' if reduction >= 20 else 'low',
'requirements_met': reduction >= 20,
'funding_eur': 45_000, # €15-45k range
'deadline': 'rolling',
'eit_food_impact_2026': {
'eligible': reduction >= 15,
'confidence': 'high' if reduction >= 25 else 'medium' if reduction >= 15 else 'low',
'requirements_met': reduction >= 15,
'funding_eur': 1_000_000, # €50K-1M range
'deadline': 'rolling_2026',
'program_type': 'grant',
'sector_specific': 'retail'
'category': 'European Union'
},
'eib_circular_economy': {
'eligible': reduction >= 10,
'confidence': 'high' if reduction >= 20 else 'medium' if reduction >= 10 else 'low',
'requirements_met': reduction >= 10,
'funding_eur': 12_500_000, # Up to €12.5M loans
'deadline': 'ongoing_2026',
'program_type': 'loan',
'category': 'European Union'
},
'circular_economy_perte': {
'eligible': reduction >= 15,
'confidence': 'high' if reduction >= 25 else 'medium' if reduction >= 15 else 'low',
'requirements_met': reduction >= 15,
'funding_eur': 10_000_000, # €150K-10M range
'deadline': 'rolling_until_2026',
'program_type': 'grant',
'category': 'Spain'
},
'planes_turismo_2026': {
'eligible': reduction >= 10,
'confidence': 'medium',
'requirements_met': reduction >= 10,
'funding_eur': 500_000, # Variable by region
'deadline': '2026-12-31',
'program_type': 'grant',
'category': 'Spain',
'sector_specific': 'tourism'
},
'un_sdg_certified': {
'eligible': reduction >= 50,
@@ -779,7 +800,8 @@ class SustainabilityService:
'requirements_met': reduction >= 50,
'funding_eur': 0, # Certification, not funding
'deadline': 'ongoing',
'program_type': 'certification'
'program_type': 'certification',
'category': 'International'
}
}

View File

@@ -189,30 +189,46 @@ async def generate_orchestration_for_tenant(
runs_created = 0
steps_created = 0
# Special case: Create at least 1 recent completed run for "today" (for dashboard visibility)
# This ensures the dashboard "Listo Para Planificar Tu Día" shows data
today_run_created = False
for i in range(total_runs):
# Determine temporal distribution
rand_temporal = random.random()
cumulative = 0
temporal_category = None
for category, details in orch_config["temporal_distribution"].items():
cumulative += details["percentage"]
if rand_temporal <= cumulative:
temporal_category = details
break
if not temporal_category:
# For the first run, create it for today with completed status
if i == 0 and not today_run_created:
temporal_category = orch_config["temporal_distribution"]["completed"]
# Use current time instead of BASE_REFERENCE_DATE
now = datetime.now(timezone.utc)
# Set offset to create run that started yesterday and completed today
offset_days = 0 # Today
run_date = now.date()
today_run_created = True
# Force status to completed for dashboard visibility
status = "completed"
else:
# Determine temporal distribution
rand_temporal = random.random()
cumulative = 0
temporal_category = None
# Calculate run date
offset_days = random.randint(
temporal_category["offset_days_min"],
temporal_category["offset_days_max"]
)
run_date = calculate_date_from_offset(offset_days)
for category, details in orch_config["temporal_distribution"].items():
cumulative += details["percentage"]
if rand_temporal <= cumulative:
temporal_category = details
break
# Select status
status = random.choice(temporal_category["statuses"])
if not temporal_category:
temporal_category = orch_config["temporal_distribution"]["completed"]
# Calculate run date
offset_days = random.randint(
temporal_category["offset_days_min"],
temporal_category["offset_days_max"]
)
run_date = calculate_date_from_offset(offset_days)
# Select status
status = random.choice(temporal_category["statuses"])
# Select run type
run_type_choice = weighted_choice(orch_config["run_types"])
@@ -232,19 +248,26 @@ async def generate_orchestration_for_tenant(
run_number = generate_run_number(tenant_id, i + 1, run_type)
# Calculate timing based on status
started_at = calculate_datetime_from_offset(offset_days - 1)
completed_at = None
duration_seconds = None
# For today's run (i==0), use current datetime instead of BASE_REFERENCE_DATE
if i == 0 and today_run_created:
now = datetime.now(timezone.utc)
started_at = now - timedelta(hours=2) # Started 2 hours ago
completed_at = now - timedelta(minutes=30) # Completed 30 minutes ago
duration_seconds = int((completed_at - started_at).total_seconds())
else:
started_at = calculate_datetime_from_offset(offset_days - 1)
completed_at = None
duration_seconds = None
if status in ["completed", "partial_success"]:
completed_at = calculate_datetime_from_offset(offset_days)
duration_seconds = int((completed_at - started_at).total_seconds())
elif status == "failed":
completed_at = calculate_datetime_from_offset(offset_days - 0.5)
duration_seconds = int((completed_at - started_at).total_seconds())
elif status == "cancelled":
completed_at = calculate_datetime_from_offset(offset_days - 0.2)
duration_seconds = int((completed_at - started_at).total_seconds())
if status in ["completed", "partial_success"]:
completed_at = calculate_datetime_from_offset(offset_days)
duration_seconds = int((completed_at - started_at).total_seconds())
elif status == "failed":
completed_at = calculate_datetime_from_offset(offset_days - 0.5)
duration_seconds = int((completed_at - started_at).total_seconds())
elif status == "cancelled":
completed_at = calculate_datetime_from_offset(offset_days - 0.2)
duration_seconds = int((completed_at - started_at).total_seconds())
# Generate step timing
forecasting_started_at = started_at