<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/x-icon" href="/favicon.ico" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
    <link rel="manifest" href="/manifest.json" />
    <meta name="theme-color" content="#18181b" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>DOORLY - Property Management System</title>
    <script src="/theme-init.js"></script>
    <script>
      // Handle chunk loading errors after deployments (stale JS references)
      // When new code is deployed, old chunk hashes become invalid
      (function() {
        function shouldReload() {
          var reloadKey = 'chunk_reload_' + window.location.pathname;
          var lastReload = sessionStorage.getItem(reloadKey);
          var now = Date.now();
          if (!lastReload || (now - parseInt(lastReload)) > 10000) {
            sessionStorage.setItem(reloadKey, now.toString());
            return true;
          }
          return false;
        }

        // Catch script/link element loading errors (e.g., 404 or HTML returned for JS)
        window.addEventListener('error', function(e) {
          var target = e.target;
          // Check if a script or link element failed to load
          if (target && (target.tagName === 'SCRIPT' || target.tagName === 'LINK')) {
            var src = target.src || target.href || '';
            if (src.includes('/assets/') && shouldReload()) {
              window.location.reload();
              return;
            }
          }
          // Check error message for chunk loading errors
          var msg = e.message || '';
          if (
            msg.includes('Loading chunk') ||
            msg.includes('Loading CSS chunk') ||
            msg.includes("Unexpected token '<'") ||
            msg.includes("Unexpected token '<'") ||
            msg.includes('Failed to fetch dynamically imported module') ||
            msg.includes('error loading dynamically imported module')
          ) {
            if (shouldReload()) {
              window.location.reload();
            }
          }
        }, true);

        // Catch unhandled promise rejections for dynamic imports
        window.addEventListener('unhandledrejection', function(e) {
          var reason = e.reason;
          var msg = (reason && reason.message) || String(reason) || '';
          if (
            msg.includes('Failed to fetch dynamically imported module') ||
            msg.includes('error loading dynamically imported module') ||
            msg.includes("Unexpected token '<'") ||
            msg.includes("Unexpected token '<'")
          ) {
            if (shouldReload()) {
              window.location.reload();
            }
          }
        });
      })();
    </script>
    <script type="module" crossorigin src="/assets/index-DBu_OcGt.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/react-vendor-DfoK2vg0.js">
    <link rel="modulepreload" crossorigin href="/assets/supabase-vendor-CCxTVrXE.js">
    <link rel="modulepreload" crossorigin href="/assets/ui-vendor-BWaiIHvw.js">
    <link rel="modulepreload" crossorigin href="/assets/utils-vendor-GviwT8fs.js">
    <link rel="stylesheet" crossorigin href="/assets/index-v9-zDuC3.css">
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>