`).join('');
if (recommendations.length === 0) {
elements.recommendations.innerHTML = `
Your work-life balance appears to be excellent! Keep prioritizing these healthy habits.
`; } const chartData = { datasets: [{ data: [score, 100 - score], backgroundColor: [color, '#e5e7eb'], borderWidth: 0, circumference: 180, rotation: 270 }] }; if (scoreChart) { scoreChart.data = chartData; scoreChart.update(); } else { scoreChart = new Chart(elements.scoreGauge, { type: 'doughnut', data: chartData, options: { responsive: true, cutout: '80%', plugins: { tooltip: { enabled: false }, legend: { enabled: false } } } }); } }; // --- PDF DOWNLOAD --- const downloadPDF = () => { const { jsPDF } = window.jspdf; html2canvas(elements.pdfArea, { scale: 2, useCORS: true }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = pdf.internal.pageSize.getHeight(); const ratio = canvas.width / canvas.height; let imgWidth = pdfWidth - 20; let imgHeight = imgWidth / ratio; if (imgHeight > pdfHeight - 20) { imgHeight = pdfHeight - 20; imgWidth = imgHeight * ratio; } const x = (pdfWidth - imgWidth) / 2; pdf.addImage(imgData, 'PNG', x, 10, imgWidth, imgHeight); pdf.save('Work-Life-Balance-Report.pdf'); }).catch(err => { console.error("Error generating PDF:", err); alert("Could not generate PDF. Please try again."); }); }; elements.pdfBtn.addEventListener('click', downloadPDF); // --- RUN ON LOAD --- buildForm(); });