<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <base href="/" />
    
    <!-- Smart App Banner for iOS Safari -->
    <meta name="apple-itunes-app" content="app-id=6748268861" />
    
    <!-- Favicon references for browser tabs and search engines -->
    <link rel="icon" type="image/x-icon" href="/icons/favicon/favicon.ico" />
    <link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon/favicon-96x96.png" />
    <link rel="apple-touch-icon" href="/icons/favicon/apple-touch-icon.png" />
    <link rel="manifest" href="/manifest.json" />
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no" />
    <title>SafeTable - Find Food You Can Eat</title>
    
    <!-- Theme flash prevention — keep --background in sync with src/index.css :root / .dark -->
    <style>
      :root {
        color-scheme: light;
        --background: 214 32% 95.5%;
      }
      html.dark {
        color-scheme: dark;
        --background: 222 20% 6.5%;
      }
      html,
      body,
      #root {
        background-color: hsl(var(--background));
      }
      body {
        margin: 0;
      }
    </style>
    <script>
      (function() {
        try {
          var path = window.location.pathname;
          if (path === '/invite/accept' || path === '/admin/invite/accept') {
            var params = new URLSearchParams(window.location.search);
            var token = params.get('token');
            if (token) {
              sessionStorage.setItem('pending_invite_accept_token', token);
              sessionStorage.setItem('pending_invite_accept_path', path);
            }
          }
        } catch (e) {}
      })();
    </script>
    <script src="/theme-bootstrap.js"></script>
    
    <!-- Do not preload /src/main.tsx as script — Vite emits /assets/*.js and iOS Safari + CSP block data: script fallbacks. -->
    
    <!-- Preconnect to essential domains (DNS lookup optimization) -->
    <link rel="preconnect" href="https://ubteeygvpswncbgqboco.supabase.co" crossorigin />
    <link rel="preconnect" href="https://unpkg.com" crossorigin />
    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    
    <!-- DNS prefetch for additional performance -->
    <link rel="dns-prefetch" href="https://ubteeygvpswncbgqboco.supabase.co" />
    <link rel="dns-prefetch" href="https://unpkg.com" />
    
    <!-- Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap" rel="stylesheet" />
    
    <!-- Startup watchdog: record slow boots, never auto-reload -->
    <script>
      // Mark initialization start immediately
      sessionStorage.setItem('page_init_start', Date.now().toString());
      
      window.authRecoveryTimeout = setTimeout(function() {
        // Never force reload from HTML; reload loops can crash mobile tabs.
        const isReactInitializing = sessionStorage.getItem('react_initializing') === 'true';
        const isPageInitialized = sessionStorage.getItem('page_initialized') === 'true';
        
        if (!isPageInitialized && !isReactInitializing) {
          const initStart = parseInt(sessionStorage.getItem('page_init_start') || '0', 10);
          const timeSinceInit = Date.now() - initStart;

          sessionStorage.setItem('slow_init_detected', 'true');
          sessionStorage.setItem('slow_init_elapsed_ms', String(timeSinceInit));
        }
      }, 8000);
    </script>
    <meta property="og:title" content="SafeTable - Find Food You Can Eat" />
    <meta property="og:description" content="Check out menus and allergen info for restaurants on SafeTable!" />
    <meta property="og:image" content="https://safetable.us/icons/icon-512x512.png" />
    <meta property="og:url" content="https://safetable.us/" />
    <meta property="og:type" content="website" />
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:title" content="SafeTable - Find Food You Can Eat" />
    <meta name="twitter:description" content="Check out menus and allergen info for restaurants on SafeTable!" />
    <meta name="twitter:image" content="https://safetable.us/icons/icon-512x512.png" />
    <script type="module" crossorigin src="/assets/index-dz0pkuvG.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-iuO8RvI4.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-DNG8yum7.js">
    <link rel="modulepreload" crossorigin href="/assets/useQuery-C_N09D0j.js">
    <link rel="modulepreload" crossorigin href="/assets/supabase-WIzUClx0.js">
    <link rel="modulepreload" crossorigin href="/assets/supabase-B3AKZJJt.js">
    <link rel="modulepreload" crossorigin href="/assets/jurisdictionAllergens-Blnj45pl.js">
    <link rel="modulepreload" crossorigin href="/assets/jurisdictionStorage-COVT169E.js">
    <link rel="modulepreload" crossorigin href="/assets/marketRegions-Cn593eEG.js">
    <link rel="modulepreload" crossorigin href="/assets/marketCompliance-CHm2k-A8.js">
    <link rel="modulepreload" crossorigin href="/assets/marketRegionStorage-CAPvbeWM.js">
    <link rel="modulepreload" crossorigin href="/assets/jurisdictionUserPreferences-aJa-LfTd.js">
    <link rel="modulepreload" crossorigin href="/assets/menuDietaryLabels-2tB8ZIOV.js">
    <link rel="modulepreload" crossorigin href="/assets/componentLibrary-BSUi11Rg.js">
    <link rel="modulepreload" crossorigin href="/assets/componentAllergenRollup-BYH6k2Ly.js">
    <link rel="modulepreload" crossorigin href="/assets/dinerMenuItemPresentation-wRiLCPw7.js">
    <link rel="modulepreload" crossorigin href="/assets/scoring-CvkPeprJ.js">
    <link rel="modulepreload" crossorigin href="/assets/concurrency-CSSIPP07.js">
    <link rel="modulepreload" crossorigin href="/assets/utils-uTUz1rdX.js">
    <link rel="modulepreload" crossorigin href="/assets/region-B0eXoKMI.js">
    <link rel="modulepreload" crossorigin href="/assets/discoveryBrowseRegion-B_XXir7k.js">
    <link rel="modulepreload" crossorigin href="/assets/menuAllergenLabelling-CwDNzxnr.js">
    <link rel="modulepreload" crossorigin href="/assets/restaurantVerificationStatus-UE4Eq34l.js">
    <link rel="modulepreload" crossorigin href="/assets/restaurantDiscoveryList-BvjcYpB2.js">
    <link rel="modulepreload" crossorigin href="/assets/marketRegionAvailability-BWaK0T0t.js">
    <link rel="modulepreload" crossorigin href="/assets/foodPrepBounds-CoIPMvfL.js">
    <link rel="modulepreload" crossorigin href="/assets/postalLocale-BqmHZrvB.js">
    <link rel="modulepreload" crossorigin href="/assets/cache-BgfrgC9y.js">
    <link rel="modulepreload" crossorigin href="/assets/locationDisplay-BHKSaDrS.js">
    <link rel="modulepreload" crossorigin href="/assets/locationMenuRepository-BM-pNz-Z.js">
    <link rel="modulepreload" crossorigin href="/assets/menuVariants-BBZTsXfc.js">
    <link rel="modulepreload" crossorigin href="/assets/foodPrepFlags-CvYNKmg9.js">
    <link rel="modulepreload" crossorigin href="/assets/menuCategoryScope-C9oygdPB.js">
    <link rel="modulepreload" crossorigin href="/assets/restaurant-utils-Cf5TMVaR.js">
    <link rel="modulepreload" crossorigin href="/assets/menuItemRowPresentation-Bqy_I4t8.js">
    <link rel="modulepreload" crossorigin href="/assets/restaurantOwnerMenuData-DQGLDjA-.js">
    <link rel="modulepreload" crossorigin href="/assets/enrichDinerMenuBundle-hKB25ADX.js">
    <link rel="modulepreload" crossorigin href="/assets/restaurantMenuData-oDo3QGqS.js">
    <link rel="modulepreload" crossorigin href="/assets/discoveryBranchLocation-DGv9H0Dj.js">
    <link rel="modulepreload" crossorigin href="/assets/restaurantMenuCache-DQThmh4_.js">
    <link rel="modulepreload" crossorigin href="/assets/createLucideIcon-CPSLPBxz.js">
    <link rel="modulepreload" crossorigin href="/assets/chevron-down-uP-jo0pK.js">
    <link rel="modulepreload" crossorigin href="/assets/x-CLs9dRNc.js">
    <link rel="modulepreload" crossorigin href="/assets/utils-CwjzYZwT.js">
    <link rel="modulepreload" crossorigin href="/assets/dist-jXtXbY6l.js">
    <link rel="modulepreload" crossorigin href="/assets/button-BJwr4Kig.js">
    <link rel="modulepreload" crossorigin href="/assets/dietarySetupGate-BmXD21Bw.js">
    <link rel="modulepreload" crossorigin href="/assets/dist-JVEVKlOm.js">
    <link rel="modulepreload" crossorigin href="/assets/browser-Wfquc5iH.js">
    <link rel="modulepreload" crossorigin href="/assets/LoadingSpinner-CEDU-N6t.js">
    <link rel="modulepreload" crossorigin href="/assets/ContentLoadingRegion-yah4-4Ox.js">
    <link rel="modulepreload" crossorigin href="/assets/useNative-FXGWCJli.js">
    <link rel="modulepreload" crossorigin href="/assets/MarketingSectionHeading-qFRVqtrJ.js">
    <link rel="modulepreload" crossorigin href="/assets/marketingStyles-DfW3kixc.js">
    <link rel="modulepreload" crossorigin href="/assets/safetableDesignSystem-BJMYRM4k.js">
    <link rel="modulepreload" crossorigin href="/assets/chevron-up-Bo39m4pz.js">
    <link rel="modulepreload" crossorigin href="/assets/FilterPreferencePill-CMmUdu1e.js">
    <link rel="modulepreload" crossorigin href="/assets/useSyncedFixedOverlay-EvBZGU96.js">
    <link rel="modulepreload" crossorigin href="/assets/schemas-D-pEdgzb.js">
    <link rel="stylesheet" crossorigin href="/assets/index-B_L-zFcA.css">
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>
