// Sidebar toggle for mobile function toggleSidebar() { const sidebar = document.getElementById('sidebar'); sidebar.classList.toggle('open'); } // Close sidebar when clicking outside on mobile document.addEventListener('click', function(event) { const sidebar = document.getElementById('sidebar'); const toggle = document.getElementById('sidebarToggle'); if (window.innerWidth <= 768) { if (!sidebar.contains(event.target) && !toggle.contains(event.target)) { sidebar.classList.remove('open'); } } }); // Auto-dismiss flash messages document.addEventListener('DOMContentLoaded', function() { const alerts = document.querySelectorAll('.alert-dismissible'); alerts.forEach(function(alert) { setTimeout(function() { if (alert.parentElement) { alert.style.opacity = '0'; alert.style.transition = 'opacity 0.3s ease'; setTimeout(function() { if (alert.parentElement) { alert.remove(); } }, 300); } }, 5000); }); }); // Confirm delete actions document.querySelectorAll('[data-confirm]').forEach(function(el) { el.addEventListener('click', function(e) { if (!confirm(this.getAttribute('data-confirm'))) { e.preventDefault(); } }); });