function showAuthModal() { document.getElementById('auth-modal').classList.remove('hidden'); } function hideAuthModal() { document.getElementById('auth-modal').classList.add('hidden'); } async function verifyToken(token) { try { const res = await fetch('/api/v1/tasks', { headers: { 'Authorization': `Bearer ${token}` } }); return res.status === 200; } catch (err) { return false; } } async function handleLogin(e) { e.preventDefault(); const tokenInput = document.getElementById('auth-token-input'); const errorEl = document.getElementById('auth-error'); const token = tokenInput.value.trim(); if (!token) return; errorEl.classList.add('hidden'); const isValid = await verifyToken(token); if (isValid) { API_TOKEN = token; IS_GUEST = false; localStorage.setItem(AUTH_TOKEN_KEY, token); localStorage.removeItem('scud_is_guest'); hideAuthModal(); updateUIState(); loadTasks(); } else { errorEl.classList.remove('hidden'); } } function enableGuestMode() { IS_GUEST = true; API_TOKEN = ""; localStorage.setItem('scud_is_guest', 'true'); hideAuthModal(); updateUIState(); } function logout() { localStorage.removeItem(AUTH_TOKEN_KEY); localStorage.removeItem('scud_is_guest'); API_TOKEN = ""; IS_GUEST = false; document.getElementById('auth-token-input').value = ""; showAuthModal(); } function updateUIState() { const tasksBtn = document.getElementById('tasks-drawer-btn'); const guestBadge = document.getElementById('guest-badge'); if (IS_GUEST) { if (tasksBtn) tasksBtn.classList.add('hidden'); if (guestBadge) guestBadge.classList.remove('hidden'); } else { if (tasksBtn) tasksBtn.classList.remove('hidden'); if (guestBadge) guestBadge.classList.add('hidden'); } }