// ========== LOGIN ========== document.getElementById('loginForm').addEventListener('submit', async function(e) { e.preventDefault(); const username = document.getElementById('username').value; const password = document.getElementById('password').value; console.log('Attempting login for:', username); try { const r = await fetch('api.php', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ action: 'login', username: username, password: password }) }); console.log('Login response status:', r.status); const data = await r.json(); console.log('Login response data:', data); if (data.status === 'success') { isAuthenticated = true; saveSession(data.user.username, data.user.name, data.user.id); document.getElementById('loginOverlay').style.display = 'none'; showApp(); document.getElementById('userBadge').textContent = data.user.name || data.user.username; loadData(); startReminderCheck(); updateClock(); setInterval(updateClock, 1000); toast('Welcome ' + (data.user.name || data.user.username) + '!', true); } else { toast('❌ ' + (data.message || 'Invalid credentials'), false); } } catch(e) { console.error('Login error:', e); toast('❌ Network error: ' + e.message, false); } });