${Object.entries(data.categories).map(([name, cat]) => {
let catColor;
if (cat.score >= 85) catColor = 'bg-emerald-500';
else if (cat.score >= 60) catColor = 'bg-yellow-500';
else catColor = 'bg-red-500';
return `
`
}).join('')}
${name}
${cat.score}%
${renderTaskList(data.allItems.filter(i => !i.completed), 'Action Required', '⚠️', 'text-red-600')}
${renderTaskList(data.allItems.filter(i => i.completed), 'Compliant Items', '✅', 'text-emerald-600')}
`;
}
async function downloadPDF() {
downloadPdfButton.disabled = true;
pdfLoadingMessage.classList.remove('hidden');
const data = getScorecardData();
let overallColor;
if (data.overallScore >= 85) overallColor = '#059669';
else if (data.overallScore >= 60) overallColor = '#f59e0b';
else overallColor = '#ef4444';
const renderPdfList = (items, title) => `
${title}
-
${items.map(item => `
- ${item.completed ? '✅' : '⚠️'} ${item.category}: ${item.text} `).join('') || `
- None `}
Business Compliance Scorecard
Overall Compliance Score
${data.overallScore}%
