/* Firebase init — runs once at load.
   Exposes:
     window.firebaseApp   — initialized FirebaseApp
     window.firebaseAuth  — auth instance
     window.firebaseDB    — Firestore instance
     window.fbGoogleProvider — GoogleAuthProvider
   Uses compat builds so we can keep babel-standalone working. */
(function(){
  const cfg = window.__FIREBASE_CONFIG;
  if (!cfg || !cfg.apiKey) {
    console.error('[firebase-init] missing window.__FIREBASE_CONFIG — fill firebase-config.jsx');
    return;
  }
  if (!window.firebase || !window.firebase.initializeApp) {
    console.error('[firebase-init] firebase compat SDK not loaded');
    return;
  }
  const app = window.firebase.apps && window.firebase.apps.length
    ? window.firebase.app()
    : window.firebase.initializeApp(cfg);
  window.firebaseApp  = app;
  window.firebaseAuth = window.firebase.auth();
  window.firebaseDB   = window.firebase.firestore();
  window.fbGoogleProvider = new window.firebase.auth.GoogleAuthProvider();
  window.fbGoogleProvider.setCustomParameters({ prompt: 'select_account' });

  // Enable offline persistence so reads work without a network round-trip.
  try {
    window.firebaseDB.enablePersistence({ synchronizeTabs: true })
      .catch(err => {
        if (err && (err.code === 'failed-precondition' || err.code === 'unimplemented')) {
          // multi-tab without support, or unsupported browser — ignore
        } else {
          console.warn('[firebase-init] persistence:', err && err.message);
        }
      });
  } catch (_) {}
})();
