{
  "version": 3,
  "sources": ["/cdn/shop/t/92/assets/florame-account-center.js?florame_v=20260924-sheet-motion-v940"],
  "sourcesContent": ["(function () {\r\n  'use strict';\r\n\r\n  var ROOT_SELECTOR = '[data-florame-account-center]';\r\n  var TRIGGER_SELECTOR = '[data-florame-account-trigger]';\r\n  var AUTH_TRIGGER_SELECTOR = '[data-florame-auth-trigger]';\r\n  var CUSTOMER_LOGIN_PATH = '/customer_authentication/login';\r\n  var HAPTICS_KEY = 'florame_haptics_enabled';\r\n  var THEME_KEY = 'florame-theme-preference';\r\n  var WEB_PUSH_HASH_KEY = 'florame_web_push_subscription_hash';\r\n  var LANGUAGE_KEYS = ['florame_native_lang', 'bouquetLanguage'];\r\n  var WEB_CUSTOMER_ID_KEY = 'florame_customer_id';\r\n  var WEB_CUSTOMER_EMAIL_KEY = 'florame_customer_email';\r\n  var AUTH_CONTEXT_KEY = 'florame_account_auth_context_v1';\r\n  var LAST_GENERATION_KEY = 'florame_generation_result_job_v1';\r\n  var LAST_GENERATION_ACTIVE_KIND_KEY = 'florame_generation_active_kind_v1';\r\n  var LAST_GENERATION_ARCHIVE_KEY_PREFIX = 'florame_last_generation_v2:';\r\n  var LAST_GENERATION_URL_PARAM = 'florame_bg_job';\r\n  var LAST_GENERATION_MAX_AGE_MS = 7 * 86400000;\r\n  var LAST_GENERATION_SYNC_INTERVAL_MS = 12000;\r\n  var AUTH_PROBE_INTERVAL_MS = 60000;\r\n  var instances = [];\r\n  var authProbePromise = null;\r\n  var lastAuthProbeAt = 0;\r\n  var lastGenerationSyncPromise = null;\r\n  var lastGenerationSyncAt = 0;\r\n  var lastGenerationSyncOwner = '';\r\n  var pendingPointerTrigger = null;\r\n  var pointerActivationTimer = 0;\r\n  var avatarEditorPromise = null;\r\n  var accountStylePromise = null;\r\n\r\n  function accountStylesReady() {\r\n    return Array.from(document.querySelectorAll('link[data-florame-account-styles],link[data-florame-home-full]')).every(function (link) { return !!link.sheet && (!link.hasAttribute('data-florame-home-full') || link.dataset.florameHomeReady === 'true'); });\r\n  }\r\n\r\n  function loadAccountStyle(link) {\r\n    if (link.sheet) return Promise.resolve();\r\n    if (link.__florameAccountStyleLoad) return link.__florameAccountStyleLoad;\r\n    var task = new Promise(function (resolve, reject) {\r\n      function finish(error) {\r\n        clearTimeout(timer);\r\n        link.removeEventListener('load', onLoad);\r\n        link.removeEventListener('error', onError);\r\n        if (error) {\r\n          link.removeAttribute('href'); link.removeAttribute('rel');\r\n          reject(error);\r\n        } else resolve();\r\n      }\r\n      function onLoad() { finish(); }\r\n      function onError() { finish(new Error('account_styles_unavailable')); }\r\n      var timer = setTimeout(onError, 15000);\r\n      link.addEventListener('load', onLoad);\r\n      link.addEventListener('error', onError);\r\n      link.rel = 'stylesheet';\r\n      link.href = link.getAttribute('data-href');\r\n    }).finally(function () { if (link.__florameAccountStyleLoad === task) delete link.__florameAccountStyleLoad; });\r\n    link.__florameAccountStyleLoad = task;\r\n    return task;\r\n  }\r\n\r\n  function ensureAccountStyles() {\r\n    if (accountStylesReady()) return Promise.resolve();\r\n    if (accountStylePromise) return accountStylePromise;\r\n    accountStylePromise = Promise.all([window.FlorameHomeStyles?.ensure(), ...Array.from(document.querySelectorAll('link[data-florame-account-styles]')).map(loadAccountStyle)])\r\n      .catch(function (error) { accountStylePromise = null; throw error; });\r\n    return accountStylePromise;\r\n  }\r\n\r\n  function refreshDraft(instance) {\r\n    var link = instance.root.querySelector('[data-fac-route=\"drafts\"]');\r\n    if (link) link.hidden = !window.FlorameCreateDraft?.get?.();\r\n  }\r\n\r\n  function openAvatar(instance, trigger) {\r\n    if (!instance || instance.root.hidden) return;\r\n    if (window.FlorameAvatarEditor) { window.FlorameAvatarEditor.open(instance, trigger); return; }\r\n    if (trigger) trigger.setAttribute('aria-busy','true');\r\n    if (!avatarEditorPromise) avatarEditorPromise = new Promise(function (resolve, reject) {\r\n      var script = document.createElement('script');\r\n      script.src = instance.root.dataset.avatarEditorUrl;\r\n      var timer = setTimeout(function () { script.remove(); reject(new Error('avatar_editor_timeout')); }, 12000);\r\n      script.onload = function () { clearTimeout(timer); if (window.FlorameAvatarEditor) resolve(); else reject(new Error('avatar_editor_unavailable')); };\r\n      script.onerror = function () { clearTimeout(timer); script.remove(); reject(new Error('avatar_editor_unavailable')); };\r\n      document.head.appendChild(script);\r\n    }).catch(function (error) { avatarEditorPromise = null; throw error; });\r\n    avatarEditorPromise.then(function () {\r\n      if (!instance.root.hidden && instance.root.classList.contains('is-open')) window.FlorameAvatarEditor.open(instance, trigger);\r\n    }).catch(function () {\r\n      window.FlorameUI?.toast({tone:'error',title:languageOf(instance.root) === 'en' ? 'Avatar unavailable' : 'Avatar non disponibile',detail:languageOf(instance.root) === 'en' ? 'Check your connection and try again.' : 'Controlla la connessione e riprova.'});\r\n    }).finally(function () { if (trigger) trigger.removeAttribute('aria-busy'); });\r\n  }\r\n\r\n  var COPY = {\r\n    it: {\r\n      checking: 'Controllo disponibilit\u00E0\u2026',\r\n      active: 'Attive',\r\n      inactive: 'Da attivare',\r\n      complete: 'Da completare',\r\n      denied: 'Bloccate nelle impostazioni',\r\n      deniedHelp: 'Apri il lucchetto del browser, consenti le notifiche e riprova',\r\n      unsupported: 'Non disponibili su questo dispositivo',\r\n      unavailable: 'Servizio momentaneamente non disponibile',\r\n      installFirst: 'Installa Florame per attivarle',\r\n      nativeAction: 'Tocca per verificare e attivare',\r\n      nativeActive: 'Attive sul dispositivo',\r\n      notificationsError: 'Non \u00E8 stato possibile aggiornare le notifiche',\r\n      hapticsOn: 'Attiva',\r\n      hapticsOff: 'Spenta',\r\n      hapticsUnsupported: 'Non supportata su questo dispositivo',\r\n      installing: 'Apro le istruzioni\u2026',\r\n      helpTitle: 'Supporto florame.ai',\r\n      helpDescription: 'FAQ, contatti email diretti e chat quando ti serve.',\r\n      chatOpening: 'Apro la chat\u2026',\r\n      chatUnavailable: 'La chat non \u00E8 disponibile in questo momento. Riprova tra poco.'\r\n    },\r\n    en: {\r\n      checking: 'Checking availability\u2026',\r\n      active: 'On',\r\n      inactive: 'Ready to enable',\r\n      complete: 'Setup incomplete',\r\n      denied: 'Blocked in device settings',\r\n      deniedHelp: 'Open the browser lock, allow notifications, then try again',\r\n      unsupported: 'Not available on this device',\r\n      unavailable: 'Service temporarily unavailable',\r\n      installFirst: 'Install Florame to enable them',\r\n      nativeAction: 'Tap to check and enable',\r\n      nativeActive: 'On for this device',\r\n      notificationsError: 'Notifications could not be updated',\r\n      hapticsOn: 'On',\r\n      hapticsOff: 'Off',\r\n      hapticsUnsupported: 'Not supported on this device',\r\n      installing: 'Opening instructions\u2026',\r\n      helpTitle: 'florame.ai support',\r\n      helpDescription: 'FAQs, direct email contacts and chat when you need it.',\r\n      chatOpening: 'Opening chat\u2026',\r\n      chatUnavailable: 'Chat is unavailable right now. Please try again shortly.'\r\n    }\r\n  };\r\n\r\n  function storageGet(key) {\r\n    try { return window.localStorage.getItem(key); } catch (_) { return null; }\r\n  }\r\n\r\n  function storageSet(key, value) {\r\n    try { window.localStorage.setItem(key, String(value)); } catch (_) {}\r\n  }\r\n\r\n  function storageRemove(key) {\r\n    try { window.localStorage.removeItem(key); } catch (_) {}\r\n  }\r\n\r\n  function lastGenerationCustomerId(root) {\r\n    if (!rootIsAuthenticated(root)) return '';\r\n    var customer = window.__loggedCustomer || {};\r\n    return String(customer.id || storageGet(WEB_CUSTOMER_ID_KEY) || '').trim();\r\n  }\r\n\r\n  function lastGenerationArchiveKey(root) {\r\n    return LAST_GENERATION_ARCHIVE_KEY_PREFIX + (lastGenerationCustomerId(root) || 'guest');\r\n  }\r\n\r\n  function parsedLastGeneration(raw, maxAgeMs) {\r\n    if (!raw) return null;\r\n    try {\r\n      var job = typeof raw === 'string' ? JSON.parse(raw) : raw;\r\n      if (!job || typeof job !== 'object') return null;\r\n      var status = String(job.status || '').toLowerCase();\r\n      if (status === 'error' || status === 'cancelled' || status === 'canceled') return null;\r\n      var updatedAt = Number(job.updatedAt || job.startedAt || job.productStartedAt || 0);\r\n      if (maxAgeMs && updatedAt && Date.now() - updatedAt > maxAgeMs) return null;\r\n      if (!(job.requestId || job.createRequestId || job.bouquetId || job.imageUrl || job.complete || job.returnUrl)) return null;\r\n      return job;\r\n    } catch (_) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function emit(name, detail) {\r\n    try { window.dispatchEvent(new CustomEvent(name, { detail: detail || {} })); } catch (_) {}\r\n  }\r\n\r\n  function readLastGeneration(root) {\r\n    var active = parsedLastGeneration(storageGet(LAST_GENERATION_KEY), LAST_GENERATION_MAX_AGE_MS);\r\n    var archived = parsedLastGeneration(storageGet(lastGenerationArchiveKey(root)), 0);\r\n    if (!active) return archived;\r\n    if (!archived) return active;\r\n    return Number(active.updatedAt || 0) >= Number(archived.updatedAt || 0) ? active : archived;\r\n  }\r\n\r\n  function lastGenerationTitle(job, root) {\r\n    var marketing = job && job.productData && job.productData.marketingContent;\r\n    var title = marketing && marketing.title || job && job.productData && job.productData.title || job && job.title || '';\r\n    title = String(title || '').replace(/\\s+/g, ' ').trim();\r\n    if (title && !/generazione|generation/i.test(title)) return title.slice(0, 90);\r\n    return root && root.getAttribute('data-language') === 'en' ? 'Your latest bouquet' : 'Il tuo ultimo bouquet';\r\n  }\r\n\r\n  function lastGenerationStatus(job, root) {\r\n    var english = root && root.getAttribute('data-language') === 'en';\r\n    var done = !!job && (String(job.status || '').toLowerCase() === 'done' || job.complete === true);\r\n    if (done) return english ? 'Ready \u00B7 View bouquet' : 'Pronto \u00B7 Visualizza bouquet';\r\n    return english ? 'Generating \u00B7 Follow the progress' : 'In generazione \u00B7 Segui l\u2019avanzamento';\r\n  }\r\n\r\n  function lastGenerationImage(job) {\r\n    var product = job && job.productData || {};\r\n    return String(job && job.imageUrl || product.imageUrl || product.bouquetImage || product.image || '').trim();\r\n  }\r\n\r\n  function refreshLastGeneration(instance) {\r\n    if (!instance || !instance.lastGeneration) return null;\r\n    var job = readLastGeneration(instance.root);\r\n    instance.lastGeneration.hidden = !job;\r\n    instance.lastGenerationJob = job;\r\n    if (!job) return null;\r\n    if (instance.lastGenerationTitle) instance.lastGenerationTitle.textContent = lastGenerationTitle(job, instance.root);\r\n    if (instance.lastGenerationStatus) instance.lastGenerationStatus.textContent = lastGenerationStatus(job, instance.root);\r\n    var imageUrl = lastGenerationImage(job);\r\n    if (instance.lastGenerationImage) {\r\n      instance.lastGenerationImage.hidden = !imageUrl;\r\n      if (imageUrl) {\r\n        if (instance.lastGenerationImage.getAttribute('src') !== imageUrl) instance.lastGenerationImage.src = imageUrl;\r\n      }\r\n      else instance.lastGenerationImage.removeAttribute('src');\r\n    }\r\n    if (instance.lastGenerationFallback) instance.lastGenerationFallback.hidden = !!imageUrl;\r\n    if (instance.lastGenerationOpen) {\r\n      instance.lastGenerationOpen.setAttribute('aria-label', (instance.root.getAttribute('data-language') === 'en' ? 'Open latest generation: ' : 'Riapri ultima generazione: ') + lastGenerationTitle(job, instance.root));\r\n    }\r\n    return job;\r\n  }\r\n\r\n  function lastGenerationApi(instance, action, body) {\r\n    var endpoint = instance && instance.root && instance.root.getAttribute('data-loyalty-endpoint') || '/apps/florame-messages';\r\n    var url = new URL(endpoint, window.location.origin);\r\n    url.searchParams.set('action', action);\r\n    var controller = new AbortController();\r\n    var timeout = window.setTimeout(function () { controller.abort(); }, 8000);\r\n    return window.fetch(url.toString(), {\r\n      signal: controller.signal,\r\n      method: body ? 'POST' : 'GET',\r\n      credentials: 'same-origin',\r\n      cache: 'no-store',\r\n      headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\r\n      body: body ? JSON.stringify(Object.assign({ action: action }, body)) : undefined\r\n    }).then(function (response) {\r\n      return response.json().catch(function () { return null; }).then(function (payload) {\r\n        if (!response.ok || !payload || payload.success === false) throw new Error(payload && payload.error || 'generation_sync_unavailable');\r\n        return payload;\r\n      });\r\n    }).finally(function () { window.clearTimeout(timeout); });\r\n  }\r\n\r\n  function syncLastGeneration(instance, options) {\r\n    if (!instance || !rootIsAuthenticated(instance.root) || !lastGenerationCustomerId(instance.root)) return Promise.resolve(null);\r\n    var owner = lastGenerationCustomerId(instance.root);\r\n    if (lastGenerationSyncOwner !== owner) {\r\n      lastGenerationSyncOwner = owner;\r\n      lastGenerationSyncAt = 0;\r\n      lastGenerationSyncPromise = null;\r\n    }\r\n    var stillOwner = function () { return lastGenerationCustomerId(instance.root) === owner; };\r\n    var now = Date.now();\r\n    if (lastGenerationSyncPromise) return lastGenerationSyncPromise;\r\n    if (!(options && options.force) && now - lastGenerationSyncAt < LAST_GENERATION_SYNC_INTERVAL_MS) return Promise.resolve(readLastGeneration(instance.root));\r\n    lastGenerationSyncAt = now;\r\n    var local = readLastGeneration(instance.root);\r\n    var pending = lastGenerationApi(instance, 'generation_latest').then(function (payload) {\r\n      if (!stillOwner()) return null;\r\n      // Read again after the network: another tab or generation may have advanced.\r\n      local = readLastGeneration(instance.root);\r\n      var remote = parsedLastGeneration(payload && payload.generation, 0);\r\n      var localUpdatedAt = Number(local && local.updatedAt || 0);\r\n      var remoteUpdatedAt = Number(remote && remote.updatedAt || 0);\r\n      if (remote && remoteUpdatedAt > localUpdatedAt) {\r\n        storageSet(lastGenerationArchiveKey(instance.root), JSON.stringify(remote));\r\n        refreshLastGeneration(instance);\r\n        emit('florame:last-generation-restored', { source: 'account-cloud', generation: remote });\r\n        return remote;\r\n      }\r\n      if (local && (local.complete === true || String(local.status || '').toLowerCase() === 'done') && localUpdatedAt > remoteUpdatedAt) {\r\n        return lastGenerationApi(instance, 'generation_save', { generation: local }).then(function (saved) {\r\n          if (!stillOwner()) return null;\r\n          var newest = readLastGeneration(instance.root);\r\n          if (newest && Number(newest.updatedAt || 0) > Number(local.updatedAt || 0)) {\r\n            refreshLastGeneration(instance);\r\n            return newest;\r\n          }\r\n          var canonical = parsedLastGeneration(saved && saved.generation, 0) || local;\r\n          storageSet(lastGenerationArchiveKey(instance.root), JSON.stringify(canonical));\r\n          refreshLastGeneration(instance);\r\n          return canonical;\r\n        });\r\n      }\r\n      refreshLastGeneration(instance);\r\n      return remote || local;\r\n    }).catch(function () {\r\n      if (!stillOwner()) return null;\r\n      refreshLastGeneration(instance);\r\n      return readLastGeneration(instance.root);\r\n    }).finally(function () {\r\n      if (lastGenerationSyncPromise === pending) lastGenerationSyncPromise = null;\r\n    });\r\n    lastGenerationSyncPromise = pending;\r\n    return pending;\r\n  }\r\n\r\n  function lastGenerationTarget(job) {\r\n    var appPath = window.__florameThemeConfig && window.__florameThemeConfig.appPath || '/pages/florame-app';\r\n    var fallback = appPath + '?mode=create';\r\n    var target;\r\n    try {\r\n      target = new URL(job && job.returnUrl || fallback, window.location.origin);\r\n      var appUrl = new URL(appPath, window.location.origin);\r\n      if (target.origin !== window.location.origin || target.pathname.replace(/\\/+$/, '') !== appUrl.pathname.replace(/\\/+$/, '')) target = new URL(fallback, window.location.origin);\r\n    } catch (_) {\r\n      target = new URL(fallback, window.location.origin);\r\n    }\r\n    target.searchParams.set('mode', 'create');\r\n    target.searchParams.set('resultJob', 'open');\r\n    var bouquetId = job && (job.bouquetId || job.productData && job.productData.bouquetId) || target.searchParams.get('bouquet') || '';\r\n    if (bouquetId) target.searchParams.set('bouquet', String(bouquetId));\r\n    var payload = {\r\n      v: job && job.v || 1,\r\n      kind: 'result',\r\n      storageKey: LAST_GENERATION_KEY,\r\n      returnUrl: target.pathname + target.search,\r\n      requestId: job && job.requestId || '',\r\n      createRequestId: job && job.createRequestId || '',\r\n      status: job && job.status || 'running',\r\n      progress: Number(job && job.progress || 0),\r\n      updatedAt: Date.now(),\r\n      complete: !!(job && job.complete),\r\n      muted: false,\r\n      bouquetId: bouquetId || null,\r\n      imageUrl: lastGenerationImage(job) || null\r\n    };\r\n    target.searchParams.set(LAST_GENERATION_URL_PARAM, JSON.stringify(payload));\r\n    return target.toString();\r\n  }\r\n\r\n  function openLastGeneration(instance) {\r\n    var job = refreshLastGeneration(instance);\r\n    if (!job) return;\r\n    job.updatedAt = Date.now();\r\n    job.muted = false;\r\n    var target = lastGenerationTarget(job);\r\n    var direct = !!(window.__AWI_CREATE_READY && window.__AWI_INIT_DONE && new URL(target).pathname === window.location.pathname);\r\n    window.__florameBackgroundFocusJob = { key: LAST_GENERATION_KEY, kind: 'result', ts: Date.now(), opening: true, navigating: !direct };\r\n    var bouquetId = new URL(target).searchParams.get('bouquet');\r\n    if (bouquetId) job.bouquetId = bouquetId;\r\n    try {\r\n      storageSet(LAST_GENERATION_KEY, JSON.stringify(job));\r\n      storageSet(LAST_GENERATION_ACTIVE_KIND_KEY, 'result');\r\n      storageSet(lastGenerationArchiveKey(instance.root), JSON.stringify(job));\r\n    } catch (_) {}\r\n    emit('florame:last-generation-open', { job: job, target: target });\r\n    // Focus the mounted result before closing the menu, without a bubble flash.\r\n    if (direct) emit('florame:background-job-focus', { job: job, storageKey: LAST_GENERATION_KEY });\r\n    instance.close(false);\r\n    if (!direct) window.location.assign(target);\r\n  }\r\n\r\n  function isNativeAccountActive() {\r\n    try {\r\n      if (window.__loggedCustomer && window.__loggedCustomer.nativeApp) return true;\r\n      if (document.documentElement.getAttribute('data-florame-native-signed-in') === 'true') return true;\r\n      return storageGet('florame_native_signed_in') === '1';\r\n    } catch (_) { return false; }\r\n  }\r\n\r\n  function rootIsAuthenticated(root) {\r\n    return !!root && root.getAttribute('data-authenticated') === 'true';\r\n  }\r\n\r\n  function applyWebCustomerIdentity(customerId, customerEmail) {\r\n    var normalizedId = customerId == null ? '' : String(customerId).trim();\r\n    var normalizedEmail = customerEmail == null ? '' : String(customerEmail).trim().toLowerCase();\r\n\r\n    if (normalizedId) storageSet(WEB_CUSTOMER_ID_KEY, normalizedId);\r\n    else storageRemove(WEB_CUSTOMER_ID_KEY);\r\n    if (normalizedEmail) storageSet(WEB_CUSTOMER_EMAIL_KEY, normalizedEmail);\r\n    else storageRemove(WEB_CUSTOMER_EMAIL_KEY);\r\n\r\n    try {\r\n      var loggedCustomer = window.__loggedCustomer && typeof window.__loggedCustomer === 'object'\r\n        ? window.__loggedCustomer\r\n        : {};\r\n      loggedCustomer.id = normalizedId || null;\r\n      loggedCustomer.email = normalizedEmail || null;\r\n      window.__loggedCustomer = loggedCustomer;\r\n      window.AWI_CUSTOMER_EMAIL = normalizedEmail || null;\r\n      window.__AWI_CUSTOMER_EMAIL = normalizedEmail || null;\r\n      window.customerEmail = normalizedEmail || null;\r\n      window.__customerEmail = normalizedEmail || null;\r\n      window.HOMEPAGE_INIT_CUSTOMER_EMAIL = normalizedEmail || null;\r\n      if (window.customerData && typeof window.customerData === 'object') {\r\n        window.customerData.email = normalizedEmail || null;\r\n      }\r\n      if (normalizedEmail) document.documentElement.setAttribute('data-customer-email', normalizedEmail);\r\n      else document.documentElement.removeAttribute('data-customer-email');\r\n    } catch (_) {}\r\n\r\n    try {\r\n      if (window.__florameWebPushConfig) {\r\n        window.__florameWebPushConfig.customerId = normalizedId || null;\r\n        window.__florameWebPushConfig.customerEmail = normalizedEmail || null;\r\n      }\r\n    } catch (_) {}\r\n  }\r\n\r\n  function syncClientAuthFromServer(instance) {\r\n    if (!instance || !instance.root) return;\r\n    var authenticated = rootIsAuthenticated(instance.root);\r\n    var customer = window.__loggedCustomer || {};\r\n    var customerId = authenticated ? String(instance.root.dataset.customerId || customer.id || '').trim() : '';\r\n    var customerEmail = authenticated && customer.email ? String(customer.email).trim() : '';\r\n\r\n    if (!authenticated && isNativeAccountActive()) {\r\n      emit('florame:auth-state', {\r\n        authenticated: true,\r\n        customerId: customer.id || null,\r\n        customerEmail: customer.email || null,\r\n        source: 'native-app'\r\n      });\r\n      return;\r\n    }\r\n\r\n    applyWebCustomerIdentity(customerId, customerEmail);\r\n    emit('florame:auth-state', {\r\n      authenticated: authenticated,\r\n      customerId: customerId || null,\r\n      customerEmail: customerEmail || null,\r\n      source: 'shopify-server'\r\n    });\r\n    if (authenticated && customerId) syncLastGeneration(instance);\r\n  }\r\n\r\n  function authProbeUrl() {\r\n    return '/apps/florame-messages?action=account_session';\r\n  }\r\n\r\n  function authIdentity(root) {\r\n    return rootIsAuthenticated(root) ? String(root.dataset.customerId || window.__loggedCustomer?.id || '').replace(/^gid:\\/\\/shopify\\/Customer\\//, '') : '';\r\n  }\r\n\r\n  function ensureAuthFresh(instance, options) {\r\n    if (!instance || !instance.root || isNativeAccountActive() || typeof window.fetch !== 'function') {\r\n      return Promise.resolve(true);\r\n    }\r\n    var force = !!(options && options.force);\r\n    var now = Date.now();\r\n    if (authProbePromise) return authProbePromise;\r\n    if (!force && now - lastAuthProbeAt < AUTH_PROBE_INTERVAL_MS) return Promise.resolve(true);\r\n    lastAuthProbeAt = now;\r\n    var renderedIdentity = authIdentity(instance.root);\r\n    var controller = new AbortController();\r\n    var timeout = window.setTimeout(function () { controller.abort(); }, 8000);\r\n    // The signed proxy checks the session without fetching/parsing the entire\r\n    // page, reading a profile, or treating cached guest HTML as a logout.\r\n    authProbePromise = window.fetch(authProbeUrl(), {\r\n      method: 'GET',\r\n      credentials: 'same-origin',\r\n      cache: 'no-store',\r\n      signal: controller.signal,\r\n      headers: { Accept: 'application/json' }\r\n    }).then(function (response) {\r\n      return response.json().then(function (payload) {\r\n        if (response.ok && payload.success === true && /^(?:gid:\\/\\/shopify\\/Customer\\/)?\\d+$/.test(String(payload.customerId || ''))) return String(payload.customerId).replace(/^gid:\\/\\/shopify\\/Customer\\//, '');\r\n        // A proxy/configuration/network failure is not proof of a logout.\r\n        if (response.status === 401 && payload.error === 'CUSTOMER_MESSAGE_CUSTOMER_REQUIRED') return '';\r\n        return null;\r\n      });\r\n    }).then(function (serverIdentity) {\r\n      if (serverIdentity == null || isNativeAccountActive() || authIdentity(instance.root) !== renderedIdentity) return true;\r\n      emit('florame:auth-confirmed', { authenticated: !!serverIdentity, source: 'signed-proxy' });\r\n      if (serverIdentity !== renderedIdentity) {\r\n        emit('florame:auth-stale', {\r\n          renderedAuthenticated: !!renderedIdentity,\r\n          serverAuthenticated: !!serverIdentity\r\n        });\r\n        window.location.reload();\r\n        return false;\r\n      }\r\n      return true;\r\n    }).catch(function () {\r\n      return true;\r\n    }).finally(function () {\r\n      window.clearTimeout(timeout);\r\n      authProbePromise = null;\r\n    });\r\n    return authProbePromise;\r\n  }\r\n\r\n  function waitForShopifyInboxToggle() {\r\n    var controller = window.FlorameShopifyInbox;\r\n    if (controller && typeof controller.waitForToggle === 'function') return controller.waitForToggle();\r\n    return Promise.resolve(null);\r\n  }\r\n\r\n  function languageOf(root) {\r\n    var raw = (root && root.getAttribute('data-language')) || storageGet(LANGUAGE_KEYS[0]) || document.documentElement.lang || 'it';\r\n    return String(raw).toLowerCase().indexOf('en') === 0 ? 'en' : 'it';\r\n  }\r\n\r\n  function copyFor(root) {\r\n    return COPY[languageOf(root)];\r\n  }\r\n\r\n  function currentLanguage() {\r\n    var value = storageGet(LANGUAGE_KEYS[0]) || storageGet(LANGUAGE_KEYS[1]) || document.documentElement.lang || 'it';\r\n    return String(value).slice(0, 2).toLowerCase();\r\n  }\r\n\r\n  function partnerSlug() {\r\n    try {\r\n      var params = new URLSearchParams(window.location.search);\r\n      var query = params.get('partner') || params.get('partnerSlug');\r\n      if (query) return String(query).trim();\r\n    } catch (_) {}\r\n    try {\r\n      var context = window.FloramePartner && typeof window.FloramePartner.getContext === 'function'\r\n        ? window.FloramePartner.getContext()\r\n        : null;\r\n      if (context && context.active && context.slug) return String(context.slug).trim();\r\n    } catch (_) {}\r\n    return '';\r\n  }\r\n\r\n  function safeCurrentReturnTo() {\r\n    var value = String(window.location.pathname || '/') + String(window.location.search || '') + String(window.location.hash || '');\r\n    return value.indexOf('//') === 0 || /^(?:\\/[a-z]{2}(?:-[a-z]{2})?)?\\/(account|authentication|customer_authentication|customer_identity)(?:\\/|$)/i.test(window.location.pathname) ? '/' : value;\r\n  }\r\n\r\n  function safeReturnTo(value) {\r\n    var fallback = safeCurrentReturnTo();\r\n    if (!value) return fallback;\r\n    try {\r\n      var url = new URL(String(value), window.location.origin);\r\n      if (url.origin !== window.location.origin || url.username || url.password || /\\\\|[\\u0000-\\u001f]/.test(String(value))\r\n        || /^(?:\\/[a-z]{2}(?:-[a-z]{2})?)?\\/(account|authentication|customer_authentication|customer_identity)(?:\\/|$)/i.test(url.pathname)) return fallback;\r\n      var result = String(url.pathname || '/') + String(url.search || '') + String(url.hash || '');\r\n      return result.indexOf('//') === 0 ? fallback : result;\r\n    } catch (_) { return fallback; }\r\n  }\r\n\r\n  function authReturnTo(root) {\r\n    return safeReturnTo(root && root.getAttribute('data-fac-auth-return-to'));\r\n  }\r\n\r\n  function decorateLink(anchor) {\r\n    if (!anchor || !anchor.href) return;\r\n    try {\r\n      var url = new URL(anchor.href, window.location.origin);\r\n      var slug = partnerSlug();\r\n      var lang = currentLanguage();\r\n      var authRoute = anchor.getAttribute('data-fac-auth-route');\r\n      if (['favorites', 'creations'].indexOf(anchor.getAttribute('data-fac-route')) !== -1) {\r\n        url.pathname = lang === 'en' ? '/en' : '/';\r\n      }\r\n      var isAccountHost = String(url.hostname || '').toLowerCase() === 'account.florame.ai';\r\n\r\n      if (slug && !isAccountHost && !url.searchParams.has('partner') && !url.searchParams.has('partnerSlug')) {\r\n        url.searchParams.set('partner', slug);\r\n      }\r\n      if (lang && !url.searchParams.has('lang')) url.searchParams.set('lang', lang);\r\n      if (authRoute === 'login' || authRoute === 'register') {\r\n        url.searchParams.set('return_to', authReturnTo(anchor.closest(ROOT_SELECTOR)));\r\n      }\r\n      anchor.href = url.toString();\r\n    } catch (_) {}\r\n  }\r\n\r\n  function decorateLinks(root) {\r\n    if (!root) return;\r\n    Array.prototype.forEach.call(root.querySelectorAll('a[data-fac-route], a[data-fac-auth-route]'), decorateLink);\r\n  }\r\n\r\n  function rememberAuthContext(root, options) {\r\n    var opts = options || {};\r\n    var returnTo = safeReturnTo(opts.returnTo);\r\n    var intent = String(opts.intent || 'account').trim().slice(0, 80) || 'account';\r\n    if (root) {\r\n      root.setAttribute('data-fac-auth-return-to', returnTo);\r\n      root.setAttribute('data-fac-auth-intent', intent);\r\n    }\r\n    try {\r\n      window.sessionStorage.setItem(AUTH_CONTEXT_KEY, JSON.stringify({\r\n        returnTo: returnTo,\r\n        intent: intent,\r\n        scrollY: Math.max(0, Math.round(window.scrollY || 0)),\r\n        savedAt: Date.now()\r\n      }));\r\n    } catch (_) {}\r\n    return { returnTo: returnTo, intent: intent };\r\n  }\r\n\r\n  function restoreAuthContext(instance) {\r\n    if (!instance || !rootIsAuthenticated(instance.root)) return;\r\n    var saved = null;\r\n    try { saved = JSON.parse(window.sessionStorage.getItem(AUTH_CONTEXT_KEY) || 'null'); } catch (_) {}\r\n    if (!saved || safeReturnTo(saved.returnTo) !== safeCurrentReturnTo()) return;\r\n    try { window.sessionStorage.removeItem(AUTH_CONTEXT_KEY); } catch (_) {}\r\n    if (!Number.isFinite(Number(saved.scrollY))) return;\r\n    window.requestAnimationFrame(function () {\r\n      window.requestAnimationFrame(function () { window.scrollTo(0, Math.max(0, Number(saved.scrollY))); });\r\n    });\r\n  }\r\n\r\n  function focusables(panel) {\r\n    if (!panel) return [];\r\n    return Array.prototype.filter.call(\r\n      panel.querySelectorAll('a[href], button:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'),\r\n      function (node) { return !node.hidden && node.offsetParent !== null && node.getAttribute('aria-hidden') !== 'true'; }\r\n    );\r\n  }\r\n\r\n  function setSwitch(button, options) {\r\n    if (!button) return;\r\n    var opts = options || {};\r\n    button.classList.toggle('is-on', !!opts.on);\r\n    button.classList.toggle('is-checking', !!opts.checking);\r\n    button.classList.toggle('is-error', !!opts.error);\r\n    button.classList.toggle('is-action', !!opts.action);\r\n    button.disabled = !!opts.disabled;\r\n    if (button.hasAttribute('data-fac-haptics')) button.setAttribute('aria-checked', opts.on ? 'true' : 'false');\r\n    else button.setAttribute('aria-pressed', opts.on ? 'true' : 'false');\r\n    var status = button.querySelector('[data-fac-notifications-status], [data-fac-haptics-status]');\r\n    if (status && opts.label) status.textContent = opts.label;\r\n  }\r\n\r\n  function pushLabel(root, state) {\r\n    var c = copyFor(root);\r\n    if (!state || state.supported === false) return c.unsupported;\r\n    if (state.loginRequired) return root.getAttribute('data-language') === 'en' ? 'Sign in to receive order alerts' : 'Accedi per ricevere gli avvisi degli ordini';\r\n    if (state.error) return c.notificationsError;\r\n    if (state.permission === 'denied') return c.denied;\r\n    if (state.platform === 'native') return state.subscribed ? c.nativeActive : c.nativeAction;\r\n    if (state.platform === 'ios' && state.standalone === false && !state.subscribed) return c.installFirst;\r\n    if (state.subscribed) return c.active;\r\n    if (state.optedOut) return c.inactive;\r\n    if (state.permission === 'granted') return c.complete;\r\n    return c.inactive;\r\n  }\r\n\r\n  function applyPushState(instance, state, options) {\r\n    var button = instance.notifications;\r\n    if (!button) return;\r\n    var opts = options || {};\r\n    var denied = state && state.permission === 'denied';\r\n    var unsupported = state && state.supported === false;\r\n    setSwitch(button, {\r\n      on: !!(state && state.subscribed),\r\n      checking: !!opts.checking,\r\n      error: !!opts.error || !!(state && state.error) || denied,\r\n      disabled: !!opts.checking || !!unsupported,\r\n      action: !!opts.action || denied,\r\n      label: opts.label || (opts.error ? copyFor(instance.root).notificationsError : pushLabel(instance.root, state))\r\n    });\r\n    instance.pushState = state || null;\r\n  }\r\n\r\n  function nativePushAvailable() {\r\n    return !!(window.FlorameNative && window.FlorameNative.isNative && typeof window.FlorameNative.requestNotifications === 'function');\r\n  }\r\n\r\n  function renderLocation(instance, state) {\r\n    if (!instance.location || !state) return;\r\n    var en = instance.root.getAttribute('data-language') === 'en';\r\n    var label = state.enabled === false ? (en ? 'GPS off \u00B7 tap to enable' : 'GPS spento \u00B7 tocca per attivare')\r\n      : state.permission === 'granted' ? (state.accuracy === 'approximate' ? (en ? 'Approximate location allowed' : 'Posizione approssimativa consentita') : (en ? 'Location allowed' : 'Posizione consentita'))\r\n      : state.permission === 'denied' ? (en ? 'Blocked \u00B7 tap to enable' : 'Bloccata \u00B7 tocca per attivare')\r\n      : (en ? 'Tap to allow location' : 'Tocca per consentire la posizione');\r\n    instance.location.querySelector('[data-fac-location-status]').textContent = label;\r\n  }\r\n\r\n  function refreshLocation(instance) {\r\n    var api = window.FlorameNative;\r\n    if (!instance.location || !api || !api.isNative || api.canManagePermissions === false || typeof api.locationStatus !== 'function' || typeof api.requestLocationPermission !== 'function') return Promise.resolve();\r\n    instance.location.hidden = false;\r\n    return api.locationStatus().then(function (state) { renderLocation(instance, state); }).catch(function () {\r\n      instance.location.querySelector('[data-fac-location-status]').textContent = copyFor(instance.root).unavailable;\r\n    });\r\n  }\r\n\r\n  function requestLocationAccess(instance) {\r\n    var api = window.FlorameNative;\r\n    if (instance.location.disabled || !api || typeof api.requestLocationPermission !== 'function') return;\r\n    instance.location.disabled = true;\r\n    instance.location.querySelector('[data-fac-location-status]').textContent = copyFor(instance.root).checking;\r\n    Promise.resolve(api.requestLocationPermission()).then(function (state) { renderLocation(instance, state); })\r\n      .catch(function () { return refreshLocation(instance); })\r\n      .finally(function () { instance.location.disabled = false; });\r\n  }\r\n\r\n  function immediateWebPushState(api) {\r\n    if (api && typeof api.peekStatus === 'function') {\r\n      try { return api.peekStatus(); } catch (_) {}\r\n    }\r\n    var supported = 'serviceWorker' in navigator && 'Notification' in window && 'PushManager' in window;\r\n    var permission = 'Notification' in window ? Notification.permission : 'unsupported';\r\n    return {\r\n      supported: supported,\r\n      permission: permission,\r\n      subscribed: supported && permission === 'granted' && !!storageGet(WEB_PUSH_HASH_KEY),\r\n      platform: 'web',\r\n      verified: false\r\n    };\r\n  }\r\n\r\n  function refreshPush(instance) {\r\n    if (!instance.notifications) return Promise.resolve(null);\r\n    var c = copyFor(instance.root);\r\n    var refreshId = (instance.pushRefreshId || 0) + 1;\r\n    instance.pushRefreshId = refreshId;\r\n    if (nativePushAvailable()) {\r\n      if (instance.pushState && instance.pushState.platform === 'native') applyPushState(instance, instance.pushState);\r\n      else setSwitch(instance.notifications, { checking: true, label: c.checking });\r\n      var nativeStatus = typeof window.FlorameNative.notificationStatus === 'function'\r\n        ? window.FlorameNative.notificationStatus()\r\n        : window.FlorameNative.requestNotifications({ prompt: false, source: 'account_center_status' });\r\n      return Promise.resolve(nativeStatus)\r\n        .then(function (state) {\r\n          if (refreshId !== instance.pushRefreshId) return instance.pushState;\r\n          var normalized = state || { supported: true, subscribed: false, permission: 'default', platform: 'native' };\r\n          normalized.platform = 'native';\r\n          instance.nativePushActive = !!normalized.subscribed;\r\n          applyPushState(instance, normalized, { action: !normalized.subscribed });\r\n          return normalized;\r\n        })\r\n        .catch(function (error) {\r\n          if (refreshId !== instance.pushRefreshId) return instance.pushState;\r\n          var latest = window.__florameNativePermissions && window.__florameNativePermissions.notifications;\r\n          var fallback = Object.assign({}, instance.pushState || {}, latest || {}, { supported: true, subscribed: false, platform: 'native' });\r\n          fallback.loginRequired = /Accedi|Sign in|collegate all.account/i.test(error && error.message || '');\r\n          instance.nativePushActive = false;\r\n          applyPushState(instance, fallback, { action: true, error: !fallback.loginRequired, label: fallback.loginRequired || fallback.permission === 'denied' ? pushLabel(instance.root, fallback) : c.notificationsError });\r\n          return fallback;\r\n        });\r\n    }\r\n\r\n    var api = window.FlorameWebPush;\r\n    var immediate = immediateWebPushState(api);\r\n    applyPushState(instance, immediate);\r\n    if (!api || typeof api.status !== 'function') {\r\n      return Promise.resolve(immediate);\r\n    }\r\n\r\n    return Promise.resolve(api.status()).then(function (state) {\r\n      if (refreshId !== instance.pushRefreshId) return instance.pushState;\r\n      applyPushState(instance, state || { supported: false });\r\n      return state;\r\n    }).catch(function () {\r\n      if (refreshId !== instance.pushRefreshId) return instance.pushState;\r\n      applyPushState(instance, instance.pushState || { supported: true }, { error: true, label: c.unavailable });\r\n      return null;\r\n    });\r\n  }\r\n\r\n  function togglePush(instance) {\r\n    if (!instance || !instance.notifications || instance.notifications.disabled) return;\r\n    instance.pushRefreshId = (instance.pushRefreshId || 0) + 1;\r\n    var c = copyFor(instance.root);\r\n    if (!nativePushAvailable() && instance.pushState && instance.pushState.permission === 'denied') {\r\n      applyPushState(instance, instance.pushState, { action: true, error: true, label: c.deniedHelp });\r\n      return;\r\n    }\r\n    if (nativePushAvailable()) {\r\n      setSwitch(instance.notifications, { on: !!(instance.pushState && instance.pushState.subscribed), checking: true, disabled: true, action: true, label: c.checking });\r\n      Promise.resolve(window.FlorameNative.requestNotifications({ prompt: true, source: 'account_center' }))\r\n        .then(function (result) {\r\n          var latest = window.__florameNativePermissions && window.__florameNativePermissions.notifications;\r\n          var state = Object.assign({ supported: true }, result || {}, { platform: 'native' });\r\n          if (latest && latest.permission !== 'granted') { state.permission = latest.permission; state.subscribed = false; }\r\n          instance.nativePushActive = !!state.subscribed;\r\n          applyPushState(instance, state, { action: !state.subscribed });\r\n        })\r\n        .catch(function (error) {\r\n          var latest = window.__florameNativePermissions && window.__florameNativePermissions.notifications;\r\n          var denied = latest && latest.permission === 'denied' || error && (error.permission === 'denied' || error.permission === 'prompt-with-rationale');\r\n          instance.nativePushActive = false;\r\n          var state = Object.assign({}, latest || {}, { supported: true, subscribed: false, permission: denied ? 'denied' : latest && latest.permission || 'default', platform: 'native' });\r\n          state.loginRequired = /Accedi|Sign in|collegate all.account/i.test(error && error.message || '');\r\n          applyPushState(instance, state, { action: true, error: !state.loginRequired, label: state.loginRequired ? pushLabel(instance.root, state) : denied ? c.denied : c.notificationsError });\r\n        });\r\n      return;\r\n    }\r\n\r\n    var api = window.FlorameWebPush;\r\n    if (!api || typeof api.setEnabled !== 'function') {\r\n      applyPushState(instance, { supported: true }, { error: true, label: c.unavailable });\r\n      return;\r\n    }\r\n    var target = !(instance.pushState && instance.pushState.subscribed);\r\n    setSwitch(instance.notifications, { on: target, checking: true, disabled: true, label: c.checking });\r\n    Promise.resolve(api.setEnabled(target))\r\n      .then(function (state) { applyPushState(instance, state || { supported: true, subscribed: target }); })\r\n      .catch(function () { refreshPush(instance).then(function () {\r\n        if (!instance.pushState || instance.pushState.permission !== 'denied') {\r\n          setSwitch(instance.notifications, { on: !!(instance.pushState && instance.pushState.subscribed), error: true, label: instance.pushState && instance.pushState.loginRequired ? pushLabel(instance.root, instance.pushState) : c.notificationsError });\r\n        }\r\n      }); });\r\n  }\r\n\r\n  function hapticsSupported() {\r\n    try {\r\n      if (window.FlorameHaptics && typeof window.FlorameHaptics.supported === 'function') return window.FlorameHaptics.supported();\r\n      if (typeof navigator === 'undefined' || typeof navigator.vibrate !== 'function') return false;\r\n      var userAgent = String(navigator.userAgent || '');\r\n      var isIos = /iPad|iPhone|iPod/i.test(userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\r\n      var isMobile = navigator.userAgentData && typeof navigator.userAgentData.mobile === 'boolean'\r\n        ? navigator.userAgentData.mobile\r\n        : /Android|Mobi/i.test(userAgent);\r\n      return !isIos && isMobile;\r\n    } catch (_) {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  function hapticsEnabled() {\r\n    try {\r\n      if (window.FlorameHaptics && typeof window.FlorameHaptics.enabled === 'function') return window.FlorameHaptics.enabled();\r\n    } catch (_) {}\r\n    return storageGet(HAPTICS_KEY) !== '0';\r\n  }\r\n\r\n  function refreshHaptics(instance) {\r\n    if (!instance.haptics) return;\r\n    var c = copyFor(instance.root);\r\n    instance.haptics.hidden = !hapticsSupported();\r\n    if (instance.haptics.hidden) return;\r\n    var enabled = hapticsEnabled();\r\n    setSwitch(instance.haptics, { on: enabled, label: enabled ? c.hapticsOn : c.hapticsOff });\r\n  }\r\n\r\n  function toggleHaptics(instance) {\r\n    if (!instance || !instance.haptics || instance.haptics.disabled) return;\r\n    var next = !hapticsEnabled();\r\n    try {\r\n      if (window.FlorameHaptics && typeof window.FlorameHaptics.setEnabled === 'function') {\r\n        next = window.FlorameHaptics.setEnabled(next);\r\n      } else {\r\n        storageSet(HAPTICS_KEY, next ? '1' : '0');\r\n        emit('florame:hapticschange', { enabled: next });\r\n      }\r\n    } catch (_) {\r\n      storageSet(HAPTICS_KEY, next ? '1' : '0');\r\n    }\r\n    refreshHaptics(instance);\r\n    if (next && window.FlorameHaptics && typeof window.FlorameHaptics.vibrate === 'function') {\r\n      try { window.FlorameHaptics.vibrate([12, 24, 12]); } catch (_) {}\r\n    }\r\n  }\r\n\r\n  function refreshTheme(instance) {\r\n    storageSet(THEME_KEY, 'light');\r\n    document.documentElement.setAttribute('data-theme', 'light');\r\n    if (instance.theme) instance.theme.value = 'light';\r\n  }\r\n\r\n  function syncInstall(instance, detail) {\r\n    if (!instance.install) return;\r\n    var api = window.FlorameWebPush;\r\n    var native = !!(window.FlorameNative && window.FlorameNative.isNative);\r\n    var installed = detail && typeof detail.installed === 'boolean'\r\n      ? detail.installed\r\n      : !!(api && typeof api.isInstalled === 'function' && api.isInstalled());\r\n    var installable = detail && typeof detail.installable === 'boolean'\r\n      ? detail.installable\r\n      : document.documentElement.getAttribute('data-florame-pwa-installable') === '1';\r\n    var mobileInstructions = !!(api && ((typeof api.isAppleTouchDevice === 'function' && api.isAppleTouchDevice()) || (typeof api.isAndroidDevice === 'function' && api.isAndroidDevice())));\r\n    instance.install.hidden = native || installed || !api || typeof api.showInstall !== 'function' || (!installable && !mobileInstructions);\r\n  }\r\n\r\n  function openInstall(instance) {\r\n    if (!instance.install || instance.install.hidden) return;\r\n    var api = window.FlorameWebPush;\r\n    if (!api || typeof api.showInstall !== 'function') return;\r\n    instance.install.setAttribute('aria-busy', 'true');\r\n    var status = instance.install.querySelector('small');\r\n    var previous = status ? status.textContent : '';\r\n    if (status) status.textContent = copyFor(instance.root).installing;\r\n    try { api.showInstall(); } catch (_) {}\r\n    window.setTimeout(function () {\r\n      instance.install.removeAttribute('aria-busy');\r\n      if (status) status.textContent = previous;\r\n      syncInstall(instance);\r\n    }, 900);\r\n  }\r\n\r\n  function changeLanguage(instance) {\r\n    var select = instance.language;\r\n    if (!select) return;\r\n    var language = String(select.value || 'it').slice(0, 8);\r\n    // Only expose locales whose custom Florame flows are ready.\r\n    if (language !== 'it' && language !== 'en') return;\r\n    if (window.FlorameLanguage) {\r\n      window.FlorameLanguage.change(language, select.form);\r\n      return;\r\n    }\r\n    LANGUAGE_KEYS.forEach(function (key) { storageSet(key, language); });\r\n    var next = language.slice(0, 2).toLowerCase() === 'en' ? 'en' : 'it';\r\n    instance.root.setAttribute('data-language', next);\r\n    // Guides are authored in both languages on the server. Loading the matching\r\n    // route preserves the complete copy, metadata and FAQ schema together.\r\n    var guide = document.querySelector('[data-florame-guide-language]');\r\n    if (guide && guide.getAttribute('data-florame-guide-language') !== next) {\r\n      var guideUrl = new URL(window.location.href);\r\n      var guidePath = guideUrl.pathname.replace(/^\\/en(?=\\/|$)/, '');\r\n      guideUrl.pathname = (next === 'en' ? '/en' : '') + (guidePath || '/');\r\n      guideUrl.searchParams.delete('lang');\r\n      guideUrl.searchParams.delete('locale');\r\n      window.location.assign(guideUrl.href);\r\n      return;\r\n    }\r\n    if (typeof window.__florameLoadNativeI18n === 'function') {\r\n      window.__florameLoadNativeI18n(next).catch(function () {});\r\n    } else if (window.FlorameI18n && typeof window.FlorameI18n.setLanguage === 'function') {\r\n      window.FlorameI18n.setLanguage(next);\r\n    } else {\r\n      document.documentElement.setAttribute('lang', next);\r\n      emit('florame:native-language-change', { language: next });\r\n    }\r\n    refreshCapabilities(instance);\r\n    refreshLastGeneration(instance);\r\n  }\r\n\r\n  function refreshCapabilities(instance) {\r\n    if (!instance) return Promise.resolve();\r\n    decorateLinks(instance.root);\r\n    refreshHaptics(instance);\r\n    refreshTheme(instance);\r\n    syncInstall(instance);\r\n    refreshLocation(instance);\r\n    return refreshPush(instance);\r\n  }\r\n\r\n  function AccountCenter(root) {\r\n    this.root = root;\r\n    this.panel = root.querySelector('.fac__panel');\r\n    this.notifications = root.querySelector('[data-fac-notifications]');\r\n    this.location = root.querySelector('[data-fac-location]');\r\n    this.haptics = root.querySelector('[data-fac-haptics]');\r\n    this.theme = root.querySelector('[data-fac-theme]');\r\n    this.language = root.querySelector('[data-fac-language]');\r\n    this.install = root.querySelector('[data-fac-install]');\r\n    this.helpButton = root.querySelector('[data-fac-help]');\r\n    this.helpView = root.querySelector('[data-fac-help-view]');\r\n    this.helpBack = root.querySelector('[data-fac-help-back]');\r\n    this.chatButtons = root.querySelectorAll('[data-fac-chat]');\r\n    this.chatStatus = root.querySelector('[data-fac-chat-status]');\r\n    this.lastGeneration = root.querySelector('[data-fac-last-generation]');\r\n    this.lastGenerationOpen = root.querySelector('[data-fac-last-generation-open]');\r\n    this.lastGenerationImage = root.querySelector('[data-fac-last-generation-image]');\r\n    this.lastGenerationFallback = root.querySelector('[data-fac-last-generation-fallback]');\r\n    this.lastGenerationTitle = root.querySelector('[data-fac-last-generation-title]');\r\n    this.lastGenerationStatus = root.querySelector('[data-fac-last-generation-status]');\r\n    this.lastGenerationJob = null;\r\n    this.title = root.querySelector('.fac__title');\r\n    this.description = root.querySelector('.fac__description');\r\n    this.scroll = root.querySelector('.fac__scroll');\r\n    this.accountTitle = this.title ? this.title.textContent : '';\r\n    this.accountDescription = this.description ? this.description.textContent : '';\r\n    this.lastTrigger = null;\r\n    this.restoreTriggerFocusOnClose = true;\r\n    this.closeTimer = 0;\r\n    this.openFrame = 0;\r\n    this.pushState = null;\r\n    this.pushRefreshId = 0;\r\n    this.nativePushActive = false;\r\n    this.dragState = null;\r\n    this.bind();\r\n    decorateLinks(root);\r\n    syncClientAuthFromServer(this);\r\n    lastAuthProbeAt = Date.now();\r\n    refreshHaptics(this);\r\n    refreshTheme(this);\r\n    syncInstall(this);\r\n    refreshLastGeneration(this);\r\n    syncLastGeneration(this, { force: true });\r\n    refreshDraft(this);\r\n    window.FlorameAvatar?.paint?.(this.root);\r\n  }\r\n\r\n  AccountCenter.prototype.bind = function () {\r\n    var self = this;\r\n    Array.prototype.forEach.call(this.root.querySelectorAll('[data-fac-close]'), function (button) {\r\n      button.addEventListener('click', function () { self.close(); });\r\n    });\r\n    if (this.notifications) this.notifications.addEventListener('click', function () { togglePush(self); });\r\n    if (this.location) this.location.addEventListener('click', function () { requestLocationAccess(self); });\r\n    if (this.haptics) this.haptics.addEventListener('click', function () { toggleHaptics(self); });\r\n    if (this.language) this.language.addEventListener('change', function () { changeLanguage(self); });\r\n    if (this.install) this.install.addEventListener('click', function () { openInstall(self); });\r\n    if (this.helpButton) this.helpButton.addEventListener('click', function () { self.openHelp(); });\r\n    if (this.helpBack) this.helpBack.addEventListener('click', function () { self.closeHelp(); });\r\n    this.root.querySelectorAll('[data-fac-avatar-open]').forEach(function (button) { button.addEventListener('click', function () { openAvatar(self,button); }); });\r\n    this.root.addEventListener('florame:sheet-back', function (event) {\r\n      if (self.root.classList.contains('is-avatar-view')) { event.preventDefault(); window.FlorameAvatarEditor?.close?.(); }\r\n      else if (self.root.classList.contains('is-help-view')) { event.preventDefault(); self.closeHelp(); }\r\n    });\r\n    if (this.lastGenerationOpen) this.lastGenerationOpen.addEventListener('click', function () { openLastGeneration(self); });\r\n    if (this.lastGenerationImage) this.lastGenerationImage.addEventListener('error', function () {\r\n      self.lastGenerationImage.hidden = true;\r\n      self.lastGenerationImage.removeAttribute('src');\r\n      if (self.lastGenerationFallback) self.lastGenerationFallback.hidden = false;\r\n    });\r\n    Array.prototype.forEach.call(this.chatButtons, function (button) {\r\n      button.addEventListener('click', function (event) { self.openChat(event); });\r\n    });\r\n    this.root.addEventListener('keydown', function (event) {\r\n      if (self.panel.hasAttribute('data-florame-bottom-sheet-enhanced')) return;\r\n      if (event.key === 'Escape') { event.preventDefault(); self.close(); return; }\r\n      if (event.key !== 'Tab') return;\r\n      var items = focusables(self.panel);\r\n      if (!items.length) { event.preventDefault(); self.panel.focus(); return; }\r\n      var first = items[0];\r\n      var last = items[items.length - 1];\r\n      if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); }\r\n      else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); }\r\n    });\r\n    this.bindSwipeToClose();\r\n  };\r\n\r\n  AccountCenter.prototype.bindSwipeToClose = function () {\r\n    var self = this;\r\n    var surfaces = this.root.querySelectorAll('[data-fac-drag-surface]');\r\n\r\n    function resetDrag() {\r\n      self.dragState = null;\r\n      self.root.classList.remove('is-dragging');\r\n      self.root.style.removeProperty('--fac-drag-y');\r\n      self.root.style.removeProperty('--fac-drag-backdrop');\r\n    }\r\n\r\n    function onPointerDown(event) {\r\n      if (self.panel?.hasAttribute('data-florame-bottom-sheet-enhanced')) return;\r\n      if (self.root.hidden || !self.root.classList.contains('is-open')) return;\r\n      if (event.button != null && event.button !== 0) return;\r\n      if (event.target && event.target.closest && event.target.closest('button,a,input,select,textarea')) return;\r\n      self.dragState = {\r\n        pointerId: event.pointerId,\r\n        startY: event.clientY,\r\n        lastY: event.clientY,\r\n        lastTime: event.timeStamp || Date.now(),\r\n        velocity: 0\r\n      };\r\n      self.root.classList.remove('is-swipe-closing');\r\n      self.root.classList.add('is-dragging');\r\n      try { event.currentTarget.setPointerCapture(event.pointerId); } catch (_) {}\r\n    }\r\n\r\n    function onPointerMove(event) {\r\n      var state = self.dragState;\r\n      if (!state || state.pointerId !== event.pointerId) return;\r\n      var y = Number(event.clientY || 0);\r\n      var delta = Math.max(0, y - state.startY);\r\n      var now = event.timeStamp || Date.now();\r\n      var elapsed = Math.max(1, now - state.lastTime);\r\n      state.velocity = Math.max(0, (y - state.lastY) / elapsed);\r\n      state.lastY = y;\r\n      state.lastTime = now;\r\n      self.root.style.setProperty('--fac-drag-y', delta.toFixed(1) + 'px');\r\n      self.root.style.setProperty('--fac-drag-backdrop', String(Math.max(.18, 1 - delta / Math.max(280, window.innerHeight * .72))));\r\n      if (delta > 4) event.preventDefault();\r\n    }\r\n\r\n    function onPointerEnd(event) {\r\n      var state = self.dragState;\r\n      if (!state || state.pointerId !== event.pointerId) return;\r\n      var delta = Math.max(0, Number(event.clientY || state.lastY) - state.startY);\r\n      var threshold = Math.max(92, Math.min(140, window.innerHeight * .13));\r\n      var shouldClose = event.type !== 'pointercancel' && (delta >= threshold || (delta >= 48 && state.velocity > .55));\r\n      try { event.currentTarget.releasePointerCapture(event.pointerId); } catch (_) {}\r\n      resetDrag();\r\n      if (shouldClose) {\r\n        self.root.classList.add('is-swipe-closing');\r\n        self.close();\r\n      }\r\n    }\r\n\r\n    Array.prototype.forEach.call(surfaces, function (surface) {\r\n      surface.addEventListener('pointerdown', onPointerDown);\r\n      surface.addEventListener('pointermove', onPointerMove);\r\n      surface.addEventListener('pointerup', onPointerEnd);\r\n      surface.addEventListener('pointercancel', onPointerEnd);\r\n    });\r\n  };\r\n\r\n  AccountCenter.prototype.open = function (trigger, restoreTriggerFocusOnClose) {\r\n    var self = this;\r\n    if (!accountStylesReady()) {\r\n      var styleEpoch = this.styleOpenEpoch = (this.styleOpenEpoch || 0) + 1;\r\n      if (trigger) trigger.setAttribute('aria-busy', 'true');\r\n      return ensureAccountStyles().then(function () {\r\n        if (self.styleOpenEpoch === styleEpoch) self.open(trigger, restoreTriggerFocusOnClose);\r\n      }).catch(function () {\r\n        if (self.styleOpenEpoch !== styleEpoch) return;\r\n        window.FlorameUI?.toast({ tone: 'error', title: languageOf(self.root) === 'en' ? 'Menu unavailable' : 'Men\u00F9 non disponibile', detail: languageOf(self.root) === 'en' ? 'Check your connection and try again.' : 'Controlla la connessione e riprova.' });\r\n      }).finally(function () { if (trigger) trigger.removeAttribute('aria-busy'); });\r\n    }\r\n    if (this.closeTimer) { window.clearTimeout(this.closeTimer); this.closeTimer = 0; }\r\n    if (this.openFrame) window.cancelAnimationFrame(this.openFrame);\r\n    this.lastTrigger = trigger || document.activeElement;\r\n    this.restoreTriggerFocusOnClose = restoreTriggerFocusOnClose !== false;\r\n    delete this.pendingCloseFocus;\r\n    this.dragState = null;\r\n    this.root.classList.remove('is-dragging', 'is-swipe-closing');\r\n    this.root.style.removeProperty('--fac-drag-y');\r\n    this.root.style.removeProperty('--fac-drag-backdrop');\r\n    this.root.hidden = false;\r\n    window.FlorameBottomSheets?.resumeOpen?.(this.root);\r\n    refreshDraft(this);\r\n    var settings = this.root.querySelector('.fac__settings');\r\n    if (settings) settings.open = false;\r\n    document.body.classList.add('fac-scroll-locked');\r\n    if (trigger) trigger.setAttribute('aria-expanded', 'true');\r\n    // The shared sheet engine supplies the entering pose without a forced layout.\r\n    if (!this.panel.hasAttribute('data-florame-bottom-sheet-enhanced')) this.panel.getBoundingClientRect();\r\n    this.openFrame = window.requestAnimationFrame(function () {\r\n      self.openFrame = 0;\r\n      if (self.root.hidden) return;\r\n      self.root.classList.add('is-open');\r\n      self.panel.focus({ preventScroll: true });\r\n      // Give the opening surface one frame before refreshing storage, auth and push.\r\n      window.requestAnimationFrame(function () {\r\n        if (self.root.hidden) return;\r\n        refreshLastGeneration(self);\r\n        syncLastGeneration(self);\r\n        refreshCapabilities(self);\r\n        ensureAuthFresh(self);\r\n        window.FlorameAvatar?.load?.().catch(function () {});\r\n      });\r\n    });\r\n    emit('florame:account-center-open', { authenticated: this.root.getAttribute('data-authenticated') === 'true' });\r\n  };\r\n\r\n  AccountCenter.prototype.clearHelpContext = function () {\r\n    this.root.querySelector('[data-fac-help-context]')?.remove();\r\n    var email = this.helpView?.querySelector('.fac__contacts a[href^=\"mailto:\"]');\r\n    if (email && this.helpEmailHref) email.setAttribute('href', this.helpEmailHref);\r\n    this.helpContext = null;\r\n  };\r\n\r\n  AccountCenter.prototype.setHelpContext = function (context) {\r\n    this.clearHelpContext();\r\n    if (!context?.summary || !this.helpView) return;\r\n    this.helpContext = context;\r\n    var self = this, en = languageOf(this.root) === 'en';\r\n    var group = document.createElement('div');\r\n    group.className = 'fac__faq fac__message-context';\r\n    group.setAttribute('data-fac-help-context', '');\r\n    var details = document.createElement('details'), summary = document.createElement('summary');\r\n    summary.textContent = en ? 'Details to share with support' : 'Dettagli utili da condividere';\r\n    details.appendChild(summary);\r\n    var copy = document.createElement('p');\r\n    copy.textContent = [context.title, context.description].filter(Boolean).join(' \u00B7 ');\r\n    details.appendChild(copy);\r\n    var input = document.createElement('textarea');\r\n    input.readOnly = true; input.value = context.summary;\r\n    input.setAttribute('aria-label', summary.textContent);\r\n    details.appendChild(input);\r\n    var note = document.createElement('p');\r\n    note.textContent = en ? 'Copy these details into the support chat; the email already includes them.' : 'Copia questi dettagli nella chat di assistenza; nell\u2019email sono gi\u00E0 preparati.';\r\n    details.appendChild(note);\r\n    var button = document.createElement('button'); button.type = 'button';\r\n    button.className = 'fac__help-back'; button.textContent = en ? 'Copy details' : 'Copia dettagli';\r\n    button.addEventListener('click', async function () {\r\n      try {\r\n        await navigator.clipboard.writeText(context.summary);\r\n        if (self.helpContext === context && self.chatStatus) self.chatStatus.textContent = en ? 'Details copied. Paste them into the support chat.' : 'Dettagli copiati. Incollali nella chat di assistenza.';\r\n      } catch (_) { if (self.helpContext === context) { input.focus(); input.select(); } }\r\n    });\r\n    details.appendChild(button);\r\n    if (typeof context.onReturn === 'function') {\r\n      var back = document.createElement('button'); back.type = 'button'; back.className = 'fac__help-back';\r\n      back.textContent = en ? (context.canViewOrder ? 'View order details' : 'Back to florist chat') : context.returnLabel;\r\n      back.addEventListener('click', function () {\r\n        var observer = new MutationObserver(function () {\r\n          if (!self.root.hidden) return;\r\n          observer.disconnect(); context.onReturn();\r\n        });\r\n        observer.observe(self.root, { attributes: true, attributeFilter: ['hidden'] });\r\n        self.close(false);\r\n        window.setTimeout(function () { observer.disconnect(); }, 1500);\r\n      });\r\n      details.appendChild(back);\r\n    }\r\n    group.appendChild(details);\r\n    this.helpView.querySelector('.fac__help-intro').after(group);\r\n    var email = this.helpView.querySelector('.fac__contacts a[href^=\"mailto:\"]');\r\n    if (email) {\r\n      this.helpEmailHref = email.getAttribute('href');\r\n      email.setAttribute('href', this.helpEmailHref + '&body=' + encodeURIComponent(context.summary));\r\n    }\r\n  };\r\n\r\n  AccountCenter.prototype.openHelp = function (context) {\r\n    if (!this.helpView) return;\r\n    this.setHelpContext(context);\r\n    var c = copyFor(this.root);\r\n    this.helpView.hidden = false;\r\n    this.root.classList.add('is-help-view');\r\n    if (this.title) this.title.textContent = c.helpTitle;\r\n    if (this.description) this.description.textContent = c.helpDescription;\r\n    if (this.chatStatus) this.chatStatus.textContent = '';\r\n    if (this.scroll) this.scroll.scrollTop = 0;\r\n    var firstSummary = this.helpView.querySelector('summary');\r\n    if (firstSummary && typeof firstSummary.focus === 'function') firstSummary.focus({ preventScroll: true });\r\n    this.animateView(1);\r\n    emit('florame:account-help-open');\r\n  };\r\n\r\n  AccountCenter.prototype.closeHelp = function (restoreFocus) {\r\n    this.clearHelpContext();\r\n    var wasOpen = this.root.classList.contains('is-help-view');\r\n    this.root.classList.remove('is-help-view');\r\n    if (this.helpView) this.helpView.hidden = true;\r\n    if (this.title) this.title.textContent = this.accountTitle;\r\n    if (this.description) this.description.textContent = this.accountDescription;\r\n    if (this.chatStatus) this.chatStatus.textContent = '';\r\n    if (this.scroll) this.scroll.scrollTop = 0;\r\n    if (restoreFocus !== false && this.helpButton && typeof this.helpButton.focus === 'function') this.helpButton.focus({ preventScroll: true });\r\n    if (wasOpen && restoreFocus !== false) this.animateView(-1);\r\n  };\r\n\r\n  AccountCenter.prototype.animateView = function (direction) {\r\n    if (!this.scroll || this.root.hidden || !this.root.classList.contains('is-open')) return;\r\n    if (this.viewAnimation) this.viewAnimation.cancel();\r\n    var reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n    this.viewAnimation = this.scroll.animate([\r\n      { opacity: .35, transform: reduced ? 'none' : 'translateX(' + (direction * 14) + 'px)' },\r\n      { opacity: 1, transform: 'none' }\r\n    ], { duration: reduced ? 100 : 180, easing: 'cubic-bezier(.2,.8,.2,1)' });\r\n  };\r\n\r\n  AccountCenter.prototype.openChat = function (event) {\r\n    var self = this;\r\n    var c = copyFor(this.root);\r\n    var sourceButton = event && event.currentTarget ? event.currentTarget : null;\r\n    try { event.preventDefault(); event.stopPropagation(); } catch (_) {}\r\n    if (sourceButton) sourceButton.setAttribute('aria-busy', 'true');\r\n    if (this.chatStatus) this.chatStatus.textContent = c.chatOpening;\r\n\r\n    waitForShopifyInboxToggle().then(function (button) {\r\n      if (!button) {\r\n        if (sourceButton) sourceButton.removeAttribute('aria-busy');\r\n        if (self.chatStatus) self.chatStatus.textContent = c.chatUnavailable;\r\n        emit('florame:shopify-inbox-unavailable');\r\n        return;\r\n      }\r\n\r\n      self.close(false);\r\n      window.setTimeout(function () {\r\n        var controller = window.FlorameShopifyInbox;\r\n        var opener = controller && typeof controller.open === 'function'\r\n          ? controller.open\r\n          : window.openShopifyInboxFromMenu;\r\n        var result = typeof opener === 'function'\r\n          ? opener({ preventDefault: function () {}, stopPropagation: function () {} })\r\n          : false;\r\n        Promise.resolve(result).then(function (opened) {\r\n          if (sourceButton) sourceButton.removeAttribute('aria-busy');\r\n          if (opened === false) {\r\n            emit('florame:shopify-inbox-unavailable');\r\n            return;\r\n          }\r\n          emit('florame:shopify-inbox-opened');\r\n        });\r\n      }, 260);\r\n    });\r\n  };\r\n\r\n  AccountCenter.prototype.close = function (restoreFocus) {\r\n    var self = this;\r\n    this.styleOpenEpoch = (this.styleOpenEpoch || 0) + 1;\r\n    if (this.openFrame) { window.cancelAnimationFrame(this.openFrame); this.openFrame = 0; }\r\n    if (this.root.hidden) return;\r\n    if (this.panel.hasAttribute('data-florame-bottom-sheet-enhanced') && !this.root.__florameBottomSheetReplayClose && this.root.classList.contains('is-open')) {\r\n      this.pendingCloseFocus = restoreFocus;\r\n      if (this.root.__florameBottomSheetClosing || window.FlorameBottomSheets?.requestClose?.(this.root)) return;\r\n    }\r\n    if (Object.prototype.hasOwnProperty.call(this, 'pendingCloseFocus')) {\r\n      restoreFocus = this.pendingCloseFocus;\r\n      delete this.pendingCloseFocus;\r\n    }\r\n    if (this.viewAnimation) this.viewAnimation.cancel();\r\n    this.root.classList.remove('is-open');\r\n    document.body.classList.remove('fac-scroll-locked');\r\n    if (this.lastTrigger) this.lastTrigger.setAttribute('aria-expanded', 'false');\r\n    this.closeTimer = window.setTimeout(function () {\r\n      self.root.hidden = true;\r\n      self.root.classList.remove('is-dragging', 'is-swipe-closing');\r\n      self.root.style.removeProperty('--fac-drag-y');\r\n      self.root.style.removeProperty('--fac-drag-backdrop');\r\n      self.dragState = null;\r\n      self.closeHelp(false);\r\n      self.closeTimer = 0;\r\n    }, this.root.__florameBottomSheetReplayClose ? 0 : 240);\r\n    var shouldRestoreFocus = restoreFocus === true || (restoreFocus !== false && this.restoreTriggerFocusOnClose);\r\n    if (shouldRestoreFocus && this.lastTrigger && typeof this.lastTrigger.focus === 'function') {\r\n      try { this.lastTrigger.focus({ preventScroll: true }); } catch (_) { this.lastTrigger.focus(); }\r\n    } else if (this.lastTrigger && typeof this.lastTrigger.blur === 'function') {\r\n      // iOS Safari can keep a native ring around a tapped trigger after the sheet closes.\r\n      // Pointer users do not need focus restoration; keyboard and assistive activation still do.\r\n      this.lastTrigger.blur();\r\n    }\r\n    emit('florame:account-center-close');\r\n  };\r\n\r\n  function init(scope) {\r\n    var context = scope && scope.querySelectorAll ? scope : document;\r\n    var roots = [];\r\n    if (scope && scope.matches && scope.matches(ROOT_SELECTOR)) roots.push(scope);\r\n    Array.prototype.push.apply(roots, context.querySelectorAll(ROOT_SELECTOR));\r\n    roots.forEach(function (root) {\r\n      if (root.__florameAccountCenter) return;\r\n      var instance = new AccountCenter(root);\r\n      root.__florameAccountCenter = instance;\r\n      instances.push(instance);\r\n    });\r\n    Array.prototype.forEach.call(document.querySelectorAll(TRIGGER_SELECTOR), function (trigger) {\r\n      trigger.setAttribute('aria-haspopup', 'dialog');\r\n      trigger.setAttribute('aria-controls', 'FlorameAccountCenter');\r\n      if (!trigger.hasAttribute('aria-expanded')) trigger.setAttribute('aria-expanded', 'false');\r\n      trigger.style.touchAction = 'manipulation';\r\n    });\r\n    return instances;\r\n  }\r\n\r\n  function firstInstance() {\r\n    if (!instances.length) init(document);\r\n    return instances[0] || null;\r\n  }\r\n\r\n  function openUtility(instance, kind, options) {\r\n    if (!instance) return null;\r\n    var utility = String(kind || '').toLowerCase();\r\n    refreshCapabilities(instance);\r\n    if (utility === 'install') {\r\n      openInstall(instance);\r\n      return instance;\r\n    }\r\n    if (utility === 'last_generation' || utility === 'latest_generation') {\r\n      openLastGeneration(instance);\r\n      return instance;\r\n    }\r\n\r\n    var opening = instance.open(options?.trigger || null, !!options?.trigger);\r\n    Promise.resolve(opening).then(function () { window.requestAnimationFrame(function () {\r\n      if (instance.root.hidden || instance.root.__florameBottomSheetClosing || !instance.root.classList.contains('is-open')) return;\r\n      if (utility === 'help') {\r\n        instance.openHelp(options?.helpContext);\r\n        return;\r\n      }\r\n      if (utility === 'club' || utility === 'florame_club') {\r\n        var clubEntry = instance.root.querySelector('[data-fac-loyalty-open], .fac__loyalty-entry--guest');\r\n        if (!clubEntry || clubEntry.hidden || instance.root.getAttribute('data-loyalty-available') !== 'true') return;\r\n        if (rootIsAuthenticated(instance.root) && window.FlorameCustomerLoyalty && typeof window.FlorameCustomerLoyalty.open === 'function') {\r\n          window.setTimeout(function () { window.FlorameCustomerLoyalty.open(clubEntry); }, 120);\r\n          return;\r\n        }\r\n        try { clubEntry.scrollIntoView({ behavior: 'smooth', block: 'center' }); } catch (_) {}\r\n        window.setTimeout(function () {\r\n          try { clubEntry.focus({ preventScroll: true }); } catch (_) { clubEntry.focus(); }\r\n        }, 180);\r\n        return;\r\n      }\r\n      if (utility !== 'language' || !instance.language) return;\r\n      try { instance.language.scrollIntoView({ behavior: 'smooth', block: 'center' }); } catch (_) {}\r\n      window.setTimeout(function () {\r\n        try { instance.language.focus({ preventScroll: true }); } catch (_) { instance.language.focus(); }\r\n      }, 180);\r\n    }); });\r\n    return instance;\r\n  }\r\n\r\n  function activateTrigger(trigger, restoreTriggerFocusOnClose) {\r\n    var instance = firstInstance();\r\n    if (instance) instance.open(trigger, restoreTriggerFocusOnClose);\r\n    return instance;\r\n  }\r\n\r\n  function isCustomerLoginLink(anchor) {\r\n    if (!anchor || !anchor.href || anchor.hasAttribute('data-florame-auth-native-bypass')) return false;\r\n    try {\r\n      var url = new URL(anchor.href, window.location.origin);\r\n      var host = String(url.hostname || '').toLowerCase();\r\n      var ownHost = String(window.location.hostname || '').toLowerCase();\r\n      var normalizedPath = String(url.pathname || '').replace(/^\\/[a-z]{2}(?:-[a-z]{2})?(?=\\/)/i, '');\r\n      return (host === ownHost || host === 'account.florame.ai') && (normalizedPath === CUSTOMER_LOGIN_PATH || normalizedPath === '/account/login');\r\n    } catch (_) {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  function loginLinkReturnTo(anchor) {\r\n    if (!anchor || !anchor.href) return '';\r\n    try {\r\n      var url = new URL(anchor.href, window.location.origin);\r\n      return url.searchParams.get('return_to') || url.searchParams.get('return_url') || '';\r\n    } catch (_) {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  function nativeAuthFallbackUrl(context) {\r\n    var url = new URL(CUSTOMER_LOGIN_PATH, window.location.origin);\r\n    url.searchParams.set('return_to', safeReturnTo(context && context.returnTo));\r\n    return url.pathname + url.search;\r\n  }\r\n\r\n  function waitForNativeAccountApi(timeoutMs, closingRoot) {\r\n    return new Promise(function (resolve) {\r\n      var deadline = Date.now() + Math.max(0, Number(timeoutMs || 0));\r\n      function check() {\r\n        var api = window.FlorameShopifyAccountUi;\r\n        var sheets = window.FlorameBottomSheets;\r\n        var menuClosed = !closingRoot || closingRoot.hidden;\r\n        var historySettled = !sheets || typeof sheets.isHistorySettled !== 'function' || sheets.isHistorySettled();\r\n        // Opening during the previous sheet's exit lets its queued history.back\r\n        // cancel a quick/autofilled email submission in WebKit.\r\n        if (menuClosed && historySettled && api && typeof api.open === 'function') { resolve(api); return; }\r\n        if (Date.now() >= deadline) { resolve(null); return; }\r\n        window.setTimeout(check, 32);\r\n      }\r\n      check();\r\n    });\r\n  }\r\n\r\n  function openNativeAuth(instance, context, trigger) {\r\n    var delay = instance && !instance.root.hidden ? 260 : 0;\r\n    if (delay) instance.close(false);\r\n\r\n    window.setTimeout(function () {\r\n      waitForNativeAccountApi(1200, instance && instance.root).then(function (nativeAccount) {\r\n        return nativeAccount\r\n          ? nativeAccount.open({ trigger: trigger || null, intent: context.intent, returnTo: context.returnTo })\r\n          : false;\r\n      }).then(function (opened) {\r\n        if (opened) return;\r\n        emit('florame:shopify-account-unavailable', {\r\n          intent: context.intent,\r\n          returnTo: context.returnTo\r\n        });\r\n        window.location.assign(nativeAuthFallbackUrl(context));\r\n      }).catch(function () {\r\n        window.location.assign(nativeAuthFallbackUrl(context));\r\n      });\r\n    }, delay);\r\n  }\r\n\r\n  function requestAuth(options) {\r\n    var opts = options || {};\r\n    var instance = firstInstance();\r\n    var context = {\r\n      returnTo: safeReturnTo(opts.returnTo),\r\n      intent: String(opts.intent || 'account').trim().slice(0, 80) || 'account'\r\n    };\r\n    if (!opts.force && ((instance && rootIsAuthenticated(instance.root)) || isNativeAccountActive())) {\r\n      emit('florame:auth-ready', {\r\n        authenticated: true,\r\n        intent: context.intent,\r\n        returnTo: context.returnTo\r\n      });\r\n      return instance;\r\n    }\r\n    context = rememberAuthContext(instance && instance.root, context);\r\n    if (instance) decorateLinks(instance.root);\r\n    emit('florame:auth-requested', {\r\n      intent: context.intent,\r\n      returnTo: context.returnTo,\r\n      trigger: opts.trigger || null\r\n    });\r\n    openNativeAuth(instance, context, opts.trigger || null);\r\n    return instance;\r\n  }\r\n\r\n  function authOptionsFromTrigger(trigger) {\r\n    var requestedReturnTo = trigger.getAttribute('data-florame-auth-return-to') || loginLinkReturnTo(trigger);\r\n    return {\r\n      intent: trigger.getAttribute('data-florame-auth-intent') || 'account',\r\n      returnTo: requestedReturnTo || (window.location.pathname + window.location.search + window.location.hash),\r\n      trigger: trigger\r\n    };\r\n  }\r\n\r\n  function cancelPointerActivation(trigger) {\r\n    if (trigger && pendingPointerTrigger && trigger !== pendingPointerTrigger) return;\r\n    if (pointerActivationTimer) window.clearTimeout(pointerActivationTimer);\r\n    pointerActivationTimer = 0;\r\n    pendingPointerTrigger = null;\r\n  }\r\n\r\n  function schedulePointerActivation(trigger) {\r\n    cancelPointerActivation();\r\n    pendingPointerTrigger = trigger;\r\n    pointerActivationTimer = window.setTimeout(function () {\r\n      var queuedTrigger = pendingPointerTrigger;\r\n      pointerActivationTimer = 0;\r\n      pendingPointerTrigger = null;\r\n      if (queuedTrigger && queuedTrigger.isConnected !== false) activateTrigger(queuedTrigger, false);\r\n    }, 380);\r\n  }\r\n\r\n  document.addEventListener('pointerup', function (event) {\r\n    if (event.pointerType !== 'touch' && event.pointerType !== 'pen') return;\r\n    var trigger = event.target && event.target.closest ? event.target.closest(TRIGGER_SELECTOR) : null;\r\n    if (!trigger) return;\r\n    schedulePointerActivation(trigger);\r\n  }, true);\r\n\r\n  document.addEventListener('click', function (event) {\r\n    var logoutLink = event.target && event.target.closest ? event.target.closest('a[href]') : null;\r\n    if (logoutLink && (logoutLink.hasAttribute('data-native-account-logout') || logoutLink.getAttribute('data-fac-auth-route') === 'logout' || logoutLink.classList.contains('profile-menu-item--logout') || /\\/account\\/logout(?:[?#]|$)/.test(logoutLink.href))) {\r\n      emit('florame:auth-logout');\r\n      applyWebCustomerIdentity('', '');\r\n      try { window.sessionStorage.removeItem(AUTH_CONTEXT_KEY); } catch (_) {}\r\n      if (window.FlorameNativeAuth && window.FlorameNativeAuth.isAvailable && typeof window.FlorameNativeAuth.signOut === 'function') {\r\n        event.preventDefault();\r\n        window.FlorameNativeAuth.signOut().then(function () { window.location.assign(logoutLink.href); });\r\n      }\r\n      return;\r\n    }\r\n    var accountLink = event.target && event.target.closest ? event.target.closest('a[href]') : null;\r\n    var accountInstance = firstInstance();\r\n    if (accountLink && !rootIsAuthenticated(accountInstance && accountInstance.root) && !isNativeAccountActive()) {\r\n      var accountTarget;\r\n      try { accountTarget = new URL(accountLink.href, window.location.origin); } catch (_) {}\r\n      if (accountTarget && accountTarget.origin === window.location.origin && /^\\/(?:[a-z]{2}\\/)?pages\\/florame-account\\/?$/.test(accountTarget.pathname)) {\r\n        event.preventDefault();\r\n        event.stopImmediatePropagation();\r\n        requestAuth({ intent: 'account', returnTo: accountTarget.pathname + accountTarget.search, trigger: accountLink });\r\n        return;\r\n      }\r\n    }\r\n    var authTrigger = event.target && event.target.closest ? event.target.closest(AUTH_TRIGGER_SELECTOR) : null;\r\n    if (!authTrigger && event.target && event.target.closest) {\r\n      var loginLink = event.target.closest('a[href]');\r\n      if (isCustomerLoginLink(loginLink)) authTrigger = loginLink;\r\n    }\r\n    if (authTrigger) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      requestAuth(authOptionsFromTrigger(authTrigger));\r\n      return;\r\n    }\r\n    var trigger = event.target && event.target.closest ? event.target.closest(TRIGGER_SELECTOR) : null;\r\n    if (!trigger) return;\r\n    event.preventDefault();\r\n    cancelPointerActivation(trigger);\r\n    activateTrigger(trigger, event.detail === 0);\r\n  }, true);\r\n\r\n  window.addEventListener('florame:account-utility', function (event) {\r\n    var utility = event && event.detail ? event.detail.utility : '';\r\n    openUtility(firstInstance(), utility);\r\n  });\r\n  window.addEventListener('florame:request-auth', function (event) {\r\n    requestAuth(event && event.detail ? event.detail : {});\r\n  });\r\n\r\n  window.addEventListener('pagehide', function () {\r\n    instances.forEach(function (instance) { instance.styleOpenEpoch = (instance.styleOpenEpoch || 0) + 1; });\r\n  });\r\n  window.addEventListener('pageshow', function (event) {\r\n    instances.forEach(function (instance) {\r\n      refreshCapabilities(instance);\r\n      refreshLastGeneration(instance);\r\n      if (event && event.persisted) ensureAuthFresh(instance, { force: true });\r\n      else syncClientAuthFromServer(instance);\r\n    });\r\n  });\r\n  window.addEventListener('focus', function () {\r\n    var instance = firstInstance();\r\n    if (instance) {\r\n      ensureAuthFresh(instance);\r\n      refreshLastGeneration(instance);\r\n    }\r\n  });\r\n  window.addEventListener('storage', function (event) {\r\n    if (!event || event.key === LAST_GENERATION_KEY || event.key === LAST_GENERATION_ACTIVE_KIND_KEY || (event.key && event.key.indexOf(LAST_GENERATION_ARCHIVE_KEY_PREFIX) === 0)) instances.forEach(refreshLastGeneration);\r\n  });\r\n  window.addEventListener('florame:create-draft-change', function () { instances.forEach(refreshDraft); });\r\n  window.addEventListener('pageshow', function () { instances.forEach(refreshDraft); });\r\n  window.addEventListener('florame:background-loading-change', function () { instances.forEach(refreshLastGeneration); });\r\n  window.addEventListener('florame:background-loading-clear', function () { instances.forEach(refreshLastGeneration); });\r\n  window.addEventListener('florame:last-generation-persisted', function () { instances.forEach(function (instance) { refreshLastGeneration(instance); syncLastGeneration(instance, { force: true }); }); });\r\n  document.addEventListener('visibilitychange', function () {\r\n    document.documentElement.toggleAttribute('data-florame-page-hidden', document.visibilityState !== 'visible');\r\n    if (document.visibilityState !== 'visible') return;\r\n    instances.forEach(function (item) { refreshPush(item); refreshLocation(item); });\r\n    var instance = firstInstance();\r\n    if (instance) {\r\n      ensureAuthFresh(instance);\r\n      refreshLastGeneration(instance);\r\n    }\r\n  });\r\n  window.addEventListener('florame:web-push-state', function (event) {\r\n    if (nativePushAvailable()) return;\r\n    instances.forEach(function (instance) {\r\n      instance.pushRefreshId = (instance.pushRefreshId || 0) + 1;\r\n      applyPushState(instance, event && event.detail ? event.detail : {});\r\n    });\r\n  });\r\n  window.addEventListener('florame:web-push-ready', function () { instances.forEach(refreshPush); });\r\n  window.addEventListener('florame:native-permissions', function (event) {\r\n    if (event.detail && event.detail.location) instances.forEach(function (instance) { renderLocation(instance, event.detail.location); });\r\n    var state = event.detail && event.detail.notifications;\r\n    if (!state || !nativePushAvailable()) return;\r\n    instances.forEach(function (instance) {\r\n      instance.pushRefreshId = (instance.pushRefreshId || 0) + 1;\r\n      if (state.permission !== 'granted') {\r\n        instance.nativePushActive = false;\r\n        applyPushState(instance, Object.assign({ supported: true, subscribed: false, platform: 'native' }, state), { action: true });\r\n      }\r\n      refreshPush(instance);\r\n    });\r\n  });\r\n  window.addEventListener('florame:native-push-token', function () { instances.forEach(refreshPush); });\r\n  window.addEventListener('florame:hapticschange', function () { instances.forEach(refreshHaptics); });\r\n  window.addEventListener('florame:pwa-install-state', function (event) {\r\n    instances.forEach(function (instance) { syncInstall(instance, event && event.detail ? event.detail : {}); });\r\n  });\r\n  window.addEventListener('florame:native-ready', function () { instances.forEach(refreshCapabilities); });\r\n  window.addEventListener('florame:partner-ready', function () { instances.forEach(function (instance) { decorateLinks(instance.root); }); });\r\n  window.addEventListener('florame:native-language-change', function (event) {\r\n    var next = event && event.detail && event.detail.language === 'en' ? 'en' : 'it';\r\n    instances.forEach(function (instance) {\r\n      instance.root.setAttribute('data-language', next);\r\n      instance.accountTitle = next === 'en' ? 'Menu' : 'Men\u00F9';\r\n      if (!instance.root.classList.contains('is-help-view') && !instance.root.classList.contains('is-avatar-view') && instance.title) instance.title.textContent = instance.accountTitle;\r\n      if (instance.language) instance.language.value = next;\r\n      refreshCapabilities(instance);\r\n      refreshLastGeneration(instance);\r\n    });\r\n  });\r\n  window.FlorameAccountCenter = Object.assign({}, window.FlorameAccountCenter || {}, {\r\n    version: '1.13.0',\r\n    init: init,\r\n    open: function (trigger) { var instance = firstInstance(); if (instance) instance.open(trigger || null, true); return instance; },\r\n    openAvatar: function (trigger) { var instance = firstInstance(); if (instance) { Promise.resolve(instance.open(trigger || null,true)).then(function () { requestAnimationFrame(function () { openAvatar(instance,trigger); }); }); } return instance; },\r\n    requestAuth: requestAuth,\r\n    openUtility: function (kind, options) { return openUtility(firstInstance(), kind, options); },\r\n    install: function () { return openUtility(firstInstance(), 'install'); },\r\n    hasLastGeneration: function () {\r\n      var instance = firstInstance();\r\n      return !!(instance && refreshLastGeneration(instance));\r\n    },\r\n    openLastGeneration: function () {\r\n      var instance = firstInstance();\r\n      if (instance) openLastGeneration(instance);\r\n      return instance;\r\n    },\r\n    canInstall: function () {\r\n      var instance = firstInstance();\r\n      if (!instance) return false;\r\n      syncInstall(instance);\r\n      return !!(instance.install && !instance.install.hidden);\r\n    },\r\n    close: function () { instances.forEach(function (instance) { instance.close(); }); },\r\n    refreshCapabilities: function () { return Promise.all(instances.map(refreshCapabilities)); },\r\n    refreshAuth: function () { var instance = firstInstance(); return instance ? ensureAuthFresh(instance, { force: true }) : Promise.resolve(true); },\r\n    decorateLinks: function () { instances.forEach(function (instance) { decorateLinks(instance.root); }); },\r\n    refreshLastGeneration: function () { return instances.map(refreshLastGeneration); }\r\n  });\r\n\r\n  if (window.__floramePendingAuthRequest) {\r\n    var pendingAuthRequest = window.__floramePendingAuthRequest;\r\n    window.__floramePendingAuthRequest = null;\r\n    window.requestAnimationFrame(function () { requestAuth(pendingAuthRequest); });\r\n  }\r\n\r\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', function () {\r\n    init(document);\r\n    restoreAuthContext(firstInstance());\r\n  }, { once: true });\r\n  else {\r\n    init(document);\r\n    restoreAuthContext(firstInstance());\r\n  }\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
