Recommended Filtration Method
${filtrationRec.name}
${filtrationRec.desc}
Personalized Hydration Tip
${tip}
Important Disclaimer
This guide provides general recommendations and is not medical advice. Individual hydration needs can vary. Consult a healthcare professional for personalized health advice.
`;
elements.planResultContainer.innerHTML = planHTML;
};
const downloadPDF = () => {
if (typeof window.jspdf === 'undefined') {
alert('Could not generate PDF. The required library is missing.');
return;
}
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
const { intakeGoal, filtrationRec, tip, inputs } = planData;
const colors = { primary: '#0e7490', secondary: '#06b6d4', textPrimary: '#1f2937', textSecondary: '#6b7280' };
doc.setFillColor(colors.primary);
doc.rect(0, 0, 210, 28, 'F');
doc.setFont('helvetica', 'bold');
doc.setFontSize(20);
doc.setTextColor('#FFFFFF');
doc.text('My Hydration & Purity Plan', 105, 18, { align: 'center' });
let yPos = 40;
doc.setFontSize(16);
doc.setFont('helvetica', 'bold');
doc.setTextColor(colors.primary);
doc.text('Your Daily Hydration Target', 105, yPos, { align: 'center' });
yPos += 12;
doc.setFontSize(36);
doc.text(`${intakeGoal.toFixed(1)} Liters / day`, 105, yPos, { align: 'center' });
yPos += 10;
doc.setFontSize(10);
doc.setTextColor(colors.textSecondary);
doc.text(`(Based on a ${inputs.activity.replace('_', ' ')} activity level)`, 105, yPos, { align: 'center' });
yPos += 15;
doc.setDrawColor(colors.secondary);
doc.line(14, yPos, 196, yPos);
yPos += 15;
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.setTextColor(colors.primary);
doc.text('Recommended Filtration Method', 14, yPos);
yPos += 7;
doc.setFontSize(11);
doc.setFont('helvetica', 'bold');
doc.setTextColor(colors.textPrimary);
doc.text(filtrationRec.name, 14, yPos);
yPos += 5;
doc.setFont('helvetica', 'normal');
doc.text(doc.splitTextToSize(filtrationRec.desc, 180), 14, yPos);
yPos += 20;
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.setTextColor(colors.primary);
doc.text('Personalized Hydration Tip', 14, yPos);
yPos += 7;
doc.setFontSize(11);
doc.setFont('helvetica', 'normal');
doc.text(doc.splitTextToSize(tip, 180), 14, yPos);
yPos = 270;
doc.setFillColor('#fffbeb');
doc.rect(14, yPos, 182, 20, 'F');
doc.setFontSize(11);
doc.setFont('helvetica', 'bold');
doc.setTextColor('#b45309');
doc.text('Important Disclaimer', 20, yPos + 7);
doc.setFontSize(9);
doc.setFont('helvetica', 'normal');
doc.setTextColor('#92400e');
const disclaimer = "This guide is for informational purposes only. Consult a healthcare professional for personalized medical advice.";
doc.text(doc.splitTextToSize(disclaimer, 170), 20, yPos + 12);
doc.save('My_Hydration_Plan.pdf');
};
// --- Event Listeners ---
elements.nextBtn.addEventListener('click', nextStep);
elements.prevBtn.addEventListener('click', prevStep);
elements.downloadPdfBtn.addEventListener('click', downloadPDF);
// --- Initialization ---
updateFormUI();
});