`;
initialMessage.classList.add('hidden');
resultsContainer.classList.remove('hidden');
pdfButtonContainer.classList.remove('hidden');
};
downloadPdfBtn.addEventListener('click', () => {
if (!lastAnalysisData) return;
const { jsPDF } = window.jspdf;
const { inputs, scores, labels } = lastAnalysisData;
const doc = new jsPDF({ orientation: 'p', unit: 'pt', format: 'a4' });
const pageW = doc.internal.pageSize.getWidth();
const margin = 50;
const contentW = pageW - margin * 2;
let y = 0;
// PDF Header
doc.setFillColor('#1e293b'); // slate-800
doc.rect(0, 0, pageW, 70, 'F');
doc.setFont('helvetica', 'bold');
doc.setFontSize(20);
doc.setTextColor('#ffffff');
doc.text('Equity Liquidity Report', margin, 45);
doc.setFontSize(14);
doc.setTextColor('#e2e8f0'); // slate-200
doc.text(`$${inputs.ticker}`, pageW - margin, 45, { align: 'right' });
y = 110;
// Score Section
const scoreColorHex = {
"text-green-600": "#16a34a", "text-blue-600": "#2563eb",
"text-yellow-600": "#ca8a04", "text-red-600": "#dc2626"
}[labels.scoreColor] || '#64748b';
doc.setLineWidth(8);
doc.setDrawColor(scoreColorHex);
const radius = 45;
const circleX = margin + radius;
const circleY = y + radius;
doc.circle(circleX, circleY, radius);
doc.setFontSize(48);
doc.setFont('helvetica', 'bold');
doc.setTextColor(scoreColorHex);
doc.text(String(Math.round(scores.overallScore)), circleX, circleY + 15, { align: 'center' });
const textX = margin + (radius * 2) + 20;
doc.setFontSize(14);
doc.setTextColor('#475569'); // slate-600
doc.text('Overall Liquidity Assessment', textX, y + 25);
doc.setFontSize(28);
doc.setTextColor(scoreColorHex);
doc.text(labels.scoreLabel, textX, y + 55);
y += (radius * 2) + 20;
// Analysis Text
doc.setFont('helvetica', 'normal');
doc.setFontSize(11);
doc.setTextColor('#334155'); // slate-700
const summaryLines = doc.splitTextToSize(labels.analysisText, contentW);
doc.text(summaryLines, margin, y);
y += summaryLines.length * 14 + 30;
// Score Breakdown
doc.setFont('helvetica', 'bold');
doc.setFontSize(14);
doc.setTextColor('#1e293b');
doc.text('Component Score Breakdown', margin, y);
y += 20;
const breakdownData = [
{label: 'Volume Score', score: scores.volumeScore, color: '#64748b'},
{label: 'Spread Score', score: scores.spreadScore, color: '#64748b'},
{label: 'Depth Score', score: scores.depthScore, color: '#64748b'}
];
doc.setDrawColor('#cbd5e1'); // slate-300
doc.setLineWidth(0.5);
const tableY = y;
doc.line(margin, tableY, pageW - margin, tableY); // Top line
breakdownData.forEach(item => {
doc.setFontSize(12);
doc.setFont('helvetica', 'bold');
doc.setTextColor('#334155');
doc.text(item.label, margin + 10, y + 25);
doc.setFontSize(18);
doc.setTextColor(item.color);
doc.text(`${Math.round(item.score)}/100`, pageW - margin - 10, y + 25, {align: 'right'});
y += 40;
doc.line(margin, y, pageW - margin, y); // Separator line
});
// Footer
const date = `Report Generated: ${new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}`;
doc.setFontSize(9);
doc.setTextColor('#64748b');
doc.text(date, pageW / 2, doc.internal.pageSize.getHeight() - 20, { align: 'center' });
doc.save(`Liquidity_Report_${inputs.ticker}.pdf`);
});
showTab(0);
});