// ── Helpers globales requeridos por la UI ────────────────── function togglePass() { const inp = document.getElementById('loginPassword'); const icon = document.getElementById('passEyeIcon'); const show = inp.type === 'password'; inp.type = show ? 'text' : 'password'; icon.className = `fas fa-eye${show ? '-slash' : ''}`; } function backToLogin() { document.getElementById('mfaScreen').classList.add('hidden'); document.getElementById('loginScreen').classList.remove('hidden'); ui.clearMFAInputs(); ui.hideAlert('mfaAlert'); } function openNotif() { ui.openNotifPanel(); } // Inicializar inputs MFA al cargar document.addEventListener('DOMContentLoaded', () => { ui.initMFAInputs(); }); // Registro del Service Worker para carga instantánea (PWA) if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('./sw.js') .then(reg => console.log('[PWA] Service Worker registrado')) .catch(err => console.warn('[PWA] Error al registrar SW', err)); }); }

Notificaciones

Tareas y actualizaciones

Sin notificaciones nuevas

Te avisaremos cuando haya actualizaciones importantes sobre tus trabajos.

¿Cerrar sesión?

Estás a punto de salir del sistema. ¿Estás seguro de que deseas finalizar tu sesión actual?