// Bucketlist tab — real-time Firestore list const BL_FB_CONFIG = { apiKey: "AIzaSyDuSjEGEKx5FnWYnQq8f_owbpYRBRrl5x0", authDomain: "esef-514bf.firebaseapp.com", projectId: "esef-514bf", storageBucket: "esef-514bf.firebasestorage.app", messagingSenderId: "353969651290", appId: "1:353969651290:web:41e3aaf8e54c743702a263" }; document.addEventListener("DOMContentLoaded", () => { const tab = document.getElementById("bucketlist"); if (!tab) return; if (!firebase.apps.length) firebase.initializeApp(BL_FB_CONFIG); const db = firebase.firestore(); const listEl = document.getElementById("bl-list"); if (!listEl) return; db.collection("bucketlist_items").onSnapshot(snap => { const items = []; snap.forEach(doc => { const d = doc.data(); items.push({ id: doc.id, title: d.title || "", description: d.description || "", date: d.date || "", utc: d.utc || "", done: d.done || false }); }); items.sort((a, b) => (a.utc || "").localeCompare(b.utc || "")); render(items); }, () => { if (listEl) listEl.innerHTML = '
Could not load.
'; }); function render(items) { if (items.length === 0) { listEl.innerHTML = 'Nothing here yet.
'; return; } listEl.innerHTML = items.map(item => '