@gengage/assistant-fe 0.3.20 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -6
- package/dist/{chat-CuPO9t-Z.cjs → chat-BF5pt6iX.cjs} +5 -5
- package/dist/{chat-yAf9OADM.js → chat-CHAi6Xej.js} +476 -480
- package/dist/chat.cjs +1 -1
- package/dist/chat.iife.js +17 -17
- package/dist/chat.js +1 -1
- package/dist/common/client.d.ts +4 -0
- package/dist/common/config-schema.d.ts +4 -0
- package/dist/common/overlay.d.ts +4 -0
- package/dist/common/widget-base.d.ts +6 -0
- package/dist/{common-C8NRcP7O.js → common-Ct6r0F2s.js} +35 -26
- package/dist/common-DXdLT4e0.cjs +1 -0
- package/dist/common.cjs +1 -1
- package/dist/common.js +6 -6
- package/dist/{connection-warning-CVZzlGJt.js → connection-warning-CHHi3BAf.js} +1 -1
- package/dist/{connection-warning-CL1CReZo.cjs → connection-warning-YQiIRXrz.cjs} +1 -1
- package/dist/{ga-datalayer-DkfsAHf9.cjs → ga-datalayer-BVppFxqk.cjs} +1 -1
- package/dist/{ga-datalayer-CgI6Kb_i.js → ga-datalayer-BwxWX-cr.js} +35 -32
- package/dist/index.cjs +1 -1
- package/dist/index.js +9 -9
- package/dist/native-webview-BaW1H_nZ.cjs +1 -0
- package/dist/{native-webview-B8vOoxns.js → native-webview-Cf5WtlIH.js} +72 -69
- package/dist/native.cjs +1 -1
- package/dist/native.iife.js +11 -11
- package/dist/native.js +1 -1
- package/dist/{qna-YSaIDxjs.js → qna-DXCQtwLq.js} +3 -3
- package/dist/{qna-KizG_W1J.cjs → qna-DwG8AJJf.cjs} +1 -1
- package/dist/qna.cjs +1 -1
- package/dist/qna.iife.js +1 -1
- package/dist/qna.js +1 -1
- package/dist/{schemas-B6RjqKrg.cjs → schemas-B7jnyzQI.cjs} +1 -1
- package/dist/{schemas-PkedCk_-.js → schemas-CTbgsvNJ.js} +1 -1
- package/dist/simbut/index.d.ts +3 -0
- package/dist/{simbut-BI054QK0.js → simbut-BBXTlzOg.js} +28 -20
- package/dist/simbut-D_ycY_MQ.cjs +1 -0
- package/dist/simbut.cjs +1 -1
- package/dist/simbut.iife.js +8 -8
- package/dist/simbut.js +1 -1
- package/dist/{simrel-C-DKpfVB.js → simrel-DP2EMyua.js} +3 -3
- package/dist/{simrel-vL0woDkE.cjs → simrel-DdP4lur9.cjs} +1 -1
- package/dist/simrel.cjs +1 -1
- package/dist/simrel.iife.js +1 -1
- package/dist/simrel.js +1 -1
- package/package.json +1 -1
- package/dist/common-BzegEdJs.cjs +0 -1
- package/dist/native-webview-D2lDXTh3.cjs +0 -1
- package/dist/simbut-B2jXtckF.cjs +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const g=require("./schemas-B6RjqKrg.cjs"),S=require("./ga-datalayer-DkfsAHf9.cjs"),F=require("./product-utils-DLXQQJbh.cjs");function We(){const t=Date.now(),e=new Uint8Array(16);crypto.getRandomValues(e),e[0]=t/2**40&255,e[1]=t/2**32&255,e[2]=t/2**24&255,e[3]=t/2**16&255,e[4]=t/2**8&255,e[5]=t&255,e[6]=e[6]&15|112,e[8]=e[8]&63|128;const a=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}var Rt=class{constructor(t){this._handlers=new Map,this._destroyed=!1,this._namespace=t.namespace,this._allowedOrigins=t.allowedOrigins??[location.origin],this._onMessage=t.onMessage,this._allowedOrigins.includes("*")&&Ft()&&console.warn("[gengage] postMessage bridge using wildcard origin. Set allowedOrigins for production security."),this._messageListener=e=>this._handlePostMessage(e),window.addEventListener("message",this._messageListener)}send(t,e){if(this._destroyed)return;const a={namespace:this._namespace,type:t};e!==void 0&&(a.payload=e),window.dispatchEvent(new CustomEvent("gengage:bridge:message",{detail:a,bubbles:!1}))}on(t,e){this._handlers.has(t)||this._handlers.set(t,new Set);const a=this._handlers.get(t);return a.add(e),()=>{a.delete(e),a.size===0&&this._handlers.delete(t)}}destroy(){this._destroyed||(this._destroyed=!0,window.removeEventListener("message",this._messageListener),this._handlers.clear())}_handlePostMessage(t){if(this._destroyed||!this._isOriginAllowed(t.origin))return;const e=t.data;if(!Dt(e)||e.gengage!==this._namespace)return;const a={type:e.type};e.payload!==void 0&&(a.payload=e.payload),this._onMessage?.(a);const n=this._handlers.get(a.type);if(n)for(const i of n)i(a.payload)}_isOriginAllowed(t){return this._allowedOrigins.includes("*")?!0:this._allowedOrigins.includes(t)}};function Dt(t){if(typeof t!="object"||t===null)return!1;const e=t;return typeof e.gengage=="string"&&typeof e.type=="string"}function Ft(){try{return typeof process<"u"&&process.env.NODE_ENV!=="production"}catch{return!1}}var Ut=console;function pt(t,e,a={}){const n=t.action,i=a.logger??Ut;switch(S.debugLog("action",`routing action: ${n.kind}`,n),n.kind){case"open_chat":e.openChat?.(n.payload);return;case"navigate":{if(typeof n.url!="string"){ue(n,e,a,i);return}if(!S.isSafeUrl(n.url)){i.warn("[gengage] Blocked navigation to unsafe URL:",n.url);return}const r=typeof n.newTab=="boolean"?n.newTab:void 0;if(e.navigate){e.navigate({url:n.url,...r!==void 0&&{newTab:r}});return}jt(n.url,r);return}case"save_session":if(typeof n.sessionId!="string"||typeof n.sku!="string"){ue(n,e,a,i);return}e.saveSession?.({sessionId:n.sessionId,sku:n.sku});return;case"add_to_cart":if(typeof n.sku!="string"||typeof n.quantity!="number"||typeof n.cartCode!="string"){ue(n,e,a,i);return}e.addToCart?.({sku:n.sku,quantity:n.quantity,cartCode:n.cartCode});return;case"script_call":{if(a.allowScriptCall===!1){ue(n,e,a,i);return}if(typeof n.name!="string"){ue(n,e,a,i);return}const r=Ot(n.payload)?n.payload:void 0;e.scriptCall?.({name:n.name,...r!==void 0&&{payload:r}});return}default:ue(n,e,a,i)}}function ue(t,e,a,n){const i=a.unknownActionPolicy??"log-and-ignore";if(i==="delegate"){e.unknown?.(t),e.unknown||n.warn("[gengage] Unknown action received without delegate handler",t);return}if(i==="throw")throw new Error(`[gengage] Unknown action kind: ${t.kind}`);n.warn("[gengage] Unknown action ignored",t)}function jt(t,e){if(!(typeof window>"u")){if(!S.isSafeUrl(t)){console.warn("[gengage] Blocked navigation to unsafe URL:",t);return}if(e){window.open(t,"_blank","noopener,noreferrer");return}window.location.href=t}}function Ot(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var qt=["image/jpeg","image/png","image/webp"],Ji=5*1024*1024;function Vt(t){return qt.includes(t.type)?t.size>5242880?{ok:!1,reason:"too_large"}:{ok:!0}:{ok:!1,reason:"invalid_type"}}function $t(t,e){const a=t.type,n=t.payload!=null&&typeof t.payload=="object"&&!Array.isArray(t.payload)?t.payload:{},i=r=>{const o={...n};for(const[c,d]of Object.entries(r))c in o||(o[c]=d);return o};switch(a){case"inputText":{const r={is_launcher:0};return e.pageContext?.extra&&(r.page_details=e.pageContext.extra),"is_suggested_text"in n||(r.is_suggested_text=0),{...t,payload:i(r)}}case"findSimilar":{const r={is_launcher:0};return t.title&&(r.text=t.title,r.input=t.title),{...t,payload:i(r)}}case"getComparisonTable":return t;case"addToCart":{const r={};return"error_message"in n||(r.error_message=""),{...t,payload:i(r)}}case"reviewSummary":{const r={};return e.pageContext?.sku&&!("sku"in n)&&(r.sku=e.pageContext.sku),Object.keys(r).length===0?t:{...t,payload:i(r)}}default:return t}}var Gt={user_message:"inputText"};function Wt(t){const{action:e,type:a,payload:n,...i}=t,r=a??e?.type??"inputText",o=n??e?.payload,c=Gt[r]??r,d={...i,type:c};return o!==void 0&&(d.payload=typeof o=="string"?{text:o}:o),JSON.stringify(d)}function Yt(t,e,a){const n=g.buildChatEndpointUrl("process_action",a),i=new AbortController;return(async()=>{try{const o=Wt(t),c=a.attachment!==void 0;let d;if(c){const u=new FormData;u.append("request",o),a.attachment!==void 0&&u.append("attachment",a.attachment),d={method:"POST",body:u,signal:i.signal}}else d={method:"POST",headers:{"Content-Type":"application/json"},body:o,signal:i.signal};const l=await fetch(n,d);if(!l.ok){let u=l.statusText;try{const h=await l.json(),w=h.detail??h.message??h.error;typeof w=="string"&&(u=w)}catch{}e.onError(new Error(`HTTP ${l.status}: ${u}`));return}let p=!1;const s=()=>{p||(p=!0,e.onDone())};await g.consumeStream(l,{onEvent:u=>{const h=g.adaptBackendEvent(u);if(h)switch(h.type){case"text_chunk":e.onTextChunk(h.content,h.final===!0,{productMentions:h.productMentions,skuToProductItem:h.skuToProductItem,conversationMode:h.conversationMode,renderHint:h.renderHint,kvkk:h.kvkk});break;case"ui_spec":e.onUISpec(h.spec,h.widget,h.panelHint,h.clearPanel===!0);break;case"action":e.onAction(h);break;case"metadata":e.onMetadata(h);break;case"error":e.onError(new Error(h.message));break;case"done":s();break}},onError:e.onError,signal:i.signal}),s()}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;e.onError(o instanceof Error?o:new Error(String(o)))}})(),i}var Kt=["chat_debug","presentation_debug"],Zt=["gengage_chat_debug","gengage_presentation_debug"];function Xt(){if(typeof window>"u")return!1;const t=new URLSearchParams(window.location.search);if(Kt.some(e=>t.get(e)==="1"))return!0;try{return Zt.some(e=>window.localStorage.getItem(e)==="1")}catch{return!1}}function Qt(t,e,a){if(!Xt())return;const n=(window.__gengageChatPresentationDebugSeq??0)+1;window.__gengageChatPresentationDebugSeq=n;const i={seq:n,time:new Date().toISOString(),scope:t,message:e,payload:a};window.__gengageChatPresentationDebugLog||(window.__gengageChatPresentationDebugLog=[]),window.__gengageChatPresentationDebugLog.push(i),window.__gengageChatPresentationDebugLog.length>400&&window.__gengageChatPresentationDebugLog.shift();const r=`[gengage-chat-debug #${n}][${t}] ${e}`;a===void 0?console.debug(r):console.debug(r,a)}var Pe="gengage-chat-scroll",fe=null;function Ye(t){fe=t}function Jt(){if(fe&&fe.isConnected)return fe;fe=null;const t=document.getElementById(Pe);return t||(Qt("chat-scroll","failed to resolve scroll container (not registered)",{id:Pe}),null)}function ht(){fe=null}var qe={headerTitle:"Ürün Uzmanı",inputPlaceholder:"Ürün ara, soru sor",sendButton:"Gönder",closeButton:"Kapat",openButton:"Sohbeti aç",newChatButton:"Yeni sohbet",poweredBy:"Gengage ile",errorMessage:"Bir hata oluştu. Lütfen tekrar deneyin.",retryButton:"Tekrar Dene",loadingMessage:"Düşünüyorum...",loadingSequenceGeneric:["Sizin için en önemli noktaları anlıyorum","Ürünleri, yorumları ve özellikleri inceliyorum","En güçlü seçenekleri hazırlıyorum"],loadingSequencePanel:["En ilgili detayları inceliyorum","En güçlü sinyalleri kontrol ediyorum","Bu görünümü sizin için hazırlıyorum"],loadingSequenceComparison:["Ürün farklarını inceliyorum","En güçlü farkları ve ödünleşimleri kontrol ediyorum","Karşılaştırmayı sizin için hazırlıyorum"],productCtaLabel:"Satın Al",viewOnSiteLabel:"Sitede Gör",attachImageButton:"Resim ekle",attachMenuSelectPhoto:"Fotoğraf Seç",attachMenuPaste:"Yapıştır",clipboardNoImageMessage:"Panoda görsel bulunamadı. Önce bir görsel kopyalayın veya dosya seçin.",removeAttachmentButton:"Resmi kaldır",invalidFileType:"Sadece JPEG, PNG ve WebP dosyaları destekleniyor.",fileTooLarge:"Dosya boyutu 5 MB'dan küçük olmalıdır.",aiTopPicksTitle:"Sizin İçin En İyiler",roleWinner:"En Beğendiğim",roleBestValue:"En Uygun Fiyatlı",roleBestAlternative:"En İyi Alternatif",viewDetails:"Detayları Gör",groundingReviewCta:"Yorumları Oku",groundingReviewSubtitle:"{count} yorum mevcut",variantsLabel:"Varyantlar",sortRelated:"Önerilen",sortPriceAsc:"Fiyat düşükten yükseğe",sortPriceDesc:"Fiyat yüksekten düşüğe",sortToolbarAriaLabel:"Ürünleri sırala",compareSelected:"Karşılaştır",compareMinHint:"En az 2 ürün seçin",compareMaxHint:"En fazla 5 ürün seçebilirsiniz",comparisonSelectLabel:"Karşılaştırmak için seç",comparisonSelectedLabel:"Seçildi",comparisonSelectCardHint:"Karşılaştırmaya eklemek veya çıkarmak için kartın herhangi bir yerine dokunun.",comparisonPreparingLabel:"Karşılaştırma tablosu hazırlanıyor…",panelTitleProductDetails:"Ürün Detayı",panelTitleSimilarProducts:"Benzer Ürünler",panelTitleComparisonResults:"Karşılaştırma Sonuçları",panelTitleCategories:"Kategoriler",panelTitleSearchResults:"Arama Sonuçları",inStockLabel:"Stokta",outOfStockLabel:"Tükendi",findSimilarLabel:"Benzerlerini Bul",galleryPrevAriaLabel:"Önceki görsel",galleryNextAriaLabel:"Sonraki görsel",beautyStylesPreparedTitle:"Sizin için {count} farklı stil hazırladım",watchStylesPreparedTitle:"Sizin için {count} farklı stil yönü hazırladım",choicePrompterHeading:"Kararsız mı kaldın?",choicePrompterSuggestion:"Ürünleri seçip karşılaştırabilirsin",choicePrompterCta:"Seç ve Karşılaştır",viewMoreLabel:"Daha Fazla Göster",similarProductsLabel:"Benzer Ürünler",addToCartButton:"Sepete Ekle",addedToCartToast:"Sepete eklendi",shareButton:"Paylaş",productInfoTab:"Ürün Bilgileri",specificationsTab:"Teknik Özellikler",recommendedChoiceLabel:"Önerilen Seçim",highlightsLabel:"Öne Çıkan Özellikler",keyDifferencesLabel:"Temel Farklar",specialCasesLabel:"Özel Durumlar İçin",emptyReviewsMessage:"Yorum özeti bulunamadı.",closeAriaLabel:"Kapat",startChatLabel:"Sohbete Başla",voiceButton:"Sesli giriş",voiceListening:"Dinleniyor...",voiceNotSupported:"Sesli giriş bu tarayıcıda desteklenmiyor.",voicePermissionDenied:"Mikrofon erişimi reddedildi.",voiceError:"Sesli giriş hatası.",handoffHeading:"Destek temsilcisine aktarılıyor",productNotFoundMessage:"Bu ürün bilgisi şu an kullanılamıyor. Başka bir konuda yardımcı olabilirim.",stopGenerating:"Yanıtı Durdur",offlineMessage:"Çevrimdışısınız — bağlantı kurulduğunda mesajlar gönderilecek.",cartAriaLabel:"Sepetim",favoritesAriaLabel:"Favorilerim",showPanelAriaLabel:"Sonuçları Göster",addToFavoritesLabel:"Favorilere ekle",customerReviewsTitle:"Müşteri Yorumları",togglePanelAriaLabel:"Paneli aç/kapat",chatMessagesAriaLabel:"Sohbet mesajları",suggestionsAriaLabel:"Öneriler",moreSuggestionsAriaLabel:"Daha fazla öneri",rollbackAriaLabel:"Bu mesaja geri dön",backAriaLabel:"Geri",forwardAriaLabel:"İleri",closePanelAriaLabel:"Paneli kapat",dismissAriaLabel:"Kapat",cartAddErrorMessage:"Üzgünüm sepete ekleyemedim, bir sorunla karşılaştım.",favoriteToggleErrorMessage:"Favoriler güncellenemedi. Lütfen tekrar deneyin.",reviewFilterPositive:"Olumlu",reviewFilterNegative:"Olumsuz",decreaseLabel:"Azalt",increaseLabel:"Artır",reviewCustomersMentionSingular:"1 müşteri bahsediyor",reviewCustomersMentionPlural:"müşteri bahsediyor",reviewSubjectsHeading:"İncelemek için seçin",tryAgainButton:"Tekrar dene",askSomethingElseButton:"Başka bir şey sor",accountInactiveMessage:"Bu hesap şu an aktif değil. Lütfen daha sonra tekrar deneyin.",favoritesPageTitle:"Favorilerim",emptyFavoritesMessage:"Henüz favori ürün yok. Bir ürünü kalp ikonuna tıklayarak favorilere ekleyebilirsin.",showFormerMessagesButton:"↑ Önceki mesajları göster",aiAnalysisAnalyzingLabel:"Ürünler analiz ediliyor...",aiBrowseCategoriesTitle:"Kategorilere Göz At",photoAnalysisBadge:"Cilt Analizi",beautyPhotoStepTitle:"Selfie ile kişiselleştir",beautyPhotoStepDescription:"İstersen net bir profil fotoğrafı yükle, sana özel önerilerde bulunayım.",beautyPhotoStepUpload:"Fotoğraf Yükle",beautyPhotoStepProcessing:"Fotoğraf işleniyor...",beautyPhotoStepSkip:"Geç",beautyPhotoStepSkipMessage:"Fotoğraf adımını geçiyorum"},ea={headerTitle:"Product Expert",inputPlaceholder:"Search products, ask questions",sendButton:"Send",closeButton:"Close",openButton:"Open chat",newChatButton:"New chat",poweredBy:"Powered by Gengage",errorMessage:"Something went wrong. Please try again.",retryButton:"Retry",loadingMessage:"Thinking...",loadingSequenceGeneric:["Understanding what matters most","Reviewing products, reviews, and specs","Preparing the best options to review"],loadingSequencePanel:["Reviewing the most relevant details","Checking the strongest signals","Preparing this view for you"],loadingSequenceComparison:["Reviewing the product differences","Checking the strongest tradeoffs","Preparing your comparison"],productCtaLabel:"Buy",viewOnSiteLabel:"View on Site",attachImageButton:"Attach image",attachMenuSelectPhoto:"Choose photo",attachMenuPaste:"Paste",clipboardNoImageMessage:"No image found in clipboard. Copy an image first or choose a file.",removeAttachmentButton:"Remove image",invalidFileType:"Only JPEG, PNG and WebP files are supported.",fileTooLarge:"File must be smaller than 5 MB.",aiTopPicksTitle:"Top Picks for You",roleWinner:"Top Pick",roleBestValue:"Best Value",roleBestAlternative:"Best Alternative",viewDetails:"View Details",groundingReviewCta:"Read Reviews",groundingReviewSubtitle:"{count} reviews available",variantsLabel:"Variants",sortRelated:"Recommended",sortPriceAsc:"Price low to high",sortPriceDesc:"Price high to low",sortToolbarAriaLabel:"Sort products",compareSelected:"Compare",compareMinHint:"Select at least 2 products",compareMaxHint:"You can select up to 5 products",comparisonSelectLabel:"Select to compare",comparisonSelectedLabel:"Selected",comparisonSelectCardHint:"Tap anywhere on the card to add or remove it from comparison.",comparisonPreparingLabel:"Preparing your comparison…",panelTitleProductDetails:"Product Details",panelTitleSimilarProducts:"Similar Products",panelTitleComparisonResults:"Comparison Results",panelTitleCategories:"Categories",panelTitleSearchResults:"Search Results",inStockLabel:"In Stock",outOfStockLabel:"Out of Stock",findSimilarLabel:"Find Similar",galleryPrevAriaLabel:"Previous image",galleryNextAriaLabel:"Next image",beautyStylesPreparedTitle:"Prepared {count} beauty styles for you",watchStylesPreparedTitle:"Prepared {count} style directions for you",choicePrompterHeading:"Can't decide?",choicePrompterSuggestion:"Select products to compare them",choicePrompterCta:"Select & Compare",viewMoreLabel:"Show More",similarProductsLabel:"Similar Products",addToCartButton:"Add to Cart",addedToCartToast:"Added to cart",shareButton:"Share",productInfoTab:"Product Info",specificationsTab:"Specifications",recommendedChoiceLabel:"Recommended Choice",highlightsLabel:"Key Highlights",keyDifferencesLabel:"Key Differences",specialCasesLabel:"For Special Cases",emptyReviewsMessage:"No review summary found.",closeAriaLabel:"Close",startChatLabel:"Start Chat",voiceButton:"Voice input",voiceListening:"Listening...",voiceNotSupported:"Voice input is not supported in this browser.",voicePermissionDenied:"Microphone access denied.",voiceError:"Voice input error.",handoffHeading:"Transferring to a support agent",productNotFoundMessage:"Product information is currently unavailable. I can help with something else.",stopGenerating:"Stop generating",offlineMessage:"You're offline — messages will send when you reconnect.",cartAriaLabel:"My cart",favoritesAriaLabel:"My favorites",showPanelAriaLabel:"Show Results",addToFavoritesLabel:"Add to favorites",customerReviewsTitle:"Customer Reviews",togglePanelAriaLabel:"Toggle panel",chatMessagesAriaLabel:"Chat messages",suggestionsAriaLabel:"Suggestions",moreSuggestionsAriaLabel:"More suggestions",rollbackAriaLabel:"Rollback to this message",backAriaLabel:"Back",forwardAriaLabel:"Forward",closePanelAriaLabel:"Close panel",dismissAriaLabel:"Dismiss",cartAddErrorMessage:"Sorry, I couldn't add that to your cart. Something went wrong.",favoriteToggleErrorMessage:"We couldn't update favorites. Please try again.",reviewFilterPositive:"Positive",reviewFilterNegative:"Negative",decreaseLabel:"Decrease",increaseLabel:"Increase",reviewCustomersMentionSingular:"1 customer mentions",reviewCustomersMentionPlural:"customers mention",reviewSubjectsHeading:"Select to learn more",tryAgainButton:"Try again",askSomethingElseButton:"Ask something else",accountInactiveMessage:"This account is currently inactive. Please try again later.",favoritesPageTitle:"My Favorites",emptyFavoritesMessage:"No favorites yet. Heart a product to save it here.",showFormerMessagesButton:"↑ Show earlier messages",aiAnalysisAnalyzingLabel:"Analyzing products...",aiBrowseCategoriesTitle:"Browse categories",photoAnalysisBadge:"Skin Analysis",beautyPhotoStepTitle:"Personalize with a selfie",beautyPhotoStepDescription:"Upload a clear profile photo so I can give you personalized recommendations.",beautyPhotoStepUpload:"Upload Photo",beautyPhotoStepProcessing:"Processing photo...",beautyPhotoStepSkip:"Skip",beautyPhotoStepSkipMessage:"Skip the photo step"};function ta(t){return t?t.toLowerCase().split("-")[0]??"tr":"tr"}function aa(t){return ta(t)==="en"?ea:qe}function ut(){return mt()!==null}function mt(){const t=globalThis;return t.SpeechRecognition??t.webkitSpeechRecognition??null}var bt=class{constructor(t,e){this.recognition=null,this._state="idle",this.silenceTimer=null,this.accumulatedTranscript="",this.intentionalStop=!1,this._lastRestartAt=0,this.callbacks=t,this.lang=e?.lang??"tr-TR",this.silenceTimeoutMs=e?.silenceTimeoutMs??1500,this.autoSubmit=e?.autoSubmit??!0}get state(){return this._state}start(){if(this._state==="listening")return;const t=mt();if(!t){this.setState("error"),this.callbacks.onError?.("not-supported","Web Speech API is not supported in this browser.");return}if(typeof globalThis.isSecureContext<"u"&&!globalThis.isSecureContext){this.setState("error"),this.callbacks.onError?.("not-allowed","Voice input requires HTTPS.");return}this.accumulatedTranscript="",this.intentionalStop=!1;const e=new t;e.continuous=!0,e.interimResults=!0,e.lang=this.lang,e.maxAlternatives=1,e.onstart=()=>{this.setState("listening")},e.onresult=a=>{this.clearSilenceTimer();let n="",i="";for(let r=a.resultIndex;r<a.results.length;r++){const o=a.results[r];if(!o)continue;const c=o[0];c&&(o.isFinal?i+=c.transcript:n+=c.transcript)}i&&(this.accumulatedTranscript+=i,this.callbacks.onFinal?.(this.accumulatedTranscript)),n&&this.callbacks.onInterim?.(this.accumulatedTranscript+n),this.autoSubmit&&this.accumulatedTranscript&&this.startSilenceTimer()},e.onerror=a=>{const n=na(a.error);this.intentionalStop&&(a.error==="no-speech"||a.error==="aborted")||(this.setState("error"),this.callbacks.onError?.(n,a.message||a.error))},e.onend=()=>{if(this.clearSilenceTimer(),this._state==="listening"&&!this.intentionalStop){const a=Date.now();if(a-this._lastRestartAt<500){this.setState("idle");return}this._lastRestartAt=a;try{e.start()}catch{this.setState("idle")}return}this.setState("idle")},this.recognition=e;try{e.start()}catch{this.setState("error"),this.callbacks.onError?.("unknown","Failed to start speech recognition.")}}stop(){if(this.intentionalStop=!0,this.clearSilenceTimer(),this.recognition){try{this.recognition.stop()}catch{}this.recognition=null}return this.setState("idle"),this.accumulatedTranscript}abort(){if(this.intentionalStop=!0,this.clearSilenceTimer(),this.accumulatedTranscript="",this.recognition){try{this.recognition.abort()}catch{}this.recognition=null}this.setState("idle")}destroy(){this.abort()}setState(t){this._state!==t&&(this._state=t,this.callbacks.onStateChange?.(t))}startSilenceTimer(){this.clearSilenceTimer(),this.silenceTimer=setTimeout(()=>{const t=this.stop();t.trim()&&this.callbacks.onAutoSubmit?.(t.trim())},this.silenceTimeoutMs)}clearSilenceTimer(){this.silenceTimer!==null&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}};function na(t){switch(t){case"not-allowed":return"not-allowed";case"no-speech":return"no-speech";case"audio-capture":return"no-microphone";case"network":return"network";case"aborted":return"aborted";default:return"unknown"}}function ia(t){const e=document.createElement("div");e.className="gengage-chat-kvkk-banner gds-evidence-card gds-evidence-card-warning",e.dataset.gengagePart="kvkk-banner",e.setAttribute("role","alert");const a=document.createElement("div");a.className="gengage-chat-kvkk-content",a.dataset.gengagePart="kvkk-content",a.innerHTML=S.sanitizeHtml(t.htmlContent),e.appendChild(a);const n=document.createElement("button");return n.className="gengage-chat-kvkk-dismiss",n.dataset.gengagePart="kvkk-dismiss",n.type="button",n.setAttribute("aria-label",t.closeAriaLabel??"Close privacy notice"),n.textContent="×",n.addEventListener("click",t.onDismiss),e.appendChild(n),e}var ra=class{constructor(t){this._el=document.createElement("div"),this._el.className="gengage-chat-panel-topbar gds-toolbar",this._el.dataset.gengagePart="panel-topbar",this._backBtn=document.createElement("button"),this._backBtn.className="gengage-chat-panel-topbar-back gds-btn gds-btn-ghost gds-icon-btn",this._backBtn.dataset.gengagePart="panel-topbar-back",this._backBtn.type="button",this._backBtn.disabled=!0,this._backBtn.setAttribute("aria-label",t.backAriaLabel??"Back"),this._backBtn.title=t.backAriaLabel??"Back",this._backBtn.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m15 18-6-6 6-6"/><path d="M21 12H9"/></svg>',this._backBtn.addEventListener("click",()=>t.onBack());const e=document.createElement("div");e.className="gengage-chat-panel-topbar-title-wrap",this._titleEl=document.createElement("span"),this._titleEl.className="gengage-chat-panel-topbar-title",this._titleEl.dataset.gengagePart="panel-topbar-title",e.appendChild(this._titleEl),this._forwardBtn=document.createElement("button"),this._forwardBtn.className="gengage-chat-panel-topbar-forward gds-btn gds-btn-ghost gds-icon-btn",this._forwardBtn.dataset.gengagePart="panel-topbar-forward",this._forwardBtn.type="button",this._forwardBtn.disabled=!0,this._forwardBtn.setAttribute("aria-label",t.forwardAriaLabel??"Forward"),this._forwardBtn.title=t.forwardAriaLabel??"Forward",this._forwardBtn.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/><path d="M3 12h12"/></svg>',this._forwardBtn.addEventListener("click",()=>t.onForward()),this._actionsEl=document.createElement("div"),this._actionsEl.className="gengage-chat-panel-topbar-actions",this._actionsEl.dataset.gengagePart="panel-topbar-actions",this._closeBtn=document.createElement("button"),this._closeBtn.className="gengage-chat-panel-topbar-close gds-btn gds-btn-ghost gds-icon-btn",this._closeBtn.dataset.gengagePart="panel-topbar-close",this._closeBtn.type="button",this._closeBtn.setAttribute("aria-label",t.closePanelAriaLabel??"Close panel"),this._closeBtn.title=t.closePanelAriaLabel??"Close panel",this._closeBtn.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',this._closeBtn.addEventListener("click",()=>t.onClose?.()),this._el.appendChild(this._backBtn),this._el.appendChild(e),this._el.appendChild(this._actionsEl),this._el.appendChild(this._forwardBtn),this._el.appendChild(this._closeBtn)}update(t,e,a){this._backBtn.disabled=!t,this._forwardBtn.disabled=!e,this._backBtn.hidden=!t,this._forwardBtn.hidden=!e,this._titleEl.textContent=a,this._titleEl.title=a}getElement(){return this._el}setTitle(t){this._titleEl.textContent=t}setActions(t){this._actionsEl.replaceChildren(),t&&this._actionsEl.appendChild(t)}getTitle(){return this._titleEl.textContent??""}},oa=class{constructor(t){this._onThumbnailClick=t.onThumbnailClick,this._el=document.createElement("div"),this._el.className="gengage-chat-thumbnails-column",this._el.style.display="none"}getElement(){return this._el}setEntries(t){const e=new Set,a=[];for(const n of t)e.has(n.sku)||(e.add(n.sku),a.push(n));this._el.innerHTML="";for(const n of a){const i=document.createElement("button");if(i.type="button",i.className="gengage-chat-thumbnail-btn",i.title=n.sku,S.isSafeImageUrl(n.imageUrl)){const r=document.createElement("img");r.className="gengage-chat-thumbnail-img",r.src=n.imageUrl,r.alt=n.sku,r.width=40,r.height=40,i.appendChild(r)}i.addEventListener("click",()=>{this._onThumbnailClick(n.threadId)}),this._el.appendChild(i)}}show(){this._el.style.display=""}hide(){this._el.style.display="none"}};function sa(t){return{processing:t.processing===!0,title:typeof t.title=="string"?t.title:void 0,description:typeof t.description=="string"?t.description:void 0,uploadLabel:typeof t.upload_label=="string"?t.upload_label:void 0,skipLabel:typeof t.skip_label=="string"?t.skip_label:void 0}}function ft(t,e,a){const n=t.props??{},i=n.processing===!0,r=document.createElement("div");r.className="gengage-chat-beauty-photo-step-card";const o=document.createElement("span");o.className="gengage-chat-beauty-photo-step-icon",o.setAttribute("aria-hidden","true"),o.textContent="✦";const c=document.createElement("div");c.className="gengage-chat-beauty-photo-step-content";const d=document.createElement("div");d.className="gengage-chat-beauty-photo-step-title",d.textContent=(typeof n.title=="string"?n.title:void 0)??e.i18n?.beautyPhotoStepTitle??"Upload a Photo";const l=document.createElement("p");l.className="gengage-chat-beauty-photo-step-desc",l.textContent=(typeof n.description=="string"?n.description:void 0)??e.i18n?.beautyPhotoStepDescription??"Share a selfie so we can analyze your skin and recommend the right products.";const p=document.createElement("div");p.className="gengage-chat-beauty-photo-step-actions";const s=document.createElement("button");s.type="button",s.className="gengage-chat-beauty-photo-step-upload gds-btn gds-btn-primary",s.textContent=i?e.i18n?.beautyPhotoStepProcessing??"Analyzing...":(typeof n.upload_label=="string"?n.upload_label:void 0)??e.i18n?.beautyPhotoStepUpload??"Upload Photo",s.disabled=i,a?.onUpload&&s.addEventListener("click",()=>a.onUpload());const u=document.createElement("button");return u.type="button",u.className="gengage-chat-beauty-photo-step-skip gds-btn gds-btn-ghost",u.textContent=(typeof n.skip_label=="string"?n.skip_label:void 0)??e.i18n?.beautyPhotoStepSkip??"Skip",a?.onSkip&&u.addEventListener("click",()=>a.onSkip()),p.appendChild(s),p.appendChild(u),c.appendChild(d),c.appendChild(l),c.appendChild(p),r.appendChild(o),r.appendChild(c),r}function ca(t,e){if(t)return t;const a=document.createElement("section");a.className="gengage-chat-beauty-photo-step",a.dataset.gengagePart="chat-beauty-photo-step",a.hidden=!0;const n=e?.querySelector(".gengage-chat-input-area");return n?n.parentElement?.insertBefore(a,n):e?.appendChild(a),a}function la(t,e,a,n,i){if(!a.visible)return t&&(t.hidden=!0,t.innerHTML=""),t;const r=ca(t,e);r.hidden=!1,r.innerHTML="";const o=ft({type:"BeautyPhotoStep",props:{processing:a.processing??!1,title:a.title,description:a.description,upload_label:a.uploadLabel,skip_label:a.skipLabel}},{i18n:n,onAction:()=>{}},{onUpload:i,onSkip:a.onSkip});return r.appendChild(o),r}function vt(t){const e=typeof t.summary=="string"?t.summary:"",a=Array.isArray(t.clues)?t.clues.filter(i=>typeof i=="string"):[];if(!e&&a.length===0)return null;const n=typeof t.next_question=="string"?t.next_question:void 0;return n?{summary:e,clues:a,nextQuestion:n}:{summary:e,clues:a}}function Fe(t,e){const a=document.createElement("div");a.className="gengage-chat-photo-analysis-card";const n=document.createElement("div");n.className="gengage-chat-photo-analysis-badge",n.textContent=t;const i=document.createElement("div");if(i.className="gengage-chat-photo-analysis-body",e.summary){const r=document.createElement("p");r.className="gengage-chat-photo-analysis-summary",r.textContent=e.summary,i.appendChild(r)}if(e.clues.length>0){const r=document.createElement("ul");r.className="gengage-chat-photo-analysis-points";for(const o of e.clues){const c=document.createElement("li");c.textContent=o,r.appendChild(c)}i.appendChild(r)}if(e.nextQuestion){const r=document.createElement("p");r.className="gengage-chat-photo-analysis-next",r.textContent=e.nextQuestion,i.appendChild(r)}return a.appendChild(n),a.appendChild(i),a}function ga(t,e){const a=vt(t.props??{})??{summary:"",clues:[]};return Fe(e.i18n?.photoAnalysisBadge??"Skin Analysis",a)}function da(t,e,a,n){if(t.innerHTML="",n){t.appendChild(Fe(a,n));return}const i=e.split(/(?<=[.!?])\s+/).map(l=>l.trim()).filter(Boolean),r=i[0]??e,o=i.slice(1).filter(l=>!l.includes("?")).slice(0,4),c=i.find(l=>l.includes("?")),d={summary:r,clues:o,...c?{nextQuestion:c}:{}};t.appendChild(Fe(a,d))}var Ke={search:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><circle cx="6.5" cy="6.5" r="5" fill="none" stroke="currentColor" stroke-width="1.5"/><line x1="10" y1="10" x2="15" y2="15" stroke="currentColor" stroke-width="1.5"/></svg>',review:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><polygon points="8,1 10,6 15,6 11,9 12.5,14 8,11 3.5,14 5,9 1,6 6,6" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>',info:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><circle cx="8" cy="8" r="7" fill="none" stroke="currentColor" stroke-width="1.5"/><line x1="8" y1="7" x2="8" y2="12" stroke="currentColor" stroke-width="1.5"/><circle cx="8" cy="4.5" r="0.8" fill="currentColor"/></svg>',similar:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><rect x="1" y="3" width="6" height="6" rx="1" fill="none" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="3" width="6" height="6" rx="1" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>'},pa=qe,ha=1400,ua=/data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;async function ma(t){for(const e of t)for(const a of e.types)if(a.startsWith("image/"))try{const n=await e.getType(a);if(!n||n.size===0)continue;const i=a||n.type||"image/png",r=i==="image/png"?"png":i==="image/webp"?"webp":"jpg",o=`paste-${Date.now()}.${r}`;return new File([n],o,{type:i})}catch{continue}for(const e of t)if(e.types.includes("text/html"))try{const a=(await(await e.getType("text/html")).text()).match(ua)?.[0];if(!a||a.length>5e6)continue;const n=await(await fetch(a)).blob();if(!n||n.size===0)continue;const i=n.type||"image/png";if(!["image/jpeg","image/png","image/webp"].includes(i))continue;const r=i==="image/png"?"png":i==="image/webp"?"webp":"jpg";return new File([n],`paste-${Date.now()}.${r}`,{type:i})}catch{continue}return null}async function ba(t){try{const e=t??(typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():null);return e?ma(await e):null}catch{}return null}var fa=class{_renderPhotoAnalysisCard(t,e,a){da(t,e,this.i18n.photoAnalysisBadge,a)}constructor(t,e){this._sendStopHandler=null,this._panelVisible=!1,this._panelCollapsed=!1,this._dividerPreviewEnabled=!1,this._onPanelToggle=void 0,this._onHostShellSync=void 0,this._pendingAttachment=null,this._onAttachment=void 0,this._onRollback=void 0,this._onLinkClick=void 0,this._userScrolledUp=!1,this._scrollLockedUntil=0,this._favBadgeEl=null,this._thinkingSteps=[],this._firstBotMessageIds=new Set,this._voiceInput=null,this._micBtn=null,this._voiceEnabled=!1,this._voiceLang="tr-TR",this._ignoreNextDividerClick=!1,this._panelListScrollAnimToken=0,this._cleanups=[],this._focusTrapHandler=null,this._previouslyFocusedElement=null,this._conversationEl=null,this._reopenPanelBtn=null,this._presentationFocusThreadId=null,this._formerMessagesBtn=null,this._programmaticScrollUntil=0,this._userInteractionUntil=0,this._touchStartY=null,this._presentationPinned=!0,this._presentationUserInteracting=!1,this._resizeRafId=null,this._cartBtn=null,this._attachWrapEl=null,this._attachMenuEl=null,this._attachBtn=null,this._attachMenuCleanup=null,this._attachMenuClickTimerId=null,this._typingLoadingBinding=null,this._panelLoadingBinding=null,this._panelAiZoneLoadingBinding=null,this._beautyPhotoStepEl=null,this._options=e,this.i18n={...pa,...e.i18n},this.onSend=e.onSend,e.onPanelToggle!==void 0&&(this._onPanelToggle=e.onPanelToggle),e.onHostShellSync!==void 0&&(this._onHostShellSync=e.onHostShellSync),e.onAttachment!==void 0&&(this._onAttachment=e.onAttachment),e.onRollback!==void 0&&(this._onRollback=e.onRollback),e.onLinkClick!==void 0&&(this._onLinkClick=e.onLinkClick),e.voiceEnabled&&(this._voiceEnabled=!0),e.voiceLang!==void 0&&(this._voiceLang=e.voiceLang),this.root=document.createElement("div"),this.root.className="gengage-chat-drawer gds-panel",this.root.dataset.gengagePart="chat-drawer",this.root.setAttribute("role","dialog"),this.root.setAttribute("aria-label",this.i18n.headerTitle??"Chat"),this.root.setAttribute("aria-modal","true");const a="gengage-chat-dialog-desc",n=document.createElement("span");n.id=a,n.className="gengage-sr-only",n.textContent=this.i18n.headerTitle??"AI shopping assistant",this.root.appendChild(n),this.root.setAttribute("aria-describedby",a);let i=null;{const k=document.createElement("div");k.className="gengage-chat-drawer-handle",k.dataset.gengagePart="chat-drawer-handle",k.setAttribute("aria-hidden","true"),k.style.pointerEvents="none",i=k}const r=document.createElement("div");r.className="gengage-chat-header gds-shell-header",r.dataset.gengagePart="chat-header";const o=document.createElement("div");o.className="gengage-chat-header-left",o.dataset.gengagePart="chat-header-left";const c=e.headerAvatarUrl??e.launcherImageUrl,d=typeof e.headerAvatarUrl=="string"&&e.headerAvatarUrl.length>0&&e.headerAvatarUrl!==e.launcherImageUrl;if(c){const k=document.createElement("img");k.className="gengage-chat-header-avatar",d&&k.classList.add("gengage-chat-header-avatar--logo"),k.dataset.gengagePart="chat-header-avatar",k.src=c,k.alt=e.headerTitle??"Assistant",o.appendChild(k)}const l=document.createElement("div");l.className="gengage-chat-header-info",l.dataset.gengagePart="chat-header-info";const p=document.createElement("div");p.className="gengage-chat-header-title-row",p.dataset.gengagePart="chat-header-title-row";const s=document.createElement("span");if(s.className="gengage-chat-header-title",s.dataset.gengagePart="chat-header-title",s.textContent=e.headerTitle??this.i18n.headerTitle??"Product Expert",p.appendChild(s),e.headerBadge){const k=document.createElement("span");k.className="gengage-chat-header-badge gds-badge gds-badge-brand",k.dataset.gengagePart="chat-header-badge",k.textContent=e.headerBadge,p.appendChild(k)}l.appendChild(p);const u=document.createElement("a");u.className="gengage-chat-header-powered",u.dataset.gengagePart="chat-header-powered-by",u.href="https://gengage.ai/",u.target="_blank",u.rel="noopener noreferrer",u.innerHTML=`<svg viewBox="0 0 15 15" fill="none" aria-hidden="true"><path d="M15 5.88941C12.2201 5.88941 9.72762 7.14107 8.05571 9.11059H0C2.77991 9.11059 5.27238 7.85893 6.94429 5.88941H15Z" fill="currentColor"/><path d="M9.10964 0C9.10964 2.24394 8.29524 4.30038 6.94429 5.88941C5.27238 7.85962 2.77922 9.11059 0 9.11059V5.88941C3.24802 5.88941 5.89036 3.2465 5.89036 0H9.10964Z" fill="currentColor" fill-opacity="0.68"/><path d="M15 5.88941V9.11059C11.752 9.11059 9.10964 11.7535 9.10964 15H5.89036C5.89036 12.7561 6.70476 10.6996 8.05571 9.11059C9.72762 7.14038 12.2208 5.88941 15 5.88941Z" fill="currentColor" fill-opacity="0.68"/></svg>${this.i18n.poweredBy}`,l.appendChild(u),o.appendChild(l),r.appendChild(o);const h=document.createElement("div");h.className="gengage-chat-header-right",h.dataset.gengagePart="chat-header-actions";{const k=document.createElement("button");k.type="button",k.className="gengage-chat-header-btn gengage-chat-header-btn--reopen-panel gds-btn gds-btn-ghost gds-icon-btn",k.dataset.gengagePart="chat-header-reopen-panel",k.setAttribute("aria-label",this.i18n.showPanelAriaLabel),k.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><line x1="9" y1="3" x2="9" y2="21"/></svg>',k.addEventListener("click",()=>this._showMobilePanelFromBtn()),h.appendChild(k),this._reopenPanelBtn=k}{const k=document.createElement("button");k.type="button",k.className="gengage-chat-header-btn gds-btn gds-btn-ghost gds-icon-btn",k.dataset.gengagePart="chat-header-cart",k.setAttribute("aria-label",this.i18n.cartAriaLabel),k.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>',k.addEventListener("click",()=>e.onCartClick?.()),h.appendChild(k),this._cartBtn=k}if(e.onNewChat){const k=document.createElement("button");k.className="gengage-chat-header-btn gengage-chat-new-chat gds-btn gds-btn-ghost gds-icon-btn",k.dataset.gengagePart="chat-header-new-chat",k.type="button",k.setAttribute("aria-label",this.i18n.newChatButton),k.title=this.i18n.newChatButton,k.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>',k.addEventListener("click",()=>e.onNewChat?.()),h.appendChild(k)}const w=document.createElement("button");if(w.className="gengage-chat-close gds-btn gds-btn-ghost gds-icon-btn",w.dataset.gengagePart="chat-header-close",w.type="button",w.setAttribute("aria-label",this.i18n.closeButton),w.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',w.addEventListener("click",e.onClose),e.showHeaderFavorites){const k=document.createElement("button");k.className="gengage-chat-header-btn gengage-chat-header-btn--fav gds-btn gds-btn-ghost gds-icon-btn",k.dataset.gengagePart="chat-header-favorites",k.type="button",k.setAttribute("aria-label",this.i18n.favoritesAriaLabel),k.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>';const G=document.createElement("span");G.className="gengage-chat-header-fav-badge",G.dataset.gengagePart="chat-header-favorites-badge",G.setAttribute("aria-hidden","true"),G.style.display="none",k.appendChild(G),this._favBadgeEl=G,k.addEventListener("click",()=>{e.onFavoritesClick?.()}),h.appendChild(k)}h.appendChild(w),i&&r.insertBefore(i,r.firstChild),r.appendChild(h);{let G=0,J=0,te=!1;const ae=re=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||re.target.closest('button, a, input, [role="button"]'))return;const oe=re.changedTouches?.[0];oe&&(G=oe.clientY,J=0,te=!0,this.root.style.transition="none")},ge=re=>{if(!te)return;const oe=re.changedTouches?.[0];if(!oe)return;J=oe.clientY-G;const Ht=(e.getMobileState?.()??"full")==="full"?Math.max(0,J):J;re.preventDefault(),this.root.style.transform=`translateY(${Ht}px)`},he=()=>{if(!te)return;te=!1;const re=e.getMobileState?.()??"full";let oe;J>72?oe=re==="full"?"half":"close":J<-72&&re==="half"?oe="full":oe=re,this.root.style.transition="",oe==="close"?(this.root.style.transform="translateY(100%)",setTimeout(()=>{this.root.style.transform="",e.onMobileSnap?.("close")},280)):(this.root.style.transform="",e.onMobileSnap?.(oe)),J=0},Ce=()=>{te&&(te=!1,J=0,this.root.style.transition="",this.root.style.transform="")};r.addEventListener("touchstart",ae,{passive:!0}),r.addEventListener("touchmove",ge,{passive:!1}),r.addEventListener("touchend",he,{passive:!0}),r.addEventListener("touchcancel",Ce,{passive:!0}),this._cleanups.push(()=>{r.removeEventListener("touchstart",ae),r.removeEventListener("touchmove",ge),r.removeEventListener("touchend",he),r.removeEventListener("touchcancel",Ce)})}const m=document.createElement("div");m.className="gengage-chat-body",m.dataset.gengagePart="chat-body",this._panelEl=document.createElement("div"),this._panelEl.className="gengage-chat-panel gds-panel",this._panelEl.dataset.gengagePart="chat-panel",this._panelTopBar=new ra({onBack:()=>e.onPanelBack?.(),onForward:()=>e.onPanelForward?.(),onClose:()=>{e.getMobileViewport?.()??!1?this.hideMobilePanel():this.clearPanel(),e.onPanelClose?.()},backAriaLabel:this.i18n.backAriaLabel,forwardAriaLabel:this.i18n.forwardAriaLabel,closePanelAriaLabel:this.i18n.closePanelAriaLabel}),this._panelEl.appendChild(this._panelTopBar.getElement());const v=()=>this._updateScrollAffordance();this._panelEl.addEventListener("scroll",v,{passive:!0}),this._cleanups.push(()=>this._panelEl.removeEventListener("scroll",v)),m.appendChild(this._panelEl),this._dividerEl=document.createElement("div"),this._dividerEl.className="gengage-chat-panel-divider gengage-chat-panel-divider--hidden",this._dividerEl.dataset.gengagePart="chat-panel-divider",this._dividerEl.setAttribute("role","separator"),this._dividerEl.setAttribute("aria-label",this.i18n.togglePanelAriaLabel),this._dividerEl.setAttribute("title",this.i18n.togglePanelAriaLabel),this._dividerPreviewEl=document.createElement("div"),this._dividerPreviewEl.className="gengage-chat-panel-divider-preview",this._dividerPreviewEl.dataset.gengagePart="chat-panel-divider-preview",this._dividerPreviewEl.setAttribute("aria-hidden","true"),this._dividerEl.appendChild(this._dividerPreviewEl);const y=document.createElement("button");y.className="gengage-chat-panel-divider-toggle gds-btn gds-btn-ghost",y.dataset.gengagePart="chat-panel-divider-toggle",y.type="button",y.setAttribute("aria-label",this.i18n.togglePanelAriaLabel),y.setAttribute("title",this.i18n.togglePanelAriaLabel),y.textContent="»",y.addEventListener("click",()=>{if(this._ignoreNextDividerClick){this._ignoreNextDividerClick=!1;return}this.togglePanel(),this._onPanelToggle?.()});let M=null,C=null;const L=24,_=k=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const G=k.changedTouches?.[0];G&&(M=G.clientX,C=G.clientY)},N=k=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||M===null||C===null)return;const G=k.changedTouches?.[0];if(!G)return;const J=G.clientX-M,te=G.clientY-C;if(M=null,C=null,Math.abs(te)<L||Math.abs(te)<Math.abs(J))return;const ae=te<0;ae!==this._panelCollapsed&&(this._ignoreNextDividerClick=!0,this.setPanelCollapsed(ae),this._onPanelToggle?.())};this._dividerEl.addEventListener("touchstart",_,{passive:!0}),this._dividerEl.addEventListener("touchend",N,{passive:!0}),this._cleanups.push(()=>{this._dividerEl.removeEventListener("touchstart",_),this._dividerEl.removeEventListener("touchend",N)}),this._dividerEl.appendChild(y),m.appendChild(this._dividerEl);const H=document.createElement("div");H.className="gengage-chat-conversation",H.dataset.gengagePart="chat-conversation",this._conversationEl=H,H.appendChild(r);const T=document.createElement("div");T.className="gengage-chat-offline-bar gds-evidence-card gds-evidence-card-warning",T.dataset.gengagePart="chat-offline-bar",T.setAttribute("role","status"),T.setAttribute("aria-live","polite"),T.textContent=this.i18n.offlineMessage,typeof navigator<"u"&&!navigator.onLine&&T.classList.add("gengage-chat-offline-bar--visible"),H.appendChild(T);const q=()=>T.classList.add("gengage-chat-offline-bar--visible"),Z=()=>T.classList.remove("gengage-chat-offline-bar--visible");window.addEventListener("offline",q),window.addEventListener("online",Z),this._cleanups.push(()=>{window.removeEventListener("offline",q),window.removeEventListener("online",Z)}),this._kvkkSlot=document.createElement("div"),this._kvkkSlot.className="gengage-chat-kvkk-slot",this._kvkkSlot.dataset.gengagePart="chat-kvkk-slot",H.appendChild(this._kvkkSlot),this.messagesEl=document.createElement("div"),this.messagesEl.id=Pe,this.messagesEl.className="gengage-chat-messages",this.messagesEl.dataset.gengagePart="chat-messages",this.messagesEl.setAttribute("role","log"),this.messagesEl.setAttribute("aria-live","polite"),this.messagesEl.setAttribute("aria-atomic","false"),this.messagesEl.setAttribute("aria-label",this.i18n.chatMessagesAriaLabel),Ye(this.messagesEl);const Y=document.createElement("button");Y.type="button",Y.className="gengage-chat-former-messages-btn gds-chip",Y.dataset.gengagePart="chat-former-messages-button",Y.textContent=this.i18n.showFormerMessagesButton,Y.setAttribute("aria-label",this.i18n.showFormerMessagesButton),Y.style.display="none",Y.addEventListener("click",()=>{this._options.presentation?.onReleasePresentationFocus?.()}),this.messagesEl.appendChild(Y),this._formerMessagesBtn=Y;const I=()=>{this._userInteractionUntil=Date.now()+2e3};let f=!1;const b=()=>this._options.presentation,x=()=>{f||(f=!0,requestAnimationFrame(()=>{f=!1;const{scrollTop:k,scrollHeight:G,clientHeight:J}=this.messagesEl,te=G-k-J;this._userScrolledUp=te>10;const ae=this._presentationPinned?te<96:te<32,ge=Date.now(),he=ge<this._programmaticScrollUntil,Ce=!ae&&ge<this._userInteractionUntil,re=he?!1:Ce;ae!==this._presentationPinned&&(this._presentationPinned=ae,b()?.onPinnedToBottomChange?.(ae)),re!==this._presentationUserInteracting&&(this._presentationUserInteracting=re,b()?.onUserInteractingChange?.(re))}))};this.messagesEl.addEventListener("scroll",x,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("scroll",x)});const E=k=>{I(),k.deltaY<-6&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("wheel",E,{passive:!0}),this._cleanups.push(()=>this.messagesEl.removeEventListener("wheel",E));const A=k=>{I(),this._touchStartY=k.touches[0]?.clientY??null},B=k=>{I();const G=k.touches[0]?.clientY,J=this._touchStartY;typeof G=="number"&&typeof J=="number"&&G-J>10&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("touchstart",A,{passive:!0}),this.messagesEl.addEventListener("touchmove",B,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("touchstart",A),this.messagesEl.removeEventListener("touchmove",B)}),H.appendChild(this.messagesEl),this._thumbnailsColumn=new oa({onThumbnailClick:k=>e.onThumbnailClick?.(k)}),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelFloatingEl=document.createElement("div"),this._panelFloatingEl.className="gengage-chat-panel-float",this._panelFloatingEl.dataset.gengagePart="chat-panel-floating-layer",this._panelEl.appendChild(this._panelFloatingEl),this._resetPanelAiZoneElement(),this._pillsEl=document.createElement("div"),this._pillsEl.className="gengage-chat-pills",this._pillsEl.dataset.gengagePart="chat-suggestion-pills",this._pillsEl.setAttribute("role","toolbar"),this._pillsEl.setAttribute("aria-label",this.i18n.suggestionsAriaLabel),this._pillsEl.style.display="none";const R=document.createElement("div");R.className="gengage-chat-pills-scroll",R.dataset.gengagePart="chat-suggestion-pills-scroll",this._pillsEl.appendChild(R);const P=document.createElement("button");P.className="gengage-chat-pills-arrow gds-btn gds-btn-ghost",P.dataset.gengagePart="chat-suggestion-pills-more",P.type="button",P.setAttribute("aria-label",this.i18n.moreSuggestionsAriaLabel),P.textContent="›",P.addEventListener("click",()=>{R.scrollBy({left:150,behavior:"smooth"})}),this._pillsEl.appendChild(P);let j=!1;const U=()=>{j||(j=!0,requestAnimationFrame(()=>{j=!1;const k=R.scrollLeft+R.clientWidth>=R.scrollWidth-4;P.style.display=k?"none":""}))};R.addEventListener("scroll",U,{passive:!0}),this._cleanups.push(()=>{R.removeEventListener("scroll",U)}),H.appendChild(this._pillsEl),this._inputChipsEl=document.createElement("div"),this._inputChipsEl.className="gengage-chat-input-chips",this._inputChipsEl.dataset.gengagePart="chat-input-chips",this._inputChipsEl.style.display="none",H.appendChild(this._inputChipsEl);const $=document.createElement("div");$.className="gengage-chat-input-area",$.dataset.gengagePart="chat-input-area",this.inputEl=document.createElement("textarea"),this.inputEl.className="gengage-chat-input",this.inputEl.dataset.gengagePart="chat-input",this.inputEl.rows=1,this.inputEl.placeholder=this.i18n.inputPlaceholder,this.inputEl.addEventListener("input",()=>{this._resizeRafId!==null&&cancelAnimationFrame(this._resizeRafId),this._resizeRafId=requestAnimationFrame(()=>{this._resizeRafId=null,this.inputEl.style.height="auto",this.inputEl.style.height=`${Math.min(this.inputEl.scrollHeight,120)}px`}),this._updateSendEnabled()}),this.inputEl.addEventListener("keydown",k=>{k.key==="Enter"&&((this._options.getMobileViewport?.()??window.innerWidth<=768)||!k.shiftKey)&&(k.preventDefault(),this._submit())}),this.inputEl.addEventListener("paste",k=>{const G=k.clipboardData;if(!G)return;let J=null;const te=G.files?.[0];if(te&&te.type.startsWith("image/"))J=te;else if(G.items?.length)for(let ae=0;ae<G.items.length;ae++){const ge=G.items[ae];if(ge?.kind==="file"&&ge.type.startsWith("image/")){const he=ge.getAsFile();if(he){J=he;break}}}J&&(k.preventDefault(),this._routeAttachmentFile(J))}),this._fileInput=document.createElement("input"),this._fileInput.type="file",this._fileInput.accept="image/jpeg,image/png,image/webp",this._fileInput.style.display="none",this._fileInput.addEventListener("change",()=>{const k=this._fileInput.files?.[0];k&&this._routeAttachmentFile(k),this._fileInput.value=""});const K=document.createElement("div");K.className="gengage-chat-attach-wrap",K.dataset.gengagePart="chat-attach-wrap",this._attachWrapEl=K;const X=document.createElement("button");this._attachBtn=X,X.className="gengage-chat-attach-btn gds-btn gds-btn-ghost",X.dataset.gengagePart="chat-attach-button",X.type="button",X.setAttribute("aria-label",this.i18n.attachImageButton),X.setAttribute("aria-haspopup","menu"),X.setAttribute("aria-expanded","false"),X.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg>',X.addEventListener("click",k=>{k.stopPropagation(),this._toggleAttachMenu()});const ee=document.createElement("div");this._attachMenuEl=ee,ee.className="gengage-chat-attach-menu gds-menu",ee.dataset.gengagePart="chat-attach-menu",ee.setAttribute("role","menu"),ee.setAttribute("hidden","");const V=document.createElement("button");V.type="button",V.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",V.dataset.gengagePart="chat-attach-menu-select-photo",V.setAttribute("role","menuitem"),V.innerHTML=`<span class="gengage-chat-attach-menu-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg></span><span class="gengage-chat-attach-menu-label">${this.i18n.attachMenuSelectPhoto}</span>`,V.addEventListener("click",k=>{k.stopPropagation(),this._closeAttachMenu(),this._fileInput.click()});const ie=document.createElement("div");ie.className="gengage-chat-attach-menu-sep",ie.dataset.gengagePart="chat-attach-menu-separator",ie.setAttribute("aria-hidden","true");const O=document.createElement("button");O.type="button",O.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",O.dataset.gengagePart="chat-attach-menu-paste",O.setAttribute("role","menuitem"),O.innerHTML=`<span class="gengage-chat-attach-menu-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Z"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"/><path d="M16 4h2a2 2 0 0 1 2 2v4"/><path d="M21 14H11"/><path d="m15 10-4 4 4 4"/></svg></span><span class="gengage-chat-attach-menu-label">${this.i18n.attachMenuPaste}</span>`,O.addEventListener("click",k=>{k.stopPropagation();const G=typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():void 0;this._pasteImageFromClipboardMenu(G)}),ee.appendChild(V),ee.appendChild(ie),ee.appendChild(O),K.appendChild(X),K.appendChild(ee),this._previewStrip=document.createElement("div"),this._previewStrip.className="gengage-chat-attachment-preview gengage-chat-attachment-preview--hidden gds-card-soft",this._previewStrip.dataset.gengagePart="chat-attachment-preview";const z=document.createElement("img");z.className="gengage-chat-attachment-preview-thumb",z.dataset.gengagePart="chat-attachment-preview-thumb",z.alt="",this._previewName=document.createElement("span"),this._previewName.className="gengage-chat-attachment-name",this._previewName.dataset.gengagePart="chat-attachment-preview-name";const W=document.createElement("button");W.className="gengage-chat-attachment-remove gds-btn gds-btn-ghost",W.dataset.gengagePart="chat-attachment-preview-remove",W.type="button",W.setAttribute("aria-label",this.i18n.removeAttachmentButton),W.textContent="×",W.addEventListener("click",()=>this.clearAttachment()),this._previewStrip.appendChild(z),this._previewStrip.appendChild(this._previewName),this._previewStrip.appendChild(W),this.sendBtn=document.createElement("button"),this.sendBtn.className="gengage-chat-send gds-btn gds-btn-primary",this.sendBtn.dataset.gengagePart="chat-send",this.sendBtn.type="button",this.sendBtn.disabled=!0,this.sendBtn.setAttribute("aria-label",this.i18n.sendButton),this.sendBtn.dataset.tooltip=this.i18n.sendButton,this._renderSendButtonIcon("send"),this.sendBtn.addEventListener("click",()=>{if(this._sendStopHandler){const k=this._sendStopHandler;this.hideStopButton(),k();return}this._submit()}),$.addEventListener("dragover",k=>{k.preventDefault(),$.classList.add("gengage-chat-input-area--dragover")}),$.addEventListener("dragleave",()=>{$.classList.remove("gengage-chat-input-area--dragover")}),$.addEventListener("drop",k=>{k.preventDefault(),$.classList.remove("gengage-chat-input-area--dragover");const G=k.dataTransfer?.files[0];G&&this._routeAttachmentFile(G)});const D=document.createElement("div");D.className="gengage-chat-input-pill gds-input-shell",D.dataset.gengagePart="chat-input-shell",D.appendChild(K),D.appendChild(this.inputEl),this._voiceEnabled&&ut()&&(this._micBtn=document.createElement("button"),this._micBtn.className="gengage-chat-mic-btn gds-btn gds-btn-ghost",this._micBtn.dataset.gengagePart="chat-mic-button",this._micBtn.type="button",this._micBtn.setAttribute("aria-label",this.i18n.voiceButton),this._micBtn.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/><line x1="8" y1="23" x2="16" y2="23"/></svg>',this._micBtn.addEventListener("click",()=>this._toggleVoice()),D.appendChild(this._micBtn),this._voiceInput=new bt({onInterim:k=>{this._resizeRafId!==null&&(cancelAnimationFrame(this._resizeRafId),this._resizeRafId=null),this.inputEl.value=k,this.inputEl.style.height="auto",this.inputEl.style.height=`${Math.min(this.inputEl.scrollHeight,120)}px`},onFinal:k=>{this.inputEl.value=k},onAutoSubmit:k=>{this.inputEl.value=k,this._micBtn?.classList.remove("gengage-chat-mic-btn--active"),this._submit()},onStateChange:k=>{k==="listening"?this._micBtn?.classList.add("gengage-chat-mic-btn--active"):this._micBtn?.classList.remove("gengage-chat-mic-btn--active")},onError:(k,G)=>{this._micBtn?.classList.remove("gengage-chat-mic-btn--active")}},{lang:this._voiceLang})),D.appendChild(this.sendBtn),$.appendChild(this._previewStrip),$.appendChild(this._fileInput),$.appendChild(D),H.appendChild($),m.appendChild(H),this._comparisonDockSlotEl=document.createElement("div"),this._comparisonDockSlotEl.className="gengage-chat-comparison-dock-slot",this._comparisonDockSlotEl.dataset.gengagePart="comparison-dock-slot",m.appendChild(this._comparisonDockSlotEl),this.root.appendChild(m),this._setupHorizontalSwipe(H),this._setupHorizontalSwipe(this._panelEl);const Q=document.createElement("div");Q.className="gengage-chat-footer",Q.dataset.gengagePart="chat-footer",Q.textContent=this.i18n.poweredBy,this.root.appendChild(Q);const ke=k=>{k.key==="Escape"&&e.onClose()};this.root.addEventListener("keydown",ke),this._cleanups.push(()=>this.root.removeEventListener("keydown",ke)),t.appendChild(this.root)}addMessage(t){const e=document.createElement("div");if(e.className=`gengage-chat-bubble gds-message ${t.role==="assistant"?"gds-message-assistant":"gds-message-user"} gengage-chat-bubble--${t.role}`,e.dataset.gengagePart=t.role==="assistant"?"chat-message-assistant":"chat-message-user",e.setAttribute("role","listitem"),e.dataset.messageId=t.id,t.threadId&&(e.dataset.threadId=t.threadId),this._firstBotMessageIds.has(t.id)&&e.classList.add("gengage-chat-bubble--first"),t.attachment){const a=document.createElement("img");a.className="gengage-chat-attachment-thumb";const n=URL.createObjectURL(t.attachment);a.src=n,a.alt=t.attachment.name,a.addEventListener("load",()=>URL.revokeObjectURL(n),{once:!0}),a.addEventListener("error",()=>URL.revokeObjectURL(n),{once:!0}),e.insertBefore(a,e.firstChild)}if(t.content){const a=document.createElement("div");if(a.className="gengage-chat-bubble-text",a.dataset.gengagePart="chat-message-text",t.role==="assistant"){if(t.renderHint==="photo_analysis"?(e.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(a,t.content,t.photoAnalysis)):a.innerHTML=S.sanitizeHtml(t.content),this._onLinkClick){const n=a.querySelectorAll("a[href]");for(const i of n)i.addEventListener("click",r=>{r.preventDefault();const o=i.getAttribute("href");o&&this._onLinkClick?.(o)})}}else a.textContent=t.content;e.appendChild(a)}if(t.role==="user"&&this._onRollback){const a=document.createElement("button");a.className="gengage-chat-rollback-btn gds-btn gds-btn-ghost",a.dataset.gengagePart="chat-message-rollback",a.type="button",a.setAttribute("aria-label",this.i18n.rollbackAriaLabel),a.title=this.i18n.rollbackAriaLabel,a.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 4 1 10 7 10"/><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/></svg>',a.addEventListener("click",n=>{n.stopPropagation(),this._onRollback?.(t.id)}),e.appendChild(a)}this.messagesEl.appendChild(e),this._presentationFocusThreadId&&this._applyPresentationCollapsed(),this._scrollToBottom(t.role==="user")}removeMessageBubble(t){this._firstBotMessageIds.delete(t),this.messagesEl.querySelector(`[data-message-id="${CSS.escape(t)}"]`)?.remove(),this._presentationFocusThreadId&&this._applyPresentationCollapsed()}showTypingIndicator(t){this.removeTypingIndicator();const e=this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):t?[t]:this.i18n.loadingSequenceGeneric,{root:a,binding:n}=this._createLoadingSequence("chat",e,"chat-typing-indicator","gengage-chat-typing");a.dataset.typing="true",this._typingLoadingBinding=n,this.messagesEl.appendChild(a),this._scrollToBottom(!0)}addThinkingStep(t){const e=t.trim();e&&this._thinkingSteps[this._thinkingSteps.length-1]!==e&&(this._thinkingSteps.push(e),this._thinkingSteps=this._thinkingSteps.slice(-3),this._typingLoadingBinding&&this._applyLoadingSteps(this._typingLoadingBinding,this._thinkingSteps,!0),this._panelLoadingBinding&&this._applyLoadingSteps(this._panelLoadingBinding,this._thinkingSteps,!0),this._panelAiZoneLoadingBinding&&this._applyLoadingSteps(this._panelAiZoneLoadingBinding,this._thinkingSteps,!0))}setThinkingSteps(t){const e=t.map(a=>a.trim()).filter(Boolean).slice(-3);e.length!==0&&(this._thinkingSteps=e,this._typingLoadingBinding&&this._applyLoadingSteps(this._typingLoadingBinding,this._thinkingSteps,!0),this._panelLoadingBinding&&this._applyLoadingSteps(this._panelLoadingBinding,this._thinkingSteps,!0),this._panelAiZoneLoadingBinding&&this._applyLoadingSteps(this._panelAiZoneLoadingBinding,this._thinkingSteps,!0))}removeTypingIndicator(){this._destroyLoadingBinding(this._typingLoadingBinding),this._typingLoadingBinding=null,this.messagesEl.querySelector(".gengage-chat-typing")?.remove(),this._thinkingSteps=[],this.hideStopButton()}showStopButton(t){this._sendStopHandler=t,this.sendBtn.disabled=!1,this.sendBtn.classList.add("gengage-chat-send--stop","gds-btn-secondary"),this.sendBtn.classList.remove("gds-btn-primary"),this.sendBtn.setAttribute("aria-label",this.i18n.stopGenerating),this.sendBtn.dataset.tooltip=this.i18n.stopGenerating,this._renderSendButtonIcon("stop")}hideStopButton(){this._sendStopHandler=null,this.sendBtn.classList.remove("gengage-chat-send--stop","gds-btn-secondary"),this.sendBtn.classList.add("gds-btn-primary"),this.sendBtn.setAttribute("aria-label",this.i18n.sendButton),this.sendBtn.dataset.tooltip=this.i18n.sendButton,this._renderSendButtonIcon("send"),this._updateSendEnabled()}showError(t,e){const a=document.createElement("div");a.className="gengage-chat-error",a.setAttribute("role","alert");const n=document.createElement("span");if(n.textContent=t??this.i18n.errorMessage,a.appendChild(n),e){const i=document.createElement("button");i.className="gengage-chat-error-retry",i.textContent=this.i18n.retryButton??"Retry",i.addEventListener("click",()=>{a.remove(),e()}),a.appendChild(i)}this.messagesEl.appendChild(a),this._scrollToBottom(!0)}showErrorWithRecovery(t,e){this.showError(t),this.setRecoveryPills(e)}showRecoveryPillsOnly(t){this.setRecoveryPills(t)}setRecoveryPills(t){this.setPills([{label:this.i18n.tryAgainButton,onAction:t.onRetry},{label:this.i18n.askSomethingElseButton,onAction:t.onNewQuestion}])}clearMessages(){const t=this._formerMessagesBtn;for(const e of[...this.messagesEl.children])e!==t&&e.remove()}setPills(t){const e=this._pillsEl.querySelector(".gengage-chat-pills-scroll");if(!e)return;for(;e.firstChild;)e.removeChild(e.firstChild);if(t.length===0){this._pillsEl.style.display="none";return}this._pillsEl.style.display="";for(const n of t){const i=document.createElement("button");if(i.className=n.image?"gengage-chat-pill gds-chip gds-chip-active gengage-chat-pill--rich":"gengage-chat-pill gds-chip gds-chip-active",i.type="button",n.icon){const o=Ke[n.icon]??'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><path d="M3 8h10M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',c=document.createElement("span");c.className="gengage-chat-pill-icon",c.innerHTML=o,i.appendChild(c)}if(n.image&&S.isSafeImageUrl(n.image)){const o=document.createElement("img");o.className="gengage-chat-pill-img",o.src=n.image,o.alt="",i.appendChild(o)}const r=document.createElement("span");if(r.className="gengage-chat-pill-text",r.textContent=n.label,i.appendChild(r),n.description){const o=document.createElement("span");o.className="gengage-chat-pill-desc";const c=`pill-desc-${Math.random().toString(36).slice(2,9)}`;o.id=c,o.textContent=n.description,i.appendChild(o),i.setAttribute("aria-describedby",c)}i.addEventListener("click",()=>n.onAction()),e.appendChild(i)}const a=this._pillsEl.querySelector(".gengage-chat-pills-arrow");a&&requestAnimationFrame(()=>{a.style.display=e.scrollWidth>e.clientWidth?"":"none"})}focusInput(){this.inputEl.focus()}showKvkkBanner(t,e){this._kvkkSlot.innerHTML="";const a=ia({htmlContent:t,onDismiss:e,closeAriaLabel:this.i18n.closeAriaLabel});this._kvkkSlot.appendChild(a)}hideKvkkBanner(){this._kvkkSlot.innerHTML=""}isKvkkBannerVisible(){return this._kvkkSlot.childNodes.length>0}getElement(){return this.root}openAttachmentPicker(){this._fileInput.click()}setAttachmentControlsVisible(t){this._attachWrapEl&&(this._attachWrapEl.style.display=t?"":"none",t||this._closeAttachMenu())}setBeautyPhotoStepCard(t){this._beautyPhotoStepEl=la(this._beautyPhotoStepEl,this._conversationEl??null,t,this.i18n,()=>this.openAttachmentPicker())}stageAttachment(t){this._pendingAttachment=t,this._previewName.textContent=t.name;const e=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");e&&(e.src&&e.src.startsWith("blob:")&&URL.revokeObjectURL(e.src),e.src=URL.createObjectURL(t)),this._previewStrip.classList.remove("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}clearAttachment(){const t=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");t?.src&&(URL.revokeObjectURL(t.src),t.src=""),this._pendingAttachment=null,this._previewStrip.classList.add("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}_routeAttachmentFile(t){if(this._onAttachment)try{this._onAttachment(t)}catch(e){console.error("[gengage:chat] Attachment callback error:",e)}else this.stageAttachment(t)}_closeAttachMenu(){this._attachMenuEl&&(this._attachMenuEl.setAttribute("hidden",""),this._attachBtn?.setAttribute("aria-expanded","false"),this._attachMenuClickTimerId!==null&&(clearTimeout(this._attachMenuClickTimerId),this._attachMenuClickTimerId=null),this._attachMenuCleanup&&(this._attachMenuCleanup(),this._attachMenuCleanup=null))}_openAttachMenu(){if(!this._attachMenuEl)return;this._attachMenuEl.removeAttribute("hidden"),this._attachBtn?.setAttribute("aria-expanded","true");const t=a=>{this._attachWrapEl?.contains(a.target)||this._closeAttachMenu()},e=a=>{a.key==="Escape"&&(a.stopPropagation(),this._closeAttachMenu())};this._attachMenuClickTimerId=window.setTimeout(()=>{this._attachMenuClickTimerId=null,document.addEventListener("click",t,!0)},0),document.addEventListener("keydown",e,!0),this._attachMenuCleanup=()=>{document.removeEventListener("click",t,!0),document.removeEventListener("keydown",e,!0)}}_toggleAttachMenu(){this._attachMenuEl&&(this._attachMenuEl.hasAttribute("hidden")?this._openAttachMenu():this._closeAttachMenu())}async _pasteImageFromClipboardMenu(t){const e=await ba(t);if(e){this._routeAttachmentFile(e),this._closeAttachMenu();return}S.dispatch("gengage:global:error",{message:this.i18n.clipboardNoImageMessage,source:"chat"}),this._closeAttachMenu()}getPendingAttachment(){return this._pendingAttachment}setPanelAiZoneState(t,e){if(this._panelAiZoneEl.isConnected){if(this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,t==="hidden"){this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.setAttribute("hidden","");return}if(this._panelAiZoneEl.removeAttribute("hidden"),t==="analyzing"){this._panelAiZoneEl.innerHTML="";const a=[e?.analyzingLabel??this.i18n.aiAnalysisAnalyzingLabel,...this.i18n.loadingSequencePanel],{root:n,binding:i}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-ai-zone-loading","gengage-chat-panel-ai-zone-inner");this._panelAiZoneLoadingBinding=i,this._panelAiZoneEl.appendChild(n)}else t==="results"&&e?.resultEl&&(this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.appendChild(e.resultEl))}}_resetPanelAiZoneElement(){this._panelAiZoneEl=document.createElement("div"),this._panelAiZoneEl.className="gengage-chat-panel-ai-zone",this._panelAiZoneEl.setAttribute("hidden","")}_emitHostShellSync(){this._onHostShellSync?.()}_syncPanelTopBarFromContent(t){const e=t.querySelector(".gengage-chat-product-grid-head");if(e){const a=e.querySelector(".gengage-chat-product-grid-head-title"),n=e.querySelector(".gengage-chat-product-grid-head-actions");if(a?.textContent?.trim()){const i=a.textContent.trim();t.dataset.gengagePanelDerivedTitle=i,this._panelTopBar.setTitle(i)}n?(n.classList.add("gengage-chat-panel-topbar-toolbar-host"),this._panelTopBar.setActions(n)):this._panelTopBar.setActions(null),e.remove();return}this._syncPanelTopBarTitleFromContent(t)}_syncPanelTopBarTitleFromContent(t){const e=t.dataset.gengagePanelDerivedTitle;if(e?.trim()){this._panelTopBar.setTitle(e.trim());return}const a=t.querySelector(".gengage-chat-product-details-title, .gengage-chat-product-details-similars-heading, .gengage-chat-ai-top-picks-title")?.textContent?.trim();a&&this._panelTopBar.setTitle(a)}setPanelContent(t){this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,this._panelVisible&&this._panelEl.classList.add("gengage-chat-panel--transitioning"),this._panelEl.innerHTML="",this._resetPanelAiZoneElement(),this._panelEl.appendChild(this._panelTopBar.getElement()),this._panelEl.appendChild(this._panelAiZoneEl),this._panelTopBar.setActions(null),this._panelEl.appendChild(t),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._syncPanelTopBarFromContent(t),this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._panelCollapsed&&this._panelEl.classList.add("gengage-chat-panel--collapsed"),this._syncDividerPreview(),requestAnimationFrame(()=>{this._panelEl.classList.remove("gengage-chat-panel--transitioning"),this._updateScrollAffordance(),this._smoothScrollPanelListToTop()}),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="none"),this._emitHostShellSync()}appendPanelContent(t){const e=this._thumbnailsColumn.getElement(),a=e.parentElement===this._panelEl?e:this._panelFloatingEl;this._panelEl.insertBefore(t,a),this._syncPanelTopBarFromContent(this.getPanelContentElement()??t),this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._syncDividerPreview(),this._emitHostShellSync()}getPanelContentElement(){const t=this._panelEl.children;for(let e=0;e<t.length;e++){const a=t[e];if(!(a.classList.contains("gengage-chat-panel-topbar")||a.classList.contains("gengage-chat-panel-ai-zone")||a.classList.contains("gengage-chat-thumbnails-column")||a.classList.contains("gengage-chat-panel-float")))return a}return null}isPanelVisible(){return this._panelVisible}hasPanelContent(){return this._panelVisible&&this.getPanelContentElement()!==null}isPanelLoading(){return this._panelEl.querySelector(".gengage-chat-panel-skeleton")!==null}showPanelLoading(t){this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._panelEl.innerHTML="",this._resetPanelAiZoneElement(),this._panelEl.appendChild(this._panelTopBar.getElement()),this._panelEl.appendChild(this._panelAiZoneEl);const e=document.createElement("div");e.className="gengage-chat-panel-skeleton";const a=t==="comparisonTable"?this.i18n.loadingSequenceComparison:this.i18n.loadingSequencePanel,{root:n,binding:i}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-loading-status","gengage-chat-panel-loading-status");switch(this._panelLoadingBinding=i,t){case"productDetails":{e.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--image",e.appendChild(r);for(let o=0;o<3;o++){const c=document.createElement("div");c.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--text",e.appendChild(c)}break}case"productList":case"groupList":{e.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-panel-skeleton-grid";for(let o=0;o<6;o++){const c=document.createElement("div");c.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--card",r.appendChild(c)}e.appendChild(r);break}case"comparisonTable":{e.classList.add("gengage-chat-panel-skeleton--comparison"),e.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-comparison gengage-chat-comparison--skeleton",r.setAttribute("aria-busy","true");const o=document.createElement("div");o.className="gengage-chat-comparison-recommended";const c=document.createElement("div");c.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-label",o.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-comparison-recommended-body";const l=document.createElement("div");l.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-img",l.setAttribute("aria-hidden","true");const p=document.createElement("div");p.className="gengage-chat-comparison-recommended-info";for(let H=0;H<2;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-title",H===1&&T.classList.add("gengage-chat-comparison-skeleton-rec-title--short"),p.appendChild(T)}const s=document.createElement("div");s.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-price",p.appendChild(s),d.appendChild(l),d.appendChild(p),o.appendChild(d);const u=document.createElement("div");u.className="gengage-chat-comparison-highlights";const h=document.createElement("div");h.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-label",u.appendChild(h);const w=document.createElement("ul");w.className="gengage-chat-comparison-skeleton-hl-list";for(let H=0;H<3;H++){const T=document.createElement("li"),q=document.createElement("div");q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-line",H===1&&q.classList.add("gengage-chat-comparison-skeleton-hl-line--medium"),H===2&&q.classList.add("gengage-chat-comparison-skeleton-hl-line--short"),T.appendChild(q),w.appendChild(T)}u.appendChild(w),o.appendChild(u),r.appendChild(o);const m=document.createElement("div");m.className="gengage-chat-comparison-key-differences";const v=document.createElement("div");v.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-heading",m.appendChild(v);const y=document.createElement("div");y.className="gengage-chat-comparison-key-differences-content";for(let H=0;H<4;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-line",y.appendChild(T)}m.appendChild(y),r.appendChild(m);const M=document.createElement("div");M.className="gengage-chat-comparison-special gengage-chat-comparison-special--skeleton";const C=document.createElement("div");C.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-special-line",M.appendChild(C),r.appendChild(M);const L=document.createElement("div");L.className="gengage-chat-comparison-skeleton-table-wrap";const _=document.createElement("div");_.className="gengage-chat-comparison-skeleton-table-head";const N=document.createElement("div");N.className="gengage-chat-comparison-skeleton-table-corner",_.appendChild(N);for(let H=0;H<3;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-table-col";const q=document.createElement("div");q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-img";const Z=document.createElement("div");Z.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";const Y=document.createElement("div");Y.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-price",T.appendChild(q),T.appendChild(Z),T.appendChild(Y),_.appendChild(T)}L.appendChild(_);for(let H=0;H<3;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-table-row";const q=document.createElement("div");q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-label",T.appendChild(q);for(let Z=0;Z<3;Z++){const Y=document.createElement("div");Y.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-cell",T.appendChild(Y)}L.appendChild(T)}r.appendChild(L),e.appendChild(r);break}default:e.appendChild(n);for(let r=0;r<3;r++){const o=document.createElement("div");o.className="gengage-chat-panel-skeleton-block",e.appendChild(o)}break}this._panelEl.appendChild(e),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._syncDividerPreview(),this._emitHostShellSync()}updatePanelTopBar(t,e,a){const n=this._options.getMobileViewport?.()??!1;this._panelTopBar.update(n?!0:t,e,a);const i=this.getPanelContentElement();i&&this._syncPanelTopBarTitleFromContent(i)}getPanelTopBarTitle(){return this._panelTopBar.getTitle()}updateFavoritesBadge(t){this._favBadgeEl&&(t>0?(this._favBadgeEl.textContent=t>99?"99+":String(t),this._favBadgeEl.style.display=""):this._favBadgeEl.style.display="none")}clearPanel(){this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,this._panelEl.innerHTML="",this._resetPanelAiZoneElement(),this._panelEl.appendChild(this._panelTopBar.getElement()),this._panelEl.appendChild(this._panelAiZoneEl),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._panelTopBar.setActions(null),this._panelVisible=!1,this._panelEl.classList.remove("gengage-chat-panel--visible","gengage-chat-panel--collapsed"),this.root.classList.remove("gengage-chat-drawer--with-panel"),this._dividerEl.classList.add("gengage-chat-panel-divider--hidden"),this._dividerPreviewEnabled=!1,this._syncDividerPreview(),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="none"),this.setComparisonDockContent(null),this._emitHostShellSync()}setComparisonDockContent(t){this._comparisonDockSlotEl.replaceChildren(),t&&this._comparisonDockSlotEl.appendChild(t)}hideMobilePanel(){this._panelVisible&&(this._panelVisible=!1,this._panelEl.classList.remove("gengage-chat-panel--visible"),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="flex"),this._emitHostShellSync())}_showMobilePanelFromBtn(){this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="none"),this._emitHostShellSync())}expandPanel(){this._panelCollapsed=!1,this._panelEl.classList.remove("gengage-chat-panel--collapsed"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._syncDividerPreview(),this._emitHostShellSync()}setForceExpanded(){this._panelCollapsed=!1,this._panelEl.classList.remove("gengage-chat-panel--collapsed"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._syncDividerPreview(),this._emitHostShellSync()}_smoothScrollPanelListToTop(){const t=this._panelEl;if(typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches??!1)){t.scrollTop=0;return}this._panelListScrollAnimToken+=1;const e=this._panelListScrollAnimToken;requestAnimationFrame(()=>{if(e!==this._panelListScrollAnimToken)return;const a=Math.max(0,t.scrollHeight-t.clientHeight);if(a<=0)return;const n=Math.min(160,Math.max(48,a*.28));t.scrollTop=n;const i=Math.min(720,Math.max(380,320+Math.sqrt(n)*28)),r=performance.now(),o=d=>1-(1-d)**5,c=d=>{if(e!==this._panelListScrollAnimToken)return;const l=d-r,p=Math.min(1,l/i);t.scrollTop=n*(1-o(p)),p<1?requestAnimationFrame(c):t.scrollTop=0};requestAnimationFrame(c)})}_updateScrollAffordance(){const t=this._panelEl,e=t.scrollTop+t.clientHeight>=t.scrollHeight-10;t.classList.toggle("gengage-chat-panel--has-scroll",!e&&t.scrollHeight>t.clientHeight),t.classList.toggle("gengage-chat-panel--scrolled",t.scrollTop>88)}_setupHorizontalSwipe(t){let e=0,a=0;const n=r=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=r.touches[0];o&&(e=o.clientX,a=o.clientY)},i=r=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=r.changedTouches[0];if(!o)return;const c=o.clientX-e,d=o.clientY-a;Math.abs(c)>50&&Math.abs(c)>Math.abs(d)*2&&(this.togglePanel(),this._onPanelToggle?.())};t.addEventListener("touchstart",n,{passive:!0}),t.addEventListener("touchend",i,{passive:!0}),this._cleanups.push(()=>{t.removeEventListener("touchstart",n),t.removeEventListener("touchend",i)})}togglePanel(){this.setPanelCollapsed(!this._panelCollapsed)}isPanelCollapsed(){return this._panelCollapsed}setPanelCollapsed(t){this._panelCollapsed=t,t?this._panelEl.classList.add("gengage-chat-panel--collapsed"):this._panelEl.classList.remove("gengage-chat-panel--collapsed");const e=this._dividerEl.querySelector(".gengage-chat-panel-divider-toggle");e&&(e.textContent=t?"«":"»"),this._syncDividerPreview()}setDividerPreviewEnabled(t){this._dividerPreviewEnabled=t,this._syncDividerPreview()}persistPanelState(t){try{const e=`gengage:panel:${t}`;this._panelCollapsed?sessionStorage.setItem(e,"collapsed"):sessionStorage.removeItem(e)}catch{}}restorePanelState(t){try{const e=`gengage:panel:${t}`;if(sessionStorage.getItem(e)==="collapsed")return this._panelCollapsed=!0,!0}catch{}return!1}_createLoadingSequence(t,e,a,n){const i=document.createElement("div");i.className=`${n} gds-progress-loader ${t==="chat"?"gds-progress-loader-chat":"gds-progress-loader-panel"}`,i.dataset.gengagePart=a,i.setAttribute("role","status"),i.setAttribute("aria-live","polite");const r=document.createElement("span");r.className=t==="chat"?"gengage-chat-typing-text gds-progress-label":"gengage-chat-panel-loading-label gds-progress-label",i.appendChild(r);const o=document.createElement("span");o.className=t==="chat"?"gengage-chat-typing-dots gds-progress-dots":"gds-progress-dots",o.setAttribute("aria-hidden","true");for(let d=0;d<3;d++){const l=document.createElement("span");l.className="gds-progress-dot",o.appendChild(l)}i.appendChild(o);const c={labelEl:r,steps:[],index:0,intervalId:null};return this._applyLoadingSteps(c,e),{root:i,binding:c}}_applyLoadingSteps(t,e,a=!1){const n=e.map(r=>r.trim()).filter(Boolean).slice(-3),i=[this.i18n.loadingMessage];t.steps=n.length>0?n:i,this._clearLoadingBindingInterval(t),t.index=a?t.steps.length-1:0,t.labelEl.textContent=t.steps[t.index],!a&&t.steps.length>1&&(t.intervalId=setInterval(()=>{if(t.index>=t.steps.length-1){this._clearLoadingBindingInterval(t);return}t.index+=1,t.labelEl.textContent=t.steps[t.index],t.index>=t.steps.length-1&&this._clearLoadingBindingInterval(t)},ha))}_clearLoadingBindingInterval(t){t?.intervalId&&(clearInterval(t.intervalId),t.intervalId=null)}_destroyLoadingBinding(t){this._clearLoadingBindingInterval(t)}_updateSendEnabled(){if(this._sendStopHandler){this.sendBtn.disabled=!1;return}const t=this.inputEl.value.trim().length>0||this._pendingAttachment!==null;this.sendBtn.disabled=!t}_renderSendButtonIcon(t){this.sendBtn.innerHTML=t==="stop"?'<span class="gengage-chat-send-stop-icon" aria-hidden="true"></span>':'<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/></svg>'}_submit(){const t=this.inputEl.value.trim(),e=this._pendingAttachment;if(!(!t&&!e)){if(this._sendStopHandler){const a=this._sendStopHandler;this.hideStopButton(),a()}this.onSend(t,e??void 0),this.inputEl.value="",this.inputEl.style.height="auto",this.clearAttachment(),this._updateSendEnabled()}}_toggleVoice(){if(this._voiceInput)if(this._voiceInput.state==="listening"){const t=this._voiceInput.stop();t.trim()&&(this.inputEl.value=t,this._submit())}else this.inputEl.value="",this._voiceInput.start()}lockScrollForRestore(){this._scrollLockedUntil=Date.now()+500}_scrollToBottom(t=!1){!t&&this._userScrolledUp||!t&&this._options.presentation?.shouldBlockSoftAutoScroll?.()||!t&&Date.now()<this._scrollLockedUntil||requestAnimationFrame(()=>{this.messagesEl.scrollTop=this.messagesEl.scrollHeight,this._userScrolledUp=!1})}scrollToBottomIfNeeded(){this._scrollToBottom(!1)}updateBotMessage(t,e,a,n){const i=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(t)}"]`);if(!i)return;let r=i.querySelector(".gengage-chat-bubble-text");r||(r=document.createElement("div"),r.className="gengage-chat-bubble-text",i.appendChild(r)),a==="photo_analysis"?(i.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(r,e,n)):(i.classList.remove("gengage-chat-bubble--photo-analysis"),r.innerHTML=S.sanitizeHtml(e)),this._scrollToBottom(!1)}markFirstBotMessage(t){this._firstBotMessageIds.add(t);const e=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(t)}"]`);e&&e.classList.add("gengage-chat-bubble--first")}scrollToLastThread(){const t=this.messagesEl.querySelectorAll("[data-thread-id]");if(t.length===0){this._scrollToBottom(!0);return}const e=t[t.length-1].getAttribute("data-thread-id");if(!e){this._scrollToBottom(!0);return}this._programmaticScrollUntil=Date.now()+700;const a=this.messagesEl.querySelector(`[data-thread-id="${CSS.escape(e)}"]`);a?requestAnimationFrame(()=>{a.scrollIntoView({block:"start",behavior:"auto"}),this._userScrolledUp=!1}):this._scrollToBottom(!0)}scrollThreadIntoView(t,e="smooth"){const a=this.messagesEl.querySelectorAll(`[data-thread-id="${CSS.escape(t)}"]`);let n=null;for(let r=0;r<a.length;r++){const o=a[r];if(o instanceof HTMLElement&&!o.classList.contains("gengage-chat-bubble--presentation-collapsed")){n=o;break}}if(!n&&a.length>0&&a[0]instanceof HTMLElement&&(n=a[0]),!n)return!1;const i=Math.max(n.offsetTop-20,0);return this._programmaticScrollUntil=Date.now()+700,this._scrollMessagesTo(i,e),!0}scrollToBottomPresentation(t="smooth"){this._programmaticScrollUntil=Date.now()+700,requestAnimationFrame(()=>{this._scrollMessagesTo(this.messagesEl.scrollHeight,t),this._userScrolledUp=!1})}_scrollMessagesTo(t,e){if(typeof this.messagesEl.scrollTo=="function"){this.messagesEl.scrollTo({top:t,behavior:e});return}this.messagesEl.scrollTop=t}setPresentationFocus(t){this._presentationFocusThreadId=t,this._applyPresentationCollapsed()}setFormerMessagesButtonVisible(t){this._formerMessagesBtn&&(this._formerMessagesBtn.style.display=t?"":"none")}setInputPlaceholder(t){this.inputEl.placeholder=t}_applyPresentationCollapsed(){const t=this._presentationFocusThreadId;this.messagesEl.querySelectorAll("[data-thread-id]").forEach(e=>{const a=e.dataset.threadId;a&&(t&&a!==t?e.classList.add("gengage-chat-bubble--presentation-collapsed"):e.classList.remove("gengage-chat-bubble--presentation-collapsed"))})}refreshPresentationCollapsed(){this._presentationFocusThreadId&&this._applyPresentationCollapsed()}setInputAreaChips(t){if(this._inputChipsEl.innerHTML="",t.length===0){this._inputChipsEl.style.display="none";return}this._inputChipsEl.style.display="";for(const e of t){const a=document.createElement("button");if(a.className="gengage-chat-input-chip gds-chip",a.type="button",e.icon){const i=Ke[e.icon]??'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><path d="M3 8h10M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',r=document.createElement("span");r.className="gengage-chat-input-chip-icon",r.innerHTML=i,a.appendChild(r)}const n=document.createElement("span");n.textContent=e.label,a.appendChild(n),a.addEventListener("click",()=>e.onAction()),this._inputChipsEl.appendChild(a)}}clearInputAreaChips(){this._inputChipsEl.innerHTML="",this._inputChipsEl.style.display="none"}setThumbnails(t){this._thumbnailsColumn.setEntries(t),t.length>0?this._thumbnailsColumn.show():this._thumbnailsColumn.hide(),this._renderDividerPreview(t),this._syncDividerPreview()}hideThumbnails(){this._thumbnailsColumn.hide(),this._renderDividerPreview([]),this._syncDividerPreview()}_renderDividerPreview(t){this._dividerPreviewEl.innerHTML="";const e=new Set,a=[];for(let n=t.length-1;n>=0;n--){const i=t[n];if(!(!i||e.has(i.sku)||!S.isSafeImageUrl(i.imageUrl))&&(e.add(i.sku),a.push(i),a.length>=3))break}a.reverse();for(const n of a){const i=document.createElement("span");i.className="gengage-chat-panel-divider-preview-thumb";const r=document.createElement("img");r.className="gengage-chat-panel-divider-preview-img",r.src=n.imageUrl,r.alt="",r.width=48,r.height=48,i.appendChild(r),this._dividerPreviewEl.appendChild(i)}}_syncDividerPreview(){const t=this._dividerPreviewEl.childElementCount>0,e=this._dividerPreviewEnabled&&t&&this._panelCollapsed&&!this._dividerEl.classList.contains("gengage-chat-panel-divider--hidden");this._dividerEl.classList.toggle("gengage-chat-panel-divider--preview-active",e)}trapFocus(){this._previouslyFocusedElement=document.activeElement,this.releaseFocus();const t=e=>{if(e.key!=="Tab")return;const a=this.root.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])');if(a.length===0)return;const n=a[0],i=a[a.length-1],r=this.root.getRootNode(),o=r instanceof ShadowRoot?r.activeElement:document.activeElement;e.shiftKey?(o===n||!this.root.contains(o))&&(e.preventDefault(),i.focus()):(o===i||!this.root.contains(o))&&(e.preventDefault(),n.focus())};this._focusTrapHandler=t,this.root.addEventListener("keydown",t)}releaseFocus(){if(this._focusTrapHandler&&(this.root.removeEventListener("keydown",this._focusTrapHandler),this._focusTrapHandler=null),this._previouslyFocusedElement){try{this._previouslyFocusedElement.focus()}catch{}this._previouslyFocusedElement=null}}flashCartBadge(){this._cartBtn&&(this._cartBtn.classList.remove("gengage-chat-header-btn--cart-flash"),this._cartBtn.offsetWidth,this._cartBtn.classList.add("gengage-chat-header-btn--cart-flash"),this._cartBtn.addEventListener("animationend",()=>{this._cartBtn?.classList.remove("gengage-chat-header-btn--cart-flash")},{once:!0}))}showCartToast(t){this.root.querySelector(".gengage-chat-cart-toast")?.remove();const e=document.createElement("div");e.className="gengage-chat-cart-toast",e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.textContent=t,this.root.appendChild(e),e.offsetWidth,e.classList.add("gengage-chat-cart-toast--visible"),setTimeout(()=>{e.classList.remove("gengage-chat-cart-toast--visible"),setTimeout(()=>e.remove(),300)},2500)}destroy(){Ye(null),this.releaseFocus(),this._resizeRafId!==null&&(cancelAnimationFrame(this._resizeRafId),this._resizeRafId=null),this._destroyLoadingBinding(this._typingLoadingBinding),this._typingLoadingBinding=null,this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,this._closeAttachMenu();for(const t of this._cleanups)t();this._cleanups.length=0,this._voiceInput?.destroy(),this._voiceInput=null}},xt=["beauty_consulting","watch_expert","booking"],va=["shopping",...xt];function xa(t){return typeof t=="string"&&va.includes(t)?t:null}function Ve(t){return t==null||typeof t!="object"||Array.isArray(t)?null:t}function wa(...t){for(const e of t)if(typeof e=="string"){const a=e.trim();if(a.length>0)return a}}function ya(t){const e=Ve(t);if(!e)return null;const a=wa(e.assistant_mode,e.assistantMode);return!a||!xt.includes(a)?null:a}var _a=class{constructor(){this._mode="shopping",this._uiHints=null}get mode(){return this._mode}set mode(t){this._mode=t}get uiHints(){return this._uiHints}set uiHints(t){this._uiHints=t}get isShopping(){return this._mode==="shopping"}get isBeautyConsulting(){return this._mode==="beauty_consulting"}get isChoicePrompterHidden(){return this._uiHints?.hide_choice_prompter===!0}applyUiHints(t,e,a){const n=r=>this._uiHints?.[r]===!0;t?.setAttachmentControlsVisible(!n("hide_attachment_controls")),n("hide_choice_prompter")&&a?.();const i=typeof this._uiHints?.input_placeholder=="string"?this._uiHints.input_placeholder:void 0;i?t?.setInputPlaceholder(i):t?.setInputPlaceholder(e)}handleRedirect(t){S.debugLog("mode","redirect metadata received",t);const e=ya(t);return e?(this.switchMode(e),!0):!1}switchMode(t){const e=this._mode;this._mode=t,S.debugLog("mode","assistant mode switched",{from:e,to:t})}updateFromContext(t){const e=t.assistant_mode;if(typeof e=="string"&&e){const a=xa(e);a?this._mode=a:S.debugLog("mode","ignoring unrecognised assistant_mode from context",e)}else e===null&&(this._mode="shopping");this._uiHints=Ve(t.ui_hints)??null}reset(){const t=this._mode!=="shopping";return this._mode="shopping",this._uiHints=null,t}resolveAttachmentActionType(){return this._mode==="beauty_consulting"?"user_message":"findSimilar"}shouldCondenseThinking(){return this._mode!=="shopping"}};function ka(){return{streamIncludedBeautyPhotoStep:!1,pendingPhotoStepSkip:!1}}function Ca(t,e,a,n,i){if(t==="PhotoAnalysisCard"){const r=vt(e);return r?(i.photoAnalysis=r,i.renderHint="photo_analysis",n.ensureRendered(),n.cancelTypewriter(),n.drawer?.updateBotMessage(i.id,i.content??"","photo_analysis",i.photoAnalysis),!0):(S.debugLog("beauty","PhotoAnalysisCard parse failed, falling through to generic renderer",e),!1)}if(t==="BeautyPhotoStep"){a.streamIncludedBeautyPhotoStep=!0;const r=sa(e);return n.drawer?.setBeautyPhotoStepCard({visible:!0,...r,onSkip:()=>{n.drawer?.setBeautyPhotoStepCard({visible:!1}),n.streamDone?n.sendSkipMessage():a.pendingPhotoStepSkip=!0}}),!0}return!1}function Sa(t){return t.renderHint==="photo_analysis"}function Ea(t,e){t.streamIncludedBeautyPhotoStep||e.drawer?.setBeautyPhotoStepCard({visible:!1}),t.pendingPhotoStepSkip&&(t.pendingPhotoStepSkip=!1,e.sendSkipMessage())}function Pa(t,e){t.pendingPhotoStepSkip&&(t.pendingPhotoStepSkip=!1,e.sendSkipMessage())}var Aa=`<svg width="28" height="28" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
1
|
+
const g=require("./schemas-B7jnyzQI.cjs"),E=require("./ga-datalayer-BVppFxqk.cjs"),F=require("./product-utils-DLXQQJbh.cjs");function We(){const t=Date.now(),e=new Uint8Array(16);crypto.getRandomValues(e),e[0]=t/2**40&255,e[1]=t/2**32&255,e[2]=t/2**24&255,e[3]=t/2**16&255,e[4]=t/2**8&255,e[5]=t&255,e[6]=e[6]&15|112,e[8]=e[8]&63|128;const a=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}var Rt=class{constructor(t){this._handlers=new Map,this._destroyed=!1,this._namespace=t.namespace,this._allowedOrigins=t.allowedOrigins??[location.origin],this._onMessage=t.onMessage,this._allowedOrigins.includes("*")&&Ft()&&console.warn("[gengage] postMessage bridge using wildcard origin. Set allowedOrigins for production security."),this._messageListener=e=>this._handlePostMessage(e),window.addEventListener("message",this._messageListener)}send(t,e){if(this._destroyed)return;const a={namespace:this._namespace,type:t};e!==void 0&&(a.payload=e),window.dispatchEvent(new CustomEvent("gengage:bridge:message",{detail:a,bubbles:!1}))}on(t,e){this._handlers.has(t)||this._handlers.set(t,new Set);const a=this._handlers.get(t);return a.add(e),()=>{a.delete(e),a.size===0&&this._handlers.delete(t)}}destroy(){this._destroyed||(this._destroyed=!0,window.removeEventListener("message",this._messageListener),this._handlers.clear())}_handlePostMessage(t){if(this._destroyed||!this._isOriginAllowed(t.origin))return;const e=t.data;if(!Dt(e)||e.gengage!==this._namespace)return;const a={type:e.type};e.payload!==void 0&&(a.payload=e.payload),this._onMessage?.(a);const n=this._handlers.get(a.type);if(n)for(const i of n)i(a.payload)}_isOriginAllowed(t){return this._allowedOrigins.includes("*")?!0:this._allowedOrigins.includes(t)}};function Dt(t){if(typeof t!="object"||t===null)return!1;const e=t;return typeof e.gengage=="string"&&typeof e.type=="string"}function Ft(){try{return typeof process<"u"&&process.env.NODE_ENV!=="production"}catch{return!1}}var Ut=console;function pt(t,e,a={}){const n=t.action,i=a.logger??Ut;switch(E.debugLog("action",`routing action: ${n.kind}`,n),n.kind){case"open_chat":e.openChat?.(n.payload);return;case"navigate":{if(typeof n.url!="string"){ue(n,e,a,i);return}if(!E.isSafeUrl(n.url)){i.warn("[gengage] Blocked navigation to unsafe URL:",n.url);return}const r=typeof n.newTab=="boolean"?n.newTab:void 0;if(e.navigate){e.navigate({url:n.url,...r!==void 0&&{newTab:r}});return}jt(n.url,r);return}case"save_session":if(typeof n.sessionId!="string"||typeof n.sku!="string"){ue(n,e,a,i);return}e.saveSession?.({sessionId:n.sessionId,sku:n.sku});return;case"add_to_cart":if(typeof n.sku!="string"||typeof n.quantity!="number"||typeof n.cartCode!="string"){ue(n,e,a,i);return}e.addToCart?.({sku:n.sku,quantity:n.quantity,cartCode:n.cartCode});return;case"script_call":{if(a.allowScriptCall===!1){ue(n,e,a,i);return}if(typeof n.name!="string"){ue(n,e,a,i);return}const r=Ot(n.payload)?n.payload:void 0;e.scriptCall?.({name:n.name,...r!==void 0&&{payload:r}});return}default:ue(n,e,a,i)}}function ue(t,e,a,n){const i=a.unknownActionPolicy??"log-and-ignore";if(i==="delegate"){e.unknown?.(t),e.unknown||n.warn("[gengage] Unknown action received without delegate handler",t);return}if(i==="throw")throw new Error(`[gengage] Unknown action kind: ${t.kind}`);n.warn("[gengage] Unknown action ignored",t)}function jt(t,e){if(!(typeof window>"u")){if(!E.isSafeUrl(t)){console.warn("[gengage] Blocked navigation to unsafe URL:",t);return}if(e){window.open(t,"_blank","noopener,noreferrer");return}window.location.href=t}}function Ot(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var qt=["image/jpeg","image/png","image/webp"],Ji=5*1024*1024;function Vt(t){return qt.includes(t.type)?t.size>5242880?{ok:!1,reason:"too_large"}:{ok:!0}:{ok:!1,reason:"invalid_type"}}function $t(t,e){const a=t.type,n=t.payload!=null&&typeof t.payload=="object"&&!Array.isArray(t.payload)?t.payload:{},i=r=>{const o={...n};for(const[c,d]of Object.entries(r))c in o||(o[c]=d);return o};switch(a){case"inputText":{const r={is_launcher:0};return e.pageContext?.extra&&(r.page_details=e.pageContext.extra),"is_suggested_text"in n||(r.is_suggested_text=0),{...t,payload:i(r)}}case"findSimilar":{const r={is_launcher:0};return t.title&&(r.text=t.title,r.input=t.title),{...t,payload:i(r)}}case"getComparisonTable":return t;case"addToCart":{const r={};return"error_message"in n||(r.error_message=""),{...t,payload:i(r)}}case"reviewSummary":{const r={};return e.pageContext?.sku&&!("sku"in n)&&(r.sku=e.pageContext.sku),Object.keys(r).length===0?t:{...t,payload:i(r)}}default:return t}}var Gt={user_message:"inputText"};function Wt(t){const{action:e,type:a,payload:n,...i}=t,r=a??e?.type??"inputText",o=n??e?.payload,c=Gt[r]??r,d={...i,type:c};return o!==void 0&&(d.payload=typeof o=="string"?{text:o}:o),JSON.stringify(d)}function Yt(t,e,a){const n=g.buildChatEndpointUrl("process_action",a),i=new AbortController;return(async()=>{try{const o=Wt(t),c=a.attachment!==void 0;let d;if(c){const u=new FormData;u.append("request",o),a.attachment!==void 0&&u.append("attachment",a.attachment),d={method:"POST",body:u,signal:i.signal}}else d={method:"POST",headers:{"Content-Type":"application/json"},body:o,signal:i.signal};const l=await fetch(n,d);if(!l.ok){let u=l.statusText;try{const h=await l.json(),w=h.detail??h.message??h.error;typeof w=="string"&&(u=w)}catch{}e.onError(new Error(`HTTP ${l.status}: ${u}`));return}let p=!1;const s=()=>{p||(p=!0,e.onDone())};await g.consumeStream(l,{onEvent:u=>{const h=g.adaptBackendEvent(u);if(h)switch(h.type){case"text_chunk":e.onTextChunk(h.content,h.final===!0,{productMentions:h.productMentions,skuToProductItem:h.skuToProductItem,conversationMode:h.conversationMode,renderHint:h.renderHint,kvkk:h.kvkk});break;case"ui_spec":e.onUISpec(h.spec,h.widget,h.panelHint,h.clearPanel===!0);break;case"action":e.onAction(h);break;case"metadata":e.onMetadata(h);break;case"error":e.onError(new Error(h.message));break;case"done":s();break}},onError:e.onError,signal:i.signal}),s()}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;e.onError(o instanceof Error?o:new Error(String(o)))}})(),i}var Kt=["chat_debug","presentation_debug"],Zt=["gengage_chat_debug","gengage_presentation_debug"];function Xt(){if(typeof window>"u")return!1;const t=new URLSearchParams(window.location.search);if(Kt.some(e=>t.get(e)==="1"))return!0;try{return Zt.some(e=>window.localStorage.getItem(e)==="1")}catch{return!1}}function Qt(t,e,a){if(!Xt())return;const n=(window.__gengageChatPresentationDebugSeq??0)+1;window.__gengageChatPresentationDebugSeq=n;const i={seq:n,time:new Date().toISOString(),scope:t,message:e,payload:a};window.__gengageChatPresentationDebugLog||(window.__gengageChatPresentationDebugLog=[]),window.__gengageChatPresentationDebugLog.push(i),window.__gengageChatPresentationDebugLog.length>400&&window.__gengageChatPresentationDebugLog.shift();const r=`[gengage-chat-debug #${n}][${t}] ${e}`;a===void 0?console.debug(r):console.debug(r,a)}var Pe="gengage-chat-scroll",fe=null;function Ye(t){fe=t}function Jt(){if(fe&&fe.isConnected)return fe;fe=null;const t=document.getElementById(Pe);return t||(Qt("chat-scroll","failed to resolve scroll container (not registered)",{id:Pe}),null)}function ht(){fe=null}var qe={headerTitle:"Ürün Uzmanı",inputPlaceholder:"Ürün ara, soru sor",sendButton:"Gönder",closeButton:"Kapat",openButton:"Sohbeti aç",newChatButton:"Yeni sohbet",poweredBy:"Gengage ile",errorMessage:"Bir hata oluştu. Lütfen tekrar deneyin.",retryButton:"Tekrar Dene",loadingMessage:"Düşünüyorum...",loadingSequenceGeneric:["Sizin için en önemli noktaları anlıyorum","Ürünleri, yorumları ve özellikleri inceliyorum","En güçlü seçenekleri hazırlıyorum"],loadingSequencePanel:["En ilgili detayları inceliyorum","En güçlü sinyalleri kontrol ediyorum","Bu görünümü sizin için hazırlıyorum"],loadingSequenceComparison:["Ürün farklarını inceliyorum","En güçlü farkları ve ödünleşimleri kontrol ediyorum","Karşılaştırmayı sizin için hazırlıyorum"],productCtaLabel:"Satın Al",viewOnSiteLabel:"Sitede Gör",attachImageButton:"Resim ekle",attachMenuSelectPhoto:"Fotoğraf Seç",attachMenuPaste:"Yapıştır",clipboardNoImageMessage:"Panoda görsel bulunamadı. Önce bir görsel kopyalayın veya dosya seçin.",removeAttachmentButton:"Resmi kaldır",invalidFileType:"Sadece JPEG, PNG ve WebP dosyaları destekleniyor.",fileTooLarge:"Dosya boyutu 5 MB'dan küçük olmalıdır.",aiTopPicksTitle:"Sizin İçin En İyiler",roleWinner:"En Beğendiğim",roleBestValue:"En Uygun Fiyatlı",roleBestAlternative:"En İyi Alternatif",viewDetails:"Detayları Gör",groundingReviewCta:"Yorumları Oku",groundingReviewSubtitle:"{count} yorum mevcut",variantsLabel:"Varyantlar",sortRelated:"Önerilen",sortPriceAsc:"Fiyat düşükten yükseğe",sortPriceDesc:"Fiyat yüksekten düşüğe",sortToolbarAriaLabel:"Ürünleri sırala",compareSelected:"Karşılaştır",compareMinHint:"En az 2 ürün seçin",compareMaxHint:"En fazla 5 ürün seçebilirsiniz",comparisonSelectLabel:"Karşılaştırmak için seç",comparisonSelectedLabel:"Seçildi",comparisonSelectCardHint:"Karşılaştırmaya eklemek veya çıkarmak için kartın herhangi bir yerine dokunun.",comparisonPreparingLabel:"Karşılaştırma tablosu hazırlanıyor…",panelTitleProductDetails:"Ürün Detayı",panelTitleSimilarProducts:"Benzer Ürünler",panelTitleComparisonResults:"Karşılaştırma Sonuçları",panelTitleCategories:"Kategoriler",panelTitleSearchResults:"Arama Sonuçları",inStockLabel:"Stokta",outOfStockLabel:"Tükendi",findSimilarLabel:"Benzerlerini Bul",galleryPrevAriaLabel:"Önceki görsel",galleryNextAriaLabel:"Sonraki görsel",beautyStylesPreparedTitle:"Sizin için {count} farklı stil hazırladım",watchStylesPreparedTitle:"Sizin için {count} farklı stil yönü hazırladım",choicePrompterHeading:"Kararsız mı kaldın?",choicePrompterSuggestion:"Ürünleri seçip karşılaştırabilirsin",choicePrompterCta:"Seç ve Karşılaştır",viewMoreLabel:"Daha Fazla Göster",similarProductsLabel:"Benzer Ürünler",addToCartButton:"Sepete Ekle",addedToCartToast:"Sepete eklendi",shareButton:"Paylaş",productInfoTab:"Ürün Bilgileri",specificationsTab:"Teknik Özellikler",recommendedChoiceLabel:"Önerilen Seçim",highlightsLabel:"Öne Çıkan Özellikler",keyDifferencesLabel:"Temel Farklar",specialCasesLabel:"Özel Durumlar İçin",emptyReviewsMessage:"Yorum özeti bulunamadı.",closeAriaLabel:"Kapat",startChatLabel:"Sohbete Başla",voiceButton:"Sesli giriş",voiceListening:"Dinleniyor...",voiceNotSupported:"Sesli giriş bu tarayıcıda desteklenmiyor.",voicePermissionDenied:"Mikrofon erişimi reddedildi.",voiceError:"Sesli giriş hatası.",handoffHeading:"Destek temsilcisine aktarılıyor",productNotFoundMessage:"Bu ürün bilgisi şu an kullanılamıyor. Başka bir konuda yardımcı olabilirim.",stopGenerating:"Yanıtı Durdur",offlineMessage:"Çevrimdışısınız — bağlantı kurulduğunda mesajlar gönderilecek.",cartAriaLabel:"Sepetim",favoritesAriaLabel:"Favorilerim",showPanelAriaLabel:"Sonuçları Göster",addToFavoritesLabel:"Favorilere ekle",customerReviewsTitle:"Müşteri Yorumları",togglePanelAriaLabel:"Paneli aç/kapat",chatMessagesAriaLabel:"Sohbet mesajları",suggestionsAriaLabel:"Öneriler",moreSuggestionsAriaLabel:"Daha fazla öneri",rollbackAriaLabel:"Bu mesaja geri dön",backAriaLabel:"Geri",forwardAriaLabel:"İleri",closePanelAriaLabel:"Paneli kapat",dismissAriaLabel:"Kapat",cartAddErrorMessage:"Üzgünüm sepete ekleyemedim, bir sorunla karşılaştım.",favoriteToggleErrorMessage:"Favoriler güncellenemedi. Lütfen tekrar deneyin.",reviewFilterPositive:"Olumlu",reviewFilterNegative:"Olumsuz",decreaseLabel:"Azalt",increaseLabel:"Artır",reviewCustomersMentionSingular:"1 müşteri bahsediyor",reviewCustomersMentionPlural:"müşteri bahsediyor",reviewSubjectsHeading:"İncelemek için seçin",tryAgainButton:"Tekrar dene",askSomethingElseButton:"Başka bir şey sor",accountInactiveMessage:"Bu hesap şu an aktif değil. Lütfen daha sonra tekrar deneyin.",favoritesPageTitle:"Favorilerim",emptyFavoritesMessage:"Henüz favori ürün yok. Bir ürünü kalp ikonuna tıklayarak favorilere ekleyebilirsin.",showFormerMessagesButton:"↑ Önceki mesajları göster",aiAnalysisAnalyzingLabel:"Ürünler analiz ediliyor...",aiBrowseCategoriesTitle:"Kategorilere Göz At",photoAnalysisBadge:"Cilt Analizi",beautyPhotoStepTitle:"Selfie ile kişiselleştir",beautyPhotoStepDescription:"İstersen net bir profil fotoğrafı yükle, sana özel önerilerde bulunayım.",beautyPhotoStepUpload:"Fotoğraf Yükle",beautyPhotoStepProcessing:"Fotoğraf işleniyor...",beautyPhotoStepSkip:"Geç",beautyPhotoStepSkipMessage:"Fotoğraf adımını geçiyorum"},ea={headerTitle:"Product Expert",inputPlaceholder:"Search products, ask questions",sendButton:"Send",closeButton:"Close",openButton:"Open chat",newChatButton:"New chat",poweredBy:"Powered by Gengage",errorMessage:"Something went wrong. Please try again.",retryButton:"Retry",loadingMessage:"Thinking...",loadingSequenceGeneric:["Understanding what matters most","Reviewing products, reviews, and specs","Preparing the best options to review"],loadingSequencePanel:["Reviewing the most relevant details","Checking the strongest signals","Preparing this view for you"],loadingSequenceComparison:["Reviewing the product differences","Checking the strongest tradeoffs","Preparing your comparison"],productCtaLabel:"Buy",viewOnSiteLabel:"View on Site",attachImageButton:"Attach image",attachMenuSelectPhoto:"Choose photo",attachMenuPaste:"Paste",clipboardNoImageMessage:"No image found in clipboard. Copy an image first or choose a file.",removeAttachmentButton:"Remove image",invalidFileType:"Only JPEG, PNG and WebP files are supported.",fileTooLarge:"File must be smaller than 5 MB.",aiTopPicksTitle:"Top Picks for You",roleWinner:"Top Pick",roleBestValue:"Best Value",roleBestAlternative:"Best Alternative",viewDetails:"View Details",groundingReviewCta:"Read Reviews",groundingReviewSubtitle:"{count} reviews available",variantsLabel:"Variants",sortRelated:"Recommended",sortPriceAsc:"Price low to high",sortPriceDesc:"Price high to low",sortToolbarAriaLabel:"Sort products",compareSelected:"Compare",compareMinHint:"Select at least 2 products",compareMaxHint:"You can select up to 5 products",comparisonSelectLabel:"Select to compare",comparisonSelectedLabel:"Selected",comparisonSelectCardHint:"Tap anywhere on the card to add or remove it from comparison.",comparisonPreparingLabel:"Preparing your comparison…",panelTitleProductDetails:"Product Details",panelTitleSimilarProducts:"Similar Products",panelTitleComparisonResults:"Comparison Results",panelTitleCategories:"Categories",panelTitleSearchResults:"Search Results",inStockLabel:"In Stock",outOfStockLabel:"Out of Stock",findSimilarLabel:"Find Similar",galleryPrevAriaLabel:"Previous image",galleryNextAriaLabel:"Next image",beautyStylesPreparedTitle:"Prepared {count} beauty styles for you",watchStylesPreparedTitle:"Prepared {count} style directions for you",choicePrompterHeading:"Can't decide?",choicePrompterSuggestion:"Select products to compare them",choicePrompterCta:"Select & Compare",viewMoreLabel:"Show More",similarProductsLabel:"Similar Products",addToCartButton:"Add to Cart",addedToCartToast:"Added to cart",shareButton:"Share",productInfoTab:"Product Info",specificationsTab:"Specifications",recommendedChoiceLabel:"Recommended Choice",highlightsLabel:"Key Highlights",keyDifferencesLabel:"Key Differences",specialCasesLabel:"For Special Cases",emptyReviewsMessage:"No review summary found.",closeAriaLabel:"Close",startChatLabel:"Start Chat",voiceButton:"Voice input",voiceListening:"Listening...",voiceNotSupported:"Voice input is not supported in this browser.",voicePermissionDenied:"Microphone access denied.",voiceError:"Voice input error.",handoffHeading:"Transferring to a support agent",productNotFoundMessage:"Product information is currently unavailable. I can help with something else.",stopGenerating:"Stop generating",offlineMessage:"You're offline — messages will send when you reconnect.",cartAriaLabel:"My cart",favoritesAriaLabel:"My favorites",showPanelAriaLabel:"Show Results",addToFavoritesLabel:"Add to favorites",customerReviewsTitle:"Customer Reviews",togglePanelAriaLabel:"Toggle panel",chatMessagesAriaLabel:"Chat messages",suggestionsAriaLabel:"Suggestions",moreSuggestionsAriaLabel:"More suggestions",rollbackAriaLabel:"Rollback to this message",backAriaLabel:"Back",forwardAriaLabel:"Forward",closePanelAriaLabel:"Close panel",dismissAriaLabel:"Dismiss",cartAddErrorMessage:"Sorry, I couldn't add that to your cart. Something went wrong.",favoriteToggleErrorMessage:"We couldn't update favorites. Please try again.",reviewFilterPositive:"Positive",reviewFilterNegative:"Negative",decreaseLabel:"Decrease",increaseLabel:"Increase",reviewCustomersMentionSingular:"1 customer mentions",reviewCustomersMentionPlural:"customers mention",reviewSubjectsHeading:"Select to learn more",tryAgainButton:"Try again",askSomethingElseButton:"Ask something else",accountInactiveMessage:"This account is currently inactive. Please try again later.",favoritesPageTitle:"My Favorites",emptyFavoritesMessage:"No favorites yet. Heart a product to save it here.",showFormerMessagesButton:"↑ Show earlier messages",aiAnalysisAnalyzingLabel:"Analyzing products...",aiBrowseCategoriesTitle:"Browse categories",photoAnalysisBadge:"Skin Analysis",beautyPhotoStepTitle:"Personalize with a selfie",beautyPhotoStepDescription:"Upload a clear profile photo so I can give you personalized recommendations.",beautyPhotoStepUpload:"Upload Photo",beautyPhotoStepProcessing:"Processing photo...",beautyPhotoStepSkip:"Skip",beautyPhotoStepSkipMessage:"Skip the photo step"};function ta(t){return t?t.toLowerCase().split("-")[0]??"tr":"tr"}function aa(t){return ta(t)==="en"?ea:qe}function ut(){return mt()!==null}function mt(){const t=globalThis;return t.SpeechRecognition??t.webkitSpeechRecognition??null}var bt=class{constructor(t,e){this.recognition=null,this._state="idle",this.silenceTimer=null,this.accumulatedTranscript="",this.intentionalStop=!1,this._lastRestartAt=0,this.callbacks=t,this.lang=e?.lang??"tr-TR",this.silenceTimeoutMs=e?.silenceTimeoutMs??1500,this.autoSubmit=e?.autoSubmit??!0}get state(){return this._state}start(){if(this._state==="listening")return;const t=mt();if(!t){this.setState("error"),this.callbacks.onError?.("not-supported","Web Speech API is not supported in this browser.");return}if(typeof globalThis.isSecureContext<"u"&&!globalThis.isSecureContext){this.setState("error"),this.callbacks.onError?.("not-allowed","Voice input requires HTTPS.");return}this.accumulatedTranscript="",this.intentionalStop=!1;const e=new t;e.continuous=!0,e.interimResults=!0,e.lang=this.lang,e.maxAlternatives=1,e.onstart=()=>{this.setState("listening")},e.onresult=a=>{this.clearSilenceTimer();let n="",i="";for(let r=a.resultIndex;r<a.results.length;r++){const o=a.results[r];if(!o)continue;const c=o[0];c&&(o.isFinal?i+=c.transcript:n+=c.transcript)}i&&(this.accumulatedTranscript+=i,this.callbacks.onFinal?.(this.accumulatedTranscript)),n&&this.callbacks.onInterim?.(this.accumulatedTranscript+n),this.autoSubmit&&this.accumulatedTranscript&&this.startSilenceTimer()},e.onerror=a=>{const n=na(a.error);this.intentionalStop&&(a.error==="no-speech"||a.error==="aborted")||(this.setState("error"),this.callbacks.onError?.(n,a.message||a.error))},e.onend=()=>{if(this.clearSilenceTimer(),this._state==="listening"&&!this.intentionalStop){const a=Date.now();if(a-this._lastRestartAt<500){this.setState("idle");return}this._lastRestartAt=a;try{e.start()}catch{this.setState("idle")}return}this.setState("idle")},this.recognition=e;try{e.start()}catch{this.setState("error"),this.callbacks.onError?.("unknown","Failed to start speech recognition.")}}stop(){if(this.intentionalStop=!0,this.clearSilenceTimer(),this.recognition){try{this.recognition.stop()}catch{}this.recognition=null}return this.setState("idle"),this.accumulatedTranscript}abort(){if(this.intentionalStop=!0,this.clearSilenceTimer(),this.accumulatedTranscript="",this.recognition){try{this.recognition.abort()}catch{}this.recognition=null}this.setState("idle")}destroy(){this.abort()}setState(t){this._state!==t&&(this._state=t,this.callbacks.onStateChange?.(t))}startSilenceTimer(){this.clearSilenceTimer(),this.silenceTimer=setTimeout(()=>{const t=this.stop();t.trim()&&this.callbacks.onAutoSubmit?.(t.trim())},this.silenceTimeoutMs)}clearSilenceTimer(){this.silenceTimer!==null&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}};function na(t){switch(t){case"not-allowed":return"not-allowed";case"no-speech":return"no-speech";case"audio-capture":return"no-microphone";case"network":return"network";case"aborted":return"aborted";default:return"unknown"}}function ia(t){const e=document.createElement("div");e.className="gengage-chat-kvkk-banner gds-evidence-card gds-evidence-card-warning",e.dataset.gengagePart="kvkk-banner",e.setAttribute("role","alert");const a=document.createElement("div");a.className="gengage-chat-kvkk-content",a.dataset.gengagePart="kvkk-content",a.innerHTML=E.sanitizeHtml(t.htmlContent),e.appendChild(a);const n=document.createElement("button");return n.className="gengage-chat-kvkk-dismiss",n.dataset.gengagePart="kvkk-dismiss",n.type="button",n.setAttribute("aria-label",t.closeAriaLabel??"Close privacy notice"),n.textContent="×",n.addEventListener("click",t.onDismiss),e.appendChild(n),e}var ra=class{constructor(t){this._el=document.createElement("div"),this._el.className="gengage-chat-panel-topbar gds-toolbar",this._el.dataset.gengagePart="panel-topbar",this._backBtn=document.createElement("button"),this._backBtn.className="gengage-chat-panel-topbar-back gds-btn gds-btn-ghost gds-icon-btn",this._backBtn.dataset.gengagePart="panel-topbar-back",this._backBtn.type="button",this._backBtn.disabled=!0,this._backBtn.setAttribute("aria-label",t.backAriaLabel??"Back"),this._backBtn.title=t.backAriaLabel??"Back",this._backBtn.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m15 18-6-6 6-6"/><path d="M21 12H9"/></svg>',this._backBtn.addEventListener("click",()=>t.onBack());const e=document.createElement("div");e.className="gengage-chat-panel-topbar-title-wrap",this._titleEl=document.createElement("span"),this._titleEl.className="gengage-chat-panel-topbar-title",this._titleEl.dataset.gengagePart="panel-topbar-title",e.appendChild(this._titleEl),this._forwardBtn=document.createElement("button"),this._forwardBtn.className="gengage-chat-panel-topbar-forward gds-btn gds-btn-ghost gds-icon-btn",this._forwardBtn.dataset.gengagePart="panel-topbar-forward",this._forwardBtn.type="button",this._forwardBtn.disabled=!0,this._forwardBtn.setAttribute("aria-label",t.forwardAriaLabel??"Forward"),this._forwardBtn.title=t.forwardAriaLabel??"Forward",this._forwardBtn.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/><path d="M3 12h12"/></svg>',this._forwardBtn.addEventListener("click",()=>t.onForward()),this._actionsEl=document.createElement("div"),this._actionsEl.className="gengage-chat-panel-topbar-actions",this._actionsEl.dataset.gengagePart="panel-topbar-actions",this._closeBtn=document.createElement("button"),this._closeBtn.className="gengage-chat-panel-topbar-close gds-btn gds-btn-ghost gds-icon-btn",this._closeBtn.dataset.gengagePart="panel-topbar-close",this._closeBtn.type="button",this._closeBtn.setAttribute("aria-label",t.closePanelAriaLabel??"Close panel"),this._closeBtn.title=t.closePanelAriaLabel??"Close panel",this._closeBtn.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',this._closeBtn.addEventListener("click",()=>t.onClose?.()),this._el.appendChild(this._backBtn),this._el.appendChild(e),this._el.appendChild(this._actionsEl),this._el.appendChild(this._forwardBtn),this._el.appendChild(this._closeBtn)}update(t,e,a){this._backBtn.disabled=!t,this._forwardBtn.disabled=!e,this._backBtn.hidden=!t,this._forwardBtn.hidden=!e,this._titleEl.textContent=a,this._titleEl.title=a}getElement(){return this._el}setTitle(t){this._titleEl.textContent=t}setActions(t){this._actionsEl.replaceChildren(),t&&this._actionsEl.appendChild(t)}getTitle(){return this._titleEl.textContent??""}},oa=class{constructor(t){this._onThumbnailClick=t.onThumbnailClick,this._el=document.createElement("div"),this._el.className="gengage-chat-thumbnails-column",this._el.style.display="none"}getElement(){return this._el}setEntries(t){const e=new Set,a=[];for(const n of t)e.has(n.sku)||(e.add(n.sku),a.push(n));this._el.innerHTML="";for(const n of a){const i=document.createElement("button");if(i.type="button",i.className="gengage-chat-thumbnail-btn",i.title=n.sku,E.isSafeImageUrl(n.imageUrl)){const r=document.createElement("img");r.className="gengage-chat-thumbnail-img",r.src=n.imageUrl,r.alt=n.sku,r.width=40,r.height=40,i.appendChild(r)}i.addEventListener("click",()=>{this._onThumbnailClick(n.threadId)}),this._el.appendChild(i)}}show(){this._el.style.display=""}hide(){this._el.style.display="none"}};function sa(t){return{processing:t.processing===!0,title:typeof t.title=="string"?t.title:void 0,description:typeof t.description=="string"?t.description:void 0,uploadLabel:typeof t.upload_label=="string"?t.upload_label:void 0,skipLabel:typeof t.skip_label=="string"?t.skip_label:void 0}}function ft(t,e,a){const n=t.props??{},i=n.processing===!0,r=document.createElement("div");r.className="gengage-chat-beauty-photo-step-card";const o=document.createElement("span");o.className="gengage-chat-beauty-photo-step-icon",o.setAttribute("aria-hidden","true"),o.textContent="✦";const c=document.createElement("div");c.className="gengage-chat-beauty-photo-step-content";const d=document.createElement("div");d.className="gengage-chat-beauty-photo-step-title",d.textContent=(typeof n.title=="string"?n.title:void 0)??e.i18n?.beautyPhotoStepTitle??"Upload a Photo";const l=document.createElement("p");l.className="gengage-chat-beauty-photo-step-desc",l.textContent=(typeof n.description=="string"?n.description:void 0)??e.i18n?.beautyPhotoStepDescription??"Share a selfie so we can analyze your skin and recommend the right products.";const p=document.createElement("div");p.className="gengage-chat-beauty-photo-step-actions";const s=document.createElement("button");s.type="button",s.className="gengage-chat-beauty-photo-step-upload gds-btn gds-btn-primary",s.textContent=i?e.i18n?.beautyPhotoStepProcessing??"Analyzing...":(typeof n.upload_label=="string"?n.upload_label:void 0)??e.i18n?.beautyPhotoStepUpload??"Upload Photo",s.disabled=i,a?.onUpload&&s.addEventListener("click",()=>a.onUpload());const u=document.createElement("button");return u.type="button",u.className="gengage-chat-beauty-photo-step-skip gds-btn gds-btn-ghost",u.textContent=(typeof n.skip_label=="string"?n.skip_label:void 0)??e.i18n?.beautyPhotoStepSkip??"Skip",a?.onSkip&&u.addEventListener("click",()=>a.onSkip()),p.appendChild(s),p.appendChild(u),c.appendChild(d),c.appendChild(l),c.appendChild(p),r.appendChild(o),r.appendChild(c),r}function ca(t,e){if(t)return t;const a=document.createElement("section");a.className="gengage-chat-beauty-photo-step",a.dataset.gengagePart="chat-beauty-photo-step",a.hidden=!0;const n=e?.querySelector(".gengage-chat-input-area");return n?n.parentElement?.insertBefore(a,n):e?.appendChild(a),a}function la(t,e,a,n,i){if(!a.visible)return t&&(t.hidden=!0,t.innerHTML=""),t;const r=ca(t,e);r.hidden=!1,r.innerHTML="";const o=ft({type:"BeautyPhotoStep",props:{processing:a.processing??!1,title:a.title,description:a.description,upload_label:a.uploadLabel,skip_label:a.skipLabel}},{i18n:n,onAction:()=>{}},{onUpload:i,onSkip:a.onSkip});return r.appendChild(o),r}function vt(t){const e=typeof t.summary=="string"?t.summary:"",a=Array.isArray(t.clues)?t.clues.filter(i=>typeof i=="string"):[];if(!e&&a.length===0)return null;const n=typeof t.next_question=="string"?t.next_question:void 0;return n?{summary:e,clues:a,nextQuestion:n}:{summary:e,clues:a}}function Fe(t,e){const a=document.createElement("div");a.className="gengage-chat-photo-analysis-card";const n=document.createElement("div");n.className="gengage-chat-photo-analysis-badge",n.textContent=t;const i=document.createElement("div");if(i.className="gengage-chat-photo-analysis-body",e.summary){const r=document.createElement("p");r.className="gengage-chat-photo-analysis-summary",r.textContent=e.summary,i.appendChild(r)}if(e.clues.length>0){const r=document.createElement("ul");r.className="gengage-chat-photo-analysis-points";for(const o of e.clues){const c=document.createElement("li");c.textContent=o,r.appendChild(c)}i.appendChild(r)}if(e.nextQuestion){const r=document.createElement("p");r.className="gengage-chat-photo-analysis-next",r.textContent=e.nextQuestion,i.appendChild(r)}return a.appendChild(n),a.appendChild(i),a}function ga(t,e){const a=vt(t.props??{})??{summary:"",clues:[]};return Fe(e.i18n?.photoAnalysisBadge??"Skin Analysis",a)}function da(t,e,a,n){if(t.innerHTML="",n){t.appendChild(Fe(a,n));return}const i=e.split(/(?<=[.!?])\s+/).map(l=>l.trim()).filter(Boolean),r=i[0]??e,o=i.slice(1).filter(l=>!l.includes("?")).slice(0,4),c=i.find(l=>l.includes("?")),d={summary:r,clues:o,...c?{nextQuestion:c}:{}};t.appendChild(Fe(a,d))}var Ke={search:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><circle cx="6.5" cy="6.5" r="5" fill="none" stroke="currentColor" stroke-width="1.5"/><line x1="10" y1="10" x2="15" y2="15" stroke="currentColor" stroke-width="1.5"/></svg>',review:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><polygon points="8,1 10,6 15,6 11,9 12.5,14 8,11 3.5,14 5,9 1,6 6,6" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>',info:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><circle cx="8" cy="8" r="7" fill="none" stroke="currentColor" stroke-width="1.5"/><line x1="8" y1="7" x2="8" y2="12" stroke="currentColor" stroke-width="1.5"/><circle cx="8" cy="4.5" r="0.8" fill="currentColor"/></svg>',similar:'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><rect x="1" y="3" width="6" height="6" rx="1" fill="none" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="3" width="6" height="6" rx="1" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>'},pa=qe,ha=1400,ua=/data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;async function ma(t){for(const e of t)for(const a of e.types)if(a.startsWith("image/"))try{const n=await e.getType(a);if(!n||n.size===0)continue;const i=a||n.type||"image/png",r=i==="image/png"?"png":i==="image/webp"?"webp":"jpg",o=`paste-${Date.now()}.${r}`;return new File([n],o,{type:i})}catch{continue}for(const e of t)if(e.types.includes("text/html"))try{const a=(await(await e.getType("text/html")).text()).match(ua)?.[0];if(!a||a.length>5e6)continue;const n=await(await fetch(a)).blob();if(!n||n.size===0)continue;const i=n.type||"image/png";if(!["image/jpeg","image/png","image/webp"].includes(i))continue;const r=i==="image/png"?"png":i==="image/webp"?"webp":"jpg";return new File([n],`paste-${Date.now()}.${r}`,{type:i})}catch{continue}return null}async function ba(t){try{const e=t??(typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():null);return e?ma(await e):null}catch{}return null}var fa=class{_renderPhotoAnalysisCard(t,e,a){da(t,e,this.i18n.photoAnalysisBadge,a)}constructor(t,e){this._sendStopHandler=null,this._panelVisible=!1,this._panelCollapsed=!1,this._dividerPreviewEnabled=!1,this._onPanelToggle=void 0,this._onHostShellSync=void 0,this._pendingAttachment=null,this._onAttachment=void 0,this._onRollback=void 0,this._onLinkClick=void 0,this._userScrolledUp=!1,this._scrollLockedUntil=0,this._favBadgeEl=null,this._thinkingSteps=[],this._firstBotMessageIds=new Set,this._voiceInput=null,this._micBtn=null,this._voiceEnabled=!1,this._voiceLang="tr-TR",this._ignoreNextDividerClick=!1,this._panelListScrollAnimToken=0,this._cleanups=[],this._focusTrapHandler=null,this._previouslyFocusedElement=null,this._conversationEl=null,this._reopenPanelBtn=null,this._presentationFocusThreadId=null,this._formerMessagesBtn=null,this._programmaticScrollUntil=0,this._userInteractionUntil=0,this._touchStartY=null,this._presentationPinned=!0,this._presentationUserInteracting=!1,this._resizeRafId=null,this._cartBtn=null,this._attachWrapEl=null,this._attachMenuEl=null,this._attachBtn=null,this._attachMenuCleanup=null,this._attachMenuClickTimerId=null,this._typingLoadingBinding=null,this._panelLoadingBinding=null,this._panelAiZoneLoadingBinding=null,this._beautyPhotoStepEl=null,this._options=e,this.i18n={...pa,...e.i18n},this.onSend=e.onSend,e.onPanelToggle!==void 0&&(this._onPanelToggle=e.onPanelToggle),e.onHostShellSync!==void 0&&(this._onHostShellSync=e.onHostShellSync),e.onAttachment!==void 0&&(this._onAttachment=e.onAttachment),e.onRollback!==void 0&&(this._onRollback=e.onRollback),e.onLinkClick!==void 0&&(this._onLinkClick=e.onLinkClick),e.voiceEnabled&&(this._voiceEnabled=!0),e.voiceLang!==void 0&&(this._voiceLang=e.voiceLang),this.root=document.createElement("div"),this.root.className="gengage-chat-drawer gds-panel",this.root.dataset.gengagePart="chat-drawer",this.root.setAttribute("role","dialog"),this.root.setAttribute("aria-label",this.i18n.headerTitle??"Chat"),this.root.setAttribute("aria-modal","true");const a="gengage-chat-dialog-desc",n=document.createElement("span");n.id=a,n.className="gengage-sr-only",n.textContent=this.i18n.headerTitle??"AI shopping assistant",this.root.appendChild(n),this.root.setAttribute("aria-describedby",a);let i=null;{const C=document.createElement("div");C.className="gengage-chat-drawer-handle",C.dataset.gengagePart="chat-drawer-handle",C.setAttribute("aria-hidden","true"),C.style.pointerEvents="none",i=C}const r=document.createElement("div");r.className="gengage-chat-header gds-shell-header",r.dataset.gengagePart="chat-header";const o=document.createElement("div");o.className="gengage-chat-header-left",o.dataset.gengagePart="chat-header-left";const c=e.headerAvatarUrl??e.launcherImageUrl,d=typeof e.headerAvatarUrl=="string"&&e.headerAvatarUrl.length>0&&e.headerAvatarUrl!==e.launcherImageUrl;if(c){const C=document.createElement("img");C.className="gengage-chat-header-avatar",d&&C.classList.add("gengage-chat-header-avatar--logo"),C.dataset.gengagePart="chat-header-avatar",C.src=c,C.alt=e.headerTitle??"Assistant",o.appendChild(C)}const l=document.createElement("div");l.className="gengage-chat-header-info",l.dataset.gengagePart="chat-header-info";const p=document.createElement("div");p.className="gengage-chat-header-title-row",p.dataset.gengagePart="chat-header-title-row";const s=document.createElement("span");if(s.className="gengage-chat-header-title",s.dataset.gengagePart="chat-header-title",s.textContent=e.headerTitle??this.i18n.headerTitle??"Product Expert",p.appendChild(s),e.headerBadge){const C=document.createElement("span");C.className="gengage-chat-header-badge gds-badge gds-badge-brand",C.dataset.gengagePart="chat-header-badge",C.textContent=e.headerBadge,p.appendChild(C)}l.appendChild(p);const u=document.createElement("a");u.className="gengage-chat-header-powered",u.dataset.gengagePart="chat-header-powered-by",u.href="https://gengage.ai/",u.target="_blank",u.rel="noopener noreferrer",u.innerHTML=`<svg viewBox="0 0 15 15" fill="none" aria-hidden="true"><path d="M15 5.88941C12.2201 5.88941 9.72762 7.14107 8.05571 9.11059H0C2.77991 9.11059 5.27238 7.85893 6.94429 5.88941H15Z" fill="currentColor"/><path d="M9.10964 0C9.10964 2.24394 8.29524 4.30038 6.94429 5.88941C5.27238 7.85962 2.77922 9.11059 0 9.11059V5.88941C3.24802 5.88941 5.89036 3.2465 5.89036 0H9.10964Z" fill="currentColor" fill-opacity="0.68"/><path d="M15 5.88941V9.11059C11.752 9.11059 9.10964 11.7535 9.10964 15H5.89036C5.89036 12.7561 6.70476 10.6996 8.05571 9.11059C9.72762 7.14038 12.2208 5.88941 15 5.88941Z" fill="currentColor" fill-opacity="0.68"/></svg>${this.i18n.poweredBy}`,l.appendChild(u),o.appendChild(l),r.appendChild(o);const h=document.createElement("div");h.className="gengage-chat-header-right",h.dataset.gengagePart="chat-header-actions";{const C=document.createElement("button");C.type="button",C.className="gengage-chat-header-btn gengage-chat-header-btn--reopen-panel gds-btn gds-btn-ghost gds-icon-btn",C.dataset.gengagePart="chat-header-reopen-panel",C.setAttribute("aria-label",this.i18n.showPanelAriaLabel),C.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><line x1="9" y1="3" x2="9" y2="21"/></svg>',C.addEventListener("click",()=>this._showMobilePanelFromBtn()),h.appendChild(C),this._reopenPanelBtn=C}{const C=document.createElement("button");C.type="button",C.className="gengage-chat-header-btn gds-btn gds-btn-ghost gds-icon-btn",C.dataset.gengagePart="chat-header-cart",C.setAttribute("aria-label",this.i18n.cartAriaLabel),C.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>',C.addEventListener("click",()=>e.onCartClick?.()),h.appendChild(C),this._cartBtn=C}if(e.onNewChat){const C=document.createElement("button");C.className="gengage-chat-header-btn gengage-chat-new-chat gds-btn gds-btn-ghost gds-icon-btn",C.dataset.gengagePart="chat-header-new-chat",C.type="button",C.setAttribute("aria-label",this.i18n.newChatButton),C.title=this.i18n.newChatButton,C.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>',C.addEventListener("click",()=>e.onNewChat?.()),h.appendChild(C)}const w=document.createElement("button");if(w.className="gengage-chat-close gds-btn gds-btn-ghost gds-icon-btn",w.dataset.gengagePart="chat-header-close",w.type="button",w.setAttribute("aria-label",this.i18n.closeButton),w.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',w.addEventListener("click",e.onClose),e.showHeaderFavorites){const C=document.createElement("button");C.className="gengage-chat-header-btn gengage-chat-header-btn--fav gds-btn gds-btn-ghost gds-icon-btn",C.dataset.gengagePart="chat-header-favorites",C.type="button",C.setAttribute("aria-label",this.i18n.favoritesAriaLabel),C.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>';const G=document.createElement("span");G.className="gengage-chat-header-fav-badge",G.dataset.gengagePart="chat-header-favorites-badge",G.setAttribute("aria-hidden","true"),G.style.display="none",C.appendChild(G),this._favBadgeEl=G,C.addEventListener("click",()=>{e.onFavoritesClick?.()}),h.appendChild(C)}h.appendChild(w),i&&r.insertBefore(i,r.firstChild),r.appendChild(h);{let G=0,J=0,te=!1;const ae=re=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||re.target.closest('button, a, input, [role="button"]'))return;const oe=re.changedTouches?.[0];oe&&(G=oe.clientY,J=0,te=!0,this.root.style.transition="none")},ge=re=>{if(!te)return;const oe=re.changedTouches?.[0];if(!oe)return;J=oe.clientY-G;const Ht=(e.getMobileState?.()??"full")==="full"?Math.max(0,J):J;re.preventDefault(),this.root.style.transform=`translateY(${Ht}px)`},he=()=>{if(!te)return;te=!1;const re=e.getMobileState?.()??"full";let oe;J>72?oe=re==="full"?"half":"close":J<-72&&re==="half"?oe="full":oe=re,this.root.style.transition="",oe==="close"?(this.root.style.transform="translateY(100%)",setTimeout(()=>{this.root.style.transform="",e.onMobileSnap?.("close")},280)):(this.root.style.transform="",e.onMobileSnap?.(oe)),J=0},Ce=()=>{te&&(te=!1,J=0,this.root.style.transition="",this.root.style.transform="")};r.addEventListener("touchstart",ae,{passive:!0}),r.addEventListener("touchmove",ge,{passive:!1}),r.addEventListener("touchend",he,{passive:!0}),r.addEventListener("touchcancel",Ce,{passive:!0}),this._cleanups.push(()=>{r.removeEventListener("touchstart",ae),r.removeEventListener("touchmove",ge),r.removeEventListener("touchend",he),r.removeEventListener("touchcancel",Ce)})}const m=document.createElement("div");m.className="gengage-chat-body",m.dataset.gengagePart="chat-body",this._panelEl=document.createElement("div"),this._panelEl.className="gengage-chat-panel gds-panel",this._panelEl.dataset.gengagePart="chat-panel",this._panelTopBar=new ra({onBack:()=>e.onPanelBack?.(),onForward:()=>e.onPanelForward?.(),onClose:()=>{e.getMobileViewport?.()??!1?this.hideMobilePanel():this.clearPanel(),e.onPanelClose?.()},backAriaLabel:this.i18n.backAriaLabel,forwardAriaLabel:this.i18n.forwardAriaLabel,closePanelAriaLabel:this.i18n.closePanelAriaLabel}),this._panelEl.appendChild(this._panelTopBar.getElement());const f=()=>this._updateScrollAffordance();this._panelEl.addEventListener("scroll",f,{passive:!0}),this._cleanups.push(()=>this._panelEl.removeEventListener("scroll",f)),m.appendChild(this._panelEl),this._dividerEl=document.createElement("div"),this._dividerEl.className="gengage-chat-panel-divider gengage-chat-panel-divider--hidden",this._dividerEl.dataset.gengagePart="chat-panel-divider",this._dividerEl.setAttribute("role","separator"),this._dividerEl.setAttribute("aria-label",this.i18n.togglePanelAriaLabel),this._dividerEl.setAttribute("title",this.i18n.togglePanelAriaLabel),this._dividerPreviewEl=document.createElement("div"),this._dividerPreviewEl.className="gengage-chat-panel-divider-preview",this._dividerPreviewEl.dataset.gengagePart="chat-panel-divider-preview",this._dividerPreviewEl.setAttribute("aria-hidden","true"),this._dividerEl.appendChild(this._dividerPreviewEl);const y=document.createElement("button");y.className="gengage-chat-panel-divider-toggle gds-btn gds-btn-ghost",y.dataset.gengagePart="chat-panel-divider-toggle",y.type="button",y.setAttribute("aria-label",this.i18n.togglePanelAriaLabel),y.setAttribute("title",this.i18n.togglePanelAriaLabel),y.textContent="»",y.addEventListener("click",()=>{if(this._ignoreNextDividerClick){this._ignoreNextDividerClick=!1;return}this.togglePanel(),this._onPanelToggle?.()});let B=null,S=null;const A=24,_=C=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const G=C.changedTouches?.[0];G&&(B=G.clientX,S=G.clientY)},M=C=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||B===null||S===null)return;const G=C.changedTouches?.[0];if(!G)return;const J=G.clientX-B,te=G.clientY-S;if(B=null,S=null,Math.abs(te)<A||Math.abs(te)<Math.abs(J))return;const ae=te<0;ae!==this._panelCollapsed&&(this._ignoreNextDividerClick=!0,this.setPanelCollapsed(ae),this._onPanelToggle?.())};this._dividerEl.addEventListener("touchstart",_,{passive:!0}),this._dividerEl.addEventListener("touchend",M,{passive:!0}),this._cleanups.push(()=>{this._dividerEl.removeEventListener("touchstart",_),this._dividerEl.removeEventListener("touchend",M)}),this._dividerEl.appendChild(y),m.appendChild(this._dividerEl);const H=document.createElement("div");H.className="gengage-chat-conversation",H.dataset.gengagePart="chat-conversation",this._conversationEl=H,H.appendChild(r);const T=document.createElement("div");T.className="gengage-chat-offline-bar gds-evidence-card gds-evidence-card-warning",T.dataset.gengagePart="chat-offline-bar",T.setAttribute("role","status"),T.setAttribute("aria-live","polite"),T.textContent=this.i18n.offlineMessage,typeof navigator<"u"&&!navigator.onLine&&T.classList.add("gengage-chat-offline-bar--visible"),H.appendChild(T);const q=()=>T.classList.add("gengage-chat-offline-bar--visible"),Z=()=>T.classList.remove("gengage-chat-offline-bar--visible");window.addEventListener("offline",q),window.addEventListener("online",Z),this._cleanups.push(()=>{window.removeEventListener("offline",q),window.removeEventListener("online",Z)}),this._kvkkSlot=document.createElement("div"),this._kvkkSlot.className="gengage-chat-kvkk-slot",this._kvkkSlot.dataset.gengagePart="chat-kvkk-slot",H.appendChild(this._kvkkSlot),this.messagesEl=document.createElement("div"),this.messagesEl.id=Pe,this.messagesEl.className="gengage-chat-messages",this.messagesEl.dataset.gengagePart="chat-messages",this.messagesEl.setAttribute("role","log"),this.messagesEl.setAttribute("aria-live","polite"),this.messagesEl.setAttribute("aria-atomic","false"),this.messagesEl.setAttribute("aria-label",this.i18n.chatMessagesAriaLabel),Ye(this.messagesEl);const Y=document.createElement("button");Y.type="button",Y.className="gengage-chat-former-messages-btn gds-chip",Y.dataset.gengagePart="chat-former-messages-button",Y.textContent=this.i18n.showFormerMessagesButton,Y.setAttribute("aria-label",this.i18n.showFormerMessagesButton),Y.style.display="none",Y.addEventListener("click",()=>{this._options.presentation?.onReleasePresentationFocus?.()}),this.messagesEl.appendChild(Y),this._formerMessagesBtn=Y;const I=()=>{this._userInteractionUntil=Date.now()+2e3};let v=!1;const b=()=>this._options.presentation,x=()=>{v||(v=!0,requestAnimationFrame(()=>{v=!1;const{scrollTop:C,scrollHeight:G,clientHeight:J}=this.messagesEl,te=G-C-J;this._userScrolledUp=te>10;const ae=this._presentationPinned?te<96:te<32,ge=Date.now(),he=ge<this._programmaticScrollUntil,Ce=!ae&&ge<this._userInteractionUntil,re=he?!1:Ce;ae!==this._presentationPinned&&(this._presentationPinned=ae,b()?.onPinnedToBottomChange?.(ae)),re!==this._presentationUserInteracting&&(this._presentationUserInteracting=re,b()?.onUserInteractingChange?.(re))}))};this.messagesEl.addEventListener("scroll",x,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("scroll",x)});const k=C=>{I(),C.deltaY<-6&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("wheel",k,{passive:!0}),this._cleanups.push(()=>this.messagesEl.removeEventListener("wheel",k));const L=C=>{I(),this._touchStartY=C.touches[0]?.clientY??null},N=C=>{I();const G=C.touches[0]?.clientY,J=this._touchStartY;typeof G=="number"&&typeof J=="number"&&G-J>10&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("touchstart",L,{passive:!0}),this.messagesEl.addEventListener("touchmove",N,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("touchstart",L),this.messagesEl.removeEventListener("touchmove",N)}),H.appendChild(this.messagesEl),this._thumbnailsColumn=new oa({onThumbnailClick:C=>e.onThumbnailClick?.(C)}),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelFloatingEl=document.createElement("div"),this._panelFloatingEl.className="gengage-chat-panel-float",this._panelFloatingEl.dataset.gengagePart="chat-panel-floating-layer",this._panelEl.appendChild(this._panelFloatingEl),this._resetPanelAiZoneElement(),this._pillsEl=document.createElement("div"),this._pillsEl.className="gengage-chat-pills",this._pillsEl.dataset.gengagePart="chat-suggestion-pills",this._pillsEl.setAttribute("role","toolbar"),this._pillsEl.setAttribute("aria-label",this.i18n.suggestionsAriaLabel),this._pillsEl.style.display="none";const R=document.createElement("div");R.className="gengage-chat-pills-scroll",R.dataset.gengagePart="chat-suggestion-pills-scroll",this._pillsEl.appendChild(R);const P=document.createElement("button");P.className="gengage-chat-pills-arrow gds-btn gds-btn-ghost",P.dataset.gengagePart="chat-suggestion-pills-more",P.type="button",P.setAttribute("aria-label",this.i18n.moreSuggestionsAriaLabel),P.textContent="›",P.addEventListener("click",()=>{R.scrollBy({left:150,behavior:"smooth"})}),this._pillsEl.appendChild(P);let j=!1;const U=()=>{j||(j=!0,requestAnimationFrame(()=>{j=!1;const C=R.scrollLeft+R.clientWidth>=R.scrollWidth-4;P.style.display=C?"none":""}))};R.addEventListener("scroll",U,{passive:!0}),this._cleanups.push(()=>{R.removeEventListener("scroll",U)}),H.appendChild(this._pillsEl),this._inputChipsEl=document.createElement("div"),this._inputChipsEl.className="gengage-chat-input-chips",this._inputChipsEl.dataset.gengagePart="chat-input-chips",this._inputChipsEl.style.display="none",H.appendChild(this._inputChipsEl);const $=document.createElement("div");$.className="gengage-chat-input-area",$.dataset.gengagePart="chat-input-area",this.inputEl=document.createElement("textarea"),this.inputEl.className="gengage-chat-input",this.inputEl.dataset.gengagePart="chat-input",this.inputEl.rows=1,this.inputEl.placeholder=this.i18n.inputPlaceholder,this.inputEl.addEventListener("input",()=>{this._resizeRafId!==null&&cancelAnimationFrame(this._resizeRafId),this._resizeRafId=requestAnimationFrame(()=>{this._resizeRafId=null,this.inputEl.style.height="auto",this.inputEl.style.height=`${Math.min(this.inputEl.scrollHeight,120)}px`}),this._updateSendEnabled()}),this.inputEl.addEventListener("keydown",C=>{C.key==="Enter"&&!C.isComposing&&((this._options.getMobileViewport?.()??window.innerWidth<=768)||!C.shiftKey)&&(C.preventDefault(),this._submit())}),this.inputEl.addEventListener("paste",C=>{const G=C.clipboardData;if(!G)return;let J=null;const te=G.files?.[0];if(te&&te.type.startsWith("image/"))J=te;else if(G.items?.length)for(let ae=0;ae<G.items.length;ae++){const ge=G.items[ae];if(ge?.kind==="file"&&ge.type.startsWith("image/")){const he=ge.getAsFile();if(he){J=he;break}}}J&&(C.preventDefault(),this._routeAttachmentFile(J))}),this._fileInput=document.createElement("input"),this._fileInput.type="file",this._fileInput.accept="image/jpeg,image/png,image/webp",this._fileInput.style.display="none",this._fileInput.addEventListener("change",()=>{const C=this._fileInput.files?.[0];C&&this._routeAttachmentFile(C),this._fileInput.value=""});const K=document.createElement("div");K.className="gengage-chat-attach-wrap",K.dataset.gengagePart="chat-attach-wrap",this._attachWrapEl=K;const X=document.createElement("button");this._attachBtn=X,X.className="gengage-chat-attach-btn gds-btn gds-btn-ghost",X.dataset.gengagePart="chat-attach-button",X.type="button",X.setAttribute("aria-label",this.i18n.attachImageButton),X.setAttribute("aria-haspopup","menu"),X.setAttribute("aria-expanded","false"),X.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg>',X.addEventListener("click",C=>{C.stopPropagation(),this._toggleAttachMenu()});const ee=document.createElement("div");this._attachMenuEl=ee,ee.className="gengage-chat-attach-menu gds-menu",ee.dataset.gengagePart="chat-attach-menu",ee.setAttribute("role","menu"),ee.setAttribute("hidden","");const V=document.createElement("button");V.type="button",V.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",V.dataset.gengagePart="chat-attach-menu-select-photo",V.setAttribute("role","menuitem"),V.innerHTML=`<span class="gengage-chat-attach-menu-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg></span><span class="gengage-chat-attach-menu-label">${this.i18n.attachMenuSelectPhoto}</span>`,V.addEventListener("click",C=>{C.stopPropagation(),this._closeAttachMenu(),this._fileInput.click()});const ie=document.createElement("div");ie.className="gengage-chat-attach-menu-sep",ie.dataset.gengagePart="chat-attach-menu-separator",ie.setAttribute("aria-hidden","true");const O=document.createElement("button");O.type="button",O.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",O.dataset.gengagePart="chat-attach-menu-paste",O.setAttribute("role","menuitem"),O.innerHTML=`<span class="gengage-chat-attach-menu-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Z"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"/><path d="M16 4h2a2 2 0 0 1 2 2v4"/><path d="M21 14H11"/><path d="m15 10-4 4 4 4"/></svg></span><span class="gengage-chat-attach-menu-label">${this.i18n.attachMenuPaste}</span>`,O.addEventListener("click",C=>{C.stopPropagation();const G=typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():void 0;this._pasteImageFromClipboardMenu(G)}),ee.appendChild(V),ee.appendChild(ie),ee.appendChild(O),K.appendChild(X),K.appendChild(ee),this._previewStrip=document.createElement("div"),this._previewStrip.className="gengage-chat-attachment-preview gengage-chat-attachment-preview--hidden gds-card-soft",this._previewStrip.dataset.gengagePart="chat-attachment-preview";const z=document.createElement("img");z.className="gengage-chat-attachment-preview-thumb",z.dataset.gengagePart="chat-attachment-preview-thumb",z.alt="",this._previewName=document.createElement("span"),this._previewName.className="gengage-chat-attachment-name",this._previewName.dataset.gengagePart="chat-attachment-preview-name";const W=document.createElement("button");W.className="gengage-chat-attachment-remove gds-btn gds-btn-ghost",W.dataset.gengagePart="chat-attachment-preview-remove",W.type="button",W.setAttribute("aria-label",this.i18n.removeAttachmentButton),W.textContent="×",W.addEventListener("click",()=>this.clearAttachment()),this._previewStrip.appendChild(z),this._previewStrip.appendChild(this._previewName),this._previewStrip.appendChild(W),this.sendBtn=document.createElement("button"),this.sendBtn.className="gengage-chat-send gds-btn gds-btn-primary",this.sendBtn.dataset.gengagePart="chat-send",this.sendBtn.type="button",this.sendBtn.disabled=!0,this.sendBtn.setAttribute("aria-label",this.i18n.sendButton),this.sendBtn.dataset.tooltip=this.i18n.sendButton,this._renderSendButtonIcon("send"),this.sendBtn.addEventListener("click",()=>{if(this._sendStopHandler){const C=this._sendStopHandler;this.hideStopButton(),C();return}this._submit()}),$.addEventListener("dragover",C=>{C.preventDefault(),$.classList.add("gengage-chat-input-area--dragover")}),$.addEventListener("dragleave",()=>{$.classList.remove("gengage-chat-input-area--dragover")}),$.addEventListener("drop",C=>{C.preventDefault(),$.classList.remove("gengage-chat-input-area--dragover");const G=C.dataTransfer?.files[0];G&&this._routeAttachmentFile(G)});const D=document.createElement("div");D.className="gengage-chat-input-pill gds-input-shell",D.dataset.gengagePart="chat-input-shell",D.appendChild(K),D.appendChild(this.inputEl),this._voiceEnabled&&ut()&&(this._micBtn=document.createElement("button"),this._micBtn.className="gengage-chat-mic-btn gds-btn gds-btn-ghost",this._micBtn.dataset.gengagePart="chat-mic-button",this._micBtn.type="button",this._micBtn.setAttribute("aria-label",this.i18n.voiceButton),this._micBtn.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/><line x1="8" y1="23" x2="16" y2="23"/></svg>',this._micBtn.addEventListener("click",()=>this._toggleVoice()),D.appendChild(this._micBtn),this._voiceInput=new bt({onInterim:C=>{this._resizeRafId!==null&&(cancelAnimationFrame(this._resizeRafId),this._resizeRafId=null),this.inputEl.value=C,this.inputEl.style.height="auto",this.inputEl.style.height=`${Math.min(this.inputEl.scrollHeight,120)}px`},onFinal:C=>{this.inputEl.value=C},onAutoSubmit:C=>{this.inputEl.value=C,this._micBtn?.classList.remove("gengage-chat-mic-btn--active"),this._submit()},onStateChange:C=>{C==="listening"?this._micBtn?.classList.add("gengage-chat-mic-btn--active"):this._micBtn?.classList.remove("gengage-chat-mic-btn--active")},onError:(C,G)=>{this._micBtn?.classList.remove("gengage-chat-mic-btn--active")}},{lang:this._voiceLang})),D.appendChild(this.sendBtn),$.appendChild(this._previewStrip),$.appendChild(this._fileInput),$.appendChild(D),H.appendChild($),m.appendChild(H),this._comparisonDockSlotEl=document.createElement("div"),this._comparisonDockSlotEl.className="gengage-chat-comparison-dock-slot",this._comparisonDockSlotEl.dataset.gengagePart="comparison-dock-slot",m.appendChild(this._comparisonDockSlotEl),this.root.appendChild(m),this._setupHorizontalSwipe(H),this._setupHorizontalSwipe(this._panelEl);const Q=document.createElement("div");Q.className="gengage-chat-footer",Q.dataset.gengagePart="chat-footer",Q.textContent=this.i18n.poweredBy,this.root.appendChild(Q);const ke=C=>{C.key==="Escape"&&e.onClose()};this.root.addEventListener("keydown",ke),this._cleanups.push(()=>this.root.removeEventListener("keydown",ke)),t.appendChild(this.root)}addMessage(t){const e=document.createElement("div");if(e.className=`gengage-chat-bubble gds-message ${t.role==="assistant"?"gds-message-assistant":"gds-message-user"} gengage-chat-bubble--${t.role}`,e.dataset.gengagePart=t.role==="assistant"?"chat-message-assistant":"chat-message-user",e.setAttribute("role","listitem"),e.dataset.messageId=t.id,t.threadId&&(e.dataset.threadId=t.threadId),this._firstBotMessageIds.has(t.id)&&e.classList.add("gengage-chat-bubble--first"),t.attachment){const a=document.createElement("img");a.className="gengage-chat-attachment-thumb";const n=URL.createObjectURL(t.attachment);a.src=n,a.alt=t.attachment.name,a.addEventListener("load",()=>URL.revokeObjectURL(n),{once:!0}),a.addEventListener("error",()=>URL.revokeObjectURL(n),{once:!0}),e.insertBefore(a,e.firstChild)}if(t.content){const a=document.createElement("div");if(a.className="gengage-chat-bubble-text",a.dataset.gengagePart="chat-message-text",t.role==="assistant"){if(t.renderHint==="photo_analysis"?(e.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(a,t.content,t.photoAnalysis)):a.innerHTML=E.sanitizeHtml(t.content),this._onLinkClick){const n=a.querySelectorAll("a[href]");for(const i of n)i.addEventListener("click",r=>{r.preventDefault();const o=i.getAttribute("href");o&&this._onLinkClick?.(o)})}}else a.textContent=t.content;e.appendChild(a)}if(t.role==="user"&&this._onRollback){const a=document.createElement("button");a.className="gengage-chat-rollback-btn gds-btn gds-btn-ghost",a.dataset.gengagePart="chat-message-rollback",a.type="button",a.setAttribute("aria-label",this.i18n.rollbackAriaLabel),a.title=this.i18n.rollbackAriaLabel,a.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 4 1 10 7 10"/><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/></svg>',a.addEventListener("click",n=>{n.stopPropagation(),this._onRollback?.(t.id)}),e.appendChild(a)}this.messagesEl.appendChild(e),this._presentationFocusThreadId&&this._applyPresentationCollapsed(),this._scrollToBottom(t.role==="user")}removeMessageBubble(t){this._firstBotMessageIds.delete(t),this.messagesEl.querySelector(`[data-message-id="${CSS.escape(t)}"]`)?.remove(),this._presentationFocusThreadId&&this._applyPresentationCollapsed()}showTypingIndicator(t){this.removeTypingIndicator();const e=this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):t?[t]:this.i18n.loadingSequenceGeneric,{root:a,binding:n}=this._createLoadingSequence("chat",e,"chat-typing-indicator","gengage-chat-typing");a.dataset.typing="true",this._typingLoadingBinding=n,this.messagesEl.appendChild(a),this._scrollToBottom(!0)}addThinkingStep(t){const e=t.trim();e&&this._thinkingSteps[this._thinkingSteps.length-1]!==e&&(this._thinkingSteps.push(e),this._thinkingSteps=this._thinkingSteps.slice(-3),this._typingLoadingBinding&&this._applyLoadingSteps(this._typingLoadingBinding,this._thinkingSteps,!0),this._panelLoadingBinding&&this._applyLoadingSteps(this._panelLoadingBinding,this._thinkingSteps,!0),this._panelAiZoneLoadingBinding&&this._applyLoadingSteps(this._panelAiZoneLoadingBinding,this._thinkingSteps,!0))}setThinkingSteps(t){const e=t.map(a=>a.trim()).filter(Boolean).slice(-3);e.length!==0&&(this._thinkingSteps=e,this._typingLoadingBinding&&this._applyLoadingSteps(this._typingLoadingBinding,this._thinkingSteps,!0),this._panelLoadingBinding&&this._applyLoadingSteps(this._panelLoadingBinding,this._thinkingSteps,!0),this._panelAiZoneLoadingBinding&&this._applyLoadingSteps(this._panelAiZoneLoadingBinding,this._thinkingSteps,!0))}removeTypingIndicator(){this._destroyLoadingBinding(this._typingLoadingBinding),this._typingLoadingBinding=null,this.messagesEl.querySelector(".gengage-chat-typing")?.remove(),this._thinkingSteps=[],this.hideStopButton()}showStopButton(t){this._sendStopHandler=t,this.sendBtn.disabled=!1,this.sendBtn.classList.add("gengage-chat-send--stop","gds-btn-secondary"),this.sendBtn.classList.remove("gds-btn-primary"),this.sendBtn.setAttribute("aria-label",this.i18n.stopGenerating),this.sendBtn.dataset.tooltip=this.i18n.stopGenerating,this._renderSendButtonIcon("stop")}hideStopButton(){this._sendStopHandler=null,this.sendBtn.classList.remove("gengage-chat-send--stop","gds-btn-secondary"),this.sendBtn.classList.add("gds-btn-primary"),this.sendBtn.setAttribute("aria-label",this.i18n.sendButton),this.sendBtn.dataset.tooltip=this.i18n.sendButton,this._renderSendButtonIcon("send"),this._updateSendEnabled()}showError(t,e){const a=document.createElement("div");a.className="gengage-chat-error",a.setAttribute("role","alert");const n=document.createElement("span");if(n.textContent=t??this.i18n.errorMessage,a.appendChild(n),e){const i=document.createElement("button");i.className="gengage-chat-error-retry",i.textContent=this.i18n.retryButton??"Retry",i.addEventListener("click",()=>{a.remove(),e()}),a.appendChild(i)}this.messagesEl.appendChild(a),this._scrollToBottom(!0)}showErrorWithRecovery(t,e){this.showError(t),this.setRecoveryPills(e)}showRecoveryPillsOnly(t){this.setRecoveryPills(t)}setRecoveryPills(t){this.setPills([{label:this.i18n.tryAgainButton,onAction:t.onRetry},{label:this.i18n.askSomethingElseButton,onAction:t.onNewQuestion}])}clearMessages(){const t=this._formerMessagesBtn;for(const e of[...this.messagesEl.children])e!==t&&e.remove()}setPills(t){const e=this._pillsEl.querySelector(".gengage-chat-pills-scroll");if(!e)return;for(;e.firstChild;)e.removeChild(e.firstChild);if(t.length===0){this._pillsEl.style.display="none";return}this._pillsEl.style.display="";for(const n of t){const i=document.createElement("button");if(i.className=n.image?"gengage-chat-pill gds-chip gds-chip-active gengage-chat-pill--rich":"gengage-chat-pill gds-chip gds-chip-active",i.type="button",n.icon){const o=Ke[n.icon]??'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><path d="M3 8h10M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',c=document.createElement("span");c.className="gengage-chat-pill-icon",c.innerHTML=o,i.appendChild(c)}if(n.image&&E.isSafeImageUrl(n.image)){const o=document.createElement("img");o.className="gengage-chat-pill-img",o.src=n.image,o.alt="",i.appendChild(o)}const r=document.createElement("span");if(r.className="gengage-chat-pill-text",r.textContent=n.label,i.appendChild(r),n.description){const o=document.createElement("span");o.className="gengage-chat-pill-desc";const c=`pill-desc-${Math.random().toString(36).slice(2,9)}`;o.id=c,o.textContent=n.description,i.appendChild(o),i.setAttribute("aria-describedby",c)}i.addEventListener("click",()=>n.onAction()),e.appendChild(i)}const a=this._pillsEl.querySelector(".gengage-chat-pills-arrow");a&&requestAnimationFrame(()=>{a.style.display=e.scrollWidth>e.clientWidth?"":"none"})}focusInput(){this.inputEl.focus()}showKvkkBanner(t,e){this._kvkkSlot.innerHTML="";const a=ia({htmlContent:t,onDismiss:e,closeAriaLabel:this.i18n.closeAriaLabel});this._kvkkSlot.appendChild(a)}hideKvkkBanner(){this._kvkkSlot.innerHTML=""}isKvkkBannerVisible(){return this._kvkkSlot.childNodes.length>0}getElement(){return this.root}openAttachmentPicker(){this._fileInput.click()}setAttachmentControlsVisible(t){this._attachWrapEl&&(this._attachWrapEl.style.display=t?"":"none",t||this._closeAttachMenu())}setBeautyPhotoStepCard(t){this._beautyPhotoStepEl=la(this._beautyPhotoStepEl,this._conversationEl??null,t,this.i18n,()=>this.openAttachmentPicker())}stageAttachment(t){this._pendingAttachment=t,this._previewName.textContent=t.name;const e=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");e&&(e.src&&e.src.startsWith("blob:")&&URL.revokeObjectURL(e.src),e.src=URL.createObjectURL(t)),this._previewStrip.classList.remove("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}clearAttachment(){const t=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");t?.src&&(URL.revokeObjectURL(t.src),t.src=""),this._pendingAttachment=null,this._previewStrip.classList.add("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}_routeAttachmentFile(t){if(this._onAttachment)try{this._onAttachment(t)}catch(e){console.error("[gengage:chat] Attachment callback error:",e)}else this.stageAttachment(t)}_closeAttachMenu(){this._attachMenuEl&&(this._attachMenuEl.setAttribute("hidden",""),this._attachBtn?.setAttribute("aria-expanded","false"),this._attachMenuClickTimerId!==null&&(clearTimeout(this._attachMenuClickTimerId),this._attachMenuClickTimerId=null),this._attachMenuCleanup&&(this._attachMenuCleanup(),this._attachMenuCleanup=null))}_openAttachMenu(){if(!this._attachMenuEl)return;this._attachMenuEl.removeAttribute("hidden"),this._attachBtn?.setAttribute("aria-expanded","true");const t=a=>{this._attachWrapEl?.contains(a.target)||this._closeAttachMenu()},e=a=>{a.key==="Escape"&&(a.stopPropagation(),this._closeAttachMenu())};this._attachMenuClickTimerId=window.setTimeout(()=>{this._attachMenuClickTimerId=null,document.addEventListener("click",t,!0)},0),document.addEventListener("keydown",e,!0),this._attachMenuCleanup=()=>{document.removeEventListener("click",t,!0),document.removeEventListener("keydown",e,!0)}}_toggleAttachMenu(){this._attachMenuEl&&(this._attachMenuEl.hasAttribute("hidden")?this._openAttachMenu():this._closeAttachMenu())}async _pasteImageFromClipboardMenu(t){const e=await ba(t);if(e){this._routeAttachmentFile(e),this._closeAttachMenu();return}E.dispatch("gengage:global:error",{message:this.i18n.clipboardNoImageMessage,source:"chat"}),this._closeAttachMenu()}getPendingAttachment(){return this._pendingAttachment}setPanelAiZoneState(t,e){if(this._panelAiZoneEl.isConnected){if(this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,t==="hidden"){this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.setAttribute("hidden","");return}if(this._panelAiZoneEl.removeAttribute("hidden"),t==="analyzing"){this._panelAiZoneEl.innerHTML="";const a=[e?.analyzingLabel??this.i18n.aiAnalysisAnalyzingLabel,...this.i18n.loadingSequencePanel],{root:n,binding:i}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-ai-zone-loading","gengage-chat-panel-ai-zone-inner");this._panelAiZoneLoadingBinding=i,this._panelAiZoneEl.appendChild(n)}else t==="results"&&e?.resultEl&&(this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.appendChild(e.resultEl))}}_resetPanelAiZoneElement(){this._panelAiZoneEl=document.createElement("div"),this._panelAiZoneEl.className="gengage-chat-panel-ai-zone",this._panelAiZoneEl.setAttribute("hidden","")}_emitHostShellSync(){this._onHostShellSync?.()}_syncPanelTopBarFromContent(t){const e=t.querySelector(".gengage-chat-product-grid-head");if(e){const a=e.querySelector(".gengage-chat-product-grid-head-title"),n=e.querySelector(".gengage-chat-product-grid-head-actions");if(a?.textContent?.trim()){const i=a.textContent.trim();t.dataset.gengagePanelDerivedTitle=i,this._panelTopBar.setTitle(i)}n?(n.classList.add("gengage-chat-panel-topbar-toolbar-host"),this._panelTopBar.setActions(n)):this._panelTopBar.setActions(null),e.remove();return}this._syncPanelTopBarTitleFromContent(t)}_syncPanelTopBarTitleFromContent(t){const e=t.dataset.gengagePanelDerivedTitle;if(e?.trim()){this._panelTopBar.setTitle(e.trim());return}const a=t.querySelector(".gengage-chat-product-details-title, .gengage-chat-product-details-similars-heading, .gengage-chat-ai-top-picks-title")?.textContent?.trim();a&&this._panelTopBar.setTitle(a)}setPanelContent(t){this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,this._panelVisible&&this._panelEl.classList.add("gengage-chat-panel--transitioning"),this._panelEl.innerHTML="",this._resetPanelAiZoneElement(),this._panelEl.appendChild(this._panelTopBar.getElement()),this._panelEl.appendChild(this._panelAiZoneEl),this._panelTopBar.setActions(null),this._panelEl.appendChild(t),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._syncPanelTopBarFromContent(t),this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._panelCollapsed&&this._panelEl.classList.add("gengage-chat-panel--collapsed"),this._syncDividerPreview(),requestAnimationFrame(()=>{this._panelEl.classList.remove("gengage-chat-panel--transitioning"),this._updateScrollAffordance(),this._smoothScrollPanelListToTop()}),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="none"),this._emitHostShellSync()}appendPanelContent(t){const e=this._thumbnailsColumn.getElement(),a=e.parentElement===this._panelEl?e:this._panelFloatingEl;this._panelEl.insertBefore(t,a),this._syncPanelTopBarFromContent(this.getPanelContentElement()??t),this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._syncDividerPreview(),this._emitHostShellSync()}getPanelContentElement(){const t=this._panelEl.children;for(let e=0;e<t.length;e++){const a=t[e];if(!(a.classList.contains("gengage-chat-panel-topbar")||a.classList.contains("gengage-chat-panel-ai-zone")||a.classList.contains("gengage-chat-thumbnails-column")||a.classList.contains("gengage-chat-panel-float")))return a}return null}isPanelVisible(){return this._panelVisible}hasPanelContent(){return this._panelVisible&&this.getPanelContentElement()!==null}isPanelLoading(){return this._panelEl.querySelector(".gengage-chat-panel-skeleton")!==null}showPanelLoading(t){this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._panelEl.innerHTML="",this._resetPanelAiZoneElement(),this._panelEl.appendChild(this._panelTopBar.getElement()),this._panelEl.appendChild(this._panelAiZoneEl);const e=document.createElement("div");e.className="gengage-chat-panel-skeleton";const a=t==="comparisonTable"?this.i18n.loadingSequenceComparison:this.i18n.loadingSequencePanel,{root:n,binding:i}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-loading-status","gengage-chat-panel-loading-status");switch(this._panelLoadingBinding=i,t){case"productDetails":{e.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--image",e.appendChild(r);for(let o=0;o<3;o++){const c=document.createElement("div");c.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--text",e.appendChild(c)}break}case"productList":case"groupList":{e.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-panel-skeleton-grid";for(let o=0;o<6;o++){const c=document.createElement("div");c.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--card",r.appendChild(c)}e.appendChild(r);break}case"comparisonTable":{e.classList.add("gengage-chat-panel-skeleton--comparison"),e.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-comparison gengage-chat-comparison--skeleton",r.setAttribute("aria-busy","true");const o=document.createElement("div");o.className="gengage-chat-comparison-recommended";const c=document.createElement("div");c.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-label",o.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-comparison-recommended-body";const l=document.createElement("div");l.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-img",l.setAttribute("aria-hidden","true");const p=document.createElement("div");p.className="gengage-chat-comparison-recommended-info";for(let H=0;H<2;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-title",H===1&&T.classList.add("gengage-chat-comparison-skeleton-rec-title--short"),p.appendChild(T)}const s=document.createElement("div");s.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-price",p.appendChild(s),d.appendChild(l),d.appendChild(p),o.appendChild(d);const u=document.createElement("div");u.className="gengage-chat-comparison-highlights";const h=document.createElement("div");h.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-label",u.appendChild(h);const w=document.createElement("ul");w.className="gengage-chat-comparison-skeleton-hl-list";for(let H=0;H<3;H++){const T=document.createElement("li"),q=document.createElement("div");q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-line",H===1&&q.classList.add("gengage-chat-comparison-skeleton-hl-line--medium"),H===2&&q.classList.add("gengage-chat-comparison-skeleton-hl-line--short"),T.appendChild(q),w.appendChild(T)}u.appendChild(w),o.appendChild(u),r.appendChild(o);const m=document.createElement("div");m.className="gengage-chat-comparison-key-differences";const f=document.createElement("div");f.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-heading",m.appendChild(f);const y=document.createElement("div");y.className="gengage-chat-comparison-key-differences-content";for(let H=0;H<4;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-line",y.appendChild(T)}m.appendChild(y),r.appendChild(m);const B=document.createElement("div");B.className="gengage-chat-comparison-special gengage-chat-comparison-special--skeleton";const S=document.createElement("div");S.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-special-line",B.appendChild(S),r.appendChild(B);const A=document.createElement("div");A.className="gengage-chat-comparison-skeleton-table-wrap";const _=document.createElement("div");_.className="gengage-chat-comparison-skeleton-table-head";const M=document.createElement("div");M.className="gengage-chat-comparison-skeleton-table-corner",_.appendChild(M);for(let H=0;H<3;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-table-col";const q=document.createElement("div");q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-img";const Z=document.createElement("div");Z.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";const Y=document.createElement("div");Y.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-price",T.appendChild(q),T.appendChild(Z),T.appendChild(Y),_.appendChild(T)}A.appendChild(_);for(let H=0;H<3;H++){const T=document.createElement("div");T.className="gengage-chat-comparison-skeleton-table-row";const q=document.createElement("div");q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-label",T.appendChild(q);for(let Z=0;Z<3;Z++){const Y=document.createElement("div");Y.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-cell",T.appendChild(Y)}A.appendChild(T)}r.appendChild(A),e.appendChild(r);break}default:e.appendChild(n);for(let r=0;r<3;r++){const o=document.createElement("div");o.className="gengage-chat-panel-skeleton-block",e.appendChild(o)}break}this._panelEl.appendChild(e),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._syncDividerPreview(),this._emitHostShellSync()}updatePanelTopBar(t,e,a){const n=this._options.getMobileViewport?.()??!1;this._panelTopBar.update(n?!0:t,e,a);const i=this.getPanelContentElement();i&&this._syncPanelTopBarTitleFromContent(i)}getPanelTopBarTitle(){return this._panelTopBar.getTitle()}updateFavoritesBadge(t){this._favBadgeEl&&(t>0?(this._favBadgeEl.textContent=t>99?"99+":String(t),this._favBadgeEl.style.display=""):this._favBadgeEl.style.display="none")}clearPanel(){this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,this._panelEl.innerHTML="",this._resetPanelAiZoneElement(),this._panelEl.appendChild(this._panelTopBar.getElement()),this._panelEl.appendChild(this._panelAiZoneEl),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._panelTopBar.setActions(null),this._panelVisible=!1,this._panelEl.classList.remove("gengage-chat-panel--visible","gengage-chat-panel--collapsed"),this.root.classList.remove("gengage-chat-drawer--with-panel"),this._dividerEl.classList.add("gengage-chat-panel-divider--hidden"),this._dividerPreviewEnabled=!1,this._syncDividerPreview(),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="none"),this.setComparisonDockContent(null),this._emitHostShellSync()}setComparisonDockContent(t){this._comparisonDockSlotEl.replaceChildren(),t&&this._comparisonDockSlotEl.appendChild(t)}hideMobilePanel(){this._panelVisible&&(this._panelVisible=!1,this._panelEl.classList.remove("gengage-chat-panel--visible"),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="flex"),this._emitHostShellSync())}_showMobilePanelFromBtn(){this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this._reopenPanelBtn&&(this._reopenPanelBtn.style.display="none"),this._emitHostShellSync())}expandPanel(){this._panelCollapsed=!1,this._panelEl.classList.remove("gengage-chat-panel--collapsed"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._syncDividerPreview(),this._emitHostShellSync()}setForceExpanded(){this._panelCollapsed=!1,this._panelEl.classList.remove("gengage-chat-panel--collapsed"),this._panelVisible||(this._panelVisible=!0,this._panelEl.classList.add("gengage-chat-panel--visible"),this.root.classList.add("gengage-chat-drawer--with-panel")),this._dividerEl.classList.remove("gengage-chat-panel-divider--hidden"),this._syncDividerPreview(),this._emitHostShellSync()}_smoothScrollPanelListToTop(){const t=this._panelEl;if(typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches??!1)){t.scrollTop=0;return}this._panelListScrollAnimToken+=1;const e=this._panelListScrollAnimToken;requestAnimationFrame(()=>{if(e!==this._panelListScrollAnimToken)return;const a=Math.max(0,t.scrollHeight-t.clientHeight);if(a<=0)return;const n=Math.min(160,Math.max(48,a*.28));t.scrollTop=n;const i=Math.min(720,Math.max(380,320+Math.sqrt(n)*28)),r=performance.now(),o=d=>1-(1-d)**5,c=d=>{if(e!==this._panelListScrollAnimToken)return;const l=d-r,p=Math.min(1,l/i);t.scrollTop=n*(1-o(p)),p<1?requestAnimationFrame(c):t.scrollTop=0};requestAnimationFrame(c)})}_updateScrollAffordance(){const t=this._panelEl,e=t.scrollTop+t.clientHeight>=t.scrollHeight-10;t.classList.toggle("gengage-chat-panel--has-scroll",!e&&t.scrollHeight>t.clientHeight),t.classList.toggle("gengage-chat-panel--scrolled",t.scrollTop>88)}_setupHorizontalSwipe(t){let e=0,a=0;const n=r=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=r.touches[0];o&&(e=o.clientX,a=o.clientY)},i=r=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=r.changedTouches[0];if(!o)return;const c=o.clientX-e,d=o.clientY-a;Math.abs(c)>50&&Math.abs(c)>Math.abs(d)*2&&(this.togglePanel(),this._onPanelToggle?.())};t.addEventListener("touchstart",n,{passive:!0}),t.addEventListener("touchend",i,{passive:!0}),this._cleanups.push(()=>{t.removeEventListener("touchstart",n),t.removeEventListener("touchend",i)})}togglePanel(){this.setPanelCollapsed(!this._panelCollapsed)}isPanelCollapsed(){return this._panelCollapsed}setPanelCollapsed(t){this._panelCollapsed=t,t?this._panelEl.classList.add("gengage-chat-panel--collapsed"):this._panelEl.classList.remove("gengage-chat-panel--collapsed");const e=this._dividerEl.querySelector(".gengage-chat-panel-divider-toggle");e&&(e.textContent=t?"«":"»"),this._syncDividerPreview()}setDividerPreviewEnabled(t){this._dividerPreviewEnabled=t,this._syncDividerPreview()}persistPanelState(t){try{const e=`gengage:panel:${t}`;this._panelCollapsed?sessionStorage.setItem(e,"collapsed"):sessionStorage.removeItem(e)}catch{}}restorePanelState(t){try{const e=`gengage:panel:${t}`;if(sessionStorage.getItem(e)==="collapsed")return this._panelCollapsed=!0,!0}catch{}return!1}_createLoadingSequence(t,e,a,n){const i=document.createElement("div");i.className=`${n} gds-progress-loader ${t==="chat"?"gds-progress-loader-chat":"gds-progress-loader-panel"}`,i.dataset.gengagePart=a,i.setAttribute("role","status"),i.setAttribute("aria-live","polite");const r=document.createElement("span");r.className=t==="chat"?"gengage-chat-typing-text gds-progress-label":"gengage-chat-panel-loading-label gds-progress-label",i.appendChild(r);const o=document.createElement("span");o.className=t==="chat"?"gengage-chat-typing-dots gds-progress-dots":"gds-progress-dots",o.setAttribute("aria-hidden","true");for(let d=0;d<3;d++){const l=document.createElement("span");l.className="gds-progress-dot",o.appendChild(l)}i.appendChild(o);const c={labelEl:r,steps:[],index:0,intervalId:null};return this._applyLoadingSteps(c,e),{root:i,binding:c}}_applyLoadingSteps(t,e,a=!1){const n=e.map(r=>r.trim()).filter(Boolean).slice(-3),i=[this.i18n.loadingMessage];t.steps=n.length>0?n:i,this._clearLoadingBindingInterval(t),t.index=a?t.steps.length-1:0,t.labelEl.textContent=t.steps[t.index],!a&&t.steps.length>1&&(t.intervalId=setInterval(()=>{if(t.index>=t.steps.length-1){this._clearLoadingBindingInterval(t);return}t.index+=1,t.labelEl.textContent=t.steps[t.index],t.index>=t.steps.length-1&&this._clearLoadingBindingInterval(t)},ha))}_clearLoadingBindingInterval(t){t?.intervalId&&(clearInterval(t.intervalId),t.intervalId=null)}_destroyLoadingBinding(t){this._clearLoadingBindingInterval(t)}_updateSendEnabled(){if(this._sendStopHandler){this.sendBtn.disabled=!1;return}const t=this.inputEl.value.trim().length>0||this._pendingAttachment!==null;this.sendBtn.disabled=!t}_renderSendButtonIcon(t){this.sendBtn.innerHTML=t==="stop"?'<span class="gengage-chat-send-stop-icon" aria-hidden="true"></span>':'<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/></svg>'}_submit(){const t=this.inputEl.value.trim(),e=this._pendingAttachment;if(this._sendStopHandler){const a=this._sendStopHandler;if(this.hideStopButton(),a(),!t&&!e)return}else if(!t&&!e)return;this.onSend(t,e??void 0),this.inputEl.value="",this.inputEl.style.height="auto",this.clearAttachment(),this._updateSendEnabled()}_toggleVoice(){if(this._voiceInput)if(this._voiceInput.state==="listening"){const t=this._voiceInput.stop();t.trim()&&(this.inputEl.value=t,this._submit())}else this.inputEl.value="",this._voiceInput.start()}lockScrollForRestore(){this._scrollLockedUntil=Date.now()+500}_scrollToBottom(t=!1){!t&&this._userScrolledUp||!t&&this._options.presentation?.shouldBlockSoftAutoScroll?.()||!t&&Date.now()<this._scrollLockedUntil||requestAnimationFrame(()=>{this.messagesEl.scrollTop=this.messagesEl.scrollHeight,this._userScrolledUp=!1})}scrollToBottomIfNeeded(){this._scrollToBottom(!1)}updateBotMessage(t,e,a,n){const i=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(t)}"]`);if(!i)return;let r=i.querySelector(".gengage-chat-bubble-text");r||(r=document.createElement("div"),r.className="gengage-chat-bubble-text",i.appendChild(r)),a==="photo_analysis"?(i.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(r,e,n)):(i.classList.remove("gengage-chat-bubble--photo-analysis"),r.innerHTML=E.sanitizeHtml(e)),this._scrollToBottom(!1)}markFirstBotMessage(t){this._firstBotMessageIds.add(t);const e=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(t)}"]`);e&&e.classList.add("gengage-chat-bubble--first")}scrollToLastThread(){const t=this.messagesEl.querySelectorAll("[data-thread-id]");if(t.length===0){this._scrollToBottom(!0);return}const e=t[t.length-1].getAttribute("data-thread-id");if(!e){this._scrollToBottom(!0);return}this._programmaticScrollUntil=Date.now()+700;const a=this.messagesEl.querySelector(`[data-thread-id="${CSS.escape(e)}"]`);a?requestAnimationFrame(()=>{a.scrollIntoView({block:"start",behavior:"auto"}),this._userScrolledUp=!1}):this._scrollToBottom(!0)}scrollThreadIntoView(t,e="smooth"){const a=this.messagesEl.querySelectorAll(`[data-thread-id="${CSS.escape(t)}"]`);let n=null;for(let r=0;r<a.length;r++){const o=a[r];if(o instanceof HTMLElement&&!o.classList.contains("gengage-chat-bubble--presentation-collapsed")){n=o;break}}if(!n&&a.length>0&&a[0]instanceof HTMLElement&&(n=a[0]),!n)return!1;const i=Math.max(n.offsetTop-20,0);return this._programmaticScrollUntil=Date.now()+700,this._scrollMessagesTo(i,e),!0}scrollToBottomPresentation(t="smooth"){this._programmaticScrollUntil=Date.now()+700,requestAnimationFrame(()=>{this._scrollMessagesTo(this.messagesEl.scrollHeight,t),this._userScrolledUp=!1})}_scrollMessagesTo(t,e){if(typeof this.messagesEl.scrollTo=="function"){this.messagesEl.scrollTo({top:t,behavior:e});return}this.messagesEl.scrollTop=t}setPresentationFocus(t){this._presentationFocusThreadId=t,this._applyPresentationCollapsed()}setFormerMessagesButtonVisible(t){this._formerMessagesBtn&&(this._formerMessagesBtn.style.display=t?"":"none")}setInputPlaceholder(t){this.inputEl.placeholder=t}_applyPresentationCollapsed(){const t=this._presentationFocusThreadId;this.messagesEl.querySelectorAll("[data-thread-id]").forEach(e=>{const a=e.dataset.threadId;a&&(t&&a!==t?e.classList.add("gengage-chat-bubble--presentation-collapsed"):e.classList.remove("gengage-chat-bubble--presentation-collapsed"))})}refreshPresentationCollapsed(){this._presentationFocusThreadId&&this._applyPresentationCollapsed()}setInputAreaChips(t){if(this._inputChipsEl.innerHTML="",t.length===0){this._inputChipsEl.style.display="none";return}this._inputChipsEl.style.display="";for(const e of t){const a=document.createElement("button");if(a.className="gengage-chat-input-chip gds-chip",a.type="button",e.icon){const i=Ke[e.icon]??'<svg viewBox="0 0 16 16" class="gengage-chat-icon"><path d="M3 8h10M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',r=document.createElement("span");r.className="gengage-chat-input-chip-icon",r.innerHTML=i,a.appendChild(r)}const n=document.createElement("span");n.textContent=e.label,a.appendChild(n),a.addEventListener("click",()=>e.onAction()),this._inputChipsEl.appendChild(a)}}clearInputAreaChips(){this._inputChipsEl.innerHTML="",this._inputChipsEl.style.display="none"}setThumbnails(t){this._thumbnailsColumn.setEntries(t),t.length>0?this._thumbnailsColumn.show():this._thumbnailsColumn.hide(),this._renderDividerPreview(t),this._syncDividerPreview()}hideThumbnails(){this._thumbnailsColumn.hide(),this._renderDividerPreview([]),this._syncDividerPreview()}_renderDividerPreview(t){this._dividerPreviewEl.innerHTML="";const e=new Set,a=[];for(let n=t.length-1;n>=0;n--){const i=t[n];if(!(!i||e.has(i.sku)||!E.isSafeImageUrl(i.imageUrl))&&(e.add(i.sku),a.push(i),a.length>=3))break}a.reverse();for(const n of a){const i=document.createElement("span");i.className="gengage-chat-panel-divider-preview-thumb";const r=document.createElement("img");r.className="gengage-chat-panel-divider-preview-img",r.src=n.imageUrl,r.alt="",r.width=48,r.height=48,i.appendChild(r),this._dividerPreviewEl.appendChild(i)}}_syncDividerPreview(){const t=this._dividerPreviewEl.childElementCount>0,e=this._dividerPreviewEnabled&&t&&this._panelCollapsed&&!this._dividerEl.classList.contains("gengage-chat-panel-divider--hidden");this._dividerEl.classList.toggle("gengage-chat-panel-divider--preview-active",e)}trapFocus(){this._previouslyFocusedElement=document.activeElement,this.releaseFocus();const t=e=>{if(e.key!=="Tab")return;const a=Array.from(this.root.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(l=>{const p=getComputedStyle(l);return l.hidden||l.getAttribute("aria-hidden")==="true"||p.display==="none"||p.visibility==="hidden"?!1:l.getClientRects().length>0});if(a.length===0)return;const n=a[0],i=a[a.length-1],r=e.composedPath().find(l=>l instanceof HTMLElement&&this.root.contains(l))??null,o=this.root.getRootNode(),c=r??(o instanceof ShadowRoot&&o.activeElement instanceof HTMLElement?o.activeElement:document.activeElement instanceof HTMLElement?document.activeElement:null),d=c&&this.root.contains(c)?c:null;e.shiftKey?(d===n||!this.root.contains(d))&&(e.preventDefault(),i.focus()):(d===i||!this.root.contains(d))&&(e.preventDefault(),n.focus())};this._focusTrapHandler=t,this.root.addEventListener("keydown",t)}releaseFocus(){if(this._focusTrapHandler&&(this.root.removeEventListener("keydown",this._focusTrapHandler),this._focusTrapHandler=null),this._previouslyFocusedElement){try{this._previouslyFocusedElement.focus()}catch{}this._previouslyFocusedElement=null}}flashCartBadge(){this._cartBtn&&(this._cartBtn.classList.remove("gengage-chat-header-btn--cart-flash"),this._cartBtn.offsetWidth,this._cartBtn.classList.add("gengage-chat-header-btn--cart-flash"),this._cartBtn.addEventListener("animationend",()=>{this._cartBtn?.classList.remove("gengage-chat-header-btn--cart-flash")},{once:!0}))}showCartToast(t){this.root.querySelector(".gengage-chat-cart-toast")?.remove();const e=document.createElement("div");e.className="gengage-chat-cart-toast",e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.textContent=t,this.root.appendChild(e),e.offsetWidth,e.classList.add("gengage-chat-cart-toast--visible"),setTimeout(()=>{e.classList.remove("gengage-chat-cart-toast--visible"),setTimeout(()=>e.remove(),300)},2500)}destroy(){Ye(null),this.releaseFocus(),this._resizeRafId!==null&&(cancelAnimationFrame(this._resizeRafId),this._resizeRafId=null),this._destroyLoadingBinding(this._typingLoadingBinding),this._typingLoadingBinding=null,this._destroyLoadingBinding(this._panelLoadingBinding),this._panelLoadingBinding=null,this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,this._closeAttachMenu();for(const t of this._cleanups)t();this._cleanups.length=0,this._voiceInput?.destroy(),this._voiceInput=null}},xt=["beauty_consulting","watch_expert","booking"],va=["shopping",...xt];function xa(t){return typeof t=="string"&&va.includes(t)?t:null}function Ve(t){return t==null||typeof t!="object"||Array.isArray(t)?null:t}function wa(...t){for(const e of t)if(typeof e=="string"){const a=e.trim();if(a.length>0)return a}}function ya(t){const e=Ve(t);if(!e)return null;const a=wa(e.assistant_mode,e.assistantMode);return!a||!xt.includes(a)?null:a}var _a=class{constructor(){this._mode="shopping",this._uiHints=null}get mode(){return this._mode}set mode(t){this._mode=t}get uiHints(){return this._uiHints}set uiHints(t){this._uiHints=t}get isShopping(){return this._mode==="shopping"}get isBeautyConsulting(){return this._mode==="beauty_consulting"}get isChoicePrompterHidden(){return this._uiHints?.hide_choice_prompter===!0}applyUiHints(t,e,a){const n=r=>this._uiHints?.[r]===!0;t?.setAttachmentControlsVisible(!n("hide_attachment_controls")),n("hide_choice_prompter")&&a?.();const i=typeof this._uiHints?.input_placeholder=="string"?this._uiHints.input_placeholder:void 0;i?t?.setInputPlaceholder(i):t?.setInputPlaceholder(e)}handleRedirect(t){E.debugLog("mode","redirect metadata received",t);const e=ya(t);return e?(this.switchMode(e),!0):!1}switchMode(t){const e=this._mode;this._mode=t,E.debugLog("mode","assistant mode switched",{from:e,to:t})}updateFromContext(t){const e=t.assistant_mode;if(typeof e=="string"&&e){const a=xa(e);a?this._mode=a:E.debugLog("mode","ignoring unrecognised assistant_mode from context",e)}else e===null&&(this._mode="shopping");this._uiHints=Ve(t.ui_hints)??null}reset(){const t=this._mode!=="shopping";return this._mode="shopping",this._uiHints=null,t}resolveAttachmentActionType(){return this._mode==="beauty_consulting"?"user_message":"findSimilar"}shouldCondenseThinking(){return this._mode!=="shopping"}};function ka(){return{streamIncludedBeautyPhotoStep:!1,pendingPhotoStepSkip:!1}}function Ca(t,e,a,n,i){if(t==="PhotoAnalysisCard"){const r=vt(e);return r?(i.photoAnalysis=r,i.renderHint="photo_analysis",n.ensureRendered(),n.cancelTypewriter(),n.drawer?.updateBotMessage(i.id,i.content??"","photo_analysis",i.photoAnalysis),!0):(E.debugLog("beauty","PhotoAnalysisCard parse failed, falling through to generic renderer",e),!1)}if(t==="BeautyPhotoStep"){a.streamIncludedBeautyPhotoStep=!0;const r=sa(e);return n.drawer?.setBeautyPhotoStepCard({visible:!0,...r,onSkip:()=>{n.drawer?.setBeautyPhotoStepCard({visible:!1}),n.streamDone?n.sendSkipMessage():a.pendingPhotoStepSkip=!0}}),!0}return!1}function Sa(t){return t.renderHint==="photo_analysis"}function Ea(t,e){t.streamIncludedBeautyPhotoStep||e.drawer?.setBeautyPhotoStepCard({visible:!1}),t.pendingPhotoStepSkip&&(t.pendingPhotoStepSkip=!1,e.sendSkipMessage())}function Pa(t,e){t.pendingPhotoStepSkip&&(t.pendingPhotoStepSkip=!1,e.sendSkipMessage())}var Aa=`<svg width="28" height="28" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<rect x="3" y="7" width="18" height="13" rx="3" fill="currentColor" opacity="0.15"/>
|
|
3
3
|
<rect x="3" y="7" width="18" height="13" rx="3" stroke="currentColor" stroke-width="1.5"/>
|
|
4
4
|
<circle cx="9" cy="13" r="1.5" fill="currentColor"/>
|
|
@@ -8,8 +8,8 @@ const g=require("./schemas-B6RjqKrg.cjs"),S=require("./ga-datalayer-DkfsAHf9.cjs
|
|
|
8
8
|
<circle cx="12" cy="3" r="1" fill="currentColor"/>
|
|
9
9
|
<path d="M1 12V14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
10
10
|
<path d="M23 12V14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
11
|
-
</svg>`;function La(t){const e=document.createElement("div");e.className="gengage-chat-launcher-container",e.dataset.gengagePart="chat-launcher-container";const a=document.createElement("div");a.className="gengage-chat-launcher-content-area",a.dataset.gengagePart="chat-launcher-content-primary",e.appendChild(a);const n=document.createElement("button");if(n.type="button",n.setAttribute("aria-label",t.ariaLabel??"Open chat"),t.imageUrl){n.className="gengage-chat-launcher gengage-chat-launcher--image-mode";const r=document.createElement("img");r.src=t.imageUrl,r.alt="",r.draggable=!1,n.appendChild(r)}else n.className="gengage-chat-launcher",n.innerHTML=t.svgMarkup??Aa;if(n.dataset.gengagePart="chat-launcher-button",t.tooltip!==void 0){const r=document.createElement("span");r.className="gengage-chat-launcher-tooltip",r.dataset.gengagePart="chat-launcher-tooltip",r.textContent=t.tooltip,n.appendChild(r)}t.hideMobile&&(e.dataset.hideMobile="1"),t.mobileBreakpoint!==void 0&&(e.dataset.mobileBreakpoint=String(t.mobileBreakpoint)),n.addEventListener("click",t.onClick),e.appendChild(n);const i=document.createElement("div");return i.className="gengage-chat-launcher-content-area-bottom",i.dataset.gengagePart="chat-launcher-content-secondary",e.appendChild(i),{container:e,button:n,contentArea:a,contentAreaBottom:i}}var Ta=new Set(["audio/ogg","audio/mpeg","audio/mp3","audio/wav","audio/webm","audio/aac","audio/mp4"]),wt=new Set;function Be(t){t.pause(),t.removeAttribute("src"),t.load(),wt.delete(t)}function Ia(t,e="audio/ogg"){const a=e.split(";")[0].trim();if(!Ta.has(a))return null;try{const n=new Audio(`data:${e};base64,${t}`);return wt.add(n),n.addEventListener("ended",()=>Be(n),{once:!0}),n.play().catch(()=>{Be(n)}),{stop:()=>Be(n)}}catch{return null}}var Na={screen_size:"Screen Size",weight:"Weight",battery_capacity:"Battery Capacity",battery_life:"Battery Life",storage:"Storage",memory:"Memory",ram:"RAM",processor:"Processor",camera:"Camera",resolution:"Resolution",display_type:"Display Type",refresh_rate:"Refresh Rate",color:"Color",material:"Material",dimensions:"Dimensions",warranty:"Warranty",connectivity:"Connectivity",water_resistance:"Water Resistance",operating_system:"Operating System",brand:"Brand",model:"Model",price:"Price",energy_class:"Energy Class",noise_level:"Noise Level",capacity:"Capacity",power:"Power",voltage:"Voltage",width:"Width",height:"Height",depth:"Depth"};function Ma(t,e){return e?.[t]??Na[t]??t.replace(/_/g," ").replace(/^\w/,a=>a.toUpperCase())}function Ze(t){if(typeof t!="string")return!1;const e=Number(t);return Number.isFinite(e)&&e>0}function Ba(t){const e=typeof t=="number"?t:typeof t=="string"?Number(t):NaN;return Number.isFinite(e)&&e>0}function za(t){const e=typeof t=="number"?t:Number(t),a=document.createElement("div");a.className="gengage-chat-comparison-recommended-rating",a.innerHTML='<span class="gengage-chat-comparison-recommended-rating-icon" aria-hidden="true"><svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg></span>';const n=document.createElement("span");return n.className="gengage-chat-comparison-recommended-rating-value",n.textContent=e.toFixed(1),a.appendChild(n),a}function Ha(t){const{recommended:e,products:a,attributes:n,highlights:i,specialCases:r,onProductClick:o,i18n:c}=t,d=document.createElement("div");if(d.className="gengage-chat-comparison",d.dataset.gengagePart="comparison-dialog",d.setAttribute("role","dialog"),d.setAttribute("aria-label",c?.comparisonHeading??"Comparison Results"),e){const l=document.createElement("article");l.className="gengage-chat-comparison-recommended gds-card",l.dataset.gengagePart="comparison-recommended-card";const p=document.createElement("div");p.className="gengage-chat-comparison-recommended-label",p.textContent=c?.recommendedChoiceLabel??"Recommended Choice",l.appendChild(p);const s=document.createElement("div");s.className="gengage-chat-comparison-recommended-body",s.classList.add("gds-clickable"),s.tabIndex=0,s.setAttribute("role","button"),s.setAttribute("aria-label",e.name);const u=document.createElement("div");if(u.className="gengage-chat-comparison-recommended-media",e.imageUrl&&S.isSafeImageUrl(e.imageUrl)){const y=document.createElement("img");y.src=e.imageUrl,y.alt=e.name,y.loading="lazy",y.addEventListener("error",()=>{y.style.display="none"},{once:!0}),u.appendChild(y)}else{const y=document.createElement("div");y.className="gengage-chat-comparison-recommended-placeholder",y.setAttribute("aria-hidden","true"),u.appendChild(y)}s.appendChild(u);const h=document.createElement("div");h.className="gengage-chat-comparison-recommended-info";const w=document.createElement("div");w.className="gengage-chat-comparison-recommended-title",w.textContent=e.name,h.appendChild(w);const m=document.createElement("div");if(m.className="gengage-chat-comparison-recommended-meta",Ba(e.rating)&&m.appendChild(za(e.rating)),Ze(e.price)){const y=document.createElement("div");y.className="gengage-chat-comparison-recommended-price",y.textContent=F.formatPrice(e.price,t.pricing),m.appendChild(y)}if(m.childElementCount>0&&h.appendChild(m),t.recommendedText){const y=document.createElement("p");y.className="gengage-chat-comparison-recommended-text",y.innerHTML=S.sanitizeHtml(t.recommendedText),h.appendChild(y)}s.appendChild(h);const v=()=>{o({sku:e.sku,name:e.name})};if(s.addEventListener("click",v),s.addEventListener("keydown",y=>{y.key!=="Enter"&&y.key!==" "||(y.preventDefault(),v())}),l.appendChild(s),i.length>0){const y=document.createElement("div");y.className="gengage-chat-comparison-highlights",y.dataset.gengagePart="comparison-highlights";const M=document.createElement("div");M.className="gengage-chat-comparison-highlights-label",M.textContent=c?.highlightsLabel??"Key Highlights",y.appendChild(M);const C=document.createElement("ul");for(const L of i){const _=document.createElement("li");_.textContent=L,C.appendChild(_)}y.appendChild(C),l.appendChild(y)}d.appendChild(l)}if(t.keyDifferencesHtml){const l=document.createElement("details");l.className="gengage-chat-comparison-key-differences",l.dataset.gengagePart="comparison-key-differences";const p=document.createElement("summary");p.className="gengage-chat-comparison-key-differences-summary";const s=document.createElement("span");s.className="gengage-chat-comparison-key-differences-summary-label",s.textContent=c?.keyDifferencesLabel??"Key Differences";const u=document.createElement("span");u.className="gengage-chat-comparison-key-differences-summary-meta",u.textContent=c?.viewMoreLabel??"Show More",p.appendChild(s),p.appendChild(u),l.appendChild(p);const h=document.createElement("div");h.className="gengage-chat-comparison-key-differences-content",h.innerHTML=S.sanitizeHtml(Ra(t.keyDifferencesHtml)),l.appendChild(h),d.appendChild(l)}if(r&&r.length>0){const l=document.createElement("details");l.className="gengage-chat-comparison-special gds-evidence-card gds-evidence-card-warning",l.dataset.gengagePart="comparison-special-cases";const p=document.createElement("summary");p.textContent=c?.specialCasesLabel??"For Special Cases",l.appendChild(p);const s=document.createElement("ul");for(const u of r)Da(s,u);s.childElementCount>0&&l.appendChild(s),d.appendChild(l)}if(a.length>0&&n.length>0){const l=document.createElement("table");l.className="gengage-chat-comparison-table gds-comparison-table";const p=document.createElement("thead"),s=document.createElement("tr"),u=document.createElement("th");s.appendChild(u);for(const m of a){const v=document.createElement("th");m.sku===e?.sku&&(v.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell");const y=document.createElement("div");y.className="gengage-chat-comparison-table-header-cell gengage-chat-comparison-table-header-cell--clickable gds-clickable",y.tabIndex=0,y.setAttribute("role","button"),y.setAttribute("aria-label",m.name),y.title=m.name;const M=()=>{o({sku:m.sku,name:m.name})};if(y.addEventListener("click",M),y.addEventListener("keydown",L=>{L.key!=="Enter"&&L.key!==" "||(L.preventDefault(),M())}),m.imageUrl&&S.isSafeImageUrl(m.imageUrl)){const L=document.createElement("img");L.src=m.imageUrl,L.alt=m.name,L.loading="lazy",L.addEventListener("error",()=>{L.style.display="none"},{once:!0}),y.appendChild(L)}else{const L=document.createElement("div");L.className="gengage-chat-comparison-table-header-img-placeholder",L.setAttribute("aria-hidden","true"),y.appendChild(L)}const C=document.createElement("div");if(C.className="gengage-chat-comparison-table-product-name",C.textContent=m.name,y.appendChild(C),Ze(m.price)){const L=document.createElement("div");L.className="gengage-chat-comparison-table-price",L.textContent=F.formatPrice(m.price,t.pricing),y.appendChild(L)}v.appendChild(y),s.appendChild(v)}p.appendChild(s),l.appendChild(p);const h=document.createElement("tbody");for(const m of n){const v=document.createElement("tr"),y=document.createElement("td");y.className="gengage-chat-comparison-label",y.textContent=Ma(m.label,c?.criteriaLabels),v.appendChild(y);for(let M=0;M<m.values.length;M++){const C=document.createElement("td");a[M]?.sku===e?.sku&&(C.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell"),C.textContent=m.values[M]??"",v.appendChild(C)}h.appendChild(v)}l.appendChild(h);const w=document.createElement("div");w.className="gengage-chat-comparison-table-wrapper",w.dataset.gengagePart="comparison-table-wrapper",w.appendChild(l),d.appendChild(w)}return d.addEventListener("keydown",l=>{if(l.key!=="Tab")return;const p=d.querySelectorAll('button, [href], input, [tabindex]:not([tabindex="-1"])');if(p.length===0)return;const s=p[0],u=p[p.length-1];l.shiftKey&&document.activeElement===s?(l.preventDefault(),u.focus()):!l.shiftKey&&document.activeElement===u&&(l.preventDefault(),s.focus())}),d}function Ra(t){if(/<[uo]l[\s>]/i.test(t)||/<li[\s>]/i.test(t))return t;const e=t.split(`
|
|
12
|
-
`).filter(a=>a.trim());return e.length<=1?t:"<ul>"+e.map(a=>`<li>${a.trim()}</li>`).join("")+"</ul>"}function Da(t,e){const a=S.sanitizeHtml(e);if(!a)return;const n=document.createElement("template");n.innerHTML=a;const i=Array.from(n.content.querySelectorAll("li"));if(i.length>0){for(const o of i){const c=document.createElement("li");c.innerHTML=S.sanitizeHtml(o.innerHTML),t.appendChild(c)}return}const r=document.createElement("li");Fa(e)?r.innerHTML=a:r.textContent=e,t.appendChild(r)}function Fa(t){return/<\/?[a-z][\s\S]*>/i.test(t)}function ye(t,e=18){const a="http://www.w3.org/2000/svg",n=document.createElementNS(a,"svg");n.setAttribute("width",String(e)),n.setAttribute("height",String(e)),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","2"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("aria-hidden","true");for(const i of t){const r=document.createElementNS(a,"path");r.setAttribute("d",i),n.appendChild(r)}return n}var ze="General",Xe=220,Ua=6;function ja(t){if(typeof t!="string")return[ze];const e=t.split(/[,;|/]+/).map(a=>a.trim().replace(/\s+/g," ")).filter(a=>a.length>0);return e.length===0?[ze]:Array.from(new Set(e.map(a=>a.toLocaleLowerCase()))).map(a=>e.find(n=>n.toLocaleLowerCase()===a)??ze)}function Oa(t){return t==="positive"||t==="negative"||t==="neutral"?t:"neutral"}function qa(t){if(typeof t!="string")return"";const e=t.trim().replace(/\s+/g," ");return e.length<=Xe?e:`${e.slice(0,Xe-3).trimEnd()}...`}function Va(t){return t.positive>t.negative?"positive":t.negative>t.positive?"negative":"neutral"}function $a(t){return ye(t==="positive"?["M7 17 17 7","M7 7h10v10"]:t==="negative"?["M7 7 17 17","M17 7v10H7"]:["M5 12h14"],14)}function Ga(t,e="1 customer mentions",a="customers mention"){return t===1?e:`${t} ${a}`}function Wa(t,e){const a=document.createElement("div");a.className="gengage-chat-review-highlights";const n=t.props?.reviews;if(!Array.isArray(n)||n.length===0){const m=document.createElement("div");return m.className="gengage-chat-review-empty",m.textContent=e?.emptyReviewsMessage??"No review summary found.",a.appendChild(m),a}const i=n.filter(m=>m!==null&&typeof m=="object"),r=new Map;for(const m of i){const v=Oa(m.review_class),y=qa(m.review_text),M=ja(m.review_tag);for(const C of M){const L=C.toLocaleLowerCase();let _=r.get(L);if(_||(_={key:L,label:C,mentions:0,positive:0,negative:0,neutral:0,snippets:[]},r.set(L,_)),_.mentions+=1,v==="positive"?_.positive+=1:v==="negative"?_.negative+=1:_.neutral+=1,y.length>0&&_.snippets.length<Ua&&!_.snippets.some(N=>N.text===y)){const N={text:y,tone:v};m.review_rating!==void 0&&String(m.review_rating).length>0&&(N.rating=m.review_rating),_.snippets.push(N)}}}const o=Array.from(r.values()).sort((m,v)=>v.mentions!==m.mentions?v.mentions-m.mentions:m.label.localeCompare(v.label));if(o.length===0){const m=document.createElement("div");return m.className="gengage-chat-review-empty",m.textContent=e?.emptyReviewsMessage??"No review summary found.",a.appendChild(m),a}const c=(e?.reviewFilterPositive??"positive").toLowerCase(),d=(e?.reviewFilterNegative??"negative").toLowerCase(),l=document.createElement("div");l.className="gengage-chat-review-subjects-heading",l.textContent=e?.reviewSubjectsHeading??"Select to learn more",a.appendChild(l);let p=o[0]?.key??null;const s=document.createElement("div");s.className="gengage-chat-review-subjects gds-toolbar gds-toolbar-compact";const u=document.createElement("section");u.className="gengage-chat-review-detail gds-evidence-card";const h=()=>{for(;u.firstChild;)u.removeChild(u.firstChild);if(!p)return;const m=o.find(C=>C.key===p);if(!m)return;const v=document.createElement("div");v.className="gengage-chat-review-detail-meta";const y=document.createElement("span");if(y.className="gengage-chat-review-detail-mentions",y.textContent=`${Ga(m.mentions,e?.reviewCustomersMentionSingular,e?.reviewCustomersMentionPlural)} "${m.label}"`,v.appendChild(y),m.positive>0){const C=document.createElement("span");C.className="gengage-chat-review-detail-positive",C.textContent=`${m.positive} ${c}`,v.appendChild(C)}if(m.negative>0){const C=document.createElement("span");C.className="gengage-chat-review-detail-negative",C.textContent=`${m.negative} ${d}`,v.appendChild(C)}u.appendChild(v);const M=document.createElement("div");M.className="gengage-chat-review-snippets";for(const C of m.snippets){const L=document.createElement("article");L.className="gengage-chat-review-snippet",L.dataset.tone=C.tone;const _=document.createElement("div");if(_.className="gengage-chat-review-snippet-text",_.textContent=`"${C.text}"`,L.appendChild(_),C.rating!==void 0&&String(C.rating).length>0){const N=document.createElement("div");N.className="gengage-chat-review-snippet-rating",N.textContent=`★ ${String(C.rating)}`,L.appendChild(N)}M.appendChild(L)}u.appendChild(M)},w=()=>{for(const m of s.querySelectorAll(".gengage-chat-review-subject")){const v=m.dataset.subjectKey===p;m.classList.toggle("gengage-chat-review-subject--active",v),m.classList.toggle("gds-chip-active",v),m.setAttribute("aria-pressed",String(v))}};for(const m of o){const v=Va(m),y=document.createElement("button");y.type="button",y.className="gengage-chat-review-subject gds-chip",y.dataset.subjectKey=m.key,y.dataset.tone=v;const M=document.createElement("span");M.className="gengage-chat-review-subject-icon",M.appendChild($a(v)),y.appendChild(M);const C=document.createElement("span");C.className="gengage-chat-review-subject-label",C.textContent=m.label,y.appendChild(C);const L=document.createElement("span");L.className="gengage-chat-review-subject-count",L.textContent=`(${m.mentions})`,y.appendChild(L),y.addEventListener("click",()=>{p=m.key,w(),h()}),s.appendChild(y)}return a.appendChild(s),w(),h(),a.appendChild(u),a}function Ya(t){if(!t)return;const e=t.discountReason??t.discount_reason??t.campaignReason??t.campaign_reason;if(typeof e!="string")return;const a=e.trim();return a.length>0?a:void 0}function ve(t,e){if(t.productPriceUi?.showCampaignReason===!0)return Ya(e)}function _e(t,e){const a=e?.originalPriceStyle??e?.price_original_style;if(a==="inline"||a==="strikethrough")return a;const n=t.productPriceUi?.originalPriceStyle;return n==="inline"||n==="strikethrough"?n:"strikethrough"}function Ie(t){const e=document.createElement("div");return e.className="gengage-chat-campaign-reason",e.textContent=t,e}function Ne(t,e){for(const n of["campaignReasonLogoUrl","campaign_reason_logo_url","discountBadgeLogoUrl","discount_badge_logo_url"]){const i=e?.[n];if(typeof i=="string"&&i.trim()){const r=i.trim();if(S.isSafeImageUrl(r))return r}}const a=t.productPriceUi?.campaignBadgeLogoUrl;if(typeof a=="string"&&a.trim()){const n=a.trim();if(S.isSafeImageUrl(n))return n}}function Me(t){const e=document.createElement("div");if(e.className="gengage-chat-campaign-price-badge",e.dataset.gengagePart="campaign-price-badge",t.logoUrl){const r=document.createElement("div");r.className="gengage-chat-campaign-price-badge__logo";const o=document.createElement("img");o.alt="",o.loading="lazy",o.src=t.logoUrl,F.addImageErrorHandler(o),r.appendChild(o),e.appendChild(r)}const a=document.createElement("div");a.className="gengage-chat-campaign-price-badge__body";const n=document.createElement("div");n.className="gengage-chat-campaign-price-badge__reason",n.textContent=t.reasonText;const i=document.createElement("span");return i.className="gengage-chat-campaign-price-badge__sale",i.textContent=t.salePriceFormatted,a.appendChild(n),a.appendChild(i),e.appendChild(a),e}function yt(t){const e=t.product.sku;if(typeof e=="string"&&e.length>0)return e;const a=t.action?.payload;return a&&typeof a=="object"&&"sku"in a&&typeof a.sku=="string"?a.sku:null}var Ka={winner:"roleWinner",best_value:"roleBestValue",best_alternative:"roleBestAlternative"};function Qe(t,e){if(!t||!e)return null;const a=Ka[t];return a?e[a]??t:t}function Za(t){const e=t.rating,a=typeof e=="number"?e:typeof e=="string"?parseFloat(e):NaN;if(Number.isNaN(a)||a<=0)return null;const n=document.createElement("div");n.className="gengage-chat-ai-toppick-rating",n.dataset.gengagePart="ai-top-pick-rating";const i=document.createElement("span");i.className="gengage-chat-ai-toppick-rating-icon",i.setAttribute("aria-hidden","true"),i.innerHTML='<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg>';const r=document.createElement("span");return r.className="gengage-chat-ai-toppick-rating-value",r.textContent=a.toFixed(1),n.appendChild(i),n.appendChild(r),n}function Xa(t,e,a,n,i){const r=document.createElement("div");r.className="gengage-chat-ai-toppick-media",r.dataset.gengagePart="ai-top-pick-media";const o=t.product,c=o.imageUrl;if(c&&S.isSafeImageUrl(c)){const l=document.createElement("img");l.className="gengage-chat-ai-toppick-img",l.dataset.gengagePart="ai-top-pick-image",S.safeSetAttribute(l,"src",c),l.loading="lazy",l.alt=e,F.addImageErrorHandler(l),r.appendChild(l)}const d=yt(t);if(d&&!i?.skipOverlayActions){const l=document.createElement("div");if(l.className="gengage-chat-product-card-img-actions",n.onFavoriteToggle){const h=document.createElement("button");h.className="gengage-chat-favorite-btn",h.type="button",h.dataset.gengageFavoriteSku=d,h.setAttribute("aria-label",n.i18n?.addToFavoritesLabel??"Add to favorites");const w=n.favoritedSkus?.has(d)??!1;w&&h.classList.add("gengage-chat-favorite-btn--active"),h.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${w?"currentColor":"none"}" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>`,h.addEventListener("click",m=>{m.stopPropagation(),h.classList.toggle("gengage-chat-favorite-btn--active"),h.querySelector("svg")?.setAttribute("fill",h.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),n.onFavoriteToggle?.(d,o)}),l.appendChild(h)}const p=n.i18n?.findSimilarLabel??"Find Similar",s=document.createElement("button");s.className="gengage-chat-find-similar-pill",s.type="button",s.setAttribute("aria-label",p),s.dataset.tooltip=p,s.innerHTML='<span class="gengage-chat-find-similar-pill-icon" aria-hidden="true"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M16 16l5.5 5.5"/></svg></span>';const u=document.createElement("span");u.className="gengage-chat-find-similar-pill-text",u.textContent=p,s.appendChild(u),s.addEventListener("click",h=>{h.stopPropagation(),n.onAction({title:p,type:"findSimilar",payload:{sku:d,...c?{image_url:c}:{}}})}),l.appendChild(s),r.appendChild(l)}a.appendChild(r)}function Qa(t,e,a){const n=t.price,i=t.originalPrice;if(!n)return;const r=ve(a,t),o=_e(a,t),c=!!(i&&i!==n),d=!!(r&&c),l=Ne(a,t),p=document.createElement("div");if(p.className="gengage-chat-ai-toppick-price",p.dataset.gengagePart="ai-top-pick-price",d){const s=Me({reasonText:r,salePriceFormatted:F.formatPrice(n,a.pricing),...l!==void 0?{logoUrl:l}:{}});if(c&&o==="inline"){p.classList.add("gengage-chat-ai-toppick-price--inline"),p.appendChild(s);const u=document.createElement("span");u.className="gengage-chat-ai-toppick-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-ai-toppick-original-price",h.textContent=F.formatPrice(i,a.pricing),p.appendChild(u),p.appendChild(h)}else{const u=document.createElement("span");u.className="gengage-chat-ai-toppick-original-price",u.textContent=F.formatPrice(i,a.pricing),p.appendChild(u),p.appendChild(document.createTextNode(" ")),p.appendChild(s)}e.appendChild(p);return}if(c&&o==="inline"){p.classList.add("gengage-chat-ai-toppick-price--inline");const s=document.createElement("span");s.className="gengage-chat-ai-toppick-price-current",s.textContent=F.formatPrice(n,a.pricing);const u=document.createElement("span");u.className="gengage-chat-ai-toppick-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-ai-toppick-original-price",h.textContent=F.formatPrice(i,a.pricing),p.appendChild(s),p.appendChild(u),p.appendChild(h)}else if(c){const s=document.createElement("span");s.className="gengage-chat-ai-toppick-original-price",s.textContent=F.formatPrice(i,a.pricing),p.appendChild(s),p.appendChild(document.createTextNode(" "));const u=document.createElement("span");u.className="gengage-chat-ai-toppick-price-current",u.textContent=F.formatPrice(n,a.pricing),p.appendChild(u)}else{const s=document.createElement("span");s.className="gengage-chat-ai-toppick-price-current",s.textContent=F.formatPrice(n,a.pricing),p.appendChild(s)}if(r){const s=document.createElement("div");s.className="gengage-chat-ai-toppick-price-stack",s.appendChild(Ie(r)),s.appendChild(p),e.appendChild(s)}else e.appendChild(p)}function Ja(t,e){const a=typeof t.reason=="string"?t.reason.trim():"",n=typeof t.reviewHighlight=="string"?t.reviewHighlight.trim():"";if(!(!a&&!n)){if(a){const i=document.createElement("p");i.className="gengage-chat-ai-toppick-reason",i.dataset.gengagePart="ai-top-pick-reason",i.textContent=a,e.appendChild(i)}if(n){const i=document.createElement("div");i.className="gengage-chat-ai-toppick-review",i.dataset.gengagePart="ai-top-pick-review",i.textContent=n,e.appendChild(i)}}}function Je(t,e,a){const n=document.createElement("div");n.className=a?"gengage-chat-ai-toppick-card gengage-chat-ai-toppick-card--winner gds-card":"gengage-chat-ai-toppick-card gengage-chat-ai-toppick-card--compact gds-card",n.dataset.gengagePart=a?"ai-top-pick-card-winner":"ai-top-pick-card";const i=t.product,r=yt(t),o=i.url??"",c=i.cartCode,d=i.inStock,l=!!(r&&c&&d!==!1),p=t.action;r&&e.onProductClick?(n.classList.add("gds-clickable"),n.addEventListener("click",_=>{_.target.closest(".gengage-chat-ai-toppick-cta")||_.target.closest(".gengage-chat-favorite-btn")||_.target.closest(".gengage-chat-find-similar-pill")||e.onProductClick?.({sku:r,url:o})})):p&&(n.classList.add("gds-clickable"),n.addEventListener("click",_=>{_.target.closest(".gengage-chat-ai-toppick-cta")||_.target.closest(".gengage-chat-favorite-btn")||_.target.closest(".gengage-chat-find-similar-pill")||e.onAction(p)}));const s=i.name||"Product image",u=!a&&e.isMobile===!0,h=a?Qe(t.role,e.i18n)??e.i18n?.roleWinner??"TOP MATCH":Qe(t.role,e.i18n);if(h&&!u){const _=document.createElement("span");_.className="gengage-chat-ai-toppick-badge gds-badge",_.dataset.gengagePart="ai-top-pick-role-badge",_.textContent=h,n.appendChild(_)}const w=document.createElement("div");w.className="gengage-chat-ai-toppick-top-row",w.dataset.gengagePart="ai-top-pick-top-row",Xa(t,s,w,e,{skipOverlayActions:u});const m=document.createElement("div");if(m.className="gengage-chat-ai-toppick-body",m.dataset.gengagePart="ai-top-pick-body",h&&u){const _=document.createElement("div");_.className="gengage-chat-ai-toppick-role-line",_.dataset.gengagePart="ai-top-pick-role-line",_.textContent=h,m.appendChild(_)}const v=i.name;if(v){const _=document.createElement("div");_.className="gengage-chat-ai-toppick-name",_.dataset.gengagePart="ai-top-pick-name",_.textContent=v,m.appendChild(_)}const y=Za(i);y&&m.appendChild(y),Qa(i,m,e),t.labels&&t.labels.length>0&&m.appendChild(tn(t.labels)),w.appendChild(m),n.appendChild(w);const M=document.createElement("div");if(M.className="gengage-chat-ai-toppick-detail",M.dataset.gengagePart="ai-top-pick-detail",a)Ja(t,M);else{const _=typeof t.reason=="string"?t.reason.trim():"";if(_){const N=document.createElement("p");N.className="gengage-chat-ai-toppick-snippet",N.dataset.gengagePart="ai-top-pick-snippet",N.textContent=_,M.appendChild(N)}}M.childNodes.length>0&&n.appendChild(M);const C=!!(r&&e.topPicksLoadingSku===r),L=(l||p)&&!u;if(C||l||p){const _=document.createElement("div");if(_.className="gengage-chat-ai-toppick-spinner",_.dataset.gengagePart="ai-top-pick-spinner",_.style.display=C?"":"none",n.appendChild(_),L){const N=document.createElement("button");N.className="gengage-chat-ai-toppick-cta gds-btn gds-btn-primary",N.dataset.gengagePart="ai-top-pick-cta",N.type="button",N.textContent=l?e.i18n?.addToCartButton??"Add to Cart":e.i18n?.viewDetails??"View Details",N.addEventListener("click",H=>{if(H.stopPropagation(),l){e.onAction({title:e.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:r,cartCode:c,quantity:1}});return}if(p){if(p.type==="findSimilar"&&r&&e.onProductClick){e.onProductClick({sku:r,url:o});return}e.onAction(p)}}),n.appendChild(N)}}return n}function en(t,e){const a=document.createElement("div");a.className="gengage-chat-ai-top-picks",a.dataset.gengagePart="ai-top-picks";const n=t.props?.suggestions??[];if(n.length===0)return a;const i=document.createElement("h3");i.className="gengage-chat-ai-top-picks-title",i.dataset.gengagePart="ai-top-picks-title",i.textContent=e.i18n?.aiTopPicksTitle??"Top Picks",a.appendChild(i);const r=document.createElement("div");r.className="gengage-chat-ai-top-picks-scroll",r.dataset.gengagePart="ai-top-picks-scroll";const o=n[0];if(r.appendChild(Je(o,e,!0)),n.length>1){const c=document.createElement("div");c.className="gengage-chat-ai-top-picks-rest",c.dataset.gengagePart="ai-top-picks-rest";for(let d=1;d<n.length;d++){const l=n[d],p=l.role==="winner";c.appendChild(Je(l,e,p))}r.appendChild(c)}return a.appendChild(r),a}function tn(t){const e=document.createElement("div");e.className="gengage-chat-ai-toppick-labels",e.dataset.gengagePart="ai-top-pick-labels";for(const a of t){const n=document.createElement("span");n.className="gengage-chat-ai-toppick-label gds-chip",n.dataset.gengagePart="ai-top-pick-label",n.dataset.sentiment=a.sentiment??"neutral",n.textContent=a.label,e.appendChild(n)}return e}function an(t,e){const a=document.createElement("div");a.className="gengage-chat-grounding-review gds-evidence-card",a.dataset.gengagePart="grounding-review-card";const n=t.props??{},i=n.title,r=n.reviewCount,o=n.action,c=e.i18n?.groundingReviewCta??"Read Reviews",d=document.createElement("span");d.className="gengage-chat-grounding-review-icon",d.appendChild(ye(["M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z","M8 9h8","M8 13h6"])),a.appendChild(d);const l=document.createElement("div");l.className="gengage-chat-grounding-review-body",l.dataset.gengagePart="grounding-review-body";const p=document.createElement("div");if(p.className="gengage-chat-grounding-review-title",p.dataset.gengagePart="grounding-review-title",p.textContent=i??e.i18n?.customerReviewsTitle??"Customer Reviews",l.appendChild(p),r){const w=document.createElement("div");w.className="gengage-chat-grounding-review-subtitle",w.dataset.gengagePart="grounding-review-subtitle",w.textContent=(e.i18n?.groundingReviewSubtitle??"{count} yorum mevcut").replace("{count}",r),l.appendChild(w)}a.appendChild(l);const s=document.createElement("span");s.className="gengage-chat-grounding-review-cta",s.dataset.gengagePart="grounding-review-cta";const u=document.createElement("span");u.textContent=c,s.appendChild(u);const h=document.createElement("span");return h.className="gengage-chat-grounding-review-cta-icon",h.appendChild(ye(["M5 12h14","M15 8l4 4-4 4"],14)),s.appendChild(h),a.appendChild(s),o&&(a.classList.add("gds-clickable"),a.setAttribute("role","button"),a.setAttribute("tabindex","0"),a.addEventListener("click",()=>e.onAction(o)),a.addEventListener("keydown",w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),e.onAction(o))})),a}function nn(t){if(t.action.type!=="findSimilar")return t.action;const e=t.action.payload&&typeof t.action.payload=="object"?t.action.payload:null,a=typeof e?.input=="string"&&e.input.trim()||typeof e?.text=="string"&&e.text.trim()||t.name.trim();if(!a)return t.action;const n={text:a,is_suggested_text:1};if(typeof e?.sku=="string"&&e.sku.trim()&&(n.sku=e.sku),Array.isArray(e?.group_skus)){const i=e.group_skus.filter(r=>typeof r=="string"&&r.length>0);i.length>0&&(n.group_skus=i)}return{title:t.action.title,type:"inputText",payload:n}}function rn(t,e){const a=document.createElement("div");a.className="gengage-chat-grouping-cards",a.dataset.gengagePart="ai-grouping-cards";const n=t.props?.entries??[];if(n.length===0)return a;const i=t.props?.sectionTitle,r=typeof i=="string"&&i.trim().length>0?i.trim():e.i18n?.aiBrowseCategoriesTitle;if(r){const c=document.createElement("h3");c.className="gengage-chat-grouping-section-title",c.textContent=r,a.appendChild(c)}const o=document.createElement("div");o.className="gengage-chat-grouping-cards-scroll",o.dataset.gengagePart="ai-grouping-cards-scroll";for(const c of n){const d=document.createElement("div");if(d.className="gengage-chat-grouping-card gds-card",d.dataset.gengagePart="ai-grouping-card",d.classList.add("gds-clickable"),d.addEventListener("click",()=>e.onAction(nn(c))),c.image&&S.isSafeImageUrl(c.image)){const u=document.createElement("img");u.className="gengage-chat-grouping-card-img",u.dataset.gengagePart="ai-grouping-card-image",u.src=c.image,u.alt=c.name,u.width=64,u.height=64,d.appendChild(u)}const l=document.createElement("div");l.className="gengage-chat-grouping-card-body",l.dataset.gengagePart="ai-grouping-card-body";const p=document.createElement("span");if(p.className="gengage-chat-grouping-card-name",p.dataset.gengagePart="ai-grouping-card-name",p.textContent=c.name,l.appendChild(p),c.labels&&c.labels.length>0){const u=document.createElement("div");u.className="gengage-chat-grouping-card-labels",u.dataset.gengagePart="ai-grouping-card-labels";for(const h of c.labels.slice(0,2)){const w=document.createElement("span");w.className="gengage-chat-grouping-card-label gds-chip",w.textContent=h,u.appendChild(w)}l.appendChild(u)}d.appendChild(l);const s=document.createElement("span");s.className="gengage-chat-grouping-card-arrow",s.textContent="↳",d.insertBefore(s,d.firstChild),o.appendChild(d)}return a.appendChild(o),a}function on(t,e){const a=document.createElement("div");a.className="gengage-chat-suggested-search-cards",a.dataset.gengagePart="ai-suggested-search-cards";const n=t.props?.entries??[];if(n.length===0)return a;for(const i of n){const r=document.createElement("div");if(r.className="gengage-chat-suggested-search-card gds-card",r.dataset.gengagePart="ai-suggested-search-card",r.classList.add("gds-clickable"),r.addEventListener("click",()=>e.onAction(i.action)),i.image&&S.isSafeImageUrl(i.image)){const d=document.createElement("img");d.className="gengage-chat-suggested-search-card-img",d.dataset.gengagePart="ai-suggested-search-card-image",d.src=i.image,d.alt=i.shortName,d.width=64,d.height=64,r.appendChild(d)}const o=document.createElement("div");o.className="gengage-chat-suggested-search-card-body",o.dataset.gengagePart="ai-suggested-search-card-body";const c=document.createElement("div");c.className="gengage-chat-suggested-search-card-name",c.dataset.gengagePart="ai-suggested-search-card-name",c.textContent=i.shortName,o.appendChild(c),r.appendChild(o),a.appendChild(r)}return a}function _t(t,e){const a=t.length>=2,n=e.i18n?.compareSelected??"Compare",i=e.comparisonSelectionWarning,r=document.createElement("div");r.className="gengage-chat-comparison-floating-btn",r.dataset.gengagePart="comparison-dock";const o=document.createElement("div");o.className="gengage-chat-comparison-floating-summary";const c=document.createElement("span");c.className="gengage-chat-comparison-floating-count",c.textContent=String(t.length),o.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-comparison-floating-copy";const l=document.createElement("div");if(l.className="gengage-chat-comparison-floating-title",l.textContent=a?`${n} (${t.length})`:e.i18n?.compareMinHint??"Select at least 2 products",d.appendChild(l),i){const s=document.createElement("div");s.className="gengage-chat-comparison-floating-warning",s.setAttribute("role","status"),s.setAttribute("aria-live","polite"),s.textContent=i,d.appendChild(s)}o.appendChild(d),r.appendChild(o);const p=document.createElement("button");if(p.className="gengage-chat-comparison-floating-action gds-btn gds-btn-primary",p.type="button",p.textContent=n,p.disabled=!a,a||p.classList.add("gengage-chat-comparison-floating-action--disabled"),p.addEventListener("click",()=>{a&&e.onAction({title:n,type:"getComparisonTable",payload:{sku_list:[...t]}})}),r.appendChild(p),e.onToggleComparisonSku){const s=document.createElement("button");s.className="gengage-chat-comparison-floating-close gds-btn gds-btn-ghost gds-icon-btn",s.dataset.gengagePart="comparison-dock-close",s.type="button",s.setAttribute("aria-label",e.i18n?.closeAriaLabel??"Close"),s.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>',s.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),e.onToggleComparisonSku?.("")}),r.appendChild(s)}return r}function sn(t){const e=document.createElement("div");e.className="gengage-chat-pros-cons gds-card-soft",e.dataset.gengagePart="pros-cons";const a=t.props?.productName;if(a){const r=document.createElement("h4");r.className="gengage-chat-pros-cons-heading",r.textContent=a,e.appendChild(r)}const n=t.props?.pros,i=t.props?.cons;if(n&&n.length>0){const r=document.createElement("ul");r.className="gengage-chat-pros-cons-list",r.dataset.gengagePart="pros-list";for(const o of n){const c=document.createElement("li");c.className="gengage-chat-pros-cons-item",c.dataset.gengagePart="pros-item";const d=document.createElement("span");d.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--pro",d.textContent="✓",c.appendChild(d);const l=document.createElement("span");l.textContent=o,c.appendChild(l),r.appendChild(c)}e.appendChild(r)}if(i&&i.length>0){const r=document.createElement("ul");r.className="gengage-chat-pros-cons-list",r.dataset.gengagePart="cons-list";for(const o of i){const c=document.createElement("li");c.className="gengage-chat-pros-cons-item",c.dataset.gengagePart="cons-item";const d=document.createElement("span");d.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--con",d.textContent="✗",c.appendChild(d);const l=document.createElement("span");l.textContent=o,c.appendChild(l),r.appendChild(c)}e.appendChild(r)}return e}function cn(t,e){const a=t.props?.groups??[],n=t.props?.filterTags??[],i=document.createElement("div");if(i.className="gengage-chat-categories",i.dataset.gengagePart="categories-container",a.length===0)return i;const r=document.createElement("div");r.className="gengage-chat-categories-tabs gds-toolbar",r.dataset.gengagePart="categories-tab-bar",r.setAttribute("role","tablist");const o=[],c=[],d=l=>{for(let p=0;p<o.length;p++){const s=p===l;o[p].classList.toggle("gengage-chat-categories-tab--active",s),o[p].classList.toggle("is-active",s),o[p].setAttribute("aria-selected",String(s)),o[p].tabIndex=s?0:-1,c[p].style.display=s?"":"none"}};for(let l=0;l<a.length;l++){const p=a[l],s=`gengage-cat-tab-${l}`,u=`gengage-cat-panel-${l}`,h=document.createElement("button");h.className="gengage-chat-categories-tab gds-tab",h.type="button",h.dataset.gengagePart="categories-tab",h.id=s,h.setAttribute("role","tab"),h.setAttribute("aria-controls",u),h.setAttribute("aria-selected",String(l===0)),h.tabIndex=l===0?0:-1,l===0&&h.classList.add("gengage-chat-categories-tab--active","is-active"),h.textContent=p.groupName,h.addEventListener("click",()=>d(l)),h.addEventListener("keydown",m=>{let v=-1;m.key==="ArrowRight"||m.key==="ArrowDown"?v=(l+1)%a.length:m.key==="ArrowLeft"||m.key==="ArrowUp"?v=(l-1+a.length)%a.length:m.key==="Home"?v=0:m.key==="End"&&(v=a.length-1),v>=0&&(m.preventDefault(),d(v),o[v].focus())}),o.push(h),r.appendChild(h);const w=document.createElement("div");w.className="gengage-chat-categories-grid",w.dataset.gengagePart="categories-panel",w.id=u,w.setAttribute("role","tabpanel"),w.setAttribute("aria-labelledby",s),l!==0&&(w.style.display="none");for(const m of p.products){const v=ln(m,e);w.appendChild(v)}c.push(w)}i.appendChild(r);for(const l of c)i.appendChild(l);if(n.length>0){const l=document.createElement("div");l.className="gengage-chat-categories-filter-tags gds-toolbar",l.dataset.gengagePart="categories-filter-tags";for(const p of n){const s=document.createElement("button");s.className="gengage-chat-categories-filter-tag gds-chip",s.type="button",s.dataset.gengagePart="categories-filter-tag",s.textContent=p.title,p.action&&s.addEventListener("click",()=>{e.onAction(p.action)}),l.appendChild(s)}i.appendChild(l)}return i}function ln(t,e){const a=document.createElement("div");if(a.className="gengage-chat-product-card gds-card gds-product-card gds-card-interactive",a.dataset.gengagePart="categories-product-card",t.imageUrl&&S.isSafeImageUrl(t.imageUrl)){const r=document.createElement("img");r.className="gengage-chat-product-card-img",r.src=t.imageUrl,r.alt=t.name,r.loading="lazy",F.addImageErrorHandler(r),a.appendChild(r)}const n=document.createElement("div");n.className="gengage-chat-product-card-body";const i=document.createElement("div");if(i.className="gengage-chat-product-card-name",i.textContent=t.name,n.appendChild(i),t.price){const r=document.createElement("div");r.className="gengage-chat-product-card-price",r.textContent=F.formatPrice(t.price,e.pricing),n.appendChild(r)}return a.appendChild(n),(e.onProductSelect||e.onAction)&&(a.classList.add("gds-clickable"),a.addEventListener("click",()=>{if(t.sku){e.onAction({title:t.name,type:"launchSingleProduct",payload:{sku:t.sku}});return}e.onProductSelect?.(t)})),a}function gn(t,e){const a=document.createElement("div");a.className="gengage-chat-handoff-notice gds-evidence-card gds-evidence-card-warning",a.dataset.gengagePart="handoff-notice",a.setAttribute("role","alert");const n=document.createElement("span");n.className="gengage-chat-handoff-notice-icon",n.textContent="👤",n.setAttribute("aria-hidden","true"),a.appendChild(n);const i=document.createElement("h4");i.className="gengage-chat-handoff-notice-heading",i.textContent=e.i18n?.handoffHeading??"Transferring to a support agent",a.appendChild(i);const r=t.props?.summary;if(r){const o=document.createElement("p");o.className="gengage-chat-handoff-notice-summary",o.textContent=r,a.appendChild(o)}return a}function dn(t,e){const a=t.props?.product??t.props,n=document.createElement("div");if(n.className="gengage-chat-product-summary gds-card",n.dataset.gengagePart="product-summary-card",!a)return n;n.classList.add("gds-clickable"),n.addEventListener("click",h=>{h.target.closest("a")||e.onProductSelect?.(a)});const i=a.imageUrl;if(i&&S.isSafeUrl(i)){const h=document.createElement("div");h.className="gengage-chat-product-summary__image",h.dataset.gengagePart="product-summary-image";const w=document.createElement("img");w.loading="lazy",S.safeSetAttribute(w,"src",i),w.alt=a.name||"Product image",F.addImageErrorHandler(w),h.appendChild(w),n.appendChild(h)}const r=document.createElement("div");r.className="gengage-chat-product-summary__content",r.dataset.gengagePart="product-summary-content";const o=a.brand,c=a.name;if(c){const h=document.createElement("div");h.className="gengage-chat-product-summary__name",h.dataset.gengagePart="product-summary-name";const w=o&&!c.toLowerCase().startsWith(o.toLowerCase())?`${o} ${c}`:c;h.textContent=w,h.title=w,r.appendChild(h)}const d=a.rating,l=a.reviewCount;if(typeof d=="number"&&Number.isFinite(d)&&d>0){const h=document.createElement("div");if(h.className="gengage-chat-product-summary__rating",h.dataset.gengagePart="product-summary-rating",h.appendChild(F.createStarRatingElement(d)),typeof l=="number"&&Number.isFinite(l)){const w=document.createElement("span");w.className="gengage-chat-product-summary__review-count",w.textContent=` (${l})`,h.appendChild(w)}r.appendChild(h)}const p=a.price,s=a.originalPrice;if(p){const h=ve(e,a),w=_e(e,a),m=!!(s&&s!==p),v=document.createElement("div");v.className="gengage-chat-product-summary__price",v.dataset.gengagePart="product-summary-price";const y=!!(h&&m),M=Ne(e,a);if(y){const C=Me({reasonText:h,salePriceFormatted:F.formatPrice(p,e.pricing),...M!==void 0?{logoUrl:M}:{}});if(m&&w==="inline"){v.classList.add("gengage-chat-product-summary__price--inline"),v.appendChild(C);const L=document.createElement("span");L.className="gengage-chat-product-summary__price-sep",L.setAttribute("aria-hidden","true");const _=document.createElement("span");_.className="gengage-chat-product-summary__price-original",_.textContent=F.formatPrice(s,e.pricing),v.appendChild(L),v.appendChild(_)}else{const L=document.createElement("span");L.className="gengage-chat-product-summary__price-original",L.textContent=F.formatPrice(s,e.pricing),v.appendChild(L),v.appendChild(document.createTextNode(" ")),v.appendChild(C)}r.appendChild(v)}else{if(m&&w==="inline"){v.classList.add("gengage-chat-product-summary__price--inline");const C=document.createElement("span");C.className="gengage-chat-product-summary__price-current",C.textContent=F.formatPrice(p,e.pricing);const L=document.createElement("span");L.className="gengage-chat-product-summary__price-sep",L.setAttribute("aria-hidden","true");const _=document.createElement("span");_.className="gengage-chat-product-summary__price-original",_.textContent=F.formatPrice(s,e.pricing),v.appendChild(C),v.appendChild(L),v.appendChild(_)}else if(m){const C=document.createElement("span");C.className="gengage-chat-product-summary__price-original",C.textContent=F.formatPrice(s,e.pricing),v.appendChild(C),v.appendChild(document.createTextNode(" "));const L=document.createElement("span");L.className="gengage-chat-product-summary__price-current",L.textContent=F.formatPrice(p,e.pricing),v.appendChild(L)}else{const C=document.createElement("span");C.className="gengage-chat-product-summary__price-current",C.textContent=F.formatPrice(p,e.pricing),v.appendChild(C)}if(h){const C=document.createElement("div");C.className="gengage-chat-product-summary__price-stack",C.appendChild(Ie(h)),C.appendChild(v),r.appendChild(C)}else r.appendChild(v)}}n.appendChild(r);const u=a.url;if(u&&S.isSafeUrl(u)){const h=document.createElement("a");h.className="gengage-chat-product-summary__cta gds-chip gds-chip-active",h.dataset.gengagePart="product-summary-cta",S.safeSetAttribute(h,"href",u),S.safeSetAttribute(h,"target","_blank"),S.safeSetAttribute(h,"rel","noopener noreferrer"),h.textContent=e.i18n?.productCtaLabel??"View",n.appendChild(h)}return n}var pn={PhotoAnalysisCard:({element:t,context:e})=>ga(t,e),BeautyPhotoStep:({element:t,context:e})=>ft(t,e)};function hn(t){if(typeof t!="string")return;const e=t.trim();if(!e)return;if(/^https?:\/\//i.test(e))return e;let a=e.split(/[?#]/)[0];if(a&&(a=a.replace(/^\/+/,""),a.startsWith("remoteConfig/")&&(a=a.slice(13)),!!a))return`https://configs.gengage.ai/assets/${a}`}function un(t,e,a,n,i){const r=document.createElement("div");r.className="gengage-chat-consulting-style-picker";const o=document.createElement("div");o.className="gengage-chat-consulting-style-picker-title",o.textContent=(a==="watch_expert"?i?.i18n?.watchStylesPreparedTitle??"Prepared {count} style directions for you":i?.i18n?.beautyStylesPreparedTitle??"Prepared {count} beauty styles for you").replace("{count}",String(n.length)),r.appendChild(o);const c=document.createElement("div");c.className="gengage-chat-consulting-style-grid",r.appendChild(c);const d=p=>{e.innerHTML="";const s=Array.isArray(p.product_list)?p.product_list:[],u=Array.isArray(p.recommendation_groups)?p.recommendation_groups:[];if(u.length>0){const h=new Map;for(const v of s){const y=typeof v?.sku=="string"?v.sku:void 0;y&&h.set(y,v)}const w=new Set;for(const v of u){const y=Array.isArray(v.skus)?v.skus.filter(T=>typeof T=="string"&&T.trim().length>0):[],M=y.map(T=>(w.add(T),h.get(T))).filter(T=>!!T);if(M.length===0)continue;const C=document.createElement("section");C.className="gengage-chat-consulting-group";const L=document.createElement("div");L.className="gengage-chat-consulting-group-header";const _=document.createElement("h4");_.className="gengage-chat-consulting-group-label";const N=typeof v.label=="string"&&v.label.trim().length>0?v.label:"Öneri";if(_.textContent=y.length>0?`${N} (${y.length})`:N,L.appendChild(_),typeof v.reason=="string"&&v.reason.trim().length>0){const T=document.createElement("p");T.className="gengage-chat-consulting-group-reason",T.textContent=v.reason,L.appendChild(T)}C.appendChild(L);const H=document.createElement("div");H.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",H.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,M.length))));for(const T of M){const q=Se({type:"ProductCard",props:{product:T}},i??{onAction:()=>{}});H.appendChild(q)}C.appendChild(H),e.appendChild(C)}const m=s.filter(v=>{const y=typeof v?.sku=="string"?v.sku:"";return y.length>0&&!w.has(y)});if(m.length>0){const v=document.createElement("div");v.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",v.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,m.length))));for(const y of m){const M=Se({type:"ProductCard",props:{product:y}},i??{onAction:()=>{}});v.appendChild(M)}e.appendChild(v)}return}for(const h of s){const w=Se({type:"ProductCard",props:{product:h}},i??{onAction:()=>{}});e.appendChild(w)}};let l=0;n.forEach((p,s)=>{const u=document.createElement("button");u.type="button",u.className="gengage-chat-consulting-style-btn gds-card",s===0&&u.classList.add("gengage-chat-consulting-style-btn--active"),u.setAttribute("aria-label",p.style_label??`Style ${s+1}`);const h=document.createElement("div");h.className="gengage-chat-consulting-style-media";const w=hn(p.image_url);if(w&&S.isSafeUrl(w)){const v=document.createElement("img");v.className="gengage-chat-consulting-style-image",S.safeSetAttribute(v,"src",w),v.alt=p.style_label??`Style ${s+1}`,v.loading="lazy",F.addImageErrorHandler(v),h.appendChild(v)}const m=document.createElement("span");m.className="gengage-chat-consulting-style-caption",m.textContent=p.style_label??`Style ${s+1}`,h.appendChild(m),u.appendChild(h),u.addEventListener("click",()=>{l!==s&&(l=s,c.querySelectorAll(".gengage-chat-consulting-style-btn").forEach((v,y)=>v.classList.toggle("gengage-chat-consulting-style-btn--active",y===s)),d(p))}),c.appendChild(u)}),t.appendChild(r),d(n[0]??{})}function mn(t){const e=typeof t.props?.source=="string"?t.props.source:void 0,a=(Array.isArray(t.props?.styleVariations)?t.props.styleVariations:[]).filter(n=>Array.isArray(n.product_list)&&n.product_list.length>0);return{isConsulting:g.isConsultingSource(e)&&a.length>0,source:e,styleVariations:a}}function bn(t,e,a,n){un(t,e,a.source,a.styleVariations,n)}function Ue(){return window.innerWidth<768}var kt={ActionButtons:({element:t,context:e})=>fn(t,e),ActionButton:({element:t,context:e})=>vn(t,e),ProductCard:({element:t,context:e})=>Se(t,e),ProductDetailsPanel:({element:t,context:e})=>Fn(t,e),ProductGrid:({element:t,spec:e,renderElement:a,context:n})=>Wn(t,e,a,n),ReviewHighlights:({element:t,context:e})=>Wa(t,{emptyReviewsMessage:e.i18n?.emptyReviewsMessage,reviewFilterPositive:e.i18n?.reviewFilterPositive,reviewFilterNegative:e.i18n?.reviewFilterNegative,reviewCustomersMentionSingular:e.i18n?.reviewCustomersMentionSingular,reviewCustomersMentionPlural:e.i18n?.reviewCustomersMentionPlural,reviewSubjectsHeading:e.i18n?.reviewSubjectsHeading}),ComparisonTable:({element:t,context:e})=>Yn(t,e),AITopPicks:({element:t,context:e})=>en(t,e),GroundingReviewCard:({element:t,context:e})=>an(t,e),AIGroupingCards:({element:t,context:e})=>rn(t,e),AISuggestedSearchCards:({element:t,context:e})=>on(t,e),ProsAndCons:({element:t})=>sn(t),CategoriesContainer:({element:t,context:e})=>cn(t,e),HandoffNotice:({element:t,context:e})=>gn(t,e),ProductSummaryCard:({element:t,context:e})=>dn(t,e),Divider:({element:t})=>Kn(t),...pn},$e=({element:t,renderElement:e})=>{if(!t.children||t.children.length===0)return null;const a=document.createElement("div");for(const n of t.children){const i=e(n);i&&a.appendChild(i)}return a};function Ct(){return{...kt}}function St(t,e,a=kt,n=$e){return g.renderUISpecWithRegistry({spec:t,context:e,registry:a,containerClassName:"gengage-chat-uispec",unknownRenderer:n})}function fn(t,e){const a=document.createElement("div");a.className="gengage-chat-action-buttons";const n=t.props?.buttons;if(n)for(const i of n){const r=document.createElement("button");r.className="gengage-chat-action-btn",r.textContent=i.label,r.addEventListener("click",()=>e.onAction(i.action)),a.appendChild(r)}return a}function vn(t,e){const a=document.createElement("button");a.className="gengage-chat-action-btn";const n=t.props?.label;typeof n=="string"&&(a.textContent=n);const i=t.props?.action;return i&&a.addEventListener("click",()=>e.onAction(i)),a}function et(t,e,a,n,i){t.replaceChildren();const r=_e(e,a),o=!!(i&&n&&i!==n),c=ve(e,a),d=!!(c&&o),l=Ne(e,a);if(!n||parseFloat(n)<=0)return;if(d){const s=Me({reasonText:c,salePriceFormatted:F.formatPrice(n,e.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&r==="inline"){t.classList.add("gengage-chat-product-card-price-block--inline");const u=document.createElement("div");u.className="gengage-chat-product-card-price-row",u.appendChild(s);const h=document.createElement("span");h.className="gengage-chat-product-card-price-sep",h.setAttribute("aria-hidden","true");const w=document.createElement("span");w.className="gengage-chat-product-card-original-price",w.textContent=F.formatPrice(i,e.pricing),u.appendChild(h),u.appendChild(w),t.appendChild(u);return}if(t.classList.remove("gengage-chat-product-card-price-block--inline"),t.appendChild(s),o){t.appendChild(document.createTextNode(" "));const u=document.createElement("span");u.className="gengage-chat-product-card-original-price",u.textContent=F.formatPrice(i,e.pricing),t.appendChild(u)}return}if(o&&r==="inline"){t.classList.add("gengage-chat-product-card-price-block--inline");const s=document.createElement("div");s.className="gengage-chat-product-card-price-row";const u=document.createElement("span");u.className="gengage-chat-product-card-current-price",u.textContent=F.formatPrice(n,e.pricing);const h=document.createElement("span");h.className="gengage-chat-product-card-price-sep",h.setAttribute("aria-hidden","true");const w=document.createElement("span");w.className="gengage-chat-product-card-original-price",w.textContent=F.formatPrice(i,e.pricing),s.appendChild(u),s.appendChild(h),s.appendChild(w),t.appendChild(s);return}t.classList.remove("gengage-chat-product-card-price-block--inline");const p=document.createElement("span");if(p.className="gengage-chat-product-card-current-price",p.textContent=F.formatPrice(n,e.pricing),t.appendChild(p),o){t.appendChild(document.createTextNode(" "));const s=document.createElement("span");s.className="gengage-chat-product-card-original-price",s.textContent=F.formatPrice(i,e.pricing),t.appendChild(s)}}function tt(t,e,a,n,i,r,o){t.classList.remove("gengage-chat-product-details-price--inline"),t.replaceChildren(),t.className="gengage-chat-product-details-price";const c=ve(e,a),d=!!(c&&o),l=Ne(e,a);if(d){const s=Me({reasonText:c,salePriceFormatted:F.formatPrice(n,e.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&r==="inline"){t.classList.add("gengage-chat-product-details-price--inline"),t.appendChild(s);const u=document.createElement("span");u.className="gengage-chat-product-details-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=F.formatPrice(i,e.pricing),t.appendChild(u),t.appendChild(h)}else{if(o){const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=F.formatPrice(i,e.pricing),t.appendChild(u),t.appendChild(document.createTextNode(" "))}t.appendChild(s)}}else if(o&&r==="inline"){t.classList.add("gengage-chat-product-details-price--inline");const s=document.createElement("span");s.className="gengage-chat-product-details-current-price",s.textContent=F.formatPrice(n,e.pricing);const u=document.createElement("span");u.className="gengage-chat-product-details-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=F.formatPrice(i,e.pricing),t.appendChild(s),t.appendChild(u),t.appendChild(h)}else{if(o){const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=F.formatPrice(i,e.pricing),t.appendChild(u),t.appendChild(document.createTextNode(" "))}const s=document.createElement("span");s.className="gengage-chat-product-details-current-price",s.textContent=F.formatPrice(n,e.pricing),t.appendChild(s)}const p=Ae(a,"discountPercent","price_discount_rate");if(typeof p=="number"&&p>0){const s=document.createElement("span");s.className="gengage-chat-product-details-discount-badge",s.textContent=`%${F.clampDiscount(p)}`,t.appendChild(s)}}function Se(t,e){const a=document.createElement("div");a.className="gengage-chat-product-card gds-card gds-product-card gds-card-interactive";const n=t.props?.product??t.props;if(!n)return a;const i=n.sku;i&&(a.dataset.sku=i);const r=t.props?.action;(e.onProductSelect||r)&&(a.classList.add("gds-clickable"),a.addEventListener("click",I=>{if(!a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")&&!I.target.closest(".gengage-chat-product-card-atc")&&!I.target.closest(".gengage-chat-product-card-cta")){if(r){e.onAction(r);return}e.onProductSelect?.(n)}}));const o=n.imageUrl;if(o&&S.isSafeUrl(o)){const I=document.createElement("div");I.className="gengage-chat-product-card-img-wrapper";const f=document.createElement("img");f.className="gengage-chat-product-card-img",f.loading="lazy",S.safeSetAttribute(f,"src",o);const b=n.name;b&&(f.alt=b),F.addImageErrorHandler(f),I.appendChild(f);const x=n.discountPercent;if(typeof x=="number"&&x>0){const P=document.createElement("span");P.className="gengage-chat-product-card-discount-badge",P.textContent=`%${F.clampDiscount(x)}`,I.appendChild(P)}const E=document.createElement("div");E.className="gengage-chat-product-card-img-actions";const A=n.sku;if(A&&e.onFavoriteToggle){const P=document.createElement("button");P.className="gengage-chat-favorite-btn",P.type="button",P.dataset.gengageFavoriteSku=A,P.setAttribute("aria-label",e.i18n?.addToFavoritesLabel??"Add to favorites");const j=e.favoritedSkus?.has(A)??!1;j&&P.classList.add("gengage-chat-favorite-btn--active"),P.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${j?"currentColor":"none"}" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>`,P.addEventListener("click",U=>{U.stopPropagation(),P.classList.toggle("gengage-chat-favorite-btn--active");const $=P.querySelector("svg");$&&$.setAttribute("fill",P.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),e.onFavoriteToggle(A,n)}),E.appendChild(P)}const B=n.sku,R=e.i18n?.findSimilarLabel??"Find Similar";if(B){const P=document.createElement("button");P.className="gengage-chat-find-similar-pill",P.type="button",P.setAttribute("aria-label",R),P.dataset.tooltip=R,P.innerHTML='<span class="gengage-chat-find-similar-pill-icon" aria-hidden="true"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M16 16l5.5 5.5"/></svg></span>';const j=document.createElement("span");j.className="gengage-chat-find-similar-pill-text",j.textContent=R,P.appendChild(j),P.addEventListener("click",U=>{U.stopPropagation(),e.onAction({title:R,type:"findSimilar",payload:{sku:B,...o?{image_url:o}:{}}})}),E.appendChild(P)}E.childElementCount>0&&I.appendChild(E),a.appendChild(I)}const c=document.createElement("div");c.className="gengage-chat-product-card-body";const d=n.brand;if(d){const I=document.createElement("div");I.className="gengage-chat-product-card-brand",I.textContent=d,c.appendChild(I)}const l=n.rating,p=n.reviewCount,s=n.price,u=n.originalPrice,h=n.price_async,w=ve(e,n),m=_e(e,n),v=!!(w||u&&s&&u!==s&&parseFloat(s)>0&&m==="inline"),y=typeof l=="number"&&Number.isFinite(l)&&l>0,M=document.createElement("div");M.className="gengage-chat-product-card-meta-row";const C=document.createElement("div");C.className="gengage-chat-product-card-price gengage-chat-product-card-price-block";const L=v?(()=>{const I=document.createElement("div");return I.className="gengage-chat-product-card-price-stack",w&&I.appendChild(Ie(w)),I.appendChild(C),I})():C;if(h===!0){const I=document.createElement("span");I.className="gengage-chat-price-skeleton",C.appendChild(I),setTimeout(()=>{I.parentElement&&(s&&parseFloat(s)>0?et(C,e,n,s,n.originalPrice):I.remove())},300)}else s&&parseFloat(s)>0&&et(C,e,n,s,u);if((C.childElementCount>0||h===!0)&&M.appendChild(L),y){const I=document.createElement("div");I.className="gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";const f=F.clampRating(l),b=[`${f.toFixed(1)}`,"out of 5 stars"];typeof p=="number"&&Number.isFinite(p)&&b.push(`(${p} reviews)`),I.setAttribute("aria-label",b.join(" "));const x=document.createElement("span");x.className="gengage-chat-product-card-rating-compact-star",x.setAttribute("aria-hidden","true"),x.innerHTML='<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg>';const E=document.createElement("span");E.className="gengage-chat-product-card-rating-compact-value",E.textContent=f.toFixed(1),I.appendChild(x),I.appendChild(E),M.appendChild(I)}M.childElementCount===0&&(M.classList.add("gengage-chat-product-card-meta-row--empty"),M.setAttribute("aria-hidden","true")),c.appendChild(M);const _=n.name;if(_){const I=document.createElement("div");I.className="gengage-chat-product-card-name",I.textContent=_,I.title=_,c.appendChild(I)}const N=n.inStock;if(typeof N=="boolean"){const I=document.createElement("div");I.className=`gengage-chat-product-card-stock ${N?"is-in-stock":"is-out-of-stock"}`,I.textContent=N?e.i18n?.inStockLabel??"In Stock":e.i18n?.outOfStockLabel??"Out of Stock",c.appendChild(I)}a.appendChild(c);const H=n.url,T=n.sku,q=n.cartCode,Z=!!(q&&T&&N!==!1),Y=e.i18n?.productCtaLabel??"View";if(Z){const I=document.createElement("div");I.className="gengage-chat-product-card-buy-footer";const f=document.createElement("button");f.type="button",f.className="gengage-chat-product-card-buy-trigger",f.textContent=Y,f.addEventListener("click",b=>{b.stopPropagation(),e.onAction({title:e.i18n?.addToCartButton??Y,type:"addToCart",payload:{sku:T,cartCode:q,quantity:1}})}),I.appendChild(f),a.appendChild(I)}else if(r){const I=document.createElement("button");I.className="gengage-chat-product-card-cta",I.type="button",I.textContent=r.type==="launchSingleProduct"?Y:r.title||Y,I.addEventListener("click",f=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){f.stopPropagation();return}e.onAction(r)}),a.appendChild(I)}else if(H&&S.isSafeUrl(H)){const I=document.createElement("a");I.className="gengage-chat-product-card-cta",S.safeSetAttribute(I,"href",H),S.safeSetAttribute(I,"target","_blank"),S.safeSetAttribute(I,"rel","noopener noreferrer"),I.textContent=Y,I.addEventListener("click",f=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){f.preventDefault(),f.stopPropagation();return}e.onProductClick&&T&&(f.preventDefault(),e.onProductClick({sku:T,url:H}))}),a.appendChild(I)}if(e.comparisonSelectMode&&T&&e.onToggleComparisonSku){const I=document.createElement("div");I.className="gengage-chat-comparison-select-wrapper";const f=e.comparisonSelectedSkus?.includes(T)??!1;f&&I.classList.add("gengage-chat-comparison-select-wrapper--selected");const b=n.name??T,x=e.i18n?.comparisonSelectCardHint??"Tap anywhere on the card to add or remove it from comparison.";I.setAttribute("role","group"),I.setAttribute("aria-label",`${String(b)}. ${x}`);const E=document.createElement("button");E.type="button",E.className="gengage-chat-comparison-checkbox",E.dataset.selected=f?"true":"false",E.setAttribute("aria-pressed",f?"true":"false");const A=document.createElement("span");A.className="gengage-chat-comparison-checkbox-icon",A.innerHTML=f?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>':'<span class="gengage-chat-comparison-checkbox-dot"></span>';const B=document.createElement("span");B.className="gengage-chat-comparison-checkbox-label",B.textContent=f?e.i18n?.comparisonSelectedLabel??"Selected":e.i18n?.comparisonSelectLabel??"Select to compare",E.appendChild(A),E.appendChild(B),E.addEventListener("click",P=>{P.stopPropagation(),e.onToggleComparisonSku?.(T)});const R=document.createElement("div");return R.className="gengage-chat-comparison-card-hint",R.setAttribute("aria-hidden","true"),R.textContent=x,I.addEventListener("click",P=>{P.target.closest(".gengage-chat-comparison-checkbox")||(P.stopPropagation(),e.onToggleComparisonSku?.(T))}),I.appendChild(E),I.appendChild(R),I.appendChild(a),I}return a}var Et=new Set(["color","colour","renk","renk kodu","color code"]),xn=new Set(["size","beden","boyut"]),wn=new Set(["finish","bitiş","bitişi"]),yn=["variants","variantOptions","variant_options","productVariants","product_variants","options"],_n=new Set(["H2","H3","H4","P","BR","UL","OL","LI","STRONG","B","EM","I"]),kn=new Set(["SCRIPT","STYLE","NOSCRIPT","IFRAME","OBJECT","EMBED"]);function ne(t,...e){for(const a of e){const n=t[a];if(typeof n=="string"){const i=n.trim();if(i.length>0)return i}}}function Ae(t,...e){for(const a of e){const n=t[a];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){const i=Number(n.replace(",","."));if(Number.isFinite(i))return i}}}function Ee(t,...e){for(const a of e){const n=t[a];if(typeof n=="boolean")return n}}function Cn(t,...e){for(const a of e){const n=t[a];if(n&&typeof n=="object"&&!Array.isArray(n))return n}}function Sn(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.trim().length>0):[]}function En(t){const e=[...Sn(t.images),ne(t,"imageUrl","image_url","image")].filter(a=>!!a&&S.isSafeUrl(a));return Array.from(new Set(e))}function Pn(t){return typeof DOMParser<"u"?(new DOMParser().parseFromString(t,"text/html").body.textContent??"").replace(/\s+/g," ").trim():t.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim()}function An(t){const e=ne(t,"description_html","descriptionHtml");if(e){const n=Pn(e);if(n)return{text:n,html:e}}const a=ne(t,"description");return a?{text:a}:void 0}function Le(t){return Array.isArray(t)?t.map(e=>{if(!e||typeof e!="object")return null;const a=e,n=ne(a,"key","name","label","title"),i=a.value,r=typeof i=="string"||typeof i=="number"||typeof i=="boolean"?String(i).trim():void 0;return!n||!r?null:{key:n,value:r}}).filter(e=>e!==null):t&&typeof t=="object"?Object.entries(t).map(([e,a])=>{const n=typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a).trim():void 0;return!e||!n?null:{key:e,value:n}}).filter(e=>e!==null):[]}function Pt(t){const e=Le(t.features);return e.length>0?e:Le(t.specifications)}function Ln(t){const e=t.specifications,a=Le(e);if(a.length>0)return Array.isArray(e)?a:Object.fromEntries(a.map(i=>[i.key,i.value]));const n=Le(t.features);return n.length>0?n:void 0}function de(t,...e){return ne(t,...e)}function at(t,...e){return Ae(t,...e)}function At(t){return de(t,"value","option_value","attribute_value","label","title","name","variant_name","sku")}function Lt(t){const e=de(t,"type","attribute","option_name","attribute_name");return e||(de(t,"value")?de(t,"name","variant_name"):void 0)}function Tn(t){const e=Lt(t)?.toLowerCase();return!!(ne(t,"color","colour","color_hex","hex","swatch","swatchColor")||e&&Et.has(e))}function nt(t){if(!t)return;const e=t.trim();if(!(!e||e.includes(";"))&&(typeof CSS<"u"&&CSS.supports?.("color",e)||/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e)))return e}function In(t){const e=nt(de(t,"swatchColor","swatch","color_hex","hex","color","colour"));if(e)return e;if(Tn(t))return nt(At(t))}function Nn(t){return de(t,"image","imageUrl","image_url","swatchImage","swatch_image")}function Mn(t){return at(t,"price_discounted","priceDiscounted")??de(t,"price_discounted","priceDiscounted")??at(t,"price")??de(t,"price")}function Bn(t){const e=t.trim().toLowerCase();return Et.has(e)||xn.has(e)||wn.has(e)}function zn(t){const e=t.trim().toLowerCase();return e==="renk kodu"?"Renk":e==="color code"?"Color":t.trim()}function Hn(t){for(const e of yn){const a=t[e];if(!Array.isArray(a))continue;const n=a.filter(i=>!!i&&typeof i=="object"&&!Array.isArray(i));if(n.length>0)return n}}function Rn(t){const e=Hn(t);if(e)return e;const a=ne(t,"sku"),n=Ee(t,"inStock","in_stock"),i=[],r=new Set,o=(d,l)=>{if(!Bn(d)||typeof l!="string"&&typeof l!="number"&&typeof l!="boolean")return;const p=String(l).trim();if(!p)return;const s=zn(d),u=`${s.toLowerCase()}:${p.toLowerCase()}`;r.has(u)||(r.add(u),i.push({name:s,value:p,sku:a,inStock:n}))},c=Cn(t,"facetHits","facet_hits");if(c)for(const[d,l]of Object.entries(c))o(d,l);for(const d of Pt(t))o(d.key,d.value);return i}function Dn(t,e){const a=Array.from(new Set(t.map(Lt).filter(n=>!!n)));return a.length===1?`${t.length} ${a[0]}`:e.i18n?.variantsLabel??"Variants"}function Fn(t,e){const a=document.createElement("article");a.className="gengage-chat-product-details-panel";const n=t.props?.product??t.props;if(!n)return a;const i=ne(n,"name"),r=ne(n,"brand"),o=ne(n,"sku"),c=ne(n,"cartCode","cart_code"),d=ne(n,"price"),l=ne(n,"originalPrice","price_original"),p=Ee(n,"price_async"),s=ve(e,n),u=_e(e,n),h=!!(l&&d&&l!==d),w=Ee(n,"inStock","in_stock"),m=Ae(n,"reviewCount","review_count"),v=Ae(n,"rating"),y=En(n),M=Pt(n).slice(0,4);if(y.length>1){const b=document.createElement("div");b.className="gengage-chat-product-details-media gengage-chat-product-details-gallery gengage-chat-product-details-img-wrap";const x=document.createElement("img");x.className="gengage-chat-product-details-img",S.safeSetAttribute(x,"src",y[0]),x.alt=i??"Product image",F.addImageErrorHandler(x),b.appendChild(x);const E=document.createElement("div");E.className="gengage-chat-product-gallery-thumbs";const A=6;let B=null,R=0;const P=e.i18n,j=P?.galleryPrevAriaLabel??"Previous image",U=P?.galleryNextAriaLabel??"Next image",$=z=>z==="prev"?'<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="15 18 9 12 15 6"/></svg>':'<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>',K=document.createElement("button");K.type="button",K.className="gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn",K.setAttribute("aria-label",j),K.innerHTML=$("prev");const X=document.createElement("button");X.type="button",X.className="gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--next gds-btn gds-btn-ghost gds-icon-btn",X.setAttribute("aria-label",U),X.innerHTML=$("next");const ee=()=>{K.disabled=R<=0,X.disabled=R>=y.length-1},V=z=>{if(z<0||z>=y.length||z===R)return;const W=y[z];if(!W)return;S.safeSetAttribute(x,"src",W);const D=E.querySelectorAll(".gengage-chat-product-gallery-thumb");B&&B.classList.remove("gengage-chat-product-gallery-thumb--active"),z<A&&D[z]?(D[z].classList.add("gengage-chat-product-gallery-thumb--active"),B=D[z]):B=null,R=z,ee()};for(let z=0;z<y.length;z++){const W=y[z];if(z>=A)break;const D=document.createElement("img");D.className="gengage-chat-product-gallery-thumb",z===0&&(D.classList.add("gengage-chat-product-gallery-thumb--active"),B=D),S.safeSetAttribute(D,"src",W),D.alt=`${i??"Product"} ${z+1}`,D.width=48,D.height=48,F.addImageErrorHandler(D),D.addEventListener("click",()=>{V(z)}),E.appendChild(D)}if(y.length>A){const z=document.createElement("span");z.className="gengage-chat-product-gallery-thumb-more",z.textContent=`+${y.length-A}`,E.appendChild(z)}K.addEventListener("click",z=>{z.stopPropagation(),V(R-1)}),X.addEventListener("click",z=>{z.stopPropagation(),V(R+1)}),ee();let ie=0;const O=50;x.addEventListener("touchstart",z=>{ie=z.changedTouches[0].clientX},{passive:!0}),x.addEventListener("touchend",z=>{const W=z.changedTouches[0].clientX,D=ie-W;Math.abs(D)<O||V(D>0?Math.min(R+1,y.length-1):Math.max(R-1,0))}),b.appendChild(K),b.appendChild(X),b.appendChild(E),a.appendChild(b)}else if(y.length===1){const b=document.createElement("div");b.className="gengage-chat-product-details-media gengage-chat-product-details-img-wrap";const x=document.createElement("img");x.className="gengage-chat-product-details-img",x.loading="lazy",S.safeSetAttribute(x,"src",y[0]),F.addImageErrorHandler(x),x.alt=i??"Product image",b.appendChild(x),a.appendChild(b)}const C=document.createElement("div");if(C.className="gengage-chat-product-details-content",r&&(!i||!i.toLowerCase().startsWith(r.toLowerCase()))){const b=document.createElement("div");b.className="gengage-chat-product-details-brand",b.textContent=r,C.appendChild(b)}if(i){const b=document.createElement("h3");b.className="gengage-chat-product-details-title",b.textContent=i,b.title=i,C.appendChild(b)}if(typeof v=="number"&&Number.isFinite(v)&&v>0){const b=document.createElement(o?"button":"div");b.className="gengage-chat-product-details-rating",o&&(b.type="button",b.classList.add("gengage-chat-product-details-rating--clickable"),b.setAttribute("aria-label",e.i18n?.groundingReviewCta??"Read Reviews"),b.addEventListener("click",()=>{e.onAction({title:e.i18n?.customerReviewsTitle??"Customer Reviews",type:"reviewSummary",payload:{sku:o}})})),b.appendChild(F.createStarRatingElement(v));const x=document.createElement("span");if(x.className="gengage-chat-product-details-rating-value",x.textContent=F.clampRating(v).toFixed(1),b.appendChild(x),typeof m=="number"&&Number.isFinite(m)){const E=document.createElement("span");E.className="gengage-chat-product-details-review-count",E.textContent=` (${m})`,b.appendChild(E)}C.appendChild(b)}{let b=C;if(s){const E=document.createElement("div");E.className="gengage-chat-product-details-price-stack",E.appendChild(Ie(s)),C.appendChild(E),b=E}const x=document.createElement("div");if(x.className="gengage-chat-product-details-price",p===!0){const E=document.createElement("span");E.className="gengage-chat-price-skeleton",x.appendChild(E),b.appendChild(x),setTimeout(()=>{if(E.parentElement)if(d&&parseFloat(d)>0)tt(x,e,n,d,l,u,h);else{const A=x.parentElement;x.remove(),A?.classList.contains("gengage-chat-product-details-price-stack")&&A.remove()}},300)}else if(d&&parseFloat(d)>0)tt(x,e,n,d,l,u,h),b.appendChild(x);else if(s){const E=b;E.classList.contains("gengage-chat-product-details-price-stack")&&E.remove()}}if(typeof w=="boolean"){const b=document.createElement("div");b.className=`gengage-chat-product-details-stock ${w?"is-in-stock":"is-out-of-stock"}`,b.textContent=w?e.i18n?.inStockLabel??"In Stock":e.i18n?.outOfStockLabel??"Out of Stock",C.appendChild(b)}const L=n.promotions;if(L&&L.length>0){const b=document.createElement("div");b.className="gengage-chat-product-details-promos";for(const x of L.slice(0,3)){if(!x||/%(0(\.0+)?)\s/.test(x))continue;const E=document.createElement("span");E.className="gengage-chat-product-details-promo-badge",E.textContent=x,E.title=x,b.appendChild(E)}b.childElementCount>0&&C.appendChild(b)}if(M.length>0){const b=document.createElement("dl");b.className="gengage-chat-product-details-facts";for(const x of M){const E=document.createElement("div");E.className="gengage-chat-product-details-fact";const A=document.createElement("dt");A.textContent=x.key;const B=document.createElement("dd");B.textContent=x.value,E.appendChild(A),E.appendChild(B),b.appendChild(E)}C.appendChild(b)}const _=Rn(n);if(_.length>0){const b=document.createElement("div");b.className="gengage-chat-product-variants";const x=document.createElement("div");x.className="gengage-chat-product-variants-label",x.textContent=Dn(_,e),b.appendChild(x);const E=document.createElement("div");E.className="gengage-chat-product-variants-list";for(const A of _){const B=At(A),R=de(A,"sku");if(!B&&!R)continue;const P=document.createElement("button");P.className="gengage-chat-product-variant-btn gds-chip",P.type="button";const j=B??R??"";P.title=j;const U=Ee(A,"in_stock","inStock");R&&o&&R===o?(P.classList.add("gengage-chat-product-variant-btn--active"),P.setAttribute("aria-pressed","true")):P.setAttribute("aria-pressed","false"),U===!1&&(P.classList.add("gengage-chat-product-variant-btn--out"),P.disabled=!0);const $=Nn(A),K=In(A);if($&&S.isSafeUrl($)){const V=document.createElement("img");V.className="gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image",S.safeSetAttribute(V,"src",$),V.alt="",V.setAttribute("aria-hidden","true"),F.addImageErrorHandler(V),P.appendChild(V)}else if(K){const V=document.createElement("span");V.className="gengage-chat-product-variant-swatch",V.setAttribute("aria-hidden","true"),V.style.backgroundColor=K,P.appendChild(V)}const X=document.createElement("span");X.className="gengage-chat-product-variant-label",X.textContent=j,P.appendChild(X);const ee=Mn(A);if(ee&&String(ee)!==String(d)){const V=document.createElement("span");V.className="gengage-chat-product-variant-price",V.textContent=F.formatPrice(String(ee),e.pricing),P.appendChild(V)}if(R&&R!==o){const V=i??"",ie=(typeof A.value=="string"?A.value.trim():"")||(typeof A.name=="string"?A.name.trim():"")||(typeof A.variant_name=="string"?A.variant_name.trim():"")||"",O=V.length>0?ie.length>0&&ie!==V?`${V} (${ie})`:V:j;P.addEventListener("click",()=>{e.onAction({title:O,type:"launchVariant",payload:{sku:R}})})}E.appendChild(P)}E.childElementCount>0&&(b.appendChild(E),C.appendChild(b))}const N=document.createElement("div");N.className="gengage-chat-product-details-actions";const H=t.props?.action;if(H){const b=document.createElement("button");b.className="gengage-chat-product-details-cta gds-btn gds-btn-primary",b.type="button",b.textContent=H.title||e.i18n?.productCtaLabel||"View",b.addEventListener("click",()=>e.onAction(H)),N.appendChild(b)}if(c&&o&&w!==!1){const b=document.createElement("button");b.className="gengage-chat-product-details-atc gds-btn gds-btn-primary",b.type="button",b.textContent=e.i18n?.addToCartButton??"Add to Cart",b.addEventListener("click",()=>{e.onAction({title:e.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:o,cartCode:c,quantity:1}})}),N.appendChild(b)}const T=ne(n,"url");if(!H&&T&&S.isSafeUrl(T)){const b=document.createElement("a");b.className="gengage-chat-product-details-cta gds-btn gds-btn-secondary",S.safeSetAttribute(b,"href",T),S.safeSetAttribute(b,"target","_blank"),S.safeSetAttribute(b,"rel","noopener noreferrer"),b.textContent=e.i18n?.viewOnSiteLabel??e.i18n?.productCtaLabel??"View on Site",b.addEventListener("click",x=>{e.onProductClick&&o&&(x.preventDefault(),e.onProductClick({sku:o,url:T}))}),N.appendChild(b)}const q=T;if(q&&S.isSafeUrl(q)){let B=function(P,j){const U=document.createElementNS(E,"circle");U.setAttribute("cx",P),U.setAttribute("cy",j),U.setAttribute("r","3"),A.appendChild(U)},R=function(P,j,U,$){const K=document.createElementNS(E,"line");K.setAttribute("x1",P),K.setAttribute("y1",j),K.setAttribute("x2",U),K.setAttribute("y2",$),A.appendChild(K)};var I=B,f=R;const b=document.createElement("button");b.className="gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn",b.type="button";const x=e.i18n?.shareButton??"Share";b.title=x,b.setAttribute("aria-label",x);const E="http://www.w3.org/2000/svg",A=document.createElementNS(E,"svg");A.setAttribute("width","18"),A.setAttribute("height","18"),A.setAttribute("viewBox","0 0 24 24"),A.setAttribute("fill","none"),A.setAttribute("stroke","currentColor"),A.setAttribute("stroke-width","2"),A.setAttribute("stroke-linecap","round"),A.setAttribute("stroke-linejoin","round"),B("18","5"),B("6","12"),B("18","19"),R("8.59","13.51","15.42","17.49"),R("15.41","6.51","8.59","10.49"),b.appendChild(A),b.addEventListener("click",async()=>{try{navigator.share?await navigator.share({title:i??"",url:q}):navigator.clipboard&&(await navigator.clipboard.writeText(q),b.classList.add("gengage-chat-product-details-share--copied"),setTimeout(()=>b.classList.remove("gengage-chat-product-details-share--copied"),1500))}catch{}}),N.appendChild(b)}N.childElementCount>0&&C.appendChild(N),a.appendChild(C);const Z=An(n),Y=Ln(n);return(Z||Y)&&a.appendChild(On(Z,Y,e)),a}function je(t){if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.textContent??"");if(t.nodeType!==Node.ELEMENT_NODE)return null;const e=t,a=e.tagName.toUpperCase();if(kn.has(a))return null;if(!_n.has(a)){const i=document.createDocumentFragment();for(const r of Array.from(e.childNodes)){const o=je(r);o&&i.appendChild(o)}return i}const n=document.createElement(a.toLowerCase());for(const i of Array.from(e.childNodes)){const r=je(i);r&&n.appendChild(r)}return n}function Un(t,e){const a=e.split(/\n{2,}/).map(n=>n.replace(/\s+/g," ").trim()).filter(Boolean);if(a.length!==0)for(const n of a){const i=document.createElement("p");i.textContent=n,t.appendChild(i)}}function jn(t,e){if(t.classList.add("gengage-chat-product-description"),e.html&&typeof DOMParser<"u"){const a=new DOMParser().parseFromString(e.html,"text/html"),n=Array.from(a.body.childNodes).map(i=>je(i)).filter(i=>!!i&&(i.nodeType===Node.ELEMENT_NODE||!!i.textContent?.trim()));if(n.length>0){for(const i of n)t.appendChild(i);return}}Un(t,e.text)}function On(t,e,a){const n=document.createElement("div");n.className="gengage-chat-product-detail-tabs";const i=document.createElement("div");i.className="gengage-chat-product-detail-tab-bar gds-toolbar";const r=[];if(t){const c=document.createElement("button");c.className="gengage-chat-product-detail-tab gds-tab gengage-chat-product-detail-tab--active is-active",c.type="button",c.setAttribute("aria-selected","true"),c.textContent=a.i18n?.productInfoTab??"Product Info",i.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-product-detail-tab-panel",jn(d,t),r.push(d)}if(e){const c=document.createElement("button");c.className=`gengage-chat-product-detail-tab gds-tab${t?"":" gengage-chat-product-detail-tab--active is-active"}`,c.type="button",c.setAttribute("aria-selected",t?"false":"true"),c.textContent=a.i18n?.specificationsTab??"Specifications",i.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-product-detail-tab-panel",t&&(d.style.display="none");const l=document.createElement("table");l.className="gengage-chat-product-specs-table";const p=Array.isArray(e)?e:Object.entries(e).map(([s,u])=>({key:s,value:u}));for(const s of p){const u=document.createElement("tr"),h=document.createElement("td");h.className="gengage-chat-product-specs-key",h.textContent=s.key;const w=document.createElement("td");w.className="gengage-chat-product-specs-value",w.textContent=s.value,u.appendChild(h),u.appendChild(w),l.appendChild(u)}d.appendChild(l),r.push(d)}const o=i.querySelectorAll(".gengage-chat-product-detail-tab");o.forEach((c,d)=>{c.addEventListener("click",()=>{o.forEach(l=>{l.classList.remove("gengage-chat-product-detail-tab--active","is-active"),l.setAttribute("aria-selected","false")}),c.classList.add("gengage-chat-product-detail-tab--active","is-active"),c.setAttribute("aria-selected","true"),r.forEach((l,p)=>{l.style.display=p===d?"":"none"})})}),n.appendChild(i);for(const c of r)n.appendChild(c);return n}function it(t){const e='width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"';switch(t){case"related":return`<svg ${e} aria-hidden="true"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg>`;case"priceAsc":return`<svg ${e} aria-hidden="true"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></svg>`;case"priceDesc":return`<svg ${e} aria-hidden="true"><polyline points="22 17 13.5 8.5 8.5 13.5 2 7"/><polyline points="16 17 22 17 22 11"/></svg>`;default:return""}}function qn(){return'<svg class="gengage-chat-product-sort-chevron" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>'}function Vn(){return'<svg class="gengage-chat-product-sort-check" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>'}function $n(){return'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3 4 7l4 4"/><path d="M16 21l4-4-4-4"/><path d="M4 7h16"/><path d="M20 17H4"/></svg>'}function rt(t,e){return t.type===e.type&&t.direction===e.direction}function Tt(t,e,a){if(!a||a.type==="related")return t;const n=t.map(i=>{const r=e.elements[i]?.props?.product,o=r?Number(r.price):NaN;return{id:i,price:Number.isFinite(o)?o:1/0}});return n.sort((i,r)=>i.price===1/0&&r.price===1/0?0:i.price===1/0?1:r.price===1/0?-1:a.direction==="desc"?r.price-i.price:i.price-r.price),n.map(i=>i.id)}function Gn(t,e,a,n){const i=Tt(e,a,n),r=new Map;for(const o of Array.from(t.children)){const c=o.dataset.elementId;c&&r.set(c,o)}for(const o of i){const c=r.get(o);c&&t.appendChild(c)}}function Wn(t,e,a,n){const i=document.createElement("div");i.className="gengage-chat-product-grid-wrapper";const r=mn(t),o=r.isConsulting,c=t.children??[],d=document.createElement("div");d.className="gengage-chat-product-grid";const l=n?.panelProductListHeading;if(!o&&c.length>1&&n?.onSortChange){const u=document.createElement("div");u.className="gengage-chat-product-sort-toolbar",u.setAttribute("role","toolbar"),u.setAttribute("aria-label",n.i18n?.sortToolbarAriaLabel??"Sort products");let h=n.productSort??{type:"related"};const w=[{label:n.i18n?.sortRelated??"Related",sortState:{type:"related"},icon:"related"},{label:n.i18n?.sortPriceAsc??"Price ↑",sortState:{type:"price",direction:"asc"},icon:"priceAsc"},{label:n.i18n?.sortPriceDesc??"Price ↓",sortState:{type:"price",direction:"desc"},icon:"priceDesc"}],m=document.createElement("div");m.className="gengage-chat-product-sort-dropdown";const v=document.createElement("button");v.type="button",v.className="gengage-chat-product-sort-trigger gds-btn gds-btn-ghost",v.setAttribute("aria-haspopup","listbox"),v.setAttribute("aria-expanded","false");const y=n.i18n?.sortToolbarAriaLabel??"Sort products",M=document.createElement("span");M.className="gengage-chat-product-sort-trigger-icon";const C=document.createElement("span");C.className="gengage-chat-product-sort-trigger-label";const L=f=>{const b=w.find(x=>rt(x.sortState,f))??w[0];C.textContent=b.label,M.innerHTML=it(b.icon),m.dataset.sortIcon=b.icon,v.setAttribute("aria-label",`${y}: ${b.label}`),v.title=b.label};L(h);const _=document.createElement("span");_.className="gengage-chat-product-sort-trigger-chevron",_.innerHTML=qn(),v.appendChild(M),v.appendChild(C),v.appendChild(_);const N=document.createElement("div");N.className="gengage-chat-product-sort-menu gds-menu",N.hidden=!0,N.setAttribute("role","listbox"),N.setAttribute("aria-label",y);const H=u.ownerDocument;let T=null;const q=()=>{N.hidden=!0,m.classList.remove("gengage-chat-product-sort-dropdown--open"),v.setAttribute("aria-expanded","false"),T?.abort(),T=null},Z=f=>{m.classList.contains("gengage-chat-product-sort-dropdown--open")&&(m.contains(f.target)||q())},Y=f=>{f.key==="Escape"&&(f.preventDefault(),q())},I=()=>{N.hidden=!1,m.classList.add("gengage-chat-product-sort-dropdown--open"),v.setAttribute("aria-expanded","true"),T=new AbortController;const{signal:f}=T;H.addEventListener("click",Z,{signal:f}),H.addEventListener("keydown",Y,{capture:!0,signal:f})};v.addEventListener("click",f=>{f.stopPropagation(),m.classList.contains("gengage-chat-product-sort-dropdown--open")?q():I()});for(const f of w){const b=document.createElement("button");b.type="button",b.className="gengage-chat-product-sort-option gds-menu-option",b.setAttribute("role","option");const x=rt(h,f.sortState);b.setAttribute("aria-selected",x?"true":"false"),x&&b.classList.add("gengage-chat-product-sort-option--active","gds-menu-option-active");const E=f.sortState.type==="related"?"related":`price-${f.sortState.direction??""}`;b.dataset.sortKey=E;const A=document.createElement("span");A.className="gengage-chat-product-sort-option-icon",A.innerHTML=it(f.icon);const B=document.createElement("span");B.className="gengage-chat-product-sort-option-label",B.textContent=f.label;const R=document.createElement("span");R.className="gengage-chat-product-sort-option-check",R.innerHTML=Vn(),R.setAttribute("aria-hidden","true"),x||R.classList.add("gengage-chat-product-sort-option-check--hidden"),b.appendChild(A),b.appendChild(B),b.appendChild(R),b.addEventListener("click",()=>{h=f.sortState,n.onSortChange?.(f.sortState),Gn(d,c,e,f.sortState),N.querySelectorAll(".gengage-chat-product-sort-option").forEach(P=>{const j=P,U=j.dataset.sortKey===E;j.classList.toggle("gengage-chat-product-sort-option--active",U),j.classList.toggle("gds-menu-option-active",U),j.setAttribute("aria-selected",U?"true":"false"),j.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden",!U)}),L(f.sortState),q()}),N.appendChild(b)}if(m.appendChild(v),m.appendChild(N),u.appendChild(m),n.onToggleComparisonSku){const f=document.createElement("button");f.className="gengage-chat-comparison-toggle-btn gds-btn gds-btn-ghost",f.type="button",n.comparisonSelectMode&&f.classList.add("gengage-chat-comparison-toggle-btn--active"),n.isStreaming&&f.classList.add("gengage-chat-comparison-toggle-btn--hidden");const b=document.createElement("span");b.className="gengage-chat-comparison-toggle-icon",b.innerHTML=$n();const x=document.createElement("span");x.className="gengage-chat-comparison-toggle-label";const E=n.i18n?.compareSelected??"Compare";x.textContent=E,f.setAttribute("aria-label",E),f.title=E,f.appendChild(b),f.appendChild(x),f.addEventListener("click",()=>{n.onToggleComparisonSku?.("")}),u.appendChild(f)}if(l){u.classList.add("gengage-chat-product-sort-toolbar--inline");const f=document.createElement("div");f.className="gengage-chat-product-grid-head";const b=document.createElement("span");b.className="gengage-chat-product-grid-head-title",b.textContent=l,f.appendChild(b);const x=document.createElement("div");x.className="gengage-chat-product-grid-head-actions",x.appendChild(u),f.appendChild(x),i.appendChild(f)}else i.appendChild(u)}else if(l){const u=document.createElement("div");u.className="gengage-chat-product-grid-head";const h=document.createElement("span");h.className="gengage-chat-product-grid-head-title",h.textContent=l,u.appendChild(h),i.appendChild(u)}if(o)bn(i,d,r,n);else{const u=Tt(c,e,n?.productSort);for(const h of u){if(!e.elements[h])continue;const w=a(h);w&&(w.dataset.elementId=h,d.appendChild(w))}}(n?.isMobile??Ue())&&d.classList.add("gengage-chat-product-grid--mobile"),i.appendChild(d);const p=t.props?.endOfList;if(!o&&p!==!0&&c.length>0){const u=n?.i18n?.viewMoreLabel??"Show More",h=document.createElement("button");h.className="gengage-chat-product-grid-view-more",h.type="button",h.textContent=u,h.addEventListener("click",()=>{n?.onAction({title:u,type:"moreProductList",payload:{}})}),i.appendChild(h)}const s=n?.isMobile??Ue();if(n?.comparisonSelectMode&&n.comparisonSelectedSkus&&!s){const u=_t(n.comparisonSelectedSkus,n);i.appendChild(u)}return i}function Yn(t,e){const a=t.props??{},n=a.keyDifferencesHtml,i=a.recommended,r=a.products??[],o=a.attributes??[],c=a.highlights??[],d=a.specialCases,l=a.recommendedText,p=a.winnerHits,s=a.productActions;if(!i)return document.createElement("div");const u={recommended:i,products:r,attributes:o,highlights:c,specialCases:d,onProductClick:({sku:w,name:m})=>{e.onProductClick?.({sku:w,url:"",name:m})},pricing:e.pricing};l!==void 0&&(u.recommendedText=l),p!==void 0&&(u.winnerHits=p),s!==void 0&&(u.productActions=s),n!==void 0&&(u.keyDifferencesHtml=n),e.i18n&&(u.i18n={comparisonHeading:e.i18n.panelTitleComparisonResults,recommendedChoiceLabel:e.i18n.recommendedChoiceLabel,highlightsLabel:e.i18n.highlightsLabel,keyDifferencesLabel:e.i18n.keyDifferencesLabel,viewMoreLabel:e.i18n.viewMoreLabel,specialCasesLabel:e.i18n.specialCasesLabel,addToCartButton:e.i18n.addToCartButton});const h=Ha(u);return(e.isMobile??Ue())&&h.classList.add("gengage-chat-comparison--mobile"),h}function Kn(t){const e=document.createElement("hr");e.className="gengage-chat-divider";const a=t.props?.label;if(a){const n=document.createElement("div");n.className="gengage-chat-divider-wrapper";const i=document.createElement("span");i.className="gengage-chat-divider-label",i.textContent=a,n.appendChild(e),n.appendChild(i);const r=document.createElement("hr");return r.className="gengage-chat-divider",n.appendChild(r),n}return e}var Zn=new Set(["P","DIV","H1","H2","H3","H4","H5","H6","LI","UL","OL","BLOCKQUOTE","PRE","TABLE","SECTION","HR","FIGURE","FIGCAPTION","DL","DT","DD"]);function Xn(t){const e=[];let a=[];for(const n of t)n.nodeType===Node.ELEMENT_NODE&&Zn.has(n.tagName)?(a.length>0&&(e.push(a),a=[]),e.push([n])):a.push(n);return a.length>0&&e.push(a),e}function Qn(t){for(const e of t)for(const a of e)if(a.nodeType===Node.ELEMENT_NODE&&(a.tagName==="TABLE"||a.querySelector?.("table")))return!0;return!1}function Jn(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function ei(t){const{container:e,html:a,delayMs:n=30,onTick:i,onComplete:r}=t,o=document.createElement("template");o.innerHTML=a;const c=Xn(o.content.childNodes);if(Jn()||c.length<=1||Qn(c))return e.innerHTML=a,r?.(),{complete(){},cancel(){},isRunning:!1};e.innerHTML="";let d=0,l=null,p=!0;function s(){if(!p||d>=c.length){p=!1,r?.();return}const u=c[d],h=document.createElement("span");h.className="gengage-chat-typewriter-block";for(const w of u)h.appendChild(w.cloneNode(!0));e.appendChild(h),d++,i?.(),d<c.length?l=setTimeout(s,n):(p=!1,r?.())}return s(),{complete(){p&&(l!==null&&clearTimeout(l),p=!1,e.innerHTML=a,r?.())},cancel(){l!==null&&clearTimeout(l),p=!1},get isRunning(){return p}}}function ot(t){return t!==void 0&&/[\p{L}\p{N}_]/u.test(t)}function ti(t){const{container:e,mentions:a,onProductClick:n}=t;if(a.length===0)return;const i=new Map;for(const r of a)r.short_name.length!==0&&i.set(r.short_name.toLowerCase(),r);if(i.size!==0)for(const[r,o]of i){const c=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let d=c.nextNode(),l=!1;for(;d&&!l;){const p=d.textContent??"",s=p.toLowerCase().indexOf(r);if(s===-1){d=c.nextNode();continue}const u=s>0?p[s-1]:void 0,h=p[s+o.short_name.length];if(ot(u)||ot(h)){d=c.nextNode();continue}const w=p.slice(0,s),m=p.slice(s,s+o.short_name.length),v=p.slice(s+o.short_name.length),y=d.parentNode;if(!y){d=c.nextNode();continue}const M=document.createElement("a");M.className="gengage-product-mention",M.textContent=m,M.href="#",M.addEventListener("click",C=>{C.preventDefault(),n(o.sku)}),w&&y.insertBefore(document.createTextNode(w),d),y.insertBefore(M,d),v&&y.insertBefore(document.createTextNode(v),d),y.removeChild(d),l=!0}}}var ai=new Set(["search","info","review","similar"]),ni=new Set(["quickAnswer","reviewSummary","searchDiscovery","launchDiscovery","exploreTogetherV2"]);function ii(t){return!!(t.icon&&ai.has(t.icon)||t.action?.type&&ni.has(t.action.type))}var Te="gengage_choice_prompter_dismissed",ri="gengage_choice_prompter_dismissed_global";function oi(t){const e=document.createElement("div");e.className="gengage-chat-choice-prompter gds-card",e.dataset.gengagePart="choice-prompter";const a=document.createElement("div");a.className="gengage-chat-choice-prompter-copy";const n=document.createElement("div");n.className="gengage-chat-choice-prompter-heading",n.textContent=t.heading,a.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-choice-prompter-suggestion",i.textContent=t.suggestion,a.appendChild(i),e.appendChild(a);const r=document.createElement("button");r.type="button",r.className="gengage-chat-choice-prompter-cta gds-btn gds-btn-primary",r.dataset.gengagePart="choice-prompter-cta",r.textContent=t.ctaLabel,r.addEventListener("click",()=>{Oe(t.threadId),e.remove(),t.onCtaClick()}),e.appendChild(r);const o=document.createElement("button");return o.type="button",o.className="gengage-chat-choice-prompter-dismiss",o.dataset.gengagePart="choice-prompter-dismiss",o.textContent="×",o.setAttribute("aria-label",t.dismissAriaLabel??"Dismiss"),o.addEventListener("click",()=>{Oe(t.threadId),e.remove(),t.onDismiss?.()}),e.appendChild(o),e}function si(){try{sessionStorage.removeItem(Te),sessionStorage.removeItem(ri)}catch{}}function ci(t){try{const e=sessionStorage.getItem(Te);return e?JSON.parse(e).includes(t):!1}catch{return!1}}function Oe(t){try{const e=sessionStorage.getItem(Te),a=e?JSON.parse(e):[];a.includes(t)||a.push(t),sessionStorage.setItem(Te,JSON.stringify(a))}catch{}}function li(t){t&&Oe(t)}var gi="gengage_assistant",di=3,pe="sessions",se="context",le="payload",ce="favorites";function xe(t){return new Promise((e,a)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>a(t.error)})}function me(t){return new Promise((e,a)=>{t.oncomplete=()=>e(),t.onerror=()=>a(t.error),t.onabort=()=>a(t.error??new DOMException("Transaction aborted"))})}var pi=class{constructor(t=gi,e=di){this._db=null,this._dbName=t,this._version=e}async open(){return this._db?this._db:new Promise((t,e)=>{const a=indexedDB.open(this._dbName,this._version);a.onupgradeneeded=n=>{const i=a.result,r=n.oldVersion;r<1&&(i.createObjectStore(pe,{keyPath:["userId","appId","sessionId"]}),i.createObjectStore(se,{keyPath:["sessionId","threadId"]}),i.createObjectStore(le,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),i.createObjectStore(ce,{keyPath:["userId","appId","sku"]})),r>=1&&r<2&&(i.objectStoreNames.contains(pe)&&i.deleteObjectStore(pe),i.objectStoreNames.contains(le)&&i.deleteObjectStore(le),i.createObjectStore(pe,{keyPath:["userId","appId","sessionId"]}),i.createObjectStore(le,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),i.objectStoreNames.contains(se)||i.createObjectStore(se,{keyPath:["sessionId","threadId"]})),r<3&&(i.objectStoreNames.contains(ce)||i.createObjectStore(ce,{keyPath:["userId","appId","sku"]}))},a.onsuccess=()=>{this._db=a.result,t(this._db)},a.onerror=()=>e(a.error)})}close(){this._db?.close(),this._db=null}async saveSession(t){const e=this._requireDb().transaction(pe,"readwrite");e.objectStore(pe).put(t),await me(e)}async loadSession(t,e,a){return await xe(this._requireDb().transaction(pe,"readonly").objectStore(pe).get([t,e,a]))??null}async saveContext(t){const e=this._requireDb().transaction(se,"readwrite");e.objectStore(se).put(t),await me(e)}async loadContext(t,e){return await xe(this._requireDb().transaction(se,"readonly").objectStore(se).get([t,e]))??null}async deleteContextsAfterThread(t,e){const a=this._requireDb().transaction(se,"readwrite"),n=a.objectStore(se).openCursor();await new Promise((i,r)=>{n.onsuccess=()=>{const o=n.result;if(!o){i();return}const c=o.value;if(c.sessionId===t&&c.threadId>e)try{o.delete()}catch{}o.continue()},n.onerror=()=>r(n.error)}),await me(a)}async loadLatestContext(t){const e=this._requireDb().transaction(se,"readonly").objectStore(se),a=IDBKeyRange.bound([t,""],[t,""]);return new Promise((n,i)=>{const r=e.openCursor(a,"prev");r.onsuccess=()=>{const o=r.result;n(o?o.value:null)},r.onerror=()=>i(r.error)})}async savePayload(t){const e=this._requireDb().transaction(le,"readwrite");e.objectStore(le).put(t),await me(e)}async loadPayload(t,e){return await xe(this._requireDb().transaction(le,"readonly").objectStore(le).get([t,e]))??null}async loadPayloadsByThread(t){const e=this._requireDb().transaction(le,"readonly").objectStore(le).index("threadId"),a=[];return new Promise((n,i)=>{const r=e.openCursor(IDBKeyRange.only(t));r.onsuccess=()=>{const o=r.result;if(!o){n(a);return}a.push(o.value),o.continue()},r.onerror=()=>i(r.error)})}async saveFavorite(t){const e=this._requireDb().transaction(ce,"readwrite");e.objectStore(ce).put(t),await me(e)}async removeFavorite(t,e,a){const n=this._requireDb().transaction(ce,"readwrite");n.objectStore(ce).delete([t,e,a]),await me(n)}async loadFavorites(t,e){return(await xe(this._requireDb().transaction(ce,"readonly").objectStore(ce).getAll())).filter(a=>a.userId===t&&a.appId===e)}async isFavorite(t,e,a){return await xe(this._requireDb().transaction(ce,"readonly").objectStore(ce).get([t,e,a]))!==void 0}_requireDb(){if(!this._db)throw new Error("GengageIndexedDB: database not open. Call open() first.");return this._db}},hi=["comparisonTable","groupList","productDetailsSimilars","productList"],ui=class{constructor(t){this._lockCount=1,this._hiddenByUser=!1,this._lastPanelContentType=null,this._chatShown=!1,this._isFavoritesMode=!1,this._lastExtended=!1,this._onChange=t.onChange;const e=new Set(hi);t.productDetailsInPanel&&e.add("productDetails"),this._panelContentTypes=e}get isExtended(){return this._lockCount===0&&!this._hiddenByUser&&!this._isFavoritesMode&&this._lastPanelContentType!==null&&this._panelContentTypes.has(this._lastPanelContentType)&&this._chatShown}unlock(){this._lockCount>0&&this._lockCount--,this._checkStateChange()}lock(){this._lockCount++,this._checkStateChange()}setHiddenByUser(t){this._hiddenByUser=t,this._checkStateChange()}setChatShown(t){this._chatShown=t,this._checkStateChange()}setFavoritesMode(t){this._isFavoritesMode=t,this._checkStateChange()}setPanelContentType(t){this._lastPanelContentType=t,this._checkStateChange()}_checkStateChange(){const t=this.isExtended;t!==this._lastExtended&&(this._lastExtended=t,this._onChange(t))}},mi=class{constructor(t){this.deps=t,this.snapshots=new Map,this._snapshotRebuilders=new Map,this.snapshotTypes=new Map,this.activePanelMessageId=null,this.currentType=null,this.threads=[],this.lastActionType=null}snapshotForMessage(t,e){const a=this.deps.drawer();if(!a?.hasPanelContent()||a.isPanelLoading())return;const n=a.getPanelContentElement();if(!n)return;const i=n.cloneNode(!0);this.snapshots.set(t,i),e&&this._snapshotRebuilders.set(t,e),this.currentType&&this.snapshotTypes.set(t,this.currentType)}restoreForMessage(t){const e=this._snapshotRebuilders.get(t),a=this.snapshots.get(t);if(!e&&!a)return!1;const n=this.deps.shadow(),i=this.deps.drawer();this.activePanelMessageId&&n?.querySelector(`[data-message-id="${CSS.escape(this.activePanelMessageId)}"]`)?.classList.remove("gengage-chat-bubble--active"),n?.querySelector(`[data-message-id="${CSS.escape(t)}"]`)?.classList.add("gengage-chat-bubble--active"),this.activePanelMessageId=t;const r=e?e():a.cloneNode(!0);i?.setPanelContent(r);const o=this.snapshotTypes.get(t);if(i?.setDividerPreviewEnabled(o==="ProductGrid"),o)if(this.currentType=o,r.querySelector(".gengage-chat-product-grid-head-title")&&o==="ProductGrid"){const c=this.deps.currentThreadId();if(c){const d=this.threads.indexOf(c),l=d>0,p=d>=0&&d<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(l,p,"")}}else this.updateTopBar(o);return!0}notifyExtension(t){const e=this.deps.bridge();t?setTimeout(()=>e?.send("maximize-pdp",{}),350):setTimeout(()=>e?.send("minify-pdp",{}),200)}titleForComponent(t,e){if(e)return e;const a=this.deps.i18n();switch(t){case"ProductDetailsPanel":return a.panelTitleProductDetails;case"ProductGrid":return st(this.lastActionType)?a.panelTitleSearchResults:a.panelTitleSimilarProducts;case"ComparisonTable":return a.panelTitleComparisonResults;case"AIGroupingCards":return a.panelTitleCategories;default:return""}}updateTopBar(t,e,a){const n=this.deps.currentThreadId();if(!n)return;const i=this.threads.indexOf(n),r=i>0,o=i>=0&&i<this.threads.length-1,c=a!==void 0?a:this.titleForComponent(t,e);this.deps.drawer()?.updatePanelTopBar(r,o,c)}updateTopBarForLoading(t){const e=this.deps.i18n(),a={productDetails:e.panelTitleProductDetails,productList:st(this.lastActionType)?e.panelTitleSearchResults:e.panelTitleSimilarProducts,comparisonTable:e.panelTitleComparisonResults,groupList:e.panelTitleCategories}[t]??"";if(a){const n=this.deps.currentThreadId(),i=n?this.threads.indexOf(n):-1,r=i>0,o=i>=0&&i<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(r,o,a)}}updateExtendedMode(t){const e={ComparisonTable:"comparisonTable",AIGroupingCards:"groupList",ProductDetailsPanel:"productDetails",ProductGrid:"productList"}[t]??null;this.deps.extendedModeManager()?.setPanelContentType(e)}navigateBack(){const t=this.deps.currentThreadId();if(!t)return;const e=this.threads.indexOf(t);if(e>0){const a=this.threads[e-1];a&&this.deps.rollbackToThread(a)}}navigateForward(){const t=this.deps.currentThreadId();if(!t)return;const e=this.threads.indexOf(t);if(e>=0&&e<this.threads.length-1){const a=this.threads[e+1];a&&this.deps.rollbackToThread(a)}}toPanelSpec(t){const e=t.elements[t.root];if(!e||e.type!=="ProductCard")return t;const a={...e,type:"ProductDetailsPanel"};return{root:t.root,elements:{...t.elements,[t.root]:a}}}destroy(){this.snapshots.clear(),this._snapshotRebuilders.clear(),this.snapshotTypes.clear(),this.activePanelMessageId=null,this.currentType=null,this.threads=[]}};function st(t){return t==="user_message"||t==="inputText"}function bi(t){return t.similarsAppend&&t.currentPanelType==="ProductDetailsPanel"&&t.hasPanelContent&&!t.isPanelLoading?"appendSimilars":t.componentType==="ProductGrid"&&!t.isFirstPanelContentInStream&&t.hasPanelContent&&!t.isPanelLoading?"append":"replace"}var ct=class{constructor(t){this.favoritedSkus=new Set,this._favoritesCache=new Map,this._persistLock=Promise.resolve(),this._db=t}get db(){return this._db}set db(t){this._db=t}async persist(t){if(!this._db)return;const e=this._persistLock;let a;this._persistLock=new Promise(n=>{a=n}),await e;try{await this._persistImpl(t)}finally{a()}}async _persistImpl(t){if(!this._db)return;const e=t.messages.map(n=>{const i={id:n.id,role:n.role,timestamp:n.timestamp,status:n.status==="streaming"?"done":n.status};return n.threadId!==void 0&&(i.threadId=n.threadId),n.content!==void 0&&(i.content=n.content),n.silent&&(i.silent=!0),i}),a={};for(const[n,i]of t.panelSnapshots)i.querySelector(".gengage-chat-panel-skeleton")||(a[n]=i.innerHTML);await this._db.saveSession({userId:t.userId,appId:t.appId,sessionId:t.sessionId,messages:e,currentThreadId:t.currentThreadId,lastThreadId:t.lastThreadId,createdAt:t.chatCreatedAt,panelThreads:t.panelThreads.length>0?t.panelThreads:void 0,thumbnailEntries:t.thumbnailEntries.length>0?t.thumbnailEntries:void 0,panelSnapshotHtml:Object.keys(a).length>0?a:void 0,sku:t.sku}),t.lastBackendContext&&t.currentThreadId&&await this._db.saveContext({sessionId:t.sessionId,threadId:t.currentThreadId,context:t.lastBackendContext});for(const n of t.messages)n.uiSpec&&n.threadId&&await this._db.savePayload({threadId:n.threadId,messageId:n.id,uiSpec:n.uiSpec})}async saveAndOpenURL(t,e,a){try{await e()}catch{}a?.send("openURLInNewTab",{url:t}),S.isSafeUrl(t)&&(window.location.href=t)}async loadPayload(t,e){if(!this._db)return null;for(let a=0;a<3;a++){try{const n=await this._db.loadPayload(t,e);if(n)return n.uiSpec}catch{}a<2&&await new Promise(n=>setTimeout(n,100))}return null}async loadFavorites(t,e){if(this._db)try{const a=await this._db.loadFavorites(t,e);for(const n of a)this.favoritedSkus.add(n.sku),this._favoritesCache.set(n.sku,n)}catch{}}getFavoriteProducts(){return[...this._favoritesCache.values()].sort((t,e)=>(e.savedAt??"").localeCompare(t.savedAt??""))}async toggleFavorite(t,e,a,n){if(this.favoritedSkus.has(a))this.favoritedSkus.delete(a),this._favoritesCache.delete(a),this._db&&await this._db.removeFavorite(t,e,a);else{const i={userId:t,appId:e,sku:a,name:n.name,imageUrl:n.imageUrl,price:n.price,savedAt:new Date().toISOString()};this.favoritedSkus.add(a),this._favoritesCache.set(a,i),this._db&&await this._db.saveFavorite(i)}}close(){this._db?.close(),this._db=null}},He=t=>`${t}:assistant`,It=class{constructor(){this.groups={},this.pinnedToBottom=!0,this.userInteracting=!1,this.focusedThreadId=null,this.shown=!1,this.lastAutoAnchoredGroupId=null,this.scrollRequest=null,this._nextScrollId=1}setShown(t){this.shown=t,t||(this.userInteracting=!1,this.pinnedToBottom=!0,this.focusedThreadId=null,this.scrollRequest=null)}reset(){this.groups={},this.pinnedToBottom=!0,this.userInteracting=!1,this.focusedThreadId=null,this.lastAutoAnchoredGroupId=null,this.scrollRequest=null}registerAssistantActivity(t){const e=He(t),a=this.groups[e],n=this.shown&&this.pinnedToBottom&&!this.userInteracting?"active_unread":"unseen";this.groups[e]={id:e,threadId:t,readState:a?.readState==="seen"?n:a?.readState??n,status:"streaming",updatedAt:Date.now()},a?.readState==="seen"&&this.lastAutoAnchoredGroupId===e&&(this.lastAutoAnchoredGroupId=null)}finalizeAssistantGroup(t){const e=He(t),a=this.groups[e];a&&(a.status="complete",a.updatedAt=Date.now())}setGroupReadStates(t){const e=Date.now();for(const{groupId:a,readState:n}of t){const i=this.groups[a];!i||i.readState===n||(i.readState=n,i.updatedAt=e)}}requestThreadFocus(t,e="smooth"){this.focusedThreadId=t,this.scrollRequest={id:this._nextScrollId++,type:"thread",threadId:t,behavior:e}}requestScrollToBottom(t="smooth"){this.scrollRequest={id:this._nextScrollId++,type:"bottom",behavior:t}}consumeScrollRequest(t){this.scrollRequest?.id===t&&(this.scrollRequest=null)}releaseFocusedThread(){this.focusedThreadId=null}setFocusedThreadId(t){this.focusedThreadId=t}markGroupAutoAnchored(t){this.lastAutoAnchoredGroupId=t}shouldBlockStreamAutoScroll(){return this.shown&&this.userInteracting&&!this.pinnedToBottom}getAssistantReadState(t){return this.groups[He(t)]?.readState}};function fi(t,e){for(let a=t.length-1;a>=0;a--){const n=t[a],i=e.getAssistantReadState(n);if(i!==void 0&&i!=="seen")return n}return null}function Nt(t){const{label:e,avatarUrl:a,primaryColor:n,secondaryColor:i="#111827",fontFamily:r="inherit",labelClassName:o="gengage-pill-launcher-label",styleId:c="gengage-pill-launcher-style",mobileBreakpoint:d=768,desktopWidth:l="188px",desktopHeight:p="60px",iconSize:s="46px"}=t,u=`${parseInt(l,10)-14}px`,h=`${parseInt(p,10)-4}px`,w=`${parseInt(s,10)-4}px`,m=`
|
|
11
|
+
</svg>`;function La(t){const e=document.createElement("div");e.className="gengage-chat-launcher-container",e.dataset.gengagePart="chat-launcher-container";const a=document.createElement("div");a.className="gengage-chat-launcher-content-area",a.dataset.gengagePart="chat-launcher-content-primary",e.appendChild(a);const n=document.createElement("button");if(n.type="button",n.setAttribute("aria-label",t.ariaLabel??"Open chat"),t.imageUrl){n.className="gengage-chat-launcher gengage-chat-launcher--image-mode";const r=document.createElement("img");r.src=t.imageUrl,r.alt="",r.draggable=!1,n.appendChild(r)}else n.className="gengage-chat-launcher",n.innerHTML=t.svgMarkup??Aa;if(n.dataset.gengagePart="chat-launcher-button",t.tooltip!==void 0){const r=document.createElement("span");r.className="gengage-chat-launcher-tooltip",r.dataset.gengagePart="chat-launcher-tooltip",r.textContent=t.tooltip,n.appendChild(r)}t.hideMobile&&(e.dataset.hideMobile="1"),t.mobileBreakpoint!==void 0&&(e.dataset.mobileBreakpoint=String(t.mobileBreakpoint)),n.addEventListener("click",t.onClick),e.appendChild(n);const i=document.createElement("div");return i.className="gengage-chat-launcher-content-area-bottom",i.dataset.gengagePart="chat-launcher-content-secondary",e.appendChild(i),{container:e,button:n,contentArea:a,contentAreaBottom:i}}var Ta=new Set(["audio/ogg","audio/mpeg","audio/mp3","audio/wav","audio/webm","audio/aac","audio/mp4"]),wt=new Set;function Be(t){t.pause(),t.removeAttribute("src"),t.load(),wt.delete(t)}function Ia(t,e="audio/ogg"){const a=e.split(";")[0].trim();if(!Ta.has(a))return null;try{const n=new Audio(`data:${e};base64,${t}`);return wt.add(n),n.addEventListener("ended",()=>Be(n),{once:!0}),n.play().catch(()=>{Be(n)}),{stop:()=>Be(n)}}catch{return null}}var Na={screen_size:"Screen Size",weight:"Weight",battery_capacity:"Battery Capacity",battery_life:"Battery Life",storage:"Storage",memory:"Memory",ram:"RAM",processor:"Processor",camera:"Camera",resolution:"Resolution",display_type:"Display Type",refresh_rate:"Refresh Rate",color:"Color",material:"Material",dimensions:"Dimensions",warranty:"Warranty",connectivity:"Connectivity",water_resistance:"Water Resistance",operating_system:"Operating System",brand:"Brand",model:"Model",price:"Price",energy_class:"Energy Class",noise_level:"Noise Level",capacity:"Capacity",power:"Power",voltage:"Voltage",width:"Width",height:"Height",depth:"Depth"};function Ma(t,e){return e?.[t]??Na[t]??t.replace(/_/g," ").replace(/^\w/,a=>a.toUpperCase())}function Ze(t){if(typeof t!="string")return!1;const e=Number(t);return Number.isFinite(e)&&e>0}function Ba(t){const e=typeof t=="number"?t:typeof t=="string"?Number(t):NaN;return Number.isFinite(e)&&e>0}function za(t){const e=typeof t=="number"?t:Number(t),a=document.createElement("div");a.className="gengage-chat-comparison-recommended-rating",a.innerHTML='<span class="gengage-chat-comparison-recommended-rating-icon" aria-hidden="true"><svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg></span>';const n=document.createElement("span");return n.className="gengage-chat-comparison-recommended-rating-value",n.textContent=e.toFixed(1),a.appendChild(n),a}function Ha(t){const{recommended:e,products:a,attributes:n,highlights:i,specialCases:r,onProductClick:o,i18n:c}=t,d=document.createElement("div");if(d.className="gengage-chat-comparison",d.dataset.gengagePart="comparison-dialog",d.setAttribute("role","dialog"),d.setAttribute("aria-label",c?.comparisonHeading??"Comparison Results"),e){const l=document.createElement("article");l.className="gengage-chat-comparison-recommended gds-card",l.dataset.gengagePart="comparison-recommended-card";const p=document.createElement("div");p.className="gengage-chat-comparison-recommended-label",p.textContent=c?.recommendedChoiceLabel??"Recommended Choice",l.appendChild(p);const s=document.createElement("div");s.className="gengage-chat-comparison-recommended-body",s.classList.add("gds-clickable"),s.tabIndex=0,s.setAttribute("role","button"),s.setAttribute("aria-label",e.name);const u=document.createElement("div");if(u.className="gengage-chat-comparison-recommended-media",e.imageUrl&&E.isSafeImageUrl(e.imageUrl)){const y=document.createElement("img");y.src=e.imageUrl,y.alt=e.name,y.loading="lazy",y.addEventListener("error",()=>{y.style.display="none"},{once:!0}),u.appendChild(y)}else{const y=document.createElement("div");y.className="gengage-chat-comparison-recommended-placeholder",y.setAttribute("aria-hidden","true"),u.appendChild(y)}s.appendChild(u);const h=document.createElement("div");h.className="gengage-chat-comparison-recommended-info";const w=document.createElement("div");w.className="gengage-chat-comparison-recommended-title",w.textContent=e.name,h.appendChild(w);const m=document.createElement("div");if(m.className="gengage-chat-comparison-recommended-meta",Ba(e.rating)&&m.appendChild(za(e.rating)),Ze(e.price)){const y=document.createElement("div");y.className="gengage-chat-comparison-recommended-price",y.textContent=F.formatPrice(e.price,t.pricing),m.appendChild(y)}if(m.childElementCount>0&&h.appendChild(m),t.recommendedText){const y=document.createElement("p");y.className="gengage-chat-comparison-recommended-text",y.innerHTML=E.sanitizeHtml(t.recommendedText),h.appendChild(y)}s.appendChild(h);const f=()=>{o({sku:e.sku,name:e.name})};if(s.addEventListener("click",f),s.addEventListener("keydown",y=>{y.key!=="Enter"&&y.key!==" "||(y.preventDefault(),f())}),l.appendChild(s),i.length>0){const y=document.createElement("div");y.className="gengage-chat-comparison-highlights",y.dataset.gengagePart="comparison-highlights";const B=document.createElement("div");B.className="gengage-chat-comparison-highlights-label",B.textContent=c?.highlightsLabel??"Key Highlights",y.appendChild(B);const S=document.createElement("ul");for(const A of i){const _=document.createElement("li");_.textContent=A,S.appendChild(_)}y.appendChild(S),l.appendChild(y)}d.appendChild(l)}if(t.keyDifferencesHtml){const l=document.createElement("details");l.className="gengage-chat-comparison-key-differences",l.dataset.gengagePart="comparison-key-differences";const p=document.createElement("summary");p.className="gengage-chat-comparison-key-differences-summary";const s=document.createElement("span");s.className="gengage-chat-comparison-key-differences-summary-label",s.textContent=c?.keyDifferencesLabel??"Key Differences";const u=document.createElement("span");u.className="gengage-chat-comparison-key-differences-summary-meta",u.textContent=c?.viewMoreLabel??"Show More",p.appendChild(s),p.appendChild(u),l.appendChild(p);const h=document.createElement("div");h.className="gengage-chat-comparison-key-differences-content",h.innerHTML=E.sanitizeHtml(Ra(t.keyDifferencesHtml)),l.appendChild(h),d.appendChild(l)}if(r&&r.length>0){const l=document.createElement("details");l.className="gengage-chat-comparison-special gds-evidence-card gds-evidence-card-warning",l.dataset.gengagePart="comparison-special-cases";const p=document.createElement("summary");p.textContent=c?.specialCasesLabel??"For Special Cases",l.appendChild(p);const s=document.createElement("ul");for(const u of r)Da(s,u);s.childElementCount>0&&l.appendChild(s),d.appendChild(l)}if(a.length>0&&n.length>0){const l=document.createElement("table");l.className="gengage-chat-comparison-table gds-comparison-table";const p=document.createElement("thead"),s=document.createElement("tr"),u=document.createElement("th");s.appendChild(u);for(const m of a){const f=document.createElement("th");m.sku===e?.sku&&(f.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell");const y=document.createElement("div");y.className="gengage-chat-comparison-table-header-cell gengage-chat-comparison-table-header-cell--clickable gds-clickable",y.tabIndex=0,y.setAttribute("role","button"),y.setAttribute("aria-label",m.name),y.title=m.name;const B=()=>{o({sku:m.sku,name:m.name})};if(y.addEventListener("click",B),y.addEventListener("keydown",A=>{A.key!=="Enter"&&A.key!==" "||(A.preventDefault(),B())}),m.imageUrl&&E.isSafeImageUrl(m.imageUrl)){const A=document.createElement("img");A.src=m.imageUrl,A.alt=m.name,A.loading="lazy",A.addEventListener("error",()=>{A.style.display="none"},{once:!0}),y.appendChild(A)}else{const A=document.createElement("div");A.className="gengage-chat-comparison-table-header-img-placeholder",A.setAttribute("aria-hidden","true"),y.appendChild(A)}const S=document.createElement("div");if(S.className="gengage-chat-comparison-table-product-name",S.textContent=m.name,y.appendChild(S),Ze(m.price)){const A=document.createElement("div");A.className="gengage-chat-comparison-table-price",A.textContent=F.formatPrice(m.price,t.pricing),y.appendChild(A)}f.appendChild(y),s.appendChild(f)}p.appendChild(s),l.appendChild(p);const h=document.createElement("tbody");for(const m of n){const f=document.createElement("tr"),y=document.createElement("td");y.className="gengage-chat-comparison-label",y.textContent=Ma(m.label,c?.criteriaLabels),f.appendChild(y);for(let B=0;B<m.values.length;B++){const S=document.createElement("td");a[B]?.sku===e?.sku&&(S.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell"),S.textContent=m.values[B]??"",f.appendChild(S)}h.appendChild(f)}l.appendChild(h);const w=document.createElement("div");w.className="gengage-chat-comparison-table-wrapper",w.dataset.gengagePart="comparison-table-wrapper",w.appendChild(l),d.appendChild(w)}return d.addEventListener("keydown",l=>{if(l.key!=="Tab")return;const p=d.querySelectorAll('button, [href], input, [tabindex]:not([tabindex="-1"])');if(p.length===0)return;const s=p[0],u=p[p.length-1];l.shiftKey&&document.activeElement===s?(l.preventDefault(),u.focus()):!l.shiftKey&&document.activeElement===u&&(l.preventDefault(),s.focus())}),d}function Ra(t){if(/<[uo]l[\s>]/i.test(t)||/<li[\s>]/i.test(t))return t;const e=t.split(`
|
|
12
|
+
`).filter(a=>a.trim());return e.length<=1?t:"<ul>"+e.map(a=>`<li>${a.trim()}</li>`).join("")+"</ul>"}function Da(t,e){const a=E.sanitizeHtml(e);if(!a)return;const n=document.createElement("template");n.innerHTML=a;const i=Array.from(n.content.querySelectorAll("li"));if(i.length>0){for(const o of i){const c=document.createElement("li");c.innerHTML=E.sanitizeHtml(o.innerHTML),t.appendChild(c)}return}const r=document.createElement("li");Fa(e)?r.innerHTML=a:r.textContent=e,t.appendChild(r)}function Fa(t){return/<\/?[a-z][\s\S]*>/i.test(t)}function ye(t,e=18){const a="http://www.w3.org/2000/svg",n=document.createElementNS(a,"svg");n.setAttribute("width",String(e)),n.setAttribute("height",String(e)),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","2"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("aria-hidden","true");for(const i of t){const r=document.createElementNS(a,"path");r.setAttribute("d",i),n.appendChild(r)}return n}var ze="General",Xe=220,Ua=6;function ja(t){if(typeof t!="string")return[ze];const e=t.split(/[,;|/]+/).map(a=>a.trim().replace(/\s+/g," ")).filter(a=>a.length>0);return e.length===0?[ze]:Array.from(new Set(e.map(a=>a.toLocaleLowerCase()))).map(a=>e.find(n=>n.toLocaleLowerCase()===a)??ze)}function Oa(t){return t==="positive"||t==="negative"||t==="neutral"?t:"neutral"}function qa(t){if(typeof t!="string")return"";const e=t.trim().replace(/\s+/g," ");return e.length<=Xe?e:`${e.slice(0,Xe-3).trimEnd()}...`}function Va(t){return t.positive>t.negative?"positive":t.negative>t.positive?"negative":"neutral"}function $a(t){return ye(t==="positive"?["M7 17 17 7","M7 7h10v10"]:t==="negative"?["M7 7 17 17","M17 7v10H7"]:["M5 12h14"],14)}function Ga(t,e="1 customer mentions",a="customers mention"){return t===1?e:`${t} ${a}`}function Wa(t,e){const a=document.createElement("div");a.className="gengage-chat-review-highlights";const n=t.props?.reviews;if(!Array.isArray(n)||n.length===0){const m=document.createElement("div");return m.className="gengage-chat-review-empty",m.textContent=e?.emptyReviewsMessage??"No review summary found.",a.appendChild(m),a}const i=n.filter(m=>m!==null&&typeof m=="object"),r=new Map;for(const m of i){const f=Oa(m.review_class),y=qa(m.review_text),B=ja(m.review_tag);for(const S of B){const A=S.toLocaleLowerCase();let _=r.get(A);if(_||(_={key:A,label:S,mentions:0,positive:0,negative:0,neutral:0,snippets:[]},r.set(A,_)),_.mentions+=1,f==="positive"?_.positive+=1:f==="negative"?_.negative+=1:_.neutral+=1,y.length>0&&_.snippets.length<Ua&&!_.snippets.some(M=>M.text===y)){const M={text:y,tone:f};m.review_rating!==void 0&&String(m.review_rating).length>0&&(M.rating=m.review_rating),_.snippets.push(M)}}}const o=Array.from(r.values()).sort((m,f)=>f.mentions!==m.mentions?f.mentions-m.mentions:m.label.localeCompare(f.label));if(o.length===0){const m=document.createElement("div");return m.className="gengage-chat-review-empty",m.textContent=e?.emptyReviewsMessage??"No review summary found.",a.appendChild(m),a}const c=(e?.reviewFilterPositive??"positive").toLowerCase(),d=(e?.reviewFilterNegative??"negative").toLowerCase(),l=document.createElement("div");l.className="gengage-chat-review-subjects-heading",l.textContent=e?.reviewSubjectsHeading??"Select to learn more",a.appendChild(l);let p=o[0]?.key??null;const s=document.createElement("div");s.className="gengage-chat-review-subjects gds-toolbar gds-toolbar-compact";const u=document.createElement("section");u.className="gengage-chat-review-detail gds-evidence-card";const h=()=>{for(;u.firstChild;)u.removeChild(u.firstChild);if(!p)return;const m=o.find(S=>S.key===p);if(!m)return;const f=document.createElement("div");f.className="gengage-chat-review-detail-meta";const y=document.createElement("span");if(y.className="gengage-chat-review-detail-mentions",y.textContent=`${Ga(m.mentions,e?.reviewCustomersMentionSingular,e?.reviewCustomersMentionPlural)} "${m.label}"`,f.appendChild(y),m.positive>0){const S=document.createElement("span");S.className="gengage-chat-review-detail-positive",S.textContent=`${m.positive} ${c}`,f.appendChild(S)}if(m.negative>0){const S=document.createElement("span");S.className="gengage-chat-review-detail-negative",S.textContent=`${m.negative} ${d}`,f.appendChild(S)}u.appendChild(f);const B=document.createElement("div");B.className="gengage-chat-review-snippets";for(const S of m.snippets){const A=document.createElement("article");A.className="gengage-chat-review-snippet",A.dataset.tone=S.tone;const _=document.createElement("div");if(_.className="gengage-chat-review-snippet-text",_.textContent=`"${S.text}"`,A.appendChild(_),S.rating!==void 0&&String(S.rating).length>0){const M=document.createElement("div");M.className="gengage-chat-review-snippet-rating",M.textContent=`★ ${String(S.rating)}`,A.appendChild(M)}B.appendChild(A)}u.appendChild(B)},w=()=>{for(const m of s.querySelectorAll(".gengage-chat-review-subject")){const f=m.dataset.subjectKey===p;m.classList.toggle("gengage-chat-review-subject--active",f),m.classList.toggle("gds-chip-active",f),m.setAttribute("aria-pressed",String(f))}};for(const m of o){const f=Va(m),y=document.createElement("button");y.type="button",y.className="gengage-chat-review-subject gds-chip",y.dataset.subjectKey=m.key,y.dataset.tone=f;const B=document.createElement("span");B.className="gengage-chat-review-subject-icon",B.appendChild($a(f)),y.appendChild(B);const S=document.createElement("span");S.className="gengage-chat-review-subject-label",S.textContent=m.label,y.appendChild(S);const A=document.createElement("span");A.className="gengage-chat-review-subject-count",A.textContent=`(${m.mentions})`,y.appendChild(A),y.addEventListener("click",()=>{p=m.key,w(),h()}),s.appendChild(y)}return a.appendChild(s),w(),h(),a.appendChild(u),a}function Ya(t){if(!t)return;const e=t.discountReason??t.discount_reason??t.campaignReason??t.campaign_reason;if(typeof e!="string")return;const a=e.trim();return a.length>0?a:void 0}function ve(t,e){if(t.productPriceUi?.showCampaignReason===!0)return Ya(e)}function _e(t,e){const a=e?.originalPriceStyle??e?.price_original_style;if(a==="inline"||a==="strikethrough")return a;const n=t.productPriceUi?.originalPriceStyle;return n==="inline"||n==="strikethrough"?n:"strikethrough"}function Ie(t){const e=document.createElement("div");return e.className="gengage-chat-campaign-reason",e.textContent=t,e}function Ne(t,e){for(const n of["campaignReasonLogoUrl","campaign_reason_logo_url","discountBadgeLogoUrl","discount_badge_logo_url"]){const i=e?.[n];if(typeof i=="string"&&i.trim()){const r=i.trim();if(E.isSafeImageUrl(r))return r}}const a=t.productPriceUi?.campaignBadgeLogoUrl;if(typeof a=="string"&&a.trim()){const n=a.trim();if(E.isSafeImageUrl(n))return n}}function Me(t){const e=document.createElement("div");if(e.className="gengage-chat-campaign-price-badge",e.dataset.gengagePart="campaign-price-badge",t.logoUrl){const r=document.createElement("div");r.className="gengage-chat-campaign-price-badge__logo";const o=document.createElement("img");o.alt="",o.loading="lazy",o.src=t.logoUrl,F.addImageErrorHandler(o),r.appendChild(o),e.appendChild(r)}const a=document.createElement("div");a.className="gengage-chat-campaign-price-badge__body";const n=document.createElement("div");n.className="gengage-chat-campaign-price-badge__reason",n.textContent=t.reasonText;const i=document.createElement("span");return i.className="gengage-chat-campaign-price-badge__sale",i.textContent=t.salePriceFormatted,a.appendChild(n),a.appendChild(i),e.appendChild(a),e}function yt(t){const e=t.product.sku;if(typeof e=="string"&&e.length>0)return e;const a=t.action?.payload;return a&&typeof a=="object"&&"sku"in a&&typeof a.sku=="string"?a.sku:null}var Ka={winner:"roleWinner",best_value:"roleBestValue",best_alternative:"roleBestAlternative"};function Qe(t,e){if(!t||!e)return null;const a=Ka[t];return a?e[a]??t:t}function Za(t){const e=t.rating,a=typeof e=="number"?e:typeof e=="string"?parseFloat(e):NaN;if(Number.isNaN(a)||a<=0)return null;const n=document.createElement("div");n.className="gengage-chat-ai-toppick-rating",n.dataset.gengagePart="ai-top-pick-rating";const i=document.createElement("span");i.className="gengage-chat-ai-toppick-rating-icon",i.setAttribute("aria-hidden","true"),i.innerHTML='<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg>';const r=document.createElement("span");return r.className="gengage-chat-ai-toppick-rating-value",r.textContent=a.toFixed(1),n.appendChild(i),n.appendChild(r),n}function Xa(t,e,a,n,i){const r=document.createElement("div");r.className="gengage-chat-ai-toppick-media",r.dataset.gengagePart="ai-top-pick-media";const o=t.product,c=o.imageUrl;if(c&&E.isSafeImageUrl(c)){const l=document.createElement("img");l.className="gengage-chat-ai-toppick-img",l.dataset.gengagePart="ai-top-pick-image",E.safeSetAttribute(l,"src",c),l.loading="lazy",l.alt=e,F.addImageErrorHandler(l),r.appendChild(l)}const d=yt(t);if(d&&!i?.skipOverlayActions){const l=document.createElement("div");if(l.className="gengage-chat-product-card-img-actions",n.onFavoriteToggle){const h=document.createElement("button");h.className="gengage-chat-favorite-btn",h.type="button",h.dataset.gengageFavoriteSku=d,h.setAttribute("aria-label",n.i18n?.addToFavoritesLabel??"Add to favorites");const w=n.favoritedSkus?.has(d)??!1;w&&h.classList.add("gengage-chat-favorite-btn--active"),h.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${w?"currentColor":"none"}" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>`,h.addEventListener("click",m=>{m.stopPropagation(),h.classList.toggle("gengage-chat-favorite-btn--active"),h.querySelector("svg")?.setAttribute("fill",h.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),n.onFavoriteToggle?.(d,o)}),l.appendChild(h)}const p=n.i18n?.findSimilarLabel??"Find Similar",s=document.createElement("button");s.className="gengage-chat-find-similar-pill",s.type="button",s.setAttribute("aria-label",p),s.dataset.tooltip=p,s.innerHTML='<span class="gengage-chat-find-similar-pill-icon" aria-hidden="true"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M16 16l5.5 5.5"/></svg></span>';const u=document.createElement("span");u.className="gengage-chat-find-similar-pill-text",u.textContent=p,s.appendChild(u),s.addEventListener("click",h=>{h.stopPropagation(),n.onAction({title:p,type:"findSimilar",payload:{sku:d,...c?{image_url:c}:{}}})}),l.appendChild(s),r.appendChild(l)}a.appendChild(r)}function Qa(t,e,a){const n=t.price,i=t.originalPrice;if(!n)return;const r=ve(a,t),o=_e(a,t),c=!!(i&&i!==n),d=!!(r&&c),l=Ne(a,t),p=document.createElement("div");if(p.className="gengage-chat-ai-toppick-price",p.dataset.gengagePart="ai-top-pick-price",d){const s=Me({reasonText:r,salePriceFormatted:F.formatPrice(n,a.pricing),...l!==void 0?{logoUrl:l}:{}});if(c&&o==="inline"){p.classList.add("gengage-chat-ai-toppick-price--inline"),p.appendChild(s);const u=document.createElement("span");u.className="gengage-chat-ai-toppick-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-ai-toppick-original-price",h.textContent=F.formatPrice(i,a.pricing),p.appendChild(u),p.appendChild(h)}else{const u=document.createElement("span");u.className="gengage-chat-ai-toppick-original-price",u.textContent=F.formatPrice(i,a.pricing),p.appendChild(u),p.appendChild(document.createTextNode(" ")),p.appendChild(s)}e.appendChild(p);return}if(c&&o==="inline"){p.classList.add("gengage-chat-ai-toppick-price--inline");const s=document.createElement("span");s.className="gengage-chat-ai-toppick-price-current",s.textContent=F.formatPrice(n,a.pricing);const u=document.createElement("span");u.className="gengage-chat-ai-toppick-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-ai-toppick-original-price",h.textContent=F.formatPrice(i,a.pricing),p.appendChild(s),p.appendChild(u),p.appendChild(h)}else if(c){const s=document.createElement("span");s.className="gengage-chat-ai-toppick-original-price",s.textContent=F.formatPrice(i,a.pricing),p.appendChild(s),p.appendChild(document.createTextNode(" "));const u=document.createElement("span");u.className="gengage-chat-ai-toppick-price-current",u.textContent=F.formatPrice(n,a.pricing),p.appendChild(u)}else{const s=document.createElement("span");s.className="gengage-chat-ai-toppick-price-current",s.textContent=F.formatPrice(n,a.pricing),p.appendChild(s)}if(r){const s=document.createElement("div");s.className="gengage-chat-ai-toppick-price-stack",s.appendChild(Ie(r)),s.appendChild(p),e.appendChild(s)}else e.appendChild(p)}function Ja(t,e){const a=typeof t.reason=="string"?t.reason.trim():"",n=typeof t.reviewHighlight=="string"?t.reviewHighlight.trim():"";if(!(!a&&!n)){if(a){const i=document.createElement("p");i.className="gengage-chat-ai-toppick-reason",i.dataset.gengagePart="ai-top-pick-reason",i.textContent=a,e.appendChild(i)}if(n){const i=document.createElement("div");i.className="gengage-chat-ai-toppick-review",i.dataset.gengagePart="ai-top-pick-review",i.textContent=n,e.appendChild(i)}}}function Je(t,e,a){const n=document.createElement("div");n.className=a?"gengage-chat-ai-toppick-card gengage-chat-ai-toppick-card--winner gds-card":"gengage-chat-ai-toppick-card gengage-chat-ai-toppick-card--compact gds-card",n.dataset.gengagePart=a?"ai-top-pick-card-winner":"ai-top-pick-card";const i=t.product,r=yt(t),o=i.url??"",c=i.cartCode,d=i.inStock,l=!!(r&&c&&d!==!1),p=t.action;r&&e.onProductClick?(n.classList.add("gds-clickable"),n.addEventListener("click",_=>{_.target.closest(".gengage-chat-ai-toppick-cta")||_.target.closest(".gengage-chat-favorite-btn")||_.target.closest(".gengage-chat-find-similar-pill")||e.onProductClick?.({sku:r,url:o})})):p&&(n.classList.add("gds-clickable"),n.addEventListener("click",_=>{_.target.closest(".gengage-chat-ai-toppick-cta")||_.target.closest(".gengage-chat-favorite-btn")||_.target.closest(".gengage-chat-find-similar-pill")||e.onAction(p)}));const s=i.name||"Product image",u=!a&&e.isMobile===!0,h=a?Qe(t.role,e.i18n)??e.i18n?.roleWinner??"TOP MATCH":Qe(t.role,e.i18n);if(h&&!u){const _=document.createElement("span");_.className="gengage-chat-ai-toppick-badge gds-badge",_.dataset.gengagePart="ai-top-pick-role-badge",_.textContent=h,n.appendChild(_)}const w=document.createElement("div");w.className="gengage-chat-ai-toppick-top-row",w.dataset.gengagePart="ai-top-pick-top-row",Xa(t,s,w,e,{skipOverlayActions:u});const m=document.createElement("div");if(m.className="gengage-chat-ai-toppick-body",m.dataset.gengagePart="ai-top-pick-body",h&&u){const _=document.createElement("div");_.className="gengage-chat-ai-toppick-role-line",_.dataset.gengagePart="ai-top-pick-role-line",_.textContent=h,m.appendChild(_)}const f=i.name;if(f){const _=document.createElement("div");_.className="gengage-chat-ai-toppick-name",_.dataset.gengagePart="ai-top-pick-name",_.textContent=f,m.appendChild(_)}const y=Za(i);y&&m.appendChild(y),Qa(i,m,e),t.labels&&t.labels.length>0&&m.appendChild(tn(t.labels)),w.appendChild(m),n.appendChild(w);const B=document.createElement("div");if(B.className="gengage-chat-ai-toppick-detail",B.dataset.gengagePart="ai-top-pick-detail",a)Ja(t,B);else{const _=typeof t.reason=="string"?t.reason.trim():"";if(_){const M=document.createElement("p");M.className="gengage-chat-ai-toppick-snippet",M.dataset.gengagePart="ai-top-pick-snippet",M.textContent=_,B.appendChild(M)}}B.childNodes.length>0&&n.appendChild(B);const S=!!(r&&e.topPicksLoadingSku===r),A=(l||p)&&!u;if(S||l||p){const _=document.createElement("div");if(_.className="gengage-chat-ai-toppick-spinner",_.dataset.gengagePart="ai-top-pick-spinner",_.style.display=S?"":"none",n.appendChild(_),A){const M=document.createElement("button");M.className="gengage-chat-ai-toppick-cta gds-btn gds-btn-primary",M.dataset.gengagePart="ai-top-pick-cta",M.type="button",M.textContent=l?e.i18n?.addToCartButton??"Add to Cart":e.i18n?.viewDetails??"View Details",M.addEventListener("click",H=>{if(H.stopPropagation(),l){e.onAction({title:e.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:r,cartCode:c,quantity:1}});return}if(p){if(p.type==="findSimilar"&&r&&e.onProductClick){e.onProductClick({sku:r,url:o});return}e.onAction(p)}}),n.appendChild(M)}}return n}function en(t,e){const a=document.createElement("div");a.className="gengage-chat-ai-top-picks",a.dataset.gengagePart="ai-top-picks";const n=t.props?.suggestions??[];if(n.length===0)return a;const i=document.createElement("h3");i.className="gengage-chat-ai-top-picks-title",i.dataset.gengagePart="ai-top-picks-title",i.textContent=e.i18n?.aiTopPicksTitle??"Top Picks",a.appendChild(i);const r=document.createElement("div");r.className="gengage-chat-ai-top-picks-scroll",r.dataset.gengagePart="ai-top-picks-scroll";const o=n[0];if(r.appendChild(Je(o,e,!0)),n.length>1){const c=document.createElement("div");c.className="gengage-chat-ai-top-picks-rest",c.dataset.gengagePart="ai-top-picks-rest";for(let d=1;d<n.length;d++){const l=n[d],p=l.role==="winner";c.appendChild(Je(l,e,p))}r.appendChild(c)}return a.appendChild(r),a}function tn(t){const e=document.createElement("div");e.className="gengage-chat-ai-toppick-labels",e.dataset.gengagePart="ai-top-pick-labels";for(const a of t){const n=document.createElement("span");n.className="gengage-chat-ai-toppick-label gds-chip",n.dataset.gengagePart="ai-top-pick-label",n.dataset.sentiment=a.sentiment??"neutral",n.textContent=a.label,e.appendChild(n)}return e}function an(t,e){const a=document.createElement("div");a.className="gengage-chat-grounding-review gds-evidence-card",a.dataset.gengagePart="grounding-review-card";const n=t.props??{},i=n.title,r=n.reviewCount,o=n.action,c=e.i18n?.groundingReviewCta??"Read Reviews",d=document.createElement("span");d.className="gengage-chat-grounding-review-icon",d.appendChild(ye(["M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z","M8 9h8","M8 13h6"])),a.appendChild(d);const l=document.createElement("div");l.className="gengage-chat-grounding-review-body",l.dataset.gengagePart="grounding-review-body";const p=document.createElement("div");if(p.className="gengage-chat-grounding-review-title",p.dataset.gengagePart="grounding-review-title",p.textContent=i??e.i18n?.customerReviewsTitle??"Customer Reviews",l.appendChild(p),r){const w=document.createElement("div");w.className="gengage-chat-grounding-review-subtitle",w.dataset.gengagePart="grounding-review-subtitle",w.textContent=(e.i18n?.groundingReviewSubtitle??"{count} yorum mevcut").replace("{count}",r),l.appendChild(w)}a.appendChild(l);const s=document.createElement("span");s.className="gengage-chat-grounding-review-cta",s.dataset.gengagePart="grounding-review-cta";const u=document.createElement("span");u.textContent=c,s.appendChild(u);const h=document.createElement("span");return h.className="gengage-chat-grounding-review-cta-icon",h.appendChild(ye(["M5 12h14","M15 8l4 4-4 4"],14)),s.appendChild(h),a.appendChild(s),o&&(a.classList.add("gds-clickable"),a.setAttribute("role","button"),a.setAttribute("tabindex","0"),a.addEventListener("click",()=>e.onAction(o)),a.addEventListener("keydown",w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),e.onAction(o))})),a}function nn(t){if(t.action.type!=="findSimilar")return t.action;const e=t.action.payload&&typeof t.action.payload=="object"?t.action.payload:null,a=typeof e?.input=="string"&&e.input.trim()||typeof e?.text=="string"&&e.text.trim()||t.name.trim();if(!a)return t.action;const n={text:a,is_suggested_text:1};if(typeof e?.sku=="string"&&e.sku.trim()&&(n.sku=e.sku),Array.isArray(e?.group_skus)){const i=e.group_skus.filter(r=>typeof r=="string"&&r.length>0);i.length>0&&(n.group_skus=i)}return{title:t.action.title,type:"inputText",payload:n}}function rn(t,e){const a=document.createElement("div");a.className="gengage-chat-grouping-cards",a.dataset.gengagePart="ai-grouping-cards";const n=t.props?.entries??[];if(n.length===0)return a;const i=t.props?.sectionTitle,r=typeof i=="string"&&i.trim().length>0?i.trim():e.i18n?.aiBrowseCategoriesTitle;if(r){const c=document.createElement("h3");c.className="gengage-chat-grouping-section-title",c.textContent=r,a.appendChild(c)}const o=document.createElement("div");o.className="gengage-chat-grouping-cards-scroll",o.dataset.gengagePart="ai-grouping-cards-scroll";for(const c of n){const d=document.createElement("div");if(d.className="gengage-chat-grouping-card gds-card",d.dataset.gengagePart="ai-grouping-card",d.classList.add("gds-clickable"),d.addEventListener("click",()=>e.onAction(nn(c))),c.image&&E.isSafeImageUrl(c.image)){const u=document.createElement("img");u.className="gengage-chat-grouping-card-img",u.dataset.gengagePart="ai-grouping-card-image",u.src=c.image,u.alt=c.name,u.width=64,u.height=64,d.appendChild(u)}const l=document.createElement("div");l.className="gengage-chat-grouping-card-body",l.dataset.gengagePart="ai-grouping-card-body";const p=document.createElement("span");if(p.className="gengage-chat-grouping-card-name",p.dataset.gengagePart="ai-grouping-card-name",p.textContent=c.name,l.appendChild(p),c.labels&&c.labels.length>0){const u=document.createElement("div");u.className="gengage-chat-grouping-card-labels",u.dataset.gengagePart="ai-grouping-card-labels";for(const h of c.labels.slice(0,2)){const w=document.createElement("span");w.className="gengage-chat-grouping-card-label gds-chip",w.textContent=h,u.appendChild(w)}l.appendChild(u)}d.appendChild(l);const s=document.createElement("span");s.className="gengage-chat-grouping-card-arrow",s.textContent="↳",d.insertBefore(s,d.firstChild),o.appendChild(d)}return a.appendChild(o),a}function on(t,e){const a=document.createElement("div");a.className="gengage-chat-suggested-search-cards",a.dataset.gengagePart="ai-suggested-search-cards";const n=t.props?.entries??[];if(n.length===0)return a;for(const i of n){const r=document.createElement("div");if(r.className="gengage-chat-suggested-search-card gds-card",r.dataset.gengagePart="ai-suggested-search-card",r.classList.add("gds-clickable"),r.addEventListener("click",()=>e.onAction(i.action)),i.image&&E.isSafeImageUrl(i.image)){const d=document.createElement("img");d.className="gengage-chat-suggested-search-card-img",d.dataset.gengagePart="ai-suggested-search-card-image",d.src=i.image,d.alt=i.shortName,d.width=64,d.height=64,r.appendChild(d)}const o=document.createElement("div");o.className="gengage-chat-suggested-search-card-body",o.dataset.gengagePart="ai-suggested-search-card-body";const c=document.createElement("div");c.className="gengage-chat-suggested-search-card-name",c.dataset.gengagePart="ai-suggested-search-card-name",c.textContent=i.shortName,o.appendChild(c),r.appendChild(o),a.appendChild(r)}return a}function _t(t,e){const a=t.length>=2,n=e.i18n?.compareSelected??"Compare",i=e.comparisonSelectionWarning,r=document.createElement("div");r.className="gengage-chat-comparison-floating-btn",r.dataset.gengagePart="comparison-dock";const o=document.createElement("div");o.className="gengage-chat-comparison-floating-summary";const c=document.createElement("span");c.className="gengage-chat-comparison-floating-count",c.textContent=String(t.length),o.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-comparison-floating-copy";const l=document.createElement("div");if(l.className="gengage-chat-comparison-floating-title",l.textContent=a?`${n} (${t.length})`:e.i18n?.compareMinHint??"Select at least 2 products",d.appendChild(l),i){const s=document.createElement("div");s.className="gengage-chat-comparison-floating-warning",s.setAttribute("role","status"),s.setAttribute("aria-live","polite"),s.textContent=i,d.appendChild(s)}o.appendChild(d),r.appendChild(o);const p=document.createElement("button");if(p.className="gengage-chat-comparison-floating-action gds-btn gds-btn-primary",p.type="button",p.textContent=n,p.disabled=!a,a||p.classList.add("gengage-chat-comparison-floating-action--disabled"),p.addEventListener("click",()=>{a&&e.onAction({title:n,type:"getComparisonTable",payload:{sku_list:[...t]}})}),r.appendChild(p),e.onToggleComparisonSku){const s=document.createElement("button");s.className="gengage-chat-comparison-floating-close gds-btn gds-btn-ghost gds-icon-btn",s.dataset.gengagePart="comparison-dock-close",s.type="button",s.setAttribute("aria-label",e.i18n?.closeAriaLabel??"Close"),s.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg>',s.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),e.onToggleComparisonSku?.("")}),r.appendChild(s)}return r}function sn(t){const e=document.createElement("div");e.className="gengage-chat-pros-cons gds-card-soft",e.dataset.gengagePart="pros-cons";const a=t.props?.productName;if(a){const r=document.createElement("h4");r.className="gengage-chat-pros-cons-heading",r.textContent=a,e.appendChild(r)}const n=t.props?.pros,i=t.props?.cons;if(n&&n.length>0){const r=document.createElement("ul");r.className="gengage-chat-pros-cons-list",r.dataset.gengagePart="pros-list";for(const o of n){const c=document.createElement("li");c.className="gengage-chat-pros-cons-item",c.dataset.gengagePart="pros-item";const d=document.createElement("span");d.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--pro",d.textContent="✓",c.appendChild(d);const l=document.createElement("span");l.textContent=o,c.appendChild(l),r.appendChild(c)}e.appendChild(r)}if(i&&i.length>0){const r=document.createElement("ul");r.className="gengage-chat-pros-cons-list",r.dataset.gengagePart="cons-list";for(const o of i){const c=document.createElement("li");c.className="gengage-chat-pros-cons-item",c.dataset.gengagePart="cons-item";const d=document.createElement("span");d.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--con",d.textContent="✗",c.appendChild(d);const l=document.createElement("span");l.textContent=o,c.appendChild(l),r.appendChild(c)}e.appendChild(r)}return e}function cn(t,e){const a=t.props?.groups??[],n=t.props?.filterTags??[],i=document.createElement("div");if(i.className="gengage-chat-categories",i.dataset.gengagePart="categories-container",a.length===0)return i;const r=document.createElement("div");r.className="gengage-chat-categories-tabs gds-toolbar",r.dataset.gengagePart="categories-tab-bar",r.setAttribute("role","tablist");const o=[],c=[],d=l=>{for(let p=0;p<o.length;p++){const s=p===l;o[p].classList.toggle("gengage-chat-categories-tab--active",s),o[p].classList.toggle("is-active",s),o[p].setAttribute("aria-selected",String(s)),o[p].tabIndex=s?0:-1,c[p].style.display=s?"":"none"}};for(let l=0;l<a.length;l++){const p=a[l],s=`gengage-cat-tab-${l}`,u=`gengage-cat-panel-${l}`,h=document.createElement("button");h.className="gengage-chat-categories-tab gds-tab",h.type="button",h.dataset.gengagePart="categories-tab",h.id=s,h.setAttribute("role","tab"),h.setAttribute("aria-controls",u),h.setAttribute("aria-selected",String(l===0)),h.tabIndex=l===0?0:-1,l===0&&h.classList.add("gengage-chat-categories-tab--active","is-active"),h.textContent=p.groupName,h.addEventListener("click",()=>d(l)),h.addEventListener("keydown",m=>{let f=-1;m.key==="ArrowRight"||m.key==="ArrowDown"?f=(l+1)%a.length:m.key==="ArrowLeft"||m.key==="ArrowUp"?f=(l-1+a.length)%a.length:m.key==="Home"?f=0:m.key==="End"&&(f=a.length-1),f>=0&&(m.preventDefault(),d(f),o[f].focus())}),o.push(h),r.appendChild(h);const w=document.createElement("div");w.className="gengage-chat-categories-grid",w.dataset.gengagePart="categories-panel",w.id=u,w.setAttribute("role","tabpanel"),w.setAttribute("aria-labelledby",s),l!==0&&(w.style.display="none");for(const m of p.products){const f=ln(m,e);w.appendChild(f)}c.push(w)}i.appendChild(r);for(const l of c)i.appendChild(l);if(n.length>0){const l=document.createElement("div");l.className="gengage-chat-categories-filter-tags gds-toolbar",l.dataset.gengagePart="categories-filter-tags";for(const p of n){const s=document.createElement("button");s.className="gengage-chat-categories-filter-tag gds-chip",s.type="button",s.dataset.gengagePart="categories-filter-tag",s.textContent=p.title,p.action&&s.addEventListener("click",()=>{e.onAction(p.action)}),l.appendChild(s)}i.appendChild(l)}return i}function ln(t,e){const a=document.createElement("div");if(a.className="gengage-chat-product-card gds-card gds-product-card gds-card-interactive",a.dataset.gengagePart="categories-product-card",t.imageUrl&&E.isSafeImageUrl(t.imageUrl)){const r=document.createElement("img");r.className="gengage-chat-product-card-img",r.src=t.imageUrl,r.alt=t.name,r.loading="lazy",F.addImageErrorHandler(r),a.appendChild(r)}const n=document.createElement("div");n.className="gengage-chat-product-card-body";const i=document.createElement("div");if(i.className="gengage-chat-product-card-name",i.textContent=t.name,n.appendChild(i),t.price){const r=document.createElement("div");r.className="gengage-chat-product-card-price",r.textContent=F.formatPrice(t.price,e.pricing),n.appendChild(r)}return a.appendChild(n),(e.onProductSelect||e.onAction)&&(a.classList.add("gds-clickable"),a.addEventListener("click",()=>{if(t.sku){e.onAction({title:t.name,type:"launchSingleProduct",payload:{sku:t.sku}});return}e.onProductSelect?.(t)})),a}function gn(t,e){const a=document.createElement("div");a.className="gengage-chat-handoff-notice gds-evidence-card gds-evidence-card-warning",a.dataset.gengagePart="handoff-notice",a.setAttribute("role","alert");const n=document.createElement("span");n.className="gengage-chat-handoff-notice-icon",n.textContent="👤",n.setAttribute("aria-hidden","true"),a.appendChild(n);const i=document.createElement("h4");i.className="gengage-chat-handoff-notice-heading",i.textContent=e.i18n?.handoffHeading??"Transferring to a support agent",a.appendChild(i);const r=t.props?.summary;if(r){const o=document.createElement("p");o.className="gengage-chat-handoff-notice-summary",o.textContent=r,a.appendChild(o)}return a}function dn(t,e){const a=t.props?.product??t.props,n=document.createElement("div");if(n.className="gengage-chat-product-summary gds-card",n.dataset.gengagePart="product-summary-card",!a)return n;n.classList.add("gds-clickable"),n.addEventListener("click",h=>{h.target.closest("a")||e.onProductSelect?.(a)});const i=a.imageUrl;if(i&&E.isSafeUrl(i)){const h=document.createElement("div");h.className="gengage-chat-product-summary__image",h.dataset.gengagePart="product-summary-image";const w=document.createElement("img");w.loading="lazy",E.safeSetAttribute(w,"src",i),w.alt=a.name||"Product image",F.addImageErrorHandler(w),h.appendChild(w),n.appendChild(h)}const r=document.createElement("div");r.className="gengage-chat-product-summary__content",r.dataset.gengagePart="product-summary-content";const o=a.brand,c=a.name;if(c){const h=document.createElement("div");h.className="gengage-chat-product-summary__name",h.dataset.gengagePart="product-summary-name";const w=o&&!c.toLowerCase().startsWith(o.toLowerCase())?`${o} ${c}`:c;h.textContent=w,h.title=w,r.appendChild(h)}const d=a.rating,l=a.reviewCount;if(typeof d=="number"&&Number.isFinite(d)&&d>0){const h=document.createElement("div");if(h.className="gengage-chat-product-summary__rating",h.dataset.gengagePart="product-summary-rating",h.appendChild(F.createStarRatingElement(d)),typeof l=="number"&&Number.isFinite(l)){const w=document.createElement("span");w.className="gengage-chat-product-summary__review-count",w.textContent=` (${l})`,h.appendChild(w)}r.appendChild(h)}const p=a.price,s=a.originalPrice;if(p){const h=ve(e,a),w=_e(e,a),m=!!(s&&s!==p),f=document.createElement("div");f.className="gengage-chat-product-summary__price",f.dataset.gengagePart="product-summary-price";const y=!!(h&&m),B=Ne(e,a);if(y){const S=Me({reasonText:h,salePriceFormatted:F.formatPrice(p,e.pricing),...B!==void 0?{logoUrl:B}:{}});if(m&&w==="inline"){f.classList.add("gengage-chat-product-summary__price--inline"),f.appendChild(S);const A=document.createElement("span");A.className="gengage-chat-product-summary__price-sep",A.setAttribute("aria-hidden","true");const _=document.createElement("span");_.className="gengage-chat-product-summary__price-original",_.textContent=F.formatPrice(s,e.pricing),f.appendChild(A),f.appendChild(_)}else{const A=document.createElement("span");A.className="gengage-chat-product-summary__price-original",A.textContent=F.formatPrice(s,e.pricing),f.appendChild(A),f.appendChild(document.createTextNode(" ")),f.appendChild(S)}r.appendChild(f)}else{if(m&&w==="inline"){f.classList.add("gengage-chat-product-summary__price--inline");const S=document.createElement("span");S.className="gengage-chat-product-summary__price-current",S.textContent=F.formatPrice(p,e.pricing);const A=document.createElement("span");A.className="gengage-chat-product-summary__price-sep",A.setAttribute("aria-hidden","true");const _=document.createElement("span");_.className="gengage-chat-product-summary__price-original",_.textContent=F.formatPrice(s,e.pricing),f.appendChild(S),f.appendChild(A),f.appendChild(_)}else if(m){const S=document.createElement("span");S.className="gengage-chat-product-summary__price-original",S.textContent=F.formatPrice(s,e.pricing),f.appendChild(S),f.appendChild(document.createTextNode(" "));const A=document.createElement("span");A.className="gengage-chat-product-summary__price-current",A.textContent=F.formatPrice(p,e.pricing),f.appendChild(A)}else{const S=document.createElement("span");S.className="gengage-chat-product-summary__price-current",S.textContent=F.formatPrice(p,e.pricing),f.appendChild(S)}if(h){const S=document.createElement("div");S.className="gengage-chat-product-summary__price-stack",S.appendChild(Ie(h)),S.appendChild(f),r.appendChild(S)}else r.appendChild(f)}}n.appendChild(r);const u=a.url;if(u&&E.isSafeUrl(u)){const h=document.createElement("a");h.className="gengage-chat-product-summary__cta gds-chip gds-chip-active",h.dataset.gengagePart="product-summary-cta",E.safeSetAttribute(h,"href",u),E.safeSetAttribute(h,"target","_blank"),E.safeSetAttribute(h,"rel","noopener noreferrer"),h.textContent=e.i18n?.productCtaLabel??"View",n.appendChild(h)}return n}var pn={PhotoAnalysisCard:({element:t,context:e})=>ga(t,e),BeautyPhotoStep:({element:t,context:e})=>ft(t,e)};function hn(t){if(typeof t!="string")return;const e=t.trim();if(!e)return;if(/^https?:\/\//i.test(e))return e;let a=e.split(/[?#]/)[0];if(a&&(a=a.replace(/^\/+/,""),a.startsWith("remoteConfig/")&&(a=a.slice(13)),!!a))return`https://configs.gengage.ai/assets/${a}`}function un(t,e,a,n,i){const r=document.createElement("div");r.className="gengage-chat-consulting-style-picker";const o=document.createElement("div");o.className="gengage-chat-consulting-style-picker-title",o.textContent=(a==="watch_expert"?i?.i18n?.watchStylesPreparedTitle??"Prepared {count} style directions for you":i?.i18n?.beautyStylesPreparedTitle??"Prepared {count} beauty styles for you").replace("{count}",String(n.length)),r.appendChild(o);const c=document.createElement("div");c.className="gengage-chat-consulting-style-grid",r.appendChild(c);const d=p=>{e.innerHTML="";const s=Array.isArray(p.product_list)?p.product_list:[],u=Array.isArray(p.recommendation_groups)?p.recommendation_groups:[];if(u.length>0){const h=new Map;for(const f of s){const y=typeof f?.sku=="string"?f.sku:void 0;y&&h.set(y,f)}const w=new Set;for(const f of u){const y=Array.isArray(f.skus)?f.skus.filter(T=>typeof T=="string"&&T.trim().length>0):[],B=y.map(T=>(w.add(T),h.get(T))).filter(T=>!!T);if(B.length===0)continue;const S=document.createElement("section");S.className="gengage-chat-consulting-group";const A=document.createElement("div");A.className="gengage-chat-consulting-group-header";const _=document.createElement("h4");_.className="gengage-chat-consulting-group-label";const M=typeof f.label=="string"&&f.label.trim().length>0?f.label:"Öneri";if(_.textContent=y.length>0?`${M} (${y.length})`:M,A.appendChild(_),typeof f.reason=="string"&&f.reason.trim().length>0){const T=document.createElement("p");T.className="gengage-chat-consulting-group-reason",T.textContent=f.reason,A.appendChild(T)}S.appendChild(A);const H=document.createElement("div");H.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",H.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,B.length))));for(const T of B){const q=Se({type:"ProductCard",props:{product:T}},i??{onAction:()=>{}});H.appendChild(q)}S.appendChild(H),e.appendChild(S)}const m=s.filter(f=>{const y=typeof f?.sku=="string"?f.sku:"";return y.length>0&&!w.has(y)});if(m.length>0){const f=document.createElement("div");f.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",f.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,m.length))));for(const y of m){const B=Se({type:"ProductCard",props:{product:y}},i??{onAction:()=>{}});f.appendChild(B)}e.appendChild(f)}return}for(const h of s){const w=Se({type:"ProductCard",props:{product:h}},i??{onAction:()=>{}});e.appendChild(w)}};let l=0;n.forEach((p,s)=>{const u=document.createElement("button");u.type="button",u.className="gengage-chat-consulting-style-btn gds-card",s===0&&u.classList.add("gengage-chat-consulting-style-btn--active"),u.setAttribute("aria-label",p.style_label??`Style ${s+1}`);const h=document.createElement("div");h.className="gengage-chat-consulting-style-media";const w=hn(p.image_url);if(w&&E.isSafeUrl(w)){const f=document.createElement("img");f.className="gengage-chat-consulting-style-image",E.safeSetAttribute(f,"src",w),f.alt=p.style_label??`Style ${s+1}`,f.loading="lazy",F.addImageErrorHandler(f),h.appendChild(f)}const m=document.createElement("span");m.className="gengage-chat-consulting-style-caption",m.textContent=p.style_label??`Style ${s+1}`,h.appendChild(m),u.appendChild(h),u.addEventListener("click",()=>{l!==s&&(l=s,c.querySelectorAll(".gengage-chat-consulting-style-btn").forEach((f,y)=>f.classList.toggle("gengage-chat-consulting-style-btn--active",y===s)),d(p))}),c.appendChild(u)}),t.appendChild(r),d(n[0]??{})}function mn(t){const e=typeof t.props?.source=="string"?t.props.source:void 0,a=(Array.isArray(t.props?.styleVariations)?t.props.styleVariations:[]).filter(n=>Array.isArray(n.product_list)&&n.product_list.length>0);return{isConsulting:g.isConsultingSource(e)&&a.length>0,source:e,styleVariations:a}}function bn(t,e,a,n){un(t,e,a.source,a.styleVariations,n)}function Ue(){return window.innerWidth<768}var kt={ActionButtons:({element:t,context:e})=>fn(t,e),ActionButton:({element:t,context:e})=>vn(t,e),ProductCard:({element:t,context:e})=>Se(t,e),ProductDetailsPanel:({element:t,context:e})=>Fn(t,e),ProductGrid:({element:t,spec:e,renderElement:a,context:n})=>Wn(t,e,a,n),ReviewHighlights:({element:t,context:e})=>Wa(t,{emptyReviewsMessage:e.i18n?.emptyReviewsMessage,reviewFilterPositive:e.i18n?.reviewFilterPositive,reviewFilterNegative:e.i18n?.reviewFilterNegative,reviewCustomersMentionSingular:e.i18n?.reviewCustomersMentionSingular,reviewCustomersMentionPlural:e.i18n?.reviewCustomersMentionPlural,reviewSubjectsHeading:e.i18n?.reviewSubjectsHeading}),ComparisonTable:({element:t,context:e})=>Yn(t,e),AITopPicks:({element:t,context:e})=>en(t,e),GroundingReviewCard:({element:t,context:e})=>an(t,e),AIGroupingCards:({element:t,context:e})=>rn(t,e),AISuggestedSearchCards:({element:t,context:e})=>on(t,e),ProsAndCons:({element:t})=>sn(t),CategoriesContainer:({element:t,context:e})=>cn(t,e),HandoffNotice:({element:t,context:e})=>gn(t,e),ProductSummaryCard:({element:t,context:e})=>dn(t,e),Divider:({element:t})=>Kn(t),...pn},$e=({element:t,renderElement:e})=>{if(!t.children||t.children.length===0)return null;const a=document.createElement("div");for(const n of t.children){const i=e(n);i&&a.appendChild(i)}return a};function Ct(){return{...kt}}function St(t,e,a=kt,n=$e){return g.renderUISpecWithRegistry({spec:t,context:e,registry:a,containerClassName:"gengage-chat-uispec",unknownRenderer:n})}function fn(t,e){const a=document.createElement("div");a.className="gengage-chat-action-buttons";const n=t.props?.buttons;if(n)for(const i of n){const r=document.createElement("button");r.className="gengage-chat-action-btn",r.textContent=i.label,r.addEventListener("click",()=>e.onAction(i.action)),a.appendChild(r)}return a}function vn(t,e){const a=document.createElement("button");a.className="gengage-chat-action-btn";const n=t.props?.label;typeof n=="string"&&(a.textContent=n);const i=t.props?.action;return i&&a.addEventListener("click",()=>e.onAction(i)),a}function et(t,e,a,n,i){t.replaceChildren();const r=_e(e,a),o=!!(i&&n&&i!==n),c=ve(e,a),d=!!(c&&o),l=Ne(e,a);if(!n||parseFloat(n)<=0)return;if(d){const s=Me({reasonText:c,salePriceFormatted:F.formatPrice(n,e.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&r==="inline"){t.classList.add("gengage-chat-product-card-price-block--inline");const u=document.createElement("div");u.className="gengage-chat-product-card-price-row",u.appendChild(s);const h=document.createElement("span");h.className="gengage-chat-product-card-price-sep",h.setAttribute("aria-hidden","true");const w=document.createElement("span");w.className="gengage-chat-product-card-original-price",w.textContent=F.formatPrice(i,e.pricing),u.appendChild(h),u.appendChild(w),t.appendChild(u);return}if(t.classList.remove("gengage-chat-product-card-price-block--inline"),t.appendChild(s),o){t.appendChild(document.createTextNode(" "));const u=document.createElement("span");u.className="gengage-chat-product-card-original-price",u.textContent=F.formatPrice(i,e.pricing),t.appendChild(u)}return}if(o&&r==="inline"){t.classList.add("gengage-chat-product-card-price-block--inline");const s=document.createElement("div");s.className="gengage-chat-product-card-price-row";const u=document.createElement("span");u.className="gengage-chat-product-card-current-price",u.textContent=F.formatPrice(n,e.pricing);const h=document.createElement("span");h.className="gengage-chat-product-card-price-sep",h.setAttribute("aria-hidden","true");const w=document.createElement("span");w.className="gengage-chat-product-card-original-price",w.textContent=F.formatPrice(i,e.pricing),s.appendChild(u),s.appendChild(h),s.appendChild(w),t.appendChild(s);return}t.classList.remove("gengage-chat-product-card-price-block--inline");const p=document.createElement("span");if(p.className="gengage-chat-product-card-current-price",p.textContent=F.formatPrice(n,e.pricing),t.appendChild(p),o){t.appendChild(document.createTextNode(" "));const s=document.createElement("span");s.className="gengage-chat-product-card-original-price",s.textContent=F.formatPrice(i,e.pricing),t.appendChild(s)}}function tt(t,e,a,n,i,r,o){t.classList.remove("gengage-chat-product-details-price--inline"),t.replaceChildren(),t.className="gengage-chat-product-details-price";const c=ve(e,a),d=!!(c&&o),l=Ne(e,a);if(d){const s=Me({reasonText:c,salePriceFormatted:F.formatPrice(n,e.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&r==="inline"){t.classList.add("gengage-chat-product-details-price--inline"),t.appendChild(s);const u=document.createElement("span");u.className="gengage-chat-product-details-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=F.formatPrice(i,e.pricing),t.appendChild(u),t.appendChild(h)}else{if(o){const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=F.formatPrice(i,e.pricing),t.appendChild(u),t.appendChild(document.createTextNode(" "))}t.appendChild(s)}}else if(o&&r==="inline"){t.classList.add("gengage-chat-product-details-price--inline");const s=document.createElement("span");s.className="gengage-chat-product-details-current-price",s.textContent=F.formatPrice(n,e.pricing);const u=document.createElement("span");u.className="gengage-chat-product-details-price-sep",u.setAttribute("aria-hidden","true");const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=F.formatPrice(i,e.pricing),t.appendChild(s),t.appendChild(u),t.appendChild(h)}else{if(o){const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=F.formatPrice(i,e.pricing),t.appendChild(u),t.appendChild(document.createTextNode(" "))}const s=document.createElement("span");s.className="gengage-chat-product-details-current-price",s.textContent=F.formatPrice(n,e.pricing),t.appendChild(s)}const p=Ae(a,"discountPercent","price_discount_rate");if(typeof p=="number"&&p>0){const s=document.createElement("span");s.className="gengage-chat-product-details-discount-badge",s.textContent=`%${F.clampDiscount(p)}`,t.appendChild(s)}}function Se(t,e){const a=document.createElement("div");a.className="gengage-chat-product-card gds-card gds-product-card gds-card-interactive";const n=t.props?.product??t.props;if(!n)return a;const i=n.sku;i&&(a.dataset.sku=i);const r=t.props?.action;(e.onProductSelect||r)&&(a.classList.add("gds-clickable"),a.addEventListener("click",I=>{if(!a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")&&!I.target.closest(".gengage-chat-product-card-atc")&&!I.target.closest(".gengage-chat-product-card-cta")){if(r){e.onAction(r);return}e.onProductSelect?.(n)}}));const o=n.imageUrl;if(o&&E.isSafeUrl(o)){const I=document.createElement("div");I.className="gengage-chat-product-card-img-wrapper";const v=document.createElement("img");v.className="gengage-chat-product-card-img",v.loading="lazy",E.safeSetAttribute(v,"src",o);const b=n.name;b&&(v.alt=b),F.addImageErrorHandler(v),I.appendChild(v);const x=n.discountPercent;if(typeof x=="number"&&x>0){const P=document.createElement("span");P.className="gengage-chat-product-card-discount-badge",P.textContent=`%${F.clampDiscount(x)}`,I.appendChild(P)}const k=document.createElement("div");k.className="gengage-chat-product-card-img-actions";const L=n.sku;if(L&&e.onFavoriteToggle){const P=document.createElement("button");P.className="gengage-chat-favorite-btn",P.type="button",P.dataset.gengageFavoriteSku=L,P.setAttribute("aria-label",e.i18n?.addToFavoritesLabel??"Add to favorites");const j=e.favoritedSkus?.has(L)??!1;j&&P.classList.add("gengage-chat-favorite-btn--active"),P.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${j?"currentColor":"none"}" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>`,P.addEventListener("click",U=>{U.stopPropagation(),P.classList.toggle("gengage-chat-favorite-btn--active");const $=P.querySelector("svg");$&&$.setAttribute("fill",P.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),e.onFavoriteToggle(L,n)}),k.appendChild(P)}const N=n.sku,R=e.i18n?.findSimilarLabel??"Find Similar";if(N){const P=document.createElement("button");P.className="gengage-chat-find-similar-pill",P.type="button",P.setAttribute("aria-label",R),P.dataset.tooltip=R,P.innerHTML='<span class="gengage-chat-find-similar-pill-icon" aria-hidden="true"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M16 16l5.5 5.5"/></svg></span>';const j=document.createElement("span");j.className="gengage-chat-find-similar-pill-text",j.textContent=R,P.appendChild(j),P.addEventListener("click",U=>{U.stopPropagation(),e.onAction({title:R,type:"findSimilar",payload:{sku:N,...o?{image_url:o}:{}}})}),k.appendChild(P)}k.childElementCount>0&&I.appendChild(k),a.appendChild(I)}const c=document.createElement("div");c.className="gengage-chat-product-card-body";const d=n.brand;if(d){const I=document.createElement("div");I.className="gengage-chat-product-card-brand",I.textContent=d,c.appendChild(I)}const l=n.rating,p=n.reviewCount,s=n.price,u=n.originalPrice,h=n.price_async,w=ve(e,n),m=_e(e,n),f=!!(w||u&&s&&u!==s&&parseFloat(s)>0&&m==="inline"),y=typeof l=="number"&&Number.isFinite(l)&&l>0,B=document.createElement("div");B.className="gengage-chat-product-card-meta-row";const S=document.createElement("div");S.className="gengage-chat-product-card-price gengage-chat-product-card-price-block";const A=f?(()=>{const I=document.createElement("div");return I.className="gengage-chat-product-card-price-stack",w&&I.appendChild(Ie(w)),I.appendChild(S),I})():S;if(h===!0){const I=document.createElement("span");I.className="gengage-chat-price-skeleton",S.appendChild(I),setTimeout(()=>{I.parentElement&&(s&&parseFloat(s)>0?et(S,e,n,s,n.originalPrice):I.remove())},300)}else s&&parseFloat(s)>0&&et(S,e,n,s,u);if((S.childElementCount>0||h===!0)&&B.appendChild(A),y){const I=document.createElement("div");I.className="gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";const v=F.clampRating(l),b=[`${v.toFixed(1)}`,"out of 5 stars"];typeof p=="number"&&Number.isFinite(p)&&b.push(`(${p} reviews)`),I.setAttribute("aria-label",b.join(" "));const x=document.createElement("span");x.className="gengage-chat-product-card-rating-compact-star",x.setAttribute("aria-hidden","true"),x.innerHTML='<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg>';const k=document.createElement("span");k.className="gengage-chat-product-card-rating-compact-value",k.textContent=v.toFixed(1),I.appendChild(x),I.appendChild(k),B.appendChild(I)}B.childElementCount===0&&(B.classList.add("gengage-chat-product-card-meta-row--empty"),B.setAttribute("aria-hidden","true")),c.appendChild(B);const _=n.name;if(_){const I=document.createElement("div");I.className="gengage-chat-product-card-name",I.textContent=_,I.title=_,c.appendChild(I)}const M=n.inStock;if(typeof M=="boolean"){const I=document.createElement("div");I.className=`gengage-chat-product-card-stock ${M?"is-in-stock":"is-out-of-stock"}`,I.textContent=M?e.i18n?.inStockLabel??"In Stock":e.i18n?.outOfStockLabel??"Out of Stock",c.appendChild(I)}a.appendChild(c);const H=n.url,T=n.sku,q=n.cartCode,Z=!!(q&&T&&M!==!1),Y=e.i18n?.productCtaLabel??"View";if(Z){const I=document.createElement("div");I.className="gengage-chat-product-card-buy-footer";const v=document.createElement("button");v.type="button",v.className="gengage-chat-product-card-buy-trigger",v.textContent=Y,v.addEventListener("click",b=>{b.stopPropagation(),e.onAction({title:e.i18n?.addToCartButton??Y,type:"addToCart",payload:{sku:T,cartCode:q,quantity:1}})}),I.appendChild(v),a.appendChild(I)}else if(r){const I=document.createElement("button");I.className="gengage-chat-product-card-cta",I.type="button",I.textContent=r.type==="launchSingleProduct"?Y:r.title||Y,I.addEventListener("click",v=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){v.stopPropagation();return}e.onAction(r)}),a.appendChild(I)}else if(H&&E.isSafeUrl(H)){const I=document.createElement("a");I.className="gengage-chat-product-card-cta",E.safeSetAttribute(I,"href",H),E.safeSetAttribute(I,"target","_blank"),E.safeSetAttribute(I,"rel","noopener noreferrer"),I.textContent=Y,I.addEventListener("click",v=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){v.preventDefault(),v.stopPropagation();return}e.onProductClick&&T&&(v.preventDefault(),e.onProductClick({sku:T,url:H}))}),a.appendChild(I)}if(e.comparisonSelectMode&&T&&e.onToggleComparisonSku){const I=document.createElement("div");I.className="gengage-chat-comparison-select-wrapper";const v=e.comparisonSelectedSkus?.includes(T)??!1;v&&I.classList.add("gengage-chat-comparison-select-wrapper--selected");const b=n.name??T,x=e.i18n?.comparisonSelectCardHint??"Tap anywhere on the card to add or remove it from comparison.";I.setAttribute("role","group"),I.setAttribute("aria-label",`${String(b)}. ${x}`);const k=document.createElement("button");k.type="button",k.className="gengage-chat-comparison-checkbox",k.dataset.selected=v?"true":"false",k.setAttribute("aria-pressed",v?"true":"false");const L=document.createElement("span");L.className="gengage-chat-comparison-checkbox-icon",L.innerHTML=v?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>':'<span class="gengage-chat-comparison-checkbox-dot"></span>';const N=document.createElement("span");N.className="gengage-chat-comparison-checkbox-label",N.textContent=v?e.i18n?.comparisonSelectedLabel??"Selected":e.i18n?.comparisonSelectLabel??"Select to compare",k.appendChild(L),k.appendChild(N),k.addEventListener("click",P=>{P.stopPropagation(),e.onToggleComparisonSku?.(T)});const R=document.createElement("div");return R.className="gengage-chat-comparison-card-hint",R.setAttribute("aria-hidden","true"),R.textContent=x,I.addEventListener("click",P=>{P.target.closest(".gengage-chat-comparison-checkbox")||(P.stopPropagation(),e.onToggleComparisonSku?.(T))}),I.appendChild(k),I.appendChild(R),I.appendChild(a),I}return a}var Et=new Set(["color","colour","renk","renk kodu","color code"]),xn=new Set(["size","beden","boyut"]),wn=new Set(["finish","bitiş","bitişi"]),yn=["variants","variantOptions","variant_options","productVariants","product_variants","options"],_n=new Set(["H2","H3","H4","P","BR","UL","OL","LI","STRONG","B","EM","I"]),kn=new Set(["SCRIPT","STYLE","NOSCRIPT","IFRAME","OBJECT","EMBED"]);function ne(t,...e){for(const a of e){const n=t[a];if(typeof n=="string"){const i=n.trim();if(i.length>0)return i}}}function Ae(t,...e){for(const a of e){const n=t[a];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){const i=Number(n.replace(",","."));if(Number.isFinite(i))return i}}}function Ee(t,...e){for(const a of e){const n=t[a];if(typeof n=="boolean")return n}}function Cn(t,...e){for(const a of e){const n=t[a];if(n&&typeof n=="object"&&!Array.isArray(n))return n}}function Sn(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"&&e.trim().length>0):[]}function En(t){const e=[...Sn(t.images),ne(t,"imageUrl","image_url","image")].filter(a=>!!a&&E.isSafeUrl(a));return Array.from(new Set(e))}function Pn(t){return typeof DOMParser<"u"?(new DOMParser().parseFromString(t,"text/html").body.textContent??"").replace(/\s+/g," ").trim():t.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim()}function An(t){const e=ne(t,"description_html","descriptionHtml");if(e){const n=Pn(e);if(n)return{text:n,html:e}}const a=ne(t,"description");return a?{text:a}:void 0}function Le(t){return Array.isArray(t)?t.map(e=>{if(!e||typeof e!="object")return null;const a=e,n=ne(a,"key","name","label","title"),i=a.value,r=typeof i=="string"||typeof i=="number"||typeof i=="boolean"?String(i).trim():void 0;return!n||!r?null:{key:n,value:r}}).filter(e=>e!==null):t&&typeof t=="object"?Object.entries(t).map(([e,a])=>{const n=typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a).trim():void 0;return!e||!n?null:{key:e,value:n}}).filter(e=>e!==null):[]}function Pt(t){const e=Le(t.features);return e.length>0?e:Le(t.specifications)}function Ln(t){const e=t.specifications,a=Le(e);if(a.length>0)return Array.isArray(e)?a:Object.fromEntries(a.map(i=>[i.key,i.value]));const n=Le(t.features);return n.length>0?n:void 0}function de(t,...e){return ne(t,...e)}function at(t,...e){return Ae(t,...e)}function At(t){return de(t,"value","option_value","attribute_value","label","title","name","variant_name","sku")}function Lt(t){const e=de(t,"type","attribute","option_name","attribute_name");return e||(de(t,"value")?de(t,"name","variant_name"):void 0)}function Tn(t){const e=Lt(t)?.toLowerCase();return!!(ne(t,"color","colour","color_hex","hex","swatch","swatchColor")||e&&Et.has(e))}function nt(t){if(!t)return;const e=t.trim();if(!(!e||e.includes(";"))&&(typeof CSS<"u"&&CSS.supports?.("color",e)||/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e)))return e}function In(t){const e=nt(de(t,"swatchColor","swatch","color_hex","hex","color","colour"));if(e)return e;if(Tn(t))return nt(At(t))}function Nn(t){return de(t,"image","imageUrl","image_url","swatchImage","swatch_image")}function Mn(t){return at(t,"price_discounted","priceDiscounted")??de(t,"price_discounted","priceDiscounted")??at(t,"price")??de(t,"price")}function Bn(t){const e=t.trim().toLowerCase();return Et.has(e)||xn.has(e)||wn.has(e)}function zn(t){const e=t.trim().toLowerCase();return e==="renk kodu"?"Renk":e==="color code"?"Color":t.trim()}function Hn(t){for(const e of yn){const a=t[e];if(!Array.isArray(a))continue;const n=a.filter(i=>!!i&&typeof i=="object"&&!Array.isArray(i));if(n.length>0)return n}}function Rn(t){const e=Hn(t);if(e)return e;const a=ne(t,"sku"),n=Ee(t,"inStock","in_stock"),i=[],r=new Set,o=(d,l)=>{if(!Bn(d)||typeof l!="string"&&typeof l!="number"&&typeof l!="boolean")return;const p=String(l).trim();if(!p)return;const s=zn(d),u=`${s.toLowerCase()}:${p.toLowerCase()}`;r.has(u)||(r.add(u),i.push({name:s,value:p,sku:a,inStock:n}))},c=Cn(t,"facetHits","facet_hits");if(c)for(const[d,l]of Object.entries(c))o(d,l);for(const d of Pt(t))o(d.key,d.value);return i}function Dn(t,e){const a=Array.from(new Set(t.map(Lt).filter(n=>!!n)));return a.length===1?`${t.length} ${a[0]}`:e.i18n?.variantsLabel??"Variants"}function Fn(t,e){const a=document.createElement("article");a.className="gengage-chat-product-details-panel";const n=t.props?.product??t.props;if(!n)return a;const i=ne(n,"name"),r=ne(n,"brand"),o=ne(n,"sku"),c=ne(n,"cartCode","cart_code"),d=ne(n,"price"),l=ne(n,"originalPrice","price_original"),p=Ee(n,"price_async"),s=ve(e,n),u=_e(e,n),h=!!(l&&d&&l!==d),w=Ee(n,"inStock","in_stock"),m=Ae(n,"reviewCount","review_count"),f=Ae(n,"rating"),y=En(n),B=Pt(n).slice(0,4);if(y.length>1){const b=document.createElement("div");b.className="gengage-chat-product-details-media gengage-chat-product-details-gallery gengage-chat-product-details-img-wrap";const x=document.createElement("img");x.className="gengage-chat-product-details-img",E.safeSetAttribute(x,"src",y[0]),x.alt=i??"Product image",F.addImageErrorHandler(x),b.appendChild(x);const k=document.createElement("div");k.className="gengage-chat-product-gallery-thumbs";const L=6;let N=null,R=0;const P=e.i18n,j=P?.galleryPrevAriaLabel??"Previous image",U=P?.galleryNextAriaLabel??"Next image",$=z=>z==="prev"?'<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="15 18 9 12 15 6"/></svg>':'<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>',K=document.createElement("button");K.type="button",K.className="gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn",K.setAttribute("aria-label",j),K.innerHTML=$("prev");const X=document.createElement("button");X.type="button",X.className="gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--next gds-btn gds-btn-ghost gds-icon-btn",X.setAttribute("aria-label",U),X.innerHTML=$("next");const ee=()=>{K.disabled=R<=0,X.disabled=R>=y.length-1},V=z=>{if(z<0||z>=y.length||z===R)return;const W=y[z];if(!W)return;E.safeSetAttribute(x,"src",W);const D=k.querySelectorAll(".gengage-chat-product-gallery-thumb");N&&N.classList.remove("gengage-chat-product-gallery-thumb--active"),z<L&&D[z]?(D[z].classList.add("gengage-chat-product-gallery-thumb--active"),N=D[z]):N=null,R=z,ee()};for(let z=0;z<y.length;z++){const W=y[z];if(z>=L)break;const D=document.createElement("img");D.className="gengage-chat-product-gallery-thumb",z===0&&(D.classList.add("gengage-chat-product-gallery-thumb--active"),N=D),E.safeSetAttribute(D,"src",W),D.alt=`${i??"Product"} ${z+1}`,D.width=48,D.height=48,F.addImageErrorHandler(D),D.addEventListener("click",()=>{V(z)}),k.appendChild(D)}if(y.length>L){const z=document.createElement("span");z.className="gengage-chat-product-gallery-thumb-more",z.textContent=`+${y.length-L}`,k.appendChild(z)}K.addEventListener("click",z=>{z.stopPropagation(),V(R-1)}),X.addEventListener("click",z=>{z.stopPropagation(),V(R+1)}),ee();let ie=0;const O=50;x.addEventListener("touchstart",z=>{ie=z.changedTouches[0].clientX},{passive:!0}),x.addEventListener("touchend",z=>{const W=z.changedTouches[0].clientX,D=ie-W;Math.abs(D)<O||V(D>0?Math.min(R+1,y.length-1):Math.max(R-1,0))}),b.appendChild(K),b.appendChild(X),b.appendChild(k),a.appendChild(b)}else if(y.length===1){const b=document.createElement("div");b.className="gengage-chat-product-details-media gengage-chat-product-details-img-wrap";const x=document.createElement("img");x.className="gengage-chat-product-details-img",x.loading="lazy",E.safeSetAttribute(x,"src",y[0]),F.addImageErrorHandler(x),x.alt=i??"Product image",b.appendChild(x),a.appendChild(b)}const S=document.createElement("div");if(S.className="gengage-chat-product-details-content",r&&(!i||!i.toLowerCase().startsWith(r.toLowerCase()))){const b=document.createElement("div");b.className="gengage-chat-product-details-brand",b.textContent=r,S.appendChild(b)}if(i){const b=document.createElement("h3");b.className="gengage-chat-product-details-title",b.textContent=i,b.title=i,S.appendChild(b)}if(typeof f=="number"&&Number.isFinite(f)&&f>0){const b=document.createElement(o?"button":"div");b.className="gengage-chat-product-details-rating",o&&(b.type="button",b.classList.add("gengage-chat-product-details-rating--clickable"),b.setAttribute("aria-label",e.i18n?.groundingReviewCta??"Read Reviews"),b.addEventListener("click",()=>{e.onAction({title:e.i18n?.customerReviewsTitle??"Customer Reviews",type:"reviewSummary",payload:{sku:o}})})),b.appendChild(F.createStarRatingElement(f));const x=document.createElement("span");if(x.className="gengage-chat-product-details-rating-value",x.textContent=F.clampRating(f).toFixed(1),b.appendChild(x),typeof m=="number"&&Number.isFinite(m)){const k=document.createElement("span");k.className="gengage-chat-product-details-review-count",k.textContent=` (${m})`,b.appendChild(k)}S.appendChild(b)}{let b=S;if(s){const k=document.createElement("div");k.className="gengage-chat-product-details-price-stack",k.appendChild(Ie(s)),S.appendChild(k),b=k}const x=document.createElement("div");if(x.className="gengage-chat-product-details-price",p===!0){const k=document.createElement("span");k.className="gengage-chat-price-skeleton",x.appendChild(k),b.appendChild(x),setTimeout(()=>{if(k.parentElement)if(d&&parseFloat(d)>0)tt(x,e,n,d,l,u,h);else{const L=x.parentElement;x.remove(),L?.classList.contains("gengage-chat-product-details-price-stack")&&L.remove()}},300)}else if(d&&parseFloat(d)>0)tt(x,e,n,d,l,u,h),b.appendChild(x);else if(s){const k=b;k.classList.contains("gengage-chat-product-details-price-stack")&&k.remove()}}if(typeof w=="boolean"){const b=document.createElement("div");b.className=`gengage-chat-product-details-stock ${w?"is-in-stock":"is-out-of-stock"}`,b.textContent=w?e.i18n?.inStockLabel??"In Stock":e.i18n?.outOfStockLabel??"Out of Stock",S.appendChild(b)}const A=n.promotions;if(A&&A.length>0){const b=document.createElement("div");b.className="gengage-chat-product-details-promos";for(const x of A.slice(0,3)){if(!x||/%(0(\.0+)?)\s/.test(x))continue;const k=document.createElement("span");k.className="gengage-chat-product-details-promo-badge",k.textContent=x,k.title=x,b.appendChild(k)}b.childElementCount>0&&S.appendChild(b)}if(B.length>0){const b=document.createElement("dl");b.className="gengage-chat-product-details-facts";for(const x of B){const k=document.createElement("div");k.className="gengage-chat-product-details-fact";const L=document.createElement("dt");L.textContent=x.key;const N=document.createElement("dd");N.textContent=x.value,k.appendChild(L),k.appendChild(N),b.appendChild(k)}S.appendChild(b)}const _=Rn(n);if(_.length>0){const b=document.createElement("div");b.className="gengage-chat-product-variants";const x=document.createElement("div");x.className="gengage-chat-product-variants-label",x.textContent=Dn(_,e),b.appendChild(x);const k=document.createElement("div");k.className="gengage-chat-product-variants-list";for(const L of _){const N=At(L),R=de(L,"sku");if(!N&&!R)continue;const P=document.createElement("button");P.className="gengage-chat-product-variant-btn gds-chip",P.type="button";const j=N??R??"";P.title=j;const U=Ee(L,"in_stock","inStock");R&&o&&R===o?(P.classList.add("gengage-chat-product-variant-btn--active"),P.setAttribute("aria-pressed","true")):P.setAttribute("aria-pressed","false"),U===!1&&(P.classList.add("gengage-chat-product-variant-btn--out"),P.disabled=!0);const $=Nn(L),K=In(L);if($&&E.isSafeUrl($)){const V=document.createElement("img");V.className="gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image",E.safeSetAttribute(V,"src",$),V.alt="",V.setAttribute("aria-hidden","true"),F.addImageErrorHandler(V),P.appendChild(V)}else if(K){const V=document.createElement("span");V.className="gengage-chat-product-variant-swatch",V.setAttribute("aria-hidden","true"),V.style.backgroundColor=K,P.appendChild(V)}const X=document.createElement("span");X.className="gengage-chat-product-variant-label",X.textContent=j,P.appendChild(X);const ee=Mn(L);if(ee&&String(ee)!==String(d)){const V=document.createElement("span");V.className="gengage-chat-product-variant-price",V.textContent=F.formatPrice(String(ee),e.pricing),P.appendChild(V)}if(R&&R!==o){const V=i??"",ie=(typeof L.value=="string"?L.value.trim():"")||(typeof L.name=="string"?L.name.trim():"")||(typeof L.variant_name=="string"?L.variant_name.trim():"")||"",O=V.length>0?ie.length>0&&ie!==V?`${V} (${ie})`:V:j;P.addEventListener("click",()=>{e.onAction({title:O,type:"launchVariant",payload:{sku:R}})})}k.appendChild(P)}k.childElementCount>0&&(b.appendChild(k),S.appendChild(b))}const M=document.createElement("div");M.className="gengage-chat-product-details-actions";const H=t.props?.action;if(H){const b=document.createElement("button");b.className="gengage-chat-product-details-cta gds-btn gds-btn-primary",b.type="button",b.textContent=H.title||e.i18n?.productCtaLabel||"View",b.addEventListener("click",()=>e.onAction(H)),M.appendChild(b)}if(c&&o&&w!==!1){const b=document.createElement("button");b.className="gengage-chat-product-details-atc gds-btn gds-btn-primary",b.type="button",b.textContent=e.i18n?.addToCartButton??"Add to Cart",b.addEventListener("click",()=>{e.onAction({title:e.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:o,cartCode:c,quantity:1}})}),M.appendChild(b)}const T=ne(n,"url");if(!H&&T&&E.isSafeUrl(T)){const b=document.createElement("a");b.className="gengage-chat-product-details-cta gds-btn gds-btn-secondary",E.safeSetAttribute(b,"href",T),E.safeSetAttribute(b,"target","_blank"),E.safeSetAttribute(b,"rel","noopener noreferrer"),b.textContent=e.i18n?.viewOnSiteLabel??e.i18n?.productCtaLabel??"View on Site",b.addEventListener("click",x=>{e.onProductClick&&o&&(x.preventDefault(),e.onProductClick({sku:o,url:T}))}),M.appendChild(b)}const q=T;if(q&&E.isSafeUrl(q)){let N=function(P,j){const U=document.createElementNS(k,"circle");U.setAttribute("cx",P),U.setAttribute("cy",j),U.setAttribute("r","3"),L.appendChild(U)},R=function(P,j,U,$){const K=document.createElementNS(k,"line");K.setAttribute("x1",P),K.setAttribute("y1",j),K.setAttribute("x2",U),K.setAttribute("y2",$),L.appendChild(K)};var I=N,v=R;const b=document.createElement("button");b.className="gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn",b.type="button";const x=e.i18n?.shareButton??"Share";b.title=x,b.setAttribute("aria-label",x);const k="http://www.w3.org/2000/svg",L=document.createElementNS(k,"svg");L.setAttribute("width","18"),L.setAttribute("height","18"),L.setAttribute("viewBox","0 0 24 24"),L.setAttribute("fill","none"),L.setAttribute("stroke","currentColor"),L.setAttribute("stroke-width","2"),L.setAttribute("stroke-linecap","round"),L.setAttribute("stroke-linejoin","round"),N("18","5"),N("6","12"),N("18","19"),R("8.59","13.51","15.42","17.49"),R("15.41","6.51","8.59","10.49"),b.appendChild(L),b.addEventListener("click",async()=>{try{navigator.share?await navigator.share({title:i??"",url:q}):navigator.clipboard&&(await navigator.clipboard.writeText(q),b.classList.add("gengage-chat-product-details-share--copied"),setTimeout(()=>b.classList.remove("gengage-chat-product-details-share--copied"),1500))}catch{}}),M.appendChild(b)}M.childElementCount>0&&S.appendChild(M),a.appendChild(S);const Z=An(n),Y=Ln(n);return(Z||Y)&&a.appendChild(On(Z,Y,e)),a}function je(t){if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.textContent??"");if(t.nodeType!==Node.ELEMENT_NODE)return null;const e=t,a=e.tagName.toUpperCase();if(kn.has(a))return null;if(!_n.has(a)){const i=document.createDocumentFragment();for(const r of Array.from(e.childNodes)){const o=je(r);o&&i.appendChild(o)}return i}const n=document.createElement(a.toLowerCase());for(const i of Array.from(e.childNodes)){const r=je(i);r&&n.appendChild(r)}return n}function Un(t,e){const a=e.split(/\n{2,}/).map(n=>n.replace(/\s+/g," ").trim()).filter(Boolean);if(a.length!==0)for(const n of a){const i=document.createElement("p");i.textContent=n,t.appendChild(i)}}function jn(t,e){if(t.classList.add("gengage-chat-product-description"),e.html&&typeof DOMParser<"u"){const a=new DOMParser().parseFromString(e.html,"text/html"),n=Array.from(a.body.childNodes).map(i=>je(i)).filter(i=>!!i&&(i.nodeType===Node.ELEMENT_NODE||!!i.textContent?.trim()));if(n.length>0){for(const i of n)t.appendChild(i);return}}Un(t,e.text)}function On(t,e,a){const n=document.createElement("div");n.className="gengage-chat-product-detail-tabs";const i=document.createElement("div");i.className="gengage-chat-product-detail-tab-bar gds-toolbar";const r=[];if(t){const c=document.createElement("button");c.className="gengage-chat-product-detail-tab gds-tab gengage-chat-product-detail-tab--active is-active",c.type="button",c.setAttribute("aria-selected","true"),c.textContent=a.i18n?.productInfoTab??"Product Info",i.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-product-detail-tab-panel",jn(d,t),r.push(d)}if(e){const c=document.createElement("button");c.className=`gengage-chat-product-detail-tab gds-tab${t?"":" gengage-chat-product-detail-tab--active is-active"}`,c.type="button",c.setAttribute("aria-selected",t?"false":"true"),c.textContent=a.i18n?.specificationsTab??"Specifications",i.appendChild(c);const d=document.createElement("div");d.className="gengage-chat-product-detail-tab-panel",t&&(d.style.display="none");const l=document.createElement("table");l.className="gengage-chat-product-specs-table";const p=Array.isArray(e)?e:Object.entries(e).map(([s,u])=>({key:s,value:u}));for(const s of p){const u=document.createElement("tr"),h=document.createElement("td");h.className="gengage-chat-product-specs-key",h.textContent=s.key;const w=document.createElement("td");w.className="gengage-chat-product-specs-value",w.textContent=s.value,u.appendChild(h),u.appendChild(w),l.appendChild(u)}d.appendChild(l),r.push(d)}const o=i.querySelectorAll(".gengage-chat-product-detail-tab");o.forEach((c,d)=>{c.addEventListener("click",()=>{o.forEach(l=>{l.classList.remove("gengage-chat-product-detail-tab--active","is-active"),l.setAttribute("aria-selected","false")}),c.classList.add("gengage-chat-product-detail-tab--active","is-active"),c.setAttribute("aria-selected","true"),r.forEach((l,p)=>{l.style.display=p===d?"":"none"})})}),n.appendChild(i);for(const c of r)n.appendChild(c);return n}function it(t){const e='width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"';switch(t){case"related":return`<svg ${e} aria-hidden="true"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg>`;case"priceAsc":return`<svg ${e} aria-hidden="true"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></svg>`;case"priceDesc":return`<svg ${e} aria-hidden="true"><polyline points="22 17 13.5 8.5 8.5 13.5 2 7"/><polyline points="16 17 22 17 22 11"/></svg>`;default:return""}}function qn(){return'<svg class="gengage-chat-product-sort-chevron" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>'}function Vn(){return'<svg class="gengage-chat-product-sort-check" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>'}function $n(){return'<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3 4 7l4 4"/><path d="M16 21l4-4-4-4"/><path d="M4 7h16"/><path d="M20 17H4"/></svg>'}function rt(t,e){return t.type===e.type&&t.direction===e.direction}function Tt(t,e,a){if(!a||a.type==="related")return t;const n=t.map(i=>{const r=e.elements[i]?.props?.product,o=r?Number(r.price):NaN;return{id:i,price:Number.isFinite(o)?o:1/0}});return n.sort((i,r)=>i.price===1/0&&r.price===1/0?0:i.price===1/0?1:r.price===1/0?-1:a.direction==="desc"?r.price-i.price:i.price-r.price),n.map(i=>i.id)}function Gn(t,e,a,n){const i=Tt(e,a,n),r=new Map;for(const o of Array.from(t.children)){const c=o.dataset.elementId;c&&r.set(c,o)}for(const o of i){const c=r.get(o);c&&t.appendChild(c)}}function Wn(t,e,a,n){const i=document.createElement("div");i.className="gengage-chat-product-grid-wrapper";const r=mn(t),o=r.isConsulting,c=t.children??[],d=document.createElement("div");d.className="gengage-chat-product-grid";const l=n?.panelProductListHeading;if(!o&&c.length>1&&n?.onSortChange){const u=document.createElement("div");u.className="gengage-chat-product-sort-toolbar",u.setAttribute("role","toolbar"),u.setAttribute("aria-label",n.i18n?.sortToolbarAriaLabel??"Sort products");let h=n.productSort??{type:"related"};const w=[{label:n.i18n?.sortRelated??"Related",sortState:{type:"related"},icon:"related"},{label:n.i18n?.sortPriceAsc??"Price ↑",sortState:{type:"price",direction:"asc"},icon:"priceAsc"},{label:n.i18n?.sortPriceDesc??"Price ↓",sortState:{type:"price",direction:"desc"},icon:"priceDesc"}],m=document.createElement("div");m.className="gengage-chat-product-sort-dropdown";const f=document.createElement("button");f.type="button",f.className="gengage-chat-product-sort-trigger gds-btn gds-btn-ghost",f.setAttribute("aria-haspopup","listbox"),f.setAttribute("aria-expanded","false");const y=n.i18n?.sortToolbarAriaLabel??"Sort products",B=document.createElement("span");B.className="gengage-chat-product-sort-trigger-icon";const S=document.createElement("span");S.className="gengage-chat-product-sort-trigger-label";const A=v=>{const b=w.find(x=>rt(x.sortState,v))??w[0];S.textContent=b.label,B.innerHTML=it(b.icon),m.dataset.sortIcon=b.icon,f.setAttribute("aria-label",`${y}: ${b.label}`),f.title=b.label};A(h);const _=document.createElement("span");_.className="gengage-chat-product-sort-trigger-chevron",_.innerHTML=qn(),f.appendChild(B),f.appendChild(S),f.appendChild(_);const M=document.createElement("div");M.className="gengage-chat-product-sort-menu gds-menu",M.hidden=!0,M.setAttribute("role","listbox"),M.setAttribute("aria-label",y);const H=u.ownerDocument;let T=null;const q=()=>{M.hidden=!0,m.classList.remove("gengage-chat-product-sort-dropdown--open"),f.setAttribute("aria-expanded","false"),T?.abort(),T=null},Z=v=>{m.classList.contains("gengage-chat-product-sort-dropdown--open")&&(m.contains(v.target)||q())},Y=v=>{v.key==="Escape"&&(v.preventDefault(),q())},I=()=>{M.hidden=!1,m.classList.add("gengage-chat-product-sort-dropdown--open"),f.setAttribute("aria-expanded","true"),T=new AbortController;const{signal:v}=T;H.addEventListener("click",Z,{signal:v}),H.addEventListener("keydown",Y,{capture:!0,signal:v})};f.addEventListener("click",v=>{v.stopPropagation(),m.classList.contains("gengage-chat-product-sort-dropdown--open")?q():I()});for(const v of w){const b=document.createElement("button");b.type="button",b.className="gengage-chat-product-sort-option gds-menu-option",b.setAttribute("role","option");const x=rt(h,v.sortState);b.setAttribute("aria-selected",x?"true":"false"),x&&b.classList.add("gengage-chat-product-sort-option--active","gds-menu-option-active");const k=v.sortState.type==="related"?"related":`price-${v.sortState.direction??""}`;b.dataset.sortKey=k;const L=document.createElement("span");L.className="gengage-chat-product-sort-option-icon",L.innerHTML=it(v.icon);const N=document.createElement("span");N.className="gengage-chat-product-sort-option-label",N.textContent=v.label;const R=document.createElement("span");R.className="gengage-chat-product-sort-option-check",R.innerHTML=Vn(),R.setAttribute("aria-hidden","true"),x||R.classList.add("gengage-chat-product-sort-option-check--hidden"),b.appendChild(L),b.appendChild(N),b.appendChild(R),b.addEventListener("click",()=>{h=v.sortState,n.onSortChange?.(v.sortState),Gn(d,c,e,v.sortState),M.querySelectorAll(".gengage-chat-product-sort-option").forEach(P=>{const j=P,U=j.dataset.sortKey===k;j.classList.toggle("gengage-chat-product-sort-option--active",U),j.classList.toggle("gds-menu-option-active",U),j.setAttribute("aria-selected",U?"true":"false"),j.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden",!U)}),A(v.sortState),q()}),M.appendChild(b)}if(m.appendChild(f),m.appendChild(M),u.appendChild(m),n.onToggleComparisonSku){const v=document.createElement("button");v.className="gengage-chat-comparison-toggle-btn gds-btn gds-btn-ghost",v.type="button",n.comparisonSelectMode&&v.classList.add("gengage-chat-comparison-toggle-btn--active"),n.isStreaming&&v.classList.add("gengage-chat-comparison-toggle-btn--hidden");const b=document.createElement("span");b.className="gengage-chat-comparison-toggle-icon",b.innerHTML=$n();const x=document.createElement("span");x.className="gengage-chat-comparison-toggle-label";const k=n.i18n?.compareSelected??"Compare";x.textContent=k,v.setAttribute("aria-label",k),v.title=k,v.appendChild(b),v.appendChild(x),v.addEventListener("click",()=>{n.onToggleComparisonSku?.("")}),u.appendChild(v)}if(l){u.classList.add("gengage-chat-product-sort-toolbar--inline");const v=document.createElement("div");v.className="gengage-chat-product-grid-head";const b=document.createElement("span");b.className="gengage-chat-product-grid-head-title",b.textContent=l,v.appendChild(b);const x=document.createElement("div");x.className="gengage-chat-product-grid-head-actions",x.appendChild(u),v.appendChild(x),i.appendChild(v)}else i.appendChild(u)}else if(l){const u=document.createElement("div");u.className="gengage-chat-product-grid-head";const h=document.createElement("span");h.className="gengage-chat-product-grid-head-title",h.textContent=l,u.appendChild(h),i.appendChild(u)}if(o)bn(i,d,r,n);else{const u=Tt(c,e,n?.productSort);for(const h of u){if(!e.elements[h])continue;const w=a(h);w&&(w.dataset.elementId=h,d.appendChild(w))}}(n?.isMobile??Ue())&&d.classList.add("gengage-chat-product-grid--mobile"),i.appendChild(d);const p=t.props?.endOfList;if(!o&&p!==!0&&c.length>0){const u=n?.i18n?.viewMoreLabel??"Show More",h=document.createElement("button");h.className="gengage-chat-product-grid-view-more",h.type="button",h.textContent=u,h.addEventListener("click",()=>{n?.onAction({title:u,type:"moreProductList",payload:{}})}),i.appendChild(h)}const s=n?.isMobile??Ue();if(n?.comparisonSelectMode&&n.comparisonSelectedSkus&&!s){const u=_t(n.comparisonSelectedSkus,n);i.appendChild(u)}return i}function Yn(t,e){const a=t.props??{},n=a.keyDifferencesHtml,i=a.recommended,r=a.products??[],o=a.attributes??[],c=a.highlights??[],d=a.specialCases,l=a.recommendedText,p=a.winnerHits,s=a.productActions;if(!i)return document.createElement("div");const u={recommended:i,products:r,attributes:o,highlights:c,specialCases:d,onProductClick:({sku:w,name:m})=>{e.onProductClick?.({sku:w,url:"",name:m})},pricing:e.pricing};l!==void 0&&(u.recommendedText=l),p!==void 0&&(u.winnerHits=p),s!==void 0&&(u.productActions=s),n!==void 0&&(u.keyDifferencesHtml=n),e.i18n&&(u.i18n={comparisonHeading:e.i18n.panelTitleComparisonResults,recommendedChoiceLabel:e.i18n.recommendedChoiceLabel,highlightsLabel:e.i18n.highlightsLabel,keyDifferencesLabel:e.i18n.keyDifferencesLabel,viewMoreLabel:e.i18n.viewMoreLabel,specialCasesLabel:e.i18n.specialCasesLabel,addToCartButton:e.i18n.addToCartButton});const h=Ha(u);return(e.isMobile??Ue())&&h.classList.add("gengage-chat-comparison--mobile"),h}function Kn(t){const e=document.createElement("hr");e.className="gengage-chat-divider";const a=t.props?.label;if(a){const n=document.createElement("div");n.className="gengage-chat-divider-wrapper";const i=document.createElement("span");i.className="gengage-chat-divider-label",i.textContent=a,n.appendChild(e),n.appendChild(i);const r=document.createElement("hr");return r.className="gengage-chat-divider",n.appendChild(r),n}return e}var Zn=new Set(["P","DIV","H1","H2","H3","H4","H5","H6","LI","UL","OL","BLOCKQUOTE","PRE","TABLE","SECTION","HR","FIGURE","FIGCAPTION","DL","DT","DD"]);function Xn(t){const e=[];let a=[];for(const n of t)n.nodeType===Node.ELEMENT_NODE&&Zn.has(n.tagName)?(a.length>0&&(e.push(a),a=[]),e.push([n])):a.push(n);return a.length>0&&e.push(a),e}function Qn(t){for(const e of t)for(const a of e)if(a.nodeType===Node.ELEMENT_NODE&&(a.tagName==="TABLE"||a.querySelector?.("table")))return!0;return!1}function Jn(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function ei(t){const{container:e,html:a,delayMs:n=30,onTick:i,onComplete:r}=t,o=document.createElement("template");o.innerHTML=a;const c=Xn(o.content.childNodes);if(Jn()||c.length<=1||Qn(c))return e.innerHTML=a,r?.(),{complete(){},cancel(){},isRunning:!1};e.innerHTML="";let d=0,l=null,p=!0;function s(){if(!p||d>=c.length){p=!1,r?.();return}const u=c[d],h=document.createElement("span");h.className="gengage-chat-typewriter-block";for(const w of u)h.appendChild(w.cloneNode(!0));e.appendChild(h),d++,i?.(),d<c.length?l=setTimeout(s,n):(p=!1,r?.())}return s(),{complete(){p&&(l!==null&&clearTimeout(l),p=!1,e.innerHTML=a,r?.())},cancel(){l!==null&&clearTimeout(l),p=!1},get isRunning(){return p}}}function ot(t){return t!==void 0&&/[\p{L}\p{N}_]/u.test(t)}function ti(t){const{container:e,mentions:a,onProductClick:n}=t;if(a.length===0)return;const i=new Map;for(const r of a)r.short_name.length!==0&&i.set(r.short_name.toLowerCase(),r);if(i.size!==0)for(const[r,o]of i){const c=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let d=c.nextNode(),l=!1;for(;d&&!l;){const p=d.textContent??"",s=p.toLowerCase().indexOf(r);if(s===-1){d=c.nextNode();continue}const u=s>0?p[s-1]:void 0,h=p[s+o.short_name.length];if(ot(u)||ot(h)){d=c.nextNode();continue}const w=p.slice(0,s),m=p.slice(s,s+o.short_name.length),f=p.slice(s+o.short_name.length),y=d.parentNode;if(!y){d=c.nextNode();continue}const B=document.createElement("a");B.className="gengage-product-mention",B.textContent=m,B.href="#",B.addEventListener("click",S=>{S.preventDefault(),n(o.sku)}),w&&y.insertBefore(document.createTextNode(w),d),y.insertBefore(B,d),f&&y.insertBefore(document.createTextNode(f),d),y.removeChild(d),l=!0}}}var ai=new Set(["search","info","review","similar"]),ni=new Set(["quickAnswer","reviewSummary","searchDiscovery","launchDiscovery","exploreTogetherV2"]);function ii(t){return!!(t.icon&&ai.has(t.icon)||t.action?.type&&ni.has(t.action.type))}var Te="gengage_choice_prompter_dismissed",ri="gengage_choice_prompter_dismissed_global";function oi(t){const e=document.createElement("div");e.className="gengage-chat-choice-prompter gds-card",e.dataset.gengagePart="choice-prompter";const a=document.createElement("div");a.className="gengage-chat-choice-prompter-copy";const n=document.createElement("div");n.className="gengage-chat-choice-prompter-heading",n.textContent=t.heading,a.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-choice-prompter-suggestion",i.textContent=t.suggestion,a.appendChild(i),e.appendChild(a);const r=document.createElement("button");r.type="button",r.className="gengage-chat-choice-prompter-cta gds-btn gds-btn-primary",r.dataset.gengagePart="choice-prompter-cta",r.textContent=t.ctaLabel,r.addEventListener("click",()=>{Oe(t.threadId),e.remove(),t.onCtaClick()}),e.appendChild(r);const o=document.createElement("button");return o.type="button",o.className="gengage-chat-choice-prompter-dismiss",o.dataset.gengagePart="choice-prompter-dismiss",o.textContent="×",o.setAttribute("aria-label",t.dismissAriaLabel??"Dismiss"),o.addEventListener("click",()=>{Oe(t.threadId),e.remove(),t.onDismiss?.()}),e.appendChild(o),e}function si(){try{sessionStorage.removeItem(Te),sessionStorage.removeItem(ri)}catch{}}function ci(t){try{const e=sessionStorage.getItem(Te);return e?JSON.parse(e).includes(t):!1}catch{return!1}}function Oe(t){try{const e=sessionStorage.getItem(Te),a=e?JSON.parse(e):[];a.includes(t)||a.push(t),sessionStorage.setItem(Te,JSON.stringify(a))}catch{}}function li(t){t&&Oe(t)}var gi="gengage_assistant",di=3,pe="sessions",se="context",le="payload",ce="favorites";function xe(t){return new Promise((e,a)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>a(t.error)})}function me(t){return new Promise((e,a)=>{t.oncomplete=()=>e(),t.onerror=()=>a(t.error),t.onabort=()=>a(t.error??new DOMException("Transaction aborted"))})}var pi=class{constructor(t=gi,e=di){this._db=null,this._dbName=t,this._version=e}async open(){return this._db?this._db:new Promise((t,e)=>{const a=indexedDB.open(this._dbName,this._version);a.onupgradeneeded=n=>{const i=a.result,r=n.oldVersion;r<1&&(i.createObjectStore(pe,{keyPath:["userId","appId","sessionId"]}),i.createObjectStore(se,{keyPath:["sessionId","threadId"]}),i.createObjectStore(le,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),i.createObjectStore(ce,{keyPath:["userId","appId","sku"]})),r>=1&&r<2&&(i.objectStoreNames.contains(pe)&&i.deleteObjectStore(pe),i.objectStoreNames.contains(le)&&i.deleteObjectStore(le),i.createObjectStore(pe,{keyPath:["userId","appId","sessionId"]}),i.createObjectStore(le,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),i.objectStoreNames.contains(se)||i.createObjectStore(se,{keyPath:["sessionId","threadId"]})),r<3&&(i.objectStoreNames.contains(ce)||i.createObjectStore(ce,{keyPath:["userId","appId","sku"]}))},a.onsuccess=()=>{this._db=a.result,t(this._db)},a.onerror=()=>e(a.error)})}close(){this._db?.close(),this._db=null}async saveSession(t){const e=this._requireDb().transaction(pe,"readwrite");e.objectStore(pe).put(t),await me(e)}async loadSession(t,e,a){return await xe(this._requireDb().transaction(pe,"readonly").objectStore(pe).get([t,e,a]))??null}async saveContext(t){const e=this._requireDb().transaction(se,"readwrite");e.objectStore(se).put(t),await me(e)}async loadContext(t,e){return await xe(this._requireDb().transaction(se,"readonly").objectStore(se).get([t,e]))??null}async deleteContextsAfterThread(t,e){const a=this._requireDb().transaction(se,"readwrite"),n=a.objectStore(se).openCursor();await new Promise((i,r)=>{n.onsuccess=()=>{const o=n.result;if(!o){i();return}const c=o.value;if(c.sessionId===t&&c.threadId>e)try{o.delete()}catch{}o.continue()},n.onerror=()=>r(n.error)}),await me(a)}async loadLatestContext(t){const e=this._requireDb().transaction(se,"readonly").objectStore(se),a=IDBKeyRange.bound([t,""],[t,""]);return new Promise((n,i)=>{const r=e.openCursor(a,"prev");r.onsuccess=()=>{const o=r.result;n(o?o.value:null)},r.onerror=()=>i(r.error)})}async savePayload(t){const e=this._requireDb().transaction(le,"readwrite");e.objectStore(le).put(t),await me(e)}async loadPayload(t,e){return await xe(this._requireDb().transaction(le,"readonly").objectStore(le).get([t,e]))??null}async loadPayloadsByThread(t){const e=this._requireDb().transaction(le,"readonly").objectStore(le).index("threadId"),a=[];return new Promise((n,i)=>{const r=e.openCursor(IDBKeyRange.only(t));r.onsuccess=()=>{const o=r.result;if(!o){n(a);return}a.push(o.value),o.continue()},r.onerror=()=>i(r.error)})}async saveFavorite(t){const e=this._requireDb().transaction(ce,"readwrite");e.objectStore(ce).put(t),await me(e)}async removeFavorite(t,e,a){const n=this._requireDb().transaction(ce,"readwrite");n.objectStore(ce).delete([t,e,a]),await me(n)}async loadFavorites(t,e){return(await xe(this._requireDb().transaction(ce,"readonly").objectStore(ce).getAll())).filter(a=>a.userId===t&&a.appId===e)}async isFavorite(t,e,a){return await xe(this._requireDb().transaction(ce,"readonly").objectStore(ce).get([t,e,a]))!==void 0}_requireDb(){if(!this._db)throw new Error("GengageIndexedDB: database not open. Call open() first.");return this._db}},hi=["comparisonTable","groupList","productDetailsSimilars","productList"],ui=class{constructor(t){this._lockCount=1,this._hiddenByUser=!1,this._lastPanelContentType=null,this._chatShown=!1,this._isFavoritesMode=!1,this._lastExtended=!1,this._onChange=t.onChange;const e=new Set(hi);t.productDetailsInPanel&&e.add("productDetails"),this._panelContentTypes=e}get isExtended(){return this._lockCount===0&&!this._hiddenByUser&&!this._isFavoritesMode&&this._lastPanelContentType!==null&&this._panelContentTypes.has(this._lastPanelContentType)&&this._chatShown}unlock(){this._lockCount>0&&this._lockCount--,this._checkStateChange()}lock(){this._lockCount++,this._checkStateChange()}setHiddenByUser(t){this._hiddenByUser=t,this._checkStateChange()}setChatShown(t){this._chatShown=t,this._checkStateChange()}setFavoritesMode(t){this._isFavoritesMode=t,this._checkStateChange()}setPanelContentType(t){this._lastPanelContentType=t,this._checkStateChange()}_checkStateChange(){const t=this.isExtended;t!==this._lastExtended&&(this._lastExtended=t,this._onChange(t))}},mi=class{constructor(t){this.deps=t,this.snapshots=new Map,this._snapshotRebuilders=new Map,this.snapshotTypes=new Map,this.activePanelMessageId=null,this.currentType=null,this.threads=[],this.lastActionType=null}snapshotForMessage(t,e){const a=this.deps.drawer();if(!a?.hasPanelContent()||a.isPanelLoading())return;const n=a.getPanelContentElement();if(!n)return;const i=n.cloneNode(!0);this.snapshots.set(t,i),e&&this._snapshotRebuilders.set(t,e),this.currentType&&this.snapshotTypes.set(t,this.currentType)}restoreForMessage(t){const e=this._snapshotRebuilders.get(t),a=this.snapshots.get(t);if(!e&&!a)return!1;const n=this.deps.shadow(),i=this.deps.drawer();this.activePanelMessageId&&n?.querySelector(`[data-message-id="${CSS.escape(this.activePanelMessageId)}"]`)?.classList.remove("gengage-chat-bubble--active"),n?.querySelector(`[data-message-id="${CSS.escape(t)}"]`)?.classList.add("gengage-chat-bubble--active"),this.activePanelMessageId=t;const r=e?e():a.cloneNode(!0);i?.setPanelContent(r);const o=this.snapshotTypes.get(t);if(i?.setDividerPreviewEnabled(o==="ProductGrid"),o)if(this.currentType=o,r.querySelector(".gengage-chat-product-grid-head-title")&&o==="ProductGrid"){const c=this.deps.currentThreadId();if(c){const d=this.threads.indexOf(c),l=d>0,p=d>=0&&d<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(l,p,"")}}else this.updateTopBar(o);return!0}notifyExtension(t){const e=this.deps.bridge();t?setTimeout(()=>e?.send("maximize-pdp",{}),350):setTimeout(()=>e?.send("minify-pdp",{}),200)}titleForComponent(t,e){if(e)return e;const a=this.deps.i18n();switch(t){case"ProductDetailsPanel":return a.panelTitleProductDetails;case"ProductGrid":return st(this.lastActionType)?a.panelTitleSearchResults:a.panelTitleSimilarProducts;case"ComparisonTable":return a.panelTitleComparisonResults;case"AIGroupingCards":return a.panelTitleCategories;default:return""}}updateTopBar(t,e,a){const n=this.deps.currentThreadId();if(!n)return;const i=this.threads.indexOf(n),r=i>0,o=i>=0&&i<this.threads.length-1,c=a!==void 0?a:this.titleForComponent(t,e);this.deps.drawer()?.updatePanelTopBar(r,o,c)}updateTopBarForLoading(t){const e=this.deps.i18n(),a={productDetails:e.panelTitleProductDetails,productList:st(this.lastActionType)?e.panelTitleSearchResults:e.panelTitleSimilarProducts,comparisonTable:e.panelTitleComparisonResults,groupList:e.panelTitleCategories}[t]??"";if(a){const n=this.deps.currentThreadId(),i=n?this.threads.indexOf(n):-1,r=i>0,o=i>=0&&i<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(r,o,a)}}updateExtendedMode(t){const e={ComparisonTable:"comparisonTable",AIGroupingCards:"groupList",ProductDetailsPanel:"productDetails",ProductGrid:"productList"}[t]??null;this.deps.extendedModeManager()?.setPanelContentType(e)}navigateBack(){const t=this.deps.currentThreadId();if(!t)return;const e=this.threads.indexOf(t);if(e>0){const a=this.threads[e-1];a&&this.deps.rollbackToThread(a)}}navigateForward(){const t=this.deps.currentThreadId();if(!t)return;const e=this.threads.indexOf(t);if(e>=0&&e<this.threads.length-1){const a=this.threads[e+1];a&&this.deps.rollbackToThread(a)}}toPanelSpec(t){const e=t.elements[t.root];if(!e||e.type!=="ProductCard")return t;const a={...e,type:"ProductDetailsPanel"};return{root:t.root,elements:{...t.elements,[t.root]:a}}}destroy(){this.snapshots.clear(),this._snapshotRebuilders.clear(),this.snapshotTypes.clear(),this.activePanelMessageId=null,this.currentType=null,this.threads=[]}};function st(t){return t==="user_message"||t==="inputText"}function bi(t){return t.similarsAppend&&t.currentPanelType==="ProductDetailsPanel"&&t.hasPanelContent&&!t.isPanelLoading?"appendSimilars":t.componentType==="ProductGrid"&&!t.isFirstPanelContentInStream&&t.hasPanelContent&&!t.isPanelLoading?"append":"replace"}var ct=class{constructor(t){this.favoritedSkus=new Set,this._favoritesCache=new Map,this._persistLock=Promise.resolve(),this._db=t}get db(){return this._db}set db(t){this._db=t}async persist(t){if(!this._db)return;const e=this._persistLock;let a;this._persistLock=new Promise(n=>{a=n}),await e;try{await this._persistImpl(t)}finally{a()}}async _persistImpl(t){if(!this._db)return;const e=t.messages.map(n=>{const i={id:n.id,role:n.role,timestamp:n.timestamp,status:n.status==="streaming"?"done":n.status};return n.threadId!==void 0&&(i.threadId=n.threadId),n.content!==void 0&&(i.content=n.content),n.silent&&(i.silent=!0),i}),a={};for(const[n,i]of t.panelSnapshots)i.querySelector(".gengage-chat-panel-skeleton")||(a[n]=i.innerHTML);await this._db.saveSession({userId:t.userId,appId:t.appId,sessionId:t.sessionId,messages:e,currentThreadId:t.currentThreadId,lastThreadId:t.lastThreadId,createdAt:t.chatCreatedAt,panelThreads:t.panelThreads.length>0?t.panelThreads:void 0,thumbnailEntries:t.thumbnailEntries.length>0?t.thumbnailEntries:void 0,panelSnapshotHtml:Object.keys(a).length>0?a:void 0,sku:t.sku}),t.lastBackendContext&&t.currentThreadId&&await this._db.saveContext({sessionId:t.sessionId,threadId:t.currentThreadId,context:t.lastBackendContext});for(const n of t.messages)n.uiSpec&&n.threadId&&await this._db.savePayload({threadId:n.threadId,messageId:n.id,uiSpec:n.uiSpec})}async saveAndOpenURL(t,e,a){try{await e()}catch{}a?.send("openURLInNewTab",{url:t}),E.isSafeUrl(t)&&(window.location.href=t)}async loadPayload(t,e){if(!this._db)return null;for(let a=0;a<3;a++){try{const n=await this._db.loadPayload(t,e);if(n)return n.uiSpec}catch{}a<2&&await new Promise(n=>setTimeout(n,100))}return null}async loadFavorites(t,e){if(this._db)try{const a=await this._db.loadFavorites(t,e);for(const n of a)this.favoritedSkus.add(n.sku),this._favoritesCache.set(n.sku,n)}catch{}}getFavoriteProducts(){return[...this._favoritesCache.values()].sort((t,e)=>(e.savedAt??"").localeCompare(t.savedAt??""))}async toggleFavorite(t,e,a,n){if(this.favoritedSkus.has(a))this.favoritedSkus.delete(a),this._favoritesCache.delete(a),this._db&&await this._db.removeFavorite(t,e,a);else{const i={userId:t,appId:e,sku:a,name:n.name,imageUrl:n.imageUrl,price:n.price,savedAt:new Date().toISOString()};this.favoritedSkus.add(a),this._favoritesCache.set(a,i),this._db&&await this._db.saveFavorite(i)}}close(){this._db?.close(),this._db=null}},He=t=>`${t}:assistant`,It=class{constructor(){this.groups={},this.pinnedToBottom=!0,this.userInteracting=!1,this.focusedThreadId=null,this.shown=!1,this.lastAutoAnchoredGroupId=null,this.scrollRequest=null,this._nextScrollId=1}setShown(t){this.shown=t,t||(this.userInteracting=!1,this.pinnedToBottom=!0,this.focusedThreadId=null,this.scrollRequest=null)}reset(){this.groups={},this.pinnedToBottom=!0,this.userInteracting=!1,this.focusedThreadId=null,this.lastAutoAnchoredGroupId=null,this.scrollRequest=null}registerAssistantActivity(t){const e=He(t),a=this.groups[e],n=this.shown&&this.pinnedToBottom&&!this.userInteracting?"active_unread":"unseen";this.groups[e]={id:e,threadId:t,readState:a?.readState==="seen"?n:a?.readState??n,status:"streaming",updatedAt:Date.now()},a?.readState==="seen"&&this.lastAutoAnchoredGroupId===e&&(this.lastAutoAnchoredGroupId=null)}finalizeAssistantGroup(t){const e=He(t),a=this.groups[e];a&&(a.status="complete",a.updatedAt=Date.now())}setGroupReadStates(t){const e=Date.now();for(const{groupId:a,readState:n}of t){const i=this.groups[a];!i||i.readState===n||(i.readState=n,i.updatedAt=e)}}requestThreadFocus(t,e="smooth"){this.focusedThreadId=t,this.scrollRequest={id:this._nextScrollId++,type:"thread",threadId:t,behavior:e}}requestScrollToBottom(t="smooth"){this.scrollRequest={id:this._nextScrollId++,type:"bottom",behavior:t}}consumeScrollRequest(t){this.scrollRequest?.id===t&&(this.scrollRequest=null)}releaseFocusedThread(){this.focusedThreadId=null}setFocusedThreadId(t){this.focusedThreadId=t}markGroupAutoAnchored(t){this.lastAutoAnchoredGroupId=t}shouldBlockStreamAutoScroll(){return this.shown&&this.userInteracting&&!this.pinnedToBottom}getAssistantReadState(t){return this.groups[He(t)]?.readState}};function fi(t,e){for(let a=t.length-1;a>=0;a--){const n=t[a],i=e.getAssistantReadState(n);if(i!==void 0&&i!=="seen")return n}return null}function Nt(t){const{label:e,avatarUrl:a,primaryColor:n,secondaryColor:i="#111827",fontFamily:r="inherit",labelClassName:o="gengage-pill-launcher-label",styleId:c="gengage-pill-launcher-style",mobileBreakpoint:d=768,desktopWidth:l="188px",desktopHeight:p="60px",iconSize:s="46px"}=t,u=`${parseInt(l,10)-14}px`,h=`${parseInt(p,10)-4}px`,w=`${parseInt(s,10)-4}px`,m=`
|
|
13
13
|
:host {
|
|
14
14
|
--pill-primary: ${n};
|
|
15
15
|
--pill-secondary: ${i};
|
|
@@ -88,6 +88,6 @@ button[data-gengage-part="chat-launcher-button"] img {
|
|
|
88
88
|
flex-basis: ${w} !important;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
`.trim(),v=()=>{for(const _ of document.querySelectorAll("[data-gengage-widget]")){if(!(_ instanceof HTMLElement))continue;const N=_.shadowRoot;if(N&&(N.querySelector('[data-gengage-part="chat-launcher-button"]')||N.querySelector(".gengage-chat-root")))return _}return null},y=_=>{if(_.getElementById(c))return;const N=document.createElement("style");N.id=c,N.textContent=m,_.appendChild(N)},M=CSS.escape(o),C=_=>{y(_);const N=_.querySelector('[data-gengage-part="chat-launcher-button"]');if(!(N instanceof HTMLButtonElement))return!1;const H=_.querySelector('[data-gengage-part="chat-header-avatar"]');if(H instanceof HTMLImageElement){const q=_.querySelector('[data-gengage-part="chat-launcher-button"] img');(!q||H.src===q.src)&&H.classList.remove("gengage-chat-header-avatar--logo")}if(N.querySelector(`.${M}`))return!0;N.setAttribute("aria-label",e);const T=document.createElement("span");return T.className=o,T.textContent=e,N.appendChild(T),!0};return{launcherImageUrl:a,apply:async _=>{if(_){y(_),await Promise.resolve();for(let H=0;H<90;H++){if(C(_))return;await new Promise(T=>requestAnimationFrame(()=>T()))}return}const N=v();N?.shadowRoot&&y(N.shadowRoot),await Promise.resolve();for(let H=0;H<90;H++){const T=v()?.shadowRoot??null;if(T&&(y(T),C(T)))return;await new Promise(q=>requestAnimationFrame(()=>q()))}}}}var vi=/^HTTP\s+\d{3}\b/i,xi=[/response body is null/i,/streaming not supported/i,/ECONNREFUSED/i,/ECONNRESET/i,/ETIMEDOUT/i,/socket hang up/i,/net::ERR_/i,/502\s+bad gateway/i,/503\s+service unavailable/i,/504\s+gateway timeout/i],wi=[/Traceback\s*\(/i,/\bSyntaxError\b/,/\bReferenceError\b/,/\bTypeError\s*:/,/\bat\s+[\w./()[\]<>-]+:\d+:\d+/,/\n\s+at\s+\w/,/undefined is not/i,/is not a function/i,/<anonymous>/i,/ChunkLoadError/i,/UnhandledPromiseRejection/i],yi=720;function _i(t,e){if(S.isLikelyConnectivityIssue(t))return!0;const a=t.message.trim();if(vi.test(a)||xi.some(r=>r.test(a)))return!0;const n=e.trim();if(n.length>yi)return!0;const i=n.split(/\n/).length;return!!(i>=6||wi.some(r=>r.test(n))||i>=3&&/\bat\s+/.test(n))}var Mt="gengage_kvkk_shown",ki=["kvkk","kişisel veri","kisisel veri"],Ci=/\b6698\b/;function Ge(t){const e=t.toLowerCase();return ki.some(a=>e.includes(a))||Ci.test(e)}function lt(t){try{return localStorage.getItem(`${Mt}_${t}`)==="1"}catch{return!1}}function Re(t){try{localStorage.setItem(`${Mt}_${t}`,"1")}catch{}}function Si(t){const e=new DOMParser().parseFromString(t,"text/html").body,a=Array.from(e.children);for(const n of a)if(Ge(n.textContent??"")){n.remove();break}return e.innerHTML.trim()}function Ei(t){const e=new DOMParser().parseFromString(t,"text/html");for(const a of Array.from(e.body.children))if(Ge(a.textContent??""))return a.outerHTML;return null}var Pi={tr:"TURKISH",en:"ENGLISH",de:"GERMAN",fr:"FRENCH"};function Ai(t){return t?Pi[t.toLowerCase().slice(0,2)]??"TURKISH":"TURKISH"}var Li=':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel-container,.gengage-simbut-root){--ds-neutral-0:#fff;--ds-neutral-25:#fcfcfd;--ds-neutral-50:#f6f7fb;--ds-neutral-100:#f3f4f6;--ds-neutral-200:#e5e7eb;--ds-neutral-300:#d0d5dd;--ds-neutral-500:#667085;--ds-neutral-600:#475467;--ds-neutral-700:#344054;--ds-neutral-900:#111827;--ds-radius-2:8px;--ds-radius-3:12px;--ds-radius-4:16px;--ds-radius-5:20px;--ds-radius-6:24px;--ds-radius-pill:999px;--ds-shadow-1:0 1px 2px #1018280a, 0 1px 3px #1018280f;--ds-shadow-2:0 4px 12px #10182814;--ds-shadow-3:0 10px 24px #1018281f;--client-primary:var(--gengage-primary-color,#b7102a);--client-primary-hover:var(--gengage-primary-hover,color-mix(in srgb, var(--client-primary) 88%, black 12%));--client-primary-active:var(--gengage-primary-active,color-mix(in srgb, var(--client-primary) 78%, black 22%));--client-primary-subtle:color-mix(in srgb, var(--client-primary) 12%, white);--client-primary-soft:color-mix(in srgb, var(--client-primary) 20%, white);--client-on-primary:var(--gengage-primary-foreground,#fff);--client-focus-ring:color-mix(in srgb, var(--client-primary) 32%, transparent);--ai-accent-start:#0b24d6;--ai-accent-end:#f768f2;--ai-accent-soft:linear-gradient(135deg, #0b24d614, #f768f214);--surface-page:var(--gengage-page-bg,var(--ds-neutral-50));--surface-shell:var(--gengage-shell-bg,#10131a);--surface-card:var(--gengage-background-color,var(--ds-neutral-0));--surface-card-muted:var(--gengage-surface-soft,#f8fafc);--surface-card-soft:var(--surface-card-muted);--surface-elevated:var(--gengage-surface-elevated,var(--ds-neutral-0));--surface-input:var(--gengage-input-bg,var(--ds-neutral-0));--surface-overlay:var(--gengage-overlay-bg,#10131a85);--text-primary:var(--gengage-foreground-color,var(--ds-neutral-900));--text-secondary:var(--gengage-text-secondary,#4b5563);--text-muted:var(--gengage-text-muted,#6b7280);--text-inverse:var(--gengage-text-inverse,#f9fafb);--border-subtle:var(--gengage-border-subtle,#1118270f);--border-default:var(--gengage-border-color,#1118271a);--border-strong:var(--gengage-border-strong,#1118272e);--shadow-1:var(--gengage-shadow-1,var(--ds-shadow-1));--shadow-2:var(--gengage-shadow-2,var(--ds-shadow-2));--shadow-3:var(--gengage-shadow-3,var(--ds-shadow-3));--radius-control:var(--gengage-control-radius,var(--ds-radius-3));--radius-card:var(--gengage-card-radius,var(--ds-radius-4));--radius-panel:var(--gengage-panel-radius,var(--ds-radius-6));--radius-pill:var(--gengage-pill-radius,var(--ds-radius-pill));--success:var(--gengage-success-color,#16a34a);--warning:var(--gengage-warning-color,#d97706);--error:var(--gengage-error-color,#dc2626);--info:var(--gengage-info-color,#2563eb);--rating:var(--gengage-rating-color,#f5b301);--gengage-primary:var(--client-primary);--gengage-primary-soft:var(--client-primary-soft);--gengage-primary-subtle:var(--client-primary-subtle);--gengage-text-color:var(--text-primary);--gengage-text-secondary:var(--text-secondary);--gengage-hover-color:var(--surface-card-soft);--ds-button-primary-bg:var(--client-primary);--ds-button-primary-bg-hover:var(--client-primary-hover);--ds-button-primary-bg-active:var(--client-primary-active);--ds-button-primary-fg:var(--client-on-primary);--ds-button-primary-border:color-mix(in srgb, var(--client-primary) 82%, black 18%);--ds-button-secondary-bg:var(--surface-card);--ds-button-secondary-bg-hover:var(--client-primary-subtle);--ds-button-secondary-fg:var(--client-primary);--ds-button-secondary-border:color-mix(in srgb, var(--client-primary) 26%, white);--ds-button-ghost-bg:var(--surface-card-muted);--ds-button-ghost-bg-hover:var(--ds-button-ghost-bg);--ds-button-ghost-fg:var(--text-primary);--ds-button-ghost-fg-hover:var(--client-primary);--ds-button-ghost-border:var(--border-default);--ds-button-ghost-border-hover:color-mix(in srgb, var(--client-primary) 18%, white);--ds-panel-bg:var(--surface-card);--ds-panel-border:var(--border-default);--ds-panel-shadow:var(--shadow-1);--ds-panel-radius:var(--radius-panel);--ds-header-bg:var(--surface-card);--ds-header-fg:var(--text-primary);--ds-header-muted:var(--text-muted);--ds-header-border:var(--border-default);--ds-card-bg:var(--surface-card);--ds-card-bg-soft:var(--surface-card-muted);--ds-card-border:var(--border-default);--ds-card-shadow:var(--shadow-1);--ds-card-shadow-hover:var(--shadow-2);--ds-card-radius:var(--radius-card);--ds-card-border-hover:color-mix(in srgb, var(--client-primary) 14%, var(--border-default));--ds-card-bg-hover:color-mix(in srgb, var(--client-primary) 2%, var(--surface-card));--ds-product-card-media-bg:var(--surface-card-muted);--ds-product-card-media-border:var(--border-subtle);--ds-input-bg:var(--surface-input);--ds-input-border:var(--border-default);--ds-input-radius:16px;--ds-input-focus-border:color-mix(in srgb, var(--client-primary) 28%, white);--ds-input-focus-ring:0 0 0 4px var(--client-focus-ring);--ds-input-highlight:inset 0 1px 0 #fff9;--ds-chip-bg:var(--surface-card);--ds-chip-border:var(--border-default);--ds-chip-fg:var(--text-secondary);--ds-chip-bg-hover:var(--surface-card-muted);--ds-chip-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-chip-border-active:color-mix(in srgb, var(--client-primary) 30%, white);--ds-chip-fg-active:var(--client-primary);--ds-tab-bg:var(--surface-card);--ds-tab-bg-hover:var(--surface-card-muted);--ds-tab-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-tab-border:var(--border-default);--ds-tab-border-active:color-mix(in srgb, var(--client-primary) 26%, white);--ds-tab-fg:var(--text-secondary);--ds-tab-fg-active:var(--client-primary);--ds-badge-brand-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-badge-brand-border:color-mix(in srgb, var(--client-primary) 18%, white);--ds-badge-brand-fg:var(--client-primary);--ds-message-user-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-message-user-fg:var(--text-primary);--ds-message-user-border:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));--ds-message-user-shadow:none;--ds-message-assistant-bg:var(--surface-card-soft);--ds-message-assistant-fg:var(--text-primary);--ds-message-assistant-border:var(--border-default);--ds-message-assistant-shadow:none;--ds-message-active-outline:color-mix(in srgb, var(--client-primary) 68%, white);--ds-progress-card-border:var(--border-subtle);--ds-progress-mark-bg:color-mix(in srgb, var(--ai-accent-start) 8%, var(--surface-card));--ds-progress-mark-border:color-mix(in srgb, var(--ai-accent-start) 12%, var(--border-default));--ds-progress-scrollbar-thumb:color-mix(in srgb, var(--text-primary) 18%, transparent);--ds-toast-error-bg:color-mix(in srgb, var(--error) 5%, var(--surface-card));--ds-toast-error-border:color-mix(in srgb, var(--error) 18%, var(--border-default));--ds-toast-error-accent:var(--error);--ds-toast-error-fg:color-mix(in srgb, var(--error) 22%, var(--text-primary));--ds-toast-error-shadow:var(--shadow-3);--ds-comparison-table-bg:var(--surface-card);--ds-comparison-table-border:var(--border-default);--ds-comparison-table-header-bg:var(--surface-card-muted);--ds-comparison-table-header-fg:var(--text-muted);--ds-comparison-table-row-border:var(--border-subtle);--ds-comparison-table-winner-bg:color-mix(in srgb, var(--client-primary) 6%, white);--ds-comparison-table-winner-fg:var(--client-primary)}:where(.gds-panel){background:var(--ds-panel-bg);border:1px solid var(--ds-panel-border);border-radius:var(--ds-panel-radius);box-shadow:var(--ds-panel-shadow)}:where(.gengage-qna-panel,.gengage-chat-panel-topbar,.gengage-chat-chat-header,.gengage-chat-panel-ai-zone>.gengage-chat-ai-top-picks,.gengage-chat-grounding-review){border-color:var(--ds-panel-border)}:where(.gds-btn){border-radius:var(--radius-control);min-height:46px;font:inherit;cursor:pointer;border:0;outline:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;display:inline-flex}:where(.gds-btn:hover){transform:none}:where(.gds-btn:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-btn:disabled){cursor:not-allowed;opacity:.56;box-shadow:none}:where(.gds-btn-primary){background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);border:1px solid var(--ds-button-primary-border)}:where(.gds-btn-primary:hover){background:var(--ds-button-primary-bg-hover)}:where(.gds-btn-secondary){background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg);border:1px solid var(--ds-button-secondary-border)}:where(.gds-btn-secondary:hover){background:var(--ds-button-secondary-bg-hover)}:where(.gds-btn-ghost){background:var(--ds-button-ghost-bg);color:var(--ds-button-ghost-fg);border:1px solid var(--ds-button-ghost-border)}:where(.gds-btn-ghost:hover){background:var(--ds-button-ghost-bg-hover);border-color:var(--ds-button-ghost-border-hover);color:var(--ds-button-ghost-fg-hover)}:where(.gds-chip){border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:var(--ds-chip-bg);color:var(--ds-chip-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}:where(.gds-chip:hover){background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border))}:where(.gds-chip:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-chip-active){border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}:where(.gds-badge){border-radius:var(--radius-pill);letter-spacing:.04em;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}:where(.gds-badge-brand){background:var(--ds-badge-brand-bg);color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border)}:where(.gds-shell-header){background:var(--ds-header-bg);color:var(--ds-header-fg);border-bottom:1px solid var(--ds-header-border);box-shadow:none;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}:where(.gds-shell-header [data-gengage-part=chat-header-powered-by]){color:var(--ds-header-muted)}:where(.gds-icon-btn){border-radius:var(--radius-control);width:42px;min-width:42px;height:42px;min-height:42px;padding:0}:where(.gds-input-shell){border-radius:var(--ds-input-radius);border:1px solid var(--ds-input-border);background:var(--ds-input-bg);min-height:52px;box-shadow:var(--ds-input-highlight);align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}:where(.gds-input-shell:focus-within){border-color:var(--ds-input-focus-border);box-shadow:var(--ds-input-focus-ring)}:where(.gds-tab){border-radius:var(--radius-pill);border:1px solid var(--ds-tab-border);background:var(--ds-tab-bg);color:var(--ds-tab-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}:where(.gds-tab:hover){background:var(--ds-tab-bg-hover)}:where(.gds-tab:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-tab[aria-selected=true],.gds-tab.is-active){color:var(--ds-tab-fg-active);border-color:var(--ds-tab-border-active);background:var(--ds-tab-bg-active)}:where(.gds-toolbar){flex-wrap:wrap;align-items:center;gap:10px;display:flex}:where(.gds-toolbar-compact){gap:8px}:where(.gds-card){background:var(--ds-card-bg);border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);transition:border-color .15s,box-shadow .15s,background-color .15s}:where(.gds-card-interactive),:where(.gds-clickable){cursor:pointer}:where(.gds-card-interactive:hover){background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}:where(.gds-card-soft){background:var(--ds-card-bg-soft)}:where(.gds-product-card){border-radius:16px}:where(.gds-evidence-card){background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);box-shadow:var(--shadow-1)}:where(.gds-evidence-card-success){background:color-mix(in srgb, var(--success) 10%, white);border-color:color-mix(in srgb, var(--success) 22%, var(--border-default))}:where(.gds-evidence-card-danger){background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}:where(.gds-evidence-card-warning){background:color-mix(in srgb, var(--warning) 10%, white);border-color:color-mix(in srgb, var(--warning) 22%, var(--border-default))}:where(.gds-message){border-radius:calc(var(--radius-control) + 4px);word-wrap:break-word;overflow-wrap:break-word;border:1px solid #0000;max-width:85%;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.55;animation:.3s cubic-bezier(.2,.7,.2,1) gengage-chat-msg-in}:where(.gds-message-user){background:var(--ds-message-user-bg);color:var(--ds-message-user-fg);border-color:var(--ds-message-user-border);box-shadow:var(--ds-message-user-shadow);border-bottom-right-radius:6px;align-self:flex-end}:where(.gds-message-assistant){background:var(--ds-message-assistant-bg);color:var(--ds-message-assistant-fg);border-color:var(--ds-message-assistant-border);box-shadow:var(--ds-message-assistant-shadow);border-bottom-left-radius:6px;align-self:flex-start;min-width:120px}:where(.gds-message-active){outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}:where(.gds-ai-card){background:var(--surface-card);border:1px solid var(--ds-progress-card-border);border-radius:20px;gap:16px;padding:18px;display:grid}:where(.gds-ai-mark){background:var(--ds-progress-mark-bg);width:42px;height:42px;color:var(--ai-accent-start);border:1px solid var(--ds-progress-mark-border);border-radius:14px;place-items:center;display:grid}:where(.gds-ai-loader-row){align-items:center;gap:12px;display:flex}:where(.gds-progress-loader){border:1px solid color-mix(in srgb, var(--ai-accent-start) 10%, var(--border-default));background:linear-gradient(110deg, var(--surface-card-soft) 8%, color-mix(in srgb, var(--ai-accent-start) 5%, var(--surface-card)) 18%, var(--surface-card-soft) 33%);width:fit-content;max-width:100%;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;animation:1.8s linear infinite gds-progress-shimmer;display:inline-flex}:where(.gds-progress-loader-chat){box-sizing:border-box;align-self:flex-start;width:100%;min-width:0;max-width:85%;display:flex}:where(.gds-progress-loader-chat) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-loader-panel){box-sizing:border-box;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}:where(.gds-progress-loader-panel) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-label){min-width:0;color:var(--text-secondary);word-break:break-word;font-size:13px;line-height:1.5}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:where(.gds-progress-dot){background:color-mix(in srgb, var(--ai-accent-start) 20%, var(--text-muted));border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-progress-dot:nth-child(2)){animation-delay:.2s}:where(.gds-progress-dot:nth-child(3)){animation-delay:.4s}:where(.gds-ai-status){border-radius:calc(var(--radius-control) + 2px);border:1px solid var(--border-default);background:var(--surface-card-muted);max-width:85%;color:var(--text-secondary);border-bottom-left-radius:6px;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;display:flex}:where(.gds-ai-status-text){color:var(--text-secondary);font-size:13px;font-style:italic}:where(.gds-ai-dot-loader){align-items:center;gap:5px;display:inline-flex}:where(.gds-ai-dot-loader span){background:color-mix(in srgb, var(--ai-accent-start) 38%, var(--text-muted));border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-ai-dot-loader span:nth-child(2)){animation-delay:.2s}:where(.gds-ai-dot-loader span:nth-child(3)){animation-delay:.4s}:where(.gds-ai-spinner){border:2.5px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.72s linear infinite gds-spin}@keyframes gds-spin{to{transform:rotate(360deg)}}@keyframes gds-progress-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes gds-progress-dot-pulse{0%,to{opacity:.45;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:where(.gds-progress-loader){animation:none}:where(.gds-progress-dot){opacity:.85;animation:none;transform:scale(1)}:where(.gds-ai-spinner){animation:none}:where(.gds-ai-dot-loader span){opacity:.85;animation:none}}:where(.gds-menu){border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-elevated);box-shadow:var(--shadow-3);padding:4px}:where(.gds-menu-option){border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background-color .15s,color .15s;display:flex}:where(.gds-menu-option:hover){background:var(--surface-card-muted)}:where(.gds-menu-option:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-menu-option-active){background:var(--client-primary-subtle);color:var(--client-primary);font-weight:600}:where(.gds-comparison-table){border-collapse:separate;border-spacing:0;border:1px solid var(--ds-comparison-table-border);background:var(--ds-comparison-table-bg);border-radius:20px;width:100%;overflow:hidden}:where(.gds-comparison-table th,.gds-comparison-table td){text-align:left;border-bottom:1px solid var(--ds-comparison-table-row-border);padding:14px 16px;font-size:13px}:where(.gds-comparison-table th){background:var(--ds-comparison-table-header-bg);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-comparison-table-header-fg);font-size:11px}:where(.gds-comparison-table tr:last-child td){border-bottom:0}:where(.gds-comparison-table-winner-cell){background:var(--ds-comparison-table-winner-bg);color:var(--ds-comparison-table-winner-fg);font-weight:800}:host{all:initial;font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px)}.gengage-chat-root button,.gengage-chat-root [role=button],.gengage-chat-root a{cursor:pointer}.gengage-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-root{z-index:var(--gengage-z-index,2147480000);--_gengage-chat-offset:var(--gengage-chat-offset,20px);--_gengage-chat-launcher-bottom:var(--gengage-chat-launcher-bottom,20px);--_gengage-chat-launcher-right:var(--gengage-chat-launcher-right,20px);--_gengage-chat-launcher-size:var(--gengage-chat-launcher-size,56px);--_gengage-chat-drawer-width:var(--gengage-chat-width,400px);--_gengage-chat-radius:var(--gengage-chat-shell-radius,1rem);--_gengage-chat-header-height:var(--gengage-chat-header-height,72px);--_gengage-chat-conversation-width:var(--gengage-chat-conversation-width,396px);--_gengage-chat-panel-min-width:var(--gengage-chat-panel-min-width,320px);--_gengage-chat-panel-max-width:var(--gengage-chat-panel-max-width,1200px);--_gengage-chat-input-height:var(--gengage-chat-input-height,48px);--_gengage-chat-shadow:var(--gengage-chat-shadow,var(--shadow-3));--_gengage-border-color:var(--border-default);--_gengage-discount-color:var(--gengage-discount-color,var(--client-primary));--_gengage-campaign-reason-start:var(--gengage-campaign-reason-color,var(--client-primary));--_gengage-campaign-reason-end:var(--gengage-campaign-reason-color-end,var(--gengage-campaign-reason-color,var(--client-primary)));--_gengage-success-color:var(--success);--_gengage-text-primary:var(--text-primary);--_gengage-text-secondary:var(--text-secondary);--_gengage-surface-secondary:var(--surface-card-soft);--_gengage-surface-muted:var(--surface-card-soft);--_gengage-surface-dark:var(--surface-shell);--_gengage-rating-color:var(--rating);--_gengage-error:var(--error);--_gengage-danger-color:var(--error);--_gengage-ghost-border:var(--gengage-ghost-border,color-mix(in srgb, var(--client-primary) 16%, transparent));position:fixed}.gengage-chat-backdrop{z-index:0;pointer-events:none;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}.gengage-chat-root--open:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:none;background:var(--gengage-chat-float-backdrop,transparent);display:block}.gengage-chat-root--open.gengage-chat-root--maximized-host-chrome:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:auto;background:var(--gengage-chat-float-backdrop,color-mix(in srgb, var(--surface-overlay) 72%, transparent))}.gengage-chat-root.gengage-chat--overlay.gengage-chat-root--open .gengage-chat-backdrop{background:var(--gengage-chat-overlay-backdrop,var(--surface-overlay));pointer-events:auto}.gengage-chat-launcher-container{bottom:var(--_gengage-chat-launcher-bottom);right:var(--_gengage-chat-launcher-right);z-index:var(--gengage-z-index,2147480000);flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed}.gengage-chat-launcher-content-area,.gengage-chat-launcher-content-area-bottom{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.gengage-chat-launcher-content-area:empty,.gengage-chat-launcher-content-area-bottom:empty,.gengage-chat-root--open .gengage-chat-launcher-content-area,.gengage-chat-root--open .gengage-chat-launcher-content-area-bottom{display:none}.gengage-chat-root--open .gengage-chat-launcher-container{pointer-events:none;opacity:0;transition:opacity .2s}.gengage-chat-launcher{width:var(--_gengage-chat-launcher-size);height:var(--_gengage-chat-launcher-size);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:var(--shadow-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;display:flex;position:relative}.gengage-chat-launcher:hover{box-shadow:var(--shadow-3);transform:none}.gengage-chat-launcher svg{width:28px;height:28px}.gengage-chat-launcher--image-mode{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;overflow:hidden}.gengage-chat-launcher--image-mode:hover{box-shadow:none}.gengage-chat-launcher--image-mode img{object-fit:contain;width:100%;height:100%}.gengage-chat-launcher--hidden-mobile{display:none!important}.gengage-chat-launcher-tooltip{border-radius:var(--radius-control);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--shadow-2);padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .2s;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)}.gengage-chat-launcher-tooltip:after{content:"";border:5px solid #0000;border-left-color:var(--surface-shell);position:absolute;top:50%;left:100%;transform:translateY(-50%)}.gengage-chat-launcher:hover .gengage-chat-launcher-tooltip{opacity:1}.gengage-chat-root--open .gengage-chat-launcher-tooltip{display:none}.gengage-chat-drawer{width:var(--_gengage-chat-drawer-width);background:var(--surface-elevated,var(--surface-card));border-left:1px solid var(--border-default);max-height:100dvh;box-shadow:var(--_gengage-chat-shadow);z-index:var(--gengage-z-index,2147480000);opacity:1;border-radius:0;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-launcher-container{right:var(--gengage-chat-launcher-mobile-right,16px);bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + env(safe-area-inset-bottom,0px))}.gengage-chat-root--mobile .gengage-chat-drawer{border:1px solid var(--border-default);width:100%;max-width:none;max-height:100dvh;box-shadow:var(--shadow-3);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-elevated,var(--surface-card));border-bottom:none;border-radius:16px 16px 0 0;bottom:0;left:0;right:0}.gengage-chat-drawer-handle{display:none}.gengage-chat-root--mobile .gengage-chat-drawer-handle{pointer-events:none;z-index:1;justify-content:center;align-items:center;height:14px;display:flex;position:absolute;top:6px;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.gengage-chat-root--mobile .gengage-chat-header button,.gengage-chat-root--mobile .gengage-chat-header a{cursor:pointer;touch-action:auto;-webkit-user-select:auto;user-select:auto}.gengage-chat-root--mobile .gengage-chat-drawer-handle:before{content:"";background:var(--border-strong);pointer-events:none;border-radius:999px;width:36px;height:4px}.gengage-chat-root--mobile.gengage-chat-root--mobile-half .gengage-chat-drawer{height:min(72dvh,620px);max-height:min(72dvh,620px);top:auto}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-drawer{border-radius:0;height:100dvh;max-height:100dvh;top:0}.gengage-chat-root--mobile .gengage-chat-input-area{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-default);transform:translateY(calc(-1 * var(--gengage-keyboard-offset,0px)))}.gengage-chat-header{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--gengage-chat-header-bg,var(--ds-header-bg));color:var(--gengage-chat-header-foreground,var(--ds-header-fg));box-shadow:none;border-bottom:1px solid var(--gengage-chat-header-border-bottom,var(--ds-header-border));z-index:2;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:relative}.gengage-chat-header-left{align-items:center;gap:10px;min-width:0;display:flex}.gengage-chat-header-avatar{background:var(--surface-card-soft);border:1px solid var(--border-default);object-fit:contain;border-radius:999px;flex-shrink:0;width:44px;height:44px}.gengage-chat-header-avatar--logo{object-fit:contain;background:0 0;border:none;border-radius:0;width:auto;max-width:92px;height:45px}.gengage-chat-header-info{flex-direction:column;gap:2px;min-width:0;display:flex}.gengage-chat-header-title-row{align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-header-title{letter-spacing:.01em;color:inherit;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;line-height:1.25;display:block;overflow:hidden}.gengage-chat-header-badge{border-radius:var(--radius-pill);background:var(--ds-badge-brand-bg);min-height:26px;color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:0 10px;font-size:10px;font-weight:800;line-height:1.5;display:inline-flex}.gengage-chat-header-powered{color:var(--ds-header-muted);align-items:center;gap:4px;font-size:11px;line-height:1.2;text-decoration:none;transition:color .15s;display:flex}.gengage-chat-header-powered:hover{color:var(--client-primary)}.gengage-chat-header-powered svg{opacity:.6;flex-shrink:0;width:12px;height:12px}.gengage-chat-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.gengage-chat-header-btn{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;line-height:1;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-header-btn:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-header-btn--fav{position:relative}.gengage-chat-header-btn--reopen-panel,.gengage-chat-root--mobile .gengage-chat-new-chat{display:none}.gengage-chat-header-fav-badge{background:var(--error);min-width:16px;height:16px;color:var(--text-inverse);text-align:center;pointer-events:none;border-radius:999px;padding:0 3px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.gengage-chat-close{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-close:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-body{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.gengage-chat-panel{width:0;transition:width .22s cubic-bezier(.2,.72,.2,1);display:none;overflow:hidden}.gengage-chat-panel--visible{box-sizing:border-box;background:var(--gengage-chat-panel-bg,var(--surface-card));border-right:1px solid var(--border-default);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 24%, transparent) transparent;flex-direction:column;width:440px;min-width:440px;padding:16px;display:flex;position:relative;overflow-y:auto}.gengage-chat-panel--visible::-webkit-scrollbar{width:6px}.gengage-chat-panel--visible::-webkit-scrollbar-track{background:0 0}.gengage-chat-panel--visible::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 24%, transparent);border-radius:3px}.gengage-chat-panel--visible::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-panel-ai-zone{box-sizing:border-box;border-bottom:1px solid var(--border-subtle);flex-shrink:0;width:100%;max-height:min(42vh,320px);margin-bottom:4px;padding:8px 0 12px;overflow:auto}.gengage-chat-panel-ai-zone:has(.gengage-chat-grouping-cards){max-height:min(52vh,520px)}.gengage-chat-panel-ai-zone:has(.gengage-chat-ai-top-picks){max-height:none;overflow:visible}.gengage-chat-panel-ai-zone[hidden]{display:none!important}.gengage-chat-panel-ai-zone-inner{align-items:center;gap:10px;display:flex}.gengage-chat-panel-ai-zone-text{color:var(--text-muted);font-size:13px}.gengage-chat-grouping-section-title{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-section-title{width:100%;color:var(--text-primary);letter-spacing:-.01em;flex-shrink:0;align-self:stretch;margin:0 0 10px;font-size:15px;font-weight:700;display:block}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards{flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;max-height:none;display:flex}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-flow:row;align-items:stretch;gap:10px;width:100%;min-width:0;margin:0 -2px;padding:2px 2px 10px;display:flex;overflow:auto hidden}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card{box-sizing:border-box;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);width:136px;min-width:136px;max-width:150px;box-shadow:var(--shadow-1);flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:12px 10px 14px}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-arrow{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-img{object-fit:cover;border-radius:8px;width:100%;min-width:0;max-width:88px;height:72px;min-height:72px;margin:0 auto}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-body{text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-name{font-size:13px;font-weight:700;line-height:1.25}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:11px;line-height:1.3}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-labels{white-space:normal;text-overflow:unset;justify-content:center;margin-top:2px;line-height:1.35;overflow:visible}.gengage-chat-panel-divider{cursor:pointer;background:var(--_gengage-border-color);z-index:2;flex-shrink:0;align-items:center;width:4px;transition:background .15s;display:flex;position:relative}.gengage-chat-panel-divider:hover{background:var(--border-strong)}.gengage-chat-panel-divider--hidden{display:none}.gengage-chat-panel-divider-toggle{border:1px solid var(--_gengage-border-color);background:var(--surface-card);cursor:pointer;width:28px;height:48px;color:var(--text-secondary);box-shadow:var(--shadow-1);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-toggle:hover{background:var(--surface-card-muted);color:var(--client-primary)}.gengage-chat-panel-divider-preview{pointer-events:none;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:38px;height:192px;box-shadow:var(--shadow-2);z-index:1;border-radius:999px;flex-direction:column;gap:2px;padding:6px 4px;display:none;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-preview:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--surface-shell) 10%, transparent));pointer-events:none;position:absolute;inset:0}.gengage-chat-panel-divider-preview-thumb{border-radius:999px;flex:1 1 0;min-height:0;position:relative;overflow:hidden}.gengage-chat-panel-divider-preview-img{object-fit:cover;filter:grayscale(.55)saturate(.8)brightness(.92);opacity:.9;width:100%;height:100%;transform:scale(1.14)}.gengage-chat-panel.gengage-chat-panel--collapsed{border-right:none;flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider .gengage-chat-panel-divider-toggle{left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider.gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-preview{display:flex;left:50%;transform:translate(-50%,-50%)}.gengage-chat-conversation{background:var(--surface-card);z-index:1;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.gengage-chat-drawer--with-panel{width:auto;box-shadow:none;background:0 0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-header{border-radius:0;flex-shrink:0}.gengage-chat-drawer--with-panel .gengage-chat-body{flex:1 1 0;align-items:stretch;gap:0;min-height:0;padding:0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(var(--_gengage-chat-panel-min-width), 56vw, var(--_gengage-chat-panel-max-width));min-width:var(--_gengage-chat-panel-min-width);max-width:var(--_gengage-chat-panel-max-width);background:var(--gengage-chat-panel-bg,var(--surface-card));box-shadow:none;border-right:none;border-radius:0;flex:none;max-height:100dvh;margin:0;padding:0 16px 16px;overflow-y:auto}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle{background:var(--surface-card);width:20px;height:48px;color:var(--client-primary);border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));box-shadow:var(--shadow-1);z-index:10;border-radius:10px;font-size:12px}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle);color:var(--client-primary)}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle)}.gengage-chat-drawer--with-panel .gengage-chat-conversation{flex:0 0 var(--_gengage-chat-conversation-width);width:var(--_gengage-chat-conversation-width);background:var(--surface-card);box-shadow:var(--shadow-2);border-left:none}.gengage-chat-drawer--with-panel .gengage-chat-messages{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 22%, transparent) transparent;padding-right:6px}.gengage-chat-drawer--with-panel .gengage-chat-messages::-webkit-scrollbar{width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel.gengage-chat-panel--collapsed{flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-drawer--with-panel:has(.gengage-chat-panel--collapsed){width:var(--_gengage-chat-conversation-width);background:var(--surface-elevated,var(--surface-card));box-shadow:var(--_gengage-chat-shadow)}.gengage-chat-drawer--with-panel .gengage-chat-footer{display:none}.gengage-chat-messages{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.gengage-chat-messages::-webkit-scrollbar{width:6px}.gengage-chat-messages::-webkit-scrollbar-track{background:0 0}.gengage-chat-messages::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 22%, transparent);border-radius:3px}.gengage-chat-messages::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-bubble--presentation-collapsed{display:none!important}.gengage-chat-former-messages-btn{z-index:2;border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:color-mix(in srgb, var(--surface-card) 96%, transparent);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-1);flex-shrink:0;align-self:center;margin-bottom:4px;padding:8px 14px;font-size:13px;font-weight:600;position:sticky;top:0}.gengage-chat-former-messages-btn:hover{background:var(--surface-card-muted)}.gengage-chat-bubble{position:relative}@keyframes gengage-chat-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-bubble--user{max-width:85%}.gengage-chat-bubble--assistant{max-width:85%;margin-left:2px}.gengage-chat-bubble--active{outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}.gengage-chat-bubble--assistant:empty{display:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a{color:var(--client-primary);text-decoration:underline}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a:hover{text-decoration:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p{margin:0 0 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p:last-child{margin-bottom:0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text ul,.gengage-chat-bubble--assistant .gengage-chat-bubble-text ol{margin:6px 0;padding-left:20px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text li{margin-bottom:6px;line-height:1.5}.gengage-chat-bubble--assistant .gengage-chat-bubble-text code{background:color-mix(in srgb, var(--text-primary) 8%, transparent);border-radius:6px;padding:1px 4px;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text pre{background:color-mix(in srgb, var(--surface-card) 78%, var(--surface-card-soft));border:1px solid var(--border-subtle);border-radius:12px;margin:4px 0;padding:10px 12px;overflow-x:auto}.gengage-chat-bubble--assistant .gengage-chat-bubble-text table{border-collapse:collapse;margin:4px 0;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text th,.gengage-chat-bubble--assistant .gengage-chat-bubble-text td{border:1px solid var(--border-default);padding:4px 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text img{border-radius:12px;max-width:100%;height:auto;margin:4px 0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text h1,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h2,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h3,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h4,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h5,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h6{color:var(--text-primary);margin:8px 0 4px;line-height:1.3}.gengage-chat-bubble--assistant .gengage-chat-bubble-text blockquote{border-left:3px solid var(--border-default);color:var(--text-secondary);margin:4px 0;padding-left:12px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text{overflow-wrap:break-word}.gengage-chat-bubble--photo-analysis{border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card-soft) 80%, white), var(--surface-card))}.gengage-chat-photo-analysis-card{flex-direction:column;gap:10px;display:flex}.gengage-chat-photo-analysis-badge{letter-spacing:.02em;color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 14%, white);border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default));border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:800}.gengage-chat-photo-analysis-body{flex-direction:column;gap:10px;display:flex}.gengage-chat-photo-analysis-summary{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.gengage-chat-photo-analysis-points{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-next{background:color-mix(in srgb, var(--client-primary) 7%, white);color:var(--text-primary);border-radius:10px;margin:0;padding:8px 10px;font-size:13px;line-height:1.45}.gengage-chat-bubble--first{border-left:1px solid var(--ds-message-assistant-border)}.gengage-chat-bubble--first .gengage-chat-bubble-text{font-size:inherit}@media (width<=768px){.gengage-chat-bubble--assistant .gengage-chat-bubble-text{line-height:1.5}.gengage-chat-bubble--user{word-break:break-word;max-width:calc(100% - 16px)}}.gengage-chat-typing{align-self:flex-start;max-width:85%}.gengage-chat-typing-dots{flex-shrink:0}.gengage-chat-typing-text{flex:1;min-width:0}.gengage-chat-panel-loading-status{margin-bottom:16px}.gengage-chat-panel-loading-status.gds-progress-loader-panel{box-sizing:border-box;min-width:0;max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status.gds-progress-loader-panel{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status .gengage-chat-panel-loading-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-offline-bar{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 22%, var(--border-default));align-items:center;gap:6px;padding:6px 12px;font-size:12px;line-height:1.4;display:none}.gengage-chat-offline-bar--visible{display:flex}.gengage-chat-offline-bar:before{content:"";background:var(--_gengage-rating-color);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.gengage-chat-thinking-steps{flex-direction:column;gap:4px;padding:4px 0;display:flex}.gengage-chat-thinking-step{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.gengage-chat-thinking-step-marker{text-align:center;flex-shrink:0;width:16px;font-size:12px}.gengage-chat-thinking-step-marker--done{color:var(--_gengage-success-color)}.gengage-chat-thinking-step-marker--active{color:var(--ai-accent-start);animation:1.5s ease-in-out infinite gengage-thinking-pulse}@keyframes gengage-thinking-pulse{0%,to{opacity:1}50%{opacity:.4}}.gengage-chat-thinking-step-text{line-height:1.4}.gengage-chat-error{border-radius:var(--radius-control);background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));text-align:center;border:1px solid color-mix(in srgb, var(--error) 22%, var(--border-default));justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.gengage-chat-error-retry{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border-default));border-radius:var(--radius-control);background:var(--surface-card);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));cursor:pointer;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s}.gengage-chat-error-retry:hover{background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 32%, var(--border-default))}.gengage-chat-input-area{border-top:1px solid var(--border-subtle);background:var(--surface-card);z-index:2;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:0;padding:10px 12px 12px;display:flex;position:relative}.gengage-chat-input-pill{background:var(--surface-card);border:1px solid var(--border-default);min-width:0;min-height:52px;box-shadow:none;border-radius:16px;flex:1;align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .2s,box-shadow .2s;display:flex;overflow:visible}.gengage-chat-input-pill:focus-within{border-color:color-mix(in srgb, var(--client-primary) 28%, white);box-shadow:0 0 0 4px var(--client-focus-ring)}.gengage-chat-input{min-width:0;min-height:40px;max-height:120px;color:var(--_gengage-text-primary);resize:none;background:0 0;border:none;border-radius:0;outline:none;flex:1;align-content:center;padding:0;font-family:inherit;font-size:14px;line-height:1.4;overflow-y:hidden}.gengage-chat-root--mobile .gengage-chat-input-pill{min-height:52px;padding:6px 6px 6px 14px}.gengage-chat-root--mobile .gengage-chat-input{white-space:nowrap;min-height:44px;max-height:44px;font-size:16px;overflow:hidden}.gengage-chat-input::placeholder{color:var(--text-muted);font-size:14px;line-height:normal}.gengage-chat-send{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);width:40px;min-width:40px;height:40px;color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;font-weight:700;transition:background-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,transform .15s;display:flex;position:relative}.gengage-chat-send:hover{background:var(--ds-button-primary-bg-hover);box-shadow:none;transform:none}.gengage-chat-send:active{box-shadow:none;transform:translateY(0)}.gengage-chat-send svg{width:18px;height:18px}.gengage-chat-send--stop{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--text-primary)}.gengage-chat-send--stop:hover{background:color-mix(in srgb, var(--surface-card-soft) 86%, var(--client-primary-subtle));border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-send-stop-icon{background:currentColor;border-radius:4px;width:12px;height:12px;display:inline-block}.gengage-chat-send--stop:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:600;line-height:1.2;transition:opacity .16s;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.gengage-chat-send--stop:hover:after,.gengage-chat-send--stop:focus-visible:after{opacity:1}}.gengage-chat-send:disabled{background:var(--ds-neutral-200);border-color:var(--ds-neutral-200);opacity:.5;box-shadow:none;cursor:not-allowed}.gengage-chat-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:4px 10px;font-size:10px}.gengage-chat-uispec{width:100%}.gengage-chat-uispec:empty{display:none}.gengage-chat-uispec>*{animation:.16s cubic-bezier(.2,.7,.2,1) both gengage-chat-widget-enter}@keyframes gengage-chat-widget-enter{0%{opacity:0;transform:translateY(5px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.gengage-chat-action-buttons{flex-wrap:wrap;justify-content:flex-start;gap:8px;padding:6px 0 4px;display:flex}.gengage-chat-action-buttons:after{content:"";flex:1 0 auto}.gengage-chat-action-btn{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-pill,999px);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;white-space:nowrap;flex:none;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700;line-height:1.25;transition:filter .15s,transform .1s}.gengage-chat-action-btn:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-action-btn:active{transform:scale(.97)}.gengage-chat-product-card{border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);background:var(--ds-card-bg);width:160px;min-width:160px;max-width:160px;box-shadow:var(--ds-card-shadow);flex-direction:column;transition:transform .1s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.gengage-chat-product-card:hover{box-shadow:var(--ds-card-shadow-hover);transform:translateY(-2px)}.gengage-chat-product-card-img{object-fit:contain;background:var(--surface-card);box-sizing:border-box;width:100%;height:120px;padding:8px;display:block}.gengage-chat-product-card-body{text-align:center;flex-direction:column;flex:1;gap:4px;padding:8px 10px 10px;display:flex}.gengage-chat-product-card-name{color:var(--_gengage-text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;min-height:2.7em;margin-bottom:0;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-card-brand{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-star-half{display:inline-block;position:relative}.gengage-star-half>span{width:.5em;position:absolute;top:0;left:0;overflow:hidden}.gengage-chat-product-card-review-count{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-price,.gengage-chat-product-card-price-block{color:var(--text-primary);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 6px;font-size:16px;font-weight:800;display:flex}.gengage-chat-product-card-current-price{font:inherit;color:var(--gengage-discounted-price-color,var(--text-primary));font-weight:800}.gengage-chat-product-card-original-price{color:var(--_gengage-text-secondary);margin-right:0;font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-campaign-reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0 0 4px;font-size:11px;font-weight:700;line-height:1.25}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.gengage-chat-campaign-reason,.gengage-chat-campaign-price-badge__reason{color:var(--_gengage-campaign-reason-start);background:0 0}}.gengage-chat-product-card-price-stack{flex-direction:column;align-items:flex-start;width:100%;min-width:0;display:flex}.gengage-chat-product-card-price-row{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-card-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.95em;margin:0 1px;display:inline-block}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-original-price{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:16px;font-weight:500;text-decoration:none}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:16px;font-weight:800}.gengage-chat-product-card-meta-row{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:8px;width:100%;min-height:34px;display:flex}.gengage-chat-product-card-meta-row--empty{visibility:hidden}.gengage-chat-product-card-rating-compact{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-product-card-rating-compact-value{font-variant-numeric:tabular-nums;color:var(--text-primary)}.gengage-chat-product-card-img-actions{z-index:4;pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-product-card-img-actions>*{pointer-events:auto}.gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{position:static}.gengage-chat-price-skeleton{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);vertical-align:middle;background-size:200% 100%;border-radius:4px;width:80px;height:16px;animation:1.5s ease-in-out infinite gengage-skeleton-price-pulse;display:inline-block}@keyframes gengage-skeleton-price-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-product-card-cta{text-align:center;color:var(--client-primary);letter-spacing:.01em;border-top:1px solid var(--border-default);cursor:pointer;background:0 0;margin-top:auto;padding:8px 10px;font-size:12px;font-weight:700;text-decoration:none;transition:color .15s,background .15s;display:block}.gengage-chat-product-card-cta:hover{color:var(--client-primary-hover);background:var(--surface-card-soft)}.gengage-chat-product-card-cta:active{background:var(--surface-card-soft)}button.gengage-chat-product-card-cta{appearance:none;font:inherit;box-sizing:border-box;border-bottom:none;border-left:none;border-right:none;width:100%;margin:0}.gengage-chat-product-summary{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0;padding:10px 12px;transition:background .15s,box-shadow .15s,border-color .15s;display:flex}.gengage-chat-product-summary:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-product-summary__image{border-radius:var(--radius-control);border:1px solid var(--border-subtle);background:var(--surface-card-soft);flex-shrink:0;width:64px;height:64px;overflow:hidden}.gengage-chat-product-summary__image img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-product-summary__content{flex-direction:column;flex:180px;gap:2px;min-width:0;display:flex}.gengage-chat-product-summary__name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-product-summary__rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-chat-product-summary__review-count{color:var(--text-secondary);font-size:11px}.gengage-chat-product-summary__price{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:600;line-height:1}.gengage-chat-product-summary__price-original{color:var(--_gengage-text-secondary);font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-product-summary__price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:2px;display:flex}.gengage-chat-product-summary__price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-product-summary__price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-summary__price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.9em;margin:0 1px;display:inline-block}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-original{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:13px;font-weight:500;text-decoration:none}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:13px;font-weight:700}.gengage-chat-product-summary__cta{color:var(--client-primary);border-radius:var(--radius-pill);background:var(--client-primary-subtle);white-space:nowrap;flex-shrink:0;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.gengage-chat-product-summary__cta:hover{background:var(--client-primary-soft)}.gengage-chat-product-summary__cta:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-grid{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;gap:12px;min-height:180px;padding:8px 16px 8px 0;display:flex;overflow-x:auto}.gengage-chat-product-grid>*{scroll-snap-align:start;flex:none}.gengage-chat-product-grid::-webkit-scrollbar{display:none}.gengage-chat-review-highlights{padding:4px 0 8px}.gengage-chat-review-empty{color:var(--_gengage-text-secondary);font-size:12px}.gengage-chat-review-subjects-heading{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:700}.gengage-chat-review-subjects{margin-bottom:12px}.gengage-chat-review-subject{color:var(--text-primary);box-shadow:none;gap:6px;padding:7px 11px;font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-review-subject--active{border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}.gengage-chat-review-subject-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.gengage-chat-review-subject-icon svg{width:14px;height:14px;display:block}.gengage-chat-review-subject[data-tone=positive] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-review-subject[data-tone=negative] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--error) 84%, var(--text-primary))}.gengage-chat-review-subject[data-tone=neutral] .gengage-chat-review-subject-icon{color:var(--text-secondary)}.gengage-chat-review-subject-label{color:inherit}.gengage-chat-review-subject-count{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-review-detail{padding:12px}.gengage-chat-review-detail-meta{flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-bottom:10px;display:flex}.gengage-chat-review-detail-mentions{color:var(--_gengage-text-primary);font-size:13px;font-weight:700}.gengage-chat-review-detail-positive{color:var(--_gengage-success-color);font-size:13px;font-weight:700}.gengage-chat-review-detail-negative{color:var(--error);font-size:13px;font-weight:700}.gengage-chat-review-snippets{gap:10px;display:grid}.gengage-chat-review-snippet{border:1px solid var(--border-subtle);border-left:3px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card-soft);padding:8px 10px}.gengage-chat-review-snippet[data-tone=positive]{border-left-color:color-mix(in srgb, var(--success) 40%, var(--border-default))}.gengage-chat-review-snippet[data-tone=negative]{border-left-color:color-mix(in srgb, var(--error) 40%, var(--border-default))}.gengage-chat-review-snippet-text{color:var(--_gengage-text-primary);font-size:13px;line-height:1.4}.gengage-chat-review-snippet-rating{color:var(--text-secondary);margin-top:4px;font-size:12px;font-weight:700}.gengage-chat-favorites-page{padding:12px}.gengage-chat-favorites-empty{text-align:center;color:var(--_gengage-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.gengage-chat-favorites-empty-icon{opacity:.25;color:var(--error)}.gengage-chat-favorites-empty p{margin:0;font-size:13px;line-height:1.5}.gengage-chat-favorites-list{flex-direction:column;gap:10px;display:flex}.gengage-chat-favorites-card{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-1);align-items:center;gap:12px;padding:10px 12px;transition:opacity .2s,transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative}.gengage-chat-favorites-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-favorites-card--removing{opacity:0;transform:translate(8px)}.gengage-chat-favorites-card__image{border-radius:var(--radius-control);background:var(--surface-card-muted);flex-shrink:0;width:56px;height:56px;overflow:hidden}.gengage-chat-favorites-card__image img{object-fit:contain;width:100%;height:100%}.gengage-chat-favorites-card__info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.gengage-chat-favorites-card__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.gengage-chat-favorites-card__price{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-favorites-remove{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--error);cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,background .15s;display:inline-flex}.gengage-chat-favorites-remove:hover{opacity:1;background:color-mix(in srgb, var(--error) 10%, white)}.gengage-chat-divider{border:none;border-top:1px solid var(--_gengage-border-color);margin:8px 0}.gengage-chat-divider-wrapper{align-items:center;gap:8px;margin:8px 0;display:flex}.gengage-chat-divider-wrapper hr{border:none;border-top:1px solid var(--_gengage-border-color);flex:1;margin:0}.gengage-chat-divider-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.gengage-chat--overlay .gengage-chat-drawer{border-radius:0;width:100%;max-width:480px;max-height:100%;margin:0 auto;animation:.24s cubic-bezier(.2,.72,.2,1) gengage-chat-overlay-in;position:fixed;inset:0}@keyframes gengage-chat-overlay-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-panel-skeleton{box-sizing:border-box;flex-direction:column;gap:14px;min-width:0;max-width:100%;padding:6px 0;display:flex}.gengage-chat-panel-skeleton-block{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;border-radius:10px;height:110px;animation:1.4s infinite gengage-panel-shimmer}@keyframes gengage-panel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-panel-skeleton-block--image{border-radius:8px;height:200px;margin-bottom:12px}.gengage-chat-panel-skeleton-block--text{border-radius:4px;height:16px;margin-bottom:8px}.gengage-chat-panel-skeleton-block--text:nth-child(3){width:80%}.gengage-chat-panel-skeleton-block--text:nth-child(4){width:60%}.gengage-chat-panel-skeleton-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gengage-chat-panel-skeleton-block--card{border-radius:8px;height:120px}.gengage-chat-panel-skeleton--comparison{gap:0;padding:0}.gengage-chat-panel-skeleton--comparison .gengage-chat-panel-loading-status{margin:0;padding:16px 16px 0}.gengage-chat-comparison--skeleton{pointer-events:none;box-sizing:border-box;width:100%}.gengage-chat-comparison-skeleton-shimmer{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;animation:1.4s infinite gengage-panel-shimmer}.gengage-chat-comparison-skeleton-rec-label{border-radius:4px;width:132px;height:12px;margin-bottom:12px}.gengage-chat-comparison-skeleton-rec-img{border-radius:8px;flex-shrink:0;width:80px;height:80px}.gengage-chat-comparison-skeleton-rec-title{border-radius:4px;max-width:100%;height:14px;margin-bottom:6px}.gengage-chat-comparison-skeleton-rec-title--short{width:72%;margin-bottom:8px}.gengage-chat-comparison-skeleton-rec-price{border-radius:4px;width:112px;height:18px}.gengage-chat-comparison-skeleton-hl-label{border-radius:4px;width:96px;height:12px;margin-bottom:6px}.gengage-chat-comparison-skeleton-hl-list{margin:0;padding-left:18px;list-style:none}.gengage-chat-comparison-skeleton-hl-list li{margin-bottom:8px}.gengage-chat-comparison-skeleton-hl-list li:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-hl-line{border-radius:4px;width:100%;height:13px}.gengage-chat-comparison-skeleton-hl-line--medium{width:92%}.gengage-chat-comparison-skeleton-hl-line--short{width:78%}.gengage-chat-comparison-skeleton-kd-heading{border-radius:4px;width:42%;height:14px;margin:0 0 8px}.gengage-chat-comparison-skeleton-kd-line{border-radius:4px;max-width:100%;height:13px;margin-bottom:8px}.gengage-chat-comparison-skeleton-kd-line:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-kd-line:nth-child(odd){width:100%}.gengage-chat-comparison-skeleton-kd-line:nth-child(2n){width:90%}.gengage-chat-comparison-special--skeleton{cursor:default;align-items:center;min-height:44px;display:flex}.gengage-chat-comparison-skeleton-special-line{border-radius:4px;width:56%;max-width:280px;height:14px}.gengage-chat-comparison-skeleton-table-wrap{border:1px solid var(--border-default);background:var(--surface-card);-webkit-overflow-scrolling:touch;border-radius:8px;margin-top:12px;overflow-x:auto}.gengage-chat-comparison-skeleton-table-head,.gengage-chat-comparison-skeleton-table-row{grid-template-columns:72px repeat(3,minmax(0,1fr));align-items:start;gap:8px;padding:10px 12px;display:grid}.gengage-chat-comparison-skeleton-table-head{border-bottom:1px solid var(--_gengage-surface-muted);background:var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-corner{min-height:92px}.gengage-chat-comparison-skeleton-table-col{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-comparison-skeleton-table-th-img{border-radius:6px;flex-shrink:0;width:60px;height:60px}.gengage-chat-comparison-skeleton-table-th-name{border-radius:3px;width:100%;max-width:100%;height:11px}.gengage-chat-comparison-skeleton-table-th-price{border-radius:3px;width:64%;height:13px}.gengage-chat-comparison-skeleton-table-row{border-bottom:1px solid var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-row:last-child{border-bottom:none}.gengage-chat-comparison-skeleton-table-label{border-radius:3px;align-self:center;width:100%;max-width:56px;height:12px}.gengage-chat-comparison-skeleton-table-cell{border-radius:3px;width:100%;height:14px}.gengage-chat-panel-skeleton-block--row{border-radius:4px;height:32px;margin-bottom:4px}.gengage-chat-panel .gengage-chat-product-card{border-radius:var(--radius-card);border:1px solid var(--border-default);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-1);background:var(--surface-card);flex-direction:column;padding:0;display:flex;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-2px)}.gengage-chat-panel .gengage-chat-product-card-img-actions{gap:6px;top:10px;right:10px}.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{border-radius:8px;width:28px;height:28px}.gengage-chat-panel .gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--client-primary);min-width:36px;height:36px;color:var(--client-on-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex;top:10px;left:10px}.gengage-chat-panel .gengage-chat-product-card-brand{display:none}.gengage-chat-panel .gengage-chat-product-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;min-height:auto;padding:4px 0;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:auto;padding:6px 0 10px;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile .gengage-chat-product-card{box-sizing:border-box;width:100%;min-width:0;max-width:none}.gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;background:var(--surface-card-muted);border-radius:var(--radius-card) var(--radius-card) 0 0;flex-shrink:0;width:100%;position:relative;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card-img{border-radius:inherit;object-fit:cover;object-position:center;box-sizing:border-box;background:0 0;width:100%;height:100%;min-height:0;padding:0;display:block}.gengage-chat-panel .gengage-chat-product-card-body{text-align:left;gap:8px;padding:12px 14px 10px}.gengage-chat-panel .gengage-chat-product-card-meta-row{align-items:center;min-height:38px;margin-bottom:0}.gengage-chat-panel .gengage-chat-product-card-price,.gengage-chat-panel .gengage-chat-product-card-price-block{color:var(--text-primary);justify-content:flex-start;font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-original-price{color:var(--text-muted);font-size:12px;font-weight:400}.gengage-chat-panel .gengage-chat-product-card-rating-compact{font-size:11px;font-weight:700}.gengage-chat-panel .gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 58%, var(--text-primary))}.gengage-chat-panel .gengage-chat-product-card-name{min-height:0;color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.35}.gengage-chat-panel .gengage-chat-product-card-buy-footer{flex-shrink:0;min-width:0;margin-top:auto;padding:0 14px 16px;display:flex;position:relative}.gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;border:1.5px solid var(--client-primary);background:var(--surface-card);width:100%;min-width:0;min-height:42px;color:var(--client-primary);white-space:nowrap;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin:0;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;transition:background .15s,box-shadow .15s;display:flex}.gengage-chat-panel .gengage-chat-product-card-buy-trigger:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);box-shadow:var(--shadow-1)}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{border:1.5px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 28px);min-width:0;color:var(--client-primary);box-sizing:border-box;border-radius:12px;justify-content:center;align-items:center;min-height:42px;margin:0 14px 16px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta:hover{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-product-card--selected{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, transparent);box-shadow:0 0 0 1px var(--client-primary)}.gengage-chat-panel--visible{min-height:0}.gengage-chat-panel--visible>*{flex-shrink:0}.gengage-chat-load-more-btn{border:1px solid var(--border-default);color:var(--client-primary);cursor:pointer;background:0 0;border-radius:8px;margin:12px auto;padding:8px 24px;font-size:14px;display:block}.gengage-chat-load-more-btn:hover{background:var(--surface-card-muted)}.gengage-chat-product-details-panel{background:var(--surface-card);border:1px solid var(--border-default);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:12px;width:100%;padding:14px;display:flex}.gengage-chat-product-details-media{border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;flex-direction:column;align-items:center;padding:12px;display:flex}.gengage-chat-product-details-img{object-fit:contain;border-radius:8px;width:100%;height:auto;max-height:300px}.gengage-chat-product-details-content{flex-direction:column;gap:8px;min-width:0;display:flex}.gengage-chat-product-details-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700;line-height:1.3}.gengage-chat-product-details-rating{background:color-mix(in srgb, var(--warning) 10%, white);width:fit-content;color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-product-details-review-count{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));font-weight:600}.gengage-chat-product-details-price{align-items:baseline;gap:6px;display:flex}.gengage-chat-product-details-original-price{color:var(--text-secondary);font-size:14px;text-decoration:line-through}.gengage-chat-product-details-price-stack{flex-direction:column;align-items:flex-start;gap:2px;width:100%;display:flex}.gengage-chat-product-details-price-stack .gengage-chat-campaign-reason{margin-bottom:2px;font-size:13px;font-weight:600}.gengage-chat-product-details-price--inline{flex-wrap:nowrap;align-items:baseline}.gengage-chat-product-details-price--inline .gengage-chat-product-details-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:1em;margin:0 4px;display:inline-block}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{color:var(--text-secondary);order:0;font-size:22px;font-weight:500;text-decoration:none}.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));order:0;font-size:22px;font-weight:800}.gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:22px;font-weight:800;line-height:1.1}.gengage-chat-product-details-stock{border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:700}.gengage-chat-product-details-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-details-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-product-details-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.gengage-chat-product-details-cta{border-radius:var(--radius-control,12px);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;transition:filter .14s,transform .12s;display:inline-flex}.gengage-chat-product-details-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-product-details-cta:active{background:var(--ds-button-primary-bg-active)}.gengage-chat-product-details-atc{border-radius:var(--radius-control);background:var(--_gengage-success-color);color:var(--client-on-primary);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:filter .12s,transform .12s;display:inline-flex}.gengage-chat-product-details-atc:hover{filter:brightness(1.08);transform:translateY(-1px)}.gengage-chat-product-details-atc:active{transform:translateY(1px)}.gengage-chat-product-detail-tabs{border-top:1px solid var(--border-default);margin-top:4px;padding-top:12px}.gengage-chat-product-detail-tab-bar{border-bottom:1px solid var(--border-default);gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.gengage-chat-product-detail-tab{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.gengage-chat-product-detail-tab:hover{color:var(--text-primary);background:color-mix(in srgb, var(--surface-card-soft) 82%, transparent)}.gengage-chat-product-detail-tab--active{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-product-detail-tab-panel{color:var(--text-secondary);font-size:13px;line-height:1.6}.gengage-chat-product-description{color:var(--text-primary);flex-direction:column;gap:10px;display:flex}.gengage-chat-product-description p,.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4,.gengage-chat-product-description ul,.gengage-chat-product-description ol{margin:0}.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4{color:var(--text-primary);font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-product-description ul,.gengage-chat-product-description ol{padding-left:20px}.gengage-chat-product-description li+li{margin-top:6px}.gengage-chat-product-description strong,.gengage-chat-product-description b{font-weight:800}.gengage-chat-product-specs-table{border-collapse:collapse;width:100%;font-size:13px}.gengage-chat-product-specs-table tr:nth-child(2n){background:var(--surface-card-muted)}.gengage-chat-product-specs-key{color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid var(--border-subtle);width:40%;padding:6px 10px;font-weight:600}.gengage-chat-product-specs-value{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:6px 10px}.gengage-chat-product-card-atc{opacity:0;z-index:1;transition:opacity .15s;position:absolute;bottom:42px;right:6px}.gengage-chat-product-card:hover .gengage-chat-product-card-atc{opacity:1}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-atc{opacity:1;width:100%;margin:0;display:flex;position:relative;bottom:auto;right:auto}}.gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translateY(100%)}@media (width<=900px){.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(280px, calc(100vw - var(--_gengage-chat-conversation-width)), 560px);max-width:560px}}.gengage-chat-attachment-preview{background:var(--surface-card-muted);border:1px solid var(--border-default);box-sizing:border-box;border-radius:8px;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.gengage-chat-attachment-preview--hidden{display:none}.gengage-chat-attachment-preview-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:40px;height:40px}.gengage-chat-attachment-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.gengage-chat-attachment-remove{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.gengage-chat-attachment-remove:hover{color:var(--error)}.gengage-chat-attach-btn{background:var(--surface-card-soft);border:1px solid var(--border-default);cursor:pointer;width:40px;height:40px;color:var(--text-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s,border-color .15s;display:flex}.gengage-chat-attach-btn:hover{color:var(--client-primary);background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-attach-btn svg{width:20px;height:20px}.gengage-chat-attach-wrap{flex-shrink:0;align-items:center;display:flex;position:relative}.gengage-chat-attach-menu{z-index:50;background:var(--surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-card);min-width:196px;box-shadow:var(--shadow-3);margin:0;padding:4px 0;list-style:none;position:absolute;bottom:calc(100% + 8px);left:0}.gengage-chat-attach-menu[hidden]{display:none!important}.gengage-chat-attach-menu-item{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;transition:background .12s;display:flex}.gengage-chat-attach-menu-item:hover{background:var(--surface-card-muted)}.gengage-chat-attach-menu-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-attach-menu-label{flex:1;min-width:0}.gengage-chat-attach-menu-sep{background:var(--border-default);height:1px;margin:4px 10px}.gengage-chat-mic-btn{cursor:pointer;border-radius:var(--radius-control);width:32px;height:32px;color:var(--text-secondary);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s;display:flex}.gengage-chat-mic-btn:hover{color:var(--text-primary);background:var(--surface-card-muted);border-color:var(--border-default)}.gengage-chat-mic-btn svg{width:20px;height:20px}.gengage-chat-mic-btn--active{color:var(--error);animation:1.2s ease-in-out infinite gengage-mic-pulse}.gengage-chat-mic-btn--active:hover{color:color-mix(in srgb, var(--error) 84%, black)}@keyframes gengage-mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}.gengage-chat-input-area--dragover{outline:2px dashed var(--client-primary);outline-offset:-2px;background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-attachment-thumb{border-radius:8px;width:120px;max-width:100%;height:auto;margin-bottom:6px;display:block}.gengage-chat-root--mobile .gengage-chat-header-btn,.gengage-chat-root--mobile .gengage-chat-close{border-radius:12px;width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn,.gengage-chat-root--mobile .gengage-chat-mic-btn,.gengage-chat-root--mobile .gengage-chat-send{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn svg,.gengage-chat-root--mobile .gengage-chat-mic-btn svg{width:22px;height:22px}.gengage-chat-root--mobile .gengage-chat-panel-divider{cursor:ns-resize;touch-action:pan-y;background:0 0;justify-content:center;align-items:center;width:100%;height:20px;display:flex;position:relative;overflow:visible}.gengage-chat-root--mobile .gengage-chat-panel-divider--hidden{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel{border-radius:0;width:100%;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-panel{z-index:10;width:100%;min-width:0;max-width:none;max-height:none;box-shadow:none;background:var(--gengage-chat-panel-bg,var(--surface-card));pointer-events:none;border:none;border-radius:0;flex-direction:column;padding:0 12px 16px;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0;overflow-y:auto;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-panel--visible{pointer-events:auto;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-panel-divider,.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-panel-divider{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-body{flex-direction:row}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-conversation{border-left:none;flex:1;width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-cta{box-sizing:border-box;width:100%;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-panel{gap:8px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:0;padding:8px}.gengage-chat-root--mobile .gengage-chat-product-details-content{gap:6px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:14px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-product-details-rating{padding:2px 6px;font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-original-price{font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{gap:6px;margin-top:2px}.gengage-chat-root--mobile .gengage-chat-product-details-cta{min-height:38px;padding:0 14px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-product-grid:not(.gengage-chat-product-grid--mobile){scroll-snap-type:x mandatory}.gengage-chat-root--mobile .gengage-chat-product-grid.gengage-chat-product-grid--mobile{scroll-snap-type:none}.gengage-chat-root--mobile .gengage-chat-product-card{box-sizing:border-box;scroll-snap-align:center;width:280px;min-width:280px;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-grid--mobile .gengage-chat-product-card{scroll-snap-align:start;width:100%;min-width:0;max-width:none}.gengage-chat-root--mobile .gengage-chat-product-card-img-wrapper{justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:180px;display:block}.gengage-chat-root--mobile .gengage-chat-product-card-discount-badge{padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-drawer{border-radius:0;width:100%;max-height:100%;position:fixed;inset:0}.gengage-chat-root--mobile .gengage-chat-bubble{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:min(200px,72%)}.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{flex-shrink:0;width:28px;min-width:28px;height:28px;min-height:28px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-discount-badge{min-width:28px;height:28px;padding:0 6px;font-size:10px;font-weight:700}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer{padding:0 12px 14px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;white-space:normal;text-align:center;-webkit-hyphens:auto;hyphens:auto;min-width:0;max-width:100%;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{box-sizing:border-box;white-space:normal;width:calc(100% - 24px);min-width:0;max-width:calc(100% - 24px);margin-left:12px;margin-right:12px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-rating-compact{gap:3px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-stock{padding:2px 5px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-messages{scrollbar-width:none;padding:12px 16px}.gengage-chat-root--mobile .gengage-chat-messages::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-drawer{border-top:none}.gengage-chat-root--mobile .gengage-chat-header{border-radius:16px 16px 0 0;min-height:72px;padding-top:22px;padding-bottom:8px}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-header{border-radius:0}.gengage-chat-root--mobile .gengage-chat-conversation{-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-product-details-img{object-fit:contain;min-height:0;max-height:200px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{flex-wrap:wrap;gap:8px}.gengage-chat-root--mobile .gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px}.gengage-chat-root--mobile .gengage-chat-input::placeholder{font-size:13px}.gengage-chat-kvkk-banner{background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));align-items:flex-start;gap:8px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.gengage-chat-kvkk-content{flex:1;min-width:0}.gengage-chat-kvkk-content a{color:color-mix(in srgb, var(--warning) 82%, var(--text-primary));text-decoration:underline}.gengage-chat-kvkk-dismiss{width:20px;height:20px;color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}.gengage-chat-comparison{box-sizing:border-box;flex-direction:column;gap:12px;padding:16px;display:flex}.gengage-chat-comparison-heading{letter-spacing:.05em;color:var(--text-primary);margin:0 0 16px;font-size:14px;font-weight:700}.gengage-chat-comparison-recommended{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);padding:16px}.gengage-chat-comparison-recommended-label{color:var(--client-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px;font-weight:700}.gengage-chat-comparison-recommended-body{grid-template-columns:minmax(108px,148px) minmax(0,1fr);align-items:flex-start;gap:16px;display:grid}.gengage-chat-comparison-recommended-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:14px;justify-content:center;align-items:center;display:flex;overflow:hidden}.gengage-chat-comparison-recommended-body img,.gengage-chat-comparison-recommended-placeholder{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:8px}.gengage-chat-comparison-recommended-placeholder{background:var(--surface-card-muted)}.gengage-chat-comparison-recommended-info{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.gengage-chat-comparison-recommended-title{color:var(--text-primary);margin:0;font-size:24px;font-weight:800;line-height:1.2}.gengage-chat-comparison-recommended-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gengage-chat-comparison-recommended-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:color-mix(in srgb, var(--warning) 78%, var(--text-primary));border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-comparison-recommended-rating-value{color:var(--text-primary)}.gengage-chat-comparison-recommended-price{color:var(--text-primary);font-size:20px;font-weight:700}.gengage-chat-comparison-highlights{border-top:1px solid var(--border-subtle);padding-top:12px}.gengage-chat-comparison-highlights-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-comparison-highlights ul{color:var(--text-primary);margin:0;padding-left:18px;font-size:14px;line-height:1.55}.gengage-chat-comparison-special{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));border-radius:var(--radius-card);color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin-bottom:12px;padding:12px 16px;font-size:13px}.gengage-chat-comparison-special summary{cursor:pointer;font-weight:600}.gengage-chat-comparison-special ul{margin:8px 0 0;padding-left:18px;line-height:1.6}.gengage-chat-comparison-table{border-collapse:collapse;background:var(--surface-card);width:100%;font-size:13px}.gengage-chat-comparison-table th,.gengage-chat-comparison-table td{text-align:center;border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:10px 12px}.gengage-chat-comparison-table th{color:var(--text-secondary);font-size:12px;font-weight:600}.gengage-chat-comparison-table thead th:not(:first-child){vertical-align:top}.gengage-chat-comparison-table-header-cell{box-sizing:border-box;grid-template-rows:auto 1fr auto;place-items:start center;gap:6px;height:100%;min-height:0;display:grid}.gengage-chat-comparison-table-header-cell--clickable{cursor:pointer;border-radius:var(--radius-control);padding:6px;transition:background .16s,box-shadow .16s,transform .16s}.gengage-chat-comparison-table-header-cell--clickable:hover{background:var(--surface-card-soft);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-comparison-table-header-cell--clickable:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-comparison-table-header-cell img{object-fit:contain;border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-header-img-placeholder{border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-product-name{width:100%;min-width:0;color:var(--text-secondary);text-align:center;-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;align-self:start;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-comparison-table-price{color:var(--text-primary);text-align:center;width:100%;font-weight:700}.gengage-chat-comparison-label{text-align:left;color:var(--text-secondary);white-space:nowrap;font-weight:600}.gengage-chat-comparison-selected{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-comparison-recommended-text{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.gengage-chat-comparison-key-differences{border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card-muted)}.gengage-chat-comparison-key-differences-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:700;list-style:none;display:flex}.gengage-chat-comparison-key-differences-summary::-webkit-details-marker{display:none}.gengage-chat-comparison-key-differences-summary-label{color:var(--text-primary)}.gengage-chat-comparison-key-differences-summary-meta{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-comparison-key-differences[open] .gengage-chat-comparison-key-differences-summary-meta{opacity:0}.gengage-chat-comparison-key-differences-content{color:var(--text-primary);padding:0 16px 16px;font-size:14px;line-height:1.7}.gengage-chat-comparison-key-differences-content ul,.gengage-chat-comparison-key-differences-content ol{margin:0;padding-left:20px}.gengage-chat-comparison-key-differences-content li+li{margin-top:8px}@media (width<=960px){.gengage-chat-comparison-recommended-body{grid-template-columns:1fr}.gengage-chat-comparison-recommended-title{font-size:20px}}.gengage-chat-pills{border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:8px 12px 6px;position:relative}.gengage-chat-pills-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-right:28px;display:flex;overflow-x:auto}.gengage-chat-pills-scroll::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-pills-scroll{flex-wrap:wrap;gap:6px}.gengage-chat-root--mobile .gengage-chat-pill{white-space:normal;max-width:100%}.gengage-chat-pill{border:1px solid var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.gengage-chat-pill:hover{background:color-mix(in srgb, var(--client-primary) 12%, white);border-color:color-mix(in srgb, var(--client-primary) 36%, white)}.gengage-chat-pill:active{transform:none}.gengage-chat-pill--rich{border-radius:18px;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:flex}.gengage-chat-pill-img{object-fit:cover;background:var(--surface-card);border-radius:12px;flex-shrink:0;width:32px;height:32px}.gengage-chat-pill-text{font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-pill-desc{display:none}.gengage-chat-pill--rich .gengage-chat-pill-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;font-weight:500;display:block;overflow:hidden}.gengage-chat-pills-arrow{border:1px solid var(--border-default);background:var(--surface-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-1);z-index:1;border-radius:12px;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.gengage-chat-pills-arrow:hover{background:var(--surface-card-soft);color:var(--client-primary)}@media (prefers-reduced-motion:reduce){.gengage-chat-uispec>*,.gengage-chat-action-btn,.gengage-chat-product-card,.gengage-chat-product-card-cta,.gengage-chat-send,.gengage-chat-launcher,.gengage-chat-pill,.gengage-chat-drawer,.gengage-chat-typing-dots span,.gengage-chat-thinking-step-marker--active,.gengage-chat-bubble,.gengage-chat-panel-skeleton-block,.gengage-chat-ai-toppick-card,.gengage-chat-mic-btn--active,.gengage-chat-ai-toppick-spinner:after,.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price,.gengage-chat-cart-toast,.gengage-chat-header-btn--cart-flash{transition:none!important;animation:none!important;transform:none!important}}.gengage-chat-bubble--user{position:relative}.gengage-chat-rollback-btn{border-radius:var(--radius-pill);background:var(--surface-card-muted);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;opacity:0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:50%;left:-28px;transform:translateY(-50%)}.gengage-chat-bubble--user:hover .gengage-chat-rollback-btn{opacity:1}.gengage-chat-rollback-btn:hover{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-bubble--hidden{display:none}.gengage-chat-ai-top-picks{flex-direction:column;gap:12px;padding:8px 0;scroll-margin-top:60px;display:flex}.gengage-chat-ai-top-picks-title{color:var(--text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:10px;min-width:0;display:flex}.gengage-chat-ai-top-picks-rest,.gengage-chat-ai-toppick-top-row{display:contents}.gengage-chat-ai-toppick-detail{width:100%;min-width:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks{gap:0;padding-top:4px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-title{flex-shrink:0;width:100%;margin:0 0 10px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,auto);align-items:stretch;gap:12px;margin:0;padding:12px 0;display:grid;overflow:visible}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex:initial;scroll-snap-align:none;width:100%;min-width:0;max-width:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child{grid-column:1/-1;grid-template-rows:auto auto;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:12px 18px;display:grid}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail){grid-template-rows:auto auto auto}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex-direction:column;align-items:stretch}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-media{aspect-ratio:4/3;grid-area:1/1/span 2;max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-media{grid-row:1/span 3}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-detail{grid-area:2/2;min-width:0;padding-top:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;flex-shrink:0;width:100%;height:100%;max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-img{max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-height:0;padding:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-body{grid-area:1/2;padding-top:6px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-cta{grid-row:3}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:calc(100% - 24px);color:var(--ds-button-secondary-fg);align-self:stretch;margin:14px 12px 12px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:auto;min-width:180px;color:var(--ds-button-secondary-fg);grid-area:2/2;place-self:end start;margin:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-secondary-bg-hover);filter:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.gengage-chat-ai-toppick-rating-icon{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-ai-toppick-rating-value{color:var(--text-primary)}.gengage-chat-ai-toppick-media .gengage-chat-ai-toppick-discount-badge{background:var(--client-primary);color:var(--client-on-primary);z-index:1;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:800;line-height:1.2;position:absolute;top:4px;left:4px;right:auto}.gengage-chat-ai-toppick-card--winner,.gengage-chat-ai-toppick-card--compact{box-sizing:border-box;border-radius:var(--radius-card);background:var(--surface-card);flex-direction:column;align-items:stretch;padding:12px;transition:box-shadow .2s,background .15s,transform .15s;display:flex;position:relative;overflow:visible}.gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-ai-toppick-card--winner:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default)}.gengage-chat-ai-toppick-card--compact:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-ai-toppick-badge{z-index:2;box-sizing:border-box;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;white-space:normal;border-radius:999px;max-width:calc(100% - 24px);padding:2px 10px;font-size:10px;font-weight:700;line-height:1.25;position:absolute;top:-10px;left:12px}.gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-badge{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:100%;margin-top:4px;margin-bottom:8px;display:flex;position:relative;overflow:hidden}.gengage-chat-ai-toppick-img{object-fit:contain;box-sizing:border-box;width:auto;max-width:100%;height:auto;max-height:100%;padding:4px}.gengage-chat-ai-toppick-body{flex-direction:column;flex:1;gap:0;min-width:0;padding:0;display:flex}.gengage-chat-ai-toppick-name{color:var(--text-primary);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:14px;font-weight:700;line-height:1.375;display:-webkit-box;overflow:hidden}.gengage-chat-ai-toppick-role{color:var(--client-primary);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.gengage-chat-ai-toppick-labels{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.gengage-chat-ai-toppick-label{border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}.gengage-chat-ai-toppick-label[data-sentiment=positive]{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=negative]{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=neutral]{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-reason{color:var(--text-secondary);margin:10px 0 0;font-size:13px;line-height:1.5}.gengage-chat-ai-toppick-review{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-primary);border-radius:14px;margin-top:10px;padding:10px 12px;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-snippet{color:var(--text-secondary);margin:8px 0 0;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-price{color:var(--text-primary);margin-top:4px;font-size:14px;font-weight:700}.gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-ai-toppick-original-price{color:var(--text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.gengage-chat-ai-toppick-price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px;display:flex}.gengage-chat-ai-toppick-price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-campaign-price-badge{box-sizing:border-box;border-radius:var(--radius-control,10px);background-image:linear-gradient(var(--gengage-campaign-price-badge-fill,#fff) 0 0), linear-gradient(135deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));background-origin:border-box;background-clip:padding-box,border-box;border:1px solid #0000;flex-direction:row;align-items:center;gap:10px;max-width:100%;padding:10px 12px;display:inline-flex}.gengage-chat-campaign-price-badge__logo{flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-campaign-price-badge__logo img{object-fit:contain;width:auto;max-width:72px;height:auto;max-height:32px;display:block}.gengage-chat-campaign-price-badge__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-campaign-price-badge__reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0;font-size:12px;font-weight:700;line-height:1.25}.gengage-chat-campaign-price-badge__sale{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:17px;font-weight:800;line-height:1.15}.gengage-chat-product-card-price-row .gengage-chat-campaign-price-badge__sale{font-size:16px}.gengage-chat-product-summary__price .gengage-chat-campaign-price-badge__sale{font-size:15px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge{border-radius:var(--radius-control,12px);padding:12px 14px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__reason{font-size:13px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__sale{font-size:22px}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge)){align-items:last baseline}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-ai-toppick-price-sep,.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-card-price-sep,.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-summary__price-sep,.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-details-price-sep){align-self:last baseline}.gengage-chat-ai-toppick-price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-ai-toppick-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.85em;margin:0 1px;display:inline-block}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-original-price{font-size:14px;font-weight:500;text-decoration:none}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:14px;font-weight:800}.gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control,12px);background:var(--ds-button-primary-bg);width:calc(100% - 24px);color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;box-sizing:border-box;opacity:0;pointer-events:none;flex-shrink:0;align-self:stretch;margin:14px 12px 12px;padding:8px 0;font-size:13px;font-weight:700;transition:opacity .18s,transform .18s,background .15s;display:block;transform:translateY(6px)}.gengage-chat-ai-toppick-card--winner:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--winner:focus-within .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:focus-within .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;transform:translateY(0)}.gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-ai-toppick-spinner{background:color-mix(in srgb, var(--surface-card) 78%, transparent);z-index:6;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gengage-chat-ai-toppick-spinner:after{content:"";border:3px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite gengage-spin}@keyframes gengage-spin{to{transform:rotate(360deg)}}.gengage-chat-root--mobile .gengage-chat-ai-top-picks{gap:8px;padding:4px 0}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-title{margin:0 0 2px;font-size:14px}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:8px;min-width:0;padding:6px 0 2px;display:flex;overflow:visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child{flex-direction:column;align-items:stretch;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child.gengage-chat-ai-toppick-card--winner{flex-direction:column}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;flex-flow:row;gap:8px;min-width:0;margin:0 -2px;padding:2px 2px 8px;display:flex;overflow:auto visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest::-webkit-scrollbar{width:0;height:0;display:none}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest .gengage-chat-ai-toppick-card--compact{scroll-snap-align:start;flex:0 0 min(82vw,272px);width:min(82vw,272px);min-width:0;max-width:272px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:6px 8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 28%, var(--border-default));margin-bottom:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default);box-shadow:none;flex-direction:column;align-items:stretch}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:10px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:10px;flex:0 0 clamp(96px,30vw,124px);width:clamp(96px,30vw,124px);height:clamp(96px,30vw,124px);max-height:none;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;height:100%;max-height:100%;padding:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body{flex:1;min-width:0;padding-top:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-detail{width:100%;margin-top:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-reason{color:var(--text-primary);margin:0;font-size:12px;line-height:1.45;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-review{color:var(--text-secondary);border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;margin-top:8px;padding:8px 10px;font-size:12px;font-style:italic;line-height:1.4;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:6px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:8px;flex:0 0 64px;width:64px;height:64px;max-height:64px;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;max-height:100%;padding:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-width:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-rating{display:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-detail{width:100%;margin-top:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;font-size:10px;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-role-line{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;font-size:9px;font-weight:600;line-height:1.15}.gengage-chat-root--mobile .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:3px;right:5px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:5px;right:6px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{letter-spacing:.04em;background:var(--client-primary);max-width:calc(100% - 18px);color:var(--client-on-primary);box-shadow:none;border:none;padding:2px 6px;font-size:8px;font-weight:700;line-height:1.15;top:-14px;left:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-name{margin-bottom:1px;font-size:12px;line-height:1.22}.gengage-chat-root--mobile .gengage-chat-ai-toppick-name{margin-bottom:2px;font-size:13px;line-height:1.28}.gengage-chat-root--mobile .gengage-chat-ai-toppick-rating{gap:3px;margin-top:2px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-price{margin-top:1px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-price{margin-top:2px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-original-price{font-size:11px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-labels,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{display:none!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;border:1px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 16px);color:var(--client-primary);box-shadow:none;filter:none;align-self:stretch;margin:8px 8px 6px;padding:6px 0;font-size:12px;font-weight:600;transform:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover{background:color-mix(in srgb, var(--client-primary) 10%, var(--surface-card));color:var(--client-primary);border-color:var(--client-primary);filter:none}.gengage-chat-root--mobile .gengage-chat-rollback-btn{left:-24px}.gengage-chat-grounding-review{align-items:center;gap:12px;padding:12px 16px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-grounding-review:hover{background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}.gengage-chat-grounding-review-icon{background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));width:32px;height:32px;color:var(--client-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gengage-chat-grounding-review-icon svg{width:18px;height:18px;display:block}.gengage-chat-grounding-review-body{flex:1;min-width:0}.gengage-chat-grounding-review-title{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grounding-review-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.gengage-chat-grounding-review-cta{color:var(--client-primary);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.gengage-chat-grounding-review-cta-icon{align-items:center;display:inline-flex}.gengage-chat-grounding-review-cta-icon svg{width:14px;height:14px;display:block}.gengage-chat-grouping-cards{flex-direction:column;gap:6px;display:flex}.gengage-chat-grouping-cards-scroll{flex-direction:column;gap:6px;min-width:0;display:flex}.gengage-chat-grouping-card{background:var(--surface-card-soft);border:1px solid var(--border-default);border-radius:var(--radius-control);align-items:center;gap:10px;padding:8px 12px;transition:background .15s,border-color .15s;display:flex}.gengage-chat-grouping-card:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-grouping-card-arrow{color:var(--client-primary);flex-shrink:0;font-size:14px;display:none}.gengage-chat-grouping-card-img{border-radius:calc(var(--radius-control) - 4px);object-fit:cover;flex-shrink:0;width:48px;min-width:48px;height:48px;min-height:48px}.gengage-chat-grouping-card-body{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-grouping-card-name{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:12px}.gengage-chat-grouping-card-labels{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-grouping-card-label{color:var(--text-secondary);background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-grouping-card-img{display:none}.gengage-chat-root--mobile .gengage-chat-grouping-card-arrow{display:inline}.gengage-chat-suggested-search-cards{flex-direction:column;gap:8px;display:flex}.gengage-chat-suggested-search-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1);align-items:center;gap:14px;padding:14px 16px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.gengage-chat-suggested-search-card:hover{background:var(--surface-card);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-chat-suggested-search-card-img{object-fit:contain;background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:14px;flex-shrink:0;width:64px;height:64px;padding:4px}.gengage-chat-suggested-search-card-body{flex:1;min-width:0}.gengage-chat-suggested-search-card-name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-details-gallery{position:relative}.gengage-chat-product-details-gallery .gengage-chat-product-details-img{touch-action:pan-y}.gengage-chat-product-gallery-nav{z-index:3;border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;background:color-mix(in srgb, var(--surface-card) 92%, transparent);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0;transition:background .15s,opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gengage-chat-product-gallery-nav:hover:not(:disabled){background:var(--surface-card);color:var(--client-primary)}.gengage-chat-product-gallery-nav:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-gallery-nav:disabled{opacity:.35;cursor:not-allowed}.gengage-chat-product-gallery-nav--prev{left:8px}.gengage-chat-product-gallery-nav--next{right:8px}.gengage-chat-product-gallery-thumbs{scrollbar-width:thin;justify-content:center;gap:8px;width:100%;padding:10px 0 4px;display:flex;overflow-x:auto}.gengage-chat-product-gallery-thumb{object-fit:cover;cursor:pointer;background:var(--surface-card);border:2px solid #0000;border-radius:8px;flex-shrink:0;width:56px;height:56px;transition:border-color .15s}.gengage-chat-product-gallery-thumb:hover{border-color:var(--border-strong)}.gengage-chat-product-gallery-thumb--active{border-color:var(--client-primary)}.gengage-chat-product-gallery-thumb-more{background:var(--surface-card-muted);width:56px;height:56px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.gengage-chat-product-variants-label{color:var(--text-muted);text-transform:none;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-product-variants-list{flex-wrap:wrap;gap:6px;display:flex}.gengage-chat-product-variant-btn{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:6px 12px;font-size:12px;transition:background .15s,border-color .15s}.gengage-chat-product-variant-btn:hover{background:var(--surface-card-muted);border-color:color-mix(in srgb, var(--client-primary) 20%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-details-panel{border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);gap:16px;padding:16px}.gengage-chat-product-details-media{border-color:var(--border-default);border-radius:var(--radius-card);background:var(--surface-card-soft);justify-content:center;min-height:320px}.gengage-chat-product-details-img{max-height:420px}.gengage-chat-product-details-content{gap:12px}.gengage-chat-product-details-brand{color:var(--client-primary);font-size:12px;font-weight:800;line-height:1.2}.gengage-chat-product-details-title{font-size:22px;line-height:1.2}.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));background:color-mix(in srgb, var(--warning) 10%, var(--surface-card));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));gap:6px;padding:6px 10px;font-family:inherit}button.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));cursor:pointer}.gengage-chat-product-details-rating--clickable:hover{border-color:color-mix(in srgb, var(--warning) 42%, var(--border-default));background:color-mix(in srgb, var(--warning) 14%, var(--surface-card))}.gengage-chat-product-details-rating .gengage-star-rating{line-height:1}.gengage-chat-product-details-rating-value{color:var(--text-primary)}.gengage-chat-product-details-price{flex-wrap:wrap;gap:10px}.gengage-chat-product-details-original-price{order:2}.gengage-chat-product-details-current-price{order:1;font-size:30px}.gengage-chat-product-details-discount-badge{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--error) 12%, white);min-height:24px;color:color-mix(in srgb, var(--error) 84%, var(--text-primary));order:3;align-items:center;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{order:0;font-size:30px}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{font-weight:500}.gengage-chat-product-details-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.gengage-chat-product-details-fact{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-card-soft);min-width:0;padding:8px 10px}.gengage-chat-product-details-fact dt,.gengage-chat-product-details-fact dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.gengage-chat-product-details-fact dt{color:var(--text-muted);font-size:11px;font-weight:700}.gengage-chat-product-details-fact dd{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:700}.gengage-chat-product-variants{margin-top:4px}.gengage-chat-product-variants-label{color:var(--text-primary);letter-spacing:normal;margin-bottom:8px;font-size:14px;font-weight:800}.gengage-chat-product-variants-list{gap:8px}.gengage-chat-product-variant-btn{border-radius:var(--radius-control);min-height:44px;color:var(--text-primary);gap:8px;padding:7px 10px;font-size:13px;font-weight:700}.gengage-chat-product-variant-btn--active{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--client-primary) 36%, transparent);color:var(--client-primary)}.gengage-chat-product-variant-btn--out{opacity:.48;cursor:not-allowed}.gengage-chat-product-variant-swatch{border:1px solid var(--border-default);background:var(--surface-card-muted);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface-card);border-radius:50%;flex:0 0 22px}.gengage-chat-product-variant-swatch--image{object-fit:cover;box-shadow:none}.gengage-chat-product-variant-label,.gengage-chat-product-variant-price{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gengage-chat-product-variant-price{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-product-details-actions{gap:10px;margin-top:6px}.gengage-chat-product-details-atc,.gengage-chat-product-details-cta{border-radius:var(--radius-control);min-height:44px}.gengage-chat-product-details-atc{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg)}.gengage-chat-product-details-atc:hover{background:var(--ds-button-primary-bg-hover);filter:none}.gengage-chat-product-details-cta.gds-btn-secondary{border-color:var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg)}.gengage-chat-product-details-cta.gds-btn-secondary:hover{background:var(--ds-button-secondary-bg-hover)}@media (width>=960px){.gengage-chat-product-details-panel{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;display:grid}.gengage-chat-product-details-media{position:sticky;top:0}.gengage-chat-product-detail-tabs{grid-column:1/-1}}.gengage-chat-root--mobile .gengage-chat-product-details-panel{box-shadow:none;gap:10px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:220px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price{font-size:24px}.gengage-chat-root--mobile .gengage-chat-product-details-facts{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-product-details-actions{grid-template-columns:1fr 1fr 44px;align-items:stretch;display:grid}.gengage-chat-root--mobile .gengage-chat-product-details-actions>.gengage-chat-product-details-share{width:44px;min-width:44px}.gengage-chat-root--mobile .gengage-chat-product-details-atc,.gengage-chat-root--mobile .gengage-chat-product-details-cta{width:100%;padding-inline:10px}.gengage-chat-product-grid-wrapper{flex-direction:column;gap:6px;display:flex}.gengage-chat-consulting-style-picker{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));background:linear-gradient(160deg, color-mix(in srgb, var(--surface-card) 80%, white), color-mix(in srgb, var(--surface-card-soft) 84%, white));border-radius:20px;padding:12px}.gengage-chat-consulting-style-picker-title{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:800}.gengage-chat-consulting-style-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-consulting-style-btn{border:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;gap:0;padding:6px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-consulting-style-btn:hover{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));transform:translateY(-1px)}.gengage-chat-consulting-style-btn--active{border-color:color-mix(in srgb, var(--client-primary) 40%, var(--border-default));box-shadow:0 0 0 2px color-mix(in srgb, var(--client-primary) 16%, transparent), var(--shadow-1)}.gengage-chat-consulting-style-media{border-radius:12px;position:relative;overflow:hidden}.gengage-chat-consulting-style-image{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;width:100%}.gengage-chat-consulting-style-caption{color:#fff;background:#0000008c;border-radius:12px;padding:8px 10px;font-size:15px;font-weight:800;line-height:1.2;position:absolute;bottom:10px;left:10px;right:10px}.gengage-chat-consulting-group{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:linear-gradient(180deg, var(--surface-card-soft), var(--surface-card));border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.gengage-chat-consulting-group-header{flex-direction:column;gap:4px;min-height:112px;display:flex}.gengage-chat-consulting-group-label{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.5em;margin:0;font-size:16px;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-reason{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-grid{grid-template-columns:repeat(var(--consulting-group-columns,4), minmax(210px, 1fr));justify-content:stretch;align-items:stretch;gap:14px;margin-bottom:2px;display:grid}.gengage-chat-consulting-group-grid .gengage-chat-product-card{height:100%}.gengage-chat-beauty-photo-step{padding:0 12px}.gengage-chat-beauty-photo-step-card{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card) 85%, white), var(--surface-card-soft));box-shadow:var(--shadow-1);border-radius:18px;gap:10px;padding:12px;display:flex}.gengage-chat-beauty-photo-step-icon{background:color-mix(in srgb, var(--client-primary) 16%, white);width:34px;height:34px;color:var(--client-primary);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:inline-flex}.gengage-chat-beauty-photo-step-content{flex:auto;min-width:0}.gengage-chat-beauty-photo-step-title{color:var(--text-primary);font-size:15px;font-weight:800}.gengage-chat-beauty-photo-step-desc{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.45}.gengage-chat-beauty-photo-step-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.gengage-chat-beauty-photo-step-upload{border-radius:999px;min-height:34px;padding-inline:14px;font-size:12px;font-weight:800}.gengage-chat-beauty-photo-step-skip{border-radius:999px;min-height:34px;padding-inline:12px;font-size:12px;font-weight:700}.gengage-chat-panel .gengage-chat-consulting-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gengage-chat-panel .gengage-chat-consulting-style-image{min-height:250px}.gengage-chat-panel .gengage-chat-consulting-style-caption{padding:10px 12px;font-size:16px}.gengage-chat-panel .gengage-chat-consulting-group{border-radius:18px;padding:14px}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card{min-width:0;margin-inline:auto}.gengage-chat-root--mobile .gengage-chat-consulting-style-grid{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-consulting-style-image{min-height:220px}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid{grid-template-columns:1fr}.gengage-chat-product-grid-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.gengage-chat-product-grid-head-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:18px;font-weight:700;line-height:1.2;overflow:hidden}.gengage-chat-product-grid-head-actions{flex-shrink:0;align-items:center;gap:6px;max-width:52%;display:flex}.gengage-chat-product-sort-toolbar{box-shadow:none;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:0;display:flex}.gengage-chat-product-sort-toolbar--inline{flex-wrap:nowrap;justify-content:flex-end}.gengage-chat-product-sort-dropdown{z-index:5;flex:0 auto;width:auto;min-width:0;max-width:200px;position:relative}.gengage-chat-product-sort-toolbar:not(.gengage-chat-product-sort-toolbar--inline) .gengage-chat-product-sort-dropdown{flex:auto;max-width:min(200px,100%)}.gengage-chat-product-sort-dropdown--open{z-index:25}.gengage-chat-product-sort-trigger{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:100%;min-height:32px;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.gengage-chat-product-sort-trigger:hover{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:var(--surface-card-soft)}.gengage-chat-product-sort-trigger:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger{border-color:color-mix(in srgb, var(--client-primary) 32%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-product-sort-trigger-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-product-sort-dropdown[data-sort-icon=related] .gengage-chat-product-sort-trigger-icon{color:var(--client-primary)}.gengage-chat-product-sort-trigger-icon svg{display:block}.gengage-chat-product-sort-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-product-sort-trigger-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s;display:flex}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger-chevron{transform:rotate(180deg)}.gengage-chat-product-sort-menu{width:max-content;min-width:100%;max-width:min(260px,100vw - 48px);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto}.gengage-chat-product-sort-option{border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background .12s;display:flex}.gengage-chat-product-sort-option:hover{background:var(--surface-card-muted)}.gengage-chat-product-sort-option--active{color:var(--client-primary);background:var(--client-primary-subtle);font-weight:600}.gengage-chat-product-sort-option-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-product-sort-option--active .gengage-chat-product-sort-option-icon,.gengage-chat-product-sort-option--active[data-sort-key=related] .gengage-chat-product-sort-option-icon{color:var(--client-primary)}.gengage-chat-product-sort-option-icon svg{display:block}.gengage-chat-product-sort-option-label{flex:auto;min-width:0}.gengage-chat-product-sort-option-check{width:22px;color:var(--client-primary);flex-shrink:0;justify-content:flex-end;display:flex}.gengage-chat-product-sort-option-check--hidden{visibility:hidden}.gengage-chat-product-sort-separator{background:var(--border-default);width:1px;margin:2px}.gengage-chat-comparison-toggle-btn{border:1px solid var(--border-default);border-radius:var(--radius-control,12px);background:var(--surface-card);min-height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gengage-chat-comparison-toggle-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-comparison-toggle-icon svg{display:block}.gengage-chat-comparison-toggle-btn:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, white);color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active{border-color:color-mix(in srgb, var(--client-primary) 26%, white);color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-comparison-toggle-btn--active .gengage-chat-comparison-toggle-icon{color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active:hover{background:var(--client-primary-hover);color:var(--client-on-primary);border-color:var(--client-primary-hover)}.gengage-chat-comparison-toggle-btn--active:hover .gengage-chat-comparison-toggle-icon{color:var(--client-on-primary)}.gengage-chat-comparison-select-wrapper{cursor:pointer;border-radius:var(--radius-control);transition:box-shadow .2s,transform .2s;position:relative}.gengage-chat-comparison-select-wrapper:hover{box-shadow:0 0 0 2px var(--client-focus-ring)}.gengage-chat-comparison-select-wrapper--selected,.gengage-chat-comparison-select-wrapper--selected:hover{box-shadow:none}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-select-wrapper{transition:none}}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card{pointer-events:none;transition:opacity .2s,transform .2s,filter .2s}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-img-actions,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-discount-badge,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-buy-footer,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-cta{opacity:0}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:.82}.gengage-chat-comparison-select-wrapper:hover>.gengage-chat-product-card,.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{opacity:1;transform:translateY(-1px)}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--client-primary) 26%, white), var(--shadow-1);filter:saturate(1.02);border-color:#0000;outline:none}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:1}.gengage-chat-comparison-card-hint{display:none}.gengage-chat-comparison-checkbox{z-index:4;cursor:pointer;pointer-events:auto;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 94%, white);min-height:40px;color:var(--text-primary);box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;bottom:16px;left:16px;right:16px}.gengage-chat-comparison-checkbox[data-selected=true]{background:color-mix(in srgb, var(--client-primary) 10%, white);border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));color:var(--client-primary)}.gengage-chat-comparison-checkbox-icon{background:var(--surface-card-soft);color:currentColor;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.gengage-chat-comparison-checkbox[data-selected=true] .gengage-chat-comparison-checkbox-icon{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-comparison-checkbox-dot{background:color-mix(in srgb, currentColor 75%, white);border-radius:999px;width:8px;height:8px}.gengage-chat-comparison-checkbox-label{font-size:12px;font-weight:700;line-height:1.2}.gengage-chat-comparison-toggle-btn--hidden{opacity:0;pointer-events:none}@keyframes gengage-comparison-fade-in{0%{opacity:0}to{opacity:1}}.gengage-chat-comparison-toggle-btn--reveal{animation:.5s forwards gengage-comparison-fade-in}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-toggle-btn--reveal{opacity:1;animation:none}}.gengage-chat-comparison-floating-btn{border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 92%, white);width:min(100%,520px);color:var(--text-primary);z-index:5;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin:16px auto 0;padding:12px 14px;display:flex;position:sticky;bottom:12px}.gengage-chat-comparison-dock-slot{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot:not(:empty){z-index:30;padding:0 10px max(6px, env(safe-area-inset-bottom,0px));box-sizing:border-box;pointer-events:none;max-width:100%;display:block;position:absolute;bottom:0;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot>*{pointer-events:auto}.gengage-chat-comparison-floating-summary{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.gengage-chat-comparison-floating-count{background:var(--client-primary-subtle);min-width:32px;height:32px;color:var(--client-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.gengage-chat-comparison-floating-copy{min-width:0}.gengage-chat-comparison-floating-title{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.gengage-chat-comparison-floating-warning{color:var(--error);margin-top:4px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-action{flex:none;min-width:132px}.gengage-chat-comparison-floating-close{border-radius:14px;flex:none;width:40px;height:40px;padding:0}.gengage-chat-comparison-floating-action--disabled{opacity:.6}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;margin:0;padding:10px;position:relative;bottom:auto}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-summary{align-items:center;gap:8px;min-height:26px;padding-right:34px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-count{flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-title{margin:0;font-size:13px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-warning{margin-top:2px;font-size:11px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-action{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:42px;padding:0 12px;font-size:13px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close{box-sizing:border-box;align-self:unset;z-index:10;touch-action:manipulation;border-radius:8px;flex:none;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;max-height:26px;padding:0;line-height:0;position:absolute;top:9px;right:9px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close svg{width:11px;height:11px;display:block}.gengage-chat-panel-topbar{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--surface-card);z-index:3;border-bottom:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.gengage-chat-panel-topbar-title-wrap{flex:1 1 0;align-items:center;min-width:0;display:flex}.gengage-chat-panel-topbar-back,.gengage-chat-panel-topbar-forward{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;transition:background .15s,border-color .15s,opacity .15s;display:flex}.gengage-chat-panel-topbar-back[hidden],.gengage-chat-panel-topbar-forward[hidden]{display:none}.gengage-chat-panel-topbar-back:hover:not(:disabled),.gengage-chat-panel-topbar-forward:hover:not(:disabled){background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-panel-topbar-back:disabled,.gengage-chat-panel-topbar-forward:disabled{opacity:.3;cursor:default}.gengage-chat-panel-topbar-title{width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.gengage-chat-panel-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.gengage-chat-panel-topbar-actions:empty{display:none}.gengage-chat-panel-topbar-toolbar-host{justify-content:flex-end;align-items:center;width:100%;display:flex}.gengage-chat-panel-topbar-toolbar-host .gengage-chat-product-sort-toolbar{flex-wrap:nowrap;justify-content:flex-end;gap:8px}.gengage-chat-panel-topbar-close{display:none}@keyframes gengage-typewriter-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-typewriter-block{animation:.15s both gengage-typewriter-fade-in;display:block}@media (prefers-reduced-motion:reduce){.gengage-chat-typewriter-block{animation:none}}.gengage-product-mention{color:var(--client-primary);cursor:pointer;border-bottom:1px dashed var(--client-primary);font-weight:500;text-decoration:none;transition:border-color .15s}.gengage-product-mention:hover{border-bottom-style:solid}@keyframes gengage-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.gengage-chat-panel-skeleton-block{animation:1.5s ease-in-out infinite gengage-skeleton-pulse}@media (prefers-reduced-motion:reduce){.gengage-chat-panel-skeleton-block{animation:none}}.gengage-chat-input-chips{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;padding:4px 12px 2px;display:flex;overflow-x:auto}.gengage-chat-input-chips::-webkit-scrollbar{display:none}.gengage-chat-input-chip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gengage-chat-input-chip:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-icon{flex-shrink:0;width:14px;height:14px}.gengage-chat-input-chip-icon,.gengage-chat-pill-icon{align-items:center;margin-right:4px;display:inline-flex}.gengage-chat-product-card-img-wrapper,.gengage-chat-product-details-img-wrap{position:relative;overflow:hidden}.gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--_gengage-discount-color);color:var(--text-inverse);z-index:1;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;position:absolute;top:8px;left:8px}.gengage-chat-product-card-stock{border-radius:var(--radius-pill);width:fit-content;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:600}.gengage-chat-product-card-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-card-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-find-similar-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:28px;height:28px;color:var(--text-primary);box-shadow:var(--shadow-1);cursor:pointer;z-index:2;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:500;transition:opacity .2s,box-shadow .15s;display:inline-flex;position:relative}.gengage-chat-find-similar-pill:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}@media (hover:hover) and (pointer:fine){.gengage-chat-find-similar-pill:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:opacity .14s;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.gengage-chat-find-similar-pill:hover:after,.gengage-chat-find-similar-pill:focus-visible:after{opacity:1}}.gengage-chat-find-similar-pill-icon{justify-content:center;align-items:center;display:flex}.gengage-chat-find-similar-pill-icon svg{display:block}.gengage-chat-find-similar-pill-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{transition:opacity .2s}@media (hover:hover) and (pointer:fine){.gengage-chat-product-card-img-wrapper:not(:hover) .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:not(:hover) .gengage-chat-product-card-img-actions{opacity:0;pointer-events:none}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:hover .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-shell) 88%, transparent);width:auto;height:auto;color:var(--text-inverse);box-shadow:none;opacity:0;pointer-events:none;padding:4px 10px;position:absolute;top:40px;right:8px}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-icon{display:none}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-text{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-find-similar-pill,.gengage-chat-ai-toppick-media:hover .gengage-chat-find-similar-pill,.gengage-chat-product-details-img-wrap:hover .gengage-chat-find-similar-pill{opacity:1;pointer-events:auto}.gengage-chat-favorite-btn{background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-control);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);box-shadow:var(--shadow-1);z-index:3;justify-content:center;align-items:center;padding:0;transition:color .2s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-favorite-btn:hover{box-shadow:var(--shadow-2);color:var(--error);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}.gengage-chat-favorite-btn--active{color:var(--error)}.gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gengage-chat-product-details-promo-badge{border-radius:var(--radius-pill);background:var(--gengage-chat-promo-bg,color-mix(in srgb, var(--success) 12%, white));color:var(--gengage-chat-promo-text,color-mix(in srgb, var(--success) 82%, var(--text-primary)));white-space:nowrap;box-sizing:border-box;min-height:20px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-block}.gengage-chat-thumbnails-column{pointer-events:none;display:none!important}.gengage-chat-thumbnail-btn{border:2px solid var(--border-default);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s;display:flex;overflow:hidden}.gengage-chat-thumbnail-btn:hover{border-color:var(--client-primary)}.gengage-chat-thumbnail-img{object-fit:cover;width:100%;height:100%}.gengage-chat-panel-float{box-sizing:border-box;pointer-events:none;z-index:10;flex-shrink:0;align-self:stretch;width:100%;height:0;margin-top:auto;position:sticky;bottom:0;overflow:visible}.gengage-chat-choice-prompter{pointer-events:none;background:var(--surface-card);border:1px solid var(--border-default);width:auto;max-width:none;box-shadow:var(--shadow-2);z-index:5;opacity:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-left:0;margin-right:0;padding:12px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:12px;left:16px;right:16px;transform:translateY(12px)}.gengage-chat-panel--scrolled .gengage-chat-choice-prompter{pointer-events:auto;opacity:1;transform:translateY(0)}.gengage-chat-choice-prompter-heading{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:700}.gengage-chat-choice-prompter-suggestion{color:var(--text-secondary);margin-bottom:0;font-size:12px;line-height:1.35}.gengage-chat-choice-prompter-copy{min-width:0}.gengage-chat-choice-prompter-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control);background:var(--ds-button-primary-bg);width:auto;min-width:180px;min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.gengage-chat-choice-prompter-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-choice-prompter-dismiss{border:1px solid var(--border-default);background:var(--surface-card-soft);min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.gengage-chat-choice-prompter-dismiss:hover{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white);background:var(--client-primary-subtle)}@media (prefers-reduced-motion:reduce){.gengage-chat-choice-prompter{animation:none}}.gengage-chat-pros-cons{background:var(--surface-card-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-control);margin:8px 0;padding:12px 14px}.gengage-chat-pros-cons-heading{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.gengage-chat-pros-cons-list{margin:0 0 8px;padding:0;list-style:none}.gengage-chat-pros-cons-list:last-child{margin-bottom:0}.gengage-chat-pros-cons-item{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;line-height:1.5;display:flex}.gengage-chat-pros-cons-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:flex}.gengage-chat-pros-cons-icon--pro{color:var(--success);background:color-mix(in srgb, var(--success) 15%, white)}.gengage-chat-pros-cons-icon--con{color:var(--error);background:color-mix(in srgb, var(--error) 12%, white)}.gengage-chat-categories{flex-direction:column;gap:8px;display:flex}.gengage-chat-categories-tabs{-webkit-overflow-scrolling:touch;gap:4px;padding:4px 0;display:flex;overflow-x:auto}.gengage-chat-categories-tab{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.gengage-chat-categories-tab:hover{background:var(--surface-card-soft);border-color:var(--border-strong)}.gengage-chat-categories-tab--active{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default))}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gengage-chat-categories-filter-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-categories-filter-tag{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.gengage-chat-categories-filter-tag:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-grid-view-more{border:1px solid var(--ds-button-secondary-border);border-radius:var(--radius-control);background:var(--ds-button-secondary-bg);width:100%;color:var(--ds-button-secondary-fg);cursor:pointer;text-align:center;grid-column:1/-1;margin-top:8px;padding:10px;font-size:14px;font-weight:500;transition:background .15s;display:block}.gengage-chat-product-grid-view-more:hover{background:var(--ds-button-secondary-bg-hover)}.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0;display:grid;overflow-x:visible}.gengage-chat-product-grid--mobile .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-comparison--mobile{position:relative;overflow-x:clip}.gengage-chat-comparison--mobile .gengage-chat-comparison-table-wrapper{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.gengage-chat-comparison--mobile .gengage-chat-comparison-table{table-layout:fixed;min-width:480px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table th:first-child,.gengage-chat-comparison--mobile .gengage-chat-comparison-table .gengage-chat-comparison-label{background:var(--surface-card);z-index:1;box-shadow:2px 0 4px color-mix(in srgb, var(--surface-shell) 8%, transparent);position:sticky;left:0}.gengage-chat-comparison--mobile .gengage-chat-comparison-table thead th:first-child{box-sizing:border-box;width:22ch;min-width:0;max-width:22ch;padding:8px 6px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table td.gengage-chat-comparison-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;width:22ch;min-width:0;max-width:22ch;overflow:hidden}.gengage-chat-product-details-similars-heading{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-product-details-similars{margin-top:8px}.gengage-chat-handoff-notice{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border-default));border-radius:var(--radius-control);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:16px;display:flex}.gengage-chat-handoff-notice-icon{font-size:24px}.gengage-chat-handoff-notice-heading{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin:0;font-size:14px;font-weight:600}.gengage-chat-handoff-notice-summary{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));margin:0;font-size:13px;line-height:1.5}.gengage-chat-product-details-share{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background-color .12s;display:inline-flex;position:relative}.gengage-chat-product-details-share:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--client-primary-subtle)}.gengage-chat-product-details-share:before{content:attr(aria-label);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;pointer-events:none;opacity:0;z-index:2;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gengage-chat-product-details-share:hover:before{opacity:1}.gengage-chat-product-details-share--copied:after{content:"✓";background:var(--_gengage-success-color);color:var(--client-on-primary);border-radius:var(--radius-control);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.gengage-chat-product-details-share svg{width:20px;height:20px}.gengage-chat-review-link,.gengage-chat-grounding-link{color:var(--client-primary);text-decoration:underline}@media (width<=768px){.gengage-chat-product-details-promo-badge{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.gengage-chat-launcher:focus-visible,.gengage-chat-close:focus-visible,.gengage-chat-header-btn:focus-visible,.gengage-chat-header-powered:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-pill:focus-visible,.gengage-chat-input-chip:focus-visible,.gengage-chat-pills-arrow:focus-visible,.gengage-chat-error-retry:focus-visible,.gengage-chat-product-card-cta:focus-visible,.gengage-chat-product-details-cta:focus-visible,.gengage-chat-product-details-atc:focus-visible,.gengage-chat-product-detail-tab:focus-visible,.gengage-chat-panel-divider-toggle:focus-visible,.gengage-chat-panel-topbar-back:focus-visible,.gengage-chat-panel-topbar-forward:focus-visible,.gengage-chat-rollback-btn:focus-visible,.gengage-chat-ai-toppick-cta:focus-visible,.gengage-chat-comparison-toggle-btn:focus-visible,.gengage-chat-comparison-floating-btn:focus-visible,.gengage-chat-comparison-checkbox:focus-visible,.gengage-chat-product-sort-trigger:focus-visible,.gengage-chat-product-sort-option:focus-visible,.gengage-chat-product-variant-btn:focus-visible,.gengage-chat-product-gallery-thumb:focus-visible,.gengage-chat-thumbnail-btn:focus-visible,.gengage-chat-find-similar-pill:focus-visible,.gengage-chat-favorite-btn:focus-visible,.gengage-chat-attach-btn:focus-visible,.gengage-chat-attach-menu-item:focus-visible,.gengage-chat-mic-btn:focus-visible,.gengage-chat-attachment-remove:focus-visible,.gengage-chat-kvkk-dismiss:focus-visible,.gengage-chat-choice-prompter-cta:focus-visible,.gengage-chat-choice-prompter-dismiss:focus-visible,.gengage-chat-categories-tab:focus-visible,.gengage-chat-categories-filter-tag:focus-visible,.gengage-chat-product-grid-view-more:focus-visible,.gengage-chat-product-details-share:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-root--mobile .gengage-chat-choice-prompter{grid-template-columns:1fr;width:auto;max-width:none;max-height:40vh;bottom:12px;left:12px;right:12px;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta{width:100%}.gengage-chat-root--mobile .gengage-chat-product-sort-trigger,.gengage-chat-root--mobile .gengage-chat-product-sort-option,.gengage-chat-root--mobile .gengage-chat-comparison-toggle-btn{min-height:40px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-label,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-chevron,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-label{display:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-dropdown{flex:none;width:auto;max-width:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger{justify-content:center;gap:0;width:auto;min-width:44px;padding:0 10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-btn{justify-content:center;gap:0;width:44px;min-width:44px;padding:0}.gengage-chat-root--mobile .gengage-chat-input-chip{min-height:40px;padding:8px 12px}.gengage-chat-root--mobile .gengage-chat-choice-prompter-dismiss{width:32px;height:32px}.gengage-chat-root--mobile .gengage-chat-panel-divider-toggle{min-height:44px}.gengage-chat-root--mobile .gengage-chat-product-card-cta,.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta,.gengage-chat-root--mobile .gengage-chat-product-grid-view-more{justify-content:center;align-items:center;min-height:44px;display:flex}.gengage-chat-root--mobile .gengage-chat-panel-topbar-back,.gengage-chat-root--mobile .gengage-chat-panel-topbar-forward,.gengage-chat-root--mobile .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel-topbar-close{display:none}.gengage-skeleton{gap:12px;padding:12px;display:flex}.gengage-skeleton--message{flex-direction:column;gap:8px;padding:16px}.gengage-skeleton-card{flex-direction:column;flex:1;gap:8px;display:flex}.gengage-skeleton-img{border-radius:var(--radius-control);height:120px}.gengage-skeleton-text{border-radius:4px;height:14px}.gengage-skeleton-price{border-radius:4px;width:60%;height:14px}.gengage-skeleton-line{border-radius:4px;height:12px}@media (prefers-reduced-motion:no-preference){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:linear-gradient(90deg, var(--ds-neutral-100) 25%, var(--ds-neutral-200) 50%, var(--ds-neutral-100) 75%);background-size:200% 100%;animation:1.5s infinite gengage-shimmer}@keyframes gengage-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}}@media (prefers-reduced-motion:reduce){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:var(--ds-neutral-100)}}.gengage-chat-panel--has-scroll:after{content:"";background:linear-gradient(transparent, var(--surface-card-soft));pointer-events:none;height:40px;display:block;position:sticky;bottom:0}@media (prefers-reduced-motion:no-preference){.gengage-chat-panel--transitioning{opacity:0;transition:opacity .15s}}.gengage-chat-cart-toast{background:var(--success);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-3);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:72px;left:50%;transform:translate(-50%)translateY(8px)}.gengage-chat-cart-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@keyframes gengage-cart-flash{0%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}to{transform:scale(1)}}.gengage-chat-header-btn--cart-flash{animation:.5s gengage-cart-flash}',Ti=g.object({role:g._enum(["user","assistant"]),content:g.string(),timestamp:g.number().optional()}),Ii=g.object({sku:g.string(),name:g.string(),imageUrl:g.string().url().optional(),price:g.string().optional(),originalPrice:g.string().optional(),url:g.string().url(),ctaLabel:g.string().optional()}),Ni=g.object({buttons:g.array(g.object({label:g.string(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}))}),Mi=g.object({}),Bi=g.object({label:g.string().optional()}),gt=g.object({sku:g.string(),name:g.string(),price:g.string(),imageUrl:g.string().optional(),rating:g.number().optional(),reviewCount:g.number().optional()}),zi=g.object({recommended:gt,products:g.array(gt),attributes:g.array(g.object({label:g.string(),values:g.array(g.string())})),highlights:g.array(g.string()),specialCases:g.array(g.string()).optional(),recommendedText:g.string().optional(),winnerHits:g.record(g.string(),g.object({positive:g.array(g.string()).optional(),negative:g.array(g.string()).optional()})).optional(),productActions:g.record(g.string(),g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})).optional()}),Hi=g.object({label:g.string(),sentiment:g._enum(["positive","negative","neutral"]).optional()}),Ri=g.object({product:g.record(g.string(),g.unknown()),role:g.string().optional(),reason:g.string().optional(),labels:g.array(Hi).optional(),expertQualityScore:g.number().optional(),reviewHighlight:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()}).optional()}),Di=g.object({suggestions:g.array(Ri)}),Fi=g.object({title:g.string().optional(),text:g.string().optional(),reviewCount:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}),Ui=g.object({entries:g.array(g.object({name:g.string(),image:g.string().optional(),description:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}))}),ji=g.object({entries:g.array(g.object({shortName:g.string(),detailedMessage:g.string().optional(),whyDifferent:g.string().optional(),image:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}))}),Bt=g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()}),we=g.object({name:g.string().optional(),value:g.string().optional(),option_value:g.string().optional(),attribute_value:g.string().optional(),type:g.string().optional(),attribute:g.string().optional(),option_name:g.string().optional(),attribute_name:g.string().optional(),variant_name:g.string().optional(),sku:g.string().optional(),price:g.union([g.number(),g.string()]).optional(),price_discounted:g.union([g.number(),g.string()]).optional(),image:g.string().optional(),imageUrl:g.string().optional(),image_url:g.string().optional(),color:g.string().optional(),colour:g.string().optional(),color_hex:g.string().optional(),hex:g.string().optional(),swatch:g.string().optional(),swatchColor:g.string().optional(),in_stock:g.boolean().optional(),inStock:g.boolean().optional()}),Oi=g.object({product:g.object({sku:g.string().optional(),name:g.string().optional(),images:g.array(g.string()).optional(),imageUrl:g.string().optional(),rating:g.number().optional(),reviewCount:g.number().optional(),price:g.string().optional(),originalPrice:g.string().optional(),discountReason:g.string().optional(),discount_reason:g.string().optional(),campaignReason:g.string().optional(),campaign_reason:g.string().optional(),originalPriceStyle:g._enum(["strikethrough","inline"]).optional(),price_original_style:g._enum(["strikethrough","inline"]).optional(),price_discount_rate:g.number().optional(),price_async:g.boolean().optional(),inStock:g.boolean().optional(),promotions:g.array(g.string()).optional(),variants:g.array(we).optional(),variantOptions:g.array(we).optional(),variant_options:g.array(we).optional(),productVariants:g.array(we).optional(),product_variants:g.array(we).optional(),url:g.string().optional(),cartCode:g.string().optional(),description:g.string().optional(),description_html:g.string().optional(),descriptionHtml:g.string().optional(),facet_hits:g.record(g.string(),g.unknown()).optional(),facetHits:g.record(g.string(),g.unknown()).optional(),features:g.array(g.object({name:g.string().optional(),key:g.string().optional(),label:g.string().optional(),value:g.union([g.string(),g.number(),g.boolean()]).optional()})).optional(),specifications:g.union([g.record(g.string(),g.string()),g.array(g.object({key:g.string(),value:g.string()}))]).optional()}).optional(),action:Bt.optional()}),qi=g.object({endOfList:g.boolean().optional()}),Vi=g.object({review_class:g.string().optional(),review_text:g.string().optional(),review_rating:g.union([g.string(),g.number()]).optional(),review_tag:g.string().optional()}),$i=g.object({reviews:g.array(Vi).optional()}),Gi=g.object({productName:g.string().optional(),pros:g.array(g.string()).optional(),cons:g.array(g.string()).optional()}),Wi=g.object({groups:g.array(g.object({groupName:g.string(),products:g.array(g.record(g.string(),g.unknown())).optional()})).optional(),filterTags:g.array(g.object({title:g.string(),action:Bt.optional()})).optional()}),Yi=g.object({summary:g.string().optional(),products_discussed:g.array(g.string()).optional(),user_sentiment:g.string().optional()}),Ki=g.object({summary:g.string(),clues:g.array(g.string()),next_question:g.string().optional(),style_images:g.array(g.string()).optional()}),Zi=g.object({processing:g.boolean().optional(),title:g.string().optional(),description:g.string().optional(),upload_label:g.string().optional(),skip_label:g.string().optional()}),Xi={components:{MessageBubble:{schema:Ti,description:"A single chat message bubble for user or assistant turns."},ProductCard:{schema:Ii,description:"A product card rendered inline in the chat stream."},ActionButtons:{schema:Ni,description:"A horizontal row of quick-reply action buttons."},TypingIndicator:{schema:Mi,description:"An animated indicator shown while the assistant is typing."},Divider:{schema:Bi,description:"A horizontal rule with an optional label."},ComparisonTable:{schema:zi,description:"A product comparison table with recommended pick, attribute rows, and highlights."},AITopPicks:{schema:Di,description:"Rich AI-curated product suggestion cards with roles, sentiment labels, scores, and review quotes."},GroundingReviewCard:{schema:Fi,description:"A card showing review grounding data with review count and CTA."},AIGroupingCards:{schema:Ui,description:"Category grouping cards with images and labels for product discovery."},AISuggestedSearchCards:{schema:ji,description:"Suggested search cards with images, descriptions, and differentiation."},ProductDetailsPanel:{schema:Oi,description:"Full product detail view with images, specs, variants, and purchase actions."},ProductGrid:{schema:qi,description:'A scrollable grid of ProductCard children with optional "more" pagination.'},ReviewHighlights:{schema:$i,description:"A list of highlighted customer reviews with sentiment and ratings."},ProsAndCons:{schema:Gi,description:"A pros and cons list for a product."},CategoriesContainer:{schema:Wi,description:"Tabbed product groups with optional filter tag buttons."},HandoffNotice:{schema:Yi,description:"A notice shown when the conversation is escalated to a human agent."},PhotoAnalysisCard:{schema:Ki,description:"Structured photo analysis card with summary, clues, and follow-up question."},BeautyPhotoStep:{schema:Zi,description:"Transient selfie upload prompt for beauty consulting init flow."}}};function dt(t){return t.length>120?!1:/^[a-zA-Z0-9#(),.\s%/\-]+$/.test(t)}function De(t){return typeof t=="object"&&t!==null&&typeof t.type=="string"}var zt=class be extends S.BaseWidget{constructor(...e){super(...e),this._shadow=null,this._rootEl=null,this._backdropEl=null,this._launcher=null,this._drawer=null,this._bridge=null,this._drawerVisible=!1,this._pillLauncherApply=null,this._hostScrollLockActive=!1,this._preventHostDocumentTouchMove=a=>{this._hostScrollLockActive&&(this._hostScrollEventShouldReachChatScroller(a)||a.preventDefault())},this._preventHostDocumentWheel=a=>{this._hostScrollLockActive&&(this._hostScrollEventShouldReachChatScroller(a)||a.preventDefault())},this._messages=[],this._currentMessageId=0,this._abortControllers=new Set,this._currentThreadId=null,this._lastThreadId=null,this._chatCreatedAt="",this._lastBackendContext=null,this._productSort={type:"related"},this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._comparisonRefreshRafId=null,this._viewedProductSkus=new Set,this._thumbnailEntries=[],this._choicePrompterEl=null,this._openState="full",this._mobileBreakpoint=768,this._isMobileViewport=!1,this._pdpLaunched=!1,this._entryContextPrimed=!1,this._pdpPrimingInFlight=!1,this._queuedUserMessages=[],this._productContextUnavailableSku=null,this._i18n=qe,this._extendedModeManager=null,this._activeTypewriter=null,this._activeTtsHandle=null,this._activeRequestThreadId=null,this._skuToProductItem={},this._conversationMode=null,this._initComplete=!1,this._pendingActions=[],this._bridgeContext=null,this._cartQuantity=null,this._threadsWithFirstBot=new Set,this._panel=null,this._localPanelHistory=[],this._currentPanelSource=null,this._session=null,this._presentation=new It,this._eventCallbacks=new Map,this._lastSentAction=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._modeController=new _a}static{this._MAX_COMPARISON_SELECTION=5}static{this._MAX_PANEL_HISTORY=10}get _assistantMode(){return this._modeController.mode}set _assistantMode(e){this._modeController.mode=e}get _uiHints(){return this._modeController.uiHints}set _uiHints(e){this._modeController.uiHints=e}async onInit(e){if(this._i18n=this._resolveI18n(e),this._chatCreatedAt=new Date().toISOString(),e.pillLauncher){const m=Nt(e.pillLauncher);e.launcherImageUrl=m.launcherImageUrl,e.headerAvatarUrl===void 0&&(e.headerAvatarUrl=e.pillLauncher.avatarUrl),this._pillLauncherApply=()=>m.apply(this._shadow??void 0)}this._shadow=this.root.attachShadow({mode:"open"});const a=document.createElement("style");a.textContent=Li,this._shadow.appendChild(a);const n=this.root,i=(m,v)=>{v&&dt(v)&&n.style.setProperty(m,v)};if(i("--gengage-chat-header-bg",e.headerBg),i("--gengage-chat-header-foreground",e.headerForeground),e.theme)for(const[m,v]of Object.entries(e.theme))m.startsWith("--")&&typeof v=="string"&&i(m,v);this._applyDiscountedPriceColorVar(e.productPriceUi?.discountedPriceColor);const r=document.createElement("div");r.className="gengage-chat-root",this._rootEl=r,this._shadow.appendChild(r);const o=e.variant??"floating";if(o==="inline"&&r.classList.add("gengage-chat--inline"),o!=="inline"){const m=document.createElement("div");m.className="gengage-chat-backdrop",m.setAttribute("aria-hidden","true"),m.setAttribute("role","button"),m.setAttribute("tabindex","-1"),m.setAttribute("aria-label",this._i18n.closeAriaLabel),m.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),this.close()}),this._backdropEl=m,r.prepend(m)}if(o==="floating"){const m={onClick:()=>this.open(),ariaLabel:this._i18n.openButton};e.launcherImageUrl!==void 0?m.imageUrl=e.launcherImageUrl:e.launcherSvg!==void 0&&(m.svgMarkup=e.launcherSvg),e.hideMobileLauncher!==void 0&&(m.hideMobile=e.hideMobileLauncher),e.mobileBreakpoint!==void 0&&(m.mobileBreakpoint=e.mobileBreakpoint),e.launcherTooltip!==void 0&&(m.tooltip=e.launcherTooltip),this._launcher=La(m),r.appendChild(this._launcher.container)}o==="overlay"&&r.classList.add("gengage-chat--overlay");const c=document.createElement("div");r.appendChild(c),this._drawer=new fa(c,{i18n:this._i18n,onSend:(m,v)=>this._sendMessage(m,v),onClose:()=>this.close(),onAttachment:m=>this._handleAttachment(m),onPanelToggle:()=>{this._drawer?.persistPanelState(e.accountId)},onHostShellSync:()=>{this._applyOpenStateClasses()},onRollback:m=>this._handleRollback(m),onPanelBack:()=>this._navigatePanelBack(),onPanelForward:()=>this._panel?.navigateForward(),onPanelClose:()=>{if(this._isMobileViewport){this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[];return}this._localPanelHistory=[],this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._currentPanelSource=null},headerTitle:e.headerTitle,headerAvatarUrl:e.headerAvatarUrl,launcherImageUrl:e.launcherImageUrl,headerBadge:e.headerBadge,headerCartUrl:e.headerCartUrl,showHeaderFavorites:typeof e.onFavoritesClick=="function"||e.headerFavoritesToggle===!0,onCartClick:()=>{e.headerCartUrl?this._saveSessionAndOpenURL(e.headerCartUrl):e.onCartClick?.()},onFavoritesClick:()=>{if(S.trackLikeList(),typeof e.onFavoritesClick=="function"){e.onFavoritesClick();return}this._openFavoritesPanel()},getMobileState:()=>this._openState??"full",getMobileViewport:()=>this._isMobileViewport,onMobileSnap:m=>{m==="close"?this.close():(this._openState=m,this._applyOpenStateClasses())},onThumbnailClick:m=>this._rollbackToThread(m),onLinkClick:m=>{this._saveSessionAndOpenURL(m)},voiceEnabled:e.voiceEnabled,voiceLang:e.locale?`${e.locale.split("-")[0]??"tr"}-${(e.locale.split("-")[1]??e.locale.split("-")[0]??"TR").toUpperCase()}`:void 0,presentation:{onPinnedToBottomChange:m=>{this._presentation.pinnedToBottom=m},onUserInteractingChange:m=>{this._presentation.userInteracting=m},onFormerMessagesHint:()=>{this._presentation.focusedThreadId&&this._hasMultipleThreadIds()&&this._drawer?.setFormerMessagesButtonVisible(!0)},shouldBlockSoftAutoScroll:()=>this._presentation.shouldBlockStreamAutoScroll(),onReleasePresentationFocus:()=>this._releasePresentationFocus()}}),this._applyUiHints(),this._extendedModeManager=new ui({onChange:m=>this._panel?.notifyExtension(m),productDetailsInPanel:(e.isDemoWebsite??!1)&&(e.productDetailsExtended??!1)}),this._panel=new mi({drawer:()=>this._drawer,shadow:()=>this._shadow,currentThreadId:()=>this._currentThreadId,bridge:()=>this._bridge,extendedModeManager:()=>this._extendedModeManager,i18n:()=>this._i18n,rollbackToThread:m=>this._rollbackToThread(m)}),o!=="inline"&&this._drawer.getElement().classList.add("gengage-chat-drawer--hidden");const d=this._drawer.restorePanelState(e.accountId),l=e.panelMode??"auto";l==="collapsed"?this._drawer.setPanelCollapsed(!0):l==="expanded"&&this._drawer.setForceExpanded();const p=sessionStorage.getItem("gengage_restore_session_id"),s=sessionStorage.getItem("gengage_restore_sku"),u=!!(p&&s);u&&(sessionStorage.removeItem("gengage_restore_session_id"),sessionStorage.removeItem("gengage_restore_sku"));try{const m=new pi;await m.open(),this._session=new ct(m),await this._restoreFromIndexedDB(u)}catch{this._session=new ct(null)}this._registerPublicAPI(),e.mobileInitialState!==void 0&&(this._openState=e.mobileInitialState),this._mobileBreakpoint=e.mobileBreakpoint??768,this._syncViewportState();const h=()=>this._syncViewportState();if(window.addEventListener("resize",h,{passive:!0}),this.addCleanup(()=>window.removeEventListener("resize",h)),window.visualViewport){const m=()=>{if(!this._drawerVisible||!this._isMobileViewport)return;const v=this._drawer?.getElement();if(!v)return;const y=window.innerHeight-(window.visualViewport?.height??window.innerHeight);v.style.setProperty("--gengage-keyboard-offset",`${Math.max(0,y)}px`)};window.visualViewport.addEventListener("resize",m),this.addCleanup(()=>window.visualViewport?.removeEventListener("resize",m))}o==="inline"&&(this._drawerVisible=!0,this.isVisible=!0,this._applyOpenStateClasses(),this._presentation.setShown(!0),setTimeout(()=>this._maybeAutoAnchorUnreadAssistant(),60));const w={namespace:"chat",onMessage:m=>this._handleBridgeMessage(m)};e.allowedOrigins!==void 0&&(w.allowedOrigins=e.allowedOrigins),this._bridge=new Rt(w),this._lastSku=this.config.pageContext?.sku,this._initComplete=!0;for(const m of this._pendingActions)this._sendAction(m.action,m.options);this._pendingActions=[],this._pillLauncherApply&&o==="floating"&&(await this._pillLauncherApply(),this._pillLauncherApply=null),S.dispatch("gengage:chat:ready",{}),S.trackInit("chat"),e.onReady?.()}onUpdate(e){e.sku!==void 0&&e.sku!==this._lastSku&&(this._lastSku=e.sku,this._resetForNewPage())}onShow(){this._showDrawer(),this.emit("open"),S.dispatch("gengage:chat:open",{state:this._openState}),S.trackShow("chat"),this.config.onOpen?.(),this._showWelcomeIfNeeded(),this._maybePrimeEntryContextOpening(),!this._pdpLaunched&&this.config.pageContext?.sku&&(this._pdpLaunched=!0,this._pdpPrimingInFlight=!0,this._sendAction({title:"",type:"launchSingleProduct",payload:{sku:this.config.pageContext.sku,...this._resolveContextualOpeningMessage("product")?{opening_message:this._resolveContextualOpeningMessage("product")}:{},...this._resolveContextualOpeningGuidance("product")?{opening_guidance:this._resolveContextualOpeningGuidance("product")}:{}}},{silent:!0,isPdpPrime:!0,preservePills:!0}))}onHide(){(this.config.variant??"floating")==="floating"&&(this.root.style.display=""),this._hideDrawer(),this.emit("close"),S.dispatch("gengage:chat:close",{}),this.config.onClose?.()}onDestroy(){this._releaseHostDocumentScrollLock(),this._abortAllActiveRequests(),this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._comparisonRefreshRafId!==null&&(cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=null),this._drawer?.destroy(),ht(),this._drawer=null,this._bridge?.destroy(),this._bridge=null,this._extendedModeManager=null,this._panel?.destroy(),this._panel=null,this._session?.close(),this._session=null,this._localPanelHistory=[],this._currentPanelSource=null,window.gengage&&delete window.gengage.chat,this._shadow&&(this._shadow.innerHTML="",this._shadow=null),this._rootEl=null}open(e){e?.state!==void 0&&(this._openState=e.state,this._drawerVisible&&this._applyOpenStateClasses()),this.show(),e?.initialMessage!==void 0&&this._sendMessage(e.initialMessage)}openWithAction(e,a){a?.sku!==void 0&&this.update({sku:a.sku}),this._pdpLaunched=!0,a?.state!==void 0?this._openState=a.state:this._isMobileViewport&&(this._openState="half"),this.show(),this._drawerVisible&&this._applyOpenStateClasses(),this._sendAction(e)}sendMessage(e){this._sendMessage(e)}sendAction(e,a){this._sendAction(e,a)}close(){this.hide()}saveSession(e,a){sessionStorage.setItem("gengage_restore_session_id",e),sessionStorage.setItem("gengage_restore_sku",a)}get isOpen(){return this._drawerVisible}addCallback(e,a){let n=this._eventCallbacks.get(e);return n||(n=new Set,this._eventCallbacks.set(e,n)),n.add(a),()=>{n.delete(a),n.size===0&&this._eventCallbacks.delete(e)}}_applyDiscountedPriceColorVar(e){const a=this.root;e==="client"?a.style.setProperty("--gengage-discounted-price-color","var(--client-primary)"):a.style.removeProperty("--gengage-discounted-price-color")}_abortAllActiveRequests(){for(const e of this._abortControllers)e.abort();this._abortControllers.clear()}_pruneEmptyStreamingAssistantPlaceholders(){const e=[];let a=!1;for(const n of this._messages){if(n.role==="assistant"&&(n.status==="streaming"||n.status==="done")&&(n.content==null||n.content.length===0)){if(n.threadId){this._threadsWithFirstBot.delete(n.threadId),this._presentation.finalizeAssistantGroup(n.threadId),this._shadow?.querySelectorAll(`[data-thread-id="${CSS.escape(n.threadId)}"]:not([data-message-id])`).forEach(r=>r.remove()),this._panel&&(this._panel.threads=this._panel.threads.filter(r=>r!==n.threadId));const i=this._thumbnailEntries.length;this._thumbnailEntries=this._thumbnailEntries.filter(r=>r.threadId!==n.threadId),this._thumbnailEntries.length!==i&&(a=!0)}this._drawer?.removeMessageBubble(n.id),this._panel?.snapshots.delete(n.id),this._panel?.snapshotTypes.delete(n.id);continue}e.push(n)}this._messages.length=0,this._messages.push(...e),a&&this._drawer?.setThumbnails(this._thumbnailEntries)}_resetForNewPage(){this._activeRequestThreadId=null,this._abortAllActiveRequests(),this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._messages.length=0,this._drawer?.clearMessages(),this._drawer?.clearPanel(),this._currentPanelSource=null,this._panel.snapshots.clear(),this._panel.threads=[],this._thumbnailEntries=[],this._drawer?.setThumbnails([]),this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._viewedProductSkus.clear(),this._currentThreadId=null,this._lastThreadId=null,this._lastBackendContext=null,this._chatCreatedAt=new Date().toISOString(),this._pdpLaunched=!1,this._entryContextPrimed=!1,this._pdpPrimingInFlight=!1,this._queuedUserMessages=[],this._productContextUnavailableSku=null,this._presentation.reset(),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1),this._modeController.reset()&&(this._drawer?.setInputPlaceholder(this._i18n.inputPlaceholder),this._drawer?.setAttachmentControlsVisible(!0),this._drawer?.setBeautyPhotoStepCard({visible:!1}))}_clearAssistantPanelLikeStreamClearPanel(){this._choicePrompterEl?.remove(),this._choicePrompterEl=null,this._drawer?.clearPanel(),this._currentPanelSource=null,this._thumbnailEntries=[],this._drawer?.setThumbnails([]),this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._panel&&(this._panel.currentType=null,this._panel.updateExtendedMode(""),this._panel.updateTopBar(""))}_flushPresentationScroll(){const e=this._presentation.scrollRequest;if(!e||!this._drawer)return;let a=!1;e.type==="thread"&&e.threadId?(a=this._drawer.scrollThreadIntoView(e.threadId,e.behavior),a||(this._drawer.scrollToBottomPresentation(e.behavior),a=!0)):e.type==="bottom"&&(this._drawer.scrollToBottomPresentation(e.behavior),a=!0),a&&this._presentation.consumeScrollRequest(e.id)}_releasePresentationFocus(){this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1)}_hasMultipleThreadIds(){const e=new Set;for(const a of this._messages)a.threadId&&e.add(a.threadId);return e.size>1}_orderedThreadIds(){const e=[],a=new Set;for(const n of this._messages)n.threadId&&!a.has(n.threadId)&&(a.add(n.threadId),e.push(n.threadId));return e}_maybeAutoAnchorUnreadAssistant(){if(!this._drawer||!this._presentation.shown)return;const e=this._orderedThreadIds();if(e.length===0)return;const a=fi(e,this._presentation);if(!a)return;const n=`${a}:assistant`;this._presentation.lastAutoAnchoredGroupId!==n&&(this._presentation.userInteracting&&!this._presentation.pinnedToBottom||this._drawer.scrollThreadIntoView(a,"smooth")&&this._presentation.markGroupAutoAnchored(n))}_handleBridgeMessage(e){switch(e.type){case"openChat":this.open();break;case"closeChat":this.close();break;case"startNewChatWithLauncherAction":{const a=e.payload,n=a?.action,i=De(n)?n:De(a)?a:null;i&&this._sendAction(i,{silent:!0}),this.open();break}case"startNewChatWithDetailContext":{const a=e.payload;if(a&&typeof a=="object"){this._bridgeContext=a;const n=a.sku;if(n&&this.update({sku:n}),De(a.action)){this._pdpLaunched=!0,this.open(),this._sendAction(a.action);break}}this.open();break}case"launcherAction":{const a=e.payload?.action;a&&typeof a=="object"&&"type"in a&&this._sendAction(a);break}case"scrollToBottom":this._presentation.requestScrollToBottom("smooth"),setTimeout(()=>this._flushPresentationScroll(),40);break;case"addToCardHandler":this._bridge?.send("addToCardResult",e.payload);break;case"cartQuantityHandler":{const a=e.payload;a&&"quantity"in a&&typeof a.quantity=="number"&&(this._cartQuantity=a.quantity);break}case"favoritesCountHandler":{const a=e.payload?.count;typeof a=="number"&&a>=0&&this._drawer?.updateFavoritesBadge(a);break}case"minimizeRequestedByUser":this._extendedModeManager?.setHiddenByUser(!0);break;case"bgColorChange":{const a=e.payload?.color;typeof a=="string"&&dt(a)&&this._shadow&&this._shadow.host.style.setProperty("--gengage-chat-bg",a);break}default:break}}_registerPublicAPI(){window.gengage||(window.gengage={}),window.gengage.chat={open:e=>this.open(e),openWithAction:(e,a)=>this.openWithAction(e,a),sendMessage:e=>this.sendMessage(e),sendAction:(e,a)=>this.sendAction(e,a),close:()=>this.close(),saveSession:(e,a)=>this.saveSession(e,a),get isOpen(){return!1},on:(e,a)=>this.on(e,a),trackCheckout:(e,a)=>this.trackCheckout(e,a),flushMeteringSummary:e=>this.flushMeteringSummary(e),addCallback:(e,a)=>this.addCallback(e,a)},Object.defineProperty(window.gengage.chat,"isOpen",{get:()=>this._drawerVisible})}_showDrawer(){if(this._drawerVisible)return;this._drawerVisible=!0;const e=this._drawer?.getElement();e&&e.classList.remove("gengage-chat-drawer--hidden"),this._applyOpenStateClasses(),this._drawer?.trapFocus(),this._isMobileViewport&&this._openState==="half"||this._drawer?.focusInput(),this._extendedModeManager?.setChatShown(!0),this._presentation.setShown(!0),setTimeout(()=>this._maybeAutoAnchorUnreadAssistant(),60)}_showWelcomeIfNeeded(){if(this._messages.length!==0)return;const e=this._resolveOpeningContextKey(),a=this._resolveContextualOpeningActions(e);if(a.length>0&&this._drawer?.setPills(a.map(r=>({label:r.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(r,e))}))),e==="product"&&this.config.pageContext?.sku||this._shouldPrimeContextualOpening(e))return;const n=this._resolveContextualOpeningMessage(e);if(!n)return;const i={id:We(),role:"assistant",content:n,timestamp:Date.now(),status:"done"};this._messages.push(i),this._drawer?.addMessage(i)}_resolveOpeningContextKey(){switch(this.config.pageContext?.pageType){case"home":return"home";case"search":case"plp":return"listing";case"pdp":return"product";default:return"default"}}_resolveContextualOpeningMessage(e=this._resolveOpeningContextKey()){return this.config.openingMessagesByContext?.[e]??(e!=="default"?this.config.openingMessagesByContext?.default:void 0)??this.config.welcomeMessage}_resolveContextualOpeningGuidance(e=this._resolveOpeningContextKey()){return this.config.openingGuidanceByContext?.[e]??(e!=="default"?this.config.openingGuidanceByContext?.default:void 0)}_resolveContextualOpeningActions(e=this._resolveOpeningContextKey()){const a=this.config.welcomeActionsByContext?.[e]??(e!=="default"?this.config.welcomeActionsByContext?.default:void 0);return a?.length?a.filter(n=>typeof n?.title=="string"&&n.title.trim().length>0):(this.config.welcomeActions??[]).filter(n=>typeof n=="string"&&n.trim().length>0).map(n=>({title:n}))}_resolveContextualOpeningAction(e,a=this._resolveOpeningContextKey()){const n=e.title.trim(),i=this.config.pageContext?.sku??this._readContextStringField("sku"),r=this._readContextStringListField("visible_skus")??[];return e.icon==="review"&&i?{title:n,type:"reviewSummary",payload:{sku:i}}:e.icon==="similar"&&i?{title:n,type:"findSimilar",payload:{sku:i}}:e.icon==="compare"&&a==="listing"&&r.length>=2?{title:n,type:"getComparisonTable",payload:{sku_list:r.slice(0,2)}}:{title:n,type:"user_message",payload:n}}_readContextStringField(e){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,i=e.replace(/_([a-z])/g,(o,c)=>c.toUpperCase()),r=a?.[e]??n?.[e]??a?.[i]??n?.[i];return typeof r=="string"&&r.trim().length>0?r.trim():void 0}_readContextStringListField(e){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,i=e.replace(/_([a-z])/g,(c,d)=>d.toUpperCase()),r=a?.[e]??n?.[e]??a?.[i]??n?.[i];if(!Array.isArray(r))return;const o=r.filter(c=>typeof c=="string"&&c.trim().length>0);return o.length>0?o:void 0}_buildEntryOpeningPageDetails(){const e={};e.url=this.config.pageContext?.url??window.location.href;const a=this._readContextStringField("page_title");a&&(e.page_title=a);const n=this._readContextStringField("page_description");n&&(e.page_description=n);const i=this._readContextStringField("search_query");i&&(e.search_query=i);const r=this._readContextStringListField("visible_skus");r?.length&&(e.visible_skus=r);const o=this._readContextStringListField("popular_searches");o?.length&&(e.popular_searches=o);const c=this.config.pageContext?.categoryTree??this._readContextStringListField("category_path");return c?.length&&(e.category_path=c),Object.keys(e).length>0?e:void 0}_shouldPrimeContextualOpening(e=this._resolveOpeningContextKey()){return this._messages.length!==0||this._entryContextPrimed||this._pdpPrimingInFlight||e==="product"?!1:!!(this.config.openingMessagesByContext||this.config.openingGuidanceByContext||this.config.welcomeActionsByContext)}_maybePrimeEntryContextOpening(){const e=this._resolveOpeningContextKey();if(!this._shouldPrimeContextualOpening(e))return;this._entryContextPrimed=!0;const a={text:"",is_entry_context_opening:1,opening_context_key:e},n=this._buildEntryOpeningPageDetails();n&&(a.page_details=n);const i=this._resolveContextualOpeningMessage(e);i&&(a.opening_message=i);const r=this._resolveContextualOpeningGuidance(e);r&&(a.opening_guidance=r),this._sendAction({title:"",type:"user_message",payload:a},{silent:!0,preservePills:!0})}_hideDrawer(){if(!this._drawerVisible)return;this._drawer?.releaseFocus(),this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._drawerVisible=!1,this._openState="full";const e=this._drawer?.getElement();e&&e.classList.add("gengage-chat-drawer--hidden"),this._applyOpenStateClasses(),this._extendedModeManager?.setChatShown(!1),this._presentation.setShown(!1),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1)}_syncViewportState(){if(this._rootEl){if(this._isMobileViewport=window.innerWidth<=this._mobileBreakpoint,this._rootEl.classList.toggle("gengage-chat-root--mobile",this._isMobileViewport),this._launcher){const e=this._isMobileViewport&&this.config.hideMobileLauncher===!0;this._launcher.container.classList.toggle("gengage-chat-launcher--hidden-mobile",e)}this._applyOpenStateClasses()}}_isMaximizedForHostChrome(){if(!this._drawerVisible)return!1;const e=this.config.variant??"floating";return e==="inline"?!1:e==="overlay"?!0:this._drawer?.isPanelVisible()??!1}_applyOpenStateClasses(){if(!this._rootEl)return;const e=this._drawerVisible&&this._isMobileViewport&&this._openState==="half",a=this._drawerVisible&&this._isMobileViewport&&this._openState==="full",n=this._isMaximizedForHostChrome();if(this._rootEl.classList.toggle("gengage-chat-root--open",this._drawerVisible),this._rootEl.classList.toggle("gengage-chat-root--mobile-half",e),this._rootEl.classList.toggle("gengage-chat-root--mobile-full",a),this._rootEl.classList.toggle("gengage-chat-root--maximized-host-chrome",n),this._backdropEl){const i=n&&(this.config.variant??"floating")!=="inline";this._backdropEl.setAttribute("aria-hidden",i?"false":"true")}this._syncHostDocumentScrollLock()}_syncHostDocumentScrollLock(){if(!(typeof document>"u")){if((this.config.variant??"floating")==="inline"){this._releaseHostDocumentScrollLock();return}this._isMaximizedForHostChrome()?this._applyHostDocumentScrollLock():this._releaseHostDocumentScrollLock()}}_hostScrollEventShouldReachChatScroller(e){try{const a=e.composedPath();if(!a.includes(this.root))return!1;for(const n of a){if(n===this.root)break;if(!(n instanceof HTMLElement))continue;if(this._backdropEl&&(n===this._backdropEl||this._backdropEl.contains(n)))return!1;const i=window.getComputedStyle(n),r=(i.overflowY==="auto"||i.overflowY==="scroll")&&n.scrollHeight>n.clientHeight+1,o=(i.overflowX==="auto"||i.overflowX==="scroll")&&n.scrollWidth>n.clientWidth+1;if(r||o)return!0}return!1}catch{return!1}}_applyHostDocumentScrollLock(){typeof document>"u"||this._hostScrollLockActive||(document.addEventListener("touchmove",this._preventHostDocumentTouchMove,{capture:!0,passive:!1}),document.addEventListener("wheel",this._preventHostDocumentWheel,{capture:!0,passive:!1}),this._hostScrollLockActive=!0)}_releaseHostDocumentScrollLock(){typeof document>"u"||!this._hostScrollLockActive||(document.removeEventListener("touchmove",this._preventHostDocumentTouchMove,{capture:!0}),document.removeEventListener("wheel",this._preventHostDocumentWheel,{capture:!0}),this._hostScrollLockActive=!1)}_handleAttachment(e){const a=Vt(e);if(!a.ok){S.dispatch("gengage:global:error",{message:a.reason==="invalid_type"?this._i18n.invalidFileType:this._i18n.fileTooLarge,source:"chat"});return}this._drawer?.stageAttachment(e)}_sendMessage(e,a){if(this._pdpPrimingInFlight){this._queuedUserMessages.push(a!==void 0?{text:e,attachment:a}:{text:e});return}(!this._messages.some(i=>i.role==="user")||this._drawer?.isKvkkBannerVisible())&&(Re(this.config.accountId),this._drawer?.hideKvkkBanner()),S.trackMessageSent(),this._messages.some(i=>i.role==="user")||S.trackConversationStart(),S.debugLog("chat","sendMessage",{mode:this._assistantMode,hasAttachment:a!==void 0,textLength:e.length});const n=a!==void 0?{title:e,type:this._modeController.resolveAttachmentActionType(),payload:e?{text:e}:{}}:{title:e,type:"user_message",payload:e};a!==void 0?this._sendAction(n,{attachment:a}):this._sendAction(n)}_flushQueuedUserMessages(){if(this._pdpPrimingInFlight||this._queuedUserMessages.length===0)return;const e=[...this._queuedUserMessages];this._queuedUserMessages=[];for(const a of e)this._sendMessage(a.text,a.attachment)}_applyUiHints(){this._modeController.applyUiHints(this._drawer,this._i18n.inputPlaceholder,()=>{this._choicePrompterEl?.remove(),this._choicePrompterEl=null,this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(e=>e.remove())})}_handleRedirectMetadata(e){this._modeController.handleRedirect(e)}_sendAction(e,a){if(this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._lastSentAction={action:e,options:a},!this._initComplete){this._pendingActions.length<10&&this._pendingActions.push({action:e,options:a});return}if(this._choicePrompterEl?.remove(),this._choicePrompterEl=null,a?.preservePanel||si(),!a?.preservePanel&&this._comparisonSelectMode&&e.type!=="getComparisonTable"&&(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[]),a?.preservePanel||(this._localPanelHistory=[]),this._currentThreadId&&this._lastThreadId&&this._lastThreadId>this._currentThreadId){const f=this._currentThreadId,b=this._messages.filter(x=>x.threadId!==void 0&&x.threadId>f);this._messages=this._messages.filter(x=>!x.threadId||x.threadId<=f);for(const x of b)this._shadow?.querySelector(`[data-message-id="${CSS.escape(x.id)}"]`)?.remove(),this._panel.snapshots.delete(x.id),this._panel.snapshotTypes.delete(x.id);this._shadow?.querySelectorAll("[data-thread-id]")?.forEach(x=>{x instanceof HTMLElement&&x.dataset.threadId&&x.dataset.threadId>f&&x.remove()})}a?.preservePills||this._drawer?.setPills([]),this._drawer?.clearInputAreaChips(),this._bridge?.send("isResponding",!0);const n=We();this._currentThreadId=n,this._lastThreadId=n,this._panel&&e.type!=="launchSingleProduct"&&(this._panel.lastActionType=e.type);const i=a?.preservePanel===!0,r=e.type==="launchSingleProduct"&&a?.silent===!0&&a?.isPdpPrime===!0;if(i||(this._activeRequestThreadId=n),!a?.silent&&!i&&this._drawer?.setPresentationFocus(n),!a?.silent){const f=typeof e.payload=="string"?e.payload:typeof e.payload?.text=="string"?e.payload.text:e.title,b=this._messages.length>0?this._messages[this._messages.length-1]:void 0;if(!(b!==void 0&&b.role==="user"&&b.content===f)){const x=this._createMessage("user",f);x.threadId=n,a?.attachment!==void 0&&(x.attachment=a.attachment),this._drawer?.addMessage(x),this._messages.push(x)}}if(!a?.silent&&this._assistantMode==="shopping"&&this._hasUnavailableProductContext()&&(e.type==="user_message"||e.type==="inputText")){const f=this._i18n.productNotFoundMessage,b=this._createMessage("assistant",f);b.threadId=n,b.status="done",this._messages.push(b),this._ensureAssistantMessageRendered(b),this._drawer?.updateBotMessage(b.id,f),this._drawer?.setPresentationFocus(n),this._bridge?.send("isResponding",!1),this.emit("message",b),this._persistToIndexedDB().catch(()=>{});return}let o=this._currentPanelSource,c=!1;const d=()=>{c||a?.preservePanel||(o=this._currentPanelSource,c=!0)},l=()=>{if(this._drawer?.isPanelLoading()){if(o){const f=this._buildRenderContext(),b=this._renderPanelFromSource(o,f);this._drawer.setPanelContent(b),this._drawer.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(o)),this._currentPanelSource=o}else this._drawer.clearPanel(),this._currentPanelSource=null;o=null}};e.type==="getComparisonTable"&&(this._drawer?.showPanelLoading("comparisonTable"),this._panel?.updateTopBarForLoading("comparisonTable")),!a?.silent&&!i&&this._pruneEmptyStreamingAssistantPlaceholders(),this._drawer?.showTypingIndicator();let p="";const s=this._createMessage("assistant","");s.threadId=n,s.status="streaming",a?.silent&&(s.silent=!0),this._messages.push(s),this._presentation.registerAssistantActivity(n),this._presentation.requestThreadFocus(n,"smooth"),(a?.silent||i)&&this._drawer?.setPresentationFocus(n),this._drawer?.setFormerMessagesButtonVisible(!1),setTimeout(()=>this._flushPresentationScroll(),40),a?.preservePanel||this._abortAllActiveRequests();const u={middlewareUrl:this.config.middlewareUrl,...this.config.accountId?{accountId:this.config.accountId}:{}};a?.attachment!==void 0&&(u.attachment=a.attachment);const h=this._getVisibleMessages().filter(f=>f!==s&&(f.content||f.role==="assistant")).slice(-50).map(f=>({role:f.role==="user"?"user":"model",content:f.content??""})),w={outputLanguage:Ai(this.config.locale),parentUrl:window.location.href,windowWidth:String(window.innerWidth),windowHeight:String(window.innerHeight),selfUrl:"",id:this.config.session?.sessionId??"",userId:this.config.session?.userId??"",appId:this.config.accountId,threads:[],createdAt:this._chatCreatedAt,kvkkApproved:lt(this.config.accountId),voiceEnabled:this.config.voiceEnabled??!1,threadId:n,isControlGroup:this.config.session?.abTestVariant==="control",isMobile:this._isMobileViewport};this._modeController.isShopping||(w.assistantMode=this._modeController.mode),this.config.session?.viewId!==void 0&&(w.viewId=this.config.session.viewId);const m=$t(e,{pageContext:this.config.pageContext,backendContext:this._lastBackendContext,isMobile:this._isMobileViewport}),v={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",type:m.type,locale:this.config.locale??"tr",meta:w,context:{...this._lastBackendContext??{},messages:h,session_id:this.config.session?.sessionId??""}};this.config.session?.userId!==void 0&&(v.user_id=this.config.session.userId),this.config.session?.viewId!==void 0&&(v.view_id=this.config.session.viewId),m.payload!==void 0&&(v.payload=m.payload),this.config.pageContext?.sku!==void 0&&(v.sku=this.config.pageContext.sku),this.config.pageContext?.pageType!==void 0&&(v.page_type=this.config.pageContext.pageType);const y=crypto.randomUUID(),M=Date.now();let C=0,L=!1,_=!1,N=!1,H=!1,T=!1;const q=ka();let Z=null;const Y=()=>{if(this._drawer){if(this._isMobileViewport||!N){this._drawer.setPanelAiZoneState("hidden");return}H||(T?this._drawer.setPanelAiZoneState("hidden"):this._drawer.setPanelAiZoneState("analyzing",{analyzingLabel:this._i18n.aiAnalysisAnalyzingLabel}))}};this.track(S.streamStartEvent(this.analyticsContext(),{endpoint:"process_action",request_id:y,widget:"chat"}));let I=null;if(I=Yt(v,{onTextChunk:(f,b,x)=>{if(!i&&n!==this._activeRequestThreadId||(p+=f,this._drawer?.removeTypingIndicator(),x?.skuToProductItem&&(this._skuToProductItem={...this._skuToProductItem,...x.skuToProductItem}),x?.conversationMode&&(this._conversationMode=x.conversationMode),x?.renderHint&&(s.renderHint=x.renderHint),this.track(S.streamChunkEvent(this.analyticsContext(),{request_id:y,chunk_index:C++,widget:"chat"})),!this._drawer))return;let E=p;const A=x?.kvkk===!0||Ge(E);if(b&&A){const R=this.config.accountId;if(!lt(R)){const P=Ei(E);P?this._drawer?.showKvkkBanner(P,()=>{this._drawer?.hideKvkkBanner(),Re(R)}):Re(R)}E=Si(E)}const B=this._shadow?.querySelector(`[data-message-id="${s.id}"] .gengage-chat-bubble-text`);if(B?B.innerHTML=S.sanitizeHtml(E):(s.content=E,s.role==="assistant"&&s.threadId&&!this._threadsWithFirstBot.has(s.threadId)&&(this._threadsWithFirstBot.add(s.threadId),this._drawer.markFirstBotMessage(s.id)),this._drawer.addMessage(s)),b)if(s.content=E,s.status="done",S.trackMessageReceived(),Sa(s))this._drawer?.updateBotMessage(s.id,E,"photo_analysis",s.photoAnalysis);else{const R=this._shadow?.querySelector(`[data-message-id="${s.id}"] .gengage-chat-bubble-text`);if(R){this._activeTypewriter?.cancel();const P=x?.productMentions;this._activeTypewriter=ei({container:R,html:S.sanitizeHtml(E),onTick:()=>this._drawer?.scrollToBottomIfNeeded(),onComplete:()=>{this._activeTypewriter=null,P&&P.length>0&&R&&ti({container:R,mentions:P,onProductClick:j=>{this._sendAction({title:P.find(U=>U.sku===j)?.short_name??j,type:"launchSingleProduct",payload:{sku:j}})}})}})}}},onUISpec:(f,b,x,E)=>{if(!i&&n!==this._activeRequestThreadId||b!=="chat")return;E&&(this._clearAssistantPanelLikeStreamClearPanel(),L=!1);const A=f.elements[f.root],B=A?.type??"unknown";if(Ca(B,A?.props??{},q,{drawer:this._drawer,ensureRendered:()=>this._ensureAssistantMessageRendered(s),cancelTypewriter:()=>{this._activeTypewriter?.cancel(),this._activeTypewriter=null},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:T},s))return;const R=B==="ProductGrid"&&A?.props?.similarsAppend===!0,P=this.config.productDetailsExtended!==!0&&(B==="ProductDetailsPanel"||R);P&&!E&&(this._clearAssistantPanelLikeStreamClearPanel(),L=!1);const j=B==="ProductDetailsPanel"&&x!=="panel"?"panel":x;this.track(S.streamUiSpecEvent(this.analyticsContext(),{request_id:y,chunk_index:C,component_type:B,widget:"chat"}));const U=this._buildRenderContext();if(U.isStreaming=!0,B==="ComparisonTable"){const O=A?.props?.products;S.trackCompareReceived(Array.isArray(O)?O.length:0)}if(B==="ProductGrid"){const O=A?.children?.length??0;S.trackSearch(void 0,O)}const $=j==="panel"&&this._panel?this._panel.toPanelSpec(f):f;if(j==="panel"&&this._panel&&!P){const O=!_;_=!0;const z=bi({componentType:B,similarsAppend:A?.props?.similarsAppend===!0,currentPanelType:this._panel.currentType,hasPanelContent:this._drawer?.hasPanelContent()??!1,isPanelLoading:this._drawer?.isPanelLoading()??!1,isFirstPanelContentInStream:O});U.panelProductListHeading=void 0,B==="ProductGrid"&&(z==="appendSimilars"?U.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products":this._applyPanelListHeadingToContext(U,{kind:"spec",spec:$})),z==="appendSimilars"?this._appendSimilarsToPanel($,U):z==="append"?(this._drawer?.appendPanelContent(this._renderUISpec($,U)),this._comparisonSelectMode&&this._refreshComparisonUI()):(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._drawer?.setComparisonDockContent(null),this._drawer?.setPanelContent(this._renderUISpec($,U)),this._currentPanelSource={kind:"spec",spec:$},this._panel.currentType=B),this._drawer?.setDividerPreviewEnabled((this._panel.currentType??B)==="ProductGrid"),B==="ProductDetailsPanel"&&e.type==="launchSingleProduct"&&this._clearUnavailableProductContext(),s.threadId&&!this._panel.threads.includes(s.threadId)&&this._panel.threads.push(s.threadId);const W=this._panel.currentType??B,D=A?.props?.panelTitle;if(this._panel.updateTopBar(W,D),this._panel.updateExtendedMode(B),B==="ProductGrid"||B==="CategoriesContainer"){if(N=!this._isMobileViewport,Z){const Q=this._buildRenderContext();Q.isStreaming=!0;const ke=this._renderUISpec(Z,Q);H=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:ke}),Z=null}}else z!=="appendSimilars"&&z!=="append"&&(N=!1,Z=null,this._drawer?.setPanelAiZoneState("hidden"))}if(B==="ProductDetailsPanel"&&j==="panel"&&(!s.silent||r)){const O=A?.props?.product;if(O){const z={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:O}}}},W=this._shadow?.querySelector(".gengage-chat-messages");if(W){const D=this._renderUISpec(z,U);s.threadId&&(D.dataset.threadId=s.threadId);const Q=this._shadow?.querySelector(`[data-message-id="${s.id}"]`);Q&&Q.parentNode===W?Q.after(D):W.appendChild(D),D.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),_=!0}}}const K=B==="AITopPicks"||B==="AIGroupingCards";let X=!1,ee=!1;if(P&&R&&(U.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products"),K&&!this._isMobileViewport&&!s.silent)if(N){const O=this._renderUISpec(f,U);H=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:O}),X=!0,Z=null}else Z=f,ee=!0;const V=r&&B==="GroundingReviewCard";if((!s.silent||V)&&(j!=="panel"||B==="ProductCard"||P&&B==="ProductGrid")&&B!=="ActionButtons"&&!X&&!(ee&&K)){const O=this._shadow?.querySelector(".gengage-chat-messages");if(O){const z=this._renderUISpec(f,U);s.threadId&&(z.dataset.threadId=s.threadId),O.appendChild(z),z.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),P&&B==="ProductGrid"&&(_=!0)}}if((B==="ProductGrid"||B==="ProductCard")&&s.threadId){const O=A?.children??[],z=B==="ProductGrid"?O.map(W=>f.elements[W]?.props?.product).filter(Boolean):[A?.props?.product].filter(Boolean);for(const W of z){const D=W.sku,Q=W.imageUrl;D&&Q&&this._thumbnailEntries.push({sku:D,imageUrl:Q,threadId:s.threadId}),D&&this._viewedProductSkus.add(D)}this._drawer?.setThumbnails(this._thumbnailEntries)}if(B==="ProductGrid"||B==="ProductDetailsPanel"){const O=(B==="ProductGrid"?(A?.children??[]).map(z=>f.elements[z]?.props?.product).filter(Boolean):[A?.props?.product??A?.props].filter(Boolean)).map(z=>z.imageUrl).filter(z=>typeof z=="string").slice(0,5);O.length>0&&this._bridge?.send("previewImages",{images:O})}const ie=A?.children?.length??0;if(B==="ProductGrid"&&j==="panel"&&!P&&ie>1&&!this._modeController.isChoicePrompterHidden&&!this._comparisonSelectMode&&!ci(this._currentThreadId??"")){this._choicePrompterEl?.remove(),this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(z=>z.remove()),this._choicePrompterEl=oi({heading:this._i18n.choicePrompterHeading,suggestion:this._i18n.choicePrompterSuggestion,ctaLabel:this._i18n.choicePrompterCta,threadId:this._currentThreadId??"",dismissAriaLabel:this._i18n.dismissAriaLabel,onCtaClick:()=>{this._comparisonSelectMode=!0,this._choicePrompterEl=null,this._refreshComparisonUI()},onDismiss:()=>{this._choicePrompterEl=null}});const O=this._shadow?.querySelector(".gengage-chat-panel-float");if(O){if(O.appendChild(this._choicePrompterEl),this._isMobileViewport&&window.visualViewport){const z=this._choicePrompterEl,W=()=>{window.visualViewport.height/window.innerHeight<.75&&(z.remove(),this._choicePrompterEl===z&&(this._choicePrompterEl=null),window.visualViewport.removeEventListener("resize",W))};window.visualViewport.addEventListener("resize",W)}}else this._choicePrompterEl=null}if(B==="ActionButtons"){const O=A?.props?.buttons;if(O&&O.length>0){const z=[],W=[];for(const D of O)if(ii(D)){const Q={label:D.label,action:D.action};D.icon&&(Q.icon=D.icon),z.push(Q)}else W.push(D);z.length>0&&this._drawer?.setInputAreaChips(z.map(D=>({label:D.label,onAction:()=>this._sendAction(D.action),...D.icon?{icon:D.icon}:{}}))),W.length>0&&this._drawer?.setPills(W.map(D=>{const Q={label:D.label,onAction:()=>this._sendAction(D.action)};return D.icon&&(Q.icon=D.icon),D.image&&(Q.image=D.image),D.description&&(Q.description=D.description),Q}))}}Y(),s.uiSpec=f},onAction:f=>{if(!(!i&&n!==this._activeRequestThreadId)&&f.type==="action"){const b={};this.config.actionHandling?.unknownActionPolicy!==void 0&&(b.unknownActionPolicy=this.config.actionHandling.unknownActionPolicy),this.config.actionHandling?.allowScriptCall!==void 0&&(b.allowScriptCall=this.config.actionHandling.allowScriptCall),pt(f,{openChat:()=>this.open(),navigate:x=>{S.isSafeUrl(x.url)&&(this._bridge?.send("navigate",x),x.newTab?window.open(x.url,"_blank","noopener,noreferrer"):window.location.href=x.url)},saveSession:x=>this.saveSession(x.sessionId,x.sku),addToCart:x=>{S.dispatch("gengage:similar:add-to-cart",x)},scriptCall:x=>{S.dispatch("gengage:chat:script-call",x),this.config.onScriptCall?.(x)}},b)}},onMetadata:f=>{if(!(!i&&n!==this._activeRequestThreadId)&&f.type==="metadata"&&f.meta){if(f.meta.panel!==void 0||f.meta.messages!==void 0||f.meta.message_id!==void 0){this._lastBackendContext=f.meta;const x=Ve(f.meta.panel);x&&(this._modeController.updateFromContext(x),this._applyUiHints())}if(f.meta.panelLoading){const x=typeof f.meta.panelPendingType=="string"?f.meta.panelPendingType:void 0;this.config.productDetailsExtended!==!0&&(x==="productDetails"||x==="productDetailsSimilars")||(L=!0,_=!1,d(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(x),x&&this._panel?.updateTopBarForLoading(x))}if(f.meta.voice){const x=new CustomEvent("gengage:chat:voice",{detail:{payload:f.meta.voice},bubbles:!1,cancelable:!0}),E=window.dispatchEvent(x);if(S.trackVoiceInput(),E){const A=f.meta.voice;A.audio_base64&&(this._activeTtsHandle?.stop(),this._activeTtsHandle=Ia(A.audio_base64,A.content_type??"audio/ogg"))}}if((f.meta.redirectTarget||f.meta.redirect)&&(S.dispatch("gengage:chat:redirect",{target:f.meta.redirectTarget??null,payload:f.meta.redirect??null}),S.debugLog("redirect","redirect dispatched",{target:f.meta.redirectTarget??null}),this._handleRedirectMetadata(f.meta.redirect)),f.meta.analyzeAnimation&&this.config.productDetailsExtended===!0&&(L=!0,_=!1,d(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(),this._panel?.updateTopBarForLoading("productDetails")),f.meta.loading){const x=Array.isArray(f.meta.thinkingMessages)?f.meta.thinkingMessages.filter(A=>typeof A=="string"):[],E=typeof f.meta.loadingText=="string"?f.meta.loadingText:void 0;if(x.length>0){const A=E&&this._modeController.shouldCondenseThinking()?[...x.slice(0,2),E]:x;this._drawer?.setThinkingSteps(A)}typeof E=="string"&&E.length>0&&(this._drawer?.addThinkingStep(E),this._bridge?.send("loadingMessage",{text:E}))}f.meta.visitorDataResponse&&this._bridge?.send("engagingMessage",f.meta.visitorDataResponse),f.meta.formType&&this._bridge?.send("glovOtokoc",{type:f.meta.formType,data:f.meta.formPayload}),f.meta.launcherContent&&this._bridge?.send("launcherContent",f.meta.launcherContent),S.dispatch("gengage:chat:metadata",{payload:f.meta});const b=f.meta;typeof b.prompt_tokens=="number"&&typeof b.completion_tokens=="number"&&this.track(S.llmUsageEvent(this.analyticsContext(),{model:f.model??"unknown",prompt_tokens:b.prompt_tokens,completion_tokens:b.completion_tokens,total_tokens:b.total_tokens??b.prompt_tokens+b.completion_tokens}))}},onError:f=>{if(I&&this._abortControllers.delete(I),!i&&n!==this._activeRequestThreadId)return;T=!0,this._activeTypewriter?.cancel(),this._activeTypewriter=null,Y(),Z=null,this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),this._drawer?.clearInputAreaChips(),Pa(q,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const b=_;L&&!_&&l(),L=!1,_=!1;const x=s.silent||s.content!=null&&s.content.length>0||p.length>0||b,E=typeof navigator<"u"&&navigator.onLine===!1&&S.isLikelyConnectivityIssue(f),A=()=>{this._shadow?.querySelector(`[data-message-id="${CSS.escape(s.id)}"]`)?.remove();const P=this._messages.indexOf(s);P>=0&&this._messages.splice(P,1)};let B=!1;const R=()=>{if(E)return;this.emit("error",f);const P=f.message;P===this._lastErrorMessage?this._consecutiveErrorCount++:(this._consecutiveErrorCount=1,this._lastErrorMessage=P);const j=f.message.trim(),U=j.length>0?j:this._i18n.errorMessage,$={onRetry:()=>{this._lastSentAction&&this._sendAction(this._lastSentAction.action,this._lastSentAction.options)},onNewQuestion:()=>{this._drawer?.focusInput()}};if(this._consecutiveErrorCount>=2){A(),B=!0,this._drawer?.showErrorWithRecovery(this._i18n.accountInactiveMessage,$);return}if(_i(f,U)){A(),B=!0,this._drawer?.showErrorWithRecovery(U,$);return}s.content=U,s.status="done";const K=S.sanitizeHtml(U.replace(/\r\n/g,`
|
|
91
|
+
`.trim(),f=()=>{for(const _ of document.querySelectorAll("[data-gengage-widget]")){if(!(_ instanceof HTMLElement))continue;const M=_.shadowRoot;if(M&&(M.querySelector('[data-gengage-part="chat-launcher-button"]')||M.querySelector(".gengage-chat-root")))return _}return null},y=_=>{if(_.getElementById(c))return;const M=document.createElement("style");M.id=c,M.textContent=m,_.appendChild(M)},B=CSS.escape(o),S=_=>{y(_);const M=_.querySelector('[data-gengage-part="chat-launcher-button"]');if(!(M instanceof HTMLButtonElement))return!1;const H=_.querySelector('[data-gengage-part="chat-header-avatar"]');if(H instanceof HTMLImageElement){const q=_.querySelector('[data-gengage-part="chat-launcher-button"] img');(!q||H.src===q.src)&&H.classList.remove("gengage-chat-header-avatar--logo")}if(M.querySelector(`.${B}`))return!0;M.setAttribute("aria-label",e);const T=document.createElement("span");return T.className=o,T.textContent=e,M.appendChild(T),!0};return{launcherImageUrl:a,apply:async _=>{if(_){y(_),await Promise.resolve();for(let H=0;H<90;H++){if(S(_))return;await new Promise(T=>requestAnimationFrame(()=>T()))}return}const M=f();M?.shadowRoot&&y(M.shadowRoot),await Promise.resolve();for(let H=0;H<90;H++){const T=f()?.shadowRoot??null;if(T&&(y(T),S(T)))return;await new Promise(q=>requestAnimationFrame(()=>q()))}}}}var vi=/^HTTP\s+\d{3}\b/i,xi=[/response body is null/i,/streaming not supported/i,/ECONNREFUSED/i,/ECONNRESET/i,/ETIMEDOUT/i,/socket hang up/i,/net::ERR_/i,/502\s+bad gateway/i,/503\s+service unavailable/i,/504\s+gateway timeout/i],wi=[/Traceback\s*\(/i,/\bSyntaxError\b/,/\bReferenceError\b/,/\bTypeError\s*:/,/\bat\s+[\w./()[\]<>-]+:\d+:\d+/,/\n\s+at\s+\w/,/undefined is not/i,/is not a function/i,/<anonymous>/i,/ChunkLoadError/i,/UnhandledPromiseRejection/i],yi=720;function _i(t,e){if(E.isLikelyConnectivityIssue(t))return!0;const a=t.message.trim();if(vi.test(a)||xi.some(r=>r.test(a)))return!0;const n=e.trim();if(n.length>yi)return!0;const i=n.split(/\n/).length;return!!(i>=6||wi.some(r=>r.test(n))||i>=3&&/\bat\s+/.test(n))}var Mt="gengage_kvkk_shown",ki=["kvkk","kişisel veri","kisisel veri"],Ci=/\b6698\b/;function Ge(t){const e=t.toLowerCase();return ki.some(a=>e.includes(a))||Ci.test(e)}function lt(t){try{return localStorage.getItem(`${Mt}_${t}`)==="1"}catch{return!1}}function Re(t){try{localStorage.setItem(`${Mt}_${t}`,"1")}catch{}}function Si(t){const e=new DOMParser().parseFromString(t,"text/html").body,a=Array.from(e.children);for(const n of a)if(Ge(n.textContent??"")){n.remove();break}return e.innerHTML.trim()}function Ei(t){const e=new DOMParser().parseFromString(t,"text/html");for(const a of Array.from(e.body.children))if(Ge(a.textContent??""))return a.outerHTML;return null}var Pi={tr:"TURKISH",en:"ENGLISH",de:"GERMAN",fr:"FRENCH"};function Ai(t){return t?Pi[t.toLowerCase().slice(0,2)]??"TURKISH":"TURKISH"}var Li=':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel-container,.gengage-simbut-root){--ds-neutral-0:#fff;--ds-neutral-25:#fcfcfd;--ds-neutral-50:#f6f7fb;--ds-neutral-100:#f3f4f6;--ds-neutral-200:#e5e7eb;--ds-neutral-300:#d0d5dd;--ds-neutral-500:#667085;--ds-neutral-600:#475467;--ds-neutral-700:#344054;--ds-neutral-900:#111827;--ds-radius-2:8px;--ds-radius-3:12px;--ds-radius-4:16px;--ds-radius-5:20px;--ds-radius-6:24px;--ds-radius-pill:999px;--ds-shadow-1:0 1px 2px #1018280a, 0 1px 3px #1018280f;--ds-shadow-2:0 4px 12px #10182814;--ds-shadow-3:0 10px 24px #1018281f;--client-primary:var(--gengage-primary-color,#b7102a);--client-primary-hover:var(--gengage-primary-hover,color-mix(in srgb, var(--client-primary) 88%, black 12%));--client-primary-active:var(--gengage-primary-active,color-mix(in srgb, var(--client-primary) 78%, black 22%));--client-primary-subtle:color-mix(in srgb, var(--client-primary) 12%, white);--client-primary-soft:color-mix(in srgb, var(--client-primary) 20%, white);--client-on-primary:var(--gengage-primary-foreground,#fff);--client-focus-ring:color-mix(in srgb, var(--client-primary) 32%, transparent);--ai-accent-start:#0b24d6;--ai-accent-end:#f768f2;--ai-accent-soft:linear-gradient(135deg, #0b24d614, #f768f214);--surface-page:var(--gengage-page-bg,var(--ds-neutral-50));--surface-shell:var(--gengage-shell-bg,#10131a);--surface-card:var(--gengage-background-color,var(--ds-neutral-0));--surface-card-muted:var(--gengage-surface-soft,#f8fafc);--surface-card-soft:var(--surface-card-muted);--surface-elevated:var(--gengage-surface-elevated,var(--ds-neutral-0));--surface-input:var(--gengage-input-bg,var(--ds-neutral-0));--surface-overlay:var(--gengage-overlay-bg,#10131a85);--text-primary:var(--gengage-foreground-color,var(--ds-neutral-900));--text-secondary:var(--gengage-text-secondary,#4b5563);--text-muted:var(--gengage-text-muted,#6b7280);--text-inverse:var(--gengage-text-inverse,#f9fafb);--border-subtle:var(--gengage-border-subtle,#1118270f);--border-default:var(--gengage-border-color,#1118271a);--border-strong:var(--gengage-border-strong,#1118272e);--shadow-1:var(--gengage-shadow-1,var(--ds-shadow-1));--shadow-2:var(--gengage-shadow-2,var(--ds-shadow-2));--shadow-3:var(--gengage-shadow-3,var(--ds-shadow-3));--radius-control:var(--gengage-control-radius,var(--ds-radius-3));--radius-card:var(--gengage-card-radius,var(--ds-radius-4));--radius-panel:var(--gengage-panel-radius,var(--ds-radius-6));--radius-pill:var(--gengage-pill-radius,var(--ds-radius-pill));--success:var(--gengage-success-color,#16a34a);--warning:var(--gengage-warning-color,#d97706);--error:var(--gengage-error-color,#dc2626);--info:var(--gengage-info-color,#2563eb);--rating:var(--gengage-rating-color,#f5b301);--gengage-primary:var(--client-primary);--gengage-primary-soft:var(--client-primary-soft);--gengage-primary-subtle:var(--client-primary-subtle);--gengage-text-color:var(--text-primary);--gengage-text-secondary:var(--text-secondary);--gengage-hover-color:var(--surface-card-soft);--ds-button-primary-bg:var(--client-primary);--ds-button-primary-bg-hover:var(--client-primary-hover);--ds-button-primary-bg-active:var(--client-primary-active);--ds-button-primary-fg:var(--client-on-primary);--ds-button-primary-border:color-mix(in srgb, var(--client-primary) 82%, black 18%);--ds-button-secondary-bg:var(--surface-card);--ds-button-secondary-bg-hover:var(--client-primary-subtle);--ds-button-secondary-fg:var(--client-primary);--ds-button-secondary-border:color-mix(in srgb, var(--client-primary) 26%, white);--ds-button-ghost-bg:var(--surface-card-muted);--ds-button-ghost-bg-hover:var(--ds-button-ghost-bg);--ds-button-ghost-fg:var(--text-primary);--ds-button-ghost-fg-hover:var(--client-primary);--ds-button-ghost-border:var(--border-default);--ds-button-ghost-border-hover:color-mix(in srgb, var(--client-primary) 18%, white);--ds-panel-bg:var(--surface-card);--ds-panel-border:var(--border-default);--ds-panel-shadow:var(--shadow-1);--ds-panel-radius:var(--radius-panel);--ds-header-bg:var(--surface-card);--ds-header-fg:var(--text-primary);--ds-header-muted:var(--text-muted);--ds-header-border:var(--border-default);--ds-card-bg:var(--surface-card);--ds-card-bg-soft:var(--surface-card-muted);--ds-card-border:var(--border-default);--ds-card-shadow:var(--shadow-1);--ds-card-shadow-hover:var(--shadow-2);--ds-card-radius:var(--radius-card);--ds-card-border-hover:color-mix(in srgb, var(--client-primary) 14%, var(--border-default));--ds-card-bg-hover:color-mix(in srgb, var(--client-primary) 2%, var(--surface-card));--ds-product-card-media-bg:var(--surface-card-muted);--ds-product-card-media-border:var(--border-subtle);--ds-input-bg:var(--surface-input);--ds-input-border:var(--border-default);--ds-input-radius:16px;--ds-input-focus-border:color-mix(in srgb, var(--client-primary) 28%, white);--ds-input-focus-ring:0 0 0 4px var(--client-focus-ring);--ds-input-highlight:inset 0 1px 0 #fff9;--ds-chip-bg:var(--surface-card);--ds-chip-border:var(--border-default);--ds-chip-fg:var(--text-secondary);--ds-chip-bg-hover:var(--surface-card-muted);--ds-chip-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-chip-border-active:color-mix(in srgb, var(--client-primary) 30%, white);--ds-chip-fg-active:var(--client-primary);--ds-tab-bg:var(--surface-card);--ds-tab-bg-hover:var(--surface-card-muted);--ds-tab-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-tab-border:var(--border-default);--ds-tab-border-active:color-mix(in srgb, var(--client-primary) 26%, white);--ds-tab-fg:var(--text-secondary);--ds-tab-fg-active:var(--client-primary);--ds-badge-brand-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-badge-brand-border:color-mix(in srgb, var(--client-primary) 18%, white);--ds-badge-brand-fg:var(--client-primary);--ds-message-user-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-message-user-fg:var(--text-primary);--ds-message-user-border:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));--ds-message-user-shadow:none;--ds-message-assistant-bg:var(--surface-card-soft);--ds-message-assistant-fg:var(--text-primary);--ds-message-assistant-border:var(--border-default);--ds-message-assistant-shadow:none;--ds-message-active-outline:color-mix(in srgb, var(--client-primary) 68%, white);--ds-progress-card-border:var(--border-subtle);--ds-progress-mark-bg:color-mix(in srgb, var(--ai-accent-start) 8%, var(--surface-card));--ds-progress-mark-border:color-mix(in srgb, var(--ai-accent-start) 12%, var(--border-default));--ds-progress-scrollbar-thumb:color-mix(in srgb, var(--text-primary) 18%, transparent);--ds-toast-error-bg:color-mix(in srgb, var(--error) 5%, var(--surface-card));--ds-toast-error-border:color-mix(in srgb, var(--error) 18%, var(--border-default));--ds-toast-error-accent:var(--error);--ds-toast-error-fg:color-mix(in srgb, var(--error) 22%, var(--text-primary));--ds-toast-error-shadow:var(--shadow-3);--ds-comparison-table-bg:var(--surface-card);--ds-comparison-table-border:var(--border-default);--ds-comparison-table-header-bg:var(--surface-card-muted);--ds-comparison-table-header-fg:var(--text-muted);--ds-comparison-table-row-border:var(--border-subtle);--ds-comparison-table-winner-bg:color-mix(in srgb, var(--client-primary) 6%, white);--ds-comparison-table-winner-fg:var(--client-primary)}:where(.gds-panel){background:var(--ds-panel-bg);border:1px solid var(--ds-panel-border);border-radius:var(--ds-panel-radius);box-shadow:var(--ds-panel-shadow)}:where(.gengage-qna-panel,.gengage-chat-panel-topbar,.gengage-chat-chat-header,.gengage-chat-panel-ai-zone>.gengage-chat-ai-top-picks,.gengage-chat-grounding-review){border-color:var(--ds-panel-border)}:where(.gds-btn){border-radius:var(--radius-control);min-height:46px;font:inherit;cursor:pointer;border:0;outline:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;display:inline-flex}:where(.gds-btn:hover){transform:none}:where(.gds-btn:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-btn:disabled){cursor:not-allowed;opacity:.56;box-shadow:none}:where(.gds-btn-primary){background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);border:1px solid var(--ds-button-primary-border)}:where(.gds-btn-primary:hover){background:var(--ds-button-primary-bg-hover)}:where(.gds-btn-secondary){background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg);border:1px solid var(--ds-button-secondary-border)}:where(.gds-btn-secondary:hover){background:var(--ds-button-secondary-bg-hover)}:where(.gds-btn-ghost){background:var(--ds-button-ghost-bg);color:var(--ds-button-ghost-fg);border:1px solid var(--ds-button-ghost-border)}:where(.gds-btn-ghost:hover){background:var(--ds-button-ghost-bg-hover);border-color:var(--ds-button-ghost-border-hover);color:var(--ds-button-ghost-fg-hover)}:where(.gds-chip){border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:var(--ds-chip-bg);color:var(--ds-chip-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}:where(.gds-chip:hover){background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border))}:where(.gds-chip:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-chip-active){border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}:where(.gds-badge){border-radius:var(--radius-pill);letter-spacing:.04em;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}:where(.gds-badge-brand){background:var(--ds-badge-brand-bg);color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border)}:where(.gds-shell-header){background:var(--ds-header-bg);color:var(--ds-header-fg);border-bottom:1px solid var(--ds-header-border);box-shadow:none;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}:where(.gds-shell-header [data-gengage-part=chat-header-powered-by]){color:var(--ds-header-muted)}:where(.gds-icon-btn){border-radius:var(--radius-control);width:42px;min-width:42px;height:42px;min-height:42px;padding:0}:where(.gds-input-shell){border-radius:var(--ds-input-radius);border:1px solid var(--ds-input-border);background:var(--ds-input-bg);min-height:52px;box-shadow:var(--ds-input-highlight);align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}:where(.gds-input-shell:focus-within){border-color:var(--ds-input-focus-border);box-shadow:var(--ds-input-focus-ring)}:where(.gds-tab){border-radius:var(--radius-pill);border:1px solid var(--ds-tab-border);background:var(--ds-tab-bg);color:var(--ds-tab-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}:where(.gds-tab:hover){background:var(--ds-tab-bg-hover)}:where(.gds-tab:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-tab[aria-selected=true],.gds-tab.is-active){color:var(--ds-tab-fg-active);border-color:var(--ds-tab-border-active);background:var(--ds-tab-bg-active)}:where(.gds-toolbar){flex-wrap:wrap;align-items:center;gap:10px;display:flex}:where(.gds-toolbar-compact){gap:8px}:where(.gds-card){background:var(--ds-card-bg);border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);transition:border-color .15s,box-shadow .15s,background-color .15s}:where(.gds-card-interactive),:where(.gds-clickable){cursor:pointer}:where(.gds-card-interactive:hover){background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}:where(.gds-card-soft){background:var(--ds-card-bg-soft)}:where(.gds-product-card){border-radius:16px}:where(.gds-evidence-card){background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);box-shadow:var(--shadow-1)}:where(.gds-evidence-card-success){background:color-mix(in srgb, var(--success) 10%, white);border-color:color-mix(in srgb, var(--success) 22%, var(--border-default))}:where(.gds-evidence-card-danger){background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}:where(.gds-evidence-card-warning){background:color-mix(in srgb, var(--warning) 10%, white);border-color:color-mix(in srgb, var(--warning) 22%, var(--border-default))}:where(.gds-message){border-radius:calc(var(--radius-control) + 4px);word-wrap:break-word;overflow-wrap:break-word;border:1px solid #0000;max-width:85%;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.55;animation:.3s cubic-bezier(.2,.7,.2,1) gengage-chat-msg-in}:where(.gds-message-user){background:var(--ds-message-user-bg);color:var(--ds-message-user-fg);border-color:var(--ds-message-user-border);box-shadow:var(--ds-message-user-shadow);border-bottom-right-radius:6px;align-self:flex-end}:where(.gds-message-assistant){background:var(--ds-message-assistant-bg);color:var(--ds-message-assistant-fg);border-color:var(--ds-message-assistant-border);box-shadow:var(--ds-message-assistant-shadow);border-bottom-left-radius:6px;align-self:flex-start;min-width:120px}:where(.gds-message-active){outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}:where(.gds-ai-card){background:var(--surface-card);border:1px solid var(--ds-progress-card-border);border-radius:20px;gap:16px;padding:18px;display:grid}:where(.gds-ai-mark){background:var(--ds-progress-mark-bg);width:42px;height:42px;color:var(--ai-accent-start);border:1px solid var(--ds-progress-mark-border);border-radius:14px;place-items:center;display:grid}:where(.gds-ai-loader-row){align-items:center;gap:12px;display:flex}:where(.gds-progress-loader){border:1px solid color-mix(in srgb, var(--ai-accent-start) 10%, var(--border-default));background:linear-gradient(110deg, var(--surface-card-soft) 8%, color-mix(in srgb, var(--ai-accent-start) 5%, var(--surface-card)) 18%, var(--surface-card-soft) 33%);width:fit-content;max-width:100%;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;animation:1.8s linear infinite gds-progress-shimmer;display:inline-flex}:where(.gds-progress-loader-chat){box-sizing:border-box;align-self:flex-start;width:100%;min-width:0;max-width:85%;display:flex}:where(.gds-progress-loader-chat) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-loader-panel){box-sizing:border-box;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}:where(.gds-progress-loader-panel) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-label){min-width:0;color:var(--text-secondary);word-break:break-word;font-size:13px;line-height:1.5}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:where(.gds-progress-dot){background:color-mix(in srgb, var(--ai-accent-start) 20%, var(--text-muted));border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-progress-dot:nth-child(2)){animation-delay:.2s}:where(.gds-progress-dot:nth-child(3)){animation-delay:.4s}:where(.gds-ai-status){border-radius:calc(var(--radius-control) + 2px);border:1px solid var(--border-default);background:var(--surface-card-muted);max-width:85%;color:var(--text-secondary);border-bottom-left-radius:6px;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;display:flex}:where(.gds-ai-status-text){color:var(--text-secondary);font-size:13px;font-style:italic}:where(.gds-ai-dot-loader){align-items:center;gap:5px;display:inline-flex}:where(.gds-ai-dot-loader span){background:color-mix(in srgb, var(--ai-accent-start) 38%, var(--text-muted));border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-ai-dot-loader span:nth-child(2)){animation-delay:.2s}:where(.gds-ai-dot-loader span:nth-child(3)){animation-delay:.4s}:where(.gds-ai-spinner){border:2.5px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.72s linear infinite gds-spin}@keyframes gds-spin{to{transform:rotate(360deg)}}@keyframes gds-progress-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes gds-progress-dot-pulse{0%,to{opacity:.45;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:where(.gds-progress-loader){animation:none}:where(.gds-progress-dot){opacity:.85;animation:none;transform:scale(1)}:where(.gds-ai-spinner){animation:none}:where(.gds-ai-dot-loader span){opacity:.85;animation:none}}:where(.gds-menu){border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-elevated);box-shadow:var(--shadow-3);padding:4px}:where(.gds-menu-option){border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background-color .15s,color .15s;display:flex}:where(.gds-menu-option:hover){background:var(--surface-card-muted)}:where(.gds-menu-option:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-menu-option-active){background:var(--client-primary-subtle);color:var(--client-primary);font-weight:600}:where(.gds-comparison-table){border-collapse:separate;border-spacing:0;border:1px solid var(--ds-comparison-table-border);background:var(--ds-comparison-table-bg);border-radius:20px;width:100%;overflow:hidden}:where(.gds-comparison-table th,.gds-comparison-table td){text-align:left;border-bottom:1px solid var(--ds-comparison-table-row-border);padding:14px 16px;font-size:13px}:where(.gds-comparison-table th){background:var(--ds-comparison-table-header-bg);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-comparison-table-header-fg);font-size:11px}:where(.gds-comparison-table tr:last-child td){border-bottom:0}:where(.gds-comparison-table-winner-cell){background:var(--ds-comparison-table-winner-bg);color:var(--ds-comparison-table-winner-fg);font-weight:800}:host{all:initial;font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px)}.gengage-chat-root button,.gengage-chat-root [role=button],.gengage-chat-root a{cursor:pointer}.gengage-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-root{z-index:var(--gengage-z-index,2147480000);--_gengage-chat-offset:var(--gengage-chat-offset,20px);--_gengage-chat-launcher-bottom:var(--gengage-chat-launcher-bottom,20px);--_gengage-chat-launcher-right:var(--gengage-chat-launcher-right,20px);--_gengage-chat-launcher-size:var(--gengage-chat-launcher-size,56px);--_gengage-chat-drawer-width:var(--gengage-chat-width,400px);--_gengage-chat-radius:var(--gengage-chat-shell-radius,1rem);--_gengage-chat-header-height:var(--gengage-chat-header-height,72px);--_gengage-chat-conversation-width:var(--gengage-chat-conversation-width,396px);--_gengage-chat-panel-min-width:var(--gengage-chat-panel-min-width,320px);--_gengage-chat-panel-max-width:var(--gengage-chat-panel-max-width,1200px);--_gengage-chat-input-height:var(--gengage-chat-input-height,48px);--_gengage-chat-shadow:var(--gengage-chat-shadow,var(--shadow-3));--_gengage-border-color:var(--border-default);--_gengage-discount-color:var(--gengage-discount-color,var(--client-primary));--_gengage-campaign-reason-start:var(--gengage-campaign-reason-color,var(--client-primary));--_gengage-campaign-reason-end:var(--gengage-campaign-reason-color-end,var(--gengage-campaign-reason-color,var(--client-primary)));--_gengage-success-color:var(--success);--_gengage-text-primary:var(--text-primary);--_gengage-text-secondary:var(--text-secondary);--_gengage-surface-secondary:var(--surface-card-soft);--_gengage-surface-muted:var(--surface-card-soft);--_gengage-surface-dark:var(--surface-shell);--_gengage-rating-color:var(--rating);--_gengage-error:var(--error);--_gengage-danger-color:var(--error);--_gengage-ghost-border:var(--gengage-ghost-border,color-mix(in srgb, var(--client-primary) 16%, transparent));position:fixed}.gengage-chat-backdrop{z-index:0;pointer-events:none;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}.gengage-chat-root--open:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:none;background:var(--gengage-chat-float-backdrop,transparent);display:block}.gengage-chat-root--open.gengage-chat-root--maximized-host-chrome:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:auto;background:var(--gengage-chat-float-backdrop,color-mix(in srgb, var(--surface-overlay) 72%, transparent))}.gengage-chat-root.gengage-chat--overlay.gengage-chat-root--open .gengage-chat-backdrop{background:var(--gengage-chat-overlay-backdrop,var(--surface-overlay));pointer-events:auto}.gengage-chat-launcher-container{bottom:var(--_gengage-chat-launcher-bottom);right:var(--_gengage-chat-launcher-right);z-index:var(--gengage-z-index,2147480000);flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed}.gengage-chat-launcher-content-area,.gengage-chat-launcher-content-area-bottom{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.gengage-chat-launcher-content-area:empty,.gengage-chat-launcher-content-area-bottom:empty,.gengage-chat-root--open .gengage-chat-launcher-content-area,.gengage-chat-root--open .gengage-chat-launcher-content-area-bottom{display:none}.gengage-chat-root--open .gengage-chat-launcher-container{pointer-events:none;opacity:0;transition:opacity .2s}.gengage-chat-launcher{width:var(--_gengage-chat-launcher-size);height:var(--_gengage-chat-launcher-size);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:var(--shadow-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;display:flex;position:relative}.gengage-chat-launcher:hover{box-shadow:var(--shadow-3);transform:none}.gengage-chat-launcher svg{width:28px;height:28px}.gengage-chat-launcher--image-mode{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;overflow:hidden}.gengage-chat-launcher--image-mode:hover{box-shadow:none}.gengage-chat-launcher--image-mode img{object-fit:contain;width:100%;height:100%}.gengage-chat-launcher--hidden-mobile{display:none!important}.gengage-chat-launcher-tooltip{border-radius:var(--radius-control);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--shadow-2);padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .2s;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)}.gengage-chat-launcher-tooltip:after{content:"";border:5px solid #0000;border-left-color:var(--surface-shell);position:absolute;top:50%;left:100%;transform:translateY(-50%)}.gengage-chat-launcher:hover .gengage-chat-launcher-tooltip{opacity:1}.gengage-chat-root--open .gengage-chat-launcher-tooltip{display:none}.gengage-chat-drawer{width:var(--_gengage-chat-drawer-width);background:var(--surface-elevated,var(--surface-card));border-left:1px solid var(--border-default);max-height:100dvh;box-shadow:var(--_gengage-chat-shadow);z-index:var(--gengage-z-index,2147480000);opacity:1;border-radius:0;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-launcher-container{right:var(--gengage-chat-launcher-mobile-right,16px);bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + env(safe-area-inset-bottom,0px))}.gengage-chat-root--mobile .gengage-chat-drawer{border:1px solid var(--border-default);width:100%;max-width:none;max-height:100dvh;box-shadow:var(--shadow-3);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-elevated,var(--surface-card));border-bottom:none;border-radius:16px 16px 0 0;bottom:0;left:0;right:0}.gengage-chat-drawer-handle{display:none}.gengage-chat-root--mobile .gengage-chat-drawer-handle{pointer-events:none;z-index:1;justify-content:center;align-items:center;height:14px;display:flex;position:absolute;top:6px;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.gengage-chat-root--mobile .gengage-chat-header button,.gengage-chat-root--mobile .gengage-chat-header a{cursor:pointer;touch-action:auto;-webkit-user-select:auto;user-select:auto}.gengage-chat-root--mobile .gengage-chat-drawer-handle:before{content:"";background:var(--border-strong);pointer-events:none;border-radius:999px;width:36px;height:4px}.gengage-chat-root--mobile.gengage-chat-root--mobile-half .gengage-chat-drawer{height:min(72dvh,620px);max-height:min(72dvh,620px);top:auto}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-drawer{border-radius:0;height:100dvh;max-height:100dvh;top:0}.gengage-chat-root--mobile .gengage-chat-input-area{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-default);transform:translateY(calc(-1 * var(--gengage-keyboard-offset,0px)))}.gengage-chat-header{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--gengage-chat-header-bg,var(--ds-header-bg));color:var(--gengage-chat-header-foreground,var(--ds-header-fg));box-shadow:none;border-bottom:1px solid var(--gengage-chat-header-border-bottom,var(--ds-header-border));z-index:2;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:relative}.gengage-chat-header-left{align-items:center;gap:10px;min-width:0;display:flex}.gengage-chat-header-avatar{background:var(--surface-card-soft);border:1px solid var(--border-default);object-fit:contain;border-radius:999px;flex-shrink:0;width:44px;height:44px}.gengage-chat-header-avatar--logo{object-fit:contain;background:0 0;border:none;border-radius:0;width:auto;max-width:92px;height:45px}.gengage-chat-header-info{flex-direction:column;gap:2px;min-width:0;display:flex}.gengage-chat-header-title-row{align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-header-title{letter-spacing:.01em;color:inherit;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;line-height:1.25;display:block;overflow:hidden}.gengage-chat-header-badge{border-radius:var(--radius-pill);background:var(--ds-badge-brand-bg);min-height:26px;color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:0 10px;font-size:10px;font-weight:800;line-height:1.5;display:inline-flex}.gengage-chat-header-powered{color:var(--ds-header-muted);align-items:center;gap:4px;font-size:11px;line-height:1.2;text-decoration:none;transition:color .15s;display:flex}.gengage-chat-header-powered:hover{color:var(--client-primary)}.gengage-chat-header-powered svg{opacity:.6;flex-shrink:0;width:12px;height:12px}.gengage-chat-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.gengage-chat-header-btn{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;line-height:1;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-header-btn:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-header-btn--fav{position:relative}.gengage-chat-header-btn--reopen-panel,.gengage-chat-root--mobile .gengage-chat-new-chat{display:none}.gengage-chat-header-fav-badge{background:var(--error);min-width:16px;height:16px;color:var(--text-inverse);text-align:center;pointer-events:none;border-radius:999px;padding:0 3px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.gengage-chat-close{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-close:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-body{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.gengage-chat-panel{width:0;transition:width .22s cubic-bezier(.2,.72,.2,1);display:none;overflow:hidden}.gengage-chat-panel--visible{box-sizing:border-box;background:var(--gengage-chat-panel-bg,var(--surface-card));border-right:1px solid var(--border-default);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 24%, transparent) transparent;flex-direction:column;width:440px;min-width:440px;padding:16px;display:flex;position:relative;overflow-y:auto}.gengage-chat-panel--visible::-webkit-scrollbar{width:6px}.gengage-chat-panel--visible::-webkit-scrollbar-track{background:0 0}.gengage-chat-panel--visible::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 24%, transparent);border-radius:3px}.gengage-chat-panel--visible::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-panel-ai-zone{box-sizing:border-box;border-bottom:1px solid var(--border-subtle);flex-shrink:0;width:100%;max-height:min(42vh,320px);margin-bottom:4px;padding:8px 0 12px;overflow:auto}.gengage-chat-panel-ai-zone:has(.gengage-chat-grouping-cards){max-height:min(52vh,520px)}.gengage-chat-panel-ai-zone:has(.gengage-chat-ai-top-picks){max-height:none;overflow:visible}.gengage-chat-panel-ai-zone[hidden]{display:none!important}.gengage-chat-panel-ai-zone-inner{align-items:center;gap:10px;display:flex}.gengage-chat-panel-ai-zone-text{color:var(--text-muted);font-size:13px}.gengage-chat-grouping-section-title{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-section-title{width:100%;color:var(--text-primary);letter-spacing:-.01em;flex-shrink:0;align-self:stretch;margin:0 0 10px;font-size:15px;font-weight:700;display:block}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards{flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;max-height:none;display:flex}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-flow:row;align-items:stretch;gap:10px;width:100%;min-width:0;margin:0 -2px;padding:2px 2px 10px;display:flex;overflow:auto hidden}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card{box-sizing:border-box;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);width:136px;min-width:136px;max-width:150px;box-shadow:var(--shadow-1);flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:12px 10px 14px}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-arrow{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-img{object-fit:cover;border-radius:8px;width:100%;min-width:0;max-width:88px;height:72px;min-height:72px;margin:0 auto}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-body{text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-name{font-size:13px;font-weight:700;line-height:1.25}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:11px;line-height:1.3}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-labels{white-space:normal;text-overflow:unset;justify-content:center;margin-top:2px;line-height:1.35;overflow:visible}.gengage-chat-panel-divider{cursor:pointer;background:var(--_gengage-border-color);z-index:2;flex-shrink:0;align-items:center;width:4px;transition:background .15s;display:flex;position:relative}.gengage-chat-panel-divider:hover{background:var(--border-strong)}.gengage-chat-panel-divider--hidden{display:none}.gengage-chat-panel-divider-toggle{border:1px solid var(--_gengage-border-color);background:var(--surface-card);cursor:pointer;width:28px;height:48px;color:var(--text-secondary);box-shadow:var(--shadow-1);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-toggle:hover{background:var(--surface-card-muted);color:var(--client-primary)}.gengage-chat-panel-divider-preview{pointer-events:none;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:38px;height:192px;box-shadow:var(--shadow-2);z-index:1;border-radius:999px;flex-direction:column;gap:2px;padding:6px 4px;display:none;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-preview:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--surface-shell) 10%, transparent));pointer-events:none;position:absolute;inset:0}.gengage-chat-panel-divider-preview-thumb{border-radius:999px;flex:1 1 0;min-height:0;position:relative;overflow:hidden}.gengage-chat-panel-divider-preview-img{object-fit:cover;filter:grayscale(.55)saturate(.8)brightness(.92);opacity:.9;width:100%;height:100%;transform:scale(1.14)}.gengage-chat-panel.gengage-chat-panel--collapsed{border-right:none;flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider .gengage-chat-panel-divider-toggle{left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider.gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-preview{display:flex;left:50%;transform:translate(-50%,-50%)}.gengage-chat-conversation{background:var(--surface-card);z-index:1;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.gengage-chat-drawer--with-panel{width:auto;box-shadow:none;background:0 0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-header{border-radius:0;flex-shrink:0}.gengage-chat-drawer--with-panel .gengage-chat-body{flex:1 1 0;align-items:stretch;gap:0;min-height:0;padding:0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(var(--_gengage-chat-panel-min-width), 56vw, var(--_gengage-chat-panel-max-width));min-width:var(--_gengage-chat-panel-min-width);max-width:var(--_gengage-chat-panel-max-width);background:var(--gengage-chat-panel-bg,var(--surface-card));box-shadow:none;border-right:none;border-radius:0;flex:none;max-height:100dvh;margin:0;padding:0 16px 16px;overflow-y:auto}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle{background:var(--surface-card);width:20px;height:48px;color:var(--client-primary);border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));box-shadow:var(--shadow-1);z-index:10;border-radius:10px;font-size:12px}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle);color:var(--client-primary)}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle)}.gengage-chat-drawer--with-panel .gengage-chat-conversation{flex:0 0 var(--_gengage-chat-conversation-width);width:var(--_gengage-chat-conversation-width);background:var(--surface-card);box-shadow:var(--shadow-2);border-left:none}.gengage-chat-drawer--with-panel .gengage-chat-messages{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 22%, transparent) transparent;padding-right:6px}.gengage-chat-drawer--with-panel .gengage-chat-messages::-webkit-scrollbar{width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel.gengage-chat-panel--collapsed{flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-drawer--with-panel:has(.gengage-chat-panel--collapsed){width:var(--_gengage-chat-conversation-width);background:var(--surface-elevated,var(--surface-card));box-shadow:var(--_gengage-chat-shadow)}.gengage-chat-drawer--with-panel .gengage-chat-footer{display:none}.gengage-chat-messages{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.gengage-chat-messages::-webkit-scrollbar{width:6px}.gengage-chat-messages::-webkit-scrollbar-track{background:0 0}.gengage-chat-messages::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 22%, transparent);border-radius:3px}.gengage-chat-messages::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-bubble--presentation-collapsed{display:none!important}.gengage-chat-former-messages-btn{z-index:2;border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:color-mix(in srgb, var(--surface-card) 96%, transparent);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-1);flex-shrink:0;align-self:center;margin-bottom:4px;padding:8px 14px;font-size:13px;font-weight:600;position:sticky;top:0}.gengage-chat-former-messages-btn:hover{background:var(--surface-card-muted)}.gengage-chat-bubble{position:relative}@keyframes gengage-chat-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-bubble--user{max-width:85%}.gengage-chat-bubble--assistant{max-width:85%;margin-left:2px}.gengage-chat-bubble--active{outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}.gengage-chat-bubble--assistant:empty{display:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a{color:var(--client-primary);text-decoration:underline}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a:hover{text-decoration:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p{margin:0 0 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p:last-child{margin-bottom:0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text ul,.gengage-chat-bubble--assistant .gengage-chat-bubble-text ol{margin:6px 0;padding-left:20px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text li{margin-bottom:6px;line-height:1.5}.gengage-chat-bubble--assistant .gengage-chat-bubble-text code{background:color-mix(in srgb, var(--text-primary) 8%, transparent);border-radius:6px;padding:1px 4px;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text pre{background:color-mix(in srgb, var(--surface-card) 78%, var(--surface-card-soft));border:1px solid var(--border-subtle);border-radius:12px;margin:4px 0;padding:10px 12px;overflow-x:auto}.gengage-chat-bubble--assistant .gengage-chat-bubble-text table{border-collapse:collapse;margin:4px 0;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text th,.gengage-chat-bubble--assistant .gengage-chat-bubble-text td{border:1px solid var(--border-default);padding:4px 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text img{border-radius:12px;max-width:100%;height:auto;margin:4px 0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text h1,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h2,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h3,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h4,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h5,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h6{color:var(--text-primary);margin:8px 0 4px;line-height:1.3}.gengage-chat-bubble--assistant .gengage-chat-bubble-text blockquote{border-left:3px solid var(--border-default);color:var(--text-secondary);margin:4px 0;padding-left:12px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text{overflow-wrap:break-word}.gengage-chat-bubble--photo-analysis{border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card-soft) 80%, white), var(--surface-card))}.gengage-chat-photo-analysis-card{flex-direction:column;gap:10px;display:flex}.gengage-chat-photo-analysis-badge{letter-spacing:.02em;color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 14%, white);border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default));border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:800}.gengage-chat-photo-analysis-body{flex-direction:column;gap:10px;display:flex}.gengage-chat-photo-analysis-summary{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.gengage-chat-photo-analysis-points{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-next{background:color-mix(in srgb, var(--client-primary) 7%, white);color:var(--text-primary);border-radius:10px;margin:0;padding:8px 10px;font-size:13px;line-height:1.45}.gengage-chat-bubble--first{border-left:1px solid var(--ds-message-assistant-border)}.gengage-chat-bubble--first .gengage-chat-bubble-text{font-size:inherit}@media (width<=768px){.gengage-chat-bubble--assistant .gengage-chat-bubble-text{line-height:1.5}.gengage-chat-bubble--user{word-break:break-word;max-width:calc(100% - 16px)}}.gengage-chat-typing{align-self:flex-start;max-width:85%}.gengage-chat-typing-dots{flex-shrink:0}.gengage-chat-typing-text{flex:1;min-width:0}.gengage-chat-panel-loading-status{margin-bottom:16px}.gengage-chat-panel-loading-status.gds-progress-loader-panel{box-sizing:border-box;min-width:0;max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status.gds-progress-loader-panel{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status .gengage-chat-panel-loading-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-offline-bar{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 22%, var(--border-default));align-items:center;gap:6px;padding:6px 12px;font-size:12px;line-height:1.4;display:none}.gengage-chat-offline-bar--visible{display:flex}.gengage-chat-offline-bar:before{content:"";background:var(--_gengage-rating-color);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.gengage-chat-thinking-steps{flex-direction:column;gap:4px;padding:4px 0;display:flex}.gengage-chat-thinking-step{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.gengage-chat-thinking-step-marker{text-align:center;flex-shrink:0;width:16px;font-size:12px}.gengage-chat-thinking-step-marker--done{color:var(--_gengage-success-color)}.gengage-chat-thinking-step-marker--active{color:var(--ai-accent-start);animation:1.5s ease-in-out infinite gengage-thinking-pulse}@keyframes gengage-thinking-pulse{0%,to{opacity:1}50%{opacity:.4}}.gengage-chat-thinking-step-text{line-height:1.4}.gengage-chat-error{border-radius:var(--radius-control);background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));text-align:center;border:1px solid color-mix(in srgb, var(--error) 22%, var(--border-default));justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.gengage-chat-error-retry{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border-default));border-radius:var(--radius-control);background:var(--surface-card);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));cursor:pointer;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s}.gengage-chat-error-retry:hover{background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 32%, var(--border-default))}.gengage-chat-input-area{border-top:1px solid var(--border-subtle);background:var(--surface-card);z-index:2;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:0;padding:10px 12px 12px;display:flex;position:relative}.gengage-chat-input-pill{background:var(--surface-card);border:1px solid var(--border-default);min-width:0;min-height:52px;box-shadow:none;border-radius:16px;flex:1;align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .2s,box-shadow .2s;display:flex;overflow:visible}.gengage-chat-input-pill:focus-within{border-color:color-mix(in srgb, var(--client-primary) 28%, white);box-shadow:0 0 0 4px var(--client-focus-ring)}.gengage-chat-input{min-width:0;min-height:40px;max-height:120px;color:var(--_gengage-text-primary);resize:none;background:0 0;border:none;border-radius:0;outline:none;flex:1;align-content:center;padding:0;font-family:inherit;font-size:14px;line-height:1.4;overflow-y:hidden}.gengage-chat-root--mobile .gengage-chat-input-pill{min-height:52px;padding:6px 6px 6px 14px}.gengage-chat-root--mobile .gengage-chat-input{white-space:nowrap;min-height:44px;max-height:44px;font-size:16px;overflow:hidden}.gengage-chat-input::placeholder{color:var(--text-muted);font-size:14px;line-height:normal}.gengage-chat-send{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);width:40px;min-width:40px;height:40px;color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;font-weight:700;transition:background-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,transform .15s;display:flex;position:relative}.gengage-chat-send:hover{background:var(--ds-button-primary-bg-hover);box-shadow:none;transform:none}.gengage-chat-send:active{box-shadow:none;transform:translateY(0)}.gengage-chat-send svg{width:18px;height:18px}.gengage-chat-send--stop{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--text-primary)}.gengage-chat-send--stop:hover{background:color-mix(in srgb, var(--surface-card-soft) 86%, var(--client-primary-subtle));border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-send-stop-icon{background:currentColor;border-radius:4px;width:12px;height:12px;display:inline-block}.gengage-chat-send--stop:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:600;line-height:1.2;transition:opacity .16s;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.gengage-chat-send--stop:hover:after,.gengage-chat-send--stop:focus-visible:after{opacity:1}}.gengage-chat-send:disabled{background:var(--ds-neutral-200);border-color:var(--ds-neutral-200);opacity:.5;box-shadow:none;cursor:not-allowed}.gengage-chat-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:4px 10px;font-size:10px}.gengage-chat-uispec{width:100%}.gengage-chat-uispec:empty{display:none}.gengage-chat-uispec>*{animation:.16s cubic-bezier(.2,.7,.2,1) both gengage-chat-widget-enter}@keyframes gengage-chat-widget-enter{0%{opacity:0;transform:translateY(5px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.gengage-chat-action-buttons{flex-wrap:wrap;justify-content:flex-start;gap:8px;padding:6px 0 4px;display:flex}.gengage-chat-action-buttons:after{content:"";flex:1 0 auto}.gengage-chat-action-btn{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-pill,999px);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;white-space:nowrap;flex:none;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700;line-height:1.25;transition:filter .15s,transform .1s}.gengage-chat-action-btn:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-action-btn:active{transform:scale(.97)}.gengage-chat-product-card{border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);background:var(--ds-card-bg);width:160px;min-width:160px;max-width:160px;box-shadow:var(--ds-card-shadow);flex-direction:column;transition:transform .1s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.gengage-chat-product-card:hover{box-shadow:var(--ds-card-shadow-hover);transform:translateY(-2px)}.gengage-chat-product-card-img{object-fit:contain;background:var(--surface-card);box-sizing:border-box;width:100%;height:120px;padding:8px;display:block}.gengage-chat-product-card-body{text-align:center;flex-direction:column;flex:1;gap:4px;padding:8px 10px 10px;display:flex}.gengage-chat-product-card-name{color:var(--_gengage-text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;min-height:2.7em;margin-bottom:0;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-card-brand{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-star-half{display:inline-block;position:relative}.gengage-star-half>span{width:.5em;position:absolute;top:0;left:0;overflow:hidden}.gengage-chat-product-card-review-count{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-price,.gengage-chat-product-card-price-block{color:var(--text-primary);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 6px;font-size:16px;font-weight:800;display:flex}.gengage-chat-product-card-current-price{font:inherit;color:var(--gengage-discounted-price-color,var(--text-primary));font-weight:800}.gengage-chat-product-card-original-price{color:var(--_gengage-text-secondary);margin-right:0;font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-campaign-reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0 0 4px;font-size:11px;font-weight:700;line-height:1.25}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.gengage-chat-campaign-reason,.gengage-chat-campaign-price-badge__reason{color:var(--_gengage-campaign-reason-start);background:0 0}}.gengage-chat-product-card-price-stack{flex-direction:column;align-items:flex-start;width:100%;min-width:0;display:flex}.gengage-chat-product-card-price-row{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-card-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.95em;margin:0 1px;display:inline-block}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-original-price{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:16px;font-weight:500;text-decoration:none}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:16px;font-weight:800}.gengage-chat-product-card-meta-row{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:8px;width:100%;min-height:34px;display:flex}.gengage-chat-product-card-meta-row--empty{visibility:hidden}.gengage-chat-product-card-rating-compact{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-product-card-rating-compact-value{font-variant-numeric:tabular-nums;color:var(--text-primary)}.gengage-chat-product-card-img-actions{z-index:4;pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-product-card-img-actions>*{pointer-events:auto}.gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{position:static}.gengage-chat-price-skeleton{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);vertical-align:middle;background-size:200% 100%;border-radius:4px;width:80px;height:16px;animation:1.5s ease-in-out infinite gengage-skeleton-price-pulse;display:inline-block}@keyframes gengage-skeleton-price-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-product-card-cta{text-align:center;color:var(--client-primary);letter-spacing:.01em;border-top:1px solid var(--border-default);cursor:pointer;background:0 0;margin-top:auto;padding:8px 10px;font-size:12px;font-weight:700;text-decoration:none;transition:color .15s,background .15s;display:block}.gengage-chat-product-card-cta:hover{color:var(--client-primary-hover);background:var(--surface-card-soft)}.gengage-chat-product-card-cta:active{background:var(--surface-card-soft)}button.gengage-chat-product-card-cta{appearance:none;font:inherit;box-sizing:border-box;border-bottom:none;border-left:none;border-right:none;width:100%;margin:0}.gengage-chat-product-summary{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0;padding:10px 12px;transition:background .15s,box-shadow .15s,border-color .15s;display:flex}.gengage-chat-product-summary:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-product-summary__image{border-radius:var(--radius-control);border:1px solid var(--border-subtle);background:var(--surface-card-soft);flex-shrink:0;width:64px;height:64px;overflow:hidden}.gengage-chat-product-summary__image img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-product-summary__content{flex-direction:column;flex:180px;gap:2px;min-width:0;display:flex}.gengage-chat-product-summary__name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-product-summary__rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-chat-product-summary__review-count{color:var(--text-secondary);font-size:11px}.gengage-chat-product-summary__price{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:600;line-height:1}.gengage-chat-product-summary__price-original{color:var(--_gengage-text-secondary);font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-product-summary__price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:2px;display:flex}.gengage-chat-product-summary__price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-product-summary__price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-summary__price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.9em;margin:0 1px;display:inline-block}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-original{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:13px;font-weight:500;text-decoration:none}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:13px;font-weight:700}.gengage-chat-product-summary__cta{color:var(--client-primary);border-radius:var(--radius-pill);background:var(--client-primary-subtle);white-space:nowrap;flex-shrink:0;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.gengage-chat-product-summary__cta:hover{background:var(--client-primary-soft)}.gengage-chat-product-summary__cta:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-grid{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;gap:12px;min-height:180px;padding:8px 16px 8px 0;display:flex;overflow-x:auto}.gengage-chat-product-grid>*{scroll-snap-align:start;flex:none}.gengage-chat-product-grid::-webkit-scrollbar{display:none}.gengage-chat-review-highlights{padding:4px 0 8px}.gengage-chat-review-empty{color:var(--_gengage-text-secondary);font-size:12px}.gengage-chat-review-subjects-heading{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:700}.gengage-chat-review-subjects{margin-bottom:12px}.gengage-chat-review-subject{color:var(--text-primary);box-shadow:none;gap:6px;padding:7px 11px;font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-review-subject--active{border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}.gengage-chat-review-subject-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.gengage-chat-review-subject-icon svg{width:14px;height:14px;display:block}.gengage-chat-review-subject[data-tone=positive] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-review-subject[data-tone=negative] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--error) 84%, var(--text-primary))}.gengage-chat-review-subject[data-tone=neutral] .gengage-chat-review-subject-icon{color:var(--text-secondary)}.gengage-chat-review-subject-label{color:inherit}.gengage-chat-review-subject-count{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-review-detail{padding:12px}.gengage-chat-review-detail-meta{flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-bottom:10px;display:flex}.gengage-chat-review-detail-mentions{color:var(--_gengage-text-primary);font-size:13px;font-weight:700}.gengage-chat-review-detail-positive{color:var(--_gengage-success-color);font-size:13px;font-weight:700}.gengage-chat-review-detail-negative{color:var(--error);font-size:13px;font-weight:700}.gengage-chat-review-snippets{gap:10px;display:grid}.gengage-chat-review-snippet{border:1px solid var(--border-subtle);border-left:3px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card-soft);padding:8px 10px}.gengage-chat-review-snippet[data-tone=positive]{border-left-color:color-mix(in srgb, var(--success) 40%, var(--border-default))}.gengage-chat-review-snippet[data-tone=negative]{border-left-color:color-mix(in srgb, var(--error) 40%, var(--border-default))}.gengage-chat-review-snippet-text{color:var(--_gengage-text-primary);font-size:13px;line-height:1.4}.gengage-chat-review-snippet-rating{color:var(--text-secondary);margin-top:4px;font-size:12px;font-weight:700}.gengage-chat-favorites-page{padding:12px}.gengage-chat-favorites-empty{text-align:center;color:var(--_gengage-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.gengage-chat-favorites-empty-icon{opacity:.25;color:var(--error)}.gengage-chat-favorites-empty p{margin:0;font-size:13px;line-height:1.5}.gengage-chat-favorites-list{flex-direction:column;gap:10px;display:flex}.gengage-chat-favorites-card{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-1);align-items:center;gap:12px;padding:10px 12px;transition:opacity .2s,transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative}.gengage-chat-favorites-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-favorites-card--removing{opacity:0;transform:translate(8px)}.gengage-chat-favorites-card__image{border-radius:var(--radius-control);background:var(--surface-card-muted);flex-shrink:0;width:56px;height:56px;overflow:hidden}.gengage-chat-favorites-card__image img{object-fit:contain;width:100%;height:100%}.gengage-chat-favorites-card__info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.gengage-chat-favorites-card__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.gengage-chat-favorites-card__price{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-favorites-remove{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--error);cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,background .15s;display:inline-flex}.gengage-chat-favorites-remove:hover{opacity:1;background:color-mix(in srgb, var(--error) 10%, white)}.gengage-chat-divider{border:none;border-top:1px solid var(--_gengage-border-color);margin:8px 0}.gengage-chat-divider-wrapper{align-items:center;gap:8px;margin:8px 0;display:flex}.gengage-chat-divider-wrapper hr{border:none;border-top:1px solid var(--_gengage-border-color);flex:1;margin:0}.gengage-chat-divider-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.gengage-chat--overlay .gengage-chat-drawer{border-radius:0;width:100%;max-width:480px;max-height:100%;margin:0 auto;animation:.24s cubic-bezier(.2,.72,.2,1) gengage-chat-overlay-in;position:fixed;inset:0}@keyframes gengage-chat-overlay-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-panel-skeleton{box-sizing:border-box;flex-direction:column;gap:14px;min-width:0;max-width:100%;padding:6px 0;display:flex}.gengage-chat-panel-skeleton-block{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;border-radius:10px;height:110px;animation:1.4s infinite gengage-panel-shimmer}@keyframes gengage-panel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-panel-skeleton-block--image{border-radius:8px;height:200px;margin-bottom:12px}.gengage-chat-panel-skeleton-block--text{border-radius:4px;height:16px;margin-bottom:8px}.gengage-chat-panel-skeleton-block--text:nth-child(3){width:80%}.gengage-chat-panel-skeleton-block--text:nth-child(4){width:60%}.gengage-chat-panel-skeleton-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gengage-chat-panel-skeleton-block--card{border-radius:8px;height:120px}.gengage-chat-panel-skeleton--comparison{gap:0;padding:0}.gengage-chat-panel-skeleton--comparison .gengage-chat-panel-loading-status{margin:0;padding:16px 16px 0}.gengage-chat-comparison--skeleton{pointer-events:none;box-sizing:border-box;width:100%}.gengage-chat-comparison-skeleton-shimmer{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;animation:1.4s infinite gengage-panel-shimmer}.gengage-chat-comparison-skeleton-rec-label{border-radius:4px;width:132px;height:12px;margin-bottom:12px}.gengage-chat-comparison-skeleton-rec-img{border-radius:8px;flex-shrink:0;width:80px;height:80px}.gengage-chat-comparison-skeleton-rec-title{border-radius:4px;max-width:100%;height:14px;margin-bottom:6px}.gengage-chat-comparison-skeleton-rec-title--short{width:72%;margin-bottom:8px}.gengage-chat-comparison-skeleton-rec-price{border-radius:4px;width:112px;height:18px}.gengage-chat-comparison-skeleton-hl-label{border-radius:4px;width:96px;height:12px;margin-bottom:6px}.gengage-chat-comparison-skeleton-hl-list{margin:0;padding-left:18px;list-style:none}.gengage-chat-comparison-skeleton-hl-list li{margin-bottom:8px}.gengage-chat-comparison-skeleton-hl-list li:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-hl-line{border-radius:4px;width:100%;height:13px}.gengage-chat-comparison-skeleton-hl-line--medium{width:92%}.gengage-chat-comparison-skeleton-hl-line--short{width:78%}.gengage-chat-comparison-skeleton-kd-heading{border-radius:4px;width:42%;height:14px;margin:0 0 8px}.gengage-chat-comparison-skeleton-kd-line{border-radius:4px;max-width:100%;height:13px;margin-bottom:8px}.gengage-chat-comparison-skeleton-kd-line:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-kd-line:nth-child(odd){width:100%}.gengage-chat-comparison-skeleton-kd-line:nth-child(2n){width:90%}.gengage-chat-comparison-special--skeleton{cursor:default;align-items:center;min-height:44px;display:flex}.gengage-chat-comparison-skeleton-special-line{border-radius:4px;width:56%;max-width:280px;height:14px}.gengage-chat-comparison-skeleton-table-wrap{border:1px solid var(--border-default);background:var(--surface-card);-webkit-overflow-scrolling:touch;border-radius:8px;margin-top:12px;overflow-x:auto}.gengage-chat-comparison-skeleton-table-head,.gengage-chat-comparison-skeleton-table-row{grid-template-columns:72px repeat(3,minmax(0,1fr));align-items:start;gap:8px;padding:10px 12px;display:grid}.gengage-chat-comparison-skeleton-table-head{border-bottom:1px solid var(--_gengage-surface-muted);background:var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-corner{min-height:92px}.gengage-chat-comparison-skeleton-table-col{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-comparison-skeleton-table-th-img{border-radius:6px;flex-shrink:0;width:60px;height:60px}.gengage-chat-comparison-skeleton-table-th-name{border-radius:3px;width:100%;max-width:100%;height:11px}.gengage-chat-comparison-skeleton-table-th-price{border-radius:3px;width:64%;height:13px}.gengage-chat-comparison-skeleton-table-row{border-bottom:1px solid var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-row:last-child{border-bottom:none}.gengage-chat-comparison-skeleton-table-label{border-radius:3px;align-self:center;width:100%;max-width:56px;height:12px}.gengage-chat-comparison-skeleton-table-cell{border-radius:3px;width:100%;height:14px}.gengage-chat-panel-skeleton-block--row{border-radius:4px;height:32px;margin-bottom:4px}.gengage-chat-panel .gengage-chat-product-card{border-radius:var(--radius-card);border:1px solid var(--border-default);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-1);background:var(--surface-card);flex-direction:column;padding:0;display:flex;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-2px)}.gengage-chat-panel .gengage-chat-product-card-img-actions{gap:6px;top:10px;right:10px}.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{border-radius:8px;width:28px;height:28px}.gengage-chat-panel .gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--client-primary);min-width:36px;height:36px;color:var(--client-on-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex;top:10px;left:10px}.gengage-chat-panel .gengage-chat-product-card-brand{display:none}.gengage-chat-panel .gengage-chat-product-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;min-height:auto;padding:4px 0;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:auto;padding:6px 0 10px;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile .gengage-chat-product-card{box-sizing:border-box;width:100%;min-width:0;max-width:none}.gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;background:var(--surface-card-muted);border-radius:var(--radius-card) var(--radius-card) 0 0;flex-shrink:0;width:100%;position:relative;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card-img{border-radius:inherit;object-fit:cover;object-position:center;box-sizing:border-box;background:0 0;width:100%;height:100%;min-height:0;padding:0;display:block}.gengage-chat-panel .gengage-chat-product-card-body{text-align:left;gap:8px;padding:12px 14px 10px}.gengage-chat-panel .gengage-chat-product-card-meta-row{align-items:center;min-height:38px;margin-bottom:0}.gengage-chat-panel .gengage-chat-product-card-price,.gengage-chat-panel .gengage-chat-product-card-price-block{color:var(--text-primary);justify-content:flex-start;font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-original-price{color:var(--text-muted);font-size:12px;font-weight:400}.gengage-chat-panel .gengage-chat-product-card-rating-compact{font-size:11px;font-weight:700}.gengage-chat-panel .gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 58%, var(--text-primary))}.gengage-chat-panel .gengage-chat-product-card-name{min-height:0;color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.35}.gengage-chat-panel .gengage-chat-product-card-buy-footer{flex-shrink:0;min-width:0;margin-top:auto;padding:0 14px 16px;display:flex;position:relative}.gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;border:1.5px solid var(--client-primary);background:var(--surface-card);width:100%;min-width:0;min-height:42px;color:var(--client-primary);white-space:nowrap;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin:0;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;transition:background .15s,box-shadow .15s;display:flex}.gengage-chat-panel .gengage-chat-product-card-buy-trigger:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);box-shadow:var(--shadow-1)}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{border:1.5px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 28px);min-width:0;color:var(--client-primary);box-sizing:border-box;border-radius:12px;justify-content:center;align-items:center;min-height:42px;margin:0 14px 16px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta:hover{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-product-card--selected{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, transparent);box-shadow:0 0 0 1px var(--client-primary)}.gengage-chat-panel--visible{min-height:0}.gengage-chat-panel--visible>*{flex-shrink:0}.gengage-chat-load-more-btn{border:1px solid var(--border-default);color:var(--client-primary);cursor:pointer;background:0 0;border-radius:8px;margin:12px auto;padding:8px 24px;font-size:14px;display:block}.gengage-chat-load-more-btn:hover{background:var(--surface-card-muted)}.gengage-chat-product-details-panel{background:var(--surface-card);border:1px solid var(--border-default);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:12px;width:100%;padding:14px;display:flex}.gengage-chat-product-details-media{border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;flex-direction:column;align-items:center;padding:12px;display:flex}.gengage-chat-product-details-img{object-fit:contain;border-radius:8px;width:100%;height:auto;max-height:300px}.gengage-chat-product-details-content{flex-direction:column;gap:8px;min-width:0;display:flex}.gengage-chat-product-details-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700;line-height:1.3}.gengage-chat-product-details-rating{background:color-mix(in srgb, var(--warning) 10%, white);width:fit-content;color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-product-details-review-count{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));font-weight:600}.gengage-chat-product-details-price{align-items:baseline;gap:6px;display:flex}.gengage-chat-product-details-original-price{color:var(--text-secondary);font-size:14px;text-decoration:line-through}.gengage-chat-product-details-price-stack{flex-direction:column;align-items:flex-start;gap:2px;width:100%;display:flex}.gengage-chat-product-details-price-stack .gengage-chat-campaign-reason{margin-bottom:2px;font-size:13px;font-weight:600}.gengage-chat-product-details-price--inline{flex-wrap:nowrap;align-items:baseline}.gengage-chat-product-details-price--inline .gengage-chat-product-details-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:1em;margin:0 4px;display:inline-block}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{color:var(--text-secondary);order:0;font-size:22px;font-weight:500;text-decoration:none}.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));order:0;font-size:22px;font-weight:800}.gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:22px;font-weight:800;line-height:1.1}.gengage-chat-product-details-stock{border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:700}.gengage-chat-product-details-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-details-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-product-details-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.gengage-chat-product-details-cta{border-radius:var(--radius-control,12px);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;transition:filter .14s,transform .12s;display:inline-flex}.gengage-chat-product-details-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-product-details-cta:active{background:var(--ds-button-primary-bg-active)}.gengage-chat-product-details-atc{border-radius:var(--radius-control);background:var(--_gengage-success-color);color:var(--client-on-primary);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:filter .12s,transform .12s;display:inline-flex}.gengage-chat-product-details-atc:hover{filter:brightness(1.08);transform:translateY(-1px)}.gengage-chat-product-details-atc:active{transform:translateY(1px)}.gengage-chat-product-detail-tabs{border-top:1px solid var(--border-default);margin-top:4px;padding-top:12px}.gengage-chat-product-detail-tab-bar{border-bottom:1px solid var(--border-default);gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.gengage-chat-product-detail-tab{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.gengage-chat-product-detail-tab:hover{color:var(--text-primary);background:color-mix(in srgb, var(--surface-card-soft) 82%, transparent)}.gengage-chat-product-detail-tab--active{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-product-detail-tab-panel{color:var(--text-secondary);font-size:13px;line-height:1.6}.gengage-chat-product-description{color:var(--text-primary);flex-direction:column;gap:10px;display:flex}.gengage-chat-product-description p,.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4,.gengage-chat-product-description ul,.gengage-chat-product-description ol{margin:0}.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4{color:var(--text-primary);font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-product-description ul,.gengage-chat-product-description ol{padding-left:20px}.gengage-chat-product-description li+li{margin-top:6px}.gengage-chat-product-description strong,.gengage-chat-product-description b{font-weight:800}.gengage-chat-product-specs-table{border-collapse:collapse;width:100%;font-size:13px}.gengage-chat-product-specs-table tr:nth-child(2n){background:var(--surface-card-muted)}.gengage-chat-product-specs-key{color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid var(--border-subtle);width:40%;padding:6px 10px;font-weight:600}.gengage-chat-product-specs-value{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:6px 10px}.gengage-chat-product-card-atc{opacity:0;z-index:1;transition:opacity .15s;position:absolute;bottom:42px;right:6px}.gengage-chat-product-card:hover .gengage-chat-product-card-atc{opacity:1}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-atc{opacity:1;width:100%;margin:0;display:flex;position:relative;bottom:auto;right:auto}}.gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translateY(100%)}@media (width<=900px){.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(280px, calc(100vw - var(--_gengage-chat-conversation-width)), 560px);max-width:560px}}.gengage-chat-attachment-preview{background:var(--surface-card-muted);border:1px solid var(--border-default);box-sizing:border-box;border-radius:8px;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.gengage-chat-attachment-preview--hidden{display:none}.gengage-chat-attachment-preview-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:40px;height:40px}.gengage-chat-attachment-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.gengage-chat-attachment-remove{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.gengage-chat-attachment-remove:hover{color:var(--error)}.gengage-chat-attach-btn{background:var(--surface-card-soft);border:1px solid var(--border-default);cursor:pointer;width:40px;height:40px;color:var(--text-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s,border-color .15s;display:flex}.gengage-chat-attach-btn:hover{color:var(--client-primary);background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-attach-btn svg{width:20px;height:20px}.gengage-chat-attach-wrap{flex-shrink:0;align-items:center;display:flex;position:relative}.gengage-chat-attach-menu{z-index:50;background:var(--surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-card);min-width:196px;box-shadow:var(--shadow-3);margin:0;padding:4px 0;list-style:none;position:absolute;bottom:calc(100% + 8px);left:0}.gengage-chat-attach-menu[hidden]{display:none!important}.gengage-chat-attach-menu-item{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;transition:background .12s;display:flex}.gengage-chat-attach-menu-item:hover{background:var(--surface-card-muted)}.gengage-chat-attach-menu-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-attach-menu-label{flex:1;min-width:0}.gengage-chat-attach-menu-sep{background:var(--border-default);height:1px;margin:4px 10px}.gengage-chat-mic-btn{cursor:pointer;border-radius:var(--radius-control);width:32px;height:32px;color:var(--text-secondary);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s;display:flex}.gengage-chat-mic-btn:hover{color:var(--text-primary);background:var(--surface-card-muted);border-color:var(--border-default)}.gengage-chat-mic-btn svg{width:20px;height:20px}.gengage-chat-mic-btn--active{color:var(--error);animation:1.2s ease-in-out infinite gengage-mic-pulse}.gengage-chat-mic-btn--active:hover{color:color-mix(in srgb, var(--error) 84%, black)}@keyframes gengage-mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}.gengage-chat-input-area--dragover{outline:2px dashed var(--client-primary);outline-offset:-2px;background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-attachment-thumb{border-radius:8px;width:120px;max-width:100%;height:auto;margin-bottom:6px;display:block}.gengage-chat-root--mobile .gengage-chat-header-btn,.gengage-chat-root--mobile .gengage-chat-close{border-radius:12px;width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn,.gengage-chat-root--mobile .gengage-chat-mic-btn,.gengage-chat-root--mobile .gengage-chat-send{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn svg,.gengage-chat-root--mobile .gengage-chat-mic-btn svg{width:22px;height:22px}.gengage-chat-root--mobile .gengage-chat-panel-divider{cursor:ns-resize;touch-action:pan-y;background:0 0;justify-content:center;align-items:center;width:100%;height:20px;display:flex;position:relative;overflow:visible}.gengage-chat-root--mobile .gengage-chat-panel-divider--hidden{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel{border-radius:0;width:100%;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-panel{z-index:10;width:100%;min-width:0;max-width:none;max-height:none;box-shadow:none;background:var(--gengage-chat-panel-bg,var(--surface-card));pointer-events:none;border:none;border-radius:0;flex-direction:column;padding:0 12px 16px;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0;overflow-y:auto;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-panel--visible{pointer-events:auto;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-panel-divider,.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-panel-divider{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-body{flex-direction:row}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-conversation{border-left:none;flex:1;width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-cta{box-sizing:border-box;width:100%;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-panel{gap:8px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:0;padding:8px}.gengage-chat-root--mobile .gengage-chat-product-details-content{gap:6px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:14px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-product-details-rating{padding:2px 6px;font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-original-price{font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{gap:6px;margin-top:2px}.gengage-chat-root--mobile .gengage-chat-product-details-cta{min-height:38px;padding:0 14px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-product-grid:not(.gengage-chat-product-grid--mobile){scroll-snap-type:x mandatory}.gengage-chat-root--mobile .gengage-chat-product-grid.gengage-chat-product-grid--mobile{scroll-snap-type:none}.gengage-chat-root--mobile .gengage-chat-product-card{box-sizing:border-box;scroll-snap-align:center;width:280px;min-width:280px;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-grid--mobile .gengage-chat-product-card{scroll-snap-align:start;width:100%;min-width:0;max-width:none}.gengage-chat-root--mobile .gengage-chat-product-card-img-wrapper{justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:180px;display:block}.gengage-chat-root--mobile .gengage-chat-product-card-discount-badge{padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-drawer{border-radius:0;width:100%;max-height:100%;position:fixed;inset:0}.gengage-chat-root--mobile .gengage-chat-bubble{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:min(200px,72%)}.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{flex-shrink:0;width:28px;min-width:28px;height:28px;min-height:28px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-discount-badge{min-width:28px;height:28px;padding:0 6px;font-size:10px;font-weight:700}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer{padding:0 12px 14px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;white-space:normal;text-align:center;-webkit-hyphens:auto;hyphens:auto;min-width:0;max-width:100%;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{box-sizing:border-box;white-space:normal;width:calc(100% - 24px);min-width:0;max-width:calc(100% - 24px);margin-left:12px;margin-right:12px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-rating-compact{gap:3px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-stock{padding:2px 5px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-messages{scrollbar-width:none;padding:12px 16px}.gengage-chat-root--mobile .gengage-chat-messages::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-drawer{border-top:none}.gengage-chat-root--mobile .gengage-chat-header{border-radius:16px 16px 0 0;min-height:72px;padding-top:22px;padding-bottom:8px}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-header{border-radius:0}.gengage-chat-root--mobile .gengage-chat-conversation{-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-product-details-img{object-fit:contain;min-height:0;max-height:200px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{flex-wrap:wrap;gap:8px}.gengage-chat-root--mobile .gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px}.gengage-chat-root--mobile .gengage-chat-input::placeholder{font-size:13px}.gengage-chat-kvkk-banner{background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));align-items:flex-start;gap:8px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.gengage-chat-kvkk-content{flex:1;min-width:0}.gengage-chat-kvkk-content a{color:color-mix(in srgb, var(--warning) 82%, var(--text-primary));text-decoration:underline}.gengage-chat-kvkk-dismiss{width:20px;height:20px;color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}.gengage-chat-comparison{box-sizing:border-box;flex-direction:column;gap:12px;padding:16px;display:flex}.gengage-chat-comparison-heading{letter-spacing:.05em;color:var(--text-primary);margin:0 0 16px;font-size:14px;font-weight:700}.gengage-chat-comparison-recommended{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);padding:16px}.gengage-chat-comparison-recommended-label{color:var(--client-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px;font-weight:700}.gengage-chat-comparison-recommended-body{grid-template-columns:minmax(108px,148px) minmax(0,1fr);align-items:flex-start;gap:16px;display:grid}.gengage-chat-comparison-recommended-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:14px;justify-content:center;align-items:center;display:flex;overflow:hidden}.gengage-chat-comparison-recommended-body img,.gengage-chat-comparison-recommended-placeholder{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:8px}.gengage-chat-comparison-recommended-placeholder{background:var(--surface-card-muted)}.gengage-chat-comparison-recommended-info{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.gengage-chat-comparison-recommended-title{color:var(--text-primary);margin:0;font-size:24px;font-weight:800;line-height:1.2}.gengage-chat-comparison-recommended-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gengage-chat-comparison-recommended-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:color-mix(in srgb, var(--warning) 78%, var(--text-primary));border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-comparison-recommended-rating-value{color:var(--text-primary)}.gengage-chat-comparison-recommended-price{color:var(--text-primary);font-size:20px;font-weight:700}.gengage-chat-comparison-highlights{border-top:1px solid var(--border-subtle);padding-top:12px}.gengage-chat-comparison-highlights-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-comparison-highlights ul{color:var(--text-primary);margin:0;padding-left:18px;font-size:14px;line-height:1.55}.gengage-chat-comparison-special{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));border-radius:var(--radius-card);color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin-bottom:12px;padding:12px 16px;font-size:13px}.gengage-chat-comparison-special summary{cursor:pointer;font-weight:600}.gengage-chat-comparison-special ul{margin:8px 0 0;padding-left:18px;line-height:1.6}.gengage-chat-comparison-table{border-collapse:collapse;background:var(--surface-card);width:100%;font-size:13px}.gengage-chat-comparison-table th,.gengage-chat-comparison-table td{text-align:center;border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:10px 12px}.gengage-chat-comparison-table th{color:var(--text-secondary);font-size:12px;font-weight:600}.gengage-chat-comparison-table thead th:not(:first-child){vertical-align:top}.gengage-chat-comparison-table-header-cell{box-sizing:border-box;grid-template-rows:auto 1fr auto;place-items:start center;gap:6px;height:100%;min-height:0;display:grid}.gengage-chat-comparison-table-header-cell--clickable{cursor:pointer;border-radius:var(--radius-control);padding:6px;transition:background .16s,box-shadow .16s,transform .16s}.gengage-chat-comparison-table-header-cell--clickable:hover{background:var(--surface-card-soft);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-comparison-table-header-cell--clickable:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-comparison-table-header-cell img{object-fit:contain;border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-header-img-placeholder{border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-product-name{width:100%;min-width:0;color:var(--text-secondary);text-align:center;-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;align-self:start;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-comparison-table-price{color:var(--text-primary);text-align:center;width:100%;font-weight:700}.gengage-chat-comparison-label{text-align:left;color:var(--text-secondary);white-space:nowrap;font-weight:600}.gengage-chat-comparison-selected{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-comparison-recommended-text{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.gengage-chat-comparison-key-differences{border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card-muted)}.gengage-chat-comparison-key-differences-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:700;list-style:none;display:flex}.gengage-chat-comparison-key-differences-summary::-webkit-details-marker{display:none}.gengage-chat-comparison-key-differences-summary-label{color:var(--text-primary)}.gengage-chat-comparison-key-differences-summary-meta{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-comparison-key-differences[open] .gengage-chat-comparison-key-differences-summary-meta{opacity:0}.gengage-chat-comparison-key-differences-content{color:var(--text-primary);padding:0 16px 16px;font-size:14px;line-height:1.7}.gengage-chat-comparison-key-differences-content ul,.gengage-chat-comparison-key-differences-content ol{margin:0;padding-left:20px}.gengage-chat-comparison-key-differences-content li+li{margin-top:8px}@media (width<=960px){.gengage-chat-comparison-recommended-body{grid-template-columns:1fr}.gengage-chat-comparison-recommended-title{font-size:20px}}.gengage-chat-pills{border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:8px 12px 6px;position:relative}.gengage-chat-pills-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-right:28px;display:flex;overflow-x:auto}.gengage-chat-pills-scroll::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-pills-scroll{flex-wrap:wrap;gap:6px}.gengage-chat-root--mobile .gengage-chat-pill{white-space:normal;max-width:100%}.gengage-chat-pill{border:1px solid var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.gengage-chat-pill:hover{background:color-mix(in srgb, var(--client-primary) 12%, white);border-color:color-mix(in srgb, var(--client-primary) 36%, white)}.gengage-chat-pill:active{transform:none}.gengage-chat-pill--rich{border-radius:18px;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:flex}.gengage-chat-pill-img{object-fit:cover;background:var(--surface-card);border-radius:12px;flex-shrink:0;width:32px;height:32px}.gengage-chat-pill-text{font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-pill-desc{display:none}.gengage-chat-pill--rich .gengage-chat-pill-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;font-weight:500;display:block;overflow:hidden}.gengage-chat-pills-arrow{border:1px solid var(--border-default);background:var(--surface-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-1);z-index:1;border-radius:12px;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.gengage-chat-pills-arrow:hover{background:var(--surface-card-soft);color:var(--client-primary)}@media (prefers-reduced-motion:reduce){.gengage-chat-uispec>*,.gengage-chat-action-btn,.gengage-chat-product-card,.gengage-chat-product-card-cta,.gengage-chat-send,.gengage-chat-launcher,.gengage-chat-pill,.gengage-chat-drawer,.gengage-chat-typing-dots span,.gengage-chat-thinking-step-marker--active,.gengage-chat-bubble,.gengage-chat-panel-skeleton-block,.gengage-chat-ai-toppick-card,.gengage-chat-mic-btn--active,.gengage-chat-ai-toppick-spinner:after,.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price,.gengage-chat-cart-toast,.gengage-chat-header-btn--cart-flash{transition:none!important;animation:none!important;transform:none!important}}.gengage-chat-bubble--user{position:relative}.gengage-chat-rollback-btn{border-radius:var(--radius-pill);background:var(--surface-card-muted);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;opacity:0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:50%;left:-28px;transform:translateY(-50%)}.gengage-chat-bubble--user:hover .gengage-chat-rollback-btn{opacity:1}.gengage-chat-rollback-btn:hover{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-bubble--hidden{display:none}.gengage-chat-ai-top-picks{flex-direction:column;gap:12px;padding:8px 0;scroll-margin-top:60px;display:flex}.gengage-chat-ai-top-picks-title{color:var(--text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:10px;min-width:0;display:flex}.gengage-chat-ai-top-picks-rest,.gengage-chat-ai-toppick-top-row{display:contents}.gengage-chat-ai-toppick-detail{width:100%;min-width:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks{gap:0;padding-top:4px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-title{flex-shrink:0;width:100%;margin:0 0 10px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,auto);align-items:stretch;gap:12px;margin:0;padding:12px 0;display:grid;overflow:visible}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex:initial;scroll-snap-align:none;width:100%;min-width:0;max-width:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child{grid-column:1/-1;grid-template-rows:auto auto;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:12px 18px;display:grid}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail){grid-template-rows:auto auto auto}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex-direction:column;align-items:stretch}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-media{aspect-ratio:4/3;grid-area:1/1/span 2;max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-media{grid-row:1/span 3}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-detail{grid-area:2/2;min-width:0;padding-top:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;flex-shrink:0;width:100%;height:100%;max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-img{max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-height:0;padding:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-body{grid-area:1/2;padding-top:6px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-cta{grid-row:3}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:calc(100% - 24px);color:var(--ds-button-secondary-fg);align-self:stretch;margin:14px 12px 12px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:auto;min-width:180px;color:var(--ds-button-secondary-fg);grid-area:2/2;place-self:end start;margin:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-secondary-bg-hover);filter:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.gengage-chat-ai-toppick-rating-icon{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-ai-toppick-rating-value{color:var(--text-primary)}.gengage-chat-ai-toppick-media .gengage-chat-ai-toppick-discount-badge{background:var(--client-primary);color:var(--client-on-primary);z-index:1;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:800;line-height:1.2;position:absolute;top:4px;left:4px;right:auto}.gengage-chat-ai-toppick-card--winner,.gengage-chat-ai-toppick-card--compact{box-sizing:border-box;border-radius:var(--radius-card);background:var(--surface-card);flex-direction:column;align-items:stretch;padding:12px;transition:box-shadow .2s,background .15s,transform .15s;display:flex;position:relative;overflow:visible}.gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-ai-toppick-card--winner:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default)}.gengage-chat-ai-toppick-card--compact:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-ai-toppick-badge{z-index:2;box-sizing:border-box;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;white-space:normal;border-radius:999px;max-width:calc(100% - 24px);padding:2px 10px;font-size:10px;font-weight:700;line-height:1.25;position:absolute;top:-10px;left:12px}.gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-badge{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:100%;margin-top:4px;margin-bottom:8px;display:flex;position:relative;overflow:hidden}.gengage-chat-ai-toppick-img{object-fit:contain;box-sizing:border-box;width:auto;max-width:100%;height:auto;max-height:100%;padding:4px}.gengage-chat-ai-toppick-body{flex-direction:column;flex:1;gap:0;min-width:0;padding:0;display:flex}.gengage-chat-ai-toppick-name{color:var(--text-primary);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:14px;font-weight:700;line-height:1.375;display:-webkit-box;overflow:hidden}.gengage-chat-ai-toppick-role{color:var(--client-primary);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.gengage-chat-ai-toppick-labels{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.gengage-chat-ai-toppick-label{border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}.gengage-chat-ai-toppick-label[data-sentiment=positive]{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=negative]{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=neutral]{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-reason{color:var(--text-secondary);margin:10px 0 0;font-size:13px;line-height:1.5}.gengage-chat-ai-toppick-review{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-primary);border-radius:14px;margin-top:10px;padding:10px 12px;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-snippet{color:var(--text-secondary);margin:8px 0 0;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-price{color:var(--text-primary);margin-top:4px;font-size:14px;font-weight:700}.gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-ai-toppick-original-price{color:var(--text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.gengage-chat-ai-toppick-price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px;display:flex}.gengage-chat-ai-toppick-price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-campaign-price-badge{box-sizing:border-box;border-radius:var(--radius-control,10px);background-image:linear-gradient(var(--gengage-campaign-price-badge-fill,#fff) 0 0), linear-gradient(135deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));background-origin:border-box;background-clip:padding-box,border-box;border:1px solid #0000;flex-direction:row;align-items:center;gap:10px;max-width:100%;padding:10px 12px;display:inline-flex}.gengage-chat-campaign-price-badge__logo{flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-campaign-price-badge__logo img{object-fit:contain;width:auto;max-width:72px;height:auto;max-height:32px;display:block}.gengage-chat-campaign-price-badge__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-campaign-price-badge__reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0;font-size:12px;font-weight:700;line-height:1.25}.gengage-chat-campaign-price-badge__sale{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:17px;font-weight:800;line-height:1.15}.gengage-chat-product-card-price-row .gengage-chat-campaign-price-badge__sale{font-size:16px}.gengage-chat-product-summary__price .gengage-chat-campaign-price-badge__sale{font-size:15px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge{border-radius:var(--radius-control,12px);padding:12px 14px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__reason{font-size:13px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__sale{font-size:22px}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge)){align-items:last baseline}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-ai-toppick-price-sep,.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-card-price-sep,.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-summary__price-sep,.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-details-price-sep){align-self:last baseline}.gengage-chat-ai-toppick-price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-ai-toppick-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.85em;margin:0 1px;display:inline-block}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-original-price{font-size:14px;font-weight:500;text-decoration:none}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:14px;font-weight:800}.gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control,12px);background:var(--ds-button-primary-bg);width:calc(100% - 24px);color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;box-sizing:border-box;opacity:0;pointer-events:none;flex-shrink:0;align-self:stretch;margin:14px 12px 12px;padding:8px 0;font-size:13px;font-weight:700;transition:opacity .18s,transform .18s,background .15s;display:block;transform:translateY(6px)}.gengage-chat-ai-toppick-card--winner:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--winner:focus-within .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:focus-within .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;transform:translateY(0)}.gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-ai-toppick-spinner{background:color-mix(in srgb, var(--surface-card) 78%, transparent);z-index:6;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gengage-chat-ai-toppick-spinner:after{content:"";border:3px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite gengage-spin}@keyframes gengage-spin{to{transform:rotate(360deg)}}.gengage-chat-root--mobile .gengage-chat-ai-top-picks{gap:8px;padding:4px 0}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-title{margin:0 0 2px;font-size:14px}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:8px;min-width:0;padding:6px 0 2px;display:flex;overflow:visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child{flex-direction:column;align-items:stretch;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child.gengage-chat-ai-toppick-card--winner{flex-direction:column}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;flex-flow:row;gap:8px;min-width:0;margin:0 -2px;padding:2px 2px 8px;display:flex;overflow:auto visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest::-webkit-scrollbar{width:0;height:0;display:none}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest .gengage-chat-ai-toppick-card--compact{scroll-snap-align:start;flex:0 0 min(82vw,272px);width:min(82vw,272px);min-width:0;max-width:272px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:6px 8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 28%, var(--border-default));margin-bottom:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default);box-shadow:none;flex-direction:column;align-items:stretch}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:10px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:10px;flex:0 0 clamp(96px,30vw,124px);width:clamp(96px,30vw,124px);height:clamp(96px,30vw,124px);max-height:none;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;height:100%;max-height:100%;padding:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body{flex:1;min-width:0;padding-top:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-detail{width:100%;margin-top:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-reason{color:var(--text-primary);margin:0;font-size:12px;line-height:1.45;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-review{color:var(--text-secondary);border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;margin-top:8px;padding:8px 10px;font-size:12px;font-style:italic;line-height:1.4;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:6px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:8px;flex:0 0 64px;width:64px;height:64px;max-height:64px;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;max-height:100%;padding:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-width:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-rating{display:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-detail{width:100%;margin-top:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;font-size:10px;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-role-line{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;font-size:9px;font-weight:600;line-height:1.15}.gengage-chat-root--mobile .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:3px;right:5px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:5px;right:6px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{letter-spacing:.04em;background:var(--client-primary);max-width:calc(100% - 18px);color:var(--client-on-primary);box-shadow:none;border:none;padding:2px 6px;font-size:8px;font-weight:700;line-height:1.15;top:-14px;left:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-name{margin-bottom:1px;font-size:12px;line-height:1.22}.gengage-chat-root--mobile .gengage-chat-ai-toppick-name{margin-bottom:2px;font-size:13px;line-height:1.28}.gengage-chat-root--mobile .gengage-chat-ai-toppick-rating{gap:3px;margin-top:2px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-price{margin-top:1px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-price{margin-top:2px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-original-price{font-size:11px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-labels,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{display:none!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;border:1px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 16px);color:var(--client-primary);box-shadow:none;filter:none;align-self:stretch;margin:8px 8px 6px;padding:6px 0;font-size:12px;font-weight:600;transform:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover{background:color-mix(in srgb, var(--client-primary) 10%, var(--surface-card));color:var(--client-primary);border-color:var(--client-primary);filter:none}.gengage-chat-root--mobile .gengage-chat-rollback-btn{left:-24px}.gengage-chat-grounding-review{align-items:center;gap:12px;padding:12px 16px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-grounding-review:hover{background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}.gengage-chat-grounding-review-icon{background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));width:32px;height:32px;color:var(--client-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gengage-chat-grounding-review-icon svg{width:18px;height:18px;display:block}.gengage-chat-grounding-review-body{flex:1;min-width:0}.gengage-chat-grounding-review-title{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grounding-review-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.gengage-chat-grounding-review-cta{color:var(--client-primary);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.gengage-chat-grounding-review-cta-icon{align-items:center;display:inline-flex}.gengage-chat-grounding-review-cta-icon svg{width:14px;height:14px;display:block}.gengage-chat-grouping-cards{flex-direction:column;gap:6px;display:flex}.gengage-chat-grouping-cards-scroll{flex-direction:column;gap:6px;min-width:0;display:flex}.gengage-chat-grouping-card{background:var(--surface-card-soft);border:1px solid var(--border-default);border-radius:var(--radius-control);align-items:center;gap:10px;padding:8px 12px;transition:background .15s,border-color .15s;display:flex}.gengage-chat-grouping-card:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-grouping-card-arrow{color:var(--client-primary);flex-shrink:0;font-size:14px;display:none}.gengage-chat-grouping-card-img{border-radius:calc(var(--radius-control) - 4px);object-fit:cover;flex-shrink:0;width:48px;min-width:48px;height:48px;min-height:48px}.gengage-chat-grouping-card-body{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-grouping-card-name{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:12px}.gengage-chat-grouping-card-labels{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-grouping-card-label{color:var(--text-secondary);background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-grouping-card-img{display:none}.gengage-chat-root--mobile .gengage-chat-grouping-card-arrow{display:inline}.gengage-chat-suggested-search-cards{flex-direction:column;gap:8px;display:flex}.gengage-chat-suggested-search-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1);align-items:center;gap:14px;padding:14px 16px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.gengage-chat-suggested-search-card:hover{background:var(--surface-card);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-chat-suggested-search-card-img{object-fit:contain;background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:14px;flex-shrink:0;width:64px;height:64px;padding:4px}.gengage-chat-suggested-search-card-body{flex:1;min-width:0}.gengage-chat-suggested-search-card-name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-details-gallery{position:relative}.gengage-chat-product-details-gallery .gengage-chat-product-details-img{touch-action:pan-y}.gengage-chat-product-gallery-nav{z-index:3;border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;background:color-mix(in srgb, var(--surface-card) 92%, transparent);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0;transition:background .15s,opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gengage-chat-product-gallery-nav:hover:not(:disabled){background:var(--surface-card);color:var(--client-primary)}.gengage-chat-product-gallery-nav:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-gallery-nav:disabled{opacity:.35;cursor:not-allowed}.gengage-chat-product-gallery-nav--prev{left:8px}.gengage-chat-product-gallery-nav--next{right:8px}.gengage-chat-product-gallery-thumbs{scrollbar-width:thin;justify-content:center;gap:8px;width:100%;padding:10px 0 4px;display:flex;overflow-x:auto}.gengage-chat-product-gallery-thumb{object-fit:cover;cursor:pointer;background:var(--surface-card);border:2px solid #0000;border-radius:8px;flex-shrink:0;width:56px;height:56px;transition:border-color .15s}.gengage-chat-product-gallery-thumb:hover{border-color:var(--border-strong)}.gengage-chat-product-gallery-thumb--active{border-color:var(--client-primary)}.gengage-chat-product-gallery-thumb-more{background:var(--surface-card-muted);width:56px;height:56px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.gengage-chat-product-variants-label{color:var(--text-muted);text-transform:none;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-product-variants-list{flex-wrap:wrap;gap:6px;display:flex}.gengage-chat-product-variant-btn{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:6px 12px;font-size:12px;transition:background .15s,border-color .15s}.gengage-chat-product-variant-btn:hover{background:var(--surface-card-muted);border-color:color-mix(in srgb, var(--client-primary) 20%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-details-panel{border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);gap:16px;padding:16px}.gengage-chat-product-details-media{border-color:var(--border-default);border-radius:var(--radius-card);background:var(--surface-card-soft);justify-content:center;min-height:320px}.gengage-chat-product-details-img{max-height:420px}.gengage-chat-product-details-content{gap:12px}.gengage-chat-product-details-brand{color:var(--client-primary);font-size:12px;font-weight:800;line-height:1.2}.gengage-chat-product-details-title{font-size:22px;line-height:1.2}.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));background:color-mix(in srgb, var(--warning) 10%, var(--surface-card));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));gap:6px;padding:6px 10px;font-family:inherit}button.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));cursor:pointer}.gengage-chat-product-details-rating--clickable:hover{border-color:color-mix(in srgb, var(--warning) 42%, var(--border-default));background:color-mix(in srgb, var(--warning) 14%, var(--surface-card))}.gengage-chat-product-details-rating .gengage-star-rating{line-height:1}.gengage-chat-product-details-rating-value{color:var(--text-primary)}.gengage-chat-product-details-price{flex-wrap:wrap;gap:10px}.gengage-chat-product-details-original-price{order:2}.gengage-chat-product-details-current-price{order:1;font-size:30px}.gengage-chat-product-details-discount-badge{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--error) 12%, white);min-height:24px;color:color-mix(in srgb, var(--error) 84%, var(--text-primary));order:3;align-items:center;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{order:0;font-size:30px}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{font-weight:500}.gengage-chat-product-details-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.gengage-chat-product-details-fact{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-card-soft);min-width:0;padding:8px 10px}.gengage-chat-product-details-fact dt,.gengage-chat-product-details-fact dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.gengage-chat-product-details-fact dt{color:var(--text-muted);font-size:11px;font-weight:700}.gengage-chat-product-details-fact dd{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:700}.gengage-chat-product-variants{margin-top:4px}.gengage-chat-product-variants-label{color:var(--text-primary);letter-spacing:normal;margin-bottom:8px;font-size:14px;font-weight:800}.gengage-chat-product-variants-list{gap:8px}.gengage-chat-product-variant-btn{border-radius:var(--radius-control);min-height:44px;color:var(--text-primary);gap:8px;padding:7px 10px;font-size:13px;font-weight:700}.gengage-chat-product-variant-btn--active{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--client-primary) 36%, transparent);color:var(--client-primary)}.gengage-chat-product-variant-btn--out{opacity:.48;cursor:not-allowed}.gengage-chat-product-variant-swatch{border:1px solid var(--border-default);background:var(--surface-card-muted);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface-card);border-radius:50%;flex:0 0 22px}.gengage-chat-product-variant-swatch--image{object-fit:cover;box-shadow:none}.gengage-chat-product-variant-label,.gengage-chat-product-variant-price{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gengage-chat-product-variant-price{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-product-details-actions{gap:10px;margin-top:6px}.gengage-chat-product-details-atc,.gengage-chat-product-details-cta{border-radius:var(--radius-control);min-height:44px}.gengage-chat-product-details-atc{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg)}.gengage-chat-product-details-atc:hover{background:var(--ds-button-primary-bg-hover);filter:none}.gengage-chat-product-details-cta.gds-btn-secondary{border-color:var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg)}.gengage-chat-product-details-cta.gds-btn-secondary:hover{background:var(--ds-button-secondary-bg-hover)}@media (width>=960px){.gengage-chat-product-details-panel{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;display:grid}.gengage-chat-product-details-media{position:sticky;top:0}.gengage-chat-product-detail-tabs{grid-column:1/-1}}.gengage-chat-root--mobile .gengage-chat-product-details-panel{box-shadow:none;gap:10px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:220px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price{font-size:24px}.gengage-chat-root--mobile .gengage-chat-product-details-facts{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-product-details-actions{grid-template-columns:1fr 1fr 44px;align-items:stretch;display:grid}.gengage-chat-root--mobile .gengage-chat-product-details-actions>.gengage-chat-product-details-share{width:44px;min-width:44px}.gengage-chat-root--mobile .gengage-chat-product-details-atc,.gengage-chat-root--mobile .gengage-chat-product-details-cta{width:100%;padding-inline:10px}.gengage-chat-product-grid-wrapper{flex-direction:column;gap:6px;display:flex}.gengage-chat-consulting-style-picker{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));background:linear-gradient(160deg, color-mix(in srgb, var(--surface-card) 80%, white), color-mix(in srgb, var(--surface-card-soft) 84%, white));border-radius:20px;padding:12px}.gengage-chat-consulting-style-picker-title{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:800}.gengage-chat-consulting-style-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-consulting-style-btn{border:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;gap:0;padding:6px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-consulting-style-btn:hover{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));transform:translateY(-1px)}.gengage-chat-consulting-style-btn--active{border-color:color-mix(in srgb, var(--client-primary) 40%, var(--border-default));box-shadow:0 0 0 2px color-mix(in srgb, var(--client-primary) 16%, transparent), var(--shadow-1)}.gengage-chat-consulting-style-media{border-radius:12px;position:relative;overflow:hidden}.gengage-chat-consulting-style-image{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;width:100%}.gengage-chat-consulting-style-caption{color:#fff;background:#0000008c;border-radius:12px;padding:8px 10px;font-size:15px;font-weight:800;line-height:1.2;position:absolute;bottom:10px;left:10px;right:10px}.gengage-chat-consulting-group{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:linear-gradient(180deg, var(--surface-card-soft), var(--surface-card));border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.gengage-chat-consulting-group-header{flex-direction:column;gap:4px;min-height:112px;display:flex}.gengage-chat-consulting-group-label{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.5em;margin:0;font-size:16px;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-reason{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-grid{grid-template-columns:repeat(var(--consulting-group-columns,4), minmax(210px, 1fr));justify-content:stretch;align-items:stretch;gap:14px;margin-bottom:2px;display:grid}.gengage-chat-consulting-group-grid .gengage-chat-product-card{height:100%}.gengage-chat-beauty-photo-step{padding:0 12px}.gengage-chat-beauty-photo-step-card{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card) 85%, white), var(--surface-card-soft));box-shadow:var(--shadow-1);border-radius:18px;gap:10px;padding:12px;display:flex}.gengage-chat-beauty-photo-step-icon{background:color-mix(in srgb, var(--client-primary) 16%, white);width:34px;height:34px;color:var(--client-primary);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:inline-flex}.gengage-chat-beauty-photo-step-content{flex:auto;min-width:0}.gengage-chat-beauty-photo-step-title{color:var(--text-primary);font-size:15px;font-weight:800}.gengage-chat-beauty-photo-step-desc{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.45}.gengage-chat-beauty-photo-step-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.gengage-chat-beauty-photo-step-upload{border-radius:999px;min-height:34px;padding-inline:14px;font-size:12px;font-weight:800}.gengage-chat-beauty-photo-step-skip{border-radius:999px;min-height:34px;padding-inline:12px;font-size:12px;font-weight:700}.gengage-chat-panel .gengage-chat-consulting-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gengage-chat-panel .gengage-chat-consulting-style-image{min-height:250px}.gengage-chat-panel .gengage-chat-consulting-style-caption{padding:10px 12px;font-size:16px}.gengage-chat-panel .gengage-chat-consulting-group{border-radius:18px;padding:14px}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card{min-width:0;margin-inline:auto}.gengage-chat-root--mobile .gengage-chat-consulting-style-grid{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-consulting-style-image{min-height:220px}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid{grid-template-columns:1fr}.gengage-chat-product-grid-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.gengage-chat-product-grid-head-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:18px;font-weight:700;line-height:1.2;overflow:hidden}.gengage-chat-product-grid-head-actions{flex-shrink:0;align-items:center;gap:6px;max-width:52%;display:flex}.gengage-chat-product-sort-toolbar{box-shadow:none;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:0;display:flex}.gengage-chat-product-sort-toolbar--inline{flex-wrap:nowrap;justify-content:flex-end}.gengage-chat-product-sort-dropdown{z-index:5;flex:0 auto;width:auto;min-width:0;max-width:200px;position:relative}.gengage-chat-product-sort-toolbar:not(.gengage-chat-product-sort-toolbar--inline) .gengage-chat-product-sort-dropdown{flex:auto;max-width:min(200px,100%)}.gengage-chat-product-sort-dropdown--open{z-index:25}.gengage-chat-product-sort-trigger{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:100%;min-height:32px;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.gengage-chat-product-sort-trigger:hover{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:var(--surface-card-soft)}.gengage-chat-product-sort-trigger:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger{border-color:color-mix(in srgb, var(--client-primary) 32%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-product-sort-trigger-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-product-sort-dropdown[data-sort-icon=related] .gengage-chat-product-sort-trigger-icon{color:var(--client-primary)}.gengage-chat-product-sort-trigger-icon svg{display:block}.gengage-chat-product-sort-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-product-sort-trigger-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s;display:flex}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger-chevron{transform:rotate(180deg)}.gengage-chat-product-sort-menu{width:max-content;min-width:100%;max-width:min(260px,100vw - 48px);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto}.gengage-chat-product-sort-option{border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background .12s;display:flex}.gengage-chat-product-sort-option:hover{background:var(--surface-card-muted)}.gengage-chat-product-sort-option--active{color:var(--client-primary);background:var(--client-primary-subtle);font-weight:600}.gengage-chat-product-sort-option-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-product-sort-option--active .gengage-chat-product-sort-option-icon,.gengage-chat-product-sort-option--active[data-sort-key=related] .gengage-chat-product-sort-option-icon{color:var(--client-primary)}.gengage-chat-product-sort-option-icon svg{display:block}.gengage-chat-product-sort-option-label{flex:auto;min-width:0}.gengage-chat-product-sort-option-check{width:22px;color:var(--client-primary);flex-shrink:0;justify-content:flex-end;display:flex}.gengage-chat-product-sort-option-check--hidden{visibility:hidden}.gengage-chat-product-sort-separator{background:var(--border-default);width:1px;margin:2px}.gengage-chat-comparison-toggle-btn{border:1px solid var(--border-default);border-radius:var(--radius-control,12px);background:var(--surface-card);min-height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gengage-chat-comparison-toggle-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-comparison-toggle-icon svg{display:block}.gengage-chat-comparison-toggle-btn:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, white);color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active{border-color:color-mix(in srgb, var(--client-primary) 26%, white);color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-comparison-toggle-btn--active .gengage-chat-comparison-toggle-icon{color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active:hover{background:var(--client-primary-hover);color:var(--client-on-primary);border-color:var(--client-primary-hover)}.gengage-chat-comparison-toggle-btn--active:hover .gengage-chat-comparison-toggle-icon{color:var(--client-on-primary)}.gengage-chat-comparison-select-wrapper{cursor:pointer;border-radius:var(--radius-control);transition:box-shadow .2s,transform .2s;position:relative}.gengage-chat-comparison-select-wrapper:hover{box-shadow:0 0 0 2px var(--client-focus-ring)}.gengage-chat-comparison-select-wrapper--selected,.gengage-chat-comparison-select-wrapper--selected:hover{box-shadow:none}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-select-wrapper{transition:none}}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card{pointer-events:none;transition:opacity .2s,transform .2s,filter .2s}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-img-actions,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-discount-badge,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-buy-footer,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-cta{opacity:0}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:.82}.gengage-chat-comparison-select-wrapper:hover>.gengage-chat-product-card,.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{opacity:1;transform:translateY(-1px)}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--client-primary) 26%, white), var(--shadow-1);filter:saturate(1.02);border-color:#0000;outline:none}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:1}.gengage-chat-comparison-card-hint{display:none}.gengage-chat-comparison-checkbox{z-index:4;cursor:pointer;pointer-events:auto;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 94%, white);min-height:40px;color:var(--text-primary);box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;bottom:16px;left:16px;right:16px}.gengage-chat-comparison-checkbox[data-selected=true]{background:color-mix(in srgb, var(--client-primary) 10%, white);border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));color:var(--client-primary)}.gengage-chat-comparison-checkbox-icon{background:var(--surface-card-soft);color:currentColor;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.gengage-chat-comparison-checkbox[data-selected=true] .gengage-chat-comparison-checkbox-icon{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-comparison-checkbox-dot{background:color-mix(in srgb, currentColor 75%, white);border-radius:999px;width:8px;height:8px}.gengage-chat-comparison-checkbox-label{font-size:12px;font-weight:700;line-height:1.2}.gengage-chat-comparison-toggle-btn--hidden{opacity:0;pointer-events:none}@keyframes gengage-comparison-fade-in{0%{opacity:0}to{opacity:1}}.gengage-chat-comparison-toggle-btn--reveal{animation:.5s forwards gengage-comparison-fade-in}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-toggle-btn--reveal{opacity:1;animation:none}}.gengage-chat-comparison-floating-btn{border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 92%, white);width:min(100%,520px);color:var(--text-primary);z-index:5;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin:16px auto 0;padding:12px 14px;display:flex;position:sticky;bottom:12px}.gengage-chat-comparison-dock-slot{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot:not(:empty){z-index:30;padding:0 10px max(6px, env(safe-area-inset-bottom,0px));box-sizing:border-box;pointer-events:none;max-width:100%;display:block;position:absolute;bottom:0;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot>*{pointer-events:auto}.gengage-chat-comparison-floating-summary{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.gengage-chat-comparison-floating-count{background:var(--client-primary-subtle);min-width:32px;height:32px;color:var(--client-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.gengage-chat-comparison-floating-copy{min-width:0}.gengage-chat-comparison-floating-title{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.gengage-chat-comparison-floating-warning{color:var(--error);margin-top:4px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-action{flex:none;min-width:132px}.gengage-chat-comparison-floating-close{border-radius:14px;flex:none;width:40px;height:40px;padding:0}.gengage-chat-comparison-floating-action--disabled{opacity:.6}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;margin:0;padding:10px;position:relative;bottom:auto}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-summary{align-items:center;gap:8px;min-height:26px;padding-right:34px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-count{flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-title{margin:0;font-size:13px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-warning{margin-top:2px;font-size:11px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-action{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:42px;padding:0 12px;font-size:13px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close{box-sizing:border-box;align-self:unset;z-index:10;touch-action:manipulation;border-radius:8px;flex:none;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;max-height:26px;padding:0;line-height:0;position:absolute;top:9px;right:9px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close svg{width:11px;height:11px;display:block}.gengage-chat-panel-topbar{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--surface-card);z-index:3;border-bottom:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.gengage-chat-panel-topbar-title-wrap{flex:1 1 0;align-items:center;min-width:0;display:flex}.gengage-chat-panel-topbar-back,.gengage-chat-panel-topbar-forward{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;transition:background .15s,border-color .15s,opacity .15s;display:flex}.gengage-chat-panel-topbar-back[hidden],.gengage-chat-panel-topbar-forward[hidden]{display:none}.gengage-chat-panel-topbar-back:hover:not(:disabled),.gengage-chat-panel-topbar-forward:hover:not(:disabled){background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-panel-topbar-back:disabled,.gengage-chat-panel-topbar-forward:disabled{opacity:.3;cursor:default}.gengage-chat-panel-topbar-title{width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.gengage-chat-panel-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.gengage-chat-panel-topbar-actions:empty{display:none}.gengage-chat-panel-topbar-toolbar-host{justify-content:flex-end;align-items:center;width:100%;display:flex}.gengage-chat-panel-topbar-toolbar-host .gengage-chat-product-sort-toolbar{flex-wrap:nowrap;justify-content:flex-end;gap:8px}.gengage-chat-panel-topbar-close{display:none}@keyframes gengage-typewriter-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-typewriter-block{animation:.15s both gengage-typewriter-fade-in;display:block}@media (prefers-reduced-motion:reduce){.gengage-chat-typewriter-block{animation:none}}.gengage-product-mention{color:var(--client-primary);cursor:pointer;border-bottom:1px dashed var(--client-primary);font-weight:500;text-decoration:none;transition:border-color .15s}.gengage-product-mention:hover{border-bottom-style:solid}@keyframes gengage-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.gengage-chat-panel-skeleton-block{animation:1.5s ease-in-out infinite gengage-skeleton-pulse}@media (prefers-reduced-motion:reduce){.gengage-chat-panel-skeleton-block{animation:none}}.gengage-chat-input-chips{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;padding:4px 12px 2px;display:flex;overflow-x:auto}.gengage-chat-input-chips::-webkit-scrollbar{display:none}.gengage-chat-input-chip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gengage-chat-input-chip:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-icon{flex-shrink:0;width:14px;height:14px}.gengage-chat-input-chip-icon,.gengage-chat-pill-icon{align-items:center;margin-right:4px;display:inline-flex}.gengage-chat-product-card-img-wrapper,.gengage-chat-product-details-img-wrap{position:relative;overflow:hidden}.gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--_gengage-discount-color);color:var(--text-inverse);z-index:1;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;position:absolute;top:8px;left:8px}.gengage-chat-product-card-stock{border-radius:var(--radius-pill);width:fit-content;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:600}.gengage-chat-product-card-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-card-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-find-similar-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:28px;height:28px;color:var(--text-primary);box-shadow:var(--shadow-1);cursor:pointer;z-index:2;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:500;transition:opacity .2s,box-shadow .15s;display:inline-flex;position:relative}.gengage-chat-find-similar-pill:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}@media (hover:hover) and (pointer:fine){.gengage-chat-find-similar-pill:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:opacity .14s;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.gengage-chat-find-similar-pill:hover:after,.gengage-chat-find-similar-pill:focus-visible:after{opacity:1}}.gengage-chat-find-similar-pill-icon{justify-content:center;align-items:center;display:flex}.gengage-chat-find-similar-pill-icon svg{display:block}.gengage-chat-find-similar-pill-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{transition:opacity .2s}@media (hover:hover) and (pointer:fine){.gengage-chat-product-card-img-wrapper:not(:hover) .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:not(:hover) .gengage-chat-product-card-img-actions{opacity:0;pointer-events:none}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:hover .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-shell) 88%, transparent);width:auto;height:auto;color:var(--text-inverse);box-shadow:none;opacity:0;pointer-events:none;padding:4px 10px;position:absolute;top:40px;right:8px}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-icon{display:none}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-text{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-find-similar-pill,.gengage-chat-ai-toppick-media:hover .gengage-chat-find-similar-pill,.gengage-chat-product-details-img-wrap:hover .gengage-chat-find-similar-pill{opacity:1;pointer-events:auto}.gengage-chat-favorite-btn{background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-control);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);box-shadow:var(--shadow-1);z-index:3;justify-content:center;align-items:center;padding:0;transition:color .2s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-favorite-btn:hover{box-shadow:var(--shadow-2);color:var(--error);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}.gengage-chat-favorite-btn--active{color:var(--error)}.gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gengage-chat-product-details-promo-badge{border-radius:var(--radius-pill);background:var(--gengage-chat-promo-bg,color-mix(in srgb, var(--success) 12%, white));color:var(--gengage-chat-promo-text,color-mix(in srgb, var(--success) 82%, var(--text-primary)));white-space:nowrap;box-sizing:border-box;min-height:20px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-block}.gengage-chat-thumbnails-column{pointer-events:none;display:none!important}.gengage-chat-thumbnail-btn{border:2px solid var(--border-default);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s;display:flex;overflow:hidden}.gengage-chat-thumbnail-btn:hover{border-color:var(--client-primary)}.gengage-chat-thumbnail-img{object-fit:cover;width:100%;height:100%}.gengage-chat-panel-float{box-sizing:border-box;pointer-events:none;z-index:10;flex-shrink:0;align-self:stretch;width:100%;height:0;margin-top:auto;position:sticky;bottom:0;overflow:visible}.gengage-chat-choice-prompter{pointer-events:none;background:var(--surface-card);border:1px solid var(--border-default);width:auto;max-width:none;box-shadow:var(--shadow-2);z-index:5;opacity:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-left:0;margin-right:0;padding:12px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:12px;left:16px;right:16px;transform:translateY(12px)}.gengage-chat-panel--scrolled .gengage-chat-choice-prompter{pointer-events:auto;opacity:1;transform:translateY(0)}.gengage-chat-choice-prompter-heading{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:700}.gengage-chat-choice-prompter-suggestion{color:var(--text-secondary);margin-bottom:0;font-size:12px;line-height:1.35}.gengage-chat-choice-prompter-copy{min-width:0}.gengage-chat-choice-prompter-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control);background:var(--ds-button-primary-bg);width:auto;min-width:180px;min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.gengage-chat-choice-prompter-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-choice-prompter-dismiss{border:1px solid var(--border-default);background:var(--surface-card-soft);min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.gengage-chat-choice-prompter-dismiss:hover{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white);background:var(--client-primary-subtle)}@media (prefers-reduced-motion:reduce){.gengage-chat-choice-prompter{animation:none}}.gengage-chat-pros-cons{background:var(--surface-card-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-control);margin:8px 0;padding:12px 14px}.gengage-chat-pros-cons-heading{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.gengage-chat-pros-cons-list{margin:0 0 8px;padding:0;list-style:none}.gengage-chat-pros-cons-list:last-child{margin-bottom:0}.gengage-chat-pros-cons-item{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;line-height:1.5;display:flex}.gengage-chat-pros-cons-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:flex}.gengage-chat-pros-cons-icon--pro{color:var(--success);background:color-mix(in srgb, var(--success) 15%, white)}.gengage-chat-pros-cons-icon--con{color:var(--error);background:color-mix(in srgb, var(--error) 12%, white)}.gengage-chat-categories{flex-direction:column;gap:8px;display:flex}.gengage-chat-categories-tabs{-webkit-overflow-scrolling:touch;gap:4px;padding:4px 0;display:flex;overflow-x:auto}.gengage-chat-categories-tab{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.gengage-chat-categories-tab:hover{background:var(--surface-card-soft);border-color:var(--border-strong)}.gengage-chat-categories-tab--active{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default))}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gengage-chat-categories-filter-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-categories-filter-tag{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.gengage-chat-categories-filter-tag:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-grid-view-more{border:1px solid var(--ds-button-secondary-border);border-radius:var(--radius-control);background:var(--ds-button-secondary-bg);width:100%;color:var(--ds-button-secondary-fg);cursor:pointer;text-align:center;grid-column:1/-1;margin-top:8px;padding:10px;font-size:14px;font-weight:500;transition:background .15s;display:block}.gengage-chat-product-grid-view-more:hover{background:var(--ds-button-secondary-bg-hover)}.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0;display:grid;overflow-x:visible}.gengage-chat-product-grid--mobile .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-comparison--mobile{position:relative;overflow-x:clip}.gengage-chat-comparison--mobile .gengage-chat-comparison-table-wrapper{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.gengage-chat-comparison--mobile .gengage-chat-comparison-table{table-layout:fixed;min-width:480px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table th:first-child,.gengage-chat-comparison--mobile .gengage-chat-comparison-table .gengage-chat-comparison-label{background:var(--surface-card);z-index:1;box-shadow:2px 0 4px color-mix(in srgb, var(--surface-shell) 8%, transparent);position:sticky;left:0}.gengage-chat-comparison--mobile .gengage-chat-comparison-table thead th:first-child{box-sizing:border-box;width:22ch;min-width:0;max-width:22ch;padding:8px 6px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table td.gengage-chat-comparison-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;width:22ch;min-width:0;max-width:22ch;overflow:hidden}.gengage-chat-product-details-similars-heading{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-product-details-similars{margin-top:8px}.gengage-chat-handoff-notice{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border-default));border-radius:var(--radius-control);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:16px;display:flex}.gengage-chat-handoff-notice-icon{font-size:24px}.gengage-chat-handoff-notice-heading{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin:0;font-size:14px;font-weight:600}.gengage-chat-handoff-notice-summary{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));margin:0;font-size:13px;line-height:1.5}.gengage-chat-product-details-share{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background-color .12s;display:inline-flex;position:relative}.gengage-chat-product-details-share:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--client-primary-subtle)}.gengage-chat-product-details-share:before{content:attr(aria-label);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;pointer-events:none;opacity:0;z-index:2;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gengage-chat-product-details-share:hover:before{opacity:1}.gengage-chat-product-details-share--copied:after{content:"✓";background:var(--_gengage-success-color);color:var(--client-on-primary);border-radius:var(--radius-control);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.gengage-chat-product-details-share svg{width:20px;height:20px}.gengage-chat-review-link,.gengage-chat-grounding-link{color:var(--client-primary);text-decoration:underline}@media (width<=768px){.gengage-chat-product-details-promo-badge{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.gengage-chat-launcher:focus-visible,.gengage-chat-close:focus-visible,.gengage-chat-header-btn:focus-visible,.gengage-chat-header-powered:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-pill:focus-visible,.gengage-chat-input-chip:focus-visible,.gengage-chat-pills-arrow:focus-visible,.gengage-chat-error-retry:focus-visible,.gengage-chat-product-card-cta:focus-visible,.gengage-chat-product-details-cta:focus-visible,.gengage-chat-product-details-atc:focus-visible,.gengage-chat-product-detail-tab:focus-visible,.gengage-chat-panel-divider-toggle:focus-visible,.gengage-chat-panel-topbar-back:focus-visible,.gengage-chat-panel-topbar-forward:focus-visible,.gengage-chat-rollback-btn:focus-visible,.gengage-chat-ai-toppick-cta:focus-visible,.gengage-chat-comparison-toggle-btn:focus-visible,.gengage-chat-comparison-floating-btn:focus-visible,.gengage-chat-comparison-checkbox:focus-visible,.gengage-chat-product-sort-trigger:focus-visible,.gengage-chat-product-sort-option:focus-visible,.gengage-chat-product-variant-btn:focus-visible,.gengage-chat-product-gallery-thumb:focus-visible,.gengage-chat-thumbnail-btn:focus-visible,.gengage-chat-find-similar-pill:focus-visible,.gengage-chat-favorite-btn:focus-visible,.gengage-chat-attach-btn:focus-visible,.gengage-chat-attach-menu-item:focus-visible,.gengage-chat-mic-btn:focus-visible,.gengage-chat-attachment-remove:focus-visible,.gengage-chat-kvkk-dismiss:focus-visible,.gengage-chat-choice-prompter-cta:focus-visible,.gengage-chat-choice-prompter-dismiss:focus-visible,.gengage-chat-categories-tab:focus-visible,.gengage-chat-categories-filter-tag:focus-visible,.gengage-chat-product-grid-view-more:focus-visible,.gengage-chat-product-details-share:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-root--mobile .gengage-chat-choice-prompter{width:auto;max-width:none;left:12px;right:12px;bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + var(--gengage-chat-launcher-size,56px) + env(safe-area-inset-bottom,0px) + 12px);grid-template-columns:1fr;max-height:40vh;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta{width:100%}.gengage-chat-root--mobile .gengage-chat-product-sort-trigger,.gengage-chat-root--mobile .gengage-chat-product-sort-option,.gengage-chat-root--mobile .gengage-chat-comparison-toggle-btn{min-height:40px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-label,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-chevron,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-label{display:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-dropdown{flex:none;width:auto;max-width:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger{justify-content:center;gap:0;width:auto;min-width:44px;padding:0 10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-btn{justify-content:center;gap:0;width:44px;min-width:44px;padding:0}.gengage-chat-root--mobile .gengage-chat-input-chip{min-height:40px;padding:8px 12px}.gengage-chat-root--mobile .gengage-chat-choice-prompter-dismiss{width:32px;height:32px}.gengage-chat-root--mobile .gengage-chat-panel-divider-toggle{min-height:44px}.gengage-chat-root--mobile .gengage-chat-product-card-cta,.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta,.gengage-chat-root--mobile .gengage-chat-product-grid-view-more{justify-content:center;align-items:center;min-height:44px;display:flex}.gengage-chat-root--mobile .gengage-chat-panel-topbar-back,.gengage-chat-root--mobile .gengage-chat-panel-topbar-forward,.gengage-chat-root--mobile .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel-topbar-close{display:none}.gengage-skeleton{gap:12px;padding:12px;display:flex}.gengage-skeleton--message{flex-direction:column;gap:8px;padding:16px}.gengage-skeleton-card{flex-direction:column;flex:1;gap:8px;display:flex}.gengage-skeleton-img{border-radius:var(--radius-control);height:120px}.gengage-skeleton-text{border-radius:4px;height:14px}.gengage-skeleton-price{border-radius:4px;width:60%;height:14px}.gengage-skeleton-line{border-radius:4px;height:12px}@media (prefers-reduced-motion:no-preference){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:linear-gradient(90deg, var(--ds-neutral-100) 25%, var(--ds-neutral-200) 50%, var(--ds-neutral-100) 75%);background-size:200% 100%;animation:1.5s infinite gengage-shimmer}@keyframes gengage-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}}@media (prefers-reduced-motion:reduce){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:var(--ds-neutral-100)}}.gengage-chat-panel--has-scroll:after{content:"";background:linear-gradient(transparent, var(--surface-card-soft));pointer-events:none;height:40px;display:block;position:sticky;bottom:0}@media (prefers-reduced-motion:no-preference){.gengage-chat-panel--transitioning{opacity:0;transition:opacity .15s}}.gengage-chat-cart-toast{background:var(--success);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-3);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:72px;left:50%;transform:translate(-50%)translateY(8px)}.gengage-chat-cart-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@keyframes gengage-cart-flash{0%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}to{transform:scale(1)}}.gengage-chat-header-btn--cart-flash{animation:.5s gengage-cart-flash}',Ti=g.object({role:g._enum(["user","assistant"]),content:g.string(),timestamp:g.number().optional()}),Ii=g.object({sku:g.string(),name:g.string(),imageUrl:g.string().url().optional(),price:g.string().optional(),originalPrice:g.string().optional(),url:g.string().url(),ctaLabel:g.string().optional()}),Ni=g.object({buttons:g.array(g.object({label:g.string(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}))}),Mi=g.object({}),Bi=g.object({label:g.string().optional()}),gt=g.object({sku:g.string(),name:g.string(),price:g.string(),imageUrl:g.string().optional(),rating:g.number().optional(),reviewCount:g.number().optional()}),zi=g.object({recommended:gt,products:g.array(gt),attributes:g.array(g.object({label:g.string(),values:g.array(g.string())})),highlights:g.array(g.string()),specialCases:g.array(g.string()).optional(),recommendedText:g.string().optional(),winnerHits:g.record(g.string(),g.object({positive:g.array(g.string()).optional(),negative:g.array(g.string()).optional()})).optional(),productActions:g.record(g.string(),g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})).optional()}),Hi=g.object({label:g.string(),sentiment:g._enum(["positive","negative","neutral"]).optional()}),Ri=g.object({product:g.record(g.string(),g.unknown()),role:g.string().optional(),reason:g.string().optional(),labels:g.array(Hi).optional(),expertQualityScore:g.number().optional(),reviewHighlight:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()}).optional()}),Di=g.object({suggestions:g.array(Ri)}),Fi=g.object({title:g.string().optional(),text:g.string().optional(),reviewCount:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}),Ui=g.object({entries:g.array(g.object({name:g.string(),image:g.string().optional(),description:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}))}),ji=g.object({entries:g.array(g.object({shortName:g.string(),detailedMessage:g.string().optional(),whyDifferent:g.string().optional(),image:g.string().optional(),action:g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()})}))}),Bt=g.object({title:g.string(),type:g.string(),payload:g.unknown().optional()}),we=g.object({name:g.string().optional(),value:g.string().optional(),option_value:g.string().optional(),attribute_value:g.string().optional(),type:g.string().optional(),attribute:g.string().optional(),option_name:g.string().optional(),attribute_name:g.string().optional(),variant_name:g.string().optional(),sku:g.string().optional(),price:g.union([g.number(),g.string()]).optional(),price_discounted:g.union([g.number(),g.string()]).optional(),image:g.string().optional(),imageUrl:g.string().optional(),image_url:g.string().optional(),color:g.string().optional(),colour:g.string().optional(),color_hex:g.string().optional(),hex:g.string().optional(),swatch:g.string().optional(),swatchColor:g.string().optional(),in_stock:g.boolean().optional(),inStock:g.boolean().optional()}),Oi=g.object({product:g.object({sku:g.string().optional(),name:g.string().optional(),images:g.array(g.string()).optional(),imageUrl:g.string().optional(),rating:g.number().optional(),reviewCount:g.number().optional(),price:g.string().optional(),originalPrice:g.string().optional(),discountReason:g.string().optional(),discount_reason:g.string().optional(),campaignReason:g.string().optional(),campaign_reason:g.string().optional(),originalPriceStyle:g._enum(["strikethrough","inline"]).optional(),price_original_style:g._enum(["strikethrough","inline"]).optional(),price_discount_rate:g.number().optional(),price_async:g.boolean().optional(),inStock:g.boolean().optional(),promotions:g.array(g.string()).optional(),variants:g.array(we).optional(),variantOptions:g.array(we).optional(),variant_options:g.array(we).optional(),productVariants:g.array(we).optional(),product_variants:g.array(we).optional(),url:g.string().optional(),cartCode:g.string().optional(),description:g.string().optional(),description_html:g.string().optional(),descriptionHtml:g.string().optional(),facet_hits:g.record(g.string(),g.unknown()).optional(),facetHits:g.record(g.string(),g.unknown()).optional(),features:g.array(g.object({name:g.string().optional(),key:g.string().optional(),label:g.string().optional(),value:g.union([g.string(),g.number(),g.boolean()]).optional()})).optional(),specifications:g.union([g.record(g.string(),g.string()),g.array(g.object({key:g.string(),value:g.string()}))]).optional()}).optional(),action:Bt.optional()}),qi=g.object({endOfList:g.boolean().optional()}),Vi=g.object({review_class:g.string().optional(),review_text:g.string().optional(),review_rating:g.union([g.string(),g.number()]).optional(),review_tag:g.string().optional()}),$i=g.object({reviews:g.array(Vi).optional()}),Gi=g.object({productName:g.string().optional(),pros:g.array(g.string()).optional(),cons:g.array(g.string()).optional()}),Wi=g.object({groups:g.array(g.object({groupName:g.string(),products:g.array(g.record(g.string(),g.unknown())).optional()})).optional(),filterTags:g.array(g.object({title:g.string(),action:Bt.optional()})).optional()}),Yi=g.object({summary:g.string().optional(),products_discussed:g.array(g.string()).optional(),user_sentiment:g.string().optional()}),Ki=g.object({summary:g.string(),clues:g.array(g.string()),next_question:g.string().optional(),style_images:g.array(g.string()).optional()}),Zi=g.object({processing:g.boolean().optional(),title:g.string().optional(),description:g.string().optional(),upload_label:g.string().optional(),skip_label:g.string().optional()}),Xi={components:{MessageBubble:{schema:Ti,description:"A single chat message bubble for user or assistant turns."},ProductCard:{schema:Ii,description:"A product card rendered inline in the chat stream."},ActionButtons:{schema:Ni,description:"A horizontal row of quick-reply action buttons."},TypingIndicator:{schema:Mi,description:"An animated indicator shown while the assistant is typing."},Divider:{schema:Bi,description:"A horizontal rule with an optional label."},ComparisonTable:{schema:zi,description:"A product comparison table with recommended pick, attribute rows, and highlights."},AITopPicks:{schema:Di,description:"Rich AI-curated product suggestion cards with roles, sentiment labels, scores, and review quotes."},GroundingReviewCard:{schema:Fi,description:"A card showing review grounding data with review count and CTA."},AIGroupingCards:{schema:Ui,description:"Category grouping cards with images and labels for product discovery."},AISuggestedSearchCards:{schema:ji,description:"Suggested search cards with images, descriptions, and differentiation."},ProductDetailsPanel:{schema:Oi,description:"Full product detail view with images, specs, variants, and purchase actions."},ProductGrid:{schema:qi,description:'A scrollable grid of ProductCard children with optional "more" pagination.'},ReviewHighlights:{schema:$i,description:"A list of highlighted customer reviews with sentiment and ratings."},ProsAndCons:{schema:Gi,description:"A pros and cons list for a product."},CategoriesContainer:{schema:Wi,description:"Tabbed product groups with optional filter tag buttons."},HandoffNotice:{schema:Yi,description:"A notice shown when the conversation is escalated to a human agent."},PhotoAnalysisCard:{schema:Ki,description:"Structured photo analysis card with summary, clues, and follow-up question."},BeautyPhotoStep:{schema:Zi,description:"Transient selfie upload prompt for beauty consulting init flow."}}};function dt(t){return t.length>120?!1:/^[a-zA-Z0-9#(),.\s%/\-]+$/.test(t)}function De(t){return typeof t=="object"&&t!==null&&typeof t.type=="string"}var zt=class be extends E.BaseWidget{constructor(...e){super(...e),this._shadow=null,this._rootEl=null,this._backdropEl=null,this._launcher=null,this._drawer=null,this._bridge=null,this._drawerVisible=!1,this._pillLauncherApply=null,this._hostScrollLockActive=!1,this._preventHostDocumentTouchMove=a=>{this._hostScrollLockActive&&(this._hostScrollEventShouldReachChatScroller(a)||a.preventDefault())},this._preventHostDocumentWheel=a=>{this._hostScrollLockActive&&(this._hostScrollEventShouldReachChatScroller(a)||a.preventDefault())},this._messages=[],this._currentMessageId=0,this._abortControllers=new Set,this._currentThreadId=null,this._lastThreadId=null,this._chatCreatedAt="",this._lastBackendContext=null,this._productSort={type:"related"},this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._comparisonRefreshRafId=null,this._viewedProductSkus=new Set,this._thumbnailEntries=[],this._choicePrompterEl=null,this._openState="full",this._mobileBreakpoint=768,this._isMobileViewport=!1,this._pdpLaunched=!1,this._entryContextPrimed=!1,this._pdpPrimingInFlight=!1,this._queuedUserMessages=[],this._productContextUnavailableSku=null,this._i18n=qe,this._extendedModeManager=null,this._activeTypewriter=null,this._activeTtsHandle=null,this._activeRequestThreadId=null,this._skuToProductItem={},this._conversationMode=null,this._initComplete=!1,this._pendingActions=[],this._bridgeContext=null,this._cartQuantity=null,this._threadsWithFirstBot=new Set,this._panel=null,this._localPanelHistory=[],this._currentPanelSource=null,this._session=null,this._presentation=new It,this._eventCallbacks=new Map,this._lastSentAction=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._modeController=new _a}static{this._MAX_COMPARISON_SELECTION=5}static{this._MAX_PANEL_HISTORY=10}get _assistantMode(){return this._modeController.mode}set _assistantMode(e){this._modeController.mode=e}get _uiHints(){return this._modeController.uiHints}set _uiHints(e){this._modeController.uiHints=e}async onInit(e){if(this._i18n=this._resolveI18n(e),this._chatCreatedAt=new Date().toISOString(),e.pillLauncher){const m=Nt(e.pillLauncher);e.launcherImageUrl=m.launcherImageUrl,e.headerAvatarUrl===void 0&&(e.headerAvatarUrl=e.pillLauncher.avatarUrl),this._pillLauncherApply=()=>m.apply(this._shadow??void 0)}this._shadow=this.root.attachShadow({mode:"open"});const a=document.createElement("style");a.textContent=Li,this._shadow.appendChild(a);const n=this.root,i=(m,f)=>{f&&dt(f)&&n.style.setProperty(m,f)};if(i("--gengage-chat-header-bg",e.headerBg),i("--gengage-chat-header-foreground",e.headerForeground),e.theme)for(const[m,f]of Object.entries(e.theme))m.startsWith("--")&&typeof f=="string"&&i(m,f);this._applyDiscountedPriceColorVar(e.productPriceUi?.discountedPriceColor);const r=document.createElement("div");r.className="gengage-chat-root",this._rootEl=r,this._shadow.appendChild(r);const o=e.variant??"floating";if(o==="inline"&&r.classList.add("gengage-chat--inline"),o!=="inline"){const m=document.createElement("div");m.className="gengage-chat-backdrop",m.setAttribute("aria-hidden","true"),m.setAttribute("role","button"),m.setAttribute("tabindex","-1"),m.setAttribute("aria-label",this._i18n.closeAriaLabel),m.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),this.close()}),this._backdropEl=m,r.prepend(m)}if(o==="floating"){const m={onClick:()=>this.open(),ariaLabel:this._i18n.openButton};e.launcherImageUrl!==void 0?m.imageUrl=e.launcherImageUrl:e.launcherSvg!==void 0&&(m.svgMarkup=e.launcherSvg),e.hideMobileLauncher!==void 0&&(m.hideMobile=e.hideMobileLauncher),e.mobileBreakpoint!==void 0&&(m.mobileBreakpoint=e.mobileBreakpoint),e.launcherTooltip!==void 0&&(m.tooltip=e.launcherTooltip),this._launcher=La(m),r.appendChild(this._launcher.container)}o==="overlay"&&r.classList.add("gengage-chat--overlay");const c=document.createElement("div");r.appendChild(c),this._drawer=new fa(c,{i18n:this._i18n,onSend:(m,f)=>this._sendMessage(m,f),onClose:()=>this.close(),onAttachment:m=>this._handleAttachment(m),onPanelToggle:()=>{this._drawer?.persistPanelState(e.accountId)},onHostShellSync:()=>{this._applyOpenStateClasses()},onRollback:m=>this._handleRollback(m),onPanelBack:()=>this._navigatePanelBack(),onPanelForward:()=>this._panel?.navigateForward(),onPanelClose:()=>{if(this._isMobileViewport){this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[];return}this._localPanelHistory=[],this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._currentPanelSource=null},headerTitle:e.headerTitle,headerAvatarUrl:e.headerAvatarUrl,launcherImageUrl:e.launcherImageUrl,headerBadge:e.headerBadge,headerCartUrl:e.headerCartUrl,showHeaderFavorites:typeof e.onFavoritesClick=="function"||e.headerFavoritesToggle===!0,onCartClick:()=>{e.headerCartUrl?this._saveSessionAndOpenURL(e.headerCartUrl):e.onCartClick?.()},onFavoritesClick:()=>{if(E.trackLikeList(),typeof e.onFavoritesClick=="function"){e.onFavoritesClick();return}this._openFavoritesPanel()},getMobileState:()=>this._openState??"full",getMobileViewport:()=>this._isMobileViewport,onMobileSnap:m=>{m==="close"?this.close():(this._openState=m,this._applyOpenStateClasses())},onThumbnailClick:m=>this._rollbackToThread(m),onLinkClick:m=>{this._saveSessionAndOpenURL(m)},voiceEnabled:e.voiceEnabled,voiceLang:e.locale?`${e.locale.split("-")[0]??"tr"}-${(e.locale.split("-")[1]??e.locale.split("-")[0]??"TR").toUpperCase()}`:void 0,presentation:{onPinnedToBottomChange:m=>{this._presentation.pinnedToBottom=m},onUserInteractingChange:m=>{this._presentation.userInteracting=m},onFormerMessagesHint:()=>{this._presentation.focusedThreadId&&this._hasMultipleThreadIds()&&this._drawer?.setFormerMessagesButtonVisible(!0)},shouldBlockSoftAutoScroll:()=>this._presentation.shouldBlockStreamAutoScroll(),onReleasePresentationFocus:()=>this._releasePresentationFocus()}}),this._applyUiHints(),this._extendedModeManager=new ui({onChange:m=>this._panel?.notifyExtension(m),productDetailsInPanel:(e.isDemoWebsite??!1)&&(e.productDetailsExtended??!1)}),this._panel=new mi({drawer:()=>this._drawer,shadow:()=>this._shadow,currentThreadId:()=>this._currentThreadId,bridge:()=>this._bridge,extendedModeManager:()=>this._extendedModeManager,i18n:()=>this._i18n,rollbackToThread:m=>this._rollbackToThread(m)}),o!=="inline"&&this._drawer.getElement().classList.add("gengage-chat-drawer--hidden");const d=this._drawer.restorePanelState(e.accountId),l=e.panelMode??"auto";l==="collapsed"?this._drawer.setPanelCollapsed(!0):l==="expanded"&&this._drawer.setForceExpanded();const p=sessionStorage.getItem("gengage_restore_session_id"),s=sessionStorage.getItem("gengage_restore_sku"),u=!!(p&&s);u&&(sessionStorage.removeItem("gengage_restore_session_id"),sessionStorage.removeItem("gengage_restore_sku"));try{const m=new pi;await m.open(),this._session=new ct(m),await this._restoreFromIndexedDB(u)}catch{this._session=new ct(null)}this._registerPublicAPI(),e.mobileInitialState!==void 0&&(this._openState=e.mobileInitialState),this._mobileBreakpoint=e.mobileBreakpoint??768,this._syncViewportState();const h=()=>this._syncViewportState();if(window.addEventListener("resize",h,{passive:!0}),this.addCleanup(()=>window.removeEventListener("resize",h)),window.visualViewport){const m=()=>{if(!this._drawerVisible||!this._isMobileViewport)return;const f=this._drawer?.getElement();if(!f)return;const y=window.innerHeight-(window.visualViewport?.height??window.innerHeight);f.style.setProperty("--gengage-keyboard-offset",`${Math.max(0,y)}px`)};window.visualViewport.addEventListener("resize",m),this.addCleanup(()=>window.visualViewport?.removeEventListener("resize",m))}o==="inline"&&(this._drawerVisible=!0,this.isVisible=!0,this._applyOpenStateClasses(),this._presentation.setShown(!0),setTimeout(()=>this._maybeAutoAnchorUnreadAssistant(),60));const w={namespace:"chat",onMessage:m=>this._handleBridgeMessage(m)};e.allowedOrigins!==void 0&&(w.allowedOrigins=e.allowedOrigins),this._bridge=new Rt(w),this._lastSku=this.config.pageContext?.sku,this._initComplete=!0;for(const m of this._pendingActions)this._sendAction(m.action,m.options);this._pendingActions=[],this._pillLauncherApply&&o==="floating"&&(await this._pillLauncherApply(),this._pillLauncherApply=null),E.dispatch("gengage:chat:ready",{}),E.trackInit("chat"),e.onReady?.()}onUpdate(e){e.sku!==void 0&&e.sku!==this._lastSku&&(this._lastSku=e.sku,this._resetForNewPage())}onShow(){this._showDrawer(),this.emit("open"),E.dispatch("gengage:chat:open",{state:this._openState}),E.trackShow("chat"),this.config.onOpen?.(),this._showWelcomeIfNeeded(),this._maybePrimeEntryContextOpening(),!this._pdpLaunched&&this.config.pageContext?.sku&&(this._pdpLaunched=!0,this._pdpPrimingInFlight=!0,this._sendAction({title:"",type:"launchSingleProduct",payload:{sku:this.config.pageContext.sku,...this._resolveContextualOpeningMessage("product")?{opening_message:this._resolveContextualOpeningMessage("product")}:{},...this._resolveContextualOpeningGuidance("product")?{opening_guidance:this._resolveContextualOpeningGuidance("product")}:{}}},{silent:!0,isPdpPrime:!0,preservePills:!0}))}onHide(){(this.config.variant??"floating")==="floating"&&(this.root.style.display=""),this._hideDrawer(),this.emit("close"),E.dispatch("gengage:chat:close",{}),this.config.onClose?.()}onDestroy(){this._releaseHostDocumentScrollLock(),this._abortAllActiveRequests(),this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._comparisonRefreshRafId!==null&&(cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=null),this._drawer?.destroy(),ht(),this._drawer=null,this._bridge?.destroy(),this._bridge=null,this._extendedModeManager=null,this._panel?.destroy(),this._panel=null,this._session?.close(),this._session=null,this._localPanelHistory=[],this._currentPanelSource=null,window.gengage&&delete window.gengage.chat,this._shadow&&(this._shadow.innerHTML="",this._shadow=null),this._rootEl=null}open(e){e?.state!==void 0&&(this._openState=e.state,this._drawerVisible&&this._applyOpenStateClasses()),this.show(),e?.initialMessage!==void 0&&this._sendMessage(e.initialMessage)}openWithAction(e,a){a?.sku!==void 0&&this.update({sku:a.sku}),this._pdpLaunched=!0,a?.state!==void 0?this._openState=a.state:this._isMobileViewport&&(this._openState="half"),this.show(),this._drawerVisible&&this._applyOpenStateClasses(),this._sendAction(e)}sendMessage(e){this._sendMessage(e)}sendAction(e,a){this._sendAction(e,a)}close(){this.hide()}saveSession(e,a){sessionStorage.setItem("gengage_restore_session_id",e),sessionStorage.setItem("gengage_restore_sku",a)}get isOpen(){return this._drawerVisible}addCallback(e,a){let n=this._eventCallbacks.get(e);return n||(n=new Set,this._eventCallbacks.set(e,n)),n.add(a),()=>{n.delete(a),n.size===0&&this._eventCallbacks.delete(e)}}_applyDiscountedPriceColorVar(e){const a=this.root;e==="client"?a.style.setProperty("--gengage-discounted-price-color","var(--client-primary)"):a.style.removeProperty("--gengage-discounted-price-color")}_abortAllActiveRequests(){for(const e of this._abortControllers)e.abort();this._abortControllers.clear()}_pruneEmptyStreamingAssistantPlaceholders(){const e=[];let a=!1;for(const n of this._messages){if(n.role==="assistant"&&(n.status==="streaming"||n.status==="done")&&(n.content==null||n.content.length===0)){if(n.threadId){this._threadsWithFirstBot.delete(n.threadId),this._presentation.finalizeAssistantGroup(n.threadId),this._shadow?.querySelectorAll(`[data-thread-id="${CSS.escape(n.threadId)}"]:not([data-message-id])`).forEach(r=>r.remove()),this._panel&&(this._panel.threads=this._panel.threads.filter(r=>r!==n.threadId));const i=this._thumbnailEntries.length;this._thumbnailEntries=this._thumbnailEntries.filter(r=>r.threadId!==n.threadId),this._thumbnailEntries.length!==i&&(a=!0)}this._drawer?.removeMessageBubble(n.id),this._panel?.snapshots.delete(n.id),this._panel?.snapshotTypes.delete(n.id);continue}e.push(n)}this._messages.length=0,this._messages.push(...e),a&&this._drawer?.setThumbnails(this._thumbnailEntries)}_resetForNewPage(){this._activeRequestThreadId=null,this._abortAllActiveRequests(),this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._messages.length=0,this._drawer?.clearMessages(),this._drawer?.clearPanel(),this._currentPanelSource=null,this._panel.snapshots.clear(),this._panel.threads=[],this._thumbnailEntries=[],this._drawer?.setThumbnails([]),this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._viewedProductSkus.clear(),this._currentThreadId=null,this._lastThreadId=null,this._lastBackendContext=null,this._chatCreatedAt=new Date().toISOString(),this._pdpLaunched=!1,this._entryContextPrimed=!1,this._pdpPrimingInFlight=!1,this._queuedUserMessages=[],this._productContextUnavailableSku=null,this._presentation.reset(),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1),this._modeController.reset()&&(this._drawer?.setInputPlaceholder(this._i18n.inputPlaceholder),this._drawer?.setAttachmentControlsVisible(!0),this._drawer?.setBeautyPhotoStepCard({visible:!1}))}_clearAssistantPanelLikeStreamClearPanel(){this._choicePrompterEl?.remove(),this._choicePrompterEl=null,this._drawer?.clearPanel(),this._currentPanelSource=null,this._thumbnailEntries=[],this._drawer?.setThumbnails([]),this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._panel&&(this._panel.currentType=null,this._panel.updateExtendedMode(""),this._panel.updateTopBar(""))}_flushPresentationScroll(){const e=this._presentation.scrollRequest;if(!e||!this._drawer)return;let a=!1;e.type==="thread"&&e.threadId?(a=this._drawer.scrollThreadIntoView(e.threadId,e.behavior),a||(this._drawer.scrollToBottomPresentation(e.behavior),a=!0)):e.type==="bottom"&&(this._drawer.scrollToBottomPresentation(e.behavior),a=!0),a&&this._presentation.consumeScrollRequest(e.id)}_releasePresentationFocus(){this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1)}_hasMultipleThreadIds(){const e=new Set;for(const a of this._messages)a.threadId&&e.add(a.threadId);return e.size>1}_orderedThreadIds(){const e=[],a=new Set;for(const n of this._messages)n.threadId&&!a.has(n.threadId)&&(a.add(n.threadId),e.push(n.threadId));return e}_maybeAutoAnchorUnreadAssistant(){if(!this._drawer||!this._presentation.shown)return;const e=this._orderedThreadIds();if(e.length===0)return;const a=fi(e,this._presentation);if(!a)return;const n=`${a}:assistant`;this._presentation.lastAutoAnchoredGroupId!==n&&(this._presentation.userInteracting&&!this._presentation.pinnedToBottom||this._drawer.scrollThreadIntoView(a,"smooth")&&this._presentation.markGroupAutoAnchored(n))}_handleBridgeMessage(e){switch(e.type){case"openChat":this.open();break;case"closeChat":this.close();break;case"startNewChatWithLauncherAction":{const a=e.payload,n=a?.action,i=De(n)?n:De(a)?a:null;i&&this._sendAction(i,{silent:!0}),this.open();break}case"startNewChatWithDetailContext":{const a=e.payload;if(a&&typeof a=="object"){this._bridgeContext=a;const n=a.sku;if(n&&this.update({sku:n}),De(a.action)){this._pdpLaunched=!0,this.open(),this._sendAction(a.action);break}}this.open();break}case"launcherAction":{const a=e.payload?.action;a&&typeof a=="object"&&"type"in a&&this._sendAction(a);break}case"scrollToBottom":this._presentation.requestScrollToBottom("smooth"),setTimeout(()=>this._flushPresentationScroll(),40);break;case"addToCardHandler":this._bridge?.send("addToCardResult",e.payload);break;case"cartQuantityHandler":{const a=e.payload;a&&"quantity"in a&&typeof a.quantity=="number"&&(this._cartQuantity=a.quantity);break}case"favoritesCountHandler":{const a=e.payload?.count;typeof a=="number"&&a>=0&&this._drawer?.updateFavoritesBadge(a);break}case"minimizeRequestedByUser":this._extendedModeManager?.setHiddenByUser(!0);break;case"bgColorChange":{const a=e.payload?.color;typeof a=="string"&&dt(a)&&this._shadow&&this._shadow.host.style.setProperty("--gengage-chat-bg",a);break}default:break}}_registerPublicAPI(){window.gengage||(window.gengage={}),window.gengage.chat={open:e=>this.open(e),openWithAction:(e,a)=>this.openWithAction(e,a),sendMessage:e=>this.sendMessage(e),sendAction:(e,a)=>this.sendAction(e,a),close:()=>this.close(),saveSession:(e,a)=>this.saveSession(e,a),get isOpen(){return!1},on:(e,a)=>this.on(e,a),trackCheckout:(e,a)=>this.trackCheckout(e,a),flushMeteringSummary:e=>this.flushMeteringSummary(e),addCallback:(e,a)=>this.addCallback(e,a)},Object.defineProperty(window.gengage.chat,"isOpen",{get:()=>this._drawerVisible})}_showDrawer(){if(this._drawerVisible)return;this._drawerVisible=!0;const e=this._drawer?.getElement();e&&e.classList.remove("gengage-chat-drawer--hidden"),this._applyOpenStateClasses(),this._drawer?.trapFocus(),this._isMobileViewport&&this._openState==="half"||this._drawer?.focusInput(),this._extendedModeManager?.setChatShown(!0),this._presentation.setShown(!0),setTimeout(()=>this._maybeAutoAnchorUnreadAssistant(),60)}_showWelcomeIfNeeded(){if(this._messages.length!==0)return;const e=this._resolveOpeningContextKey(),a=this._resolveContextualOpeningActions(e);if(a.length>0&&this._drawer?.setPills(a.map(r=>({label:r.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(r,e))}))),e==="product"&&this.config.pageContext?.sku||this._shouldPrimeContextualOpening(e))return;const n=this._resolveContextualOpeningMessage(e);if(!n)return;const i={id:We(),role:"assistant",content:n,timestamp:Date.now(),status:"done"};this._messages.push(i),this._drawer?.addMessage(i)}_resolveOpeningContextKey(){switch(this.config.pageContext?.pageType){case"home":return"home";case"search":case"plp":return"listing";case"pdp":return"product";default:return"default"}}_resolveContextualOpeningMessage(e=this._resolveOpeningContextKey()){return this.config.openingMessagesByContext?.[e]??(e!=="default"?this.config.openingMessagesByContext?.default:void 0)??this.config.welcomeMessage}_resolveContextualOpeningGuidance(e=this._resolveOpeningContextKey()){return this.config.openingGuidanceByContext?.[e]??(e!=="default"?this.config.openingGuidanceByContext?.default:void 0)}_resolveContextualOpeningActions(e=this._resolveOpeningContextKey()){const a=this.config.welcomeActionsByContext?.[e]??(e!=="default"?this.config.welcomeActionsByContext?.default:void 0);return a?.length?a.filter(n=>typeof n?.title=="string"&&n.title.trim().length>0):(this.config.welcomeActions??[]).filter(n=>typeof n=="string"&&n.trim().length>0).map(n=>({title:n}))}_resolveContextualOpeningAction(e,a=this._resolveOpeningContextKey()){const n=e.title.trim(),i=this.config.pageContext?.sku??this._readContextStringField("sku"),r=this._readContextStringListField("visible_skus")??[];return e.icon==="review"&&i?{title:n,type:"reviewSummary",payload:{sku:i}}:e.icon==="similar"&&i?{title:n,type:"findSimilar",payload:{sku:i}}:e.icon==="compare"&&a==="listing"&&r.length>=2?{title:n,type:"getComparisonTable",payload:{sku_list:r.slice(0,2)}}:{title:n,type:"user_message",payload:n}}_readContextStringField(e){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,i=e.replace(/_([a-z])/g,(o,c)=>c.toUpperCase()),r=a?.[e]??n?.[e]??a?.[i]??n?.[i];return typeof r=="string"&&r.trim().length>0?r.trim():void 0}_readContextStringListField(e){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,i=e.replace(/_([a-z])/g,(c,d)=>d.toUpperCase()),r=a?.[e]??n?.[e]??a?.[i]??n?.[i];if(!Array.isArray(r))return;const o=r.filter(c=>typeof c=="string"&&c.trim().length>0);return o.length>0?o:void 0}_buildEntryOpeningPageDetails(){const e={};e.url=this.config.pageContext?.url??window.location.href;const a=this._readContextStringField("page_title");a&&(e.page_title=a);const n=this._readContextStringField("page_description");n&&(e.page_description=n);const i=this._readContextStringField("search_query");i&&(e.search_query=i);const r=this._readContextStringListField("visible_skus");r?.length&&(e.visible_skus=r);const o=this._readContextStringListField("popular_searches");o?.length&&(e.popular_searches=o);const c=this.config.pageContext?.categoryTree??this._readContextStringListField("category_path");return c?.length&&(e.category_path=c),Object.keys(e).length>0?e:void 0}_shouldPrimeContextualOpening(e=this._resolveOpeningContextKey()){return this._messages.length!==0||this._entryContextPrimed||this._pdpPrimingInFlight||e==="product"?!1:!!(this.config.openingMessagesByContext||this.config.openingGuidanceByContext||this.config.welcomeActionsByContext)}_maybePrimeEntryContextOpening(){const e=this._resolveOpeningContextKey();if(!this._shouldPrimeContextualOpening(e))return;this._entryContextPrimed=!0;const a={text:"",is_entry_context_opening:1,opening_context_key:e},n=this._buildEntryOpeningPageDetails();n&&(a.page_details=n);const i=this._resolveContextualOpeningMessage(e);i&&(a.opening_message=i);const r=this._resolveContextualOpeningGuidance(e);r&&(a.opening_guidance=r),this._sendAction({title:"",type:"user_message",payload:a},{silent:!0,preservePills:!0})}_hideDrawer(){if(!this._drawerVisible)return;this._drawer?.releaseFocus(),this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._drawerVisible=!1,this._openState="full";const e=this._drawer?.getElement();e&&e.classList.add("gengage-chat-drawer--hidden"),this._applyOpenStateClasses(),this._extendedModeManager?.setChatShown(!1),this._presentation.setShown(!1),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1)}_syncViewportState(){if(this._rootEl){if(this._isMobileViewport=window.innerWidth<=this._mobileBreakpoint,this._rootEl.classList.toggle("gengage-chat-root--mobile",this._isMobileViewport),this._launcher){const e=this._isMobileViewport&&this.config.hideMobileLauncher===!0;this._launcher.container.classList.toggle("gengage-chat-launcher--hidden-mobile",e)}this._applyOpenStateClasses()}}_isMaximizedForHostChrome(){if(!this._drawerVisible)return!1;const e=this.config.variant??"floating";return e==="inline"?!1:e==="overlay"?!0:this._drawer?.isPanelVisible()??!1}_applyOpenStateClasses(){if(!this._rootEl)return;const e=this._drawerVisible&&this._isMobileViewport&&this._openState==="half",a=this._drawerVisible&&this._isMobileViewport&&this._openState==="full",n=this._isMaximizedForHostChrome();if(this._rootEl.classList.toggle("gengage-chat-root--open",this._drawerVisible),this._rootEl.classList.toggle("gengage-chat-root--mobile-half",e),this._rootEl.classList.toggle("gengage-chat-root--mobile-full",a),this._rootEl.classList.toggle("gengage-chat-root--maximized-host-chrome",n),this._backdropEl){const i=n&&(this.config.variant??"floating")!=="inline";this._backdropEl.setAttribute("aria-hidden",i?"false":"true")}this._syncHostDocumentScrollLock()}_syncHostDocumentScrollLock(){if(!(typeof document>"u")){if((this.config.variant??"floating")==="inline"){this._releaseHostDocumentScrollLock();return}this._isMaximizedForHostChrome()?this._applyHostDocumentScrollLock():this._releaseHostDocumentScrollLock()}}_hostScrollEventShouldReachChatScroller(e){try{const a=e.composedPath();if(!a.includes(this.root))return!1;for(const n of a){if(n===this.root)break;if(!(n instanceof HTMLElement))continue;if(this._backdropEl&&(n===this._backdropEl||this._backdropEl.contains(n)))return!1;const i=window.getComputedStyle(n),r=(i.overflowY==="auto"||i.overflowY==="scroll")&&n.scrollHeight>n.clientHeight+1,o=(i.overflowX==="auto"||i.overflowX==="scroll")&&n.scrollWidth>n.clientWidth+1;if(r||o)return!0}return!1}catch{return!1}}_applyHostDocumentScrollLock(){typeof document>"u"||this._hostScrollLockActive||(document.addEventListener("touchmove",this._preventHostDocumentTouchMove,{capture:!0,passive:!1}),document.addEventListener("wheel",this._preventHostDocumentWheel,{capture:!0,passive:!1}),this._hostScrollLockActive=!0)}_releaseHostDocumentScrollLock(){typeof document>"u"||!this._hostScrollLockActive||(document.removeEventListener("touchmove",this._preventHostDocumentTouchMove,{capture:!0}),document.removeEventListener("wheel",this._preventHostDocumentWheel,{capture:!0}),this._hostScrollLockActive=!1)}_handleAttachment(e){const a=Vt(e);if(!a.ok){E.dispatch("gengage:global:error",{message:a.reason==="invalid_type"?this._i18n.invalidFileType:this._i18n.fileTooLarge,source:"chat"});return}this._drawer?.stageAttachment(e)}_sendMessage(e,a){this._pdpPrimingInFlight&&(this._abortAllActiveRequests(),this._pdpPrimingInFlight=!1,this._queuedUserMessages=[]),(!this._messages.some(i=>i.role==="user")||this._drawer?.isKvkkBannerVisible())&&(Re(this.config.accountId),this._drawer?.hideKvkkBanner()),E.trackMessageSent(),this._messages.some(i=>i.role==="user")||E.trackConversationStart(),E.debugLog("chat","sendMessage",{mode:this._assistantMode,hasAttachment:a!==void 0,textLength:e.length});const n=a!==void 0?{title:e,type:this._modeController.resolveAttachmentActionType(),payload:e?{text:e}:{}}:{title:e,type:"user_message",payload:e};a!==void 0?this._sendAction(n,{attachment:a}):this._sendAction(n)}_flushQueuedUserMessages(){if(this._pdpPrimingInFlight||this._queuedUserMessages.length===0)return;const e=[...this._queuedUserMessages];this._queuedUserMessages=[];for(const a of e)this._sendMessage(a.text,a.attachment)}_applyUiHints(){this._modeController.applyUiHints(this._drawer,this._i18n.inputPlaceholder,()=>{this._choicePrompterEl?.remove(),this._choicePrompterEl=null,this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(e=>e.remove())})}_handleRedirectMetadata(e){this._modeController.handleRedirect(e)}_sendAction(e,a){if(this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._lastSentAction={action:e,options:a},!this._initComplete){this._pendingActions.length<10&&this._pendingActions.push({action:e,options:a});return}if(this._choicePrompterEl?.remove(),this._choicePrompterEl=null,a?.preservePanel||si(),!a?.preservePanel&&this._comparisonSelectMode&&e.type!=="getComparisonTable"&&(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[]),a?.preservePanel||(this._localPanelHistory=[]),this._currentThreadId&&this._lastThreadId&&this._lastThreadId>this._currentThreadId){const v=this._currentThreadId,b=this._messages.filter(x=>x.threadId!==void 0&&x.threadId>v);this._messages=this._messages.filter(x=>!x.threadId||x.threadId<=v);for(const x of b)this._shadow?.querySelector(`[data-message-id="${CSS.escape(x.id)}"]`)?.remove(),this._panel.snapshots.delete(x.id),this._panel.snapshotTypes.delete(x.id);this._shadow?.querySelectorAll("[data-thread-id]")?.forEach(x=>{x instanceof HTMLElement&&x.dataset.threadId&&x.dataset.threadId>v&&x.remove()})}a?.preservePills||this._drawer?.setPills([]),this._drawer?.clearInputAreaChips(),this._bridge?.send("isResponding",!0);const n=We();this._currentThreadId=n,this._lastThreadId=n,this._panel&&e.type!=="launchSingleProduct"&&(this._panel.lastActionType=e.type);const i=a?.preservePanel===!0,r=e.type==="launchSingleProduct"&&a?.silent===!0&&a?.isPdpPrime===!0;if(i||(this._activeRequestThreadId=n),!a?.silent&&!i&&this._drawer?.setPresentationFocus(n),!a?.silent){const v=typeof e.payload=="string"?e.payload:typeof e.payload?.text=="string"?e.payload.text:e.title,b=this._messages.length>0?this._messages[this._messages.length-1]:void 0;if(!(b!==void 0&&b.role==="user"&&b.content===v)){const x=this._createMessage("user",v);x.threadId=n,a?.attachment!==void 0&&(x.attachment=a.attachment),this._drawer?.addMessage(x),this._messages.push(x)}}if(!a?.silent&&this._assistantMode==="shopping"&&this._hasUnavailableProductContext()&&(e.type==="user_message"||e.type==="inputText")){const v=this._i18n.productNotFoundMessage,b=this._createMessage("assistant",v);b.threadId=n,b.status="done",this._messages.push(b),this._ensureAssistantMessageRendered(b),this._drawer?.updateBotMessage(b.id,v),this._drawer?.setPresentationFocus(n),this._bridge?.send("isResponding",!1),this.emit("message",b),this._persistToIndexedDB().catch(()=>{});return}let o=this._currentPanelSource,c=!1;const d=()=>{c||a?.preservePanel||(o=this._currentPanelSource,c=!0)},l=()=>{if(this._drawer?.isPanelLoading()){if(o){const v=this._buildRenderContext(),b=this._renderPanelFromSource(o,v);this._drawer.setPanelContent(b),this._drawer.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(o)),this._currentPanelSource=o}else this._drawer.clearPanel(),this._currentPanelSource=null;o=null}};e.type==="getComparisonTable"&&(this._drawer?.showPanelLoading("comparisonTable"),this._panel?.updateTopBarForLoading("comparisonTable")),!a?.silent&&!i&&this._pruneEmptyStreamingAssistantPlaceholders(),this._drawer?.showTypingIndicator();let p="";const s=this._createMessage("assistant","");s.threadId=n,s.status="streaming",a?.silent&&(s.silent=!0),this._messages.push(s),this._presentation.registerAssistantActivity(n),this._presentation.requestThreadFocus(n,"smooth"),(a?.silent||i)&&this._drawer?.setPresentationFocus(n),this._drawer?.setFormerMessagesButtonVisible(!1),setTimeout(()=>this._flushPresentationScroll(),40),a?.preservePanel||this._abortAllActiveRequests();const u={middlewareUrl:this.config.middlewareUrl,...this.config.accountId?{accountId:this.config.accountId}:{}};a?.attachment!==void 0&&(u.attachment=a.attachment);const h=this._getVisibleMessages().filter(v=>v!==s&&(v.content||v.role==="assistant")).slice(-50).map(v=>({role:v.role==="user"?"user":"model",content:v.content??""})),w={outputLanguage:Ai(this.config.locale),parentUrl:window.location.href,windowWidth:String(window.innerWidth),windowHeight:String(window.innerHeight),selfUrl:"",id:this.config.session?.sessionId??"",userId:this.config.session?.userId??"",appId:this.config.accountId,threads:[],createdAt:this._chatCreatedAt,kvkkApproved:lt(this.config.accountId),voiceEnabled:this.config.voiceEnabled??!1,threadId:n,isControlGroup:this.config.session?.abTestVariant==="control",isMobile:this._isMobileViewport};this._modeController.isShopping||(w.assistantMode=this._modeController.mode),this.config.session?.viewId!==void 0&&(w.viewId=this.config.session.viewId);const m=$t(e,{pageContext:this.config.pageContext,backendContext:this._lastBackendContext,isMobile:this._isMobileViewport}),f={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",type:m.type,locale:this.config.locale??"tr",meta:w,context:{...this._lastBackendContext??{},messages:h,session_id:this.config.session?.sessionId??""}};this.config.session?.userId!==void 0&&(f.user_id=this.config.session.userId),this.config.session?.viewId!==void 0&&(f.view_id=this.config.session.viewId),m.payload!==void 0&&(f.payload=m.payload),this.config.pageContext?.sku!==void 0&&(f.sku=this.config.pageContext.sku),this.config.pageContext?.pageType!==void 0&&(f.page_type=this.config.pageContext.pageType);const y=crypto.randomUUID(),B=Date.now();let S=0,A=!1,_=!1,M=!1,H=!1,T=!1;const q=ka();let Z=null;const Y=()=>{if(this._drawer){if(this._isMobileViewport||!M){this._drawer.setPanelAiZoneState("hidden");return}H||(T?this._drawer.setPanelAiZoneState("hidden"):this._drawer.setPanelAiZoneState("analyzing",{analyzingLabel:this._i18n.aiAnalysisAnalyzingLabel}))}};this.track(E.streamStartEvent(this.analyticsContext(),{endpoint:"process_action",request_id:y,widget:"chat"}));let I=null;if(I=Yt(f,{onTextChunk:(v,b,x)=>{if(!i&&n!==this._activeRequestThreadId||(p+=v,this._drawer?.removeTypingIndicator(),x?.skuToProductItem&&(this._skuToProductItem={...this._skuToProductItem,...x.skuToProductItem}),x?.conversationMode&&(this._conversationMode=x.conversationMode),x?.renderHint&&(s.renderHint=x.renderHint),this.track(E.streamChunkEvent(this.analyticsContext(),{request_id:y,chunk_index:S++,widget:"chat"})),!this._drawer))return;let k=p;const L=x?.kvkk===!0||Ge(k);if(b&&L){const R=this.config.accountId;if(!lt(R)){const P=Ei(k);P?this._drawer?.showKvkkBanner(P,()=>{this._drawer?.hideKvkkBanner(),Re(R)}):Re(R)}k=Si(k)}const N=this._shadow?.querySelector(`[data-message-id="${s.id}"] .gengage-chat-bubble-text`);if(N?N.innerHTML=E.sanitizeHtml(k):(s.content=k,s.role==="assistant"&&s.threadId&&!this._threadsWithFirstBot.has(s.threadId)&&(this._threadsWithFirstBot.add(s.threadId),this._drawer.markFirstBotMessage(s.id)),this._drawer.addMessage(s)),b)if(s.content=k,s.status="done",E.trackMessageReceived(),Sa(s))this._drawer?.updateBotMessage(s.id,k,"photo_analysis",s.photoAnalysis);else{const R=this._shadow?.querySelector(`[data-message-id="${s.id}"] .gengage-chat-bubble-text`);if(R){this._activeTypewriter?.cancel();const P=x?.productMentions;this._activeTypewriter=ei({container:R,html:E.sanitizeHtml(k),onTick:()=>this._drawer?.scrollToBottomIfNeeded(),onComplete:()=>{this._activeTypewriter=null,P&&P.length>0&&R&&ti({container:R,mentions:P,onProductClick:j=>{this._sendAction({title:P.find(U=>U.sku===j)?.short_name??j,type:"launchSingleProduct",payload:{sku:j}})}})}})}}},onUISpec:(v,b,x,k)=>{if(!i&&n!==this._activeRequestThreadId||b!=="chat")return;k&&(this._clearAssistantPanelLikeStreamClearPanel(),A=!1);const L=v.elements[v.root],N=L?.type??"unknown";if(Ca(N,L?.props??{},q,{drawer:this._drawer,ensureRendered:()=>this._ensureAssistantMessageRendered(s),cancelTypewriter:()=>{this._activeTypewriter?.cancel(),this._activeTypewriter=null},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:T},s))return;const R=N==="ProductGrid"&&L?.props?.similarsAppend===!0,P=this.config.productDetailsExtended!==!0&&(N==="ProductDetailsPanel"||R);P&&!k&&(this._clearAssistantPanelLikeStreamClearPanel(),A=!1);const j=N==="ProductDetailsPanel"&&x!=="panel"?"panel":x;this.track(E.streamUiSpecEvent(this.analyticsContext(),{request_id:y,chunk_index:S,component_type:N,widget:"chat"}));const U=this._buildRenderContext();if(U.isStreaming=!0,N==="ComparisonTable"){const O=L?.props?.products;E.trackCompareReceived(Array.isArray(O)?O.length:0)}if(N==="ProductGrid"){const O=L?.children?.length??0;E.trackSearch(void 0,O)}const $=j==="panel"&&this._panel?this._panel.toPanelSpec(v):v;if(j==="panel"&&this._panel&&!P){const O=!_;_=!0;const z=bi({componentType:N,similarsAppend:L?.props?.similarsAppend===!0,currentPanelType:this._panel.currentType,hasPanelContent:this._drawer?.hasPanelContent()??!1,isPanelLoading:this._drawer?.isPanelLoading()??!1,isFirstPanelContentInStream:O});U.panelProductListHeading=void 0,N==="ProductGrid"&&(z==="appendSimilars"?U.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products":this._applyPanelListHeadingToContext(U,{kind:"spec",spec:$})),z==="appendSimilars"?this._appendSimilarsToPanel($,U):z==="append"?(this._drawer?.appendPanelContent(this._renderUISpec($,U)),this._comparisonSelectMode&&this._refreshComparisonUI()):(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._drawer?.setComparisonDockContent(null),this._drawer?.setPanelContent(this._renderUISpec($,U)),this._currentPanelSource={kind:"spec",spec:$},this._panel.currentType=N),this._drawer?.setDividerPreviewEnabled((this._panel.currentType??N)==="ProductGrid"),N==="ProductDetailsPanel"&&e.type==="launchSingleProduct"&&this._clearUnavailableProductContext(),s.threadId&&!this._panel.threads.includes(s.threadId)&&this._panel.threads.push(s.threadId);const W=this._panel.currentType??N,D=L?.props?.panelTitle;if(this._panel.updateTopBar(W,D),this._panel.updateExtendedMode(N),this._isMobileViewport&&r&&this._drawer?.hideMobilePanel(),N==="ProductGrid"||N==="CategoriesContainer"){if(M=!this._isMobileViewport,Z){const Q=this._buildRenderContext();Q.isStreaming=!0;const ke=this._renderUISpec(Z,Q);H=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:ke}),Z=null}}else z!=="appendSimilars"&&z!=="append"&&(M=!1,Z=null,this._drawer?.setPanelAiZoneState("hidden"))}if(N==="ProductDetailsPanel"&&j==="panel"&&(!s.silent||r)){const O=L?.props?.product;if(O){const z={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:O}}}},W=this._shadow?.querySelector(".gengage-chat-messages");if(W){const D=this._renderUISpec(z,U);s.threadId&&(D.dataset.threadId=s.threadId);const Q=this._shadow?.querySelector(`[data-message-id="${s.id}"]`);Q&&Q.parentNode===W?Q.after(D):W.appendChild(D),D.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),_=!0}}}const K=N==="AITopPicks"||N==="AIGroupingCards";let X=!1,ee=!1;if(P&&R&&(U.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products"),K&&!this._isMobileViewport&&!s.silent)if(M){const O=this._renderUISpec(v,U);H=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:O}),X=!0,Z=null}else Z=v,ee=!0;const V=r&&N==="GroundingReviewCard";if((!s.silent||V)&&(j!=="panel"||N==="ProductCard"||P&&N==="ProductGrid"&&(!R||this._isMobileViewport))&&N!=="ActionButtons"&&!X&&!(ee&&K)){const O=this._shadow?.querySelector(".gengage-chat-messages");if(O){const z=this._renderUISpec(v,U);s.threadId&&(z.dataset.threadId=s.threadId),O.appendChild(z),z.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),P&&N==="ProductGrid"&&(_=!0)}}if((N==="ProductGrid"||N==="ProductCard")&&s.threadId){const O=L?.children??[],z=N==="ProductGrid"?O.map(W=>v.elements[W]?.props?.product).filter(Boolean):[L?.props?.product].filter(Boolean);for(const W of z){const D=W.sku,Q=W.imageUrl;D&&Q&&this._thumbnailEntries.push({sku:D,imageUrl:Q,threadId:s.threadId}),D&&this._viewedProductSkus.add(D)}this._drawer?.setThumbnails(this._thumbnailEntries)}if(N==="ProductGrid"||N==="ProductDetailsPanel"){const O=(N==="ProductGrid"?(L?.children??[]).map(z=>v.elements[z]?.props?.product).filter(Boolean):[L?.props?.product??L?.props].filter(Boolean)).map(z=>z.imageUrl).filter(z=>typeof z=="string").slice(0,5);O.length>0&&this._bridge?.send("previewImages",{images:O})}const ie=L?.children?.length??0;if(N==="ProductGrid"&&j==="panel"&&!P&&ie>1&&!this._modeController.isChoicePrompterHidden&&!this._comparisonSelectMode&&!ci(this._currentThreadId??"")){this._choicePrompterEl?.remove(),this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(z=>z.remove()),this._choicePrompterEl=oi({heading:this._i18n.choicePrompterHeading,suggestion:this._i18n.choicePrompterSuggestion,ctaLabel:this._i18n.choicePrompterCta,threadId:this._currentThreadId??"",dismissAriaLabel:this._i18n.dismissAriaLabel,onCtaClick:()=>{this._comparisonSelectMode=!0,this._choicePrompterEl=null,this._refreshComparisonUI()},onDismiss:()=>{this._choicePrompterEl=null}});const O=this._shadow?.querySelector(".gengage-chat-panel-float");if(O){if(O.appendChild(this._choicePrompterEl),this._isMobileViewport&&window.visualViewport){const z=this._choicePrompterEl,W=()=>{window.visualViewport.height/window.innerHeight<.75&&(z.remove(),this._choicePrompterEl===z&&(this._choicePrompterEl=null),window.visualViewport.removeEventListener("resize",W))};window.visualViewport.addEventListener("resize",W)}}else this._choicePrompterEl=null}if(N==="ActionButtons"){const O=L?.props?.buttons;if(O&&O.length>0){const z=[],W=[];for(const D of O)if(ii(D)){const Q={label:D.label,action:D.action};D.icon&&(Q.icon=D.icon),z.push(Q)}else W.push(D);z.length>0&&this._drawer?.setInputAreaChips(z.map(D=>({label:D.label,onAction:()=>this._sendAction(D.action),...D.icon?{icon:D.icon}:{}}))),W.length>0&&this._drawer?.setPills(W.map(D=>{const Q={label:D.label,onAction:()=>this._sendAction(D.action)};return D.icon&&(Q.icon=D.icon),D.image&&(Q.image=D.image),D.description&&(Q.description=D.description),Q}))}}Y(),s.uiSpec=v},onAction:v=>{if(!(!i&&n!==this._activeRequestThreadId)&&v.type==="action"){const b={};this.config.actionHandling?.unknownActionPolicy!==void 0&&(b.unknownActionPolicy=this.config.actionHandling.unknownActionPolicy),this.config.actionHandling?.allowScriptCall!==void 0&&(b.allowScriptCall=this.config.actionHandling.allowScriptCall),pt(v,{openChat:()=>this.open(),navigate:x=>{E.isSafeUrl(x.url)&&(this._bridge?.send("navigate",x),x.newTab?window.open(x.url,"_blank","noopener,noreferrer"):window.location.href=x.url)},saveSession:x=>this.saveSession(x.sessionId,x.sku),addToCart:x=>{E.dispatch("gengage:similar:add-to-cart",x)},scriptCall:x=>{E.dispatch("gengage:chat:script-call",x),this.config.onScriptCall?.(x)}},b)}},onMetadata:v=>{if(!(!i&&n!==this._activeRequestThreadId)&&v.type==="metadata"&&v.meta){if(v.meta.panel!==void 0||v.meta.messages!==void 0||v.meta.message_id!==void 0){this._lastBackendContext=v.meta;const x=Ve(v.meta.panel);x&&(this._modeController.updateFromContext(x),this._applyUiHints())}if(v.meta.panelLoading){const x=typeof v.meta.panelPendingType=="string"?v.meta.panelPendingType:void 0;this.config.productDetailsExtended!==!0&&(x==="productDetails"||x==="productDetailsSimilars")||(A=!0,_=!1,d(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(x),x&&this._panel?.updateTopBarForLoading(x))}if(v.meta.voice){const x=new CustomEvent("gengage:chat:voice",{detail:{payload:v.meta.voice},bubbles:!1,cancelable:!0}),k=window.dispatchEvent(x);if(E.trackVoiceInput(),k){const L=v.meta.voice;L.audio_base64&&(this._activeTtsHandle?.stop(),this._activeTtsHandle=Ia(L.audio_base64,L.content_type??"audio/ogg"))}}if((v.meta.redirectTarget||v.meta.redirect)&&(E.dispatch("gengage:chat:redirect",{target:v.meta.redirectTarget??null,payload:v.meta.redirect??null}),E.debugLog("redirect","redirect dispatched",{target:v.meta.redirectTarget??null}),this._handleRedirectMetadata(v.meta.redirect)),v.meta.analyzeAnimation&&this.config.productDetailsExtended===!0&&(A=!0,_=!1,d(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(),this._panel?.updateTopBarForLoading("productDetails")),v.meta.loading){const x=Array.isArray(v.meta.thinkingMessages)?v.meta.thinkingMessages.filter(L=>typeof L=="string"):[],k=typeof v.meta.loadingText=="string"?v.meta.loadingText:void 0;if(x.length>0){const L=k&&this._modeController.shouldCondenseThinking()?[...x.slice(0,2),k]:x;this._drawer?.setThinkingSteps(L)}typeof k=="string"&&k.length>0&&(this._drawer?.addThinkingStep(k),this._bridge?.send("loadingMessage",{text:k}))}v.meta.visitorDataResponse&&this._bridge?.send("engagingMessage",v.meta.visitorDataResponse),v.meta.formType&&this._bridge?.send("glovOtokoc",{type:v.meta.formType,data:v.meta.formPayload}),v.meta.launcherContent&&this._bridge?.send("launcherContent",v.meta.launcherContent),E.dispatch("gengage:chat:metadata",{payload:v.meta});const b=v.meta;typeof b.prompt_tokens=="number"&&typeof b.completion_tokens=="number"&&this.track(E.llmUsageEvent(this.analyticsContext(),{model:v.model??"unknown",prompt_tokens:b.prompt_tokens,completion_tokens:b.completion_tokens,total_tokens:b.total_tokens??b.prompt_tokens+b.completion_tokens}))}},onError:v=>{if(I&&this._abortControllers.delete(I),!i&&n!==this._activeRequestThreadId)return;T=!0,this._activeTypewriter?.cancel(),this._activeTypewriter=null,Y(),Z=null,this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),this._drawer?.clearInputAreaChips(),Pa(q,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const b=_;A&&!_&&l(),A=!1,_=!1;const x=s.silent||s.content!=null&&s.content.length>0||p.length>0||b,k=typeof navigator<"u"&&navigator.onLine===!1&&E.isLikelyConnectivityIssue(v),L=()=>{this._shadow?.querySelector(`[data-message-id="${CSS.escape(s.id)}"]`)?.remove();const P=this._messages.indexOf(s);P>=0&&this._messages.splice(P,1)};let N=!1;const R=()=>{if(k)return;this.emit("error",v);const P=v.message;P===this._lastErrorMessage?this._consecutiveErrorCount++:(this._consecutiveErrorCount=1,this._lastErrorMessage=P);const j=v.message.trim(),U=j.length>0?j:this._i18n.errorMessage,$={onRetry:()=>{this._lastSentAction&&this._sendAction(this._lastSentAction.action,this._lastSentAction.options)},onNewQuestion:()=>{this._drawer?.focusInput()}};if(this._consecutiveErrorCount>=2){L(),N=!0,this._drawer?.showErrorWithRecovery(this._i18n.accountInactiveMessage,$);return}if(_i(v,U)){L(),N=!0,this._drawer?.showErrorWithRecovery(U,$);return}s.content=U,s.status="done";const K=E.sanitizeHtml(U.replace(/\r\n/g,`
|
|
92
92
|
`).split(`
|
|
93
|
-
`).join("<br />"));this._ensureAssistantMessageRendered(s),this._drawer?.updateBotMessage(s.id,K),this._drawer?.showRecoveryPillsOnly($)};if(x)this._drawer?.setPills([]),s.silent||R();else if(r||this._hasUnavailableProductContext()){this._drawer?.setPills([]);const P=this._i18n.productNotFoundMessage;s.content=P,s.status="done",this._ensureAssistantMessageRendered(s),this._drawer?.updateBotMessage(s.id,P),this._markUnavailableProductContext()}else if(R(),E)return;r&&(this._pdpPrimingInFlight=!1,this._flushQueuedUserMessages()),!B&&s.status==="streaming"&&(s.status="error"),E||this.track(S.streamErrorEvent(this.analyticsContext(),{request_id:y,error_code:"STREAM_ERROR",error_message:f.message,widget:"chat"}))},onDone:()=>{if(I&&this._abortControllers.delete(I),!i&&n!==this._activeRequestThreadId)return;if(T=!0,Y(),Z){const x=this._buildRenderContext();x.isStreaming=!1;const E=this._shadow?.querySelector(".gengage-chat-messages");if(E){const A=this._renderUISpec(Z,x);s.threadId&&(A.dataset.threadId=s.threadId),E.appendChild(A),A.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed()}Z=null}if(this._activeRequestThreadId=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),Ea(q,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0}),L&&!_&&l(),L=!1,_=!1,r&&!p&&!_){const x=this._i18n.productNotFoundMessage;s.content=x,this._ensureAssistantMessageRendered(s),this._drawer?.updateBotMessage(s.id,x),this._markUnavailableProductContext()}if(r){this._pdpPrimingInFlight=!1;const x=this._queuedUserMessages.length>0;this._flushQueuedUserMessages(),x||this._ensurePdpPrimeSuggestedUiIfNeeded()}s.status==="streaming"&&(s.status="done",S.trackMessageReceived()),this._presentation.finalizeAssistantGroup(n);const f=this._shadow?.querySelector(".gengage-chat-comparison-toggle-btn--hidden");f&&(f.classList.remove("gengage-chat-comparison-toggle-btn--hidden"),f.classList.add("gengage-chat-comparison-toggle-btn--reveal")),this.emit("message",s);const b=this._currentPanelSource;this._panel?.snapshotForMessage(s.id,b?()=>{const x=this._buildRenderContext();return this._renderPanelFromSource(b,x)}:void 0),this.track(S.streamDoneEvent(this.analyticsContext(),{request_id:y,latency_ms:Date.now()-M,chunk_count:C,widget:"chat"})),this.track(S.meteringIncrementEvent(this.analyticsContext(),{meter_key:"chat_request",quantity:1,unit:"request"})),this.track(S.chatHistorySnapshotEvent(this.analyticsContext(),{message_count:this._messages.length,history_ref:this.config.session?.sessionId??"",redaction_level:"none"})),this._persistToIndexedDB().catch(()=>{})}},u),this._abortControllers.add(I),!a?.silent&&!i){const f=I;this._drawer?.showStopButton(()=>{f.abort(),this._abortControllers.delete(f),this._drawer?.removeTypingIndicator(),this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),s.status==="streaming"&&(s.status="done")})}}_getVisibleMessages(){const e=this._messages.filter(n=>!n.silent);if(!this._currentThreadId)return e;const a=this._currentThreadId;return e.filter(n=>!n.threadId||n.threadId<=a)}_appendSimilarsToPanel(e,a){if(!this._drawer)return;const n=this._drawer.getPanelContentElement();if(!n)return;a.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products";const i=this._renderUISpec(e,a);i.classList.add("gengage-chat-product-details-similars"),n.appendChild(i),this._mergePanelSourceWithSimilars(e)}_mergePanelSourceWithSimilars(e){const a=this._currentPanelSource;a?.kind==="spec"&&this._panel?.currentType==="ProductDetailsPanel"&&(this._currentPanelSource={kind:"productDetailsWithSimilars",pdpSpec:a.spec,similarsSpec:e})}_renderProductDetailsWithSimilars(e,a,n){this._applyPanelListHeadingToContext(n,{kind:"productDetailsWithSimilars",pdpSpec:e,similarsSpec:a});const i=this._renderUISpec(e,n),r=this._renderUISpec(a,n);return r.classList.add("gengage-chat-product-details-similars"),i.appendChild(r),i}_applyPanelListHeadingToContext(e,a){if(e.panelProductListHeading=void 0,!!this._panel){if(a.kind==="spec"){const n=a.spec.elements[a.spec.root];n?.type==="ProductGrid"&&(n.children?.length??0)>0&&(e.panelProductListHeading=this._panel.titleForComponent("ProductGrid",n.props?.panelTitle??void 0))}else if(a.kind==="productDetailsWithSimilars"){const n=a.similarsSpec.elements[a.similarsSpec.root];n?.type==="ProductGrid"&&(n.children?.length??0)>0&&(e.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products")}}}_renderPanelFromSource(e,a){return this._applyPanelListHeadingToContext(a,e),e.kind==="favorites"?this._buildFavoritesPageEl():e.kind==="productDetailsWithSimilars"?this._renderProductDetailsWithSimilars(e.pdpSpec,e.similarsSpec,a):this._renderUISpec(e.spec,a)}_handleRollback(e){const a=this._messages.find(n=>n.id===e);a?.threadId&&this._rollbackToThread(a.threadId)}_ensurePdpPrimeSuggestedUiIfNeeded(){const e=this.config.pageContext?.sku;if(!e||!this._drawer||this._hasUnavailableProductContext())return;const a="product",n=this._resolveContextualOpeningActions(a);if(n.length>0){this._drawer.setInputAreaChips(n.map(i=>({label:i.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(i,a)),...i.icon?{icon:i.icon}:{}})));return}this._drawer.setInputAreaChips([{label:this._i18n.groundingReviewCta,icon:"review",onAction:()=>this._sendAction({title:this._i18n.customerReviewsTitle,type:"reviewSummary",payload:{sku:e}})},{label:this._i18n.findSimilarLabel,icon:"similar",onAction:()=>this._sendAction({title:this._i18n.findSimilarLabel,type:"findSimilar",payload:{sku:e}})}])}_rollbackToThread(e){if(this._panel&&this._panel.threads.length>0&&!this._panel.threads.includes(e)&&!this._messages.some(r=>r.threadId===e))return;this._currentThreadId=e,this._extendedModeManager?.setHiddenByUser(!1),this._lastThreadId!=null&&e===this._lastThreadId?(this._presentation.setFocusedThreadId(e),this._drawer?.setPresentationFocus(e)):(this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null)),this._drawer?.setFormerMessagesButtonVisible(!1);for(const r of this._messages){const o=this._shadow?.querySelector(`[data-message-id="${CSS.escape(r.id)}"]`);o&&(r.threadId&&r.threadId>e?o.classList.add("gengage-chat-bubble--hidden"):o.classList.remove("gengage-chat-bubble--hidden"))}this._shadow?.querySelectorAll("[data-thread-id]").forEach(r=>{r instanceof HTMLElement&&r.dataset.threadId&&r.dataset.threadId>e?r.classList.add("gengage-chat-bubble--hidden"):r instanceof HTMLElement&&r.classList.remove("gengage-chat-bubble--hidden")});const a=this._messages.find(r=>r.role==="assistant"&&r.threadId===e),n=a?this._panel?.restoreForMessage(a.id):!1;n||(this._drawer?.clearPanel(),this._currentPanelSource=null),n&&a&&(this._currentPanelSource=null);const i=this._panel.currentType??"";if(this._panel?.updateTopBar(i),this._drawer?.setPills([]),requestAnimationFrame(()=>{this._drawer?.scrollThreadIntoView(e,"auto")}),this._session?.db&&this.config.session?.sessionId){const r=this.config.session.sessionId;(async()=>{try{const o=await this._session?.db?.loadContext(r,e);o&&(this._lastBackendContext=o.context),await this._session?.db?.deleteContextsAfterThread(r,e)}catch{}})()}}async _persistToIndexedDB(){!this._session||!this.config.session?.sessionId||await this._session.persist({userId:this.config.session.userId??"",appId:this.config.accountId,sessionId:this.config.session.sessionId,messages:this._messages,currentThreadId:this._currentThreadId,lastThreadId:this._lastThreadId,chatCreatedAt:this._chatCreatedAt,panelSnapshots:this._panel?.snapshots??new Map,panelThreads:this._panel?.threads??[],thumbnailEntries:this._thumbnailEntries,lastBackendContext:this._lastBackendContext,sku:this.config.pageContext?.sku})}_isSameOriginUrl(e){try{return e.trim()?new URL(e,window.location.href).origin===window.location.origin:!1}catch{return!1}}_markUnavailableProductContext(){this._productContextUnavailableSku=this.config.pageContext?.sku??null}_clearUnavailableProductContext(){this._productContextUnavailableSku=null}_hasUnavailableProductContext(){const e=this.config.pageContext?.sku;return e!==void 0&&e.length>0&&this._productContextUnavailableSku===e}_ensureAssistantMessageRendered(e){if(!(this._shadow?.querySelector(`[data-message-id="${CSS.escape(e.id)}"]`)||!this._drawer)){if(e.role==="assistant"&&e.threadId&&!this._threadsWithFirstBot.has(e.threadId)){this._threadsWithFirstBot.add(e.threadId),this._drawer.addMessage(e),this._drawer.markFirstBotMessage(e.id);return}this._drawer.addMessage(e)}}async _saveSessionAndOpenURL(e){this._session&&await this._session.saveAndOpenURL(e,()=>this._persistToIndexedDB(),this._bridge)}async _loadPayload(e,a){return this._session?this._session.loadPayload(e,a):null}async _restoreFromIndexedDB(e){if(!this._session?.db)return;const a=this.config.session?.sessionId;if(!a)return;const n=this.config.session?.userId??"",i=this.config.accountId;if(await this._session.loadFavorites(n,i),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size),!e)return;const r=await this._session.db?.loadSession(n,i,a);if(!r||r.messages.length===0)return;const o=this.config.pageContext?.sku;if(o&&r.sku&&r.sku!==o)return;if(this._pdpLaunched=!0,this._drawer?.lockScrollForRestore(),this._currentThreadId=r.currentThreadId,this._lastThreadId=r.lastThreadId,this._currentThreadId&&this._lastThreadId&&this._currentThreadId>this._lastThreadId&&(this._currentThreadId=this._lastThreadId),this._chatCreatedAt=r.createdAt,r.panelThreads&&(this._panel.threads=r.panelThreads),r.thumbnailEntries&&(this._thumbnailEntries=r.thumbnailEntries,this._drawer?.setThumbnails(this._thumbnailEntries)),r.panelSnapshotHtml)for(const[d,l]of Object.entries(r.panelSnapshotHtml)){const p=document.createElement("div");p.innerHTML=S.sanitizeHtml(l),this._panel.snapshots.set(d,p)}let c=0;for(const d of r.messages){const l={id:d.id,role:d.role,timestamp:d.timestamp,status:d.status};if(d.threadId!==void 0&&(l.threadId=d.threadId),d.content!==void 0&&(l.content=d.content),d.silent&&(l.silent=!0),this._messages.push(l),l.silent)continue;l.role==="assistant"&&l.threadId&&!this._threadsWithFirstBot.has(l.threadId)&&(this._threadsWithFirstBot.add(l.threadId),this._drawer?.markFirstBotMessage(l.id)),this._drawer?.addMessage(l);const p=parseInt(d.id.replace("msg-",""),10);if(!isNaN(p)&&p>c&&(c=p),l.role==="assistant"&&l.threadId){const s=await this._loadPayload(l.threadId,l.id);s&&(l.uiSpec=s,this._restoreInlineUISpec(l),delete l.uiSpec)}}if(c>this._currentMessageId&&(this._currentMessageId=c),this._currentThreadId){let d=await this._session.db?.loadContext(a,this._currentThreadId);d||(d=await this._session.db?.loadLatestContext(a)),d&&(this._lastBackendContext=d.context)}if(this._currentThreadId){const d=[...this._messages].reverse().find(l=>l.role==="assistant"&&l.threadId===this._currentThreadId&&!l.silent);d&&this._panel.snapshots.has(d.id)&&this._panel?.restoreForMessage(d.id)}if(this._currentThreadId){const d=this._currentThreadId;for(const l of this._messages)l.threadId&&l.threadId>d&&this._shadow?.querySelector(`[data-message-id="${CSS.escape(l.id)}"]`)?.classList.add("gengage-chat-bubble--hidden");this._shadow?.querySelectorAll("[data-thread-id]").forEach(l=>{l instanceof HTMLElement&&l.dataset.threadId&&l.dataset.threadId>d&&l.classList.add("gengage-chat-bubble--hidden")})}if(this._panel.threads.length>0&&this._currentThreadId){const d=this._panel.threads[this._panel.threads.length-1];if(d){const l=[...this._messages].reverse().find(p=>p.role==="assistant"&&p.threadId===d);if(l?.threadId){const p=await this._loadPayload(l.threadId,l.id);if(p){const s=p.elements[p.root];s&&this._panel?.updateTopBar(s.type)}}}}this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),setTimeout(()=>{this._drawer?.scrollToLastThread()},550)}_navigatePanelBack(){const e=this._localPanelHistory.pop();if(e){const a=this._buildRenderContext(),n=this._renderPanelFromSource(e.source,a);this._drawer?.setPanelContent(n),this._drawer?.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(e.source)),this._currentPanelSource=e.source;const i=this._localPanelHistory.length>0||(this._panel?.threads.length??0)>1;this._drawer?.updatePanelTopBar(i,!1,e.title);return}if(this._isMobileViewport){this._drawer?.hideMobilePanel();return}this._panel?.navigateBack()}_shouldUseDividerPreviewForSpec(e){return e.elements[e.root]?.type==="ProductGrid"}_shouldUseDividerPreviewForSource(e){return e?.kind==="spec"?this._shouldUseDividerPreviewForSpec(e.spec):!1}_toggleComparisonSku(e){if(e==="")this._comparisonSelectMode=!this._comparisonSelectMode,this._comparisonSelectionWarning=null,this._comparisonSelectMode&&(li(this._currentThreadId??""),this._choicePrompterEl?.remove(),this._choicePrompterEl=null,this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(a=>a.remove())),this._comparisonSelectMode||(this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,S.trackCompareClear());else if(this._comparisonSelectedSkus.indexOf(e)>=0)this._comparisonSelectedSkus=this._comparisonSelectedSkus.filter(a=>a!==e),this._comparisonSelectionWarning=null;else{if(this._comparisonSelectedSkus.length>=be._MAX_COMPARISON_SELECTION){this._comparisonSelectionWarning=this._i18n.compareMaxHint??`You can select up to ${be._MAX_COMPARISON_SELECTION} products`,this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()});return}this._comparisonSelectedSkus=[...this._comparisonSelectedSkus,e],this._comparisonSelectionWarning=null,S.trackComparePreselection(e)}this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()})}_refreshComparisonUI(){const e=this._shadow?.querySelector(".gengage-chat-panel");if(!e){this._drawer?.setComparisonDockContent(null);return}const a=e.querySelector(".gengage-chat-product-grid-wrapper"),n=a?.querySelector(".gengage-chat-product-grid");if(!a||!n){this._drawer?.setComparisonDockContent(null);return}const i=a.querySelector(".gengage-chat-comparison-toggle-btn");if(i&&i.classList.toggle("gengage-chat-comparison-toggle-btn--active",this._comparisonSelectMode),this._comparisonSelectMode){const r=n.querySelectorAll(".gengage-chat-product-card[data-sku]");for(const o of r){if(o.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){const h=o.parentElement,w=this._comparisonSelectedSkus.includes(o.dataset.sku);h.classList.toggle("gengage-chat-comparison-select-wrapper--selected",w);const m=h.querySelector(".gengage-chat-comparison-checkbox");if(m){m.dataset.selected=w?"true":"false",m.setAttribute("aria-pressed",w?"true":"false");const v=m.querySelector(".gengage-chat-comparison-checkbox-icon"),y=m.querySelector(".gengage-chat-comparison-checkbox-label");v&&(v.innerHTML=w?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>':'<span class="gengage-chat-comparison-checkbox-dot"></span>'),y&&(y.textContent=w?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare")}continue}const c=o.dataset.sku,d=document.createElement("div");d.className="gengage-chat-comparison-select-wrapper";const l=this._comparisonSelectedSkus.includes(c);l&&d.classList.add("gengage-chat-comparison-select-wrapper--selected");const p=document.createElement("button");p.type="button",p.className="gengage-chat-comparison-checkbox",p.dataset.selected=l?"true":"false",p.setAttribute("aria-pressed",l?"true":"false");const s=document.createElement("span");s.className="gengage-chat-comparison-checkbox-icon",s.innerHTML=l?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>':'<span class="gengage-chat-comparison-checkbox-dot"></span>';const u=document.createElement("span");u.className="gengage-chat-comparison-checkbox-label",u.textContent=l?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare",p.appendChild(s),p.appendChild(u),p.addEventListener("click",h=>{h.stopPropagation(),this._toggleComparisonSku(c)}),o.parentNode.insertBefore(d,o),d.appendChild(p),d.appendChild(o),d.classList.add("gds-clickable"),d.addEventListener("click",h=>{h.target.closest(".gengage-chat-comparison-checkbox")||(h.stopPropagation(),this._toggleComparisonSku(c))})}}else{const r=n.querySelectorAll(".gengage-chat-comparison-select-wrapper");for(const o of r){const c=o.querySelector(".gengage-chat-product-card");c&&o.parentNode&&(o.parentNode.insertBefore(c,o),o.remove())}}if(a.querySelector(".gengage-chat-comparison-floating-btn")?.remove(),this._comparisonSelectMode){const r=_t(this._comparisonSelectedSkus,this._buildRenderContext());this._isMobileViewport?this._drawer?.setComparisonDockContent(r):(this._drawer?.setComparisonDockContent(null),a.appendChild(r))}else this._drawer?.setComparisonDockContent(null)}_parseAddToCartActionPayload(e){if(typeof e!="object"||e===null)return null;const a=e,n=this._coerceAddToCartString(a.sku),i=this._coerceAddToCartString(a.cartCode??a.cart_code);let r=1;return typeof a.quantity=="number"&&Number.isFinite(a.quantity)&&a.quantity>0&&(r=Math.max(1,Math.floor(a.quantity))),!n||!i?null:{sku:n,cartCode:i,quantity:r}}_coerceAddToCartString(e){return typeof e=="string"&&e.length>0?e:typeof e=="number"&&Number.isFinite(e)?String(e):""}_runChatAddToCartFlow(e){if(this.config.onAddToCart!==void 0)try{const i=this.config.onAddToCart(e);i instanceof Promise&&i.catch(r=>console.error("[gengage] onAddToCart",r))}catch(i){console.error("[gengage] onAddToCart",i)}S.trackCartAdd(e.sku,e.quantity);const a={...e,sessionId:this.config.session?.sessionId??null};S.dispatch("gengage:chat:add-to-cart",a),this._bridge?.send("addToCart",e),this._runEventCallbacks("gengage-cart-add",a),this.track(S.basketAddEvent(this.analyticsContext(),{attribution_source:"chat",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??"TRY",line_items:e.quantity,sku:e.sku})),this._sendAction({title:this._i18n.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:e.sku,cart_code:e.cartCode,quantity:e.quantity}},{preservePanel:!0});const n=this._i18n.addedToCartToast??"Added to cart";this._drawer?.showCartToast(n),this._drawer?.flashCartBadge()}_buildRenderContext(){const e={onAction:a=>{if(S.trackSuggestedQuestion(a.title,a.type),a.type==="addToCart"){const i=this._parseAddToCartActionPayload(a.payload);if(i){this._runChatAddToCartFlow(i);return}}if(a.type==="launchSingleProduct"){this._drawer?.setDividerPreviewEnabled(!1);const i=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";i&&S.trackProductDetail(i,a.title)}if(a.type==="findSimilar"){const i=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";S.trackFindSimilars(i)}a.type==="getComparisonTable"&&S.trackCompareSelected(this._comparisonSelectedSkus);const n=a.type==="addToCart"||a.type==="like";this._sendAction(a,n?{preservePanel:!0}:void 0)},onProductClick:a=>{if(S.trackProductDetail(a.sku),this.config.isDemoWebsite!==!0&&this._isSameOriginUrl(a.url))S.dispatch("gengage:similar:product-click",{sku:a.sku,url:a.url,sessionId:this.config.session?.sessionId??null}),this._saveSessionAndOpenURL(a.url);else{const n=a.name?.trim()?a.name.trim():a.sku;this._sendAction({title:n,type:"launchSingleProduct",payload:{sku:a.sku}})}},onAddToCart:a=>{this._runChatAddToCartFlow(a)},onProductSelect:a=>{if(this._currentPanelSource){const c=this._drawer?.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:c}),this._localPanelHistory.length>be._MAX_PANEL_HISTORY&&this._localPanelHistory.shift()}const n=this._buildRenderContext(),i={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:a}}}},r=this._shadow?.querySelector(".gengage-chat-messages");if(r){const c=this._renderUISpec(i,n);this._currentThreadId&&(c.dataset.threadId=this._currentThreadId),r.appendChild(c),c.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed()}if(this.config.productDetailsExtended!==!0){this._clearAssistantPanelLikeStreamClearPanel();return}const o={root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:a}}}};this._drawer?.setPanelContent(this._renderUISpec(o,e)),this._drawer?.setDividerPreviewEnabled(!1),this._currentPanelSource={kind:"spec",spec:o},this._drawer?.updatePanelTopBar(!0,!1,this._i18n.panelTitleProductDetails)},i18n:this._i18n,pricing:this.config.pricing,productPriceUi:this.config.productPriceUi,productSort:this._productSort,onSortChange:a=>{this._productSort=a},comparisonSelectMode:this._comparisonSelectMode,comparisonSelectedSkus:this._comparisonSelectedSkus,comparisonMaxSelection:be._MAX_COMPARISON_SELECTION,comparisonSelectionWarning:this._comparisonSelectionWarning,onToggleComparisonSku:a=>{this._toggleComparisonSku(a)},favoritedSkus:this._session?.favoritedSkus??new Set,onFavoriteToggle:(a,n)=>{this._toggleProductFavorite(a,n)},isMobile:this._isMobileViewport};return e}async _toggleFavorite(e,a){if(!this._session)return;const n=this.config.session?.userId??"",i=this.config.accountId;await this._session.toggleFavorite(n,i,e,a),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size)}_revertFavoriteHeartUi(e){const a=this._shadow?.querySelectorAll(`[data-gengage-favorite-sku="${CSS.escape(e)}"]`);if(a?.length)for(const n of a){if(!(n instanceof HTMLButtonElement))continue;n.classList.toggle("gengage-chat-favorite-btn--active");const i=n.querySelector("svg");i&&i.setAttribute("fill",n.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none")}}async _toggleProductFavorite(e,a){const n=!(this._session?.favoritedSkus.has(e)??!1),i={sku:e,product:a,favorited:n,sessionId:this.config.session?.sessionId??null};S.dispatch("gengage:chat:product-favorite",i),this._bridge?.send("productFavorite",i);const r=this._eventCallbacks.get("gengage-product-favorite");if(r&&r.size>0){for(const o of r)try{const c=o(i);if((c instanceof Promise?await c:c)===!1){this._revertFavoriteHeartUi(e),this._handleCallbackFailure("gengage-product-favorite",i);return}}catch{this._revertFavoriteHeartUi(e),this._handleCallbackFailure("gengage-product-favorite",i);return}this._session&&(n?this._session.favoritedSkus.add(e):this._session.favoritedSkus.delete(e),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size));return}if(await this._toggleFavorite(e,a),n){S.trackLikeProduct(e);const o=a.name??e;this._sendAction({title:o,type:"like",payload:{sku:e}},{preservePanel:!0})}}_openFavoritesPanel(){if(this._drawer){if(this._currentPanelSource){const e=this._drawer.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:e}),this._localPanelHistory.length>be._MAX_PANEL_HISTORY&&this._localPanelHistory.shift()}this._drawer.setPanelContent(this._buildFavoritesPageEl()),this._drawer.setDividerPreviewEnabled(!1),this._currentPanelSource={kind:"favorites"},this._drawer.updatePanelTopBar(!0,!1,this._i18n.favoritesPageTitle)}}_buildFavoritesPageEl(){const e=this._session?.getFavoriteProducts()??[];if(e.length===0){const r=document.createElement("div");r.className="gengage-chat-favorites-empty";const o=document.createElement("div");o.className="gengage-chat-favorites-empty-icon",o.innerHTML='<svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>',r.appendChild(o);const c=document.createElement("p");return c.textContent=this._i18n.emptyFavoritesMessage,r.appendChild(c),r}const a={},n=[];for(const[r,o]of e.entries()){const c=`card_${r}`;n.push(c),a[c]={type:"ProductCard",props:{product:{sku:o.sku,name:o.name,imageUrl:o.imageUrl,price:o.price}}}}a.grid={type:"ProductGrid",children:n};const i={root:"grid",elements:a};return this._renderUISpec(i,this._buildRenderContext())}async _runEventCallbacks(e,a){const n=this._eventCallbacks.get(e);if(!(!n||n.size===0))for(const i of n)try{const r=i(a);if((r instanceof Promise?await r:r)===!1){this._handleCallbackFailure(e,a);return}}catch{this._handleCallbackFailure(e,a);return}}_handleCallbackFailure(e,a){if(e==="gengage-cart-add"){const n=this._i18n.cartAddErrorMessage,i=this._createMessage("assistant",n);this._currentThreadId&&(i.threadId=this._currentThreadId),this._messages.push(i),this._drawer?.addMessage(i)}if(e==="gengage-product-favorite"){const n=this._i18n.favoriteToggleErrorMessage,i=this._createMessage("assistant",n);this._currentThreadId&&(i.threadId=this._currentThreadId),this._messages.push(i),this._drawer?.addMessage(i)}}_restoreInlineUISpec(e){if(!e.uiSpec||!this._drawer)return;const a=e.uiSpec,n=a.elements[a.root];if(!n)return;const i=n.type;if(i==="ActionButtons"||i==="ComparisonTable"||i==="ProductGrid"&&n.props?.similarsAppend===!0&&this.config.productDetailsExtended===!0)return;const r=this._buildRenderContext(),o=this._shadow?.querySelector(".gengage-chat-messages");if(!o)return;if(i==="ProductDetailsPanel"){const d=n.props?.product;if(!d)return;const l={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:d}}}},p=this._renderUISpec(l,r);e.threadId&&(p.dataset.threadId=e.threadId),o.appendChild(p),this._drawer?.refreshPresentationCollapsed();return}const c=this._renderUISpec(a,r);e.threadId&&(c.dataset.threadId=e.threadId),o.appendChild(c),this._drawer?.refreshPresentationCollapsed()}_createMessage(e,a){return this._currentMessageId++,{id:`msg-${this._currentMessageId}`,role:e,content:a,timestamp:Date.now(),status:"done"}}_resolveI18n(e){return{...aa(e.locale),...e.i18n}}_resolveUISpecRegistry(){return g.mergeUISpecRegistry(Ct(),this.config.renderer?.registry)}_renderUISpec(e,a){const n=this._resolveUISpecRegistry(),i=this.config.renderer?.unknownRenderer??$e,r=(c,d)=>St(c,d,n,i),o=this.config.renderer?.renderUISpec;return o?o(e,a,{registry:n,unknownRenderer:i,defaultRender:r}):r(e,a)}};function Qi(){return new zt}Object.defineProperty(exports,"CHAT_SCROLL_ELEMENT_ID",{enumerable:!0,get:function(){return Pe}});Object.defineProperty(exports,"ChatPresentationState",{enumerable:!0,get:function(){return It}});Object.defineProperty(exports,"GengageChat",{enumerable:!0,get:function(){return zt}});Object.defineProperty(exports,"VoiceInput",{enumerable:!0,get:function(){return bt}});Object.defineProperty(exports,"chatCatalog",{enumerable:!0,get:function(){return Xi}});Object.defineProperty(exports,"createChatWidget",{enumerable:!0,get:function(){return Qi}});Object.defineProperty(exports,"createDefaultChatUISpecRegistry",{enumerable:!0,get:function(){return Ct}});Object.defineProperty(exports,"defaultChatUnknownUISpecRenderer",{enumerable:!0,get:function(){return $e}});Object.defineProperty(exports,"getChatScrollElement",{enumerable:!0,get:function(){return Jt}});Object.defineProperty(exports,"invalidateChatScrollCache",{enumerable:!0,get:function(){return ht}});Object.defineProperty(exports,"isVoiceInputSupported",{enumerable:!0,get:function(){return ut}});Object.defineProperty(exports,"makePillLauncher",{enumerable:!0,get:function(){return Nt}});Object.defineProperty(exports,"renderUISpec",{enumerable:!0,get:function(){return St}});Object.defineProperty(exports,"routeStreamAction",{enumerable:!0,get:function(){return pt}});
|
|
93
|
+
`).join("<br />"));this._ensureAssistantMessageRendered(s),this._drawer?.updateBotMessage(s.id,K),this._drawer?.showRecoveryPillsOnly($)};if(x)this._drawer?.setPills([]),s.silent||R();else if(r||this._hasUnavailableProductContext()){this._drawer?.setPills([]);const P=this._i18n.productNotFoundMessage;s.content=P,s.status="done",this._ensureAssistantMessageRendered(s),this._drawer?.updateBotMessage(s.id,P),this._markUnavailableProductContext()}else if(R(),k)return;r&&(this._pdpPrimingInFlight=!1,this._flushQueuedUserMessages()),!N&&s.status==="streaming"&&(s.status="error"),k||this.track(E.streamErrorEvent(this.analyticsContext(),{request_id:y,error_code:"STREAM_ERROR",error_message:v.message,widget:"chat"}))},onDone:()=>{if(I&&this._abortControllers.delete(I),!i&&n!==this._activeRequestThreadId)return;if(T=!0,Y(),Z){const k=this._buildRenderContext();k.isStreaming=!1;const L=this._shadow?.querySelector(".gengage-chat-messages");if(L){const N=this._renderUISpec(Z,k);s.threadId&&(N.dataset.threadId=s.threadId),L.appendChild(N),N.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed()}Z=null}this._activeRequestThreadId=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),Ea(q,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const v=_;if(A&&!_&&l(),A=!1,r&&!p&&!v){const k=this._i18n.productNotFoundMessage;s.content=k,this._ensureAssistantMessageRendered(s),this._drawer?.updateBotMessage(s.id,k),this._markUnavailableProductContext()}if(_=!1,r){this._pdpPrimingInFlight=!1;const k=this._queuedUserMessages.length>0;this._flushQueuedUserMessages(),k||this._ensurePdpPrimeSuggestedUiIfNeeded()}s.status==="streaming"&&(s.status="done",E.trackMessageReceived()),this._presentation.finalizeAssistantGroup(n);const b=this._shadow?.querySelector(".gengage-chat-comparison-toggle-btn--hidden");b&&(b.classList.remove("gengage-chat-comparison-toggle-btn--hidden"),b.classList.add("gengage-chat-comparison-toggle-btn--reveal")),this.emit("message",s);const x=this._currentPanelSource;this._panel?.snapshotForMessage(s.id,x?()=>{const k=this._buildRenderContext();return this._renderPanelFromSource(x,k)}:void 0),this.track(E.streamDoneEvent(this.analyticsContext(),{request_id:y,latency_ms:Date.now()-B,chunk_count:S,widget:"chat"})),this.track(E.meteringIncrementEvent(this.analyticsContext(),{meter_key:"chat_request",quantity:1,unit:"request"})),this.track(E.chatHistorySnapshotEvent(this.analyticsContext(),{message_count:this._messages.length,history_ref:this.config.session?.sessionId??"",redaction_level:"none"})),this._persistToIndexedDB().catch(()=>{})}},u),this._abortControllers.add(I),!a?.silent&&!i){const v=I;this._drawer?.showStopButton(()=>{v.abort(),this._abortControllers.delete(v),this._drawer?.removeTypingIndicator(),this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),s.status==="streaming"&&(s.status="done")})}}_getVisibleMessages(){const e=this._messages.filter(n=>!n.silent);if(!this._currentThreadId)return e;const a=this._currentThreadId;return e.filter(n=>!n.threadId||n.threadId<=a)}_appendSimilarsToPanel(e,a){if(!this._drawer)return;const n=this._drawer.getPanelContentElement();if(!n)return;a.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products";const i=this._renderUISpec(e,a);i.classList.add("gengage-chat-product-details-similars"),n.appendChild(i),this._mergePanelSourceWithSimilars(e)}_mergePanelSourceWithSimilars(e){const a=this._currentPanelSource;a?.kind==="spec"&&this._panel?.currentType==="ProductDetailsPanel"&&(this._currentPanelSource={kind:"productDetailsWithSimilars",pdpSpec:a.spec,similarsSpec:e})}_renderProductDetailsWithSimilars(e,a,n){this._applyPanelListHeadingToContext(n,{kind:"productDetailsWithSimilars",pdpSpec:e,similarsSpec:a});const i=this._renderUISpec(e,n),r=this._renderUISpec(a,n);return r.classList.add("gengage-chat-product-details-similars"),i.appendChild(r),i}_applyPanelListHeadingToContext(e,a){if(e.panelProductListHeading=void 0,!!this._panel){if(a.kind==="spec"){const n=a.spec.elements[a.spec.root];n?.type==="ProductGrid"&&(n.children?.length??0)>0&&(e.panelProductListHeading=this._panel.titleForComponent("ProductGrid",n.props?.panelTitle??void 0))}else if(a.kind==="productDetailsWithSimilars"){const n=a.similarsSpec.elements[a.similarsSpec.root];n?.type==="ProductGrid"&&(n.children?.length??0)>0&&(e.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products")}}}_renderPanelFromSource(e,a){return this._applyPanelListHeadingToContext(a,e),e.kind==="favorites"?this._buildFavoritesPageEl():e.kind==="productDetailsWithSimilars"?this._renderProductDetailsWithSimilars(e.pdpSpec,e.similarsSpec,a):this._renderUISpec(e.spec,a)}_handleRollback(e){const a=this._messages.find(n=>n.id===e);a?.threadId&&this._rollbackToThread(a.threadId)}_ensurePdpPrimeSuggestedUiIfNeeded(){const e=this.config.pageContext?.sku;if(!e||!this._drawer||this._hasUnavailableProductContext())return;const a="product",n=this._resolveContextualOpeningActions(a);if(n.length>0){this._drawer.setInputAreaChips(n.map(i=>({label:i.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(i,a)),...i.icon?{icon:i.icon}:{}})));return}this._drawer.setInputAreaChips([{label:this._i18n.groundingReviewCta,icon:"review",onAction:()=>this._sendAction({title:this._i18n.customerReviewsTitle,type:"reviewSummary",payload:{sku:e}})},{label:this._i18n.findSimilarLabel,icon:"similar",onAction:()=>this._sendAction({title:this._i18n.findSimilarLabel,type:"findSimilar",payload:{sku:e}})}])}_rollbackToThread(e){if(this._panel&&this._panel.threads.length>0&&!this._panel.threads.includes(e)&&!this._messages.some(r=>r.threadId===e))return;this._currentThreadId=e,this._extendedModeManager?.setHiddenByUser(!1),this._lastThreadId!=null&&e===this._lastThreadId?(this._presentation.setFocusedThreadId(e),this._drawer?.setPresentationFocus(e)):(this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null)),this._drawer?.setFormerMessagesButtonVisible(!1);for(const r of this._messages){const o=this._shadow?.querySelector(`[data-message-id="${CSS.escape(r.id)}"]`);o&&(r.threadId&&r.threadId>e?o.classList.add("gengage-chat-bubble--hidden"):o.classList.remove("gengage-chat-bubble--hidden"))}this._shadow?.querySelectorAll("[data-thread-id]").forEach(r=>{r instanceof HTMLElement&&r.dataset.threadId&&r.dataset.threadId>e?r.classList.add("gengage-chat-bubble--hidden"):r instanceof HTMLElement&&r.classList.remove("gengage-chat-bubble--hidden")});const a=this._messages.find(r=>r.role==="assistant"&&r.threadId===e),n=a?this._panel?.restoreForMessage(a.id):!1;n||(this._drawer?.clearPanel(),this._currentPanelSource=null),n&&a&&(this._currentPanelSource=null);const i=this._panel.currentType??"";if(this._panel?.updateTopBar(i),this._drawer?.setPills([]),requestAnimationFrame(()=>{this._drawer?.scrollThreadIntoView(e,"auto")}),this._session?.db&&this.config.session?.sessionId){const r=this.config.session.sessionId;(async()=>{try{const o=await this._session?.db?.loadContext(r,e);o&&(this._lastBackendContext=o.context),await this._session?.db?.deleteContextsAfterThread(r,e)}catch{}})()}}async _persistToIndexedDB(){!this._session||!this.config.session?.sessionId||await this._session.persist({userId:this.config.session.userId??"",appId:this.config.accountId,sessionId:this.config.session.sessionId,messages:this._messages,currentThreadId:this._currentThreadId,lastThreadId:this._lastThreadId,chatCreatedAt:this._chatCreatedAt,panelSnapshots:this._panel?.snapshots??new Map,panelThreads:this._panel?.threads??[],thumbnailEntries:this._thumbnailEntries,lastBackendContext:this._lastBackendContext,sku:this.config.pageContext?.sku})}_isSameOriginUrl(e){try{return e.trim()?new URL(e,window.location.href).origin===window.location.origin:!1}catch{return!1}}_markUnavailableProductContext(){this._productContextUnavailableSku=this.config.pageContext?.sku??null}_clearUnavailableProductContext(){this._productContextUnavailableSku=null}_hasUnavailableProductContext(){const e=this.config.pageContext?.sku;return e!==void 0&&e.length>0&&this._productContextUnavailableSku===e}_ensureAssistantMessageRendered(e){if(!(this._shadow?.querySelector(`[data-message-id="${CSS.escape(e.id)}"]`)||!this._drawer)){if(e.role==="assistant"&&e.threadId&&!this._threadsWithFirstBot.has(e.threadId)){this._threadsWithFirstBot.add(e.threadId),this._drawer.addMessage(e),this._drawer.markFirstBotMessage(e.id);return}this._drawer.addMessage(e)}}async _saveSessionAndOpenURL(e){this._session&&await this._session.saveAndOpenURL(e,()=>this._persistToIndexedDB(),this._bridge)}async _loadPayload(e,a){return this._session?this._session.loadPayload(e,a):null}async _restoreFromIndexedDB(e){if(!this._session?.db)return;const a=this.config.session?.sessionId;if(!a)return;const n=this.config.session?.userId??"",i=this.config.accountId;if(await this._session.loadFavorites(n,i),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size),!e)return;const r=await this._session.db?.loadSession(n,i,a);if(!r||r.messages.length===0)return;const o=this.config.pageContext?.sku;if(o&&r.sku&&r.sku!==o)return;if(this._pdpLaunched=!0,this._drawer?.lockScrollForRestore(),this._currentThreadId=r.currentThreadId,this._lastThreadId=r.lastThreadId,this._currentThreadId&&this._lastThreadId&&this._currentThreadId>this._lastThreadId&&(this._currentThreadId=this._lastThreadId),this._chatCreatedAt=r.createdAt,r.panelThreads&&(this._panel.threads=r.panelThreads),r.thumbnailEntries&&(this._thumbnailEntries=r.thumbnailEntries,this._drawer?.setThumbnails(this._thumbnailEntries)),r.panelSnapshotHtml)for(const[d,l]of Object.entries(r.panelSnapshotHtml)){const p=document.createElement("div");p.innerHTML=E.sanitizeHtml(l),this._panel.snapshots.set(d,p)}let c=0;for(const d of r.messages){const l={id:d.id,role:d.role,timestamp:d.timestamp,status:d.status};if(d.threadId!==void 0&&(l.threadId=d.threadId),d.content!==void 0&&(l.content=d.content),d.silent&&(l.silent=!0),this._messages.push(l),l.silent)continue;l.role==="assistant"&&l.threadId&&!this._threadsWithFirstBot.has(l.threadId)&&(this._threadsWithFirstBot.add(l.threadId),this._drawer?.markFirstBotMessage(l.id)),this._drawer?.addMessage(l);const p=parseInt(d.id.replace("msg-",""),10);if(!isNaN(p)&&p>c&&(c=p),l.role==="assistant"&&l.threadId){const s=await this._loadPayload(l.threadId,l.id);s&&(l.uiSpec=s,this._restoreInlineUISpec(l),delete l.uiSpec)}}if(c>this._currentMessageId&&(this._currentMessageId=c),this._currentThreadId){let d=await this._session.db?.loadContext(a,this._currentThreadId);d||(d=await this._session.db?.loadLatestContext(a)),d&&(this._lastBackendContext=d.context)}if(this._currentThreadId){const d=[...this._messages].reverse().find(l=>l.role==="assistant"&&l.threadId===this._currentThreadId&&!l.silent);d&&this._panel.snapshots.has(d.id)&&this._panel?.restoreForMessage(d.id)}if(this._currentThreadId){const d=this._currentThreadId;for(const l of this._messages)l.threadId&&l.threadId>d&&this._shadow?.querySelector(`[data-message-id="${CSS.escape(l.id)}"]`)?.classList.add("gengage-chat-bubble--hidden");this._shadow?.querySelectorAll("[data-thread-id]").forEach(l=>{l instanceof HTMLElement&&l.dataset.threadId&&l.dataset.threadId>d&&l.classList.add("gengage-chat-bubble--hidden")})}if(this._panel.threads.length>0&&this._currentThreadId){const d=this._panel.threads[this._panel.threads.length-1];if(d){const l=[...this._messages].reverse().find(p=>p.role==="assistant"&&p.threadId===d);if(l?.threadId){const p=await this._loadPayload(l.threadId,l.id);if(p){const s=p.elements[p.root];s&&this._panel?.updateTopBar(s.type)}}}}this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),setTimeout(()=>{this._drawer?.scrollToLastThread()},550)}_navigatePanelBack(){const e=this._localPanelHistory.pop();if(e){const a=this._buildRenderContext(),n=this._renderPanelFromSource(e.source,a);this._drawer?.setPanelContent(n),this._drawer?.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(e.source)),this._currentPanelSource=e.source;const i=this._localPanelHistory.length>0||(this._panel?.threads.length??0)>1;this._drawer?.updatePanelTopBar(i,!1,e.title);return}if(this._isMobileViewport){this._drawer?.hideMobilePanel();return}this._panel?.navigateBack()}_shouldUseDividerPreviewForSpec(e){return e.elements[e.root]?.type==="ProductGrid"}_shouldUseDividerPreviewForSource(e){return e?.kind==="spec"?this._shouldUseDividerPreviewForSpec(e.spec):!1}_toggleComparisonSku(e){if(e==="")this._comparisonSelectMode=!this._comparisonSelectMode,this._comparisonSelectionWarning=null,this._comparisonSelectMode&&(li(this._currentThreadId??""),this._choicePrompterEl?.remove(),this._choicePrompterEl=null,this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(a=>a.remove())),this._comparisonSelectMode||(this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,E.trackCompareClear());else if(this._comparisonSelectedSkus.indexOf(e)>=0)this._comparisonSelectedSkus=this._comparisonSelectedSkus.filter(a=>a!==e),this._comparisonSelectionWarning=null;else{if(this._comparisonSelectedSkus.length>=be._MAX_COMPARISON_SELECTION){this._comparisonSelectionWarning=this._i18n.compareMaxHint??`You can select up to ${be._MAX_COMPARISON_SELECTION} products`,this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()});return}this._comparisonSelectedSkus=[...this._comparisonSelectedSkus,e],this._comparisonSelectionWarning=null,E.trackComparePreselection(e)}this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()})}_refreshComparisonUI(){const e=this._shadow?.querySelector(".gengage-chat-panel");if(!e){this._drawer?.setComparisonDockContent(null);return}const a=e.querySelector(".gengage-chat-product-grid-wrapper"),n=a?.querySelector(".gengage-chat-product-grid");if(!a||!n){this._drawer?.setComparisonDockContent(null);return}const i=a.querySelector(".gengage-chat-comparison-toggle-btn");if(i&&i.classList.toggle("gengage-chat-comparison-toggle-btn--active",this._comparisonSelectMode),this._comparisonSelectMode){const r=n.querySelectorAll(".gengage-chat-product-card[data-sku]");for(const o of r){if(o.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){const h=o.parentElement,w=this._comparisonSelectedSkus.includes(o.dataset.sku);h.classList.toggle("gengage-chat-comparison-select-wrapper--selected",w);const m=h.querySelector(".gengage-chat-comparison-checkbox");if(m){m.dataset.selected=w?"true":"false",m.setAttribute("aria-pressed",w?"true":"false");const f=m.querySelector(".gengage-chat-comparison-checkbox-icon"),y=m.querySelector(".gengage-chat-comparison-checkbox-label");f&&(f.innerHTML=w?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>':'<span class="gengage-chat-comparison-checkbox-dot"></span>'),y&&(y.textContent=w?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare")}continue}const c=o.dataset.sku,d=document.createElement("div");d.className="gengage-chat-comparison-select-wrapper";const l=this._comparisonSelectedSkus.includes(c);l&&d.classList.add("gengage-chat-comparison-select-wrapper--selected");const p=document.createElement("button");p.type="button",p.className="gengage-chat-comparison-checkbox",p.dataset.selected=l?"true":"false",p.setAttribute("aria-pressed",l?"true":"false");const s=document.createElement("span");s.className="gengage-chat-comparison-checkbox-icon",s.innerHTML=l?'<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>':'<span class="gengage-chat-comparison-checkbox-dot"></span>';const u=document.createElement("span");u.className="gengage-chat-comparison-checkbox-label",u.textContent=l?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare",p.appendChild(s),p.appendChild(u),p.addEventListener("click",h=>{h.stopPropagation(),this._toggleComparisonSku(c)}),o.parentNode.insertBefore(d,o),d.appendChild(p),d.appendChild(o),d.classList.add("gds-clickable"),d.addEventListener("click",h=>{h.target.closest(".gengage-chat-comparison-checkbox")||(h.stopPropagation(),this._toggleComparisonSku(c))})}}else{const r=n.querySelectorAll(".gengage-chat-comparison-select-wrapper");for(const o of r){const c=o.querySelector(".gengage-chat-product-card");c&&o.parentNode&&(o.parentNode.insertBefore(c,o),o.remove())}}if(a.querySelector(".gengage-chat-comparison-floating-btn")?.remove(),this._comparisonSelectMode){const r=_t(this._comparisonSelectedSkus,this._buildRenderContext());this._isMobileViewport?this._drawer?.setComparisonDockContent(r):(this._drawer?.setComparisonDockContent(null),a.appendChild(r))}else this._drawer?.setComparisonDockContent(null)}_parseAddToCartActionPayload(e){if(typeof e!="object"||e===null)return null;const a=e,n=this._coerceAddToCartString(a.sku),i=this._coerceAddToCartString(a.cartCode??a.cart_code);let r=1;return typeof a.quantity=="number"&&Number.isFinite(a.quantity)&&a.quantity>0&&(r=Math.max(1,Math.floor(a.quantity))),!n||!i?null:{sku:n,cartCode:i,quantity:r}}_coerceAddToCartString(e){return typeof e=="string"&&e.length>0?e:typeof e=="number"&&Number.isFinite(e)?String(e):""}_runChatAddToCartFlow(e){if(this.config.onAddToCart!==void 0)try{const i=this.config.onAddToCart(e);i instanceof Promise&&i.catch(r=>console.error("[gengage] onAddToCart",r))}catch(i){console.error("[gengage] onAddToCart",i)}E.trackCartAdd(e.sku,e.quantity);const a={...e,sessionId:this.config.session?.sessionId??null};E.dispatch("gengage:chat:add-to-cart",a),this._bridge?.send("addToCart",e),this._runEventCallbacks("gengage-cart-add",a),this.track(E.basketAddEvent(this.analyticsContext(),{attribution_source:"chat",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??"TRY",line_items:e.quantity,sku:e.sku})),this._sendAction({title:this._i18n.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:e.sku,cart_code:e.cartCode,quantity:e.quantity}},{preservePanel:!0});const n=this._i18n.addedToCartToast??"Added to cart";this._drawer?.showCartToast(n),this._drawer?.flashCartBadge()}_buildRenderContext(){const e={onAction:a=>{if(E.trackSuggestedQuestion(a.title,a.type),a.type==="addToCart"){const i=this._parseAddToCartActionPayload(a.payload);if(i){this._runChatAddToCartFlow(i);return}}if(a.type==="launchSingleProduct"){this._drawer?.setDividerPreviewEnabled(!1);const i=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";i&&E.trackProductDetail(i,a.title)}if(a.type==="findSimilar"){const i=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";E.trackFindSimilars(i)}a.type==="getComparisonTable"&&E.trackCompareSelected(this._comparisonSelectedSkus);const n=a.type==="addToCart"||a.type==="like";this._sendAction(a,n?{preservePanel:!0}:void 0)},onProductClick:a=>{if(E.trackProductDetail(a.sku),this.config.isDemoWebsite!==!0&&this._isSameOriginUrl(a.url))E.dispatch("gengage:similar:product-click",{sku:a.sku,url:a.url,sessionId:this.config.session?.sessionId??null}),this._saveSessionAndOpenURL(a.url);else{const n=a.name?.trim()?a.name.trim():a.sku;this._sendAction({title:n,type:"launchSingleProduct",payload:{sku:a.sku}})}},onAddToCart:a=>{this._runChatAddToCartFlow(a)},onProductSelect:a=>{if(this._currentPanelSource){const c=this._drawer?.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:c}),this._localPanelHistory.length>be._MAX_PANEL_HISTORY&&this._localPanelHistory.shift()}const n=this._buildRenderContext(),i={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:a}}}},r=this._shadow?.querySelector(".gengage-chat-messages");if(r){const c=this._renderUISpec(i,n);this._currentThreadId&&(c.dataset.threadId=this._currentThreadId),r.appendChild(c),c.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed()}if(this.config.productDetailsExtended!==!0){this._clearAssistantPanelLikeStreamClearPanel();return}const o={root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:a}}}};this._drawer?.setPanelContent(this._renderUISpec(o,e)),this._drawer?.setDividerPreviewEnabled(!1),this._currentPanelSource={kind:"spec",spec:o},this._drawer?.updatePanelTopBar(!0,!1,this._i18n.panelTitleProductDetails)},i18n:this._i18n,pricing:this.config.pricing,productPriceUi:this.config.productPriceUi,productSort:this._productSort,onSortChange:a=>{this._productSort=a},comparisonSelectMode:this._comparisonSelectMode,comparisonSelectedSkus:this._comparisonSelectedSkus,comparisonMaxSelection:be._MAX_COMPARISON_SELECTION,comparisonSelectionWarning:this._comparisonSelectionWarning,onToggleComparisonSku:a=>{this._toggleComparisonSku(a)},favoritedSkus:this._session?.favoritedSkus??new Set,onFavoriteToggle:(a,n)=>{this._toggleProductFavorite(a,n)},isMobile:this._isMobileViewport};return e}async _toggleFavorite(e,a){if(!this._session)return;const n=this.config.session?.userId??"",i=this.config.accountId;await this._session.toggleFavorite(n,i,e,a),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size)}_revertFavoriteHeartUi(e){const a=this._shadow?.querySelectorAll(`[data-gengage-favorite-sku="${CSS.escape(e)}"]`);if(a?.length)for(const n of a){if(!(n instanceof HTMLButtonElement))continue;n.classList.toggle("gengage-chat-favorite-btn--active");const i=n.querySelector("svg");i&&i.setAttribute("fill",n.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none")}}async _toggleProductFavorite(e,a){const n=!(this._session?.favoritedSkus.has(e)??!1),i={sku:e,product:a,favorited:n,sessionId:this.config.session?.sessionId??null};E.dispatch("gengage:chat:product-favorite",i),this._bridge?.send("productFavorite",i);const r=this._eventCallbacks.get("gengage-product-favorite");if(r&&r.size>0){for(const o of r)try{const c=o(i);if((c instanceof Promise?await c:c)===!1){this._revertFavoriteHeartUi(e),this._handleCallbackFailure("gengage-product-favorite",i);return}}catch{this._revertFavoriteHeartUi(e),this._handleCallbackFailure("gengage-product-favorite",i);return}this._session&&(n?this._session.favoritedSkus.add(e):this._session.favoritedSkus.delete(e),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size));return}if(await this._toggleFavorite(e,a),n){E.trackLikeProduct(e);const o=a.name??e;this._sendAction({title:o,type:"like",payload:{sku:e}},{preservePanel:!0})}}_openFavoritesPanel(){if(this._drawer){if(this._currentPanelSource){const e=this._drawer.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:e}),this._localPanelHistory.length>be._MAX_PANEL_HISTORY&&this._localPanelHistory.shift()}this._drawer.setPanelContent(this._buildFavoritesPageEl()),this._drawer.setDividerPreviewEnabled(!1),this._currentPanelSource={kind:"favorites"},this._drawer.updatePanelTopBar(!0,!1,this._i18n.favoritesPageTitle)}}_buildFavoritesPageEl(){const e=this._session?.getFavoriteProducts()??[];if(e.length===0){const r=document.createElement("div");r.className="gengage-chat-favorites-empty";const o=document.createElement("div");o.className="gengage-chat-favorites-empty-icon",o.innerHTML='<svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>',r.appendChild(o);const c=document.createElement("p");return c.textContent=this._i18n.emptyFavoritesMessage,r.appendChild(c),r}const a={},n=[];for(const[r,o]of e.entries()){const c=`card_${r}`;n.push(c),a[c]={type:"ProductCard",props:{product:{sku:o.sku,name:o.name,imageUrl:o.imageUrl,price:o.price}}}}a.grid={type:"ProductGrid",children:n};const i={root:"grid",elements:a};return this._renderUISpec(i,this._buildRenderContext())}async _runEventCallbacks(e,a){const n=this._eventCallbacks.get(e);if(!(!n||n.size===0))for(const i of n)try{const r=i(a);if((r instanceof Promise?await r:r)===!1){this._handleCallbackFailure(e,a);return}}catch{this._handleCallbackFailure(e,a);return}}_handleCallbackFailure(e,a){if(e==="gengage-cart-add"){const n=this._i18n.cartAddErrorMessage,i=this._createMessage("assistant",n);this._currentThreadId&&(i.threadId=this._currentThreadId),this._messages.push(i),this._drawer?.addMessage(i)}if(e==="gengage-product-favorite"){const n=this._i18n.favoriteToggleErrorMessage,i=this._createMessage("assistant",n);this._currentThreadId&&(i.threadId=this._currentThreadId),this._messages.push(i),this._drawer?.addMessage(i)}}_restoreInlineUISpec(e){if(!e.uiSpec||!this._drawer)return;const a=e.uiSpec,n=a.elements[a.root];if(!n)return;const i=n.type;if(i==="ActionButtons"||i==="ComparisonTable"||i==="ProductGrid"&&n.props?.similarsAppend===!0&&(this.config.productDetailsExtended===!0||!this._isMobileViewport))return;const r=this._buildRenderContext(),o=this._shadow?.querySelector(".gengage-chat-messages");if(!o)return;if(i==="ProductDetailsPanel"){const d=n.props?.product;if(!d)return;const l={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:d}}}},p=this._renderUISpec(l,r);e.threadId&&(p.dataset.threadId=e.threadId),o.appendChild(p),this._drawer?.refreshPresentationCollapsed();return}const c=this._renderUISpec(a,r);e.threadId&&(c.dataset.threadId=e.threadId),o.appendChild(c),this._drawer?.refreshPresentationCollapsed()}_createMessage(e,a){return this._currentMessageId++,{id:`msg-${this._currentMessageId}`,role:e,content:a,timestamp:Date.now(),status:"done"}}_resolveI18n(e){return{...aa(e.locale),...e.i18n}}_resolveUISpecRegistry(){return g.mergeUISpecRegistry(Ct(),this.config.renderer?.registry)}_renderUISpec(e,a){const n=this._resolveUISpecRegistry(),i=this.config.renderer?.unknownRenderer??$e,r=(c,d)=>St(c,d,n,i),o=this.config.renderer?.renderUISpec;return o?o(e,a,{registry:n,unknownRenderer:i,defaultRender:r}):r(e,a)}};function Qi(){return new zt}Object.defineProperty(exports,"CHAT_SCROLL_ELEMENT_ID",{enumerable:!0,get:function(){return Pe}});Object.defineProperty(exports,"ChatPresentationState",{enumerable:!0,get:function(){return It}});Object.defineProperty(exports,"GengageChat",{enumerable:!0,get:function(){return zt}});Object.defineProperty(exports,"VoiceInput",{enumerable:!0,get:function(){return bt}});Object.defineProperty(exports,"chatCatalog",{enumerable:!0,get:function(){return Xi}});Object.defineProperty(exports,"createChatWidget",{enumerable:!0,get:function(){return Qi}});Object.defineProperty(exports,"createDefaultChatUISpecRegistry",{enumerable:!0,get:function(){return Ct}});Object.defineProperty(exports,"defaultChatUnknownUISpecRenderer",{enumerable:!0,get:function(){return $e}});Object.defineProperty(exports,"getChatScrollElement",{enumerable:!0,get:function(){return Jt}});Object.defineProperty(exports,"invalidateChatScrollCache",{enumerable:!0,get:function(){return ht}});Object.defineProperty(exports,"isVoiceInputSupported",{enumerable:!0,get:function(){return ut}});Object.defineProperty(exports,"makePillLauncher",{enumerable:!0,get:function(){return Nt}});Object.defineProperty(exports,"renderUISpec",{enumerable:!0,get:function(){return St}});Object.defineProperty(exports,"routeStreamAction",{enumerable:!0,get:function(){return pt}});
|