Download Attendance Management System -

body background: linear-gradient(145deg, #e9eff7 0%, #dbe3ed 100%); min-height: 100vh; padding: 2rem 1.5rem;

<!-- Stats summary --> <div class="stats-row" id="statsContainer"> <div class="stat-card"><div class="stat-icon">👥</div><div class="stat-info"><h3>Total Employees</h3><div class="stat-number" id="totalEmployees">0</div></div></div> <div class="stat-card"><div class="stat-icon">✅</div><div class="stat-info"><h3>Present Today</h3><div class="stat-number" id="presentToday">0</div></div></div> <div class="stat-card"><div class="stat-icon">⏰</div><div class="stat-info"><h3>Late Today</h3><div class="stat-number" id="lateToday">0</div></div></div> <div class="stat-card"><div class="stat-icon">📅</div><div class="stat-info"><h3>Absent Today</h3><div class="stat-number" id="absentToday">0</div></div></div> </div> download attendance management system

function downloadCSV() const report = generateFullReportData(); const rows = report.attendanceDetails; if (rows.length === 0) alert("No attendance records to export."); return; // define CSV headers const headers = ["Employee ID", "Employee Name", "Date", "Status", "Timestamp"]; const csvRows = [headers]; for (const r of rows) csvRows.push([ r.employeeId, r.employeeName, r.date, r.status, r.timestamp ].map(cell => `"$String(cell).replace(/"/g, '""')"`).join(',')); const csvContent = csvRows.join('\n'); const blob = new Blob(["\uFEFF" + csvContent], type: "text/csv;charset=utf-8;" ); const link = document.createElement('a'); const url = URL.createObjectURL(blob); link.href = url; link.setAttribute("download", `attendance_export_$getTodayDateStr().csv`); document.body.appendChild(link); link.click(); document.body.removeChild(link); URL.revokeObjectURL(url); body background: linear-gradient(145deg

.toolbar display: flex; gap: 12px; flex-wrap: wrap; align-items: center; padding: 2rem 1.5rem