/* ===== LOGIN SCREEN ===== */ .login-overlay{ position:fixed;inset:0;background:#011A27; display:flex;align-items:center;justify-content:center; z-index:9999; } .login-card{ background:#fff;border-radius:16px;padding:40px 44px; width:100%;max-width:400px; box-shadow:0 8px 40px rgba(0,0,0,0.3); } .login-brand{ display:flex;align-items:center;gap:10px;margin-bottom:28px; } .login-brand-mark{ width:40px;height:40px;background:#011A27;color:#FFDE59; border-radius:10px;display:grid;place-items:center; font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px; } .login-brand-name{ font-family:'Montserrat',sans-serif;font-weight:700; font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:#011A27; } .login-card h2{ font-family:'Montserrat',sans-serif;font-size:22px; color:#011A27;margin:0 0 6px; } .login-card p{color:#6b7280;font-size:13px;margin:0 0 24px;} .login-card label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:5px;} .login-input{ width:100%;padding:10px 13px;border:1px solid #d0d5dd; border-radius:8px;font-size:14px;margin-bottom:16px; box-sizing:border-box;font-family:'Inter',sans-serif; } .login-input:focus{outline:none;border-color:#1C4963;} .login-btn{ width:100%;padding:12px;background:#011A27;color:#FFDE59; border:none;border-radius:8px;font-size:14px;font-weight:700; cursor:pointer;font-family:'Montserrat',sans-serif;letter-spacing:.04em; transition:opacity .15s; } .login-btn:hover{opacity:.88;} .login-btn:disabled{opacity:.5;cursor:not-allowed;} .login-error{ background:#fef2f2;border:1px solid #fca5a5;color:#c0392b; padding:10px 14px;border-radius:8px;font-size:13px; margin-bottom:14px;display:none; } .loading-overlay{ position:fixed;inset:0;background:#011A27; display:flex;align-items:center;justify-content:center; z-index:9998;flex-direction:column;gap:16px; color:#fff;font-family:'Montserrat',sans-serif;font-size:14px;letter-spacing:.06em; } .loading-spinner{ width:36px;height:36px;border:3px solid rgba(255,222,89,0.2); border-top-color:#FFDE59;border-radius:50%;animation:spin .8s linear infinite; } @keyframes spin{to{transform:rotate(360deg)}}

Willkommen zurück

Dein Tages-Cockpit für Akquise, Projekte und Produktivität.

Guten Morgen, Marcel.

Dein erster Block heute
Offenes vom Vortag
Top 3 heute festlegen
50:00
🅿 Gedanken parken
// ===== ÜBERSCHRIEBENES INIT für Online-Version ===== window.addEventListener('DOMContentLoaded', async function(){ // Erst mit localStorage-Daten sofort rendern (schnelle UI) if(IS_LOGGED_IN){ init(); // rendert mit localStorage // Dann Server-Daten nachladen und re-rendern await loadFromServer(); } else { // Nicht eingeloggt: Login-Overlay bleibt, nichts rendern // (Login-Overlay ist per PHP bereits sichtbar) } }); // Settings-Seite: Logout-Button hinzufügen const _origRenderSettings = renderSettings; function renderSettings(){ _origRenderSettings(); const settingsPage = document.getElementById('page-settings'); if(!settingsPage) return; const logoutCard = document.createElement('div'); logoutCard.className = 'card'; logoutCard.style.marginTop = '12px'; logoutCard.innerHTML = `
Account
Du bist eingeloggt. Deine Daten werden automatisch in der Datenbank gesichert und sind von jedem Gerät abrufbar.
`; settingsPage.appendChild(logoutCard); } // Daten-Export async function exportData(){ const r = await apiCall('export', null, 'GET'); const blob = new Blob([JSON.stringify(r, null, 2)], {type:'application/json'}); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'scb-export-' + today() + '.json'; a.click(); toast('Export heruntergeladen'); }