@gengage/assistant-fe 0.3.24 → 0.3.26
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/dist/chat/catalog.d.ts +2 -4
- package/dist/chat/components/ChatDrawer.d.ts +1 -2
- package/dist/chat/components/PhotoAnalysisCard.d.ts +1 -2
- package/dist/chat/types.d.ts +4 -3
- package/dist/{chat-q65kDKeT.js → chat-DkO7BwYQ.js} +1134 -1135
- package/dist/chat.iife.js +25 -25
- package/dist/chat.js +1 -1
- package/dist/{common-uTYBcG11.js → common-B8mn_Ggf.js} +1 -1
- package/dist/common.js +3 -3
- package/dist/index.js +3 -3
- package/dist/{native-webview-5TioIwea.js → native-webview-Rd6AS50I.js} +1 -1
- package/dist/native.iife.js +22 -22
- package/dist/native.js +1 -1
- package/package.json +1 -1
package/dist/native.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(Ye){Object.defineProperty(Ye,Symbol.toStringTag,{value:"Module"});var Ni=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function Yt(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const a=e.unknownRenderer??Ni,n=i=>{const o=e.spec.elements[i];if(!o)return null;const s=e.registry[o.type];return s?s({elementId:i,element:o,spec:e.spec,context:e.context,renderElement:n}):a({elementId:i,element:o,spec:e.spec,context:e.context,renderElement:n})},r=n(e.spec.root);return r&&t.appendChild(r),t}function Jt(e,t){if(!t)return e;const a={...e};for(const[n,r]of Object.entries(t))r&&(a[n]=r);return a}function Qt(e,t){const a={event_name:"stream.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{endpoint:t.endpoint,request_id:t.request_id}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function zi(e,t){const a={request_id:t.request_id,chunk_index:t.chunk_index};t.latency_ms!==void 0&&(a.latency_ms=t.latency_ms);const n={event_name:"stream.chunk",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:a};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Mi(e,t){const a={event_name:"stream.ui_spec",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,chunk_index:t.chunk_index,component_type:t.component_type}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function ut(e,t){const a={event_name:"stream.done",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,latency_ms:t.latency_ms,chunk_count:t.chunk_count}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Xt(e,t){const a={event_name:"stream.error",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,error_code:t.error_code,error_message:t.error_message}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Bi(e,t){const a={model:t.model,prompt_tokens:t.prompt_tokens,completion_tokens:t.completion_tokens,total_tokens:t.total_tokens};t.provider!==void 0&&(a.provider=t.provider);const n={event_name:"llm.usage",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:a};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Ri(e,t){const a={event_name:"metering.increment",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Oi(e,t){const a={event_name:"metering.summary",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Di(e,t){const a={event_name:"chat.history.snapshot",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{message_count:t.message_count,history_ref:t.history_ref,redaction_level:t.redaction_level}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function ea(e,t){const a={event_name:"widget.history.snapshot",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.widget,payload:{message_count:t.message_count,history_ref:t.history_ref,redaction_level:t.redaction_level}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Ua(e,t){const a={event_name:"basket.add",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items,sku:t.sku}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Fi(e,t){const a={event_name:"checkout.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function $i(e,t){const a={event_name:"checkout.complete",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}var Ui=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub"]),Hi=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta","template","noscript"]),Ha={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function qi(e){return/^\s*javascript\s*:/i.test(e)}var ji=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),Zi=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function Vi(e){const t=[];for(const a of e.split(";")){const n=a.trim();if(!n)continue;const r=n.indexOf(":");if(r===-1)continue;const i=n.slice(0,r).trim().toLowerCase(),o=n.slice(r+1).trim();ji.has(i)&&(Zi.test(o)||t.push(n))}return t.join("; ")}function ta(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const a=e,n=a.tagName.toLowerCase();if(Hi.has(n)){a.parentNode?.removeChild(a);return}if(!Ui.has(n)){const c=Array.from(a.childNodes);for(const l of c)t.insertBefore(l,a);t.removeChild(a);for(const l of c)ta(l,t);return}const r=Ha["*"]??new Set,i=Ha[n]??new Set,o=Array.from(a.attributes);for(const c of o){const l=c.name.toLowerCase();if(!r.has(l)&&!i.has(l)){a.removeAttribute(c.name);continue}if(qi(c.value)){a.removeAttribute(c.name);continue}if(l==="style"){const g=Vi(c.value);g?a.setAttribute("style",g):a.removeAttribute("style");continue}}if(n==="a"){const c=a.getAttribute("href");if(c!==null){const l=c.trim().toLowerCase();!l.startsWith("http://")&&!l.startsWith("https://")&&!l.startsWith("mailto:")&&a.removeAttribute("href")}a.setAttribute("target","_blank"),a.setAttribute("rel","noopener noreferrer")}if(n==="img"){const c=a.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||a.removeAttribute("src"))}const s=Array.from(a.childNodes);for(const c of s)ta(c,a)}var qa=["http:","https:"];function ye(e){try{return qa.includes(new URL(e).protocol)}catch{return!1}}function pe(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return qa.includes(t.protocol)}catch{return!1}}function se(e,t,a){(t==="href"||t==="src")&&!pe(a)||e.setAttribute(t,a)}function _e(e){if(!e)return"";const t=new DOMParser().parseFromString(e,"text/html").body,a=Array.from(t.childNodes);for(const n of a)ta(n,t);return t.innerHTML}function ce(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function mt(e,t){const a=n=>{t(n.detail)};return window.addEventListener(e,a),()=>window.removeEventListener(e,a)}function Wi(e){if(e.type!=="user_message"&&e.type!=="inputText")return null;if(typeof e.payload=="string"&&e.payload.trim().length>0)return e.payload.trim();if(typeof e.payload=="object"&&e.payload!==null){const t=e.payload;if(typeof t.text=="string"){const a=t.text.trim();if(a.length>0)return a}}return typeof e.title=="string"&&e.title.trim().length>0?e.title.trim():null}function Gi(e){if(e.type!=="inputText"&&e.type!=="user_message")return e;const t=typeof e.payload=="string"?{text:e.payload.trim()}:e.payload!=null&&typeof e.payload=="object"&&!Array.isArray(e.payload)?{...e.payload}:{};if(typeof t.text!="string"||!t.text.trim()){const a=e.title?.trim();a&&(t.text=a)}return"is_launcher"in t||(t.is_launcher=1),"is_suggested_text"in t||(t.is_suggested_text=1),{...e,payload:t}}function Ki(e){let t=!1;const a=[];let n=0,r=null,i=0;const o=100,s=5e3;function c(){return window.gengage?.chat??null}function l(){t||(console.warn("[gengage] QNA tried to open chat, but chat widget is not initialized. Ensure GengageChat is initialized before calling wireQNAToChat()."),t=!0),e?.onChatUnavailable?.()}function g(m,b){if(m.openWithAction){const v=b.type==="inputText"||b.type==="user_message"?Gi(b):b;m.openWithAction(v);return}const C=Wi(b);if(C&&m.sendMessage){m.open?.(),m.sendMessage(C);return}}function d(){r!==null&&(window.clearInterval(r),r=null)}function h(){const m=c();if(!m)return!1;if(n>0&&(m.open?.(),n=0),a.length>0){const b=a.splice(0,a.length);for(const C of b)g(m,C)}return d(),!0}function u(){r===null&&(i=Date.now(),r=window.setInterval(()=>{h()||Date.now()-i>=s&&(a.length=0,n=0,d())},o))}const f=mt("gengage:qna:action",m=>{const b=c();if(b){g(b,m);return}l(),a.length>=20&&a.shift(),a.push(m),u()}),p=mt("gengage:qna:open-chat",()=>{const m=c();if(m){m.open?.();return}l(),n+=1,u()});return()=>{f(),p(),a.length=0,n=0,d()}}function Yi(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function ja(e){return{sessionId:e?.sessionId??Yi(),...e}}var Za={"--gengage-chat-offset":"20px","--gengage-chat-launcher-size":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function Ji(e){return e?{...Za,...e}:{...Za}}var Ae={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},De="gengage-global-toast-root",Va="gengage-global-toast-style",aa="gengage-global-toast-root--visible",Qi=4200,Xi=1500,eo=15e3,to=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],Wa=!1,qe=null,ao=[/failed to fetch/i,/networkerror/i,/network request failed/i,/load failed/i,/err_network/i,/fetch failed/i,/network error/i];function Ga(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function na(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?ao.some(a=>a.test(t)):!1}function Ka(e,t){return na(t)?Ga(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":Ga(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function no(){Wa||typeof window>"u"||typeof document>"u"||(Wa=!0,mt("gengage:global:error",e=>{ra(e)}))}function ra(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;co();const a=io();oo(a),a.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const r=document.createElement("div");r.className="gengage-global-toast-title",r.textContent=ro(e.source);const i=document.createElement("div");i.className="gengage-global-toast-message",i.textContent=t,n.appendChild(r),n.appendChild(i),a.appendChild(n),a.classList.add(aa),qe&&(clearTimeout(qe),qe=null),e.sticky!==!0&&(qe=setTimeout(()=>{Ya()},so(e.durationMs)))}function Ya(){if(typeof document>"u")return;const e=document.getElementById(De);e&&(e.classList.remove(aa),e.innerHTML="",qe&&(clearTimeout(qe),qe=null))}function ro(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function io(){const e=document.getElementById(De);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=De,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function oo(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const a=window.getComputedStyle(t);for(const n of to){const r=a.getPropertyValue(n).trim();r?e.style.setProperty(n,r):e.style.removeProperty(n)}}function so(e){return typeof e!="number"||!Number.isFinite(e)?Qi:Math.min(eo,Math.max(Xi,Math.round(e)))}function co(){if(document.getElementById(Va))return;const e=document.createElement("style");e.id=Va;const t=Ae["--surface-card"]??Ae.backgroundColor??"#ffffff",a=Ae["--text-primary"]??Ae.foregroundColor??"#111827",n=Ae["--border-default"]??"rgba(17, 24, 39, 0.10)",r=Ae["--error"]??"#dc2626",i=Ae["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",o=Ae["--radius-card"]??"16px",s=Ae["--text-muted"]??"#6b7280";e.textContent=`
|
|
1
|
+
(function(Ye){Object.defineProperty(Ye,Symbol.toStringTag,{value:"Module"});var Ni=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function Kt(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const a=e.unknownRenderer??Ni,n=i=>{const o=e.spec.elements[i];if(!o)return null;const s=e.registry[o.type];return s?s({elementId:i,element:o,spec:e.spec,context:e.context,renderElement:n}):a({elementId:i,element:o,spec:e.spec,context:e.context,renderElement:n})},r=n(e.spec.root);return r&&t.appendChild(r),t}function Yt(e,t){if(!t)return e;const a={...e};for(const[n,r]of Object.entries(t))r&&(a[n]=r);return a}function Jt(e,t){const a={event_name:"stream.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{endpoint:t.endpoint,request_id:t.request_id}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function zi(e,t){const a={request_id:t.request_id,chunk_index:t.chunk_index};t.latency_ms!==void 0&&(a.latency_ms=t.latency_ms);const n={event_name:"stream.chunk",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:a};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Mi(e,t){const a={event_name:"stream.ui_spec",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,chunk_index:t.chunk_index,component_type:t.component_type}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function ut(e,t){const a={event_name:"stream.done",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,latency_ms:t.latency_ms,chunk_count:t.chunk_count}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Qt(e,t){const a={event_name:"stream.error",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,error_code:t.error_code,error_message:t.error_message}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),t.widget!==void 0&&(a.widget=t.widget),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Bi(e,t){const a={model:t.model,prompt_tokens:t.prompt_tokens,completion_tokens:t.completion_tokens,total_tokens:t.total_tokens};t.provider!==void 0&&(a.provider=t.provider);const n={event_name:"llm.usage",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:a};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Ri(e,t){const a={event_name:"metering.increment",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Oi(e,t){const a={event_name:"metering.summary",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Di(e,t){const a={event_name:"chat.history.snapshot",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{message_count:t.message_count,history_ref:t.history_ref,redaction_level:t.redaction_level}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Xt(e,t){const a={event_name:"widget.history.snapshot",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.widget,payload:{message_count:t.message_count,history_ref:t.history_ref,redaction_level:t.redaction_level}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Ua(e,t){const a={event_name:"basket.add",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items,sku:t.sku}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function Fi(e,t){const a={event_name:"checkout.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}function $i(e,t){const a={event_name:"checkout.complete",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(a.view_id=e.view_id),e.user_id!==void 0&&(a.user_id=e.user_id),e.page_type!==void 0&&(a.page_type=e.page_type),e.sku!==void 0&&(a.sku=e.sku),a}var Ui=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub"]),Hi=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta","template","noscript"]),Ha={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function qi(e){return/^\s*javascript\s*:/i.test(e)}var ji=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),Zi=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function Vi(e){const t=[];for(const a of e.split(";")){const n=a.trim();if(!n)continue;const r=n.indexOf(":");if(r===-1)continue;const i=n.slice(0,r).trim().toLowerCase(),o=n.slice(r+1).trim();ji.has(i)&&(Zi.test(o)||t.push(n))}return t.join("; ")}function ea(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const a=e,n=a.tagName.toLowerCase();if(Hi.has(n)){a.parentNode?.removeChild(a);return}if(!Ui.has(n)){const c=Array.from(a.childNodes);for(const l of c)t.insertBefore(l,a);t.removeChild(a);for(const l of c)ea(l,t);return}const r=Ha["*"]??new Set,i=Ha[n]??new Set,o=Array.from(a.attributes);for(const c of o){const l=c.name.toLowerCase();if(!r.has(l)&&!i.has(l)){a.removeAttribute(c.name);continue}if(qi(c.value)){a.removeAttribute(c.name);continue}if(l==="style"){const g=Vi(c.value);g?a.setAttribute("style",g):a.removeAttribute("style");continue}}if(n==="a"){const c=a.getAttribute("href");if(c!==null){const l=c.trim().toLowerCase();!l.startsWith("http://")&&!l.startsWith("https://")&&!l.startsWith("mailto:")&&a.removeAttribute("href")}a.setAttribute("target","_blank"),a.setAttribute("rel","noopener noreferrer")}if(n==="img"){const c=a.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||a.removeAttribute("src"))}const s=Array.from(a.childNodes);for(const c of s)ea(c,a)}var qa=["http:","https:"];function ye(e){try{return qa.includes(new URL(e).protocol)}catch{return!1}}function pe(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return qa.includes(t.protocol)}catch{return!1}}function se(e,t,a){(t==="href"||t==="src")&&!pe(a)||e.setAttribute(t,a)}function _e(e){if(!e)return"";const t=new DOMParser().parseFromString(e,"text/html").body,a=Array.from(t.childNodes);for(const n of a)ea(n,t);return t.innerHTML}function ce(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function mt(e,t){const a=n=>{t(n.detail)};return window.addEventListener(e,a),()=>window.removeEventListener(e,a)}function Wi(e){if(e.type!=="user_message"&&e.type!=="inputText")return null;if(typeof e.payload=="string"&&e.payload.trim().length>0)return e.payload.trim();if(typeof e.payload=="object"&&e.payload!==null){const t=e.payload;if(typeof t.text=="string"){const a=t.text.trim();if(a.length>0)return a}}return typeof e.title=="string"&&e.title.trim().length>0?e.title.trim():null}function Gi(e){if(e.type!=="inputText"&&e.type!=="user_message")return e;const t=typeof e.payload=="string"?{text:e.payload.trim()}:e.payload!=null&&typeof e.payload=="object"&&!Array.isArray(e.payload)?{...e.payload}:{};if(typeof t.text!="string"||!t.text.trim()){const a=e.title?.trim();a&&(t.text=a)}return"is_launcher"in t||(t.is_launcher=1),"is_suggested_text"in t||(t.is_suggested_text=1),{...e,payload:t}}function Ki(e){let t=!1;const a=[];let n=0,r=null,i=0;const o=100,s=5e3;function c(){return window.gengage?.chat??null}function l(){t||(console.warn("[gengage] QNA tried to open chat, but chat widget is not initialized. Ensure GengageChat is initialized before calling wireQNAToChat()."),t=!0),e?.onChatUnavailable?.()}function g(f,b){if(f.openWithAction){const v=b.type==="inputText"||b.type==="user_message"?Gi(b):b;f.openWithAction(v);return}const C=Wi(b);if(C&&f.sendMessage){f.open?.(),f.sendMessage(C);return}}function d(){r!==null&&(window.clearInterval(r),r=null)}function h(){const f=c();if(!f)return!1;if(n>0&&(f.open?.(),n=0),a.length>0){const b=a.splice(0,a.length);for(const C of b)g(f,C)}return d(),!0}function u(){r===null&&(i=Date.now(),r=window.setInterval(()=>{h()||Date.now()-i>=s&&(a.length=0,n=0,d())},o))}const m=mt("gengage:qna:action",f=>{const b=c();if(b){g(b,f);return}l(),a.length>=20&&a.shift(),a.push(f),u()}),p=mt("gengage:qna:open-chat",()=>{const f=c();if(f){f.open?.();return}l(),n+=1,u()});return()=>{m(),p(),a.length=0,n=0,d()}}function Yi(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function ja(e){return{sessionId:e?.sessionId??Yi(),...e}}var Za={"--gengage-chat-offset":"20px","--gengage-chat-launcher-size":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function Ji(e){return e?{...Za,...e}:{...Za}}var Ae={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},De="gengage-global-toast-root",Va="gengage-global-toast-style",ta="gengage-global-toast-root--visible",Qi=4200,Xi=1500,eo=15e3,to=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],Wa=!1,qe=null,ao=[/failed to fetch/i,/networkerror/i,/network request failed/i,/load failed/i,/err_network/i,/fetch failed/i,/network error/i];function Ga(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function aa(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?ao.some(a=>a.test(t)):!1}function Ka(e,t){return aa(t)?Ga(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":Ga(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function no(){Wa||typeof window>"u"||typeof document>"u"||(Wa=!0,mt("gengage:global:error",e=>{na(e)}))}function na(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;co();const a=io();oo(a),a.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const r=document.createElement("div");r.className="gengage-global-toast-title",r.textContent=ro(e.source);const i=document.createElement("div");i.className="gengage-global-toast-message",i.textContent=t,n.appendChild(r),n.appendChild(i),a.appendChild(n),a.classList.add(ta),qe&&(clearTimeout(qe),qe=null),e.sticky!==!0&&(qe=setTimeout(()=>{Ya()},so(e.durationMs)))}function Ya(){if(typeof document>"u")return;const e=document.getElementById(De);e&&(e.classList.remove(ta),e.innerHTML="",qe&&(clearTimeout(qe),qe=null))}function ro(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function io(){const e=document.getElementById(De);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=De,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function oo(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const a=window.getComputedStyle(t);for(const n of to){const r=a.getPropertyValue(n).trim();r?e.style.setProperty(n,r):e.style.removeProperty(n)}}function so(e){return typeof e!="number"||!Number.isFinite(e)?Qi:Math.min(eo,Math.max(Xi,Math.round(e)))}function co(){if(document.getElementById(Va))return;const e=document.createElement("style");e.id=Va;const t=Ae["--surface-card"]??Ae.backgroundColor??"#ffffff",a=Ae["--text-primary"]??Ae.foregroundColor??"#111827",n=Ae["--border-default"]??"rgba(17, 24, 39, 0.10)",r=Ae["--error"]??"#dc2626",i=Ae["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",o=Ae["--radius-card"]??"16px",s=Ae["--text-muted"]??"#6b7280";e.textContent=`
|
|
2
2
|
#${De} {
|
|
3
3
|
position: fixed;
|
|
4
4
|
top: 16px;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
z-index: 2147483646;
|
|
7
7
|
pointer-events: none;
|
|
8
8
|
}
|
|
9
|
-
#${De}.${
|
|
9
|
+
#${De}.${ta} {
|
|
10
10
|
pointer-events: auto;
|
|
11
11
|
}
|
|
12
12
|
#${De} .gengage-global-toast {
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
transform: translateY(0);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,document.head.appendChild(e)}var ot=null;function lo(){if(ot!==null)return ot;try{ot=localStorage.getItem("gengage:debug")==="1"}catch{ot=!1}return ot}function Le(e,t,a){if(!lo())return;const n=[`[gengage:${e}]`,t];a!==void 0&&n.push(a),console.debug(...n)}var ft=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=Ji(e.theme);this.config={...e,theme:t,session:ja(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),no();const a=mt("gengage:context:update",n=>this.update(n));this._cleanups.push(a),Le("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,Le("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this.config.analyticsClient?.destroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}trackCheckout(e,t){const a=e==="start"?Fi:$i;this.track(a(this.analyticsContext(),t))}flushMeteringSummary(e){this.track(Oi(this.analyticsContext(),e))}emit(e,...t){this._handlers.get(e)?.forEach(a=>a(...t))}addCleanup(e){this._cleanups.push(e)}track(e){this.config.analyticsClient?.track(e)}analyticsContext(){const e={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??""};return this.config.session?.viewId!==void 0&&(e.view_id=this.config.session.viewId),this.config.session?.userId!==void 0&&(e.user_id=this.config.session.userId),this.config.pageContext?.pageType!==void 0&&(e.page_type=this.config.pageContext.pageType),this.config.pageContext?.sku!==void 0&&(e.sku=this.config.pageContext.sku),this.config.session?.abTestVariant!==void 0&&(e.ab_test_variant=this.config.session.abTestVariant),this.config.session?.abTestExperimentId!==void 0&&(e.ab_test_experiment_id=this.config.session.abTestExperimentId),e}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const a=document.querySelector(e);if(!a)throw new Error(`[gengage] Mount target not found: "${e}"`);return a}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,a]of Object.entries(e))if(a!==void 0){const n=t.startsWith("--")?t:`--gengage-${go(t)}`;this.root.style.setProperty(n,a)}}}};function go(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Ja(){const e=Date.now(),t=new Uint8Array(16);crypto.getRandomValues(t),t[0]=e/2**40&255,t[1]=e/2**32&255,t[2]=e/2**24&255,t[3]=e/2**16&255,t[4]=e/2**8&255,t[5]=e&255,t[6]=t[6]&15|112,t[8]=t[8]&63|128;const a=Array.from(t,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 po=class{constructor(e){this._handlers=new Map,this._destroyed=!1,this._namespace=e.namespace,this._allowedOrigins=e.allowedOrigins??[location.origin],this._onMessage=e.onMessage,this._allowedOrigins.includes("*")&&uo()&&console.warn("[gengage] postMessage bridge using wildcard origin. Set allowedOrigins for production security."),this._messageListener=t=>this._handlePostMessage(t),window.addEventListener("message",this._messageListener)}send(e,t){if(this._destroyed)return;const a={namespace:this._namespace,type:e};t!==void 0&&(a.payload=t),window.dispatchEvent(new CustomEvent("gengage:bridge:message",{detail:a,bubbles:!1}))}on(e,t){this._handlers.has(e)||this._handlers.set(e,new Set);const a=this._handlers.get(e);return a.add(t),()=>{a.delete(t),a.size===0&&this._handlers.delete(e)}}destroy(){this._destroyed||(this._destroyed=!0,window.removeEventListener("message",this._messageListener),this._handlers.clear())}_handlePostMessage(e){if(this._destroyed||!this._isOriginAllowed(e.origin))return;const t=e.data;if(!ho(t)||t.gengage!==this._namespace)return;const a={type:t.type};t.payload!==void 0&&(a.payload=t.payload),this._onMessage?.(a);const n=this._handlers.get(a.type);if(n)for(const r of n)r(a.payload)}_isOriginAllowed(e){return this._allowedOrigins.includes("*")?!0:this._allowedOrigins.includes(e)}};function ho(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.gengage=="string"&&typeof t.type=="string"}function uo(){try{return typeof process<"u"&&process.env.NODE_ENV!=="production"}catch{return!1}}var mo=console;function fo(e,t,a={}){const n=e.action,r=a.logger??mo;switch(Le("action",`routing action: ${n.kind}`,n),n.kind){case"open_chat":t.openChat?.(n.payload);return;case"navigate":{if(typeof n.url!="string"){Je(n,t,a,r);return}if(!pe(n.url)){r.warn("[gengage] Blocked navigation to unsafe URL:",n.url);return}const i=typeof n.newTab=="boolean"?n.newTab:void 0;if(t.navigate){t.navigate({url:n.url,...i!==void 0&&{newTab:i}});return}bo(n.url,i);return}case"save_session":if(typeof n.sessionId!="string"||typeof n.sku!="string"){Je(n,t,a,r);return}t.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"){Je(n,t,a,r);return}t.addToCart?.({sku:n.sku,quantity:n.quantity,cartCode:n.cartCode});return;case"script_call":{if(a.allowScriptCall===!1){Je(n,t,a,r);return}if(typeof n.name!="string"){Je(n,t,a,r);return}const i=vo(n.payload)?n.payload:void 0;t.scriptCall?.({name:n.name,...i!==void 0&&{payload:i}});return}default:Je(n,t,a,r)}}function Je(e,t,a,n){const r=a.unknownActionPolicy??"log-and-ignore";if(r==="delegate"){t.unknown?.(e),t.unknown||n.warn("[gengage] Unknown action received without delegate handler",e);return}if(r==="throw")throw new Error(`[gengage] Unknown action kind: ${e.kind}`);n.warn("[gengage] Unknown action ignored",e)}function bo(e,t){if(!(typeof window>"u")){if(!pe(e)){console.warn("[gengage] Blocked navigation to unsafe URL:",e);return}if(t){window.open(e,"_blank","noopener,noreferrer");return}window.location.href=e}}function vo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var yo=["image/jpeg","image/png","image/webp"],Jm=5*1024*1024;function _o(e){return yo.includes(e.type)?e.size>5242880?{ok:!1,reason:"too_large"}:{ok:!0}:{ok:!1,reason:"invalid_type"}}function Qa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function xo(e){const t=[];let a=0,n=!1,r=!1,i=0;for(let o=0;o<e.length;o++){const s=e[o];if(r){r=!1;continue}if(s==="\\"&&n){r=!0;continue}if(s==='"'){n=!n;continue}n||(s==="{"&&a++,s==="}"&&(a--,a===0&&(t.push(e.slice(i,o+1)),i=o+1)))}return t.length>0?t:[e]}function Xa(e,t){const a=e.trim();if(!a||a.startsWith(":"))return!1;const n=a.startsWith("data: ")?a.slice(6):a;if(n==="[DONE]")return t.onDone?.(),!0;try{const r=JSON.parse(n);return Qa(r)?(Le("stream",`event: ${r.type}`,r),t.onEvent(r),r.type==="done"?(t.onDone?.(),!0):!1):!1}catch{const r=xo(n);if(r.length>1){for(const i of r)try{const o=JSON.parse(i);if(!Qa(o))continue;if(t.onEvent(o),o.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function bt(e,t){if(!e.ok){t.onError?.(new Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(new Error("Response body is null — streaming not supported"));return}const a=e.body.getReader(),n=new TextDecoder("utf-8");let r="";const i=t.idleTimeoutMs??6e4,o=Symbol("idle-timeout");let s=!1;try{for(;;){const c=a.read();let l;const g=await(i>0?Promise.race([c.then(
|
|
48
|
-
`);r=u.pop()??"";for(const f of u)if(Xa(f,t))return}if(r.trim()&&Xa(r,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{s||a.releaseLock()}t.onDone?.()}var en=3,wo=(e,t)=>{const a=e.replace(/\s+/g," ").trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,"");if(!a)return"";const n=t?.stripLeadingStopWords?a.replace(/^(?:daha|için)\s+/i,"").trim():a;return n?n.split(/\s+/).slice(0,3).join(" ").trim():""},ia=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(a=>wo(a,t)).filter(Boolean):[];function ko(e){const t=(e.display_keywords??[]).flatMap(r=>ia(r,{stripLeadingStopWords:!0})),a=t.filter((r,i)=>t.indexOf(r)===i);if(a.length>0)return a.slice(0,en);const n=[...ia(e.chosen_attribute,{stripLeadingStopWords:!0}),...ia(e.short_name)];return n.filter((r,i)=>n.indexOf(r)===i).slice(0,en)}function Co(e){return ko(e).join(" • ")}var So=["beauty_consulting","watch_expert"];function tn(e){return typeof e=="string"&&So.includes(e)}function vt(e){if(typeof e.type!="string")return null;if(Eo(e))return e;const t=e;switch(t.type){case"outputText":return To(t);case"suggestedActions":return Po(t);case"productList":return Ao(t);case"productDetails":return Lo(t);case"productDetailsSimilars":return Io(t);case"comparisonTable":return No(t);case"context":return Ro(t);case"chatStreamEnd":return Oo();case"loading":return Do(t);case"panelLoading":return Fo(t);case"similarLoading":return $o(t);case"redirect":return Uo(t);case"error":return Ho(t);case"dummy":return qo(t);case"launcherAction":return jo(t);case"text":return oa(t);case"productItem":return Zo(t);case"text_image":return an(t);case"quick_qna":return nn(t);case"reviewHighlights":return Vo(t);case"aiProductSuggestions":return Ko(t);case"aiProductGroupings":return Yo(t);case"aiSuggestedSearches":return Jo(t);case"prosAndCons":return Wo(t);case"getGroundingReview":return Qo(t);case"voice":return es(t);case"visitorDataResponse":return Go(t);case"productListPreview":return Xo();case"groupList":return ts(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return as(t);case"launcherContent":return rs(t);case"handoff":return ns(t);case"uiSpec":return us(t);default:return null}}function Eo(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const a=e.widget;if(a!=="chat"&&a!=="qna"&&a!=="simrel")return!1;const n=xe(e.spec);return n?typeof n.root=="string"&&xe(n.elements)!==null:!1}case"action":{const a=xe(e.action);return a!==null&&typeof a.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function To(e){const t=Z(e.payload.text,e.payload.plain_text)??"",a=Z(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:a||"Backend returned an error"};const n={type:"text_chunk",content:t,final:!0},r=e.payload.product_mentions;Array.isArray(r)&&r.length>0&&(n.productMentions=r.filter(c=>typeof c=="object"&&c!==null&&typeof c.sku=="string"&&typeof c.short_name=="string"));const i=e.payload.sku_to_product_item;i&&typeof i=="object"&&!Array.isArray(i)&&(n.skuToProductItem=i);const o=e.payload.conversation_mode;typeof o=="string"&&o&&(n.conversationMode=o);const s=e.payload.render_hint;return typeof s=="string"&&s&&(n.renderHint=s),e.payload.kvkk===!0&&(n.kvkk=!0),n}function Po(e){return rn((e.payload.actions??[]).map(t=>{const a=Z(t.title)??"",n=Ie(t.requestDetails,a),r=n?{label:a,action:n}:null;return r?(typeof t.icon=="string"&&(r.icon=t.icon),typeof t.image=="string"&&(r.image=t.image),r):null}).filter(sa),"chat")}function Ao(e){const t=(Array.isArray(e.payload.style_variations)?e.payload.style_variations:[]).map(o=>{const s=Z(o.style_label),c=Z(o.style_mood),l=Z(o.image_url??void 0),g=(Array.isArray(o.product_list)?o.product_list:[]).map(h=>{const u=xe(h);return u?sn(xe(u.product_detail)??xe(u.product)??u):null}).filter(sa),d=Array.isArray(o.recommendation_groups)?o.recommendation_groups.map(h=>({label:Z(h.label)??"",reason:Z(h.reason)??"",skus:Array.isArray(h.skus)?h.skus.filter(u=>typeof u=="string"&&u.trim().length>0):[]})):[];return{style_label:s??"",style_mood:c??"",...l?{image_url:l}:{},product_list:g,recommendation_groups:d}}).filter(o=>o.product_list.length>0),a=e.payload.product_list??[],n=tn(e.payload.source)&&t.length>0?t[0].product_list:null,r=n?is(n,"chat"):on(a,"chat");r.panelHint="panel";const i=r.spec.elements[r.spec.root];if(i){const o={};typeof e.payload.offset=="number"&&(o.offset=e.payload.offset),typeof e.payload.end_of_list=="boolean"&&(o.endOfList=e.payload.end_of_list),typeof e.payload.title=="string"&&(o.panelTitle=e.payload.title),typeof e.payload.source=="string"&&(o.source=e.payload.source),t.length>0&&(o.styleVariations=t),Object.keys(o).length>0&&(i.props={...i.props,...o})}return r}function Lo(e){const t=e.payload.productDetails;if(!t)return ss("chat");const a=Fe(t);return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:{...t,...a}}}}},panelHint:"panel"}}function Io(e){const t=on(e.payload.similarProducts??[],"chat"),a=t.spec.elements[t.spec.root];return a&&(a.props={...a.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function No(e){const t=e.payload.multiple_product_details??[],a=e.payload,n={key_differences:a.key_differences,recommended_choice:a.recommended_choice,recommended_choice_sku:a.recommended_choice_sku,special_considerations:a.special_considerations,criteria_view:a.criteria_view,criteria_view_short:a.criteria_view_short,compared_field_names:a.compared_field_names,winner_product:a.winner_product,winner_hits:a.winner_hits,...e.payload.product_comparison_framework??{}},r=e.payload.table,i=e.payload.features_list,o=[];for(const m of t){const b=Fe(m);o.push(b)}const s=zo(r,o,n,i);let c;n?.recommended_choice_sku?c=n.recommended_choice_sku:n?.winner_product&&n.winner_product.length>0&&(c=n.winner_product[0]?.product_detail?.sku??n.winner_product[0]?.sku);const l=c?o.find(m=>m.sku===c)??o[0]:o[0],g=[];if(Array.isArray(n?.key_differences))for(const m of n.key_differences)typeof m=="string"&&g.push(m);const d=ds(n?.special_considerations),h=n?.recommended_choice,u=n?.winner_hits,f={};for(const m of o){const b=m.sku;b&&(f[b]={title:m.name??b,type:"launchSingleProduct",payload:{sku:b}})}const p={products:o,attributes:s,highlights:g,productActions:f};return l&&(p.recommended=l),d.length>0&&(p.specialCases=d),h&&(p.recommendedText=h),u&&(p.winnerHits=u),typeof n?.key_differences=="string"&&(p.keyDifferencesHtml=n.key_differences),n?.special_considerations&&(p.specialConsiderations=n.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function zo(e,t,a,n){if(!e)return[];const r=Object.entries(e);if(r.length===0)return[];const i=r[0]?.[1];if(Array.isArray(i)){const d=a.criteria_view??a.criteria_view_short??{},h=a.compared_field_names??Object.keys(e),u=[];for(const f of h){const p=e[f];if(!p||!Array.isArray(p))continue;const m=d[f]??f;u.push({label:m,values:p.map(b=>typeof b=="string"?b:String(b??""))})}return u}const o=e,s=t.map(d=>String(d.sku??"")).filter(d=>d.length>0),c=a.criteria_view??a.criteria_view_short??{},l=(n&&n.length>0?n:a.compared_field_names&&a.compared_field_names.length>0?a.compared_field_names:Mo(o)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),g=[];for(const d of l){const h=s.map(f=>{const p=o[f];if(!p||typeof p!="object")return"";const m=p[`${d}_short`],b=p[d];return Bo(m??b)});if(h.every(f=>f.length===0))continue;const u=c[d]??d;g.push({label:u,values:h})}return g}function Mo(e){const t=[],a=new Set;for(const n of Object.values(e))if(!(!n||typeof n!="object"))for(const r of Object.keys(n))a.has(r)||(a.add(r),t.push(r));return t}function Bo(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Ro(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function Oo(){return{type:"done"}}function Do(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function Fo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function $o(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Uo(e){const t=Z(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:Z(e.payload.to)}}}function Ho(e){return{type:"error",code:"BACKEND_ERROR",message:Z(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function qo(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function jo(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const r={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,o=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(r.type=i),o!==void 0&&(r.theme=o),nn({type:"quick_qna",payload:r})}const a=xe(t.action);if(a){const r={action:a},i=typeof t.text=="string"?t.text:void 0,o=typeof t.image_url=="string"?t.image_url:void 0,s=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(r.text=i),o!==void 0&&(r.image_url=o),s!==void 0&&(r.theme=s),an({type:"text_image",payload:r})}const n=typeof t.text=="string"?t.text:"";if(n){const r={text:n},i=typeof t.type=="string"?t.type:void 0,o=typeof t.theme=="string"?t.theme:void 0,s=xe(t.payload)??void 0;return i!==void 0&&(r.type=i),s!==void 0&&(r.payload=s),o!==void 0&&(r.theme=o),oa({type:"text",payload:r})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function oa(e){const t={text:Z(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function Zo(e){return os(e.payload,"qna")}function an(e){const t=Z(e.payload.text)??"",a=Ie(e.payload.action,t);if(a){const r={label:t||a.title,action:a};return typeof e.payload.image_url=="string"&&(r.image=e.payload.image_url),typeof e.payload.theme=="string"&&(r.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:r}}}}}const n={text:t};return typeof e.payload.theme=="string"&&(n.theme=e.payload.theme),oa({type:"text",payload:n})}function nn(e){return rn((e.payload.action_list??[]).map(t=>{const a=Z(t.title)??"",n=Ie(t.requestDetails,a),r=n?{label:a,action:n}:null;return r?(typeof t.icon=="string"&&(r.icon=t.icon),typeof t.image=="string"&&(r.image=t.image),r):null}).filter(sa),"qna")}function Vo(e){const t={reviews:(e.payload.reviews??[]).map(a=>{const n={};return typeof a.review_class=="string"&&(n.review_class=a.review_class),typeof a.review_text=="string"&&(n.review_text=a.review_text),(typeof a.review_rating=="string"||typeof a.review_rating=="number")&&(n.review_rating=a.review_rating),typeof a.review_tag=="string"&&(n.review_tag=a.review_tag),n})};return typeof e.payload.sku=="string"&&(t.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:t}}}}}function Wo(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function Go(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function Ko(e){const t=e.payload.product_suggestions??[],a=[];for(let n=0;n<t.length;n++){const r=t[n];if(!r)continue;const i=cs(r);if(!i)continue;const o={product:i},s=Ie(r.requestDetails,i.name);s&&(o.action=s),typeof r.role=="string"&&(o.role=r.role),typeof r.reason=="string"&&(o.reason=r.reason),typeof r.review_highlight=="string"&&(o.reviewHighlight=r.review_highlight),Array.isArray(r.labels)&&(o.labels=r.labels),typeof r.expert_quality_score=="number"&&(o.expertQualityScore=r.expert_quality_score),a.push(o)}return a.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:a}}}}}}function Yo(e){const t=e.payload.product_groupings??[],a=[];for(let n=0;n<t.length;n++){const r=t[n];if(!r)continue;const i=Z(r.name)??"",o=r.sku&&r.sku.length>0?{type:"findSimilar",payload:{sku:r.sku}}:void 0,s=Ie(r.requestDetails??o,i);if(!s)continue;const c={name:i,action:s};if(Array.isArray(r.labels)){const l=r.labels.filter(g=>typeof g=="string");l.length>0&&(c.labels=l)}typeof r.image=="string"&&(c.image=r.image),a.push(c)}return a.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:a}}}}}}function Jo(e){const t=e.payload.suggested_searches??[],a=[];for(let n=0;n<t.length;n++){const r=t[n];if(!r)continue;const i=Z(r.short_name,r.chosen_attribute,r.detailed_user_message)??`Search ${n+1}`,o={},s=Z(r.detailed_user_message);s&&(o.text=s);const c=xe(xe(r.requestDetails)?.payload),l=c?.group_skus;r.group_skus&&Array.isArray(r.group_skus)?o.group_skus=r.group_skus:Array.isArray(l)&&(o.group_skus=l.filter(b=>typeof b=="string"));const g=Z(r.sku,r.representative_product_sku,c?.sku);g&&(o.sku=g),o.is_suggested_text=1;const d={type:"inputText",payload:o},h=Ie(r.requestDetails,i),u=h?.type==="findSimilar"&&typeof o.text=="string"?Ie(d,i):h??Ie(d,i);if(!u)continue;const f={shortName:i,action:u},p=Z(r.detailed_user_message);p&&p!==i&&(f.detailedMessage=p);const m=Co(r);m&&m!==i&&m!==(p??"")&&(f.whyDifferent=m),typeof r.image=="string"&&(f.image=r.image),a.push(f)}return a.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:a}}}}}}function Qo(e){const t=e.payload,a=Ie(t.requestDetails??t.request_details,Z(t.review_count,t.reviewCount,t.text,t.title)??"Show product reviews");if(!a)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:t}};const n={action:a};return t.title&&(n.title=t.title),t.text&&(n.text=t.text),t.review_count?n.reviewCount=t.review_count:typeof t.reviewCount=="string"&&t.reviewCount.trim()&&(n.reviewCount=t.reviewCount),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function Xo(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function es(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function ts(e){const t=e.payload.group_list??[],a=[];for(const r of t){const i=r.group_name??"",o=(r.product_list??[]).map(Fe);a.push({groupName:i,products:o})}const n=[];for(const r of e.payload.filter_tags??[]){const i=r.title??"";if(!i)continue;const o=Ie(r.requestDetails,i),s={title:i};o&&(s.action=o),n.push(s)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:a,filterTags:n}}}},panelHint:"panel"}}function as(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function ns(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function rs(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function rn(e,t){const a={},n=[];for(let r=0;r<e.length;r++){const i=e[r];if(!i)continue;const o=`action-${r}`;n.push(o);const s={label:i.label,action:i.action};i.icon!==void 0&&(s.icon=i.icon),i.image!==void 0&&(s.image=i.image),i.description!==void 0&&(s.description=i.description),a[o]={type:"ActionButton",props:s}}return a.root={type:"ActionButtons",props:{buttons:e.map(r=>{const i={label:r.label,action:r.action};return r.image!==void 0&&(i.image=r.image),r.description!==void 0&&(i.description=r.description),r.icon!==void 0&&(i.icon=r.icon),i})},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:a}}}function on(e,t){const a={},n=[];for(let r=0;r<e.length;r++){const i=e[r];if(!i)continue;const o=Fe(i),s=`product-${r}`;n.push(s);const c={product:o,index:r};o.sku&&(c.action={title:o.name,type:"launchSingleProduct",payload:{sku:o.sku}}),a[s]={type:"ProductCard",props:c}}return a.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:a}}}function is(e,t){const a={},n=[];for(let r=0;r<e.length;r++){const i=e[r];if(!i)continue;const o=`product-${r}`;n.push(o);const s={product:i,index:r},c=i.sku;c&&(s.action={title:i.name??"",type:"launchSingleProduct",payload:{sku:c}}),a[o]={type:"ProductCard",props:s}}return a.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:a}}}function os(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:Fe(e),index:0}}}}}}function ss(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function cs(e){const t=Z(e.sku),a=Z(e.short_name),n={...xe(e.product_item)??e},r=Z(e.discount_reason,e.discountReason);return r&&!Z(n.discount_reason,n.discountReason)&&(n.discount_reason=r),sn(n,t,a)}function sn(e,t,a){const n=Z(e.sku,t),r=Z(e.name,a);if(!n||!r)return null;const i={sku:n,name:r},o=Z(e.brand);o&&(i.brand=o);const s=Z(e.url);s&&(i.url=s);const c=ls(e.images);if(c.length>0)i.images=c;else{const p=Z(e.image,e.image_url,e.imageUrl);p&&(i.images=[p])}const l=st(e.price_discounted);l!==void 0&&(i.price_discounted=l);const g=st(e.price);g!==void 0&&(i.price=g);const d=st(e.rating);d!==void 0&&(i.rating=d);const h=st(e.review_count)??st(e.reviewCount);h!==void 0&&(i.review_count=h);const u=Z(e.cart_code,e.cartCode);u&&(i.cart_code=u),typeof e.in_stock=="boolean"&&(i.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(i.in_stock=e.inStock);const f=Z(e.discount_reason,e.discountReason);return f&&(i.discount_reason=f),Fe(i)}function Ie(e,t){const a=xe(e);if(!a)return null;const n=a.type;if(typeof n!="string"||n.length===0)return null;const r={title:t||n,type:n};return a.payload!==void 0&&(r.payload=a.payload),r}function xe(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Z(...e){for(const t of e)if(typeof t=="string"){const a=t.trim();if(a.length>0)return a}}function ls(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function ds(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function st(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const a=Number(t);if(Number.isFinite(a))return a}}function sa(e){return e!=null}var gs=new Set(["sku","name","brand","images","price","price_discounted","price_discount_rate","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","description","description_html","features","specifications","facet_tags","short_name","category_ids","category_names","variants","facet_hits","promotions"]);function Fe(e){const t=e.price_discounted!=null&&e.price_discounted>0,a=t?e.price_discounted:e.price,n=t&&e.price!=null?e.price:void 0;let r;n!=null&&a!=null&&n>0?r=Math.round((n-a)/n*100):e.price_discount_rate!=null&&e.price_discount_rate>0&&(r=e.price_discount_rate);const i=Z(e.brand),o=Z(e.name)??e.sku,s=i&&!o.toLowerCase().startsWith(i.toLowerCase())?`${i} ${o}`:o,c={sku:e.sku,name:s,url:Z(e.url)??""},l=e.images?.[0];l&&(c.imageUrl=l),e.images&&e.images.length>1&&(c.images=e.images),a!=null&&(c.price=String(a)),n!=null&&(c.originalPrice=String(n)),r!==void 0&&(c.discountPercent=r),i!==void 0&&(c.brand=i),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions),e.description!==void 0&&(c.description=e.description),e.description_html!==void 0&&(c.descriptionHtml=e.description_html),e.features&&e.features.length>0&&(c.features=e.features),e.specifications!==void 0&&(c.specifications=e.specifications),e.facet_hits&&(c.facetHits=e.facet_hits),e.short_name!==void 0&&(c.shortName=e.short_name);const g=e,d={};let h=!1;for(const u of Object.keys(g))gs.has(u)||(d[u]=g[u],h=!0);return h&&(c.extras=d),c}function ps(e){return e.results.map(Fe)}function hs(e){return e.product_groupings.map(t=>{const a={name:t.name,products:(t.group_products??[]).map(Fe)};return t.highlight!==void 0&&(a.highlight=t.highlight),a})}function us(e){const t=e.payload.type,{type:a,...n}=e.payload;return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:t,props:n}}}}}var ms={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function fs(e){if(e===void 0)throw new Error("[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.");const t=e.trim();return t===""?"":t.replace(/\/+$/,"")}function yt(e,t){return`${fs(t?.middlewareUrl)}/chat${ms[e]}`}function bs(e,t){const a=e.type,n=e.payload!=null&&typeof e.payload=="object"&&!Array.isArray(e.payload)?e.payload:{},r=i=>{const o={...n};for(const[s,c]of Object.entries(i))s in o||(o[s]=c);return o};switch(a){case"inputText":{const i={is_launcher:0};return t.pageContext?.extra&&(i.page_details=t.pageContext.extra),"is_suggested_text"in n||(i.is_suggested_text=0),{...e,payload:r(i)}}case"findSimilar":{const i={is_launcher:0};return e.title&&(i.text=e.title,i.input=e.title),{...e,payload:r(i)}}case"getComparisonTable":return e;case"addToCart":{const i={};return"error_message"in n||(i.error_message=""),{...e,payload:r(i)}}case"reviewSummary":{const i={};return t.pageContext?.sku&&!("sku"in n)&&(i.sku=t.pageContext.sku),Object.keys(i).length===0?e:{...e,payload:r(i)}}default:return e}}var vs={user_message:"inputText"};function ys(e){const{action:t,type:a,payload:n,...r}=e,i=a??t?.type??"inputText",o=n??t?.payload,s=vs[i]??i,c={...r,type:s};return o!==void 0&&(c.payload=typeof o=="string"?{text:o}:o),JSON.stringify(c)}function _s(e,t,a){const n=yt("process_action",a),r=new AbortController;return(async()=>{try{const o=ys(e),s=a.attachment!==void 0;let c;if(s){const h=new FormData;h.append("request",o),a.attachment!==void 0&&h.append("attachment",a.attachment),c={method:"POST",body:h,signal:r.signal}}else c={method:"POST",headers:{"Content-Type":"application/json"},body:o,signal:r.signal};const l=await fetch(n,c);if(!l.ok){let h=l.statusText;try{const u=await l.json(),f=u.detail??u.message??u.error;typeof f=="string"&&(h=f)}catch{}t.onError(new Error(`HTTP ${l.status}: ${h}`));return}let g=!1;const d=()=>{g||(g=!0,t.onDone())};await bt(l,{onEvent:h=>{const u=vt(h);if(u)switch(u.type){case"text_chunk":t.onTextChunk(u.content,u.final===!0,{productMentions:u.productMentions,skuToProductItem:u.skuToProductItem,conversationMode:u.conversationMode,renderHint:u.renderHint,kvkk:u.kvkk});break;case"ui_spec":t.onUISpec(u.spec,u.widget,u.panelHint,u.clearPanel===!0);break;case"action":t.onAction(u);break;case"metadata":t.onMetadata(u);break;case"error":t.onError(new Error(u.message));break;case"done":d();break}},onError:t.onError,signal:r.signal}),d()}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;t.onError(o instanceof Error?o:new Error(String(o)))}})(),r}var xs="gengage-chat-scroll",cn=null;function ln(e){cn=e}function ws(){cn=null}var ca={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",photoAnalysisStrengthsLabel:"Öne Çıkanlar",photoAnalysisFocusLabel:"Odak Noktaları",photoAnalysisCelebStyleLabel:"Celeb Vibe Eşleşmesi",photoAnalysisSeeMoreLabel:"Detaylı analizi gör",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"},ks={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",photoAnalysisStrengthsLabel:"Your strengths",photoAnalysisFocusLabel:"Focus points",photoAnalysisCelebStyleLabel:"Celeb style match",photoAnalysisSeeMoreLabel:"See detailed 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 Cs(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Ss(e){return Cs(e)==="en"?ks:ca}function Es(){return dn()!==null}function dn(){const e=globalThis;return e.SpeechRecognition??e.webkitSpeechRecognition??null}var Ts=class{constructor(e,t){this.recognition=null,this._state="idle",this.silenceTimer=null,this.accumulatedTranscript="",this.intentionalStop=!1,this._lastRestartAt=0,this.callbacks=e,this.lang=t?.lang??"tr-TR",this.silenceTimeoutMs=t?.silenceTimeoutMs??1500,this.autoSubmit=t?.autoSubmit??!0}get state(){return this._state}start(){if(this._state==="listening")return;const e=dn();if(!e){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 t=new e;t.continuous=!0,t.interimResults=!0,t.lang=this.lang,t.maxAlternatives=1,t.onstart=()=>{this.setState("listening")},t.onresult=a=>{this.clearSilenceTimer();let n="",r="";for(let i=a.resultIndex;i<a.results.length;i++){const o=a.results[i];if(!o)continue;const s=o[0];s&&(o.isFinal?r+=s.transcript:n+=s.transcript)}r&&(this.accumulatedTranscript+=r,this.callbacks.onFinal?.(this.accumulatedTranscript)),n&&this.callbacks.onInterim?.(this.accumulatedTranscript+n),this.autoSubmit&&this.accumulatedTranscript&&this.startSilenceTimer()},t.onerror=a=>{const n=Ps(a.error);this.intentionalStop&&(a.error==="no-speech"||a.error==="aborted")||(this.setState("error"),this.callbacks.onError?.(n,a.message||a.error))},t.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{t.start()}catch{this.setState("idle")}return}this.setState("idle")},this.recognition=t;try{t.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(e){this._state!==e&&(this._state=e,this.callbacks.onStateChange?.(e))}startSilenceTimer(){this.clearSilenceTimer(),this.silenceTimer=setTimeout(()=>{const e=this.stop();e.trim()&&this.callbacks.onAutoSubmit?.(e.trim())},this.silenceTimeoutMs)}clearSilenceTimer(){this.silenceTimer!==null&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}};function Ps(e){switch(e){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 As(e){const t=document.createElement("div");t.className="gengage-chat-kvkk-banner gds-evidence-card gds-evidence-card-warning",t.dataset.gengagePart="kvkk-banner",t.setAttribute("role","alert");const a=document.createElement("div");a.className="gengage-chat-kvkk-content",a.dataset.gengagePart="kvkk-content",a.innerHTML=_e(e.htmlContent),t.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",e.closeAriaLabel??"Close privacy notice"),n.textContent="×",n.addEventListener("click",e.onDismiss),t.appendChild(n),t}var Ls=class{constructor(e){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",e.backAriaLabel??"Back"),this._backBtn.title=e.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",()=>e.onBack());const t=document.createElement("div");t.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",t.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",e.forwardAriaLabel??"Forward"),this._forwardBtn.title=e.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",()=>e.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",e.closePanelAriaLabel??"Close panel"),this._closeBtn.title=e.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",()=>e.onClose?.()),this._el.appendChild(this._backBtn),this._el.appendChild(t),this._el.appendChild(this._actionsEl),this._el.appendChild(this._forwardBtn),this._el.appendChild(this._closeBtn)}update(e,t,a){this._backBtn.disabled=!e,this._forwardBtn.disabled=!t,this._backBtn.hidden=!e,this._forwardBtn.hidden=!t,this._titleEl.textContent=a,this._titleEl.title=a}getElement(){return this._el}setTitle(e){this._titleEl.textContent=e}setActions(e){this._actionsEl.replaceChildren(),e&&this._actionsEl.appendChild(e)}getTitle(){return this._titleEl.textContent??""}},Is=class{constructor(e){this._onThumbnailClick=e.onThumbnailClick,this._el=document.createElement("div"),this._el.className="gengage-chat-thumbnails-column",this._el.style.display="none"}getElement(){return this._el}setEntries(e){const t=new Set,a=[];for(const n of e)t.has(n.sku)||(t.add(n.sku),a.push(n));this._el.innerHTML="";for(const n of a){const r=document.createElement("button");if(r.type="button",r.className="gengage-chat-thumbnail-btn",r.title=n.sku,ye(n.imageUrl)){const i=document.createElement("img");i.className="gengage-chat-thumbnail-img",i.src=n.imageUrl,i.alt=n.sku,i.width=40,i.height=40,r.appendChild(i)}r.addEventListener("click",()=>{this._onThumbnailClick(n.threadId)}),this._el.appendChild(r)}}show(){this._el.style.display=""}hide(){this._el.style.display="none"}};function Ns(e){return{processing:e.processing===!0,title:typeof e.title=="string"?e.title:void 0,description:typeof e.description=="string"?e.description:void 0,uploadLabel:typeof e.upload_label=="string"?e.upload_label:void 0,skipLabel:typeof e.skip_label=="string"?e.skip_label:void 0}}function gn(e,t,a){const n=e.props??{},r=n.processing===!0,i=document.createElement("div");i.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 s=document.createElement("div");s.className="gengage-chat-beauty-photo-step-content";const c=document.createElement("div");c.className="gengage-chat-beauty-photo-step-title",c.textContent=(typeof n.title=="string"?n.title:void 0)??t.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)??t.i18n?.beautyPhotoStepDescription??"Share a selfie so we can analyze your skin and recommend the right products.";const g=document.createElement("div");g.className="gengage-chat-beauty-photo-step-actions";const d=document.createElement("button");d.type="button",d.className="gengage-chat-beauty-photo-step-upload gds-btn gds-btn-primary",d.textContent=r?t.i18n?.beautyPhotoStepProcessing??"Analyzing...":(typeof n.upload_label=="string"?n.upload_label:void 0)??t.i18n?.beautyPhotoStepUpload??"Upload Photo",d.disabled=r,a?.onUpload&&d.addEventListener("click",()=>a.onUpload());const h=document.createElement("button");return h.type="button",h.className="gengage-chat-beauty-photo-step-skip gds-btn gds-btn-ghost",h.textContent=(typeof n.skip_label=="string"?n.skip_label:void 0)??t.i18n?.beautyPhotoStepSkip??"Skip",a?.onSkip&&h.addEventListener("click",()=>a.onSkip()),g.appendChild(d),g.appendChild(h),s.appendChild(c),s.appendChild(l),s.appendChild(g),i.appendChild(o),i.appendChild(s),i}function zs(e,t){if(e)return e;const a=document.createElement("section");a.className="gengage-chat-beauty-photo-step",a.dataset.gengagePart="chat-beauty-photo-step",a.hidden=!0;const n=t?.querySelector(".gengage-chat-input-area");return n?n.parentElement?.insertBefore(a,n):t?.appendChild(a),a}function Ms(e,t,a,n,r){if(!a.visible)return e&&(e.hidden=!0,e.innerHTML=""),e;const i=zs(e,t);i.hidden=!1,i.innerHTML="";const o=gn({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:r,onSkip:a.onSkip});return i.appendChild(o),i}function pn(e){const t=typeof e.summary=="string"?e.summary:"",a=Array.isArray(e.clues)?e.clues.filter(g=>typeof g=="string"):[],n=Array.isArray(e.strengths)?e.strengths.filter(g=>typeof g=="string"):[],r=Array.isArray(e.focus_points)?e.focus_points.filter(g=>typeof g=="string"):[],i=Array.isArray(e.details)?e.details.filter(g=>typeof g=="string"):[];if(!t&&a.length===0&&n.length===0&&r.length===0&&i.length===0)return null;const o={summary:t,clues:a},s=typeof e.celeb_style=="string"?e.celeb_style:void 0,c=typeof e.celeb_style_reason=="string"?e.celeb_style_reason:void 0,l=typeof e.next_question=="string"?e.next_question:void 0;return n.length>0&&(o.strengths=n),r.length>0&&(o.focusPoints=r),i.length>0&&(o.details=i),s&&(o.celebStyle=s),c&&(o.celebStyleReason=c),l&&(o.nextQuestion=l),o}function la(e){const t=e.details&&e.details.length>0?e.details:e.clues;return e.strengths&&e.strengths.length>0||e.focusPoints&&e.focusPoints.length>0?{...e,details:t}:t.length<3?{...e,details:t}:{...e,strengths:t.slice(0,2),focusPoints:t.slice(2,4),details:t}}function hn(e,t,a){if(t.length===0)return null;const n=document.createElement("section");n.className=`gengage-chat-photo-analysis-section ${a}`;const r=document.createElement("h4");r.className="gengage-chat-photo-analysis-section-title",r.textContent=e;const i=document.createElement("ul");i.className="gengage-chat-photo-analysis-section-list";for(const o of t){const s=document.createElement("li");s.className="gengage-chat-photo-analysis-section-item",s.textContent=o,i.appendChild(s)}return n.appendChild(r),n.appendChild(i),n}function da(e,t){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=e.badge;const r=document.createElement("div");if(r.className="gengage-chat-photo-analysis-body",t.summary){const l=document.createElement("p");l.className="gengage-chat-photo-analysis-summary",l.textContent=t.summary,r.appendChild(l)}const i=document.createElement("div");i.className="gengage-chat-photo-analysis-highlights";const o=hn(e.strengths,t.strengths??[],"gengage-chat-photo-analysis-section--strengths"),s=hn(e.focus,t.focusPoints??[],"gengage-chat-photo-analysis-section--focus");if(o&&i.appendChild(o),s&&i.appendChild(s),i.childElementCount>0&&r.appendChild(i),t.celebStyle){const l=document.createElement("section");l.className="gengage-chat-photo-analysis-section gengage-chat-photo-analysis-section--celeb";const g=document.createElement("h4");g.className="gengage-chat-photo-analysis-section-title",g.textContent=e.celebStyle;const d=document.createElement("p");if(d.className="gengage-chat-photo-analysis-celeb-name",d.textContent=t.celebStyle,l.appendChild(g),l.appendChild(d),t.celebStyleReason){const h=document.createElement("p");h.className="gengage-chat-photo-analysis-celeb-reason",h.textContent=t.celebStyleReason,l.appendChild(h)}r.appendChild(l)}const c=(t.details&&t.details.length>0?t.details:t.clues).filter(Boolean);if(c.length>0){const l=document.createElement("details");l.className="gengage-chat-photo-analysis-details";const g=document.createElement("summary");g.className="gengage-chat-photo-analysis-details-summary",g.textContent=e.seeMore;const d=document.createElement("ul");d.className="gengage-chat-photo-analysis-points";for(const h of c){const u=document.createElement("li");u.textContent=h,d.appendChild(u)}l.appendChild(g),l.appendChild(d),r.appendChild(l)}if(t.nextQuestion){const l=document.createElement("p");l.className="gengage-chat-photo-analysis-next",l.textContent=t.nextQuestion,r.appendChild(l)}return a.appendChild(n),a.appendChild(r),a}function Bs(e){return{badge:e?.i18n?.photoAnalysisBadge??"Skin Analysis",strengths:e?.i18n?.photoAnalysisStrengthsLabel??"Your strengths",focus:e?.i18n?.photoAnalysisFocusLabel??"Focus points",celebStyle:e?.i18n?.photoAnalysisCelebStyleLabel??"Celeb style match",seeMore:e?.i18n?.photoAnalysisSeeMoreLabel??"See detailed analysis"}}function Rs(e,t){const a=la(pn(e.props??{})??{summary:"",clues:[]});return da(Bs(t),a)}function Os(e,t,a,n){if(e.innerHTML="",n){e.appendChild(da(a,la(n)));return}const r=t.split(/(?<=[.!?])\s+/).map(l=>l.trim()).filter(Boolean),i=r[0]??t,o=r.slice(1).filter(l=>!l.includes("?")).slice(0,4),s=r.find(l=>l.includes("?")),c=la({summary:i,clues:o,details:o,...s?{nextQuestion:s}:{}});e.appendChild(da(a,c))}var Qm='<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>',un={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>'},Ds=ca,Fs=1400,$s=/data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;async function Us(e){for(const t of e)for(const a of t.types)if(a.startsWith("image/"))try{const n=await t.getType(a);if(!n||n.size===0)continue;const r=a||n.type||"image/png",i=r==="image/png"?"png":r==="image/webp"?"webp":"jpg",o=`paste-${Date.now()}.${i}`;return new File([n],o,{type:r})}catch{continue}for(const t of e)if(t.types.includes("text/html"))try{const a=(await(await t.getType("text/html")).text()).match($s)?.[0];if(!a||a.length>5e6)continue;const n=await(await fetch(a)).blob();if(!n||n.size===0)continue;const r=n.type||"image/png";if(!["image/jpeg","image/png","image/webp"].includes(r))continue;const i=r==="image/png"?"png":r==="image/webp"?"webp":"jpg";return new File([n],`paste-${Date.now()}.${i}`,{type:r})}catch{continue}return null}async function Hs(e){try{const t=e??(typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():null);return t?Us(await t):null}catch{}return null}var qs=class{_renderPhotoAnalysisCard(e,t,a){Os(e,t,{badge:this.i18n.photoAnalysisBadge,strengths:this.i18n.photoAnalysisStrengthsLabel,focus:this.i18n.photoAnalysisFocusLabel,celebStyle:this.i18n.photoAnalysisCelebStyleLabel,seeMore:this.i18n.photoAnalysisSeeMoreLabel},a)}constructor(e,t){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=t,this.i18n={...Ds,...t.i18n},this.onSend=t.onSend,t.onPanelToggle!==void 0&&(this._onPanelToggle=t.onPanelToggle),t.onHostShellSync!==void 0&&(this._onHostShellSync=t.onHostShellSync),t.onAttachment!==void 0&&(this._onAttachment=t.onAttachment),t.onRollback!==void 0&&(this._onRollback=t.onRollback),t.onLinkClick!==void 0&&(this._onLinkClick=t.onLinkClick),t.voiceEnabled&&(this._voiceEnabled=!0),t.voiceLang!==void 0&&(this._voiceLang=t.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 r=null;{const T=document.createElement("div");T.className="gengage-chat-drawer-handle",T.dataset.gengagePart="chat-drawer-handle",T.setAttribute("aria-hidden","true"),T.style.pointerEvents="none",r=T}const i=document.createElement("div");i.className="gengage-chat-header gds-shell-header",i.dataset.gengagePart="chat-header";const o=document.createElement("div");o.className="gengage-chat-header-left",o.dataset.gengagePart="chat-header-left";const s=t.headerAvatarUrl??t.launcherImageUrl,c=typeof t.headerAvatarUrl=="string"&&t.headerAvatarUrl.length>0&&t.headerAvatarUrl!==t.launcherImageUrl;if(s){const T=document.createElement("img");T.className="gengage-chat-header-avatar",c&&T.classList.add("gengage-chat-header-avatar--logo"),T.dataset.gengagePart="chat-header-avatar",T.src=s,T.alt=t.headerTitle??"Assistant",o.appendChild(T)}const l=document.createElement("div");l.className="gengage-chat-header-info",l.dataset.gengagePart="chat-header-info";const g=document.createElement("div");g.className="gengage-chat-header-title-row",g.dataset.gengagePart="chat-header-title-row";const d=document.createElement("span");if(d.className="gengage-chat-header-title",d.dataset.gengagePart="chat-header-title",d.textContent=t.headerTitle??this.i18n.headerTitle??"Product Expert",g.appendChild(d),t.headerBadge){const T=document.createElement("span");T.className="gengage-chat-header-badge gds-badge gds-badge-brand",T.dataset.gengagePart="chat-header-badge",T.textContent=t.headerBadge,g.appendChild(T)}l.appendChild(g);const h=document.createElement("a");h.className="gengage-chat-header-powered",h.dataset.gengagePart="chat-header-powered-by",h.href="https://gengage.ai/",h.target="_blank",h.rel="noopener noreferrer",h.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(h),o.appendChild(l),i.appendChild(o);const u=document.createElement("div");u.className="gengage-chat-header-right",u.dataset.gengagePart="chat-header-actions";{const T=document.createElement("button");T.type="button",T.className="gengage-chat-header-btn gengage-chat-header-btn--reopen-panel gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-reopen-panel",T.setAttribute("aria-label",this.i18n.showPanelAriaLabel),T.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>',T.addEventListener("click",()=>this._showMobilePanelFromBtn()),u.appendChild(T),this._reopenPanelBtn=T}{const T=document.createElement("button");T.type="button",T.className="gengage-chat-header-btn gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-cart",T.setAttribute("aria-label",this.i18n.cartAriaLabel),T.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>',T.addEventListener("click",()=>t.onCartClick?.()),u.appendChild(T),this._cartBtn=T}if(t.onNewChat){const T=document.createElement("button");T.className="gengage-chat-header-btn gengage-chat-new-chat gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-new-chat",T.type="button",T.setAttribute("aria-label",this.i18n.newChatButton),T.title=this.i18n.newChatButton,T.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>',T.addEventListener("click",()=>t.onNewChat?.()),u.appendChild(T)}const f=document.createElement("button");if(f.className="gengage-chat-close gds-btn gds-btn-ghost gds-icon-btn",f.dataset.gengagePart="chat-header-close",f.type="button",f.setAttribute("aria-label",this.i18n.closeButton),f.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>',f.addEventListener("click",t.onClose),t.showHeaderFavorites){const T=document.createElement("button");T.className="gengage-chat-header-btn gengage-chat-header-btn--fav gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-favorites",T.type="button",T.setAttribute("aria-label",this.i18n.favoritesAriaLabel),T.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 W=document.createElement("span");W.className="gengage-chat-header-fav-badge",W.dataset.gengagePart="chat-header-favorites-badge",W.setAttribute("aria-hidden","true"),W.style.display="none",T.appendChild(W),this._favBadgeEl=W,T.addEventListener("click",()=>{t.onFavoritesClick?.()}),u.appendChild(T)}u.appendChild(f),r&&i.insertBefore(r,i.firstChild),i.appendChild(u);{let W=0,ie=0,le=!1;const fe=ve=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||ve.target.closest('button, a, input, [role="button"]'))return;const Pe=ve.changedTouches?.[0];Pe&&(W=Pe.clientY,ie=0,le=!0,this.root.style.transition="none")},Oe=ve=>{if(!le)return;const Pe=ve.changedTouches?.[0];if(!Pe)return;ie=Pe.clientY-W;const Ym=(t.getMobileState?.()??"full")==="full"?Math.max(0,ie):ie;ve.preventDefault(),this.root.style.transform=`translateY(${Ym}px)`},Ke=()=>{if(!le)return;le=!1;const ve=t.getMobileState?.()??"full";let Pe;ie>72?Pe=ve==="full"?"half":"close":ie<-72&&ve==="half"?Pe="full":Pe=ve,this.root.style.transition="",Pe==="close"?(this.root.style.transform="translateY(100%)",setTimeout(()=>{this.root.style.transform="",t.onMobileSnap?.("close")},280)):(this.root.style.transform="",t.onMobileSnap?.(Pe)),ie=0},Kt=()=>{le&&(le=!1,ie=0,this.root.style.transition="",this.root.style.transform="")};i.addEventListener("touchstart",fe,{passive:!0}),i.addEventListener("touchmove",Oe,{passive:!1}),i.addEventListener("touchend",Ke,{passive:!0}),i.addEventListener("touchcancel",Kt,{passive:!0}),this._cleanups.push(()=>{i.removeEventListener("touchstart",fe),i.removeEventListener("touchmove",Oe),i.removeEventListener("touchend",Ke),i.removeEventListener("touchcancel",Kt)})}const p=document.createElement("div");p.className="gengage-chat-body",p.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 Ls({onBack:()=>t.onPanelBack?.(),onForward:()=>t.onPanelForward?.(),onClose:()=>{t.getMobileViewport?.()??!1?this.hideMobilePanel():this.clearPanel(),t.onPanelClose?.()},backAriaLabel:this.i18n.backAriaLabel,forwardAriaLabel:this.i18n.forwardAriaLabel,closePanelAriaLabel:this.i18n.closePanelAriaLabel}),this._panelEl.appendChild(this._panelTopBar.getElement());const m=()=>this._updateScrollAffordance();this._panelEl.addEventListener("scroll",m,{passive:!0}),this._cleanups.push(()=>this._panelEl.removeEventListener("scroll",m)),p.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 b=document.createElement("button");b.className="gengage-chat-panel-divider-toggle gds-btn gds-btn-ghost",b.dataset.gengagePart="chat-panel-divider-toggle",b.type="button",b.setAttribute("aria-label",this.i18n.togglePanelAriaLabel),b.setAttribute("title",this.i18n.togglePanelAriaLabel),b.textContent="»",b.addEventListener("click",()=>{if(this._ignoreNextDividerClick){this._ignoreNextDividerClick=!1;return}this.togglePanel(),this._onPanelToggle?.()});let C=null,v=null;const w=24,k=T=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const W=T.changedTouches?.[0];W&&(C=W.clientX,v=W.clientY)},A=T=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||C===null||v===null)return;const W=T.changedTouches?.[0];if(!W)return;const ie=W.clientX-C,le=W.clientY-v;if(C=null,v=null,Math.abs(le)<w||Math.abs(le)<Math.abs(ie))return;const fe=le<0;fe!==this._panelCollapsed&&(this._ignoreNextDividerClick=!0,this.setPanelCollapsed(fe),this._onPanelToggle?.())};this._dividerEl.addEventListener("touchstart",k,{passive:!0}),this._dividerEl.addEventListener("touchend",A,{passive:!0}),this._cleanups.push(()=>{this._dividerEl.removeEventListener("touchstart",k),this._dividerEl.removeEventListener("touchend",A)}),this._dividerEl.appendChild(b),p.appendChild(this._dividerEl);const B=document.createElement("div");B.className="gengage-chat-conversation",B.dataset.gengagePart="chat-conversation",this._conversationEl=B,B.appendChild(i);const I=document.createElement("div");I.className="gengage-chat-offline-bar gds-evidence-card gds-evidence-card-warning",I.dataset.gengagePart="chat-offline-bar",I.setAttribute("role","status"),I.setAttribute("aria-live","polite"),I.textContent=this.i18n.offlineMessage,typeof navigator<"u"&&!navigator.onLine&&I.classList.add("gengage-chat-offline-bar--visible"),B.appendChild(I);const H=()=>I.classList.add("gengage-chat-offline-bar--visible"),Q=()=>I.classList.remove("gengage-chat-offline-bar--visible");window.addEventListener("offline",H),window.addEventListener("online",Q),this._cleanups.push(()=>{window.removeEventListener("offline",H),window.removeEventListener("online",Q)}),this._kvkkSlot=document.createElement("div"),this._kvkkSlot.className="gengage-chat-kvkk-slot",this._kvkkSlot.dataset.gengagePart="chat-kvkk-slot",B.appendChild(this._kvkkSlot),this.messagesEl=document.createElement("div"),this.messagesEl.id=xs,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),ln(this.messagesEl);const K=document.createElement("button");K.type="button",K.className="gengage-chat-former-messages-btn gds-chip",K.dataset.gengagePart="chat-former-messages-button",K.textContent=this.i18n.showFormerMessagesButton,K.setAttribute("aria-label",this.i18n.showFormerMessagesButton),K.style.display="none",K.addEventListener("click",()=>{this._options.presentation?.onReleasePresentationFocus?.()}),this.messagesEl.appendChild(K),this._formerMessagesBtn=K;const N=()=>{this._userInteractionUntil=Date.now()+2e3};let _=!1;const y=()=>this._options.presentation,x=()=>{_||(_=!0,requestAnimationFrame(()=>{_=!1;const{scrollTop:T,scrollHeight:W,clientHeight:ie}=this.messagesEl,le=W-T-ie;this._userScrolledUp=le>10;const fe=this._presentationPinned?le<96:le<32,Oe=Date.now(),Ke=Oe<this._programmaticScrollUntil,Kt=!fe&&Oe<this._userInteractionUntil,ve=Ke?!1:Kt;fe!==this._presentationPinned&&(this._presentationPinned=fe,y()?.onPinnedToBottomChange?.(fe)),ve!==this._presentationUserInteracting&&(this._presentationUserInteracting=ve,y()?.onUserInteractingChange?.(ve))}))};this.messagesEl.addEventListener("scroll",x,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("scroll",x)});const E=T=>{N(),T.deltaY<-6&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("wheel",E,{passive:!0}),this._cleanups.push(()=>this.messagesEl.removeEventListener("wheel",E));const L=T=>{N(),this._touchStartY=T.touches[0]?.clientY??null},z=T=>{N();const W=T.touches[0]?.clientY,ie=this._touchStartY;typeof W=="number"&&typeof ie=="number"&&W-ie>10&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("touchstart",L,{passive:!0}),this.messagesEl.addEventListener("touchmove",z,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("touchstart",L),this.messagesEl.removeEventListener("touchmove",z)}),B.appendChild(this.messagesEl),this._thumbnailsColumn=new Is({onThumbnailClick:T=>t.onThumbnailClick?.(T)}),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 $=!1;const F=()=>{$||($=!0,requestAnimationFrame(()=>{$=!1;const T=R.scrollLeft+R.clientWidth>=R.scrollWidth-4;P.style.display=T?"none":""}))};R.addEventListener("scroll",F,{passive:!0}),this._cleanups.push(()=>{R.removeEventListener("scroll",F)}),B.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",B.appendChild(this._inputChipsEl);const V=document.createElement("div");V.className="gengage-chat-input-area",V.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",T=>{T.key==="Enter"&&!T.isComposing&&((this._options.getMobileViewport?.()??window.innerWidth<=768)||!T.shiftKey)&&(T.preventDefault(),this._submit())}),this.inputEl.addEventListener("paste",T=>{const W=T.clipboardData;if(!W)return;let ie=null;const le=W.files?.[0];if(le&&le.type.startsWith("image/"))ie=le;else if(W.items?.length)for(let fe=0;fe<W.items.length;fe++){const Oe=W.items[fe];if(Oe?.kind==="file"&&Oe.type.startsWith("image/")){const Ke=Oe.getAsFile();if(Ke){ie=Ke;break}}}ie&&(T.preventDefault(),this._routeAttachmentFile(ie))}),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 T=this._fileInput.files?.[0];T&&this._routeAttachmentFile(T),this._fileInput.value=""});const J=document.createElement("div");J.className="gengage-chat-attach-wrap",J.dataset.gengagePart="chat-attach-wrap",this._attachWrapEl=J;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",T=>{T.stopPropagation(),this._toggleAttachMenu()});const oe=document.createElement("div");this._attachMenuEl=oe,oe.className="gengage-chat-attach-menu gds-menu",oe.dataset.gengagePart="chat-attach-menu",oe.setAttribute("role","menu"),oe.setAttribute("hidden","");const j=document.createElement("button");j.type="button",j.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",j.dataset.gengagePart="chat-attach-menu-select-photo",j.setAttribute("role","menuitem"),j.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>`,j.addEventListener("click",T=>{T.stopPropagation(),this._closeAttachMenu(),this._fileInput.click()});const be=document.createElement("div");be.className="gengage-chat-attach-menu-sep",be.dataset.gengagePart="chat-attach-menu-separator",be.setAttribute("aria-hidden","true");const U=document.createElement("button");U.type="button",U.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",U.dataset.gengagePart="chat-attach-menu-paste",U.setAttribute("role","menuitem"),U.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>`,U.addEventListener("click",T=>{T.stopPropagation();const W=typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():void 0;this._pasteImageFromClipboardMenu(W)}),oe.appendChild(j),oe.appendChild(be),oe.appendChild(U),J.appendChild(X),J.appendChild(oe),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 M=document.createElement("img");M.className="gengage-chat-attachment-preview-thumb",M.dataset.gengagePart="chat-attachment-preview-thumb",M.alt="",this._previewName=document.createElement("span"),this._previewName.className="gengage-chat-attachment-name",this._previewName.dataset.gengagePart="chat-attachment-preview-name";const G=document.createElement("button");G.className="gengage-chat-attachment-remove gds-btn gds-btn-ghost",G.dataset.gengagePart="chat-attachment-preview-remove",G.type="button",G.setAttribute("aria-label",this.i18n.removeAttachmentButton),G.textContent="×",G.addEventListener("click",()=>this.clearAttachment()),this._previewStrip.appendChild(M),this._previewStrip.appendChild(this._previewName),this._previewStrip.appendChild(G),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 T=this._sendStopHandler;this.hideStopButton(),T();return}this._submit()}),V.addEventListener("dragover",T=>{T.preventDefault(),V.classList.add("gengage-chat-input-area--dragover")}),V.addEventListener("dragleave",()=>{V.classList.remove("gengage-chat-input-area--dragover")}),V.addEventListener("drop",T=>{T.preventDefault(),V.classList.remove("gengage-chat-input-area--dragover");const W=T.dataTransfer?.files[0];W&&this._routeAttachmentFile(W)});const O=document.createElement("div");O.className="gengage-chat-input-pill gds-input-shell",O.dataset.gengagePart="chat-input-shell",O.appendChild(J),O.appendChild(this.inputEl),this._voiceEnabled&&Es()&&(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()),O.appendChild(this._micBtn),this._voiceInput=new Ts({onInterim:T=>{this._resizeRafId!==null&&(cancelAnimationFrame(this._resizeRafId),this._resizeRafId=null),this.inputEl.value=T,this.inputEl.style.height="auto",this.inputEl.style.height=`${Math.min(this.inputEl.scrollHeight,120)}px`},onFinal:T=>{this.inputEl.value=T},onAutoSubmit:T=>{this.inputEl.value=T,this._micBtn?.classList.remove("gengage-chat-mic-btn--active"),this._submit()},onStateChange:T=>{T==="listening"?this._micBtn?.classList.add("gengage-chat-mic-btn--active"):this._micBtn?.classList.remove("gengage-chat-mic-btn--active")},onError:(T,W)=>{this._micBtn?.classList.remove("gengage-chat-mic-btn--active")}},{lang:this._voiceLang})),O.appendChild(this.sendBtn),V.appendChild(this._previewStrip),V.appendChild(this._fileInput),V.appendChild(O),B.appendChild(V),p.appendChild(B),this._comparisonDockSlotEl=document.createElement("div"),this._comparisonDockSlotEl.className="gengage-chat-comparison-dock-slot",this._comparisonDockSlotEl.dataset.gengagePart="comparison-dock-slot",p.appendChild(this._comparisonDockSlotEl),this.root.appendChild(p),this._setupHorizontalSwipe(B),this._setupHorizontalSwipe(this._panelEl);const re=document.createElement("div");re.className="gengage-chat-footer",re.dataset.gengagePart="chat-footer",re.textContent=this.i18n.poweredBy,this.root.appendChild(re);const Gt=T=>{T.key==="Escape"&&t.onClose()};this.root.addEventListener("keydown",Gt),this._cleanups.push(()=>this.root.removeEventListener("keydown",Gt)),e.appendChild(this.root)}addMessage(e){const t=document.createElement("div");if(t.className=`gengage-chat-bubble gds-message ${e.role==="assistant"?"gds-message-assistant":"gds-message-user"} gengage-chat-bubble--${e.role}`,t.dataset.gengagePart=e.role==="assistant"?"chat-message-assistant":"chat-message-user",t.setAttribute("role","listitem"),t.dataset.messageId=e.id,e.threadId&&(t.dataset.threadId=e.threadId),this._firstBotMessageIds.has(e.id)&&t.classList.add("gengage-chat-bubble--first"),e.attachment){const a=document.createElement("img");a.className="gengage-chat-attachment-thumb";const n=URL.createObjectURL(e.attachment);a.src=n,a.alt=e.attachment.name,a.addEventListener("load",()=>URL.revokeObjectURL(n),{once:!0}),a.addEventListener("error",()=>URL.revokeObjectURL(n),{once:!0}),t.insertBefore(a,t.firstChild)}if(e.content){const a=document.createElement("div");if(a.className="gengage-chat-bubble-text",a.dataset.gengagePart="chat-message-text",e.role==="assistant"){if(e.renderHint==="photo_analysis"?(t.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(a,e.content,e.photoAnalysis)):a.innerHTML=_e(e.content),this._onLinkClick){const n=a.querySelectorAll("a[href]");for(const r of n)r.addEventListener("click",i=>{i.preventDefault();const o=r.getAttribute("href");o&&this._onLinkClick?.(o)})}}else a.textContent=e.content;t.appendChild(a)}if(e.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?.(e.id)}),t.appendChild(a)}this.messagesEl.appendChild(t),this._presentationFocusThreadId&&this._applyPresentationCollapsed(),this._scrollToBottom(e.role==="user")}removeMessageBubble(e){this._firstBotMessageIds.delete(e),this.messagesEl.querySelector(`[data-message-id="${CSS.escape(e)}"]`)?.remove(),this._presentationFocusThreadId&&this._applyPresentationCollapsed()}showTypingIndicator(e){this.removeTypingIndicator();const t=this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):e?[e]:this.i18n.loadingSequenceGeneric,{root:a,binding:n}=this._createLoadingSequence("chat",t,"chat-typing-indicator","gengage-chat-typing");a.dataset.typing="true",this._typingLoadingBinding=n,this.messagesEl.appendChild(a),this._scrollToBottom(!0)}addThinkingStep(e){const t=e.trim();t&&this._thinkingSteps[this._thinkingSteps.length-1]!==t&&(this._thinkingSteps.push(t),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(e){const t=e.map(a=>a.trim()).filter(Boolean).slice(-3);t.length!==0&&(this._thinkingSteps=t,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(e){this._sendStopHandler=e,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(e,t){const a=document.createElement("div");a.className="gengage-chat-error",a.setAttribute("role","alert");const n=document.createElement("span");if(n.textContent=e??this.i18n.errorMessage,a.appendChild(n),t){const r=document.createElement("button");r.className="gengage-chat-error-retry",r.textContent=this.i18n.retryButton??"Retry",r.addEventListener("click",()=>{a.remove(),t()}),a.appendChild(r)}this.messagesEl.appendChild(a),this._scrollToBottom(!0)}showErrorWithRecovery(e,t){this.showError(e),this.setRecoveryPills(t)}showRecoveryPillsOnly(e){this.setRecoveryPills(e)}setRecoveryPills(e){this.setPills([{label:this.i18n.tryAgainButton,onAction:e.onRetry},{label:this.i18n.askSomethingElseButton,onAction:e.onNewQuestion}])}clearMessages(){const e=this._formerMessagesBtn;for(const t of[...this.messagesEl.children])t!==e&&t.remove()}setPills(e){const t=this._pillsEl.querySelector(".gengage-chat-pills-scroll");if(!t)return;for(;t.firstChild;)t.removeChild(t.firstChild);if(e.length===0){this._pillsEl.style.display="none";return}this._pillsEl.style.display="";for(const n of e){const r=document.createElement("button");if(r.className=n.image?"gengage-chat-pill gds-chip gds-chip-active gengage-chat-pill--rich":"gengage-chat-pill gds-chip gds-chip-active",r.type="button",n.icon){const o=un[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>',s=document.createElement("span");s.className="gengage-chat-pill-icon",s.innerHTML=o,r.appendChild(s)}if(n.image&&ye(n.image)){const o=document.createElement("img");o.className="gengage-chat-pill-img",o.src=n.image,o.alt="",r.appendChild(o)}const i=document.createElement("span");if(i.className="gengage-chat-pill-text",i.textContent=n.label,r.appendChild(i),n.description){const o=document.createElement("span");o.className="gengage-chat-pill-desc";const s=`pill-desc-${Math.random().toString(36).slice(2,9)}`;o.id=s,o.textContent=n.description,r.appendChild(o),r.setAttribute("aria-describedby",s)}r.addEventListener("click",()=>n.onAction()),t.appendChild(r)}const a=this._pillsEl.querySelector(".gengage-chat-pills-arrow");a&&requestAnimationFrame(()=>{a.style.display=t.scrollWidth>t.clientWidth?"":"none"})}focusInput(){this.inputEl.focus()}showKvkkBanner(e,t){this._kvkkSlot.innerHTML="";const a=As({htmlContent:e,onDismiss:t,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(e){this._attachWrapEl&&(this._attachWrapEl.style.display=e?"":"none",e||this._closeAttachMenu())}setBeautyPhotoStepCard(e){this._beautyPhotoStepEl=Ms(this._beautyPhotoStepEl,this._conversationEl??null,e,this.i18n,()=>this.openAttachmentPicker())}stageAttachment(e){this._pendingAttachment=e,this._previewName.textContent=e.name;const t=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");t&&(t.src&&t.src.startsWith("blob:")&&URL.revokeObjectURL(t.src),t.src=URL.createObjectURL(e)),this._previewStrip.classList.remove("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}clearAttachment(){const e=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");e?.src&&(URL.revokeObjectURL(e.src),e.src=""),this._pendingAttachment=null,this._previewStrip.classList.add("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}_routeAttachmentFile(e){if(this._onAttachment)try{this._onAttachment(e)}catch(t){console.error("[gengage:chat] Attachment callback error:",t)}else this.stageAttachment(e)}_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 e=a=>{this._attachWrapEl?.contains(a.target)||this._closeAttachMenu()},t=a=>{a.key==="Escape"&&(a.stopPropagation(),this._closeAttachMenu())};this._attachMenuClickTimerId=window.setTimeout(()=>{this._attachMenuClickTimerId=null,document.addEventListener("click",e,!0)},0),document.addEventListener("keydown",t,!0),this._attachMenuCleanup=()=>{document.removeEventListener("click",e,!0),document.removeEventListener("keydown",t,!0)}}_toggleAttachMenu(){this._attachMenuEl&&(this._attachMenuEl.hasAttribute("hidden")?this._openAttachMenu():this._closeAttachMenu())}async _pasteImageFromClipboardMenu(e){const t=await Hs(e);if(t){this._routeAttachmentFile(t),this._closeAttachMenu();return}ce("gengage:global:error",{message:this.i18n.clipboardNoImageMessage,source:"chat"}),this._closeAttachMenu()}getPendingAttachment(){return this._pendingAttachment}setPanelAiZoneState(e,t){if(this._panelAiZoneEl.isConnected){if(this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,e==="hidden"){this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.setAttribute("hidden","");return}if(this._panelAiZoneEl.removeAttribute("hidden"),e==="analyzing"){this._panelAiZoneEl.innerHTML="";const a=[t?.analyzingLabel??this.i18n.aiAnalysisAnalyzingLabel,...this.i18n.loadingSequencePanel],{root:n,binding:r}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-ai-zone-loading","gengage-chat-panel-ai-zone-inner");this._panelAiZoneLoadingBinding=r,this._panelAiZoneEl.appendChild(n)}else e==="results"&&t?.resultEl&&(this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.appendChild(t.resultEl))}}_resetPanelAiZoneElement(){this._panelAiZoneEl=document.createElement("div"),this._panelAiZoneEl.className="gengage-chat-panel-ai-zone",this._panelAiZoneEl.setAttribute("hidden","")}_emitHostShellSync(){this._onHostShellSync?.()}_syncPanelTopBarFromContent(e){const t=e.querySelector(".gengage-chat-product-grid-head");if(t){const a=t.querySelector(".gengage-chat-product-grid-head-title"),n=t.querySelector(".gengage-chat-product-grid-head-actions");if(a?.textContent?.trim()){const r=a.textContent.trim();e.dataset.gengagePanelDerivedTitle=r,this._panelTopBar.setTitle(r)}n?(n.classList.add("gengage-chat-panel-topbar-toolbar-host"),this._panelTopBar.setActions(n)):this._panelTopBar.setActions(null),t.remove();return}this._syncPanelTopBarTitleFromContent(e)}_syncPanelTopBarTitleFromContent(e){const t=e.dataset.gengagePanelDerivedTitle;if(t?.trim()){this._panelTopBar.setTitle(t.trim());return}const a=e.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(e){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(e),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._syncPanelTopBarFromContent(e),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(e){const t=this._thumbnailsColumn.getElement(),a=t.parentElement===this._panelEl?t:this._panelFloatingEl;this._panelEl.insertBefore(e,a),this._syncPanelTopBarFromContent(this.getPanelContentElement()??e),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 e=this._panelEl.children;for(let t=0;t<e.length;t++){const a=e[t];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(e){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 t=document.createElement("div");t.className="gengage-chat-panel-skeleton";const a=e==="comparisonTable"?this.i18n.loadingSequenceComparison:this.i18n.loadingSequencePanel,{root:n,binding:r}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-loading-status","gengage-chat-panel-loading-status");switch(this._panelLoadingBinding=r,e){case"productDetails":{t.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--image",t.appendChild(i);for(let o=0;o<3;o++){const s=document.createElement("div");s.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--text",t.appendChild(s)}break}case"productList":case"groupList":{t.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-panel-skeleton-grid";for(let o=0;o<6;o++){const s=document.createElement("div");s.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--card",i.appendChild(s)}t.appendChild(i);break}case"comparisonTable":{t.classList.add("gengage-chat-panel-skeleton--comparison"),t.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-comparison gengage-chat-comparison--skeleton",i.setAttribute("aria-busy","true");const o=document.createElement("div");o.className="gengage-chat-comparison-recommended";const s=document.createElement("div");s.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-label",o.appendChild(s);const c=document.createElement("div");c.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 g=document.createElement("div");g.className="gengage-chat-comparison-recommended-info";for(let B=0;B<2;B++){const I=document.createElement("div");I.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-title",B===1&&I.classList.add("gengage-chat-comparison-skeleton-rec-title--short"),g.appendChild(I)}const d=document.createElement("div");d.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-price",g.appendChild(d),c.appendChild(l),c.appendChild(g),o.appendChild(c);const h=document.createElement("div");h.className="gengage-chat-comparison-highlights";const u=document.createElement("div");u.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-label",h.appendChild(u);const f=document.createElement("ul");f.className="gengage-chat-comparison-skeleton-hl-list";for(let B=0;B<3;B++){const I=document.createElement("li"),H=document.createElement("div");H.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-line",B===1&&H.classList.add("gengage-chat-comparison-skeleton-hl-line--medium"),B===2&&H.classList.add("gengage-chat-comparison-skeleton-hl-line--short"),I.appendChild(H),f.appendChild(I)}h.appendChild(f),o.appendChild(h),i.appendChild(o);const p=document.createElement("div");p.className="gengage-chat-comparison-key-differences";const m=document.createElement("div");m.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-heading",p.appendChild(m);const b=document.createElement("div");b.className="gengage-chat-comparison-key-differences-content";for(let B=0;B<4;B++){const I=document.createElement("div");I.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-line",b.appendChild(I)}p.appendChild(b),i.appendChild(p);const C=document.createElement("div");C.className="gengage-chat-comparison-special gengage-chat-comparison-special--skeleton";const v=document.createElement("div");v.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-special-line",C.appendChild(v),i.appendChild(C);const w=document.createElement("div");w.className="gengage-chat-comparison-skeleton-table-wrap";const k=document.createElement("div");k.className="gengage-chat-comparison-skeleton-table-head";const A=document.createElement("div");A.className="gengage-chat-comparison-skeleton-table-corner",k.appendChild(A);for(let B=0;B<3;B++){const I=document.createElement("div");I.className="gengage-chat-comparison-skeleton-table-col";const H=document.createElement("div");H.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-img";const Q=document.createElement("div");Q.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";const K=document.createElement("div");K.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-price",I.appendChild(H),I.appendChild(Q),I.appendChild(K),k.appendChild(I)}w.appendChild(k);for(let B=0;B<3;B++){const I=document.createElement("div");I.className="gengage-chat-comparison-skeleton-table-row";const H=document.createElement("div");H.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-label",I.appendChild(H);for(let Q=0;Q<3;Q++){const K=document.createElement("div");K.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-cell",I.appendChild(K)}w.appendChild(I)}i.appendChild(w),t.appendChild(i);break}default:t.appendChild(n);for(let i=0;i<3;i++){const o=document.createElement("div");o.className="gengage-chat-panel-skeleton-block",t.appendChild(o)}break}this._panelEl.appendChild(t),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(e,t,a){const n=this._options.getMobileViewport?.()??!1;this._panelTopBar.update(n?!0:e,t,a);const r=this.getPanelContentElement();r&&this._syncPanelTopBarTitleFromContent(r)}getPanelTopBarTitle(){return this._panelTopBar.getTitle()}updateFavoritesBadge(e){this._favBadgeEl&&(e>0?(this._favBadgeEl.textContent=e>99?"99+":String(e),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(e){this._comparisonDockSlotEl.replaceChildren(),e&&this._comparisonDockSlotEl.appendChild(e)}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 e=this._panelEl;if(typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches??!1)){e.scrollTop=0;return}this._panelListScrollAnimToken+=1;const t=this._panelListScrollAnimToken;requestAnimationFrame(()=>{if(t!==this._panelListScrollAnimToken)return;const a=Math.max(0,e.scrollHeight-e.clientHeight);if(a<=0)return;const n=Math.min(160,Math.max(48,a*.28));e.scrollTop=n;const r=Math.min(720,Math.max(380,320+Math.sqrt(n)*28)),i=performance.now(),o=c=>1-(1-c)**5,s=c=>{if(t!==this._panelListScrollAnimToken)return;const l=c-i,g=Math.min(1,l/r);e.scrollTop=n*(1-o(g)),g<1?requestAnimationFrame(s):e.scrollTop=0};requestAnimationFrame(s)})}_updateScrollAffordance(){const e=this._panelEl,t=e.scrollTop+e.clientHeight>=e.scrollHeight-10;e.classList.toggle("gengage-chat-panel--has-scroll",!t&&e.scrollHeight>e.clientHeight),e.classList.toggle("gengage-chat-panel--scrolled",e.scrollTop>88)}_setupHorizontalSwipe(e){let t=0,a=0;const n=i=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=i.touches[0];o&&(t=o.clientX,a=o.clientY)},r=i=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=i.changedTouches[0];if(!o)return;const s=o.clientX-t,c=o.clientY-a;Math.abs(s)>50&&Math.abs(s)>Math.abs(c)*2&&(this.togglePanel(),this._onPanelToggle?.())};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",r,{passive:!0}),this._cleanups.push(()=>{e.removeEventListener("touchstart",n),e.removeEventListener("touchend",r)})}togglePanel(){this.setPanelCollapsed(!this._panelCollapsed)}isPanelCollapsed(){return this._panelCollapsed}setPanelCollapsed(e){this._panelCollapsed=e,e?this._panelEl.classList.add("gengage-chat-panel--collapsed"):this._panelEl.classList.remove("gengage-chat-panel--collapsed");const t=this._dividerEl.querySelector(".gengage-chat-panel-divider-toggle");t&&(t.textContent=e?"«":"»"),this._syncDividerPreview()}setDividerPreviewEnabled(e){this._dividerPreviewEnabled=e,this._syncDividerPreview()}persistPanelState(e){try{const t=`gengage:panel:${e}`;this._panelCollapsed?sessionStorage.setItem(t,"collapsed"):sessionStorage.removeItem(t)}catch{}}restorePanelState(e){try{const t=`gengage:panel:${e}`;if(sessionStorage.getItem(t)==="collapsed")return this._panelCollapsed=!0,!0}catch{}return!1}_createLoadingSequence(e,t,a,n){const r=document.createElement("div");r.className=`${n} gds-progress-loader ${e==="chat"?"gds-progress-loader-chat":"gds-progress-loader-panel"}`,r.dataset.gengagePart=a,r.setAttribute("role","status"),r.setAttribute("aria-live","polite");const i=document.createElement("span");i.className=e==="chat"?"gengage-chat-typing-text gds-progress-label":"gengage-chat-panel-loading-label gds-progress-label",r.appendChild(i);const o=document.createElement("span");o.className=e==="chat"?"gengage-chat-typing-dots gds-progress-dots":"gds-progress-dots",o.setAttribute("aria-hidden","true");for(let c=0;c<3;c++){const l=document.createElement("span");l.className="gds-progress-dot",o.appendChild(l)}r.appendChild(o);const s={labelEl:i,steps:[],index:0,intervalId:null};return this._applyLoadingSteps(s,t),{root:r,binding:s}}_applyLoadingSteps(e,t,a=!1){const n=t.map(i=>i.trim()).filter(Boolean).slice(-3),r=[this.i18n.loadingMessage];e.steps=n.length>0?n:r,this._clearLoadingBindingInterval(e),e.index=a?e.steps.length-1:0,e.labelEl.textContent=e.steps[e.index],!a&&e.steps.length>1&&(e.intervalId=setInterval(()=>{if(e.index>=e.steps.length-1){this._clearLoadingBindingInterval(e);return}e.index+=1,e.labelEl.textContent=e.steps[e.index],e.index>=e.steps.length-1&&this._clearLoadingBindingInterval(e)},Fs))}_clearLoadingBindingInterval(e){e?.intervalId&&(clearInterval(e.intervalId),e.intervalId=null)}_destroyLoadingBinding(e){this._clearLoadingBindingInterval(e)}_updateSendEnabled(){if(this._sendStopHandler){this.sendBtn.disabled=!1;return}const e=this.inputEl.value.trim().length>0||this._pendingAttachment!==null;this.sendBtn.disabled=!e}_renderSendButtonIcon(e){this.sendBtn.innerHTML=e==="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 e=this.inputEl.value.trim(),t=this._pendingAttachment;if(this._sendStopHandler){const a=this._sendStopHandler;if(this.hideStopButton(),a(),!e&&!t)return}else if(!e&&!t)return;this.onSend(e,t??void 0),this.inputEl.value="",this.inputEl.style.height="auto",this.clearAttachment(),this._updateSendEnabled()}_toggleVoice(){if(this._voiceInput)if(this._voiceInput.state==="listening"){const e=this._voiceInput.stop();e.trim()&&(this.inputEl.value=e,this._submit())}else this.inputEl.value="",this._voiceInput.start()}lockScrollForRestore(){this._scrollLockedUntil=Date.now()+500}_scrollToBottom(e=!1){!e&&this._userScrolledUp||!e&&this._options.presentation?.shouldBlockSoftAutoScroll?.()||!e&&Date.now()<this._scrollLockedUntil||requestAnimationFrame(()=>{this.messagesEl.scrollTop=this.messagesEl.scrollHeight,this._userScrolledUp=!1})}scrollToBottomIfNeeded(){this._scrollToBottom(!1)}updateBotMessage(e,t,a,n){const r=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(e)}"]`);if(!r)return;let i=r.querySelector(".gengage-chat-bubble-text");i||(i=document.createElement("div"),i.className="gengage-chat-bubble-text",r.appendChild(i)),a==="photo_analysis"?(r.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(i,t,n)):(r.classList.remove("gengage-chat-bubble--photo-analysis"),i.innerHTML=_e(t)),this._scrollToBottom(!1)}markFirstBotMessage(e){this._firstBotMessageIds.add(e);const t=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(e)}"]`);t&&t.classList.add("gengage-chat-bubble--first")}scrollToLastThread(){const e=this.messagesEl.querySelectorAll("[data-thread-id]");if(e.length===0){this._scrollToBottom(!0);return}const t=e[e.length-1].getAttribute("data-thread-id");if(!t){this._scrollToBottom(!0);return}this._programmaticScrollUntil=Date.now()+700;const a=this.messagesEl.querySelector(`[data-thread-id="${CSS.escape(t)}"]`);a?requestAnimationFrame(()=>{a.scrollIntoView({block:"start",behavior:"auto"}),this._userScrolledUp=!1}):this._scrollToBottom(!0)}scrollThreadIntoView(e,t="smooth"){const a=this.messagesEl.querySelectorAll(`[data-thread-id="${CSS.escape(e)}"]`);let n=null;for(let i=0;i<a.length;i++){const o=a[i];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 r=Math.max(n.offsetTop-20,0);return this._programmaticScrollUntil=Date.now()+700,this._scrollMessagesTo(r,t),!0}scrollToBottomPresentation(e="smooth"){this._programmaticScrollUntil=Date.now()+700,requestAnimationFrame(()=>{this._scrollMessagesTo(this.messagesEl.scrollHeight,e),this._userScrolledUp=!1})}_scrollMessagesTo(e,t){if(typeof this.messagesEl.scrollTo=="function"){this.messagesEl.scrollTo({top:e,behavior:t});return}this.messagesEl.scrollTop=e}setPresentationFocus(e){this._presentationFocusThreadId=e,this._applyPresentationCollapsed()}setFormerMessagesButtonVisible(e){this._formerMessagesBtn&&(this._formerMessagesBtn.style.display=e?"":"none")}setInputPlaceholder(e){this.inputEl.placeholder=e}_applyPresentationCollapsed(){const e=this._presentationFocusThreadId;this.messagesEl.querySelectorAll("[data-thread-id]").forEach(t=>{const a=t.dataset.threadId;a&&(e&&a!==e?t.classList.add("gengage-chat-bubble--presentation-collapsed"):t.classList.remove("gengage-chat-bubble--presentation-collapsed"))})}refreshPresentationCollapsed(){this._presentationFocusThreadId&&this._applyPresentationCollapsed()}setInputAreaChips(e){if(this._inputChipsEl.innerHTML="",e.length===0){this._inputChipsEl.style.display="none";return}this._inputChipsEl.style.display="";for(const t of e){const a=document.createElement("button");if(a.className="gengage-chat-input-chip gds-chip",a.type="button",t.icon){const r=un[t.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>',i=document.createElement("span");i.className="gengage-chat-input-chip-icon",i.innerHTML=r,a.appendChild(i)}const n=document.createElement("span");n.textContent=t.label,a.appendChild(n),a.addEventListener("click",()=>t.onAction()),this._inputChipsEl.appendChild(a)}}clearInputAreaChips(){this._inputChipsEl.innerHTML="",this._inputChipsEl.style.display="none"}setThumbnails(e){this._thumbnailsColumn.setEntries(e),e.length>0?this._thumbnailsColumn.show():this._thumbnailsColumn.hide(),this._renderDividerPreview(e),this._syncDividerPreview()}hideThumbnails(){this._thumbnailsColumn.hide(),this._renderDividerPreview([]),this._syncDividerPreview()}_renderDividerPreview(e){this._dividerPreviewEl.innerHTML="";const t=new Set,a=[];for(let n=e.length-1;n>=0;n--){const r=e[n];if(!(!r||t.has(r.sku)||!ye(r.imageUrl))&&(t.add(r.sku),a.push(r),a.length>=3))break}a.reverse();for(const n of a){const r=document.createElement("span");r.className="gengage-chat-panel-divider-preview-thumb";const i=document.createElement("img");i.className="gengage-chat-panel-divider-preview-img",i.src=n.imageUrl,i.alt="",i.width=48,i.height=48,r.appendChild(i),this._dividerPreviewEl.appendChild(r)}}_syncDividerPreview(){const e=this._dividerPreviewEl.childElementCount>0,t=this._dividerPreviewEnabled&&e&&this._panelCollapsed&&!this._dividerEl.classList.contains("gengage-chat-panel-divider--hidden");this._dividerEl.classList.toggle("gengage-chat-panel-divider--preview-active",t)}trapFocus(){this._previouslyFocusedElement=document.activeElement,this.releaseFocus();const e=t=>{if(t.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 g=getComputedStyle(l);return l.hidden||l.getAttribute("aria-hidden")==="true"||g.display==="none"||g.visibility==="hidden"?!1:l.getClientRects().length>0});if(a.length===0)return;const n=a[0],r=a[a.length-1],i=t.composedPath().find(l=>l instanceof HTMLElement&&this.root.contains(l))??null,o=this.root.getRootNode(),s=i??(o instanceof ShadowRoot&&o.activeElement instanceof HTMLElement?o.activeElement:document.activeElement instanceof HTMLElement?document.activeElement:null),c=s&&this.root.contains(s)?s:null;t.shiftKey?(c===n||!this.root.contains(c))&&(t.preventDefault(),r.focus()):(c===r||!this.root.contains(c))&&(t.preventDefault(),n.focus())};this._focusTrapHandler=e,this.root.addEventListener("keydown",e)}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(e){this.root.querySelector(".gengage-chat-cart-toast")?.remove();const t=document.createElement("div");t.className="gengage-chat-cart-toast",t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.textContent=e,this.root.appendChild(t),t.offsetWidth,t.classList.add("gengage-chat-cart-toast--visible"),setTimeout(()=>{t.classList.remove("gengage-chat-cart-toast--visible"),setTimeout(()=>t.remove(),300)},2500)}destroy(){ln(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 e of this._cleanups)e();this._cleanups.length=0,this._voiceInput?.destroy(),this._voiceInput=null}},mn=["beauty_consulting","watch_expert","booking"],js=["shopping",...mn];function Zs(e){return typeof e=="string"&&js.includes(e)?e:null}function ga(e){return e==null||typeof e!="object"||Array.isArray(e)?null:e}function Vs(...e){for(const t of e)if(typeof t=="string"){const a=t.trim();if(a.length>0)return a}}function Ws(e){const t=ga(e);if(!t)return null;const a=Vs(t.assistant_mode,t.assistantMode);return!a||!mn.includes(a)?null:a}var Gs=class{constructor(){this._mode="shopping",this._uiHints=null}get mode(){return this._mode}set mode(e){this._mode=e}get uiHints(){return this._uiHints}set uiHints(e){this._uiHints=e}get isShopping(){return this._mode==="shopping"}get isBeautyConsulting(){return this._mode==="beauty_consulting"}get isChoicePrompterHidden(){return this._uiHints?.hide_choice_prompter===!0}applyUiHints(e,t,a){const n=i=>this._uiHints?.[i]===!0;e?.setAttachmentControlsVisible(!n("hide_attachment_controls")),n("hide_choice_prompter")&&a?.();const r=typeof this._uiHints?.input_placeholder=="string"?this._uiHints.input_placeholder:void 0;r?e?.setInputPlaceholder(r):e?.setInputPlaceholder(t)}handleRedirect(e){Le("mode","redirect metadata received",e);const t=Ws(e);return t?(this.switchMode(t),!0):!1}switchMode(e){const t=this._mode;this._mode=e,Le("mode","assistant mode switched",{from:t,to:e})}updateFromContext(e){const t=e.assistant_mode;if(typeof t=="string"&&t){const a=Zs(t);a?this._mode=a:Le("mode","ignoring unrecognised assistant_mode from context",t)}else t===null&&(this._mode="shopping");this._uiHints=ga(e.ui_hints)??null}reset(){const e=this._mode!=="shopping";return this._mode="shopping",this._uiHints=null,e}resolveAttachmentActionType(){return this._mode==="beauty_consulting"?"user_message":"findSimilar"}shouldCondenseThinking(){return this._mode!=="shopping"}};function Ks(){return{streamIncludedBeautyPhotoStep:!1,pendingPhotoStepSkip:!1}}function Ys(e,t,a,n,r){if(e==="PhotoAnalysisCard"){const i=pn(t);return i?(r.photoAnalysis=i,r.renderHint="photo_analysis",n.ensureRendered(),n.cancelTypewriter(),n.drawer?.updateBotMessage(r.id,r.content??"","photo_analysis",r.photoAnalysis),!0):(Le("beauty","PhotoAnalysisCard parse failed, falling through to generic renderer",t),!1)}if(e==="BeautyPhotoStep"){a.streamIncludedBeautyPhotoStep=!0;const i=Ns(t);return n.drawer?.setBeautyPhotoStepCard({visible:!0,...i,onSkip:()=>{n.drawer?.setBeautyPhotoStepCard({visible:!1}),n.streamDone?n.sendSkipMessage():a.pendingPhotoStepSkip=!0}}),!0}return!1}function Js(e){return e.renderHint==="photo_analysis"}function Qs(e,t){e.streamIncludedBeautyPhotoStep||t.drawer?.setBeautyPhotoStepCard({visible:!1}),e.pendingPhotoStepSkip&&(e.pendingPhotoStepSkip=!1,t.sendSkipMessage())}function Xs(e,t){e.pendingPhotoStepSkip&&(e.pendingPhotoStepSkip=!1,t.sendSkipMessage())}var ec=`<svg width="28" height="28" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
47
|
+
`,document.head.appendChild(e)}var ot=null;function lo(){if(ot!==null)return ot;try{ot=localStorage.getItem("gengage:debug")==="1"}catch{ot=!1}return ot}function Le(e,t,a){if(!lo())return;const n=[`[gengage:${e}]`,t];a!==void 0&&n.push(a),console.debug(...n)}var ft=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=Ji(e.theme);this.config={...e,theme:t,session:ja(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),no();const a=mt("gengage:context:update",n=>this.update(n));this._cleanups.push(a),Le("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,Le("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this.config.analyticsClient?.destroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}trackCheckout(e,t){const a=e==="start"?Fi:$i;this.track(a(this.analyticsContext(),t))}flushMeteringSummary(e){this.track(Oi(this.analyticsContext(),e))}emit(e,...t){this._handlers.get(e)?.forEach(a=>a(...t))}addCleanup(e){this._cleanups.push(e)}track(e){this.config.analyticsClient?.track(e)}analyticsContext(){const e={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??""};return this.config.session?.viewId!==void 0&&(e.view_id=this.config.session.viewId),this.config.session?.userId!==void 0&&(e.user_id=this.config.session.userId),this.config.pageContext?.pageType!==void 0&&(e.page_type=this.config.pageContext.pageType),this.config.pageContext?.sku!==void 0&&(e.sku=this.config.pageContext.sku),this.config.session?.abTestVariant!==void 0&&(e.ab_test_variant=this.config.session.abTestVariant),this.config.session?.abTestExperimentId!==void 0&&(e.ab_test_experiment_id=this.config.session.abTestExperimentId),e}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const a=document.querySelector(e);if(!a)throw new Error(`[gengage] Mount target not found: "${e}"`);return a}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,a]of Object.entries(e))if(a!==void 0){const n=t.startsWith("--")?t:`--gengage-${go(t)}`;this.root.style.setProperty(n,a)}}}};function go(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Ja(){const e=Date.now(),t=new Uint8Array(16);crypto.getRandomValues(t),t[0]=e/2**40&255,t[1]=e/2**32&255,t[2]=e/2**24&255,t[3]=e/2**16&255,t[4]=e/2**8&255,t[5]=e&255,t[6]=t[6]&15|112,t[8]=t[8]&63|128;const a=Array.from(t,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 po=class{constructor(e){this._handlers=new Map,this._destroyed=!1,this._namespace=e.namespace,this._allowedOrigins=e.allowedOrigins??[location.origin],this._onMessage=e.onMessage,this._allowedOrigins.includes("*")&&uo()&&console.warn("[gengage] postMessage bridge using wildcard origin. Set allowedOrigins for production security."),this._messageListener=t=>this._handlePostMessage(t),window.addEventListener("message",this._messageListener)}send(e,t){if(this._destroyed)return;const a={namespace:this._namespace,type:e};t!==void 0&&(a.payload=t),window.dispatchEvent(new CustomEvent("gengage:bridge:message",{detail:a,bubbles:!1}))}on(e,t){this._handlers.has(e)||this._handlers.set(e,new Set);const a=this._handlers.get(e);return a.add(t),()=>{a.delete(t),a.size===0&&this._handlers.delete(e)}}destroy(){this._destroyed||(this._destroyed=!0,window.removeEventListener("message",this._messageListener),this._handlers.clear())}_handlePostMessage(e){if(this._destroyed||!this._isOriginAllowed(e.origin))return;const t=e.data;if(!ho(t)||t.gengage!==this._namespace)return;const a={type:t.type};t.payload!==void 0&&(a.payload=t.payload),this._onMessage?.(a);const n=this._handlers.get(a.type);if(n)for(const r of n)r(a.payload)}_isOriginAllowed(e){return this._allowedOrigins.includes("*")?!0:this._allowedOrigins.includes(e)}};function ho(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.gengage=="string"&&typeof t.type=="string"}function uo(){try{return typeof process<"u"&&process.env.NODE_ENV!=="production"}catch{return!1}}var mo=console;function fo(e,t,a={}){const n=e.action,r=a.logger??mo;switch(Le("action",`routing action: ${n.kind}`,n),n.kind){case"open_chat":t.openChat?.(n.payload);return;case"navigate":{if(typeof n.url!="string"){Je(n,t,a,r);return}if(!pe(n.url)){r.warn("[gengage] Blocked navigation to unsafe URL:",n.url);return}const i=typeof n.newTab=="boolean"?n.newTab:void 0;if(t.navigate){t.navigate({url:n.url,...i!==void 0&&{newTab:i}});return}bo(n.url,i);return}case"save_session":if(typeof n.sessionId!="string"||typeof n.sku!="string"){Je(n,t,a,r);return}t.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"){Je(n,t,a,r);return}t.addToCart?.({sku:n.sku,quantity:n.quantity,cartCode:n.cartCode});return;case"script_call":{if(a.allowScriptCall===!1){Je(n,t,a,r);return}if(typeof n.name!="string"){Je(n,t,a,r);return}const i=vo(n.payload)?n.payload:void 0;t.scriptCall?.({name:n.name,...i!==void 0&&{payload:i}});return}default:Je(n,t,a,r)}}function Je(e,t,a,n){const r=a.unknownActionPolicy??"log-and-ignore";if(r==="delegate"){t.unknown?.(e),t.unknown||n.warn("[gengage] Unknown action received without delegate handler",e);return}if(r==="throw")throw new Error(`[gengage] Unknown action kind: ${e.kind}`);n.warn("[gengage] Unknown action ignored",e)}function bo(e,t){if(!(typeof window>"u")){if(!pe(e)){console.warn("[gengage] Blocked navigation to unsafe URL:",e);return}if(t){window.open(e,"_blank","noopener,noreferrer");return}window.location.href=e}}function vo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var yo=["image/jpeg","image/png","image/webp"],Jm=5*1024*1024;function _o(e){return yo.includes(e.type)?e.size>5242880?{ok:!1,reason:"too_large"}:{ok:!0}:{ok:!1,reason:"invalid_type"}}function Qa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function xo(e){const t=[];let a=0,n=!1,r=!1,i=0;for(let o=0;o<e.length;o++){const s=e[o];if(r){r=!1;continue}if(s==="\\"&&n){r=!0;continue}if(s==='"'){n=!n;continue}n||(s==="{"&&a++,s==="}"&&(a--,a===0&&(t.push(e.slice(i,o+1)),i=o+1)))}return t.length>0?t:[e]}function Xa(e,t){const a=e.trim();if(!a||a.startsWith(":"))return!1;const n=a.startsWith("data: ")?a.slice(6):a;if(n==="[DONE]")return t.onDone?.(),!0;try{const r=JSON.parse(n);return Qa(r)?(Le("stream",`event: ${r.type}`,r),t.onEvent(r),r.type==="done"?(t.onDone?.(),!0):!1):!1}catch{const r=xo(n);if(r.length>1){for(const i of r)try{const o=JSON.parse(i);if(!Qa(o))continue;if(t.onEvent(o),o.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function bt(e,t){if(!e.ok){t.onError?.(new Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(new Error("Response body is null — streaming not supported"));return}const a=e.body.getReader(),n=new TextDecoder("utf-8");let r="";const i=t.idleTimeoutMs??6e4,o=Symbol("idle-timeout");let s=!1;try{for(;;){const c=a.read();let l;const g=await(i>0?Promise.race([c.then(m=>(clearTimeout(l),m)),new Promise(m=>{l=setTimeout(()=>m(o),i)})]):c);if(g===o){s=!0,await a.cancel();break}const{done:d,value:h}=g;if(d)break;r+=n.decode(h,{stream:!0});const u=r.split(`
|
|
48
|
+
`);r=u.pop()??"";for(const m of u)if(Xa(m,t))return}if(r.trim()&&Xa(r,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{s||a.releaseLock()}t.onDone?.()}var en=3,wo=(e,t)=>{const a=e.replace(/\s+/g," ").trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,"");if(!a)return"";const n=t?.stripLeadingStopWords?a.replace(/^(?:daha|için)\s+/i,"").trim():a;return n?n.split(/\s+/).slice(0,3).join(" ").trim():""},ra=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(a=>wo(a,t)).filter(Boolean):[];function ko(e){const t=(e.display_keywords??[]).flatMap(r=>ra(r,{stripLeadingStopWords:!0})),a=t.filter((r,i)=>t.indexOf(r)===i);if(a.length>0)return a.slice(0,en);const n=[...ra(e.chosen_attribute,{stripLeadingStopWords:!0}),...ra(e.short_name)];return n.filter((r,i)=>n.indexOf(r)===i).slice(0,en)}function Co(e){return ko(e).join(" • ")}var So=["beauty_consulting","watch_expert"];function tn(e){return typeof e=="string"&&So.includes(e)}function vt(e){if(typeof e.type!="string")return null;if(Eo(e))return e;const t=e;switch(t.type){case"outputText":return To(t);case"suggestedActions":return Po(t);case"productList":return Ao(t);case"productDetails":return Lo(t);case"productDetailsSimilars":return Io(t);case"comparisonTable":return No(t);case"context":return Ro(t);case"chatStreamEnd":return Oo();case"loading":return Do(t);case"panelLoading":return Fo(t);case"similarLoading":return $o(t);case"redirect":return Uo(t);case"error":return Ho(t);case"dummy":return qo(t);case"launcherAction":return jo(t);case"text":return ia(t);case"productItem":return Zo(t);case"text_image":return an(t);case"quick_qna":return nn(t);case"reviewHighlights":return Vo(t);case"aiProductSuggestions":return Ko(t);case"aiProductGroupings":return Yo(t);case"aiSuggestedSearches":return Jo(t);case"prosAndCons":return Wo(t);case"getGroundingReview":return Qo(t);case"voice":return es(t);case"visitorDataResponse":return Go(t);case"productListPreview":return Xo();case"groupList":return ts(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return as(t);case"launcherContent":return rs(t);case"handoff":return ns(t);case"uiSpec":return us(t);default:return null}}function Eo(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const a=e.widget;if(a!=="chat"&&a!=="qna"&&a!=="simrel")return!1;const n=xe(e.spec);return n?typeof n.root=="string"&&xe(n.elements)!==null:!1}case"action":{const a=xe(e.action);return a!==null&&typeof a.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function To(e){const t=V(e.payload.text,e.payload.plain_text)??"",a=V(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:a||"Backend returned an error"};const n={type:"text_chunk",content:t,final:!0},r=e.payload.product_mentions;Array.isArray(r)&&r.length>0&&(n.productMentions=r.filter(c=>typeof c=="object"&&c!==null&&typeof c.sku=="string"&&typeof c.short_name=="string"));const i=e.payload.sku_to_product_item;i&&typeof i=="object"&&!Array.isArray(i)&&(n.skuToProductItem=i);const o=e.payload.conversation_mode;typeof o=="string"&&o&&(n.conversationMode=o);const s=e.payload.render_hint;return typeof s=="string"&&s&&(n.renderHint=s),e.payload.kvkk===!0&&(n.kvkk=!0),n}function Po(e){return rn((e.payload.actions??[]).map(t=>{const a=V(t.title)??"",n=Ie(t.requestDetails,a),r=n?{label:a,action:n}:null;return r?(typeof t.icon=="string"&&(r.icon=t.icon),typeof t.image=="string"&&(r.image=t.image),r):null}).filter(oa),"chat")}function Ao(e){const t=(Array.isArray(e.payload.style_variations)?e.payload.style_variations:[]).map(o=>{const s=V(o.style_label),c=V(o.style_mood),l=V(o.image_url??void 0),g=(Array.isArray(o.product_list)?o.product_list:[]).map(h=>{const u=xe(h);return u?sn(xe(u.product_detail)??xe(u.product)??u):null}).filter(oa),d=Array.isArray(o.recommendation_groups)?o.recommendation_groups.map(h=>({label:V(h.label)??"",reason:V(h.reason)??"",skus:Array.isArray(h.skus)?h.skus.filter(u=>typeof u=="string"&&u.trim().length>0):[]})):[];return{style_label:s??"",style_mood:c??"",...l?{image_url:l}:{},product_list:g,recommendation_groups:d}}).filter(o=>o.product_list.length>0),a=e.payload.product_list??[],n=tn(e.payload.source)&&t.length>0?t[0].product_list:null,r=n?is(n,"chat"):on(a,"chat");r.panelHint="panel";const i=r.spec.elements[r.spec.root];if(i){const o={};typeof e.payload.offset=="number"&&(o.offset=e.payload.offset),typeof e.payload.end_of_list=="boolean"&&(o.endOfList=e.payload.end_of_list),typeof e.payload.title=="string"&&(o.panelTitle=e.payload.title),typeof e.payload.source=="string"&&(o.source=e.payload.source),t.length>0&&(o.styleVariations=t),Object.keys(o).length>0&&(i.props={...i.props,...o})}return r}function Lo(e){const t=e.payload.productDetails;if(!t)return ss("chat");const a=Fe(t);return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:{...t,...a}}}}},panelHint:"panel"}}function Io(e){const t=on(e.payload.similarProducts??[],"chat"),a=t.spec.elements[t.spec.root];return a&&(a.props={...a.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function No(e){const t=e.payload.multiple_product_details??[],a=e.payload,n={key_differences:a.key_differences,recommended_choice:a.recommended_choice,recommended_choice_sku:a.recommended_choice_sku,special_considerations:a.special_considerations,criteria_view:a.criteria_view,criteria_view_short:a.criteria_view_short,compared_field_names:a.compared_field_names,winner_product:a.winner_product,winner_hits:a.winner_hits,...e.payload.product_comparison_framework??{}},r=e.payload.table,i=e.payload.features_list,o=[];for(const f of t){const b=Fe(f);o.push(b)}const s=zo(r,o,n,i);let c;n?.recommended_choice_sku?c=n.recommended_choice_sku:n?.winner_product&&n.winner_product.length>0&&(c=n.winner_product[0]?.product_detail?.sku??n.winner_product[0]?.sku);const l=c?o.find(f=>f.sku===c)??o[0]:o[0],g=[];if(Array.isArray(n?.key_differences))for(const f of n.key_differences)typeof f=="string"&&g.push(f);const d=ds(n?.special_considerations),h=n?.recommended_choice,u=n?.winner_hits,m={};for(const f of o){const b=f.sku;b&&(m[b]={title:f.name??b,type:"launchSingleProduct",payload:{sku:b}})}const p={products:o,attributes:s,highlights:g,productActions:m};return l&&(p.recommended=l),d.length>0&&(p.specialCases=d),h&&(p.recommendedText=h),u&&(p.winnerHits=u),typeof n?.key_differences=="string"&&(p.keyDifferencesHtml=n.key_differences),n?.special_considerations&&(p.specialConsiderations=n.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function zo(e,t,a,n){if(!e)return[];const r=Object.entries(e);if(r.length===0)return[];const i=r[0]?.[1];if(Array.isArray(i)){const d=a.criteria_view??a.criteria_view_short??{},h=a.compared_field_names??Object.keys(e),u=[];for(const m of h){const p=e[m];if(!p||!Array.isArray(p))continue;const f=d[m]??m;u.push({label:f,values:p.map(b=>typeof b=="string"?b:String(b??""))})}return u}const o=e,s=t.map(d=>String(d.sku??"")).filter(d=>d.length>0),c=a.criteria_view??a.criteria_view_short??{},l=(n&&n.length>0?n:a.compared_field_names&&a.compared_field_names.length>0?a.compared_field_names:Mo(o)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),g=[];for(const d of l){const h=s.map(m=>{const p=o[m];if(!p||typeof p!="object")return"";const f=p[`${d}_short`],b=p[d];return Bo(f??b)});if(h.every(m=>m.length===0))continue;const u=c[d]??d;g.push({label:u,values:h})}return g}function Mo(e){const t=[],a=new Set;for(const n of Object.values(e))if(!(!n||typeof n!="object"))for(const r of Object.keys(n))a.has(r)||(a.add(r),t.push(r));return t}function Bo(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Ro(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function Oo(){return{type:"done"}}function Do(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function Fo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function $o(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Uo(e){const t=V(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:V(e.payload.to)}}}function Ho(e){return{type:"error",code:"BACKEND_ERROR",message:V(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function qo(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function jo(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const r={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,o=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(r.type=i),o!==void 0&&(r.theme=o),nn({type:"quick_qna",payload:r})}const a=xe(t.action);if(a){const r={action:a},i=typeof t.text=="string"?t.text:void 0,o=typeof t.image_url=="string"?t.image_url:void 0,s=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(r.text=i),o!==void 0&&(r.image_url=o),s!==void 0&&(r.theme=s),an({type:"text_image",payload:r})}const n=typeof t.text=="string"?t.text:"";if(n){const r={text:n},i=typeof t.type=="string"?t.type:void 0,o=typeof t.theme=="string"?t.theme:void 0,s=xe(t.payload)??void 0;return i!==void 0&&(r.type=i),s!==void 0&&(r.payload=s),o!==void 0&&(r.theme=o),ia({type:"text",payload:r})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function ia(e){const t={text:V(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function Zo(e){return os(e.payload,"qna")}function an(e){const t=V(e.payload.text)??"",a=Ie(e.payload.action,t);if(a){const r={label:t||a.title,action:a};return typeof e.payload.image_url=="string"&&(r.image=e.payload.image_url),typeof e.payload.theme=="string"&&(r.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:r}}}}}const n={text:t};return typeof e.payload.theme=="string"&&(n.theme=e.payload.theme),ia({type:"text",payload:n})}function nn(e){return rn((e.payload.action_list??[]).map(t=>{const a=V(t.title)??"",n=Ie(t.requestDetails,a),r=n?{label:a,action:n}:null;return r?(typeof t.icon=="string"&&(r.icon=t.icon),typeof t.image=="string"&&(r.image=t.image),r):null}).filter(oa),"qna")}function Vo(e){const t={reviews:(e.payload.reviews??[]).map(a=>{const n={};return typeof a.review_class=="string"&&(n.review_class=a.review_class),typeof a.review_text=="string"&&(n.review_text=a.review_text),(typeof a.review_rating=="string"||typeof a.review_rating=="number")&&(n.review_rating=a.review_rating),typeof a.review_tag=="string"&&(n.review_tag=a.review_tag),n})};return typeof e.payload.sku=="string"&&(t.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:t}}}}}function Wo(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function Go(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function Ko(e){const t=e.payload.product_suggestions??[],a=[];for(let n=0;n<t.length;n++){const r=t[n];if(!r)continue;const i=cs(r);if(!i)continue;const o={product:i},s=Ie(r.requestDetails,i.name);s&&(o.action=s),typeof r.role=="string"&&(o.role=r.role),typeof r.reason=="string"&&(o.reason=r.reason),typeof r.review_highlight=="string"&&(o.reviewHighlight=r.review_highlight),Array.isArray(r.labels)&&(o.labels=r.labels),typeof r.expert_quality_score=="number"&&(o.expertQualityScore=r.expert_quality_score),a.push(o)}return a.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:a}}}}}}function Yo(e){const t=e.payload.product_groupings??[],a=[];for(let n=0;n<t.length;n++){const r=t[n];if(!r)continue;const i=V(r.name)??"",o=r.sku&&r.sku.length>0?{type:"findSimilar",payload:{sku:r.sku}}:void 0,s=Ie(r.requestDetails??o,i);if(!s)continue;const c={name:i,action:s};if(Array.isArray(r.labels)){const l=r.labels.filter(g=>typeof g=="string");l.length>0&&(c.labels=l)}typeof r.image=="string"&&(c.image=r.image),a.push(c)}return a.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:a}}}}}}function Jo(e){const t=e.payload.suggested_searches??[],a=[];for(let n=0;n<t.length;n++){const r=t[n];if(!r)continue;const i=V(r.short_name,r.chosen_attribute,r.detailed_user_message)??`Search ${n+1}`,o={},s=V(r.detailed_user_message);s&&(o.text=s);const c=xe(xe(r.requestDetails)?.payload),l=c?.group_skus;r.group_skus&&Array.isArray(r.group_skus)?o.group_skus=r.group_skus:Array.isArray(l)&&(o.group_skus=l.filter(b=>typeof b=="string"));const g=V(r.sku,r.representative_product_sku,c?.sku);g&&(o.sku=g),o.is_suggested_text=1;const d={type:"inputText",payload:o},h=Ie(r.requestDetails,i),u=h?.type==="findSimilar"&&typeof o.text=="string"?Ie(d,i):h??Ie(d,i);if(!u)continue;const m={shortName:i,action:u},p=V(r.detailed_user_message);p&&p!==i&&(m.detailedMessage=p);const f=Co(r);f&&f!==i&&f!==(p??"")&&(m.whyDifferent=f),typeof r.image=="string"&&(m.image=r.image),a.push(m)}return a.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:a}}}}}}function Qo(e){const t=e.payload,a=Ie(t.requestDetails??t.request_details,V(t.review_count,t.reviewCount,t.text,t.title)??"Show product reviews");if(!a)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:t}};const n={action:a};return t.title&&(n.title=t.title),t.text&&(n.text=t.text),t.review_count?n.reviewCount=t.review_count:typeof t.reviewCount=="string"&&t.reviewCount.trim()&&(n.reviewCount=t.reviewCount),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function Xo(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function es(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function ts(e){const t=e.payload.group_list??[],a=[];for(const r of t){const i=r.group_name??"",o=(r.product_list??[]).map(Fe);a.push({groupName:i,products:o})}const n=[];for(const r of e.payload.filter_tags??[]){const i=r.title??"";if(!i)continue;const o=Ie(r.requestDetails,i),s={title:i};o&&(s.action=o),n.push(s)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:a,filterTags:n}}}},panelHint:"panel"}}function as(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function ns(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function rs(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function rn(e,t){const a={},n=[];for(let r=0;r<e.length;r++){const i=e[r];if(!i)continue;const o=`action-${r}`;n.push(o);const s={label:i.label,action:i.action};i.icon!==void 0&&(s.icon=i.icon),i.image!==void 0&&(s.image=i.image),i.description!==void 0&&(s.description=i.description),a[o]={type:"ActionButton",props:s}}return a.root={type:"ActionButtons",props:{buttons:e.map(r=>{const i={label:r.label,action:r.action};return r.image!==void 0&&(i.image=r.image),r.description!==void 0&&(i.description=r.description),r.icon!==void 0&&(i.icon=r.icon),i})},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:a}}}function on(e,t){const a={},n=[];for(let r=0;r<e.length;r++){const i=e[r];if(!i)continue;const o=Fe(i),s=`product-${r}`;n.push(s);const c={product:o,index:r};o.sku&&(c.action={title:o.name,type:"launchSingleProduct",payload:{sku:o.sku}}),a[s]={type:"ProductCard",props:c}}return a.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:a}}}function is(e,t){const a={},n=[];for(let r=0;r<e.length;r++){const i=e[r];if(!i)continue;const o=`product-${r}`;n.push(o);const s={product:i,index:r},c=i.sku;c&&(s.action={title:i.name??"",type:"launchSingleProduct",payload:{sku:c}}),a[o]={type:"ProductCard",props:s}}return a.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:a}}}function os(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:Fe(e),index:0}}}}}}function ss(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function cs(e){const t=V(e.sku),a=V(e.short_name),n={...xe(e.product_item)??e},r=V(e.discount_reason,e.discountReason);return r&&!V(n.discount_reason,n.discountReason)&&(n.discount_reason=r),sn(n,t,a)}function sn(e,t,a){const n=V(e.sku,t),r=V(e.name,a);if(!n||!r)return null;const i={sku:n,name:r},o=V(e.brand);o&&(i.brand=o);const s=V(e.url);s&&(i.url=s);const c=ls(e.images);if(c.length>0)i.images=c;else{const p=V(e.image,e.image_url,e.imageUrl);p&&(i.images=[p])}const l=st(e.price_discounted);l!==void 0&&(i.price_discounted=l);const g=st(e.price);g!==void 0&&(i.price=g);const d=st(e.rating);d!==void 0&&(i.rating=d);const h=st(e.review_count)??st(e.reviewCount);h!==void 0&&(i.review_count=h);const u=V(e.cart_code,e.cartCode);u&&(i.cart_code=u),typeof e.in_stock=="boolean"&&(i.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(i.in_stock=e.inStock);const m=V(e.discount_reason,e.discountReason);return m&&(i.discount_reason=m),Fe(i)}function Ie(e,t){const a=xe(e);if(!a)return null;const n=a.type;if(typeof n!="string"||n.length===0)return null;const r={title:t||n,type:n};return a.payload!==void 0&&(r.payload=a.payload),r}function xe(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function V(...e){for(const t of e)if(typeof t=="string"){const a=t.trim();if(a.length>0)return a}}function ls(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function ds(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function st(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const a=Number(t);if(Number.isFinite(a))return a}}function oa(e){return e!=null}var gs=new Set(["sku","name","brand","images","price","price_discounted","price_discount_rate","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","description","description_html","features","specifications","facet_tags","short_name","category_ids","category_names","variants","facet_hits","promotions"]);function Fe(e){const t=e.price_discounted!=null&&e.price_discounted>0,a=t?e.price_discounted:e.price,n=t&&e.price!=null?e.price:void 0;let r;n!=null&&a!=null&&n>0?r=Math.round((n-a)/n*100):e.price_discount_rate!=null&&e.price_discount_rate>0&&(r=e.price_discount_rate);const i=V(e.brand),o=V(e.name)??e.sku,s=i&&!o.toLowerCase().startsWith(i.toLowerCase())?`${i} ${o}`:o,c={sku:e.sku,name:s,url:V(e.url)??""},l=e.images?.[0];l&&(c.imageUrl=l),e.images&&e.images.length>1&&(c.images=e.images),a!=null&&(c.price=String(a)),n!=null&&(c.originalPrice=String(n)),r!==void 0&&(c.discountPercent=r),i!==void 0&&(c.brand=i),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions),e.description!==void 0&&(c.description=e.description),e.description_html!==void 0&&(c.descriptionHtml=e.description_html),e.features&&e.features.length>0&&(c.features=e.features),e.specifications!==void 0&&(c.specifications=e.specifications),e.facet_hits&&(c.facetHits=e.facet_hits),e.short_name!==void 0&&(c.shortName=e.short_name);const g=e,d={};let h=!1;for(const u of Object.keys(g))gs.has(u)||(d[u]=g[u],h=!0);return h&&(c.extras=d),c}function ps(e){return e.results.map(Fe)}function hs(e){return e.product_groupings.map(t=>{const a={name:t.name,products:(t.group_products??[]).map(Fe)};return t.highlight!==void 0&&(a.highlight=t.highlight),a})}function us(e){const t=e.payload.type,{type:a,...n}=e.payload;return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:t,props:n}}}}}var ms={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function fs(e){if(e===void 0)throw new Error("[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.");const t=e.trim();return t===""?"":t.replace(/\/+$/,"")}function yt(e,t){return`${fs(t?.middlewareUrl)}/chat${ms[e]}`}function bs(e,t){const a=e.type,n=e.payload!=null&&typeof e.payload=="object"&&!Array.isArray(e.payload)?e.payload:{},r=i=>{const o={...n};for(const[s,c]of Object.entries(i))s in o||(o[s]=c);return o};switch(a){case"inputText":{const i={is_launcher:0};return t.pageContext?.extra&&(i.page_details=t.pageContext.extra),"is_suggested_text"in n||(i.is_suggested_text=0),{...e,payload:r(i)}}case"findSimilar":{const i={is_launcher:0};return e.title&&(i.text=e.title,i.input=e.title),{...e,payload:r(i)}}case"getComparisonTable":return e;case"addToCart":{const i={};return"error_message"in n||(i.error_message=""),{...e,payload:r(i)}}case"reviewSummary":{const i={};return t.pageContext?.sku&&!("sku"in n)&&(i.sku=t.pageContext.sku),Object.keys(i).length===0?e:{...e,payload:r(i)}}default:return e}}var vs={user_message:"inputText"};function ys(e){const{action:t,type:a,payload:n,...r}=e,i=a??t?.type??"inputText",o=n??t?.payload,s=vs[i]??i,c={...r,type:s};return o!==void 0&&(c.payload=typeof o=="string"?{text:o}:o),JSON.stringify(c)}function _s(e,t,a){const n=yt("process_action",a),r=new AbortController;return(async()=>{try{const o=ys(e),s=a.attachment!==void 0;let c;if(s){const h=new FormData;h.append("request",o),a.attachment!==void 0&&h.append("attachment",a.attachment),c={method:"POST",body:h,signal:r.signal}}else c={method:"POST",headers:{"Content-Type":"application/json"},body:o,signal:r.signal};const l=await fetch(n,c);if(!l.ok){let h=l.statusText;try{const u=await l.json(),m=u.detail??u.message??u.error;typeof m=="string"&&(h=m)}catch{}t.onError(new Error(`HTTP ${l.status}: ${h}`));return}let g=!1;const d=()=>{g||(g=!0,t.onDone())};await bt(l,{onEvent:h=>{const u=vt(h);if(u)switch(u.type){case"text_chunk":t.onTextChunk(u.content,u.final===!0,{productMentions:u.productMentions,skuToProductItem:u.skuToProductItem,conversationMode:u.conversationMode,renderHint:u.renderHint,kvkk:u.kvkk});break;case"ui_spec":t.onUISpec(u.spec,u.widget,u.panelHint,u.clearPanel===!0);break;case"action":t.onAction(u);break;case"metadata":t.onMetadata(u);break;case"error":t.onError(new Error(u.message));break;case"done":d();break}},onError:t.onError,signal:r.signal}),d()}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;t.onError(o instanceof Error?o:new Error(String(o)))}})(),r}var xs="gengage-chat-scroll",cn=null;function ln(e){cn=e}function ws(){cn=null}var sa={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",consultingOtherCompatibleProductsLabel:"Diğer Uyumlu Ürünler",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",photoAnalysisStrengthsLabel:"Öne Çıkanlar",photoAnalysisFocusLabel:"Odak Noktaları",photoAnalysisCelebStyleLabel:"Celeb Vibe Eşleşmesi",photoAnalysisSeeMoreLabel:"Detaylı analizi gör",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"},ks={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",consultingOtherCompatibleProductsLabel:"Other compatible products",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",photoAnalysisStrengthsLabel:"Your strengths",photoAnalysisFocusLabel:"Focus points",photoAnalysisCelebStyleLabel:"Celeb style match",photoAnalysisSeeMoreLabel:"See detailed 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 Cs(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Ss(e){return Cs(e)==="en"?ks:sa}function Es(){return dn()!==null}function dn(){const e=globalThis;return e.SpeechRecognition??e.webkitSpeechRecognition??null}var Ts=class{constructor(e,t){this.recognition=null,this._state="idle",this.silenceTimer=null,this.accumulatedTranscript="",this.intentionalStop=!1,this._lastRestartAt=0,this.callbacks=e,this.lang=t?.lang??"tr-TR",this.silenceTimeoutMs=t?.silenceTimeoutMs??1500,this.autoSubmit=t?.autoSubmit??!0}get state(){return this._state}start(){if(this._state==="listening")return;const e=dn();if(!e){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 t=new e;t.continuous=!0,t.interimResults=!0,t.lang=this.lang,t.maxAlternatives=1,t.onstart=()=>{this.setState("listening")},t.onresult=a=>{this.clearSilenceTimer();let n="",r="";for(let i=a.resultIndex;i<a.results.length;i++){const o=a.results[i];if(!o)continue;const s=o[0];s&&(o.isFinal?r+=s.transcript:n+=s.transcript)}r&&(this.accumulatedTranscript+=r,this.callbacks.onFinal?.(this.accumulatedTranscript)),n&&this.callbacks.onInterim?.(this.accumulatedTranscript+n),this.autoSubmit&&this.accumulatedTranscript&&this.startSilenceTimer()},t.onerror=a=>{const n=Ps(a.error);this.intentionalStop&&(a.error==="no-speech"||a.error==="aborted")||(this.setState("error"),this.callbacks.onError?.(n,a.message||a.error))},t.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{t.start()}catch{this.setState("idle")}return}this.setState("idle")},this.recognition=t;try{t.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(e){this._state!==e&&(this._state=e,this.callbacks.onStateChange?.(e))}startSilenceTimer(){this.clearSilenceTimer(),this.silenceTimer=setTimeout(()=>{const e=this.stop();e.trim()&&this.callbacks.onAutoSubmit?.(e.trim())},this.silenceTimeoutMs)}clearSilenceTimer(){this.silenceTimer!==null&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}};function Ps(e){switch(e){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 As(e){const t=document.createElement("div");t.className="gengage-chat-kvkk-banner gds-evidence-card gds-evidence-card-warning",t.dataset.gengagePart="kvkk-banner",t.setAttribute("role","alert");const a=document.createElement("div");a.className="gengage-chat-kvkk-content",a.dataset.gengagePart="kvkk-content",a.innerHTML=_e(e.htmlContent),t.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",e.closeAriaLabel??"Close privacy notice"),n.textContent="×",n.addEventListener("click",e.onDismiss),t.appendChild(n),t}var Ls=class{constructor(e){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",e.backAriaLabel??"Back"),this._backBtn.title=e.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",()=>e.onBack());const t=document.createElement("div");t.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",t.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",e.forwardAriaLabel??"Forward"),this._forwardBtn.title=e.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",()=>e.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",e.closePanelAriaLabel??"Close panel"),this._closeBtn.title=e.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",()=>e.onClose?.()),this._el.appendChild(this._backBtn),this._el.appendChild(t),this._el.appendChild(this._actionsEl),this._el.appendChild(this._forwardBtn),this._el.appendChild(this._closeBtn)}update(e,t,a){this._backBtn.disabled=!e,this._forwardBtn.disabled=!t,this._backBtn.hidden=!e,this._forwardBtn.hidden=!t,this._titleEl.textContent=a,this._titleEl.title=a}getElement(){return this._el}setTitle(e){this._titleEl.textContent=e}setActions(e){this._actionsEl.replaceChildren(),e&&this._actionsEl.appendChild(e)}getTitle(){return this._titleEl.textContent??""}},Is=class{constructor(e){this._onThumbnailClick=e.onThumbnailClick,this._el=document.createElement("div"),this._el.className="gengage-chat-thumbnails-column",this._el.style.display="none"}getElement(){return this._el}setEntries(e){const t=new Set,a=[];for(const n of e)t.has(n.sku)||(t.add(n.sku),a.push(n));this._el.innerHTML="";for(const n of a){const r=document.createElement("button");if(r.type="button",r.className="gengage-chat-thumbnail-btn",r.title=n.sku,ye(n.imageUrl)){const i=document.createElement("img");i.className="gengage-chat-thumbnail-img",i.src=n.imageUrl,i.alt=n.sku,i.width=40,i.height=40,r.appendChild(i)}r.addEventListener("click",()=>{this._onThumbnailClick(n.threadId)}),this._el.appendChild(r)}}show(){this._el.style.display=""}hide(){this._el.style.display="none"}};function Ns(e){return{processing:e.processing===!0,title:typeof e.title=="string"?e.title:void 0,description:typeof e.description=="string"?e.description:void 0,uploadLabel:typeof e.upload_label=="string"?e.upload_label:void 0,skipLabel:typeof e.skip_label=="string"?e.skip_label:void 0}}function gn(e,t,a){const n=e.props??{},r=n.processing===!0,i=document.createElement("div");i.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 s=document.createElement("div");s.className="gengage-chat-beauty-photo-step-content";const c=document.createElement("div");c.className="gengage-chat-beauty-photo-step-title",c.textContent=(typeof n.title=="string"?n.title:void 0)??t.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)??t.i18n?.beautyPhotoStepDescription??"Share a selfie so we can analyze your skin and recommend the right products.";const g=document.createElement("div");g.className="gengage-chat-beauty-photo-step-actions";const d=document.createElement("button");d.type="button",d.className="gengage-chat-beauty-photo-step-upload gds-btn gds-btn-primary",d.textContent=r?t.i18n?.beautyPhotoStepProcessing??"Analyzing...":(typeof n.upload_label=="string"?n.upload_label:void 0)??t.i18n?.beautyPhotoStepUpload??"Upload Photo",d.disabled=r,a?.onUpload&&d.addEventListener("click",()=>a.onUpload());const h=document.createElement("button");return h.type="button",h.className="gengage-chat-beauty-photo-step-skip gds-btn gds-btn-ghost",h.textContent=(typeof n.skip_label=="string"?n.skip_label:void 0)??t.i18n?.beautyPhotoStepSkip??"Skip",a?.onSkip&&h.addEventListener("click",()=>a.onSkip()),g.appendChild(d),g.appendChild(h),s.appendChild(c),s.appendChild(l),s.appendChild(g),i.appendChild(o),i.appendChild(s),i}function zs(e,t){if(e)return e;const a=document.createElement("section");a.className="gengage-chat-beauty-photo-step",a.dataset.gengagePart="chat-beauty-photo-step",a.hidden=!0;const n=t?.querySelector(".gengage-chat-input-area");return n?n.parentElement?.insertBefore(a,n):t?.appendChild(a),a}function Ms(e,t,a,n,r){if(!a.visible)return e&&(e.hidden=!0,e.innerHTML=""),e;const i=zs(e,t);i.hidden=!1,i.innerHTML="";const o=gn({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:r,onSkip:a.onSkip});return i.appendChild(o),i}function pn(e){const t=typeof e.summary=="string"?e.summary:"",a=Array.isArray(e.strengths)?e.strengths.filter(l=>typeof l=="string"):[],n=Array.isArray(e.focus_points)?e.focus_points.filter(l=>typeof l=="string"):[],r=Array.isArray(e.details)?e.details.filter(l=>typeof l=="string"):[];if(!t&&a.length===0&&n.length===0&&r.length===0)return null;const i={summary:t,details:r},o=typeof e.celeb_style=="string"?e.celeb_style:void 0,s=typeof e.celeb_style_reason=="string"?e.celeb_style_reason:void 0,c=typeof e.next_question=="string"?e.next_question:void 0;return a.length>0&&(i.strengths=a),n.length>0&&(i.focusPoints=n),o&&(i.celebStyle=o),s&&(i.celebStyleReason=s),c&&(i.nextQuestion=c),i}function ca(e){const t=e.details;return e.strengths&&e.strengths.length>0||e.focusPoints&&e.focusPoints.length>0?{...e,details:t}:t.length<3?{...e,details:t}:{...e,strengths:t.slice(0,2),focusPoints:t.slice(2,4),details:t}}function hn(e,t,a){if(t.length===0)return null;const n=document.createElement("section");n.className=`gengage-chat-photo-analysis-section ${a}`;const r=document.createElement("h4");r.className="gengage-chat-photo-analysis-section-title",r.textContent=e;const i=document.createElement("ul");i.className="gengage-chat-photo-analysis-section-list";for(const o of t){const s=document.createElement("li");s.className="gengage-chat-photo-analysis-section-item",s.textContent=o,i.appendChild(s)}return n.appendChild(r),n.appendChild(i),n}function la(e,t){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=e.badge;const r=document.createElement("div");if(r.className="gengage-chat-photo-analysis-body",t.summary){const l=document.createElement("p");l.className="gengage-chat-photo-analysis-summary",l.textContent=t.summary,r.appendChild(l)}const i=document.createElement("div");i.className="gengage-chat-photo-analysis-highlights";const o=hn(e.strengths,t.strengths??[],"gengage-chat-photo-analysis-section--strengths"),s=hn(e.focus,t.focusPoints??[],"gengage-chat-photo-analysis-section--focus");if(o&&i.appendChild(o),s&&i.appendChild(s),i.childElementCount>0&&r.appendChild(i),t.celebStyle){const l=document.createElement("section");l.className="gengage-chat-photo-analysis-section gengage-chat-photo-analysis-section--celeb";const g=document.createElement("h4");g.className="gengage-chat-photo-analysis-section-title",g.textContent=e.celebStyle;const d=document.createElement("p");if(d.className="gengage-chat-photo-analysis-celeb-name",d.textContent=t.celebStyle,l.appendChild(g),l.appendChild(d),t.celebStyleReason){const h=document.createElement("p");h.className="gengage-chat-photo-analysis-celeb-reason",h.textContent=t.celebStyleReason,l.appendChild(h)}r.appendChild(l)}const c=t.details.filter(Boolean);if(c.length>0){const l=document.createElement("details");l.className="gengage-chat-photo-analysis-details";const g=document.createElement("summary");g.className="gengage-chat-photo-analysis-details-summary",g.textContent=e.seeMore;const d=document.createElement("ul");d.className="gengage-chat-photo-analysis-points";for(const h of c){const u=document.createElement("li");u.textContent=h,d.appendChild(u)}l.appendChild(g),l.appendChild(d),r.appendChild(l)}if(t.nextQuestion){const l=document.createElement("p");l.className="gengage-chat-photo-analysis-next",l.textContent=t.nextQuestion,r.appendChild(l)}return a.appendChild(n),a.appendChild(r),a}function Bs(e){return{badge:e?.i18n?.photoAnalysisBadge??"Skin Analysis",strengths:e?.i18n?.photoAnalysisStrengthsLabel??"Your strengths",focus:e?.i18n?.photoAnalysisFocusLabel??"Focus points",celebStyle:e?.i18n?.photoAnalysisCelebStyleLabel??"Celeb style match",seeMore:e?.i18n?.photoAnalysisSeeMoreLabel??"See detailed analysis"}}function Rs(e,t){const a=ca(pn(e.props??{})??{summary:"",details:[]});return la(Bs(t),a)}function Os(e,t,a,n){if(e.innerHTML="",n){e.appendChild(la(a,ca(n)));return}const r=t.split(/(?<=[.!?])\s+/).map(l=>l.trim()).filter(Boolean),i=r[0]??t,o=r.slice(1).filter(l=>!l.includes("?")).slice(0,4),s=r.find(l=>l.includes("?")),c=ca({summary:i,details:o,...s?{nextQuestion:s}:{}});e.appendChild(la(a,c))}var Qm='<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>',un={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>'},Ds=sa,Fs=1400,$s=/data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;async function Us(e){for(const t of e)for(const a of t.types)if(a.startsWith("image/"))try{const n=await t.getType(a);if(!n||n.size===0)continue;const r=a||n.type||"image/png",i=r==="image/png"?"png":r==="image/webp"?"webp":"jpg",o=`paste-${Date.now()}.${i}`;return new File([n],o,{type:r})}catch{continue}for(const t of e)if(t.types.includes("text/html"))try{const a=(await(await t.getType("text/html")).text()).match($s)?.[0];if(!a||a.length>5e6)continue;const n=await(await fetch(a)).blob();if(!n||n.size===0)continue;const r=n.type||"image/png";if(!["image/jpeg","image/png","image/webp"].includes(r))continue;const i=r==="image/png"?"png":r==="image/webp"?"webp":"jpg";return new File([n],`paste-${Date.now()}.${i}`,{type:r})}catch{continue}return null}async function Hs(e){try{const t=e??(typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():null);return t?Us(await t):null}catch{}return null}var qs=class{_renderPhotoAnalysisCard(e,t,a){Os(e,t,{badge:this.i18n.photoAnalysisBadge,strengths:this.i18n.photoAnalysisStrengthsLabel,focus:this.i18n.photoAnalysisFocusLabel,celebStyle:this.i18n.photoAnalysisCelebStyleLabel,seeMore:this.i18n.photoAnalysisSeeMoreLabel},a)}constructor(e,t){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=t,this.i18n={...Ds,...t.i18n},this.onSend=t.onSend,t.onPanelToggle!==void 0&&(this._onPanelToggle=t.onPanelToggle),t.onHostShellSync!==void 0&&(this._onHostShellSync=t.onHostShellSync),t.onAttachment!==void 0&&(this._onAttachment=t.onAttachment),t.onRollback!==void 0&&(this._onRollback=t.onRollback),t.onLinkClick!==void 0&&(this._onLinkClick=t.onLinkClick),t.voiceEnabled&&(this._voiceEnabled=!0),t.voiceLang!==void 0&&(this._voiceLang=t.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 r=null;{const T=document.createElement("div");T.className="gengage-chat-drawer-handle",T.dataset.gengagePart="chat-drawer-handle",T.setAttribute("aria-hidden","true"),T.style.pointerEvents="none",r=T}const i=document.createElement("div");i.className="gengage-chat-header gds-shell-header",i.dataset.gengagePart="chat-header";const o=document.createElement("div");o.className="gengage-chat-header-left",o.dataset.gengagePart="chat-header-left";const s=t.headerAvatarUrl??t.launcherImageUrl,c=typeof t.headerAvatarUrl=="string"&&t.headerAvatarUrl.length>0&&t.headerAvatarUrl!==t.launcherImageUrl;if(s){const T=document.createElement("img");T.className="gengage-chat-header-avatar",c&&T.classList.add("gengage-chat-header-avatar--logo"),T.dataset.gengagePart="chat-header-avatar",T.src=s,T.alt=t.headerTitle??"Assistant",o.appendChild(T)}const l=document.createElement("div");l.className="gengage-chat-header-info",l.dataset.gengagePart="chat-header-info";const g=document.createElement("div");g.className="gengage-chat-header-title-row",g.dataset.gengagePart="chat-header-title-row";const d=document.createElement("span");if(d.className="gengage-chat-header-title",d.dataset.gengagePart="chat-header-title",d.textContent=t.headerTitle??this.i18n.headerTitle??"Product Expert",g.appendChild(d),t.headerBadge){const T=document.createElement("span");T.className="gengage-chat-header-badge gds-badge gds-badge-brand",T.dataset.gengagePart="chat-header-badge",T.textContent=t.headerBadge,g.appendChild(T)}l.appendChild(g);const h=document.createElement("a");h.className="gengage-chat-header-powered",h.dataset.gengagePart="chat-header-powered-by",h.href="https://gengage.ai/",h.target="_blank",h.rel="noopener noreferrer",h.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(h),o.appendChild(l),i.appendChild(o);const u=document.createElement("div");u.className="gengage-chat-header-right",u.dataset.gengagePart="chat-header-actions";{const T=document.createElement("button");T.type="button",T.className="gengage-chat-header-btn gengage-chat-header-btn--reopen-panel gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-reopen-panel",T.setAttribute("aria-label",this.i18n.showPanelAriaLabel),T.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>',T.addEventListener("click",()=>this._showMobilePanelFromBtn()),u.appendChild(T),this._reopenPanelBtn=T}{const T=document.createElement("button");T.type="button",T.className="gengage-chat-header-btn gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-cart",T.setAttribute("aria-label",this.i18n.cartAriaLabel),T.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>',T.addEventListener("click",()=>t.onCartClick?.()),u.appendChild(T),this._cartBtn=T}if(t.onNewChat){const T=document.createElement("button");T.className="gengage-chat-header-btn gengage-chat-new-chat gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-new-chat",T.type="button",T.setAttribute("aria-label",this.i18n.newChatButton),T.title=this.i18n.newChatButton,T.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>',T.addEventListener("click",()=>t.onNewChat?.()),u.appendChild(T)}const m=document.createElement("button");if(m.className="gengage-chat-close gds-btn gds-btn-ghost gds-icon-btn",m.dataset.gengagePart="chat-header-close",m.type="button",m.setAttribute("aria-label",this.i18n.closeButton),m.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>',m.addEventListener("click",t.onClose),t.showHeaderFavorites){const T=document.createElement("button");T.className="gengage-chat-header-btn gengage-chat-header-btn--fav gds-btn gds-btn-ghost gds-icon-btn",T.dataset.gengagePart="chat-header-favorites",T.type="button",T.setAttribute("aria-label",this.i18n.favoritesAriaLabel),T.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",T.appendChild(G),this._favBadgeEl=G,T.addEventListener("click",()=>{t.onFavoritesClick?.()}),u.appendChild(T)}u.appendChild(m),r&&i.insertBefore(r,i.firstChild),i.appendChild(u);{let G=0,ie=0,le=!1;const fe=ve=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||ve.target.closest('button, a, input, [role="button"]'))return;const Pe=ve.changedTouches?.[0];Pe&&(G=Pe.clientY,ie=0,le=!0,this.root.style.transition="none")},Oe=ve=>{if(!le)return;const Pe=ve.changedTouches?.[0];if(!Pe)return;ie=Pe.clientY-G;const Ym=(t.getMobileState?.()??"full")==="full"?Math.max(0,ie):ie;ve.preventDefault(),this.root.style.transform=`translateY(${Ym}px)`},Ke=()=>{if(!le)return;le=!1;const ve=t.getMobileState?.()??"full";let Pe;ie>72?Pe=ve==="full"?"half":"close":ie<-72&&ve==="half"?Pe="full":Pe=ve,this.root.style.transition="",Pe==="close"?(this.root.style.transform="translateY(100%)",setTimeout(()=>{this.root.style.transform="",t.onMobileSnap?.("close")},280)):(this.root.style.transform="",t.onMobileSnap?.(Pe)),ie=0},Gt=()=>{le&&(le=!1,ie=0,this.root.style.transition="",this.root.style.transform="")};i.addEventListener("touchstart",fe,{passive:!0}),i.addEventListener("touchmove",Oe,{passive:!1}),i.addEventListener("touchend",Ke,{passive:!0}),i.addEventListener("touchcancel",Gt,{passive:!0}),this._cleanups.push(()=>{i.removeEventListener("touchstart",fe),i.removeEventListener("touchmove",Oe),i.removeEventListener("touchend",Ke),i.removeEventListener("touchcancel",Gt)})}const p=document.createElement("div");p.className="gengage-chat-body",p.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 Ls({onBack:()=>t.onPanelBack?.(),onForward:()=>t.onPanelForward?.(),onClose:()=>{t.getMobileViewport?.()??!1?this.hideMobilePanel():this.clearPanel(),t.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)),p.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 b=document.createElement("button");b.className="gengage-chat-panel-divider-toggle gds-btn gds-btn-ghost",b.dataset.gengagePart="chat-panel-divider-toggle",b.type="button",b.setAttribute("aria-label",this.i18n.togglePanelAriaLabel),b.setAttribute("title",this.i18n.togglePanelAriaLabel),b.textContent="»",b.addEventListener("click",()=>{if(this._ignoreNextDividerClick){this._ignoreNextDividerClick=!1;return}this.togglePanel(),this._onPanelToggle?.()});let C=null,v=null;const x=24,k=T=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const G=T.changedTouches?.[0];G&&(C=G.clientX,v=G.clientY)},P=T=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768)||C===null||v===null)return;const G=T.changedTouches?.[0];if(!G)return;const ie=G.clientX-C,le=G.clientY-v;if(C=null,v=null,Math.abs(le)<x||Math.abs(le)<Math.abs(ie))return;const fe=le<0;fe!==this._panelCollapsed&&(this._ignoreNextDividerClick=!0,this.setPanelCollapsed(fe),this._onPanelToggle?.())};this._dividerEl.addEventListener("touchstart",k,{passive:!0}),this._dividerEl.addEventListener("touchend",P,{passive:!0}),this._cleanups.push(()=>{this._dividerEl.removeEventListener("touchstart",k),this._dividerEl.removeEventListener("touchend",P)}),this._dividerEl.appendChild(b),p.appendChild(this._dividerEl);const z=document.createElement("div");z.className="gengage-chat-conversation",z.dataset.gengagePart="chat-conversation",this._conversationEl=z,z.appendChild(i);const M=document.createElement("div");M.className="gengage-chat-offline-bar gds-evidence-card gds-evidence-card-warning",M.dataset.gengagePart="chat-offline-bar",M.setAttribute("role","status"),M.setAttribute("aria-live","polite"),M.textContent=this.i18n.offlineMessage,typeof navigator<"u"&&!navigator.onLine&&M.classList.add("gengage-chat-offline-bar--visible"),z.appendChild(M);const $=()=>M.classList.add("gengage-chat-offline-bar--visible"),K=()=>M.classList.remove("gengage-chat-offline-bar--visible");window.addEventListener("offline",$),window.addEventListener("online",K),this._cleanups.push(()=>{window.removeEventListener("offline",$),window.removeEventListener("online",K)}),this._kvkkSlot=document.createElement("div"),this._kvkkSlot.className="gengage-chat-kvkk-slot",this._kvkkSlot.dataset.gengagePart="chat-kvkk-slot",z.appendChild(this._kvkkSlot),this.messagesEl=document.createElement("div"),this.messagesEl.id=xs,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),ln(this.messagesEl);const j=document.createElement("button");j.type="button",j.className="gengage-chat-former-messages-btn gds-chip",j.dataset.gengagePart="chat-former-messages-button",j.textContent=this.i18n.showFormerMessagesButton,j.setAttribute("aria-label",this.i18n.showFormerMessagesButton),j.style.display="none",j.addEventListener("click",()=>{this._options.presentation?.onReleasePresentationFocus?.()}),this.messagesEl.appendChild(j),this._formerMessagesBtn=j;const I=()=>{this._userInteractionUntil=Date.now()+2e3};let _=!1;const y=()=>this._options.presentation,w=()=>{_||(_=!0,requestAnimationFrame(()=>{_=!1;const{scrollTop:T,scrollHeight:G,clientHeight:ie}=this.messagesEl,le=G-T-ie;this._userScrolledUp=le>10;const fe=this._presentationPinned?le<96:le<32,Oe=Date.now(),Ke=Oe<this._programmaticScrollUntil,Gt=!fe&&Oe<this._userInteractionUntil,ve=Ke?!1:Gt;fe!==this._presentationPinned&&(this._presentationPinned=fe,y()?.onPinnedToBottomChange?.(fe)),ve!==this._presentationUserInteracting&&(this._presentationUserInteracting=ve,y()?.onUserInteractingChange?.(ve))}))};this.messagesEl.addEventListener("scroll",w,{passive:!0}),this._cleanups.push(()=>{this.messagesEl.removeEventListener("scroll",w)});const E=T=>{I(),T.deltaY<-6&&this._presentationFocusThreadId&&this._options.presentation?.onFormerMessagesHint?.()};this.messagesEl.addEventListener("wheel",E,{passive:!0}),this._cleanups.push(()=>this.messagesEl.removeEventListener("wheel",E));const L=T=>{I(),this._touchStartY=T.touches[0]?.clientY??null},N=T=>{I();const G=T.touches[0]?.clientY,ie=this._touchStartY;typeof G=="number"&&typeof ie=="number"&&G-ie>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)}),z.appendChild(this.messagesEl),this._thumbnailsColumn=new Is({onThumbnailClick:T=>t.onThumbnailClick?.(T)}),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 A=document.createElement("button");A.className="gengage-chat-pills-arrow gds-btn gds-btn-ghost",A.dataset.gengagePart="chat-suggestion-pills-more",A.type="button",A.setAttribute("aria-label",this.i18n.moreSuggestionsAriaLabel),A.textContent="›",A.addEventListener("click",()=>{R.scrollBy({left:150,behavior:"smooth"})}),this._pillsEl.appendChild(A);let U=!1;const F=()=>{U||(U=!0,requestAnimationFrame(()=>{U=!1;const T=R.scrollLeft+R.clientWidth>=R.scrollWidth-4;A.style.display=T?"none":""}))};R.addEventListener("scroll",F,{passive:!0}),this._cleanups.push(()=>{R.removeEventListener("scroll",F)}),z.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",z.appendChild(this._inputChipsEl);const W=document.createElement("div");W.className="gengage-chat-input-area",W.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",T=>{T.key==="Enter"&&!T.isComposing&&((this._options.getMobileViewport?.()??window.innerWidth<=768)||!T.shiftKey)&&(T.preventDefault(),this._submit())}),this.inputEl.addEventListener("paste",T=>{const G=T.clipboardData;if(!G)return;let ie=null;const le=G.files?.[0];if(le&&le.type.startsWith("image/"))ie=le;else if(G.items?.length)for(let fe=0;fe<G.items.length;fe++){const Oe=G.items[fe];if(Oe?.kind==="file"&&Oe.type.startsWith("image/")){const Ke=Oe.getAsFile();if(Ke){ie=Ke;break}}}ie&&(T.preventDefault(),this._routeAttachmentFile(ie))}),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 T=this._fileInput.files?.[0];T&&this._routeAttachmentFile(T),this._fileInput.value=""});const Q=document.createElement("div");Q.className="gengage-chat-attach-wrap",Q.dataset.gengagePart="chat-attach-wrap",this._attachWrapEl=Q;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",T=>{T.stopPropagation(),this._toggleAttachMenu()});const oe=document.createElement("div");this._attachMenuEl=oe,oe.className="gengage-chat-attach-menu gds-menu",oe.dataset.gengagePart="chat-attach-menu",oe.setAttribute("role","menu"),oe.setAttribute("hidden","");const Z=document.createElement("button");Z.type="button",Z.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",Z.dataset.gengagePart="chat-attach-menu-select-photo",Z.setAttribute("role","menuitem"),Z.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>`,Z.addEventListener("click",T=>{T.stopPropagation(),this._closeAttachMenu(),this._fileInput.click()});const be=document.createElement("div");be.className="gengage-chat-attach-menu-sep",be.dataset.gengagePart="chat-attach-menu-separator",be.setAttribute("aria-hidden","true");const H=document.createElement("button");H.type="button",H.className="gengage-chat-attach-menu-item gds-btn gds-btn-ghost",H.dataset.gengagePart="chat-attach-menu-paste",H.setAttribute("role","menuitem"),H.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>`,H.addEventListener("click",T=>{T.stopPropagation();const G=typeof navigator.clipboard?.read=="function"?navigator.clipboard.read():void 0;this._pasteImageFromClipboardMenu(G)}),oe.appendChild(Z),oe.appendChild(be),oe.appendChild(H),Q.appendChild(X),Q.appendChild(oe),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 B=document.createElement("img");B.className="gengage-chat-attachment-preview-thumb",B.dataset.gengagePart="chat-attachment-preview-thumb",B.alt="",this._previewName=document.createElement("span"),this._previewName.className="gengage-chat-attachment-name",this._previewName.dataset.gengagePart="chat-attachment-preview-name";const Y=document.createElement("button");Y.className="gengage-chat-attachment-remove gds-btn gds-btn-ghost",Y.dataset.gengagePart="chat-attachment-preview-remove",Y.type="button",Y.setAttribute("aria-label",this.i18n.removeAttachmentButton),Y.textContent="×",Y.addEventListener("click",()=>this.clearAttachment()),this._previewStrip.appendChild(B),this._previewStrip.appendChild(this._previewName),this._previewStrip.appendChild(Y),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 T=this._sendStopHandler;this.hideStopButton(),T();return}this._submit()}),W.addEventListener("dragover",T=>{T.preventDefault(),W.classList.add("gengage-chat-input-area--dragover")}),W.addEventListener("dragleave",()=>{W.classList.remove("gengage-chat-input-area--dragover")}),W.addEventListener("drop",T=>{T.preventDefault(),W.classList.remove("gengage-chat-input-area--dragover");const G=T.dataTransfer?.files[0];G&&this._routeAttachmentFile(G)});const O=document.createElement("div");O.className="gengage-chat-input-pill gds-input-shell",O.dataset.gengagePart="chat-input-shell",O.appendChild(Q),O.appendChild(this.inputEl),this._voiceEnabled&&Es()&&(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()),O.appendChild(this._micBtn),this._voiceInput=new Ts({onInterim:T=>{this._resizeRafId!==null&&(cancelAnimationFrame(this._resizeRafId),this._resizeRafId=null),this.inputEl.value=T,this.inputEl.style.height="auto",this.inputEl.style.height=`${Math.min(this.inputEl.scrollHeight,120)}px`},onFinal:T=>{this.inputEl.value=T},onAutoSubmit:T=>{this.inputEl.value=T,this._micBtn?.classList.remove("gengage-chat-mic-btn--active"),this._submit()},onStateChange:T=>{T==="listening"?this._micBtn?.classList.add("gengage-chat-mic-btn--active"):this._micBtn?.classList.remove("gengage-chat-mic-btn--active")},onError:(T,G)=>{this._micBtn?.classList.remove("gengage-chat-mic-btn--active")}},{lang:this._voiceLang})),O.appendChild(this.sendBtn),W.appendChild(this._previewStrip),W.appendChild(this._fileInput),W.appendChild(O),z.appendChild(W),p.appendChild(z),this._comparisonDockSlotEl=document.createElement("div"),this._comparisonDockSlotEl.className="gengage-chat-comparison-dock-slot",this._comparisonDockSlotEl.dataset.gengagePart="comparison-dock-slot",p.appendChild(this._comparisonDockSlotEl),this.root.appendChild(p),this._setupHorizontalSwipe(z),this._setupHorizontalSwipe(this._panelEl);const re=document.createElement("div");re.className="gengage-chat-footer",re.dataset.gengagePart="chat-footer",re.textContent=this.i18n.poweredBy,this.root.appendChild(re);const Wt=T=>{T.key==="Escape"&&t.onClose()};this.root.addEventListener("keydown",Wt),this._cleanups.push(()=>this.root.removeEventListener("keydown",Wt)),e.appendChild(this.root)}addMessage(e){const t=document.createElement("div");if(t.className=`gengage-chat-bubble gds-message ${e.role==="assistant"?"gds-message-assistant":"gds-message-user"} gengage-chat-bubble--${e.role}`,t.dataset.gengagePart=e.role==="assistant"?"chat-message-assistant":"chat-message-user",t.setAttribute("role","listitem"),t.dataset.messageId=e.id,e.threadId&&(t.dataset.threadId=e.threadId),this._firstBotMessageIds.has(e.id)&&t.classList.add("gengage-chat-bubble--first"),e.attachment){const a=document.createElement("img");a.className="gengage-chat-attachment-thumb";const n=URL.createObjectURL(e.attachment);a.src=n,a.alt=e.attachment.name,a.addEventListener("load",()=>URL.revokeObjectURL(n),{once:!0}),a.addEventListener("error",()=>URL.revokeObjectURL(n),{once:!0}),t.insertBefore(a,t.firstChild)}if(e.content){const a=document.createElement("div");if(a.className="gengage-chat-bubble-text",a.dataset.gengagePart="chat-message-text",e.role==="assistant"){if(e.renderHint==="photo_analysis"?(t.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(a,e.content,e.photoAnalysis)):a.innerHTML=_e(e.content),this._onLinkClick){const n=a.querySelectorAll("a[href]");for(const r of n)r.addEventListener("click",i=>{i.preventDefault();const o=r.getAttribute("href");o&&this._onLinkClick?.(o)})}}else a.textContent=e.content;t.appendChild(a)}if(e.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?.(e.id)}),t.appendChild(a)}this.messagesEl.appendChild(t),this._presentationFocusThreadId&&this._applyPresentationCollapsed(),this._scrollToBottom(e.role==="user")}removeMessageBubble(e){this._firstBotMessageIds.delete(e),this.messagesEl.querySelector(`[data-message-id="${CSS.escape(e)}"]`)?.remove(),this._presentationFocusThreadId&&this._applyPresentationCollapsed()}showTypingIndicator(e){this.removeTypingIndicator();const t=this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):e?[e]:this.i18n.loadingSequenceGeneric,{root:a,binding:n}=this._createLoadingSequence("chat",t,"chat-typing-indicator","gengage-chat-typing");a.dataset.typing="true",this._typingLoadingBinding=n,this.messagesEl.appendChild(a),this._scrollToBottom(!0)}addThinkingStep(e){const t=e.trim();t&&this._thinkingSteps[this._thinkingSteps.length-1]!==t&&(this._thinkingSteps.push(t),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(e){const t=e.map(a=>a.trim()).filter(Boolean).slice(-3);t.length!==0&&(this._thinkingSteps=t,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(e){this._sendStopHandler=e,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(e,t){const a=document.createElement("div");a.className="gengage-chat-error",a.setAttribute("role","alert");const n=document.createElement("span");if(n.textContent=e??this.i18n.errorMessage,a.appendChild(n),t){const r=document.createElement("button");r.className="gengage-chat-error-retry",r.textContent=this.i18n.retryButton??"Retry",r.addEventListener("click",()=>{a.remove(),t()}),a.appendChild(r)}this.messagesEl.appendChild(a),this._scrollToBottom(!0)}showErrorWithRecovery(e,t){this.showError(e),this.setRecoveryPills(t)}showRecoveryPillsOnly(e){this.setRecoveryPills(e)}setRecoveryPills(e){this.setPills([{label:this.i18n.tryAgainButton,onAction:e.onRetry},{label:this.i18n.askSomethingElseButton,onAction:e.onNewQuestion}])}clearMessages(){const e=this._formerMessagesBtn;for(const t of[...this.messagesEl.children])t!==e&&t.remove()}setPills(e){const t=this._pillsEl.querySelector(".gengage-chat-pills-scroll");if(!t)return;for(;t.firstChild;)t.removeChild(t.firstChild);if(e.length===0){this._pillsEl.style.display="none";return}this._pillsEl.style.display="";for(const n of e){const r=document.createElement("button");if(r.className=n.image?"gengage-chat-pill gds-chip gds-chip-active gengage-chat-pill--rich":"gengage-chat-pill gds-chip gds-chip-active",r.type="button",n.icon){const o=un[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>',s=document.createElement("span");s.className="gengage-chat-pill-icon",s.innerHTML=o,r.appendChild(s)}if(n.image&&ye(n.image)){const o=document.createElement("img");o.className="gengage-chat-pill-img",o.src=n.image,o.alt="",r.appendChild(o)}const i=document.createElement("span");if(i.className="gengage-chat-pill-text",i.textContent=n.label,r.appendChild(i),n.description){const o=document.createElement("span");o.className="gengage-chat-pill-desc";const s=`pill-desc-${Math.random().toString(36).slice(2,9)}`;o.id=s,o.textContent=n.description,r.appendChild(o),r.setAttribute("aria-describedby",s)}r.addEventListener("click",()=>n.onAction()),t.appendChild(r)}const a=this._pillsEl.querySelector(".gengage-chat-pills-arrow");a&&requestAnimationFrame(()=>{a.style.display=t.scrollWidth>t.clientWidth?"":"none"})}focusInput(){this.inputEl.focus()}showKvkkBanner(e,t){this._kvkkSlot.innerHTML="";const a=As({htmlContent:e,onDismiss:t,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(e){this._attachWrapEl&&(this._attachWrapEl.style.display=e?"":"none",e||this._closeAttachMenu())}setBeautyPhotoStepCard(e){this._beautyPhotoStepEl=Ms(this._beautyPhotoStepEl,this._conversationEl??null,e,this.i18n,()=>this.openAttachmentPicker())}stageAttachment(e){this._pendingAttachment=e,this._previewName.textContent=e.name;const t=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");t&&(t.src&&t.src.startsWith("blob:")&&URL.revokeObjectURL(t.src),t.src=URL.createObjectURL(e)),this._previewStrip.classList.remove("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}clearAttachment(){const e=this._previewStrip.querySelector(".gengage-chat-attachment-preview-thumb");e?.src&&(URL.revokeObjectURL(e.src),e.src=""),this._pendingAttachment=null,this._previewStrip.classList.add("gengage-chat-attachment-preview--hidden"),this._updateSendEnabled()}_routeAttachmentFile(e){if(this._onAttachment)try{this._onAttachment(e)}catch(t){console.error("[gengage:chat] Attachment callback error:",t)}else this.stageAttachment(e)}_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 e=a=>{this._attachWrapEl?.contains(a.target)||this._closeAttachMenu()},t=a=>{a.key==="Escape"&&(a.stopPropagation(),this._closeAttachMenu())};this._attachMenuClickTimerId=window.setTimeout(()=>{this._attachMenuClickTimerId=null,document.addEventListener("click",e,!0)},0),document.addEventListener("keydown",t,!0),this._attachMenuCleanup=()=>{document.removeEventListener("click",e,!0),document.removeEventListener("keydown",t,!0)}}_toggleAttachMenu(){this._attachMenuEl&&(this._attachMenuEl.hasAttribute("hidden")?this._openAttachMenu():this._closeAttachMenu())}async _pasteImageFromClipboardMenu(e){const t=await Hs(e);if(t){this._routeAttachmentFile(t),this._closeAttachMenu();return}ce("gengage:global:error",{message:this.i18n.clipboardNoImageMessage,source:"chat"}),this._closeAttachMenu()}getPendingAttachment(){return this._pendingAttachment}setPanelAiZoneState(e,t){if(this._panelAiZoneEl.isConnected){if(this._destroyLoadingBinding(this._panelAiZoneLoadingBinding),this._panelAiZoneLoadingBinding=null,e==="hidden"){this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.setAttribute("hidden","");return}if(this._panelAiZoneEl.removeAttribute("hidden"),e==="analyzing"){this._panelAiZoneEl.innerHTML="";const a=[t?.analyzingLabel??this.i18n.aiAnalysisAnalyzingLabel,...this.i18n.loadingSequencePanel],{root:n,binding:r}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-ai-zone-loading","gengage-chat-panel-ai-zone-inner");this._panelAiZoneLoadingBinding=r,this._panelAiZoneEl.appendChild(n)}else e==="results"&&t?.resultEl&&(this._panelAiZoneEl.innerHTML="",this._panelAiZoneEl.appendChild(t.resultEl))}}_resetPanelAiZoneElement(){this._panelAiZoneEl=document.createElement("div"),this._panelAiZoneEl.className="gengage-chat-panel-ai-zone",this._panelAiZoneEl.setAttribute("hidden","")}_emitHostShellSync(){this._onHostShellSync?.()}_syncPanelTopBarFromContent(e){const t=e.querySelector(".gengage-chat-product-grid-head");if(t){const a=t.querySelector(".gengage-chat-product-grid-head-title"),n=t.querySelector(".gengage-chat-product-grid-head-actions");if(a?.textContent?.trim()){const r=a.textContent.trim();e.dataset.gengagePanelDerivedTitle=r,this._panelTopBar.setTitle(r)}n?(n.classList.add("gengage-chat-panel-topbar-toolbar-host"),this._panelTopBar.setActions(n)):this._panelTopBar.setActions(null),t.remove();return}this._syncPanelTopBarTitleFromContent(e)}_syncPanelTopBarTitleFromContent(e){const t=e.dataset.gengagePanelDerivedTitle;if(t?.trim()){this._panelTopBar.setTitle(t.trim());return}const a=e.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(e){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(e),this._panelEl.appendChild(this._thumbnailsColumn.getElement()),this._panelEl.appendChild(this._panelFloatingEl),this._syncPanelTopBarFromContent(e),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(e){const t=this._thumbnailsColumn.getElement(),a=t.parentElement===this._panelEl?t:this._panelFloatingEl;this._panelEl.insertBefore(e,a),this._syncPanelTopBarFromContent(this.getPanelContentElement()??e),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 e=this._panelEl.children;for(let t=0;t<e.length;t++){const a=e[t];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(e){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 t=document.createElement("div");t.className="gengage-chat-panel-skeleton";const a=e==="comparisonTable"?this.i18n.loadingSequenceComparison:this.i18n.loadingSequencePanel,{root:n,binding:r}=this._createLoadingSequence("panel",this._thinkingSteps.length>0?this._thinkingSteps.slice(-3):a,"panel-loading-status","gengage-chat-panel-loading-status");switch(this._panelLoadingBinding=r,e){case"productDetails":{t.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--image",t.appendChild(i);for(let o=0;o<3;o++){const s=document.createElement("div");s.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--text",t.appendChild(s)}break}case"productList":case"groupList":{t.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-panel-skeleton-grid";for(let o=0;o<6;o++){const s=document.createElement("div");s.className="gengage-chat-panel-skeleton-block gengage-chat-panel-skeleton-block--card",i.appendChild(s)}t.appendChild(i);break}case"comparisonTable":{t.classList.add("gengage-chat-panel-skeleton--comparison"),t.appendChild(n);const i=document.createElement("div");i.className="gengage-chat-comparison gengage-chat-comparison--skeleton",i.setAttribute("aria-busy","true");const o=document.createElement("div");o.className="gengage-chat-comparison-recommended";const s=document.createElement("div");s.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-label",o.appendChild(s);const c=document.createElement("div");c.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 g=document.createElement("div");g.className="gengage-chat-comparison-recommended-info";for(let z=0;z<2;z++){const M=document.createElement("div");M.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-title",z===1&&M.classList.add("gengage-chat-comparison-skeleton-rec-title--short"),g.appendChild(M)}const d=document.createElement("div");d.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-price",g.appendChild(d),c.appendChild(l),c.appendChild(g),o.appendChild(c);const h=document.createElement("div");h.className="gengage-chat-comparison-highlights";const u=document.createElement("div");u.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-label",h.appendChild(u);const m=document.createElement("ul");m.className="gengage-chat-comparison-skeleton-hl-list";for(let z=0;z<3;z++){const M=document.createElement("li"),$=document.createElement("div");$.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-line",z===1&&$.classList.add("gengage-chat-comparison-skeleton-hl-line--medium"),z===2&&$.classList.add("gengage-chat-comparison-skeleton-hl-line--short"),M.appendChild($),m.appendChild(M)}h.appendChild(m),o.appendChild(h),i.appendChild(o);const p=document.createElement("div");p.className="gengage-chat-comparison-key-differences";const f=document.createElement("div");f.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-heading",p.appendChild(f);const b=document.createElement("div");b.className="gengage-chat-comparison-key-differences-content";for(let z=0;z<4;z++){const M=document.createElement("div");M.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-line",b.appendChild(M)}p.appendChild(b),i.appendChild(p);const C=document.createElement("div");C.className="gengage-chat-comparison-special gengage-chat-comparison-special--skeleton";const v=document.createElement("div");v.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-special-line",C.appendChild(v),i.appendChild(C);const x=document.createElement("div");x.className="gengage-chat-comparison-skeleton-table-wrap";const k=document.createElement("div");k.className="gengage-chat-comparison-skeleton-table-head";const P=document.createElement("div");P.className="gengage-chat-comparison-skeleton-table-corner",k.appendChild(P);for(let z=0;z<3;z++){const M=document.createElement("div");M.className="gengage-chat-comparison-skeleton-table-col";const $=document.createElement("div");$.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-img";const K=document.createElement("div");K.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";const j=document.createElement("div");j.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-price",M.appendChild($),M.appendChild(K),M.appendChild(j),k.appendChild(M)}x.appendChild(k);for(let z=0;z<3;z++){const M=document.createElement("div");M.className="gengage-chat-comparison-skeleton-table-row";const $=document.createElement("div");$.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-label",M.appendChild($);for(let K=0;K<3;K++){const j=document.createElement("div");j.className="gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-cell",M.appendChild(j)}x.appendChild(M)}i.appendChild(x),t.appendChild(i);break}default:t.appendChild(n);for(let i=0;i<3;i++){const o=document.createElement("div");o.className="gengage-chat-panel-skeleton-block",t.appendChild(o)}break}this._panelEl.appendChild(t),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(e,t,a){const n=this._options.getMobileViewport?.()??!1;this._panelTopBar.update(n?!0:e,t,a);const r=this.getPanelContentElement();r&&this._syncPanelTopBarTitleFromContent(r)}getPanelTopBarTitle(){return this._panelTopBar.getTitle()}updateFavoritesBadge(e){this._favBadgeEl&&(e>0?(this._favBadgeEl.textContent=e>99?"99+":String(e),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(e){this._comparisonDockSlotEl.replaceChildren(),e&&this._comparisonDockSlotEl.appendChild(e)}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 e=this._panelEl;if(typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches??!1)){e.scrollTop=0;return}this._panelListScrollAnimToken+=1;const t=this._panelListScrollAnimToken;requestAnimationFrame(()=>{if(t!==this._panelListScrollAnimToken)return;const a=Math.max(0,e.scrollHeight-e.clientHeight);if(a<=0)return;const n=Math.min(160,Math.max(48,a*.28));e.scrollTop=n;const r=Math.min(720,Math.max(380,320+Math.sqrt(n)*28)),i=performance.now(),o=c=>1-(1-c)**5,s=c=>{if(t!==this._panelListScrollAnimToken)return;const l=c-i,g=Math.min(1,l/r);e.scrollTop=n*(1-o(g)),g<1?requestAnimationFrame(s):e.scrollTop=0};requestAnimationFrame(s)})}_updateScrollAffordance(){const e=this._panelEl,t=e.scrollTop+e.clientHeight>=e.scrollHeight-10;e.classList.toggle("gengage-chat-panel--has-scroll",!t&&e.scrollHeight>e.clientHeight),e.classList.toggle("gengage-chat-panel--scrolled",e.scrollTop>88)}_setupHorizontalSwipe(e){let t=0,a=0;const n=i=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=i.touches[0];o&&(t=o.clientX,a=o.clientY)},r=i=>{if(!(this._options.getMobileViewport?.()??window.innerWidth<=768))return;const o=i.changedTouches[0];if(!o)return;const s=o.clientX-t,c=o.clientY-a;Math.abs(s)>50&&Math.abs(s)>Math.abs(c)*2&&(this.togglePanel(),this._onPanelToggle?.())};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",r,{passive:!0}),this._cleanups.push(()=>{e.removeEventListener("touchstart",n),e.removeEventListener("touchend",r)})}togglePanel(){this.setPanelCollapsed(!this._panelCollapsed)}isPanelCollapsed(){return this._panelCollapsed}setPanelCollapsed(e){this._panelCollapsed=e,e?this._panelEl.classList.add("gengage-chat-panel--collapsed"):this._panelEl.classList.remove("gengage-chat-panel--collapsed");const t=this._dividerEl.querySelector(".gengage-chat-panel-divider-toggle");t&&(t.textContent=e?"«":"»"),this._syncDividerPreview()}setDividerPreviewEnabled(e){this._dividerPreviewEnabled=e,this._syncDividerPreview()}persistPanelState(e){try{const t=`gengage:panel:${e}`;this._panelCollapsed?sessionStorage.setItem(t,"collapsed"):sessionStorage.removeItem(t)}catch{}}restorePanelState(e){try{const t=`gengage:panel:${e}`;if(sessionStorage.getItem(t)==="collapsed")return this._panelCollapsed=!0,!0}catch{}return!1}_createLoadingSequence(e,t,a,n){const r=document.createElement("div");r.className=`${n} gds-progress-loader ${e==="chat"?"gds-progress-loader-chat":"gds-progress-loader-panel"}`,r.dataset.gengagePart=a,r.setAttribute("role","status"),r.setAttribute("aria-live","polite");const i=document.createElement("span");i.className=e==="chat"?"gengage-chat-typing-text gds-progress-label":"gengage-chat-panel-loading-label gds-progress-label",r.appendChild(i);const o=document.createElement("span");o.className=e==="chat"?"gengage-chat-typing-dots gds-progress-dots":"gds-progress-dots",o.setAttribute("aria-hidden","true");for(let c=0;c<3;c++){const l=document.createElement("span");l.className="gds-progress-dot",o.appendChild(l)}r.appendChild(o);const s={labelEl:i,steps:[],index:0,intervalId:null};return this._applyLoadingSteps(s,t),{root:r,binding:s}}_applyLoadingSteps(e,t,a=!1){const n=t.map(i=>i.trim()).filter(Boolean).slice(-3),r=[this.i18n.loadingMessage];e.steps=n.length>0?n:r,this._clearLoadingBindingInterval(e),e.index=a?e.steps.length-1:0,e.labelEl.textContent=e.steps[e.index],!a&&e.steps.length>1&&(e.intervalId=setInterval(()=>{if(e.index>=e.steps.length-1){this._clearLoadingBindingInterval(e);return}e.index+=1,e.labelEl.textContent=e.steps[e.index],e.index>=e.steps.length-1&&this._clearLoadingBindingInterval(e)},Fs))}_clearLoadingBindingInterval(e){e?.intervalId&&(clearInterval(e.intervalId),e.intervalId=null)}_destroyLoadingBinding(e){this._clearLoadingBindingInterval(e)}_updateSendEnabled(){if(this._sendStopHandler){this.sendBtn.disabled=!1;return}const e=this.inputEl.value.trim().length>0||this._pendingAttachment!==null;this.sendBtn.disabled=!e}_renderSendButtonIcon(e){this.sendBtn.innerHTML=e==="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 e=this.inputEl.value.trim(),t=this._pendingAttachment;if(this._sendStopHandler){const a=this._sendStopHandler;if(this.hideStopButton(),a(),!e&&!t)return}else if(!e&&!t)return;this.onSend(e,t??void 0),this.inputEl.value="",this.inputEl.style.height="auto",this.clearAttachment(),this._updateSendEnabled()}_toggleVoice(){if(this._voiceInput)if(this._voiceInput.state==="listening"){const e=this._voiceInput.stop();e.trim()&&(this.inputEl.value=e,this._submit())}else this.inputEl.value="",this._voiceInput.start()}lockScrollForRestore(){this._scrollLockedUntil=Date.now()+500}_scrollToBottom(e=!1){!e&&this._userScrolledUp||!e&&this._options.presentation?.shouldBlockSoftAutoScroll?.()||!e&&Date.now()<this._scrollLockedUntil||requestAnimationFrame(()=>{this.messagesEl.scrollTop=this.messagesEl.scrollHeight,this._userScrolledUp=!1})}scrollToBottomIfNeeded(){this._scrollToBottom(!1)}updateBotMessage(e,t,a,n){const r=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(e)}"]`);if(!r)return;let i=r.querySelector(".gengage-chat-bubble-text");i||(i=document.createElement("div"),i.className="gengage-chat-bubble-text",r.appendChild(i)),a==="photo_analysis"?(r.classList.add("gengage-chat-bubble--photo-analysis"),this._renderPhotoAnalysisCard(i,t,n)):(r.classList.remove("gengage-chat-bubble--photo-analysis"),i.innerHTML=_e(t)),this._scrollToBottom(!1)}markFirstBotMessage(e){this._firstBotMessageIds.add(e);const t=this.messagesEl.querySelector(`[data-message-id="${CSS.escape(e)}"]`);t&&t.classList.add("gengage-chat-bubble--first")}scrollToLastThread(){const e=this.messagesEl.querySelectorAll("[data-thread-id]");if(e.length===0){this._scrollToBottom(!0);return}const t=e[e.length-1].getAttribute("data-thread-id");if(!t){this._scrollToBottom(!0);return}this._programmaticScrollUntil=Date.now()+700;const a=this.messagesEl.querySelector(`[data-thread-id="${CSS.escape(t)}"]`);a?requestAnimationFrame(()=>{a.scrollIntoView({block:"start",behavior:"auto"}),this._userScrolledUp=!1}):this._scrollToBottom(!0)}scrollThreadIntoView(e,t="smooth"){const a=this.messagesEl.querySelectorAll(`[data-thread-id="${CSS.escape(e)}"]`);let n=null;for(let i=0;i<a.length;i++){const o=a[i];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 r=Math.max(n.offsetTop-20,0);return this._programmaticScrollUntil=Date.now()+700,this._scrollMessagesTo(r,t),!0}scrollToBottomPresentation(e="smooth"){this._programmaticScrollUntil=Date.now()+700,requestAnimationFrame(()=>{this._scrollMessagesTo(this.messagesEl.scrollHeight,e),this._userScrolledUp=!1})}_scrollMessagesTo(e,t){if(typeof this.messagesEl.scrollTo=="function"){this.messagesEl.scrollTo({top:e,behavior:t});return}this.messagesEl.scrollTop=e}setPresentationFocus(e){this._presentationFocusThreadId=e,this._applyPresentationCollapsed()}setFormerMessagesButtonVisible(e){this._formerMessagesBtn&&(this._formerMessagesBtn.style.display=e?"":"none")}setInputPlaceholder(e){this.inputEl.placeholder=e}_applyPresentationCollapsed(){const e=this._presentationFocusThreadId;this.messagesEl.querySelectorAll("[data-thread-id]").forEach(t=>{const a=t.dataset.threadId;a&&(e&&a!==e?t.classList.add("gengage-chat-bubble--presentation-collapsed"):t.classList.remove("gengage-chat-bubble--presentation-collapsed"))})}refreshPresentationCollapsed(){this._presentationFocusThreadId&&this._applyPresentationCollapsed()}setInputAreaChips(e){if(this._inputChipsEl.innerHTML="",e.length===0){this._inputChipsEl.style.display="none";return}this._inputChipsEl.style.display="";for(const t of e){const a=document.createElement("button");if(a.className="gengage-chat-input-chip gds-chip",a.type="button",t.icon){const r=un[t.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>',i=document.createElement("span");i.className="gengage-chat-input-chip-icon",i.innerHTML=r,a.appendChild(i)}const n=document.createElement("span");n.textContent=t.label,a.appendChild(n),a.addEventListener("click",()=>t.onAction()),this._inputChipsEl.appendChild(a)}}clearInputAreaChips(){this._inputChipsEl.innerHTML="",this._inputChipsEl.style.display="none"}setThumbnails(e){this._thumbnailsColumn.setEntries(e),e.length>0?this._thumbnailsColumn.show():this._thumbnailsColumn.hide(),this._renderDividerPreview(e),this._syncDividerPreview()}hideThumbnails(){this._thumbnailsColumn.hide(),this._renderDividerPreview([]),this._syncDividerPreview()}_renderDividerPreview(e){this._dividerPreviewEl.innerHTML="";const t=new Set,a=[];for(let n=e.length-1;n>=0;n--){const r=e[n];if(!(!r||t.has(r.sku)||!ye(r.imageUrl))&&(t.add(r.sku),a.push(r),a.length>=3))break}a.reverse();for(const n of a){const r=document.createElement("span");r.className="gengage-chat-panel-divider-preview-thumb";const i=document.createElement("img");i.className="gengage-chat-panel-divider-preview-img",i.src=n.imageUrl,i.alt="",i.width=48,i.height=48,r.appendChild(i),this._dividerPreviewEl.appendChild(r)}}_syncDividerPreview(){const e=this._dividerPreviewEl.childElementCount>0,t=this._dividerPreviewEnabled&&e&&this._panelCollapsed&&!this._dividerEl.classList.contains("gengage-chat-panel-divider--hidden");this._dividerEl.classList.toggle("gengage-chat-panel-divider--preview-active",t)}trapFocus(){this._previouslyFocusedElement=document.activeElement,this.releaseFocus();const e=t=>{if(t.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 g=getComputedStyle(l);return l.hidden||l.getAttribute("aria-hidden")==="true"||g.display==="none"||g.visibility==="hidden"?!1:l.getClientRects().length>0});if(a.length===0)return;const n=a[0],r=a[a.length-1],i=t.composedPath().find(l=>l instanceof HTMLElement&&this.root.contains(l))??null,o=this.root.getRootNode(),s=i??(o instanceof ShadowRoot&&o.activeElement instanceof HTMLElement?o.activeElement:document.activeElement instanceof HTMLElement?document.activeElement:null),c=s&&this.root.contains(s)?s:null;t.shiftKey?(c===n||!this.root.contains(c))&&(t.preventDefault(),r.focus()):(c===r||!this.root.contains(c))&&(t.preventDefault(),n.focus())};this._focusTrapHandler=e,this.root.addEventListener("keydown",e)}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(e){this.root.querySelector(".gengage-chat-cart-toast")?.remove();const t=document.createElement("div");t.className="gengage-chat-cart-toast",t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.textContent=e,this.root.appendChild(t),t.offsetWidth,t.classList.add("gengage-chat-cart-toast--visible"),setTimeout(()=>{t.classList.remove("gengage-chat-cart-toast--visible"),setTimeout(()=>t.remove(),300)},2500)}destroy(){ln(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 e of this._cleanups)e();this._cleanups.length=0,this._voiceInput?.destroy(),this._voiceInput=null}},mn=["beauty_consulting","watch_expert","booking"],js=["shopping",...mn];function Zs(e){return typeof e=="string"&&js.includes(e)?e:null}function da(e){return e==null||typeof e!="object"||Array.isArray(e)?null:e}function Vs(...e){for(const t of e)if(typeof t=="string"){const a=t.trim();if(a.length>0)return a}}function Ws(e){const t=da(e);if(!t)return null;const a=Vs(t.assistant_mode,t.assistantMode);return!a||!mn.includes(a)?null:a}var Gs=class{constructor(){this._mode="shopping",this._uiHints=null}get mode(){return this._mode}set mode(e){this._mode=e}get uiHints(){return this._uiHints}set uiHints(e){this._uiHints=e}get isShopping(){return this._mode==="shopping"}get isBeautyConsulting(){return this._mode==="beauty_consulting"}get isChoicePrompterHidden(){return this._uiHints?.hide_choice_prompter===!0}applyUiHints(e,t,a){const n=i=>this._uiHints?.[i]===!0;e?.setAttachmentControlsVisible(!n("hide_attachment_controls")),n("hide_choice_prompter")&&a?.();const r=typeof this._uiHints?.input_placeholder=="string"?this._uiHints.input_placeholder:void 0;r?e?.setInputPlaceholder(r):e?.setInputPlaceholder(t)}handleRedirect(e){Le("mode","redirect metadata received",e);const t=Ws(e);return t?(this.switchMode(t),!0):!1}switchMode(e){const t=this._mode;this._mode=e,Le("mode","assistant mode switched",{from:t,to:e})}updateFromContext(e){const t=e.assistant_mode;if(typeof t=="string"&&t){const a=Zs(t);a?this._mode=a:Le("mode","ignoring unrecognised assistant_mode from context",t)}else t===null&&(this._mode="shopping");this._uiHints=da(e.ui_hints)??null}reset(){const e=this._mode!=="shopping";return this._mode="shopping",this._uiHints=null,e}resolveAttachmentActionType(){return this._mode==="beauty_consulting"?"user_message":"findSimilar"}shouldCondenseThinking(){return this._mode!=="shopping"}};function Ks(){return{streamIncludedBeautyPhotoStep:!1,pendingPhotoStepSkip:!1}}function Ys(e,t,a,n,r){if(e==="PhotoAnalysisCard"){const i=pn(t);return i?(r.photoAnalysis=i,r.renderHint="photo_analysis",n.ensureRendered(),n.cancelTypewriter(),n.drawer?.updateBotMessage(r.id,r.content??"","photo_analysis",r.photoAnalysis),!0):(Le("beauty","PhotoAnalysisCard parse failed, falling through to generic renderer",t),!1)}if(e==="BeautyPhotoStep"){a.streamIncludedBeautyPhotoStep=!0;const i=Ns(t);return n.drawer?.setBeautyPhotoStepCard({visible:!0,...i,onSkip:()=>{n.drawer?.setBeautyPhotoStepCard({visible:!1}),n.streamDone?n.sendSkipMessage():a.pendingPhotoStepSkip=!0}}),!0}return!1}function Js(e){return e.renderHint==="photo_analysis"}function Qs(e,t){e.streamIncludedBeautyPhotoStep||t.drawer?.setBeautyPhotoStepCard({visible:!1}),e.pendingPhotoStepSkip&&(e.pendingPhotoStepSkip=!1,t.sendSkipMessage())}function Xs(e,t){e.pendingPhotoStepSkip&&(e.pendingPhotoStepSkip=!1,t.sendSkipMessage())}var ec=`<svg width="28" height="28" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
49
49
|
<rect x="3" y="7" width="18" height="13" rx="3" fill="currentColor" opacity="0.15"/>
|
|
50
50
|
<rect x="3" y="7" width="18" height="13" rx="3" stroke="currentColor" stroke-width="1.5"/>
|
|
51
51
|
<circle cx="9" cy="13" r="1.5" fill="currentColor"/>
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
<circle cx="12" cy="3" r="1" fill="currentColor"/>
|
|
56
56
|
<path d="M1 12V14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
57
57
|
<path d="M23 12V14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
58
|
-
</svg>`;function tc(e){const t=document.createElement("div");t.className="gengage-chat-launcher-container",t.dataset.gengagePart="chat-launcher-container";const a=document.createElement("div");a.className="gengage-chat-launcher-content-area",a.dataset.gengagePart="chat-launcher-content-primary",t.appendChild(a);const n=document.createElement("button");if(n.type="button",n.setAttribute("aria-label",e.ariaLabel??"Open chat"),e.imageUrl){n.className="gengage-chat-launcher gengage-chat-launcher--image-mode";const i=document.createElement("img");i.src=e.imageUrl,i.alt="",i.draggable=!1,n.appendChild(i)}else n.className="gengage-chat-launcher",n.innerHTML=e.svgMarkup??ec;if(n.dataset.gengagePart="chat-launcher-button",e.tooltip!==void 0){const i=document.createElement("span");i.className="gengage-chat-launcher-tooltip",i.dataset.gengagePart="chat-launcher-tooltip",i.textContent=e.tooltip,n.appendChild(i)}e.hideMobile&&(t.dataset.hideMobile="1"),e.mobileBreakpoint!==void 0&&(t.dataset.mobileBreakpoint=String(e.mobileBreakpoint)),n.addEventListener("click",e.onClick),t.appendChild(n);const r=document.createElement("div");return r.className="gengage-chat-launcher-content-area-bottom",r.dataset.gengagePart="chat-launcher-content-secondary",t.appendChild(r),{container:t,button:n,contentArea:a,contentAreaBottom:r}}var ac=new Set(["audio/ogg","audio/mpeg","audio/mp3","audio/wav","audio/webm","audio/aac","audio/mp4"]),fn=new Set;function pa(e){e.pause(),e.removeAttribute("src"),e.load(),fn.delete(e)}function nc(e,t="audio/ogg"){const a=t.split(";")[0].trim();if(!ac.has(a))return null;try{const n=new Audio(`data:${t};base64,${e}`);return fn.add(n),n.addEventListener("ended",()=>pa(n),{once:!0}),n.play().catch(()=>{pa(n)}),{stop:()=>pa(n)}}catch{return null}}var rc={currencyCode:"TRY",currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function q(e,t){const a=Number(e);if(!Number.isFinite(a)||a<0)return e;const n={...rc,...t},r=Math.abs(a%1)<Number.EPSILON,i=n.alwaysShowDecimals||!r?a.toFixed(2):a.toFixed(0),o=i.indexOf("."),s=o===-1?i:i.slice(0,o),c=o===-1?void 0:i.slice(o+1),l=s.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousandsSeparator);let g;return c!==void 0?g=`${l}${n.decimalSeparator}${c}`:g=l,n.currencySymbol?n.currencyPosition==="prefix"?`${n.currencySymbol}${g}`:`${g} ${n.currencySymbol}`:g}var ic={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 oc(e,t){return t?.[e]??ic[e]??e.replace(/_/g," ").replace(/^\w/,a=>a.toUpperCase())}function bn(e){if(typeof e!="string")return!1;const t=Number(e);return Number.isFinite(t)&&t>0}function sc(e){const t=typeof e=="number"?e:typeof e=="string"?Number(e):NaN;return Number.isFinite(t)&&t>0}function cc(e){const t=typeof e=="number"?e:Number(e),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=t.toFixed(1),a.appendChild(n),a}function lc(e){const{recommended:t,products:a,attributes:n,highlights:r,specialCases:i,onProductClick:o,i18n:s}=e,c=document.createElement("div");if(c.className="gengage-chat-comparison",c.dataset.gengagePart="comparison-dialog",c.setAttribute("role","dialog"),c.setAttribute("aria-label",s?.comparisonHeading??"Comparison Results"),t){const l=document.createElement("article");l.className="gengage-chat-comparison-recommended gds-card",l.dataset.gengagePart="comparison-recommended-card";const g=document.createElement("div");g.className="gengage-chat-comparison-recommended-label",g.textContent=s?.recommendedChoiceLabel??"Recommended Choice",l.appendChild(g);const d=document.createElement("div");d.className="gengage-chat-comparison-recommended-body",d.classList.add("gds-clickable"),d.tabIndex=0,d.setAttribute("role","button"),d.setAttribute("aria-label",t.name);const h=document.createElement("div");if(h.className="gengage-chat-comparison-recommended-media",t.imageUrl&&ye(t.imageUrl)){const b=document.createElement("img");b.src=t.imageUrl,b.alt=t.name,b.loading="lazy",b.addEventListener("error",()=>{b.style.display="none"},{once:!0}),h.appendChild(b)}else{const b=document.createElement("div");b.className="gengage-chat-comparison-recommended-placeholder",b.setAttribute("aria-hidden","true"),h.appendChild(b)}d.appendChild(h);const u=document.createElement("div");u.className="gengage-chat-comparison-recommended-info";const f=document.createElement("div");f.className="gengage-chat-comparison-recommended-title",f.textContent=t.name,u.appendChild(f);const p=document.createElement("div");if(p.className="gengage-chat-comparison-recommended-meta",sc(t.rating)&&p.appendChild(cc(t.rating)),bn(t.price)){const b=document.createElement("div");b.className="gengage-chat-comparison-recommended-price",b.textContent=q(t.price,e.pricing),p.appendChild(b)}if(p.childElementCount>0&&u.appendChild(p),e.recommendedText){const b=document.createElement("p");b.className="gengage-chat-comparison-recommended-text",b.innerHTML=_e(e.recommendedText),u.appendChild(b)}d.appendChild(u);const m=()=>{o({sku:t.sku,name:t.name})};if(d.addEventListener("click",m),d.addEventListener("keydown",b=>{b.key!=="Enter"&&b.key!==" "||(b.preventDefault(),m())}),l.appendChild(d),r.length>0){const b=document.createElement("div");b.className="gengage-chat-comparison-highlights",b.dataset.gengagePart="comparison-highlights";const C=document.createElement("div");C.className="gengage-chat-comparison-highlights-label",C.textContent=s?.highlightsLabel??"Key Highlights",b.appendChild(C);const v=document.createElement("ul");for(const w of r){const k=document.createElement("li");k.textContent=w,v.appendChild(k)}b.appendChild(v),l.appendChild(b)}c.appendChild(l)}if(e.keyDifferencesHtml){const l=document.createElement("details");l.className="gengage-chat-comparison-key-differences",l.dataset.gengagePart="comparison-key-differences";const g=document.createElement("summary");g.className="gengage-chat-comparison-key-differences-summary";const d=document.createElement("span");d.className="gengage-chat-comparison-key-differences-summary-label",d.textContent=s?.keyDifferencesLabel??"Key Differences";const h=document.createElement("span");h.className="gengage-chat-comparison-key-differences-summary-meta",h.textContent=s?.viewMoreLabel??"Show More",g.appendChild(d),g.appendChild(h),l.appendChild(g);const u=document.createElement("div");u.className="gengage-chat-comparison-key-differences-content",u.innerHTML=_e(dc(e.keyDifferencesHtml)),l.appendChild(u),c.appendChild(l)}if(i&&i.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 g=document.createElement("summary");g.textContent=s?.specialCasesLabel??"For Special Cases",l.appendChild(g);const d=document.createElement("ul");for(const h of i)gc(d,h);d.childElementCount>0&&l.appendChild(d),c.appendChild(l)}if(a.length>0&&n.length>0){const l=document.createElement("table");l.className="gengage-chat-comparison-table gds-comparison-table";const g=document.createElement("thead"),d=document.createElement("tr"),h=document.createElement("th");d.appendChild(h);for(const p of a){const m=document.createElement("th");p.sku===t?.sku&&(m.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell");const b=document.createElement("div");b.className="gengage-chat-comparison-table-header-cell gengage-chat-comparison-table-header-cell--clickable gds-clickable",b.tabIndex=0,b.setAttribute("role","button"),b.setAttribute("aria-label",p.name),b.title=p.name;const C=()=>{o({sku:p.sku,name:p.name})};if(b.addEventListener("click",C),b.addEventListener("keydown",w=>{w.key!=="Enter"&&w.key!==" "||(w.preventDefault(),C())}),p.imageUrl&&ye(p.imageUrl)){const w=document.createElement("img");w.src=p.imageUrl,w.alt=p.name,w.loading="lazy",w.addEventListener("error",()=>{w.style.display="none"},{once:!0}),b.appendChild(w)}else{const w=document.createElement("div");w.className="gengage-chat-comparison-table-header-img-placeholder",w.setAttribute("aria-hidden","true"),b.appendChild(w)}const v=document.createElement("div");if(v.className="gengage-chat-comparison-table-product-name",v.textContent=p.name,b.appendChild(v),bn(p.price)){const w=document.createElement("div");w.className="gengage-chat-comparison-table-price",w.textContent=q(p.price,e.pricing),b.appendChild(w)}m.appendChild(b),d.appendChild(m)}g.appendChild(d),l.appendChild(g);const u=document.createElement("tbody");for(const p of n){const m=document.createElement("tr"),b=document.createElement("td");b.className="gengage-chat-comparison-label",b.textContent=oc(p.label,s?.criteriaLabels),m.appendChild(b);for(let C=0;C<p.values.length;C++){const v=document.createElement("td");a[C]?.sku===t?.sku&&(v.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell"),v.textContent=p.values[C]??"",m.appendChild(v)}u.appendChild(m)}l.appendChild(u);const f=document.createElement("div");f.className="gengage-chat-comparison-table-wrapper",f.dataset.gengagePart="comparison-table-wrapper",f.appendChild(l),c.appendChild(f)}return c.addEventListener("keydown",l=>{if(l.key!=="Tab")return;const g=c.querySelectorAll('button, [href], input, [tabindex]:not([tabindex="-1"])');if(g.length===0)return;const d=g[0],h=g[g.length-1];l.shiftKey&&document.activeElement===d?(l.preventDefault(),h.focus()):!l.shiftKey&&document.activeElement===h&&(l.preventDefault(),d.focus())}),c}function dc(e){if(/<[uo]l[\s>]/i.test(e)||/<li[\s>]/i.test(e))return e;const t=e.split(`
|
|
59
|
-
`).filter(a=>a.trim());return t.length<=1?e:"<ul>"+t.map(a=>`<li>${a.trim()}</li>`).join("")+"</ul>"}function gc(e,t){const a=_e(t);if(!a)return;const n=document.createElement("template");n.innerHTML=a;const r=Array.from(n.content.querySelectorAll("li"));if(r.length>0){for(const o of r){const s=document.createElement("li");s.innerHTML=_e(o.innerHTML),e.appendChild(s)}return}const i=document.createElement("li");pc(t)?i.innerHTML=a:i.textContent=t,e.appendChild(i)}function pc(e){return/<\/?[a-z][\s\S]*>/i.test(e)}function ct(e,t=18){const a="http://www.w3.org/2000/svg",n=document.createElementNS(a,"svg");n.setAttribute("width",String(t)),n.setAttribute("height",String(t)),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 r of e){const i=document.createElementNS(a,"path");i.setAttribute("d",r),n.appendChild(i)}return n}var ha="General",vn=220,hc=6;function uc(e){if(typeof e!="string")return[ha];const t=e.split(/[,;|/]+/).map(a=>a.trim().replace(/\s+/g," ")).filter(a=>a.length>0);return t.length===0?[ha]:Array.from(new Set(t.map(a=>a.toLocaleLowerCase()))).map(a=>t.find(n=>n.toLocaleLowerCase()===a)??ha)}function mc(e){return e==="positive"||e==="negative"||e==="neutral"?e:"neutral"}function fc(e){if(typeof e!="string")return"";const t=e.trim().replace(/\s+/g," ");return t.length<=vn?t:`${t.slice(0,vn-3).trimEnd()}...`}function bc(e){return e.positive>e.negative?"positive":e.negative>e.positive?"negative":"neutral"}function vc(e){return ct(e==="positive"?["M7 17 17 7","M7 7h10v10"]:e==="negative"?["M7 7 17 17","M17 7v10H7"]:["M5 12h14"],14)}function yc(e,t="1 customer mentions",a="customers mention"){return e===1?t:`${e} ${a}`}function _c(e,t){const a=document.createElement("div");a.className="gengage-chat-review-highlights";const n=e.props?.reviews;if(!Array.isArray(n)||n.length===0){const p=document.createElement("div");return p.className="gengage-chat-review-empty",p.textContent=t?.emptyReviewsMessage??"No review summary found.",a.appendChild(p),a}const r=n.filter(p=>p!==null&&typeof p=="object"),i=new Map;for(const p of r){const m=mc(p.review_class),b=fc(p.review_text),C=uc(p.review_tag);for(const v of C){const w=v.toLocaleLowerCase();let k=i.get(w);if(k||(k={key:w,label:v,mentions:0,positive:0,negative:0,neutral:0,snippets:[]},i.set(w,k)),k.mentions+=1,m==="positive"?k.positive+=1:m==="negative"?k.negative+=1:k.neutral+=1,b.length>0&&k.snippets.length<hc&&!k.snippets.some(A=>A.text===b)){const A={text:b,tone:m};p.review_rating!==void 0&&String(p.review_rating).length>0&&(A.rating=p.review_rating),k.snippets.push(A)}}}const o=Array.from(i.values()).sort((p,m)=>m.mentions!==p.mentions?m.mentions-p.mentions:p.label.localeCompare(m.label));if(o.length===0){const p=document.createElement("div");return p.className="gengage-chat-review-empty",p.textContent=t?.emptyReviewsMessage??"No review summary found.",a.appendChild(p),a}const s=(t?.reviewFilterPositive??"positive").toLowerCase(),c=(t?.reviewFilterNegative??"negative").toLowerCase(),l=document.createElement("div");l.className="gengage-chat-review-subjects-heading",l.textContent=t?.reviewSubjectsHeading??"Select to learn more",a.appendChild(l);let g=o[0]?.key??null;const d=document.createElement("div");d.className="gengage-chat-review-subjects gds-toolbar gds-toolbar-compact";const h=document.createElement("section");h.className="gengage-chat-review-detail gds-evidence-card";const u=()=>{for(;h.firstChild;)h.removeChild(h.firstChild);if(!g)return;const p=o.find(v=>v.key===g);if(!p)return;const m=document.createElement("div");m.className="gengage-chat-review-detail-meta";const b=document.createElement("span");if(b.className="gengage-chat-review-detail-mentions",b.textContent=`${yc(p.mentions,t?.reviewCustomersMentionSingular,t?.reviewCustomersMentionPlural)} "${p.label}"`,m.appendChild(b),p.positive>0){const v=document.createElement("span");v.className="gengage-chat-review-detail-positive",v.textContent=`${p.positive} ${s}`,m.appendChild(v)}if(p.negative>0){const v=document.createElement("span");v.className="gengage-chat-review-detail-negative",v.textContent=`${p.negative} ${c}`,m.appendChild(v)}h.appendChild(m);const C=document.createElement("div");C.className="gengage-chat-review-snippets";for(const v of p.snippets){const w=document.createElement("article");w.className="gengage-chat-review-snippet",w.dataset.tone=v.tone;const k=document.createElement("div");if(k.className="gengage-chat-review-snippet-text",k.textContent=`"${v.text}"`,w.appendChild(k),v.rating!==void 0&&String(v.rating).length>0){const A=document.createElement("div");A.className="gengage-chat-review-snippet-rating",A.textContent=`★ ${String(v.rating)}`,w.appendChild(A)}C.appendChild(w)}h.appendChild(C)},f=()=>{for(const p of d.querySelectorAll(".gengage-chat-review-subject")){const m=p.dataset.subjectKey===g;p.classList.toggle("gengage-chat-review-subject--active",m),p.classList.toggle("gds-chip-active",m),p.setAttribute("aria-pressed",String(m))}};for(const p of o){const m=bc(p),b=document.createElement("button");b.type="button",b.className="gengage-chat-review-subject gds-chip",b.dataset.subjectKey=p.key,b.dataset.tone=m;const C=document.createElement("span");C.className="gengage-chat-review-subject-icon",C.appendChild(vc(m)),b.appendChild(C);const v=document.createElement("span");v.className="gengage-chat-review-subject-label",v.textContent=p.label,b.appendChild(v);const w=document.createElement("span");w.className="gengage-chat-review-subject-count",w.textContent=`(${p.mentions})`,b.appendChild(w),b.addEventListener("click",()=>{g=p.key,f(),u()}),d.appendChild(b)}return a.appendChild(d),f(),u(),a.appendChild(h),a}function ua(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function ma(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function fa(e){const t=ua(e),a=Math.floor(t),n=t-a>=.5,r=5-a-(n?1:0),i=document.createElement("span");if(i.className="gengage-star-rating",i.setAttribute("role","img"),i.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),a>0&&i.appendChild(document.createTextNode("★".repeat(a))),n){const o=document.createElement("span");o.className="gengage-star-half",o.textContent="☆";const s=document.createElement("span");s.textContent="★",o.appendChild(s),i.appendChild(o)}return r>0&&i.appendChild(document.createTextNode("☆".repeat(r))),i}function Se(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function xc(e){if(!e)return;const t=e.discountReason??e.discount_reason??e.campaignReason??e.campaign_reason;if(typeof t!="string")return;const a=t.trim();return a.length>0?a:void 0}function Qe(e,t){if(e.productPriceUi?.showCampaignReason===!0)return xc(t)}function lt(e,t){const a=t?.originalPriceStyle??t?.price_original_style;if(a==="inline"||a==="strikethrough")return a;const n=e.productPriceUi?.originalPriceStyle;return n==="inline"||n==="strikethrough"?n:"strikethrough"}function _t(e){const t=document.createElement("div");return t.className="gengage-chat-campaign-reason",t.textContent=e,t}function xt(e,t){for(const n of["campaignReasonLogoUrl","campaign_reason_logo_url","discountBadgeLogoUrl","discount_badge_logo_url"]){const r=t?.[n];if(typeof r=="string"&&r.trim()){const i=r.trim();if(ye(i))return i}}const a=e.productPriceUi?.campaignBadgeLogoUrl;if(typeof a=="string"&&a.trim()){const n=a.trim();if(ye(n))return n}}function wt(e){const t=document.createElement("div");if(t.className="gengage-chat-campaign-price-badge",t.dataset.gengagePart="campaign-price-badge",e.logoUrl){const i=document.createElement("div");i.className="gengage-chat-campaign-price-badge__logo";const o=document.createElement("img");o.alt="",o.loading="lazy",o.src=e.logoUrl,Se(o),i.appendChild(o),t.appendChild(i)}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=e.reasonText;const r=document.createElement("span");return r.className="gengage-chat-campaign-price-badge__sale",r.textContent=e.salePriceFormatted,a.appendChild(n),a.appendChild(r),t.appendChild(a),t}function yn(e){const t=e.product.sku;if(typeof t=="string"&&t.length>0)return t;const a=e.action?.payload;return a&&typeof a=="object"&&"sku"in a&&typeof a.sku=="string"?a.sku:null}var wc={winner:"roleWinner",best_value:"roleBestValue",best_alternative:"roleBestAlternative"};function _n(e,t){if(!e||!t)return null;const a=wc[e];return a?t[a]??e:e}function kc(e){const t=e.rating,a=typeof t=="number"?t:typeof t=="string"?parseFloat(t):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 r=document.createElement("span");r.className="gengage-chat-ai-toppick-rating-icon",r.setAttribute("aria-hidden","true"),r.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 i=document.createElement("span");return i.className="gengage-chat-ai-toppick-rating-value",i.textContent=a.toFixed(1),n.appendChild(r),n.appendChild(i),n}function Cc(e,t,a,n,r){const i=document.createElement("div");i.className="gengage-chat-ai-toppick-media",i.dataset.gengagePart="ai-top-pick-media";const o=e.product,s=o.imageUrl;if(s&&ye(s)){const l=document.createElement("img");l.className="gengage-chat-ai-toppick-img",l.dataset.gengagePart="ai-top-pick-image",se(l,"src",s),l.loading="lazy",l.alt=t,Se(l),i.appendChild(l)}const c=yn(e);if(c&&!r?.skipOverlayActions){const l=document.createElement("div");if(l.className="gengage-chat-product-card-img-actions",n.onFavoriteToggle){const u=document.createElement("button");u.className="gengage-chat-favorite-btn",u.type="button",u.dataset.gengageFavoriteSku=c,u.setAttribute("aria-label",n.i18n?.addToFavoritesLabel??"Add to favorites");const f=n.favoritedSkus?.has(c)??!1;f&&u.classList.add("gengage-chat-favorite-btn--active"),u.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${f?"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>`,u.addEventListener("click",p=>{p.stopPropagation(),u.classList.toggle("gengage-chat-favorite-btn--active"),u.querySelector("svg")?.setAttribute("fill",u.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),n.onFavoriteToggle?.(c,o)}),l.appendChild(u)}const g=n.i18n?.findSimilarLabel??"Find Similar",d=document.createElement("button");d.className="gengage-chat-find-similar-pill",d.type="button",d.setAttribute("aria-label",g),d.dataset.tooltip=g,d.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 h=document.createElement("span");h.className="gengage-chat-find-similar-pill-text",h.textContent=g,d.appendChild(h),d.addEventListener("click",u=>{u.stopPropagation(),n.onAction({title:g,type:"findSimilar",payload:{sku:c,...s?{image_url:s}:{}}})}),l.appendChild(d),i.appendChild(l)}a.appendChild(i)}function Sc(e,t,a){const n=e.price,r=e.originalPrice;if(!n)return;const i=Qe(a,e),o=lt(a,e),s=!!(r&&r!==n),c=!!(i&&s),l=xt(a,e),g=document.createElement("div");if(g.className="gengage-chat-ai-toppick-price",g.dataset.gengagePart="ai-top-pick-price",c){const d=wt({reasonText:i,salePriceFormatted:q(n,a.pricing),...l!==void 0?{logoUrl:l}:{}});if(s&&o==="inline"){g.classList.add("gengage-chat-ai-toppick-price--inline"),g.appendChild(d);const h=document.createElement("span");h.className="gengage-chat-ai-toppick-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-ai-toppick-original-price",u.textContent=q(r,a.pricing),g.appendChild(h),g.appendChild(u)}else{const h=document.createElement("span");h.className="gengage-chat-ai-toppick-original-price",h.textContent=q(r,a.pricing),g.appendChild(h),g.appendChild(document.createTextNode(" ")),g.appendChild(d)}t.appendChild(g);return}if(s&&o==="inline"){g.classList.add("gengage-chat-ai-toppick-price--inline");const d=document.createElement("span");d.className="gengage-chat-ai-toppick-price-current",d.textContent=q(n,a.pricing);const h=document.createElement("span");h.className="gengage-chat-ai-toppick-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-ai-toppick-original-price",u.textContent=q(r,a.pricing),g.appendChild(d),g.appendChild(h),g.appendChild(u)}else if(s){const d=document.createElement("span");d.className="gengage-chat-ai-toppick-original-price",d.textContent=q(r,a.pricing),g.appendChild(d),g.appendChild(document.createTextNode(" "));const h=document.createElement("span");h.className="gengage-chat-ai-toppick-price-current",h.textContent=q(n,a.pricing),g.appendChild(h)}else{const d=document.createElement("span");d.className="gengage-chat-ai-toppick-price-current",d.textContent=q(n,a.pricing),g.appendChild(d)}if(i){const d=document.createElement("div");d.className="gengage-chat-ai-toppick-price-stack",d.appendChild(_t(i)),d.appendChild(g),t.appendChild(d)}else t.appendChild(g)}function Ec(e,t){const a=typeof e.reason=="string"?e.reason.trim():"",n=typeof e.reviewHighlight=="string"?e.reviewHighlight.trim():"";if(!(!a&&!n)){if(a){const r=document.createElement("p");r.className="gengage-chat-ai-toppick-reason",r.dataset.gengagePart="ai-top-pick-reason",r.textContent=a,t.appendChild(r)}if(n){const r=document.createElement("div");r.className="gengage-chat-ai-toppick-review",r.dataset.gengagePart="ai-top-pick-review",r.textContent=n,t.appendChild(r)}}}function xn(e,t,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 r=e.product,i=yn(e),o=r.url??"",s=r.cartCode,c=r.inStock,l=!!(i&&s&&c!==!1),g=e.action;i&&t.onProductClick?(n.classList.add("gds-clickable"),n.addEventListener("click",k=>{k.target.closest(".gengage-chat-ai-toppick-cta")||k.target.closest(".gengage-chat-favorite-btn")||k.target.closest(".gengage-chat-find-similar-pill")||t.onProductClick?.({sku:i,url:o})})):g&&(n.classList.add("gds-clickable"),n.addEventListener("click",k=>{k.target.closest(".gengage-chat-ai-toppick-cta")||k.target.closest(".gengage-chat-favorite-btn")||k.target.closest(".gengage-chat-find-similar-pill")||t.onAction(g)}));const d=r.name||"Product image",h=!a&&t.isMobile===!0,u=a?_n(e.role,t.i18n)??t.i18n?.roleWinner??"TOP MATCH":_n(e.role,t.i18n);if(u&&!h){const k=document.createElement("span");k.className="gengage-chat-ai-toppick-badge gds-badge",k.dataset.gengagePart="ai-top-pick-role-badge",k.textContent=u,n.appendChild(k)}const f=document.createElement("div");f.className="gengage-chat-ai-toppick-top-row",f.dataset.gengagePart="ai-top-pick-top-row",Cc(e,d,f,t,{skipOverlayActions:h});const p=document.createElement("div");if(p.className="gengage-chat-ai-toppick-body",p.dataset.gengagePart="ai-top-pick-body",u&&h){const k=document.createElement("div");k.className="gengage-chat-ai-toppick-role-line",k.dataset.gengagePart="ai-top-pick-role-line",k.textContent=u,p.appendChild(k)}const m=r.name;if(m){const k=document.createElement("div");k.className="gengage-chat-ai-toppick-name",k.dataset.gengagePart="ai-top-pick-name",k.textContent=m,p.appendChild(k)}const b=kc(r);b&&p.appendChild(b),Sc(r,p,t),e.labels&&e.labels.length>0&&p.appendChild(Pc(e.labels)),f.appendChild(p),n.appendChild(f);const C=document.createElement("div");if(C.className="gengage-chat-ai-toppick-detail",C.dataset.gengagePart="ai-top-pick-detail",a)Ec(e,C);else{const k=typeof e.reason=="string"?e.reason.trim():"";if(k){const A=document.createElement("p");A.className="gengage-chat-ai-toppick-snippet",A.dataset.gengagePart="ai-top-pick-snippet",A.textContent=k,C.appendChild(A)}}C.childNodes.length>0&&n.appendChild(C);const v=!!(i&&t.topPicksLoadingSku===i),w=(l||g)&&!h;if(v||l||g){const k=document.createElement("div");if(k.className="gengage-chat-ai-toppick-spinner",k.dataset.gengagePart="ai-top-pick-spinner",k.style.display=v?"":"none",n.appendChild(k),w){const A=document.createElement("button");A.className="gengage-chat-ai-toppick-cta gds-btn gds-btn-primary",A.dataset.gengagePart="ai-top-pick-cta",A.type="button",A.textContent=l?t.i18n?.addToCartButton??"Add to Cart":t.i18n?.viewDetails??"View Details",A.addEventListener("click",B=>{if(B.stopPropagation(),l){t.onAction({title:t.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:i,cartCode:s,quantity:1}});return}if(g){if(g.type==="findSimilar"&&i&&t.onProductClick){t.onProductClick({sku:i,url:o});return}t.onAction(g)}}),n.appendChild(A)}}return n}function Tc(e,t){const a=document.createElement("div");a.className="gengage-chat-ai-top-picks",a.dataset.gengagePart="ai-top-picks";const n=e.props?.suggestions??[];if(n.length===0)return a;const r=document.createElement("h3");r.className="gengage-chat-ai-top-picks-title",r.dataset.gengagePart="ai-top-picks-title",r.textContent=t.i18n?.aiTopPicksTitle??"Top Picks",a.appendChild(r);const i=document.createElement("div");i.className="gengage-chat-ai-top-picks-scroll",i.dataset.gengagePart="ai-top-picks-scroll";const o=n[0];if(i.appendChild(xn(o,t,!0)),n.length>1){const s=document.createElement("div");s.className="gengage-chat-ai-top-picks-rest",s.dataset.gengagePart="ai-top-picks-rest";for(let c=1;c<n.length;c++){const l=n[c],g=l.role==="winner";s.appendChild(xn(l,t,g))}i.appendChild(s)}return a.appendChild(i),a}function Pc(e){const t=document.createElement("div");t.className="gengage-chat-ai-toppick-labels",t.dataset.gengagePart="ai-top-pick-labels";for(const a of e){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,t.appendChild(n)}return t}function Ac(e,t){const a=document.createElement("div");a.className="gengage-chat-grounding-review gds-evidence-card",a.dataset.gengagePart="grounding-review-card";const n=e.props??{},r=n.title,i=n.reviewCount,o=n.action,s=t.i18n?.groundingReviewCta??"Read Reviews",c=document.createElement("span");c.className="gengage-chat-grounding-review-icon",c.appendChild(ct(["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(c);const l=document.createElement("div");l.className="gengage-chat-grounding-review-body",l.dataset.gengagePart="grounding-review-body";const g=document.createElement("div");if(g.className="gengage-chat-grounding-review-title",g.dataset.gengagePart="grounding-review-title",g.textContent=r??t.i18n?.customerReviewsTitle??"Customer Reviews",l.appendChild(g),i){const f=document.createElement("div");f.className="gengage-chat-grounding-review-subtitle",f.dataset.gengagePart="grounding-review-subtitle",f.textContent=(t.i18n?.groundingReviewSubtitle??"{count} yorum mevcut").replace("{count}",i),l.appendChild(f)}a.appendChild(l);const d=document.createElement("span");d.className="gengage-chat-grounding-review-cta",d.dataset.gengagePart="grounding-review-cta";const h=document.createElement("span");h.textContent=s,d.appendChild(h);const u=document.createElement("span");return u.className="gengage-chat-grounding-review-cta-icon",u.appendChild(ct(["M5 12h14","M15 8l4 4-4 4"],14)),d.appendChild(u),a.appendChild(d),o&&(a.classList.add("gds-clickable"),a.setAttribute("role","button"),a.setAttribute("tabindex","0"),a.addEventListener("click",()=>t.onAction(o)),a.addEventListener("keydown",f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),t.onAction(o))})),a}function Lc(e){if(e.action.type!=="findSimilar")return e.action;const t=e.action.payload&&typeof e.action.payload=="object"?e.action.payload:null,a=typeof t?.input=="string"&&t.input.trim()||typeof t?.text=="string"&&t.text.trim()||e.name.trim();if(!a)return e.action;const n={text:a,is_suggested_text:1};if(typeof t?.sku=="string"&&t.sku.trim()&&(n.sku=t.sku),Array.isArray(t?.group_skus)){const r=t.group_skus.filter(i=>typeof i=="string"&&i.length>0);r.length>0&&(n.group_skus=r)}return{title:e.action.title,type:"inputText",payload:n}}function Ic(e,t){const a=document.createElement("div");a.className="gengage-chat-grouping-cards",a.dataset.gengagePart="ai-grouping-cards";const n=e.props?.entries??[];if(n.length===0)return a;const r=e.props?.sectionTitle,i=typeof r=="string"&&r.trim().length>0?r.trim():t.i18n?.aiBrowseCategoriesTitle;if(i){const s=document.createElement("h3");s.className="gengage-chat-grouping-section-title",s.textContent=i,a.appendChild(s)}const o=document.createElement("div");o.className="gengage-chat-grouping-cards-scroll",o.dataset.gengagePart="ai-grouping-cards-scroll";for(const s of n){const c=document.createElement("div");if(c.className="gengage-chat-grouping-card gds-card",c.dataset.gengagePart="ai-grouping-card",c.classList.add("gds-clickable"),c.addEventListener("click",()=>t.onAction(Lc(s))),s.image&&ye(s.image)){const h=document.createElement("img");h.className="gengage-chat-grouping-card-img",h.dataset.gengagePart="ai-grouping-card-image",h.src=s.image,h.alt=s.name,h.width=64,h.height=64,c.appendChild(h)}const l=document.createElement("div");l.className="gengage-chat-grouping-card-body",l.dataset.gengagePart="ai-grouping-card-body";const g=document.createElement("span");if(g.className="gengage-chat-grouping-card-name",g.dataset.gengagePart="ai-grouping-card-name",g.textContent=s.name,l.appendChild(g),s.labels&&s.labels.length>0){const h=document.createElement("div");h.className="gengage-chat-grouping-card-labels",h.dataset.gengagePart="ai-grouping-card-labels";for(const u of s.labels.slice(0,2)){const f=document.createElement("span");f.className="gengage-chat-grouping-card-label gds-chip",f.textContent=u,h.appendChild(f)}l.appendChild(h)}c.appendChild(l);const d=document.createElement("span");d.className="gengage-chat-grouping-card-arrow",d.textContent="↳",c.insertBefore(d,c.firstChild),o.appendChild(c)}return a.appendChild(o),a}function Nc(e,t){const a=document.createElement("div");a.className="gengage-chat-suggested-search-cards",a.dataset.gengagePart="ai-suggested-search-cards";const n=e.props?.entries??[];if(n.length===0)return a;for(const r of n){const i=document.createElement("div");if(i.className="gengage-chat-suggested-search-card gds-card",i.dataset.gengagePart="ai-suggested-search-card",i.classList.add("gds-clickable"),i.addEventListener("click",()=>t.onAction(r.action)),r.image&&ye(r.image)){const c=document.createElement("img");c.className="gengage-chat-suggested-search-card-img",c.dataset.gengagePart="ai-suggested-search-card-image",c.src=r.image,c.alt=r.shortName,c.width=64,c.height=64,i.appendChild(c)}const o=document.createElement("div");o.className="gengage-chat-suggested-search-card-body",o.dataset.gengagePart="ai-suggested-search-card-body";const s=document.createElement("div");s.className="gengage-chat-suggested-search-card-name",s.dataset.gengagePart="ai-suggested-search-card-name",s.textContent=r.shortName,o.appendChild(s),i.appendChild(o),a.appendChild(i)}return a}function wn(e,t){const a=e.length>=2,n=t.i18n?.compareSelected??"Compare",r=t.comparisonSelectionWarning,i=document.createElement("div");i.className="gengage-chat-comparison-floating-btn",i.dataset.gengagePart="comparison-dock";const o=document.createElement("div");o.className="gengage-chat-comparison-floating-summary";const s=document.createElement("span");s.className="gengage-chat-comparison-floating-count",s.textContent=String(e.length),o.appendChild(s);const c=document.createElement("div");c.className="gengage-chat-comparison-floating-copy";const l=document.createElement("div");if(l.className="gengage-chat-comparison-floating-title",l.textContent=a?`${n} (${e.length})`:t.i18n?.compareMinHint??"Select at least 2 products",c.appendChild(l),r){const d=document.createElement("div");d.className="gengage-chat-comparison-floating-warning",d.setAttribute("role","status"),d.setAttribute("aria-live","polite"),d.textContent=r,c.appendChild(d)}o.appendChild(c),i.appendChild(o);const g=document.createElement("button");if(g.className="gengage-chat-comparison-floating-action gds-btn gds-btn-primary",g.type="button",g.textContent=n,g.disabled=!a,a||g.classList.add("gengage-chat-comparison-floating-action--disabled"),g.addEventListener("click",()=>{a&&t.onAction({title:n,type:"getComparisonTable",payload:{sku_list:[...e]}})}),i.appendChild(g),t.onToggleComparisonSku){const d=document.createElement("button");d.className="gengage-chat-comparison-floating-close gds-btn gds-btn-ghost gds-icon-btn",d.dataset.gengagePart="comparison-dock-close",d.type="button",d.setAttribute("aria-label",t.i18n?.closeAriaLabel??"Close"),d.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>',d.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),t.onToggleComparisonSku?.("")}),i.appendChild(d)}return i}function zc(e){const t=document.createElement("div");t.className="gengage-chat-pros-cons gds-card-soft",t.dataset.gengagePart="pros-cons";const a=e.props?.productName;if(a){const i=document.createElement("h4");i.className="gengage-chat-pros-cons-heading",i.textContent=a,t.appendChild(i)}const n=e.props?.pros,r=e.props?.cons;if(n&&n.length>0){const i=document.createElement("ul");i.className="gengage-chat-pros-cons-list",i.dataset.gengagePart="pros-list";for(const o of n){const s=document.createElement("li");s.className="gengage-chat-pros-cons-item",s.dataset.gengagePart="pros-item";const c=document.createElement("span");c.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--pro",c.textContent="✓",s.appendChild(c);const l=document.createElement("span");l.textContent=o,s.appendChild(l),i.appendChild(s)}t.appendChild(i)}if(r&&r.length>0){const i=document.createElement("ul");i.className="gengage-chat-pros-cons-list",i.dataset.gengagePart="cons-list";for(const o of r){const s=document.createElement("li");s.className="gengage-chat-pros-cons-item",s.dataset.gengagePart="cons-item";const c=document.createElement("span");c.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--con",c.textContent="✗",s.appendChild(c);const l=document.createElement("span");l.textContent=o,s.appendChild(l),i.appendChild(s)}t.appendChild(i)}return t}function Mc(e,t){const a=e.props?.groups??[],n=e.props?.filterTags??[],r=document.createElement("div");if(r.className="gengage-chat-categories",r.dataset.gengagePart="categories-container",a.length===0)return r;const i=document.createElement("div");i.className="gengage-chat-categories-tabs gds-toolbar",i.dataset.gengagePart="categories-tab-bar",i.setAttribute("role","tablist");const o=[],s=[],c=l=>{for(let g=0;g<o.length;g++){const d=g===l;o[g].classList.toggle("gengage-chat-categories-tab--active",d),o[g].classList.toggle("is-active",d),o[g].setAttribute("aria-selected",String(d)),o[g].tabIndex=d?0:-1,s[g].style.display=d?"":"none"}};for(let l=0;l<a.length;l++){const g=a[l],d=`gengage-cat-tab-${l}`,h=`gengage-cat-panel-${l}`,u=document.createElement("button");u.className="gengage-chat-categories-tab gds-tab",u.type="button",u.dataset.gengagePart="categories-tab",u.id=d,u.setAttribute("role","tab"),u.setAttribute("aria-controls",h),u.setAttribute("aria-selected",String(l===0)),u.tabIndex=l===0?0:-1,l===0&&u.classList.add("gengage-chat-categories-tab--active","is-active"),u.textContent=g.groupName,u.addEventListener("click",()=>c(l)),u.addEventListener("keydown",p=>{let m=-1;p.key==="ArrowRight"||p.key==="ArrowDown"?m=(l+1)%a.length:p.key==="ArrowLeft"||p.key==="ArrowUp"?m=(l-1+a.length)%a.length:p.key==="Home"?m=0:p.key==="End"&&(m=a.length-1),m>=0&&(p.preventDefault(),c(m),o[m].focus())}),o.push(u),i.appendChild(u);const f=document.createElement("div");f.className="gengage-chat-categories-grid",f.dataset.gengagePart="categories-panel",f.id=h,f.setAttribute("role","tabpanel"),f.setAttribute("aria-labelledby",d),l!==0&&(f.style.display="none");for(const p of g.products){const m=Bc(p,t);f.appendChild(m)}s.push(f)}r.appendChild(i);for(const l of s)r.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 g of n){const d=document.createElement("button");d.className="gengage-chat-categories-filter-tag gds-chip",d.type="button",d.dataset.gengagePart="categories-filter-tag",d.textContent=g.title,g.action&&d.addEventListener("click",()=>{t.onAction(g.action)}),l.appendChild(d)}r.appendChild(l)}return r}function Bc(e,t){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",e.imageUrl&&ye(e.imageUrl)){const i=document.createElement("img");i.className="gengage-chat-product-card-img",i.src=e.imageUrl,i.alt=e.name,i.loading="lazy",Se(i),a.appendChild(i)}const n=document.createElement("div");n.className="gengage-chat-product-card-body";const r=document.createElement("div");if(r.className="gengage-chat-product-card-name",r.textContent=e.name,n.appendChild(r),e.price){const i=document.createElement("div");i.className="gengage-chat-product-card-price",i.textContent=q(e.price,t.pricing),n.appendChild(i)}return a.appendChild(n),(t.onProductSelect||t.onAction)&&(a.classList.add("gds-clickable"),a.addEventListener("click",()=>{if(e.sku){t.onAction({title:e.name,type:"launchSingleProduct",payload:{sku:e.sku}});return}t.onProductSelect?.(e)})),a}function Rc(e,t){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 r=document.createElement("h4");r.className="gengage-chat-handoff-notice-heading",r.textContent=t.i18n?.handoffHeading??"Transferring to a support agent",a.appendChild(r);const i=e.props?.summary;if(i){const o=document.createElement("p");o.className="gengage-chat-handoff-notice-summary",o.textContent=i,a.appendChild(o)}return a}function Oc(e,t){const a=e.props?.product??e.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",u=>{u.target.closest("a")||t.onProductSelect?.(a)});const r=a.imageUrl;if(r&&pe(r)){const u=document.createElement("div");u.className="gengage-chat-product-summary__image",u.dataset.gengagePart="product-summary-image";const f=document.createElement("img");f.loading="lazy",se(f,"src",r),f.alt=a.name||"Product image",Se(f),u.appendChild(f),n.appendChild(u)}const i=document.createElement("div");i.className="gengage-chat-product-summary__content",i.dataset.gengagePart="product-summary-content";const o=a.brand,s=a.name;if(s){const u=document.createElement("div");u.className="gengage-chat-product-summary__name",u.dataset.gengagePart="product-summary-name";const f=o&&!s.toLowerCase().startsWith(o.toLowerCase())?`${o} ${s}`:s;u.textContent=f,u.title=f,i.appendChild(u)}const c=a.rating,l=a.reviewCount;if(typeof c=="number"&&Number.isFinite(c)&&c>0){const u=document.createElement("div");if(u.className="gengage-chat-product-summary__rating",u.dataset.gengagePart="product-summary-rating",u.appendChild(fa(c)),typeof l=="number"&&Number.isFinite(l)){const f=document.createElement("span");f.className="gengage-chat-product-summary__review-count",f.textContent=` (${l})`,u.appendChild(f)}i.appendChild(u)}const g=a.price,d=a.originalPrice;if(g){const u=Qe(t,a),f=lt(t,a),p=!!(d&&d!==g),m=document.createElement("div");m.className="gengage-chat-product-summary__price",m.dataset.gengagePart="product-summary-price";const b=!!(u&&p),C=xt(t,a);if(b){const v=wt({reasonText:u,salePriceFormatted:q(g,t.pricing),...C!==void 0?{logoUrl:C}:{}});if(p&&f==="inline"){m.classList.add("gengage-chat-product-summary__price--inline"),m.appendChild(v);const w=document.createElement("span");w.className="gengage-chat-product-summary__price-sep",w.setAttribute("aria-hidden","true");const k=document.createElement("span");k.className="gengage-chat-product-summary__price-original",k.textContent=q(d,t.pricing),m.appendChild(w),m.appendChild(k)}else{const w=document.createElement("span");w.className="gengage-chat-product-summary__price-original",w.textContent=q(d,t.pricing),m.appendChild(w),m.appendChild(document.createTextNode(" ")),m.appendChild(v)}i.appendChild(m)}else{if(p&&f==="inline"){m.classList.add("gengage-chat-product-summary__price--inline");const v=document.createElement("span");v.className="gengage-chat-product-summary__price-current",v.textContent=q(g,t.pricing);const w=document.createElement("span");w.className="gengage-chat-product-summary__price-sep",w.setAttribute("aria-hidden","true");const k=document.createElement("span");k.className="gengage-chat-product-summary__price-original",k.textContent=q(d,t.pricing),m.appendChild(v),m.appendChild(w),m.appendChild(k)}else if(p){const v=document.createElement("span");v.className="gengage-chat-product-summary__price-original",v.textContent=q(d,t.pricing),m.appendChild(v),m.appendChild(document.createTextNode(" "));const w=document.createElement("span");w.className="gengage-chat-product-summary__price-current",w.textContent=q(g,t.pricing),m.appendChild(w)}else{const v=document.createElement("span");v.className="gengage-chat-product-summary__price-current",v.textContent=q(g,t.pricing),m.appendChild(v)}if(u){const v=document.createElement("div");v.className="gengage-chat-product-summary__price-stack",v.appendChild(_t(u)),v.appendChild(m),i.appendChild(v)}else i.appendChild(m)}}n.appendChild(i);const h=a.url;if(h&&pe(h)){const u=document.createElement("a");u.className="gengage-chat-product-summary__cta gds-chip gds-chip-active",u.dataset.gengagePart="product-summary-cta",se(u,"href",h),se(u,"target","_blank"),se(u,"rel","noopener noreferrer"),u.textContent=t.i18n?.productCtaLabel??"View",n.appendChild(u)}return n}var Dc={PhotoAnalysisCard:({element:e,context:t})=>Rs(e,t),BeautyPhotoStep:({element:e,context:t})=>gn(e,t)};function Fc(e){if(typeof e!="string")return;const t=e.trim();if(!t)return;if(/^https?:\/\//i.test(t))return t;let a=t.split(/[?#]/)[0];if(a&&(a=a.replace(/^\/+/,""),a.startsWith("remoteConfig/")&&(a=a.slice(13)),!!a))return`https://configs.gengage.ai/assets/${a}`}function $c(e,t,a,n,r){const i=document.createElement("div");i.className="gengage-chat-consulting-style-picker";const o=document.createElement("div");o.className="gengage-chat-consulting-style-picker-title",o.textContent=(a==="watch_expert"?r?.i18n?.watchStylesPreparedTitle??"Prepared {count} style directions for you":r?.i18n?.beautyStylesPreparedTitle??"Prepared {count} beauty styles for you").replace("{count}",String(n.length)),i.appendChild(o);const s=document.createElement("div");s.className="gengage-chat-consulting-style-grid",i.appendChild(s);const c=g=>{t.innerHTML="";const d=Array.isArray(g.product_list)?g.product_list:[],h=Array.isArray(g.recommendation_groups)?g.recommendation_groups:[];if(h.length>0){const u=new Map;for(const m of d){const b=typeof m?.sku=="string"?m.sku:void 0;b&&u.set(b,m)}const f=new Set;for(const m of h){const b=Array.isArray(m.skus)?m.skus.filter(I=>typeof I=="string"&&I.trim().length>0):[],C=b.map(I=>(f.add(I),u.get(I))).filter(I=>!!I);if(C.length===0)continue;const v=document.createElement("section");v.className="gengage-chat-consulting-group";const w=document.createElement("div");w.className="gengage-chat-consulting-group-header";const k=document.createElement("h4");k.className="gengage-chat-consulting-group-label";const A=typeof m.label=="string"&&m.label.trim().length>0?m.label:"Öneri";if(k.textContent=b.length>0?`${A} (${b.length})`:A,w.appendChild(k),typeof m.reason=="string"&&m.reason.trim().length>0){const I=document.createElement("p");I.className="gengage-chat-consulting-group-reason",I.textContent=m.reason,w.appendChild(I)}v.appendChild(w);const B=document.createElement("div");B.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",B.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,C.length))));for(const I of C){const H=kt({type:"ProductCard",props:{product:I}},r??{onAction:()=>{}});B.appendChild(H)}v.appendChild(B),t.appendChild(v)}const p=d.filter(m=>{const b=typeof m?.sku=="string"?m.sku:"";return b.length>0&&!f.has(b)});if(p.length>0){const m=document.createElement("div");m.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",m.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,p.length))));for(const b of p){const C=kt({type:"ProductCard",props:{product:b}},r??{onAction:()=>{}});m.appendChild(C)}t.appendChild(m)}return}for(const u of d){const f=kt({type:"ProductCard",props:{product:u}},r??{onAction:()=>{}});t.appendChild(f)}};let l=0;n.forEach((g,d)=>{const h=document.createElement("button");h.type="button",h.className="gengage-chat-consulting-style-btn gds-card",d===0&&h.classList.add("gengage-chat-consulting-style-btn--active"),h.setAttribute("aria-label",g.style_label??`Style ${d+1}`);const u=document.createElement("div");u.className="gengage-chat-consulting-style-media";const f=Fc(g.image_url);if(f&&pe(f)){const m=document.createElement("img");m.className="gengage-chat-consulting-style-image",se(m,"src",f),m.alt=g.style_label??`Style ${d+1}`,m.loading="lazy",Se(m),u.appendChild(m)}const p=document.createElement("span");p.className="gengage-chat-consulting-style-caption",p.textContent=g.style_label??`Style ${d+1}`,u.appendChild(p),h.appendChild(u),h.addEventListener("click",()=>{l!==d&&(l=d,s.querySelectorAll(".gengage-chat-consulting-style-btn").forEach((m,b)=>m.classList.toggle("gengage-chat-consulting-style-btn--active",b===d)),c(g))}),s.appendChild(h)}),e.appendChild(i),c(n[0]??{})}function Uc(e){const t=typeof e.props?.source=="string"?e.props.source:void 0,a=(Array.isArray(e.props?.styleVariations)?e.props.styleVariations:[]).filter(n=>Array.isArray(n.product_list)&&n.product_list.length>0);return{isConsulting:tn(t)&&a.length>0,source:t,styleVariations:a}}function Hc(e,t,a,n){$c(e,t,a.source,a.styleVariations,n)}function ba(){return window.innerWidth<768}var kn={ActionButtons:({element:e,context:t})=>Zc(e,t),ActionButton:({element:e,context:t})=>Vc(e,t),ProductCard:({element:e,context:t})=>kt(e,t),ProductDetailsPanel:({element:e,context:t})=>hl(e,t),ProductGrid:({element:e,spec:t,renderElement:a,context:n})=>xl(e,t,a,n),ReviewHighlights:({element:e,context:t})=>_c(e,{emptyReviewsMessage:t.i18n?.emptyReviewsMessage,reviewFilterPositive:t.i18n?.reviewFilterPositive,reviewFilterNegative:t.i18n?.reviewFilterNegative,reviewCustomersMentionSingular:t.i18n?.reviewCustomersMentionSingular,reviewCustomersMentionPlural:t.i18n?.reviewCustomersMentionPlural,reviewSubjectsHeading:t.i18n?.reviewSubjectsHeading}),ComparisonTable:({element:e,context:t})=>wl(e,t),AITopPicks:({element:e,context:t})=>Tc(e,t),GroundingReviewCard:({element:e,context:t})=>Ac(e,t),AIGroupingCards:({element:e,context:t})=>Ic(e,t),AISuggestedSearchCards:({element:e,context:t})=>Nc(e,t),ProsAndCons:({element:e})=>zc(e),CategoriesContainer:({element:e,context:t})=>Mc(e,t),HandoffNotice:({element:e,context:t})=>Rc(e,t),ProductSummaryCard:({element:e,context:t})=>Oc(e,t),Divider:({element:e})=>kl(e),...Dc},Cn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function qc(){return{...kn}}function jc(e,t,a=kn,n=Cn){return Yt({spec:e,context:t,registry:a,containerClassName:"gengage-chat-uispec",unknownRenderer:n})}function Zc(e,t){const a=document.createElement("div");a.className="gengage-chat-action-buttons";const n=e.props?.buttons;if(n)for(const r of n){const i=document.createElement("button");i.className="gengage-chat-action-btn",i.textContent=r.label,i.addEventListener("click",()=>t.onAction(r.action)),a.appendChild(i)}return a}function Vc(e,t){const a=document.createElement("button");a.className="gengage-chat-action-btn";const n=e.props?.label;typeof n=="string"&&(a.textContent=n);const r=e.props?.action;return r&&a.addEventListener("click",()=>t.onAction(r)),a}function Sn(e,t,a,n,r){e.replaceChildren();const i=lt(t,a),o=!!(r&&n&&r!==n),s=Qe(t,a),c=!!(s&&o),l=xt(t,a);if(!n||parseFloat(n)<=0)return;if(c){const d=wt({reasonText:s,salePriceFormatted:q(n,t.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&i==="inline"){e.classList.add("gengage-chat-product-card-price-block--inline");const h=document.createElement("div");h.className="gengage-chat-product-card-price-row",h.appendChild(d);const u=document.createElement("span");u.className="gengage-chat-product-card-price-sep",u.setAttribute("aria-hidden","true");const f=document.createElement("span");f.className="gengage-chat-product-card-original-price",f.textContent=q(r,t.pricing),h.appendChild(u),h.appendChild(f),e.appendChild(h);return}if(e.classList.remove("gengage-chat-product-card-price-block--inline"),e.appendChild(d),o){e.appendChild(document.createTextNode(" "));const h=document.createElement("span");h.className="gengage-chat-product-card-original-price",h.textContent=q(r,t.pricing),e.appendChild(h)}return}if(o&&i==="inline"){e.classList.add("gengage-chat-product-card-price-block--inline");const d=document.createElement("div");d.className="gengage-chat-product-card-price-row";const h=document.createElement("span");h.className="gengage-chat-product-card-current-price",h.textContent=q(n,t.pricing);const u=document.createElement("span");u.className="gengage-chat-product-card-price-sep",u.setAttribute("aria-hidden","true");const f=document.createElement("span");f.className="gengage-chat-product-card-original-price",f.textContent=q(r,t.pricing),d.appendChild(h),d.appendChild(u),d.appendChild(f),e.appendChild(d);return}e.classList.remove("gengage-chat-product-card-price-block--inline");const g=document.createElement("span");if(g.className="gengage-chat-product-card-current-price",g.textContent=q(n,t.pricing),e.appendChild(g),o){e.appendChild(document.createTextNode(" "));const d=document.createElement("span");d.className="gengage-chat-product-card-original-price",d.textContent=q(r,t.pricing),e.appendChild(d)}}function En(e,t,a,n,r,i,o){e.classList.remove("gengage-chat-product-details-price--inline"),e.replaceChildren(),e.className="gengage-chat-product-details-price";const s=Qe(t,a),c=!!(s&&o),l=xt(t,a);if(c){const d=wt({reasonText:s,salePriceFormatted:q(n,t.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&i==="inline"){e.classList.add("gengage-chat-product-details-price--inline"),e.appendChild(d);const h=document.createElement("span");h.className="gengage-chat-product-details-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=q(r,t.pricing),e.appendChild(h),e.appendChild(u)}else{if(o){const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=q(r,t.pricing),e.appendChild(h),e.appendChild(document.createTextNode(" "))}e.appendChild(d)}}else if(o&&i==="inline"){e.classList.add("gengage-chat-product-details-price--inline");const d=document.createElement("span");d.className="gengage-chat-product-details-current-price",d.textContent=q(n,t.pricing);const h=document.createElement("span");h.className="gengage-chat-product-details-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=q(r,t.pricing),e.appendChild(d),e.appendChild(h),e.appendChild(u)}else{if(o){const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=q(r,t.pricing),e.appendChild(h),e.appendChild(document.createTextNode(" "))}const d=document.createElement("span");d.className="gengage-chat-product-details-current-price",d.textContent=q(n,t.pricing),e.appendChild(d)}const g=Ct(a,"discountPercent","price_discount_rate");if(typeof g=="number"&&g>0){const d=document.createElement("span");d.className="gengage-chat-product-details-discount-badge",d.textContent=`%${ma(g)}`,e.appendChild(d)}}function kt(e,t){const a=document.createElement("div");a.className="gengage-chat-product-card gds-card gds-product-card gds-card-interactive";const n=e.props?.product??e.props;if(!n)return a;const r=n.sku;r&&(a.dataset.sku=r);const i=e.props?.action;(t.onProductSelect||i)&&(a.classList.add("gds-clickable"),a.addEventListener("click",N=>{if(!a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")&&!N.target.closest(".gengage-chat-product-card-atc")&&!N.target.closest(".gengage-chat-product-card-cta")){if(i){t.onAction(i);return}t.onProductSelect?.(n)}}));const o=n.imageUrl;if(o&&pe(o)){const N=document.createElement("div");N.className="gengage-chat-product-card-img-wrapper";const _=document.createElement("img");_.className="gengage-chat-product-card-img",_.loading="lazy",se(_,"src",o);const y=n.name;y&&(_.alt=y),Se(_),N.appendChild(_);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=`%${ma(x)}`,N.appendChild(P)}const E=document.createElement("div");E.className="gengage-chat-product-card-img-actions";const L=n.sku;if(L&&t.onFavoriteToggle){const P=document.createElement("button");P.className="gengage-chat-favorite-btn",P.type="button",P.dataset.gengageFavoriteSku=L,P.setAttribute("aria-label",t.i18n?.addToFavoritesLabel??"Add to favorites");const $=t.favoritedSkus?.has(L)??!1;$&&P.classList.add("gengage-chat-favorite-btn--active"),P.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${$?"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",F=>{F.stopPropagation(),P.classList.toggle("gengage-chat-favorite-btn--active");const V=P.querySelector("svg");V&&V.setAttribute("fill",P.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),t.onFavoriteToggle(L,n)}),E.appendChild(P)}const z=n.sku,R=t.i18n?.findSimilarLabel??"Find Similar";if(z){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 $=document.createElement("span");$.className="gengage-chat-find-similar-pill-text",$.textContent=R,P.appendChild($),P.addEventListener("click",F=>{F.stopPropagation(),t.onAction({title:R,type:"findSimilar",payload:{sku:z,...o?{image_url:o}:{}}})}),E.appendChild(P)}E.childElementCount>0&&N.appendChild(E),a.appendChild(N)}const s=document.createElement("div");s.className="gengage-chat-product-card-body";const c=n.brand;if(c){const N=document.createElement("div");N.className="gengage-chat-product-card-brand",N.textContent=c,s.appendChild(N)}const l=n.rating,g=n.reviewCount,d=n.price,h=n.originalPrice,u=n.price_async,f=Qe(t,n),p=lt(t,n),m=!!(f||h&&d&&h!==d&&parseFloat(d)>0&&p==="inline"),b=typeof l=="number"&&Number.isFinite(l)&&l>0,C=document.createElement("div");C.className="gengage-chat-product-card-meta-row";const v=document.createElement("div");v.className="gengage-chat-product-card-price gengage-chat-product-card-price-block";const w=m?(()=>{const N=document.createElement("div");return N.className="gengage-chat-product-card-price-stack",f&&N.appendChild(_t(f)),N.appendChild(v),N})():v;if(u===!0){const N=document.createElement("span");N.className="gengage-chat-price-skeleton",v.appendChild(N),setTimeout(()=>{N.parentElement&&(d&&parseFloat(d)>0?Sn(v,t,n,d,n.originalPrice):N.remove())},300)}else d&&parseFloat(d)>0&&Sn(v,t,n,d,h);if((v.childElementCount>0||u===!0)&&C.appendChild(w),b){const N=document.createElement("div");N.className="gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";const _=ua(l),y=[`${_.toFixed(1)}`,"out of 5 stars"];typeof g=="number"&&Number.isFinite(g)&&y.push(`(${g} reviews)`),N.setAttribute("aria-label",y.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=_.toFixed(1),N.appendChild(x),N.appendChild(E),C.appendChild(N)}C.childElementCount===0&&(C.classList.add("gengage-chat-product-card-meta-row--empty"),C.setAttribute("aria-hidden","true")),s.appendChild(C);const k=n.name;if(k){const N=document.createElement("div");N.className="gengage-chat-product-card-name",N.textContent=k,N.title=k,s.appendChild(N)}const A=n.inStock;if(typeof A=="boolean"){const N=document.createElement("div");N.className=`gengage-chat-product-card-stock ${A?"is-in-stock":"is-out-of-stock"}`,N.textContent=A?t.i18n?.inStockLabel??"In Stock":t.i18n?.outOfStockLabel??"Out of Stock",s.appendChild(N)}a.appendChild(s);const B=n.url,I=n.sku,H=n.cartCode,Q=!!(H&&I&&A!==!1),K=t.i18n?.productCtaLabel??"View";if(Q){const N=document.createElement("div");N.className="gengage-chat-product-card-buy-footer";const _=document.createElement("button");_.type="button",_.className="gengage-chat-product-card-buy-trigger",_.textContent=K,_.addEventListener("click",y=>{y.stopPropagation(),t.onAction({title:t.i18n?.addToCartButton??K,type:"addToCart",payload:{sku:I,cartCode:H,quantity:1}})}),N.appendChild(_),a.appendChild(N)}else if(i){const N=document.createElement("button");N.className="gengage-chat-product-card-cta",N.type="button",N.textContent=i.type==="launchSingleProduct"?K:i.title||K,N.addEventListener("click",_=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){_.stopPropagation();return}t.onAction(i)}),a.appendChild(N)}else if(B&&pe(B)){const N=document.createElement("a");N.className="gengage-chat-product-card-cta",se(N,"href",B),se(N,"target","_blank"),se(N,"rel","noopener noreferrer"),N.textContent=K,N.addEventListener("click",_=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){_.preventDefault(),_.stopPropagation();return}t.onProductClick&&I&&(_.preventDefault(),t.onProductClick({sku:I,url:B}))}),a.appendChild(N)}if(t.comparisonSelectMode&&I&&t.onToggleComparisonSku){const N=document.createElement("div");N.className="gengage-chat-comparison-select-wrapper";const _=t.comparisonSelectedSkus?.includes(I)??!1;_&&N.classList.add("gengage-chat-comparison-select-wrapper--selected");const y=n.name??I,x=t.i18n?.comparisonSelectCardHint??"Tap anywhere on the card to add or remove it from comparison.";N.setAttribute("role","group"),N.setAttribute("aria-label",`${String(y)}. ${x}`);const E=document.createElement("button");E.type="button",E.className="gengage-chat-comparison-checkbox",E.dataset.selected=_?"true":"false",E.setAttribute("aria-pressed",_?"true":"false");const L=document.createElement("span");L.className="gengage-chat-comparison-checkbox-icon",L.innerHTML=_?'<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 z=document.createElement("span");z.className="gengage-chat-comparison-checkbox-label",z.textContent=_?t.i18n?.comparisonSelectedLabel??"Selected":t.i18n?.comparisonSelectLabel??"Select to compare",E.appendChild(L),E.appendChild(z),E.addEventListener("click",P=>{P.stopPropagation(),t.onToggleComparisonSku?.(I)});const R=document.createElement("div");return R.className="gengage-chat-comparison-card-hint",R.setAttribute("aria-hidden","true"),R.textContent=x,N.addEventListener("click",P=>{P.target.closest(".gengage-chat-comparison-checkbox")||(P.stopPropagation(),t.onToggleComparisonSku?.(I))}),N.appendChild(E),N.appendChild(R),N.appendChild(a),N}return a}var Tn=new Set(["color","colour","renk","renk kodu","color code"]),Wc=new Set(["size","beden","boyut"]),Gc=new Set(["finish","bitiş","bitişi"]),Kc=["variants","variantOptions","variant_options","productVariants","product_variants","options"],Yc=new Set(["H2","H3","H4","P","BR","UL","OL","LI","STRONG","B","EM","I"]),Jc=new Set(["SCRIPT","STYLE","NOSCRIPT","IFRAME","OBJECT","EMBED"]);function me(e,...t){for(const a of t){const n=e[a];if(typeof n=="string"){const r=n.trim();if(r.length>0)return r}}}function Ct(e,...t){for(const a of t){const n=e[a];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){const r=Number(n.replace(",","."));if(Number.isFinite(r))return r}}}function St(e,...t){for(const a of t){const n=e[a];if(typeof n=="boolean")return n}}function Qc(e,...t){for(const a of t){const n=e[a];if(n&&typeof n=="object"&&!Array.isArray(n))return n}}function Xc(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}function el(e){const t=[...Xc(e.images),me(e,"imageUrl","image_url","image")].filter(a=>!!a&&pe(a));return Array.from(new Set(t))}function tl(e){return typeof DOMParser<"u"?(new DOMParser().parseFromString(e,"text/html").body.textContent??"").replace(/\s+/g," ").trim():e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim()}function al(e){const t=me(e,"description_html","descriptionHtml");if(t){const n=tl(t);if(n)return{text:n,html:t}}const a=me(e,"description");return a?{text:a}:void 0}function Et(e){return Array.isArray(e)?e.map(t=>{if(!t||typeof t!="object")return null;const a=t,n=me(a,"key","name","label","title"),r=a.value,i=typeof r=="string"||typeof r=="number"||typeof r=="boolean"?String(r).trim():void 0;return!n||!i?null:{key:n,value:i}}).filter(t=>t!==null):e&&typeof e=="object"?Object.entries(e).map(([t,a])=>{const n=typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a).trim():void 0;return!t||!n?null:{key:t,value:n}}).filter(t=>t!==null):[]}function Pn(e){const t=Et(e.features);return t.length>0?t:Et(e.specifications)}function nl(e){const t=e.specifications,a=Et(t);if(a.length>0)return Array.isArray(t)?a:Object.fromEntries(a.map(r=>[r.key,r.value]));const n=Et(e.features);return n.length>0?n:void 0}function ze(e,...t){return me(e,...t)}function An(e,...t){return Ct(e,...t)}function Ln(e){return ze(e,"value","option_value","attribute_value","label","title","name","variant_name","sku")}function In(e){const t=ze(e,"type","attribute","option_name","attribute_name");return t||(ze(e,"value")?ze(e,"name","variant_name"):void 0)}function rl(e){const t=In(e)?.toLowerCase();return!!(me(e,"color","colour","color_hex","hex","swatch","swatchColor")||t&&Tn.has(t))}function Nn(e){if(!e)return;const t=e.trim();if(!(!t||t.includes(";"))&&(typeof CSS<"u"&&CSS.supports?.("color",t)||/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t)))return t}function il(e){const t=Nn(ze(e,"swatchColor","swatch","color_hex","hex","color","colour"));if(t)return t;if(rl(e))return Nn(Ln(e))}function ol(e){return ze(e,"image","imageUrl","image_url","swatchImage","swatch_image")}function sl(e){return An(e,"price_discounted","priceDiscounted")??ze(e,"price_discounted","priceDiscounted")??An(e,"price")??ze(e,"price")}function cl(e){const t=e.trim().toLowerCase();return Tn.has(t)||Wc.has(t)||Gc.has(t)}function ll(e){const t=e.trim().toLowerCase();return t==="renk kodu"?"Renk":t==="color code"?"Color":e.trim()}function dl(e){for(const t of Kc){const a=e[t];if(!Array.isArray(a))continue;const n=a.filter(r=>!!r&&typeof r=="object"&&!Array.isArray(r));if(n.length>0)return n}}function gl(e){const t=dl(e);if(t)return t;const a=me(e,"sku"),n=St(e,"inStock","in_stock"),r=[],i=new Set,o=(c,l)=>{if(!cl(c)||typeof l!="string"&&typeof l!="number"&&typeof l!="boolean")return;const g=String(l).trim();if(!g)return;const d=ll(c),h=`${d.toLowerCase()}:${g.toLowerCase()}`;i.has(h)||(i.add(h),r.push({name:d,value:g,sku:a,inStock:n}))},s=Qc(e,"facetHits","facet_hits");if(s)for(const[c,l]of Object.entries(s))o(c,l);for(const c of Pn(e))o(c.key,c.value);return r}function pl(e,t){const a=Array.from(new Set(e.map(In).filter(n=>!!n)));return a.length===1?`${e.length} ${a[0]}`:t.i18n?.variantsLabel??"Variants"}function hl(e,t){const a=document.createElement("article");a.className="gengage-chat-product-details-panel";const n=e.props?.product??e.props;if(!n)return a;const r=me(n,"name"),i=me(n,"brand"),o=me(n,"sku"),s=me(n,"cartCode","cart_code"),c=me(n,"price"),l=me(n,"originalPrice","price_original"),g=St(n,"price_async"),d=Qe(t,n),h=lt(t,n),u=!!(l&&c&&l!==c),f=St(n,"inStock","in_stock"),p=Ct(n,"reviewCount","review_count"),m=Ct(n,"rating"),b=el(n),C=Pn(n).slice(0,4);if(b.length>1){const y=document.createElement("div");y.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",se(x,"src",b[0]),x.alt=r??"Product image",Se(x),y.appendChild(x);const E=document.createElement("div");E.className="gengage-chat-product-gallery-thumbs";const L=6;let z=null,R=0;const P=t.i18n,$=P?.galleryPrevAriaLabel??"Previous image",F=P?.galleryNextAriaLabel??"Next image",V=M=>M==="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>',J=document.createElement("button");J.type="button",J.className="gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn",J.setAttribute("aria-label",$),J.innerHTML=V("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",F),X.innerHTML=V("next");const oe=()=>{J.disabled=R<=0,X.disabled=R>=b.length-1},j=M=>{if(M<0||M>=b.length||M===R)return;const G=b[M];if(!G)return;se(x,"src",G);const O=E.querySelectorAll(".gengage-chat-product-gallery-thumb");z&&z.classList.remove("gengage-chat-product-gallery-thumb--active"),M<L&&O[M]?(O[M].classList.add("gengage-chat-product-gallery-thumb--active"),z=O[M]):z=null,R=M,oe()};for(let M=0;M<b.length;M++){const G=b[M];if(M>=L)break;const O=document.createElement("img");O.className="gengage-chat-product-gallery-thumb",M===0&&(O.classList.add("gengage-chat-product-gallery-thumb--active"),z=O),se(O,"src",G),O.alt=`${r??"Product"} ${M+1}`,O.width=48,O.height=48,Se(O),O.addEventListener("click",()=>{j(M)}),E.appendChild(O)}if(b.length>L){const M=document.createElement("span");M.className="gengage-chat-product-gallery-thumb-more",M.textContent=`+${b.length-L}`,E.appendChild(M)}J.addEventListener("click",M=>{M.stopPropagation(),j(R-1)}),X.addEventListener("click",M=>{M.stopPropagation(),j(R+1)}),oe();let be=0;const U=50;x.addEventListener("touchstart",M=>{be=M.changedTouches[0].clientX},{passive:!0}),x.addEventListener("touchend",M=>{const G=M.changedTouches[0].clientX,O=be-G;Math.abs(O)<U||j(O>0?Math.min(R+1,b.length-1):Math.max(R-1,0))}),y.appendChild(J),y.appendChild(X),y.appendChild(E),a.appendChild(y)}else if(b.length===1){const y=document.createElement("div");y.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",se(x,"src",b[0]),Se(x),x.alt=r??"Product image",y.appendChild(x),a.appendChild(y)}const v=document.createElement("div");if(v.className="gengage-chat-product-details-content",i&&(!r||!r.toLowerCase().startsWith(i.toLowerCase()))){const y=document.createElement("div");y.className="gengage-chat-product-details-brand",y.textContent=i,v.appendChild(y)}if(r){const y=document.createElement("h3");y.className="gengage-chat-product-details-title",y.textContent=r,y.title=r,v.appendChild(y)}if(typeof m=="number"&&Number.isFinite(m)&&m>0){const y=document.createElement(o?"button":"div");y.className="gengage-chat-product-details-rating",o&&(y.type="button",y.classList.add("gengage-chat-product-details-rating--clickable"),y.setAttribute("aria-label",t.i18n?.groundingReviewCta??"Read Reviews"),y.addEventListener("click",()=>{t.onAction({title:t.i18n?.customerReviewsTitle??"Customer Reviews",type:"reviewSummary",payload:{sku:o}})})),y.appendChild(fa(m));const x=document.createElement("span");if(x.className="gengage-chat-product-details-rating-value",x.textContent=ua(m).toFixed(1),y.appendChild(x),typeof p=="number"&&Number.isFinite(p)){const E=document.createElement("span");E.className="gengage-chat-product-details-review-count",E.textContent=` (${p})`,y.appendChild(E)}v.appendChild(y)}{let y=v;if(d){const E=document.createElement("div");E.className="gengage-chat-product-details-price-stack",E.appendChild(_t(d)),v.appendChild(E),y=E}const x=document.createElement("div");if(x.className="gengage-chat-product-details-price",g===!0){const E=document.createElement("span");E.className="gengage-chat-price-skeleton",x.appendChild(E),y.appendChild(x),setTimeout(()=>{if(E.parentElement)if(c&&parseFloat(c)>0)En(x,t,n,c,l,h,u);else{const L=x.parentElement;x.remove(),L?.classList.contains("gengage-chat-product-details-price-stack")&&L.remove()}},300)}else if(c&&parseFloat(c)>0)En(x,t,n,c,l,h,u),y.appendChild(x);else if(d){const E=y;E.classList.contains("gengage-chat-product-details-price-stack")&&E.remove()}}if(typeof f=="boolean"){const y=document.createElement("div");y.className=`gengage-chat-product-details-stock ${f?"is-in-stock":"is-out-of-stock"}`,y.textContent=f?t.i18n?.inStockLabel??"In Stock":t.i18n?.outOfStockLabel??"Out of Stock",v.appendChild(y)}const w=n.promotions;if(w&&w.length>0){const y=document.createElement("div");y.className="gengage-chat-product-details-promos";for(const x of w.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,y.appendChild(E)}y.childElementCount>0&&v.appendChild(y)}if(C.length>0){const y=document.createElement("dl");y.className="gengage-chat-product-details-facts";for(const x of C){const E=document.createElement("div");E.className="gengage-chat-product-details-fact";const L=document.createElement("dt");L.textContent=x.key;const z=document.createElement("dd");z.textContent=x.value,E.appendChild(L),E.appendChild(z),y.appendChild(E)}v.appendChild(y)}const k=gl(n);if(k.length>0){const y=document.createElement("div");y.className="gengage-chat-product-variants";const x=document.createElement("div");x.className="gengage-chat-product-variants-label",x.textContent=pl(k,t),y.appendChild(x);const E=document.createElement("div");E.className="gengage-chat-product-variants-list";for(const L of k){const z=Ln(L),R=ze(L,"sku");if(!z&&!R)continue;const P=document.createElement("button");P.className="gengage-chat-product-variant-btn gds-chip",P.type="button";const $=z??R??"";P.title=$;const F=St(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"),F===!1&&(P.classList.add("gengage-chat-product-variant-btn--out"),P.disabled=!0);const V=ol(L),J=il(L);if(V&&pe(V)){const j=document.createElement("img");j.className="gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image",se(j,"src",V),j.alt="",j.setAttribute("aria-hidden","true"),Se(j),P.appendChild(j)}else if(J){const j=document.createElement("span");j.className="gengage-chat-product-variant-swatch",j.setAttribute("aria-hidden","true"),j.style.backgroundColor=J,P.appendChild(j)}const X=document.createElement("span");X.className="gengage-chat-product-variant-label",X.textContent=$,P.appendChild(X);const oe=sl(L);if(oe&&String(oe)!==String(c)){const j=document.createElement("span");j.className="gengage-chat-product-variant-price",j.textContent=q(String(oe),t.pricing),P.appendChild(j)}if(R&&R!==o){const j=r??"",be=(typeof L.value=="string"?L.value.trim():"")||(typeof L.name=="string"?L.name.trim():"")||(typeof L.variant_name=="string"?L.variant_name.trim():"")||"",U=j.length>0?be.length>0&&be!==j?`${j} (${be})`:j:$;P.addEventListener("click",()=>{t.onAction({title:U,type:"launchVariant",payload:{sku:R}})})}E.appendChild(P)}E.childElementCount>0&&(y.appendChild(E),v.appendChild(y))}const A=document.createElement("div");A.className="gengage-chat-product-details-actions";const B=e.props?.action;if(B){const y=document.createElement("button");y.className="gengage-chat-product-details-cta gds-btn gds-btn-primary",y.type="button",y.textContent=B.title||t.i18n?.productCtaLabel||"View",y.addEventListener("click",()=>t.onAction(B)),A.appendChild(y)}if(s&&o&&f!==!1){const y=document.createElement("button");y.className="gengage-chat-product-details-atc gds-btn gds-btn-primary",y.type="button",y.textContent=t.i18n?.addToCartButton??"Add to Cart",y.addEventListener("click",()=>{t.onAction({title:t.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:o,cartCode:s,quantity:1}})}),A.appendChild(y)}const I=me(n,"url");if(!B&&I&&pe(I)){const y=document.createElement("a");y.className="gengage-chat-product-details-cta gds-btn gds-btn-secondary",se(y,"href",I),se(y,"target","_blank"),se(y,"rel","noopener noreferrer"),y.textContent=t.i18n?.viewOnSiteLabel??t.i18n?.productCtaLabel??"View on Site",y.addEventListener("click",x=>{t.onProductClick&&o&&(x.preventDefault(),t.onProductClick({sku:o,url:I}))}),A.appendChild(y)}const H=I;if(H&&pe(H)){let z=function(P,$){const F=document.createElementNS(E,"circle");F.setAttribute("cx",P),F.setAttribute("cy",$),F.setAttribute("r","3"),L.appendChild(F)},R=function(P,$,F,V){const J=document.createElementNS(E,"line");J.setAttribute("x1",P),J.setAttribute("y1",$),J.setAttribute("x2",F),J.setAttribute("y2",V),L.appendChild(J)};var N=z,_=R;const y=document.createElement("button");y.className="gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn",y.type="button";const x=t.i18n?.shareButton??"Share";y.title=x,y.setAttribute("aria-label",x);const E="http://www.w3.org/2000/svg",L=document.createElementNS(E,"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"),z("18","5"),z("6","12"),z("18","19"),R("8.59","13.51","15.42","17.49"),R("15.41","6.51","8.59","10.49"),y.appendChild(L),y.addEventListener("click",async()=>{try{navigator.share?await navigator.share({title:r??"",url:H}):navigator.clipboard&&(await navigator.clipboard.writeText(H),y.classList.add("gengage-chat-product-details-share--copied"),setTimeout(()=>y.classList.remove("gengage-chat-product-details-share--copied"),1500))}catch{}}),A.appendChild(y)}A.childElementCount>0&&v.appendChild(A),a.appendChild(v);const Q=al(n),K=nl(n);return(Q||K)&&a.appendChild(fl(Q,K,t)),a}function va(e){if(e.nodeType===Node.TEXT_NODE)return document.createTextNode(e.textContent??"");if(e.nodeType!==Node.ELEMENT_NODE)return null;const t=e,a=t.tagName.toUpperCase();if(Jc.has(a))return null;if(!Yc.has(a)){const r=document.createDocumentFragment();for(const i of Array.from(t.childNodes)){const o=va(i);o&&r.appendChild(o)}return r}const n=document.createElement(a.toLowerCase());for(const r of Array.from(t.childNodes)){const i=va(r);i&&n.appendChild(i)}return n}function ul(e,t){const a=t.split(/\n{2,}/).map(n=>n.replace(/\s+/g," ").trim()).filter(Boolean);if(a.length!==0)for(const n of a){const r=document.createElement("p");r.textContent=n,e.appendChild(r)}}function ml(e,t){if(e.classList.add("gengage-chat-product-description"),t.html&&typeof DOMParser<"u"){const a=new DOMParser().parseFromString(t.html,"text/html"),n=Array.from(a.body.childNodes).map(r=>va(r)).filter(r=>!!r&&(r.nodeType===Node.ELEMENT_NODE||!!r.textContent?.trim()));if(n.length>0){for(const r of n)e.appendChild(r);return}}ul(e,t.text)}function fl(e,t,a){const n=document.createElement("div");n.className="gengage-chat-product-detail-tabs";const r=document.createElement("div");r.className="gengage-chat-product-detail-tab-bar gds-toolbar";const i=[];if(e){const s=document.createElement("button");s.className="gengage-chat-product-detail-tab gds-tab gengage-chat-product-detail-tab--active is-active",s.type="button",s.setAttribute("aria-selected","true"),s.textContent=a.i18n?.productInfoTab??"Product Info",r.appendChild(s);const c=document.createElement("div");c.className="gengage-chat-product-detail-tab-panel",ml(c,e),i.push(c)}if(t){const s=document.createElement("button");s.className=`gengage-chat-product-detail-tab gds-tab${e?"":" gengage-chat-product-detail-tab--active is-active"}`,s.type="button",s.setAttribute("aria-selected",e?"false":"true"),s.textContent=a.i18n?.specificationsTab??"Specifications",r.appendChild(s);const c=document.createElement("div");c.className="gengage-chat-product-detail-tab-panel",e&&(c.style.display="none");const l=document.createElement("table");l.className="gengage-chat-product-specs-table";const g=Array.isArray(t)?t:Object.entries(t).map(([d,h])=>({key:d,value:h}));for(const d of g){const h=document.createElement("tr"),u=document.createElement("td");u.className="gengage-chat-product-specs-key",u.textContent=d.key;const f=document.createElement("td");f.className="gengage-chat-product-specs-value",f.textContent=d.value,h.appendChild(u),h.appendChild(f),l.appendChild(h)}c.appendChild(l),i.push(c)}const o=r.querySelectorAll(".gengage-chat-product-detail-tab");o.forEach((s,c)=>{s.addEventListener("click",()=>{o.forEach(l=>{l.classList.remove("gengage-chat-product-detail-tab--active","is-active"),l.setAttribute("aria-selected","false")}),s.classList.add("gengage-chat-product-detail-tab--active","is-active"),s.setAttribute("aria-selected","true"),i.forEach((l,g)=>{l.style.display=g===c?"":"none"})})}),n.appendChild(r);for(const s of i)n.appendChild(s);return n}function zn(e){const t='width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"';switch(e){case"related":return`<svg ${t} aria-hidden="true"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg>`;case"priceAsc":return`<svg ${t} 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 ${t} 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 bl(){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 vl(){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 yl(){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 Mn(e,t){return e.type===t.type&&e.direction===t.direction}function Bn(e,t,a){if(!a||a.type==="related")return e;const n=e.map(r=>{const i=t.elements[r]?.props?.product,o=i?Number(i.price):NaN;return{id:r,price:Number.isFinite(o)?o:1/0}});return n.sort((r,i)=>r.price===1/0&&i.price===1/0?0:r.price===1/0?1:i.price===1/0?-1:a.direction==="desc"?i.price-r.price:r.price-i.price),n.map(r=>r.id)}function _l(e,t,a,n){const r=Bn(t,a,n),i=new Map;for(const o of Array.from(e.children)){const s=o.dataset.elementId;s&&i.set(s,o)}for(const o of r){const s=i.get(o);s&&e.appendChild(s)}}function xl(e,t,a,n){const r=document.createElement("div");r.className="gengage-chat-product-grid-wrapper";const i=Uc(e),o=i.isConsulting,s=e.children??[],c=document.createElement("div");c.className="gengage-chat-product-grid";const l=n?.panelProductListHeading;if(!o&&s.length>1&&n?.onSortChange){const h=document.createElement("div");h.className="gengage-chat-product-sort-toolbar",h.setAttribute("role","toolbar"),h.setAttribute("aria-label",n.i18n?.sortToolbarAriaLabel??"Sort products");let u=n.productSort??{type:"related"};const f=[{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"}],p=document.createElement("div");p.className="gengage-chat-product-sort-dropdown";const m=document.createElement("button");m.type="button",m.className="gengage-chat-product-sort-trigger gds-btn gds-btn-ghost",m.setAttribute("aria-haspopup","listbox"),m.setAttribute("aria-expanded","false");const b=n.i18n?.sortToolbarAriaLabel??"Sort products",C=document.createElement("span");C.className="gengage-chat-product-sort-trigger-icon";const v=document.createElement("span");v.className="gengage-chat-product-sort-trigger-label";const w=_=>{const y=f.find(x=>Mn(x.sortState,_))??f[0];v.textContent=y.label,C.innerHTML=zn(y.icon),p.dataset.sortIcon=y.icon,m.setAttribute("aria-label",`${b}: ${y.label}`),m.title=y.label};w(u);const k=document.createElement("span");k.className="gengage-chat-product-sort-trigger-chevron",k.innerHTML=bl(),m.appendChild(C),m.appendChild(v),m.appendChild(k);const A=document.createElement("div");A.className="gengage-chat-product-sort-menu gds-menu",A.hidden=!0,A.setAttribute("role","listbox"),A.setAttribute("aria-label",b);const B=h.ownerDocument;let I=null;const H=()=>{A.hidden=!0,p.classList.remove("gengage-chat-product-sort-dropdown--open"),m.setAttribute("aria-expanded","false"),I?.abort(),I=null},Q=_=>{p.classList.contains("gengage-chat-product-sort-dropdown--open")&&(p.contains(_.target)||H())},K=_=>{_.key==="Escape"&&(_.preventDefault(),H())},N=()=>{A.hidden=!1,p.classList.add("gengage-chat-product-sort-dropdown--open"),m.setAttribute("aria-expanded","true"),I=new AbortController;const{signal:_}=I;B.addEventListener("click",Q,{signal:_}),B.addEventListener("keydown",K,{capture:!0,signal:_})};m.addEventListener("click",_=>{_.stopPropagation(),p.classList.contains("gengage-chat-product-sort-dropdown--open")?H():N()});for(const _ of f){const y=document.createElement("button");y.type="button",y.className="gengage-chat-product-sort-option gds-menu-option",y.setAttribute("role","option");const x=Mn(u,_.sortState);y.setAttribute("aria-selected",x?"true":"false"),x&&y.classList.add("gengage-chat-product-sort-option--active","gds-menu-option-active");const E=_.sortState.type==="related"?"related":`price-${_.sortState.direction??""}`;y.dataset.sortKey=E;const L=document.createElement("span");L.className="gengage-chat-product-sort-option-icon",L.innerHTML=zn(_.icon);const z=document.createElement("span");z.className="gengage-chat-product-sort-option-label",z.textContent=_.label;const R=document.createElement("span");R.className="gengage-chat-product-sort-option-check",R.innerHTML=vl(),R.setAttribute("aria-hidden","true"),x||R.classList.add("gengage-chat-product-sort-option-check--hidden"),y.appendChild(L),y.appendChild(z),y.appendChild(R),y.addEventListener("click",()=>{u=_.sortState,n.onSortChange?.(_.sortState),_l(c,s,t,_.sortState),A.querySelectorAll(".gengage-chat-product-sort-option").forEach(P=>{const $=P,F=$.dataset.sortKey===E;$.classList.toggle("gengage-chat-product-sort-option--active",F),$.classList.toggle("gds-menu-option-active",F),$.setAttribute("aria-selected",F?"true":"false"),$.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden",!F)}),w(_.sortState),H()}),A.appendChild(y)}if(p.appendChild(m),p.appendChild(A),h.appendChild(p),n.onToggleComparisonSku){const _=document.createElement("button");_.className="gengage-chat-comparison-toggle-btn gds-btn gds-btn-ghost",_.type="button",n.comparisonSelectMode&&_.classList.add("gengage-chat-comparison-toggle-btn--active"),n.isStreaming&&_.classList.add("gengage-chat-comparison-toggle-btn--hidden");const y=document.createElement("span");y.className="gengage-chat-comparison-toggle-icon",y.innerHTML=yl();const x=document.createElement("span");x.className="gengage-chat-comparison-toggle-label";const E=n.i18n?.compareSelected??"Compare";x.textContent=E,_.setAttribute("aria-label",E),_.title=E,_.appendChild(y),_.appendChild(x),_.addEventListener("click",()=>{n.onToggleComparisonSku?.("")}),h.appendChild(_)}if(l){h.classList.add("gengage-chat-product-sort-toolbar--inline");const _=document.createElement("div");_.className="gengage-chat-product-grid-head";const y=document.createElement("span");y.className="gengage-chat-product-grid-head-title",y.textContent=l,_.appendChild(y);const x=document.createElement("div");x.className="gengage-chat-product-grid-head-actions",x.appendChild(h),_.appendChild(x),r.appendChild(_)}else r.appendChild(h)}else if(l){const h=document.createElement("div");h.className="gengage-chat-product-grid-head";const u=document.createElement("span");u.className="gengage-chat-product-grid-head-title",u.textContent=l,h.appendChild(u),r.appendChild(h)}if(o)Hc(r,c,i,n);else{const h=Bn(s,t,n?.productSort);for(const u of h){if(!t.elements[u])continue;const f=a(u);f&&(f.dataset.elementId=u,c.appendChild(f))}}(n?.isMobile??ba())&&c.classList.add("gengage-chat-product-grid--mobile"),r.appendChild(c);const g=e.props?.endOfList;if(!o&&g!==!0&&s.length>0){const h=n?.i18n?.viewMoreLabel??"Show More",u=document.createElement("button");u.className="gengage-chat-product-grid-view-more",u.type="button",u.textContent=h,u.addEventListener("click",()=>{n?.onAction({title:h,type:"moreProductList",payload:{}})}),r.appendChild(u)}const d=n?.isMobile??ba();if(n?.comparisonSelectMode&&n.comparisonSelectedSkus&&!d){const h=wn(n.comparisonSelectedSkus,n);r.appendChild(h)}return r}function wl(e,t){const a=e.props??{},n=a.keyDifferencesHtml,r=a.recommended,i=a.products??[],o=a.attributes??[],s=a.highlights??[],c=a.specialCases,l=a.recommendedText,g=a.winnerHits,d=a.productActions;if(!r)return document.createElement("div");const h={recommended:r,products:i,attributes:o,highlights:s,specialCases:c,onProductClick:({sku:f,name:p})=>{t.onProductClick?.({sku:f,url:"",name:p})},pricing:t.pricing};l!==void 0&&(h.recommendedText=l),g!==void 0&&(h.winnerHits=g),d!==void 0&&(h.productActions=d),n!==void 0&&(h.keyDifferencesHtml=n),t.i18n&&(h.i18n={comparisonHeading:t.i18n.panelTitleComparisonResults,recommendedChoiceLabel:t.i18n.recommendedChoiceLabel,highlightsLabel:t.i18n.highlightsLabel,keyDifferencesLabel:t.i18n.keyDifferencesLabel,viewMoreLabel:t.i18n.viewMoreLabel,specialCasesLabel:t.i18n.specialCasesLabel,addToCartButton:t.i18n.addToCartButton});const u=lc(h);return(t.isMobile??ba())&&u.classList.add("gengage-chat-comparison--mobile"),u}function kl(e){const t=document.createElement("hr");t.className="gengage-chat-divider";const a=e.props?.label;if(a){const n=document.createElement("div");n.className="gengage-chat-divider-wrapper";const r=document.createElement("span");r.className="gengage-chat-divider-label",r.textContent=a,n.appendChild(t),n.appendChild(r);const i=document.createElement("hr");return i.className="gengage-chat-divider",n.appendChild(i),n}return t}var Cl=new Set(["P","DIV","H1","H2","H3","H4","H5","H6","LI","UL","OL","BLOCKQUOTE","PRE","TABLE","SECTION","HR","FIGURE","FIGCAPTION","DL","DT","DD"]);function Sl(e){const t=[];let a=[];for(const n of e)n.nodeType===Node.ELEMENT_NODE&&Cl.has(n.tagName)?(a.length>0&&(t.push(a),a=[]),t.push([n])):a.push(n);return a.length>0&&t.push(a),t}function El(e){for(const t of e)for(const a of t)if(a.nodeType===Node.ELEMENT_NODE&&(a.tagName==="TABLE"||a.querySelector?.("table")))return!0;return!1}function Tl(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Pl(e){const{container:t,html:a,delayMs:n=30,onTick:r,onComplete:i}=e,o=document.createElement("template");o.innerHTML=a;const s=Sl(o.content.childNodes);if(Tl()||s.length<=1||El(s))return t.innerHTML=a,i?.(),{complete(){},cancel(){},isRunning:!1};t.innerHTML="";let c=0,l=null,g=!0;function d(){if(!g||c>=s.length){g=!1,i?.();return}const h=s[c],u=document.createElement("span");u.className="gengage-chat-typewriter-block";for(const f of h)u.appendChild(f.cloneNode(!0));t.appendChild(u),c++,r?.(),c<s.length?l=setTimeout(d,n):(g=!1,i?.())}return d(),{complete(){g&&(l!==null&&clearTimeout(l),g=!1,t.innerHTML=a,i?.())},cancel(){l!==null&&clearTimeout(l),g=!1},get isRunning(){return g}}}function Rn(e){return e!==void 0&&/[\p{L}\p{N}_]/u.test(e)}function Al(e){const{container:t,mentions:a,onProductClick:n}=e;if(a.length===0)return;const r=new Map;for(const i of a)i.short_name.length!==0&&r.set(i.short_name.toLowerCase(),i);if(r.size!==0)for(const[i,o]of r){const s=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let c=s.nextNode(),l=!1;for(;c&&!l;){const g=c.textContent??"",d=g.toLowerCase().indexOf(i);if(d===-1){c=s.nextNode();continue}const h=d>0?g[d-1]:void 0,u=g[d+o.short_name.length];if(Rn(h)||Rn(u)){c=s.nextNode();continue}const f=g.slice(0,d),p=g.slice(d,d+o.short_name.length),m=g.slice(d+o.short_name.length),b=c.parentNode;if(!b){c=s.nextNode();continue}const C=document.createElement("a");C.className="gengage-product-mention",C.textContent=p,C.href="#",C.addEventListener("click",v=>{v.preventDefault(),n(o.sku)}),f&&b.insertBefore(document.createTextNode(f),c),b.insertBefore(C,c),m&&b.insertBefore(document.createTextNode(m),c),b.removeChild(c),l=!0}}}var Ll=new Set(["search","info","review","similar"]),Il=new Set(["quickAnswer","reviewSummary","searchDiscovery","launchDiscovery","exploreTogetherV2"]);function Nl(e){return!!(e.icon&&Ll.has(e.icon)||e.action?.type&&Il.has(e.action.type))}var Tt="gengage_choice_prompter_dismissed",zl="gengage_choice_prompter_dismissed_global";function Ml(e){const t=document.createElement("div");t.className="gengage-chat-choice-prompter gds-card",t.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=e.heading,a.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-choice-prompter-suggestion",r.textContent=e.suggestion,a.appendChild(r),t.appendChild(a);const i=document.createElement("button");i.type="button",i.className="gengage-chat-choice-prompter-cta gds-btn gds-btn-primary",i.dataset.gengagePart="choice-prompter-cta",i.textContent=e.ctaLabel,i.addEventListener("click",()=>{ya(e.threadId),t.remove(),e.onCtaClick()}),t.appendChild(i);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",e.dismissAriaLabel??"Dismiss"),o.addEventListener("click",()=>{ya(e.threadId),t.remove(),e.onDismiss?.()}),t.appendChild(o),t}function Bl(){try{sessionStorage.removeItem(Tt),sessionStorage.removeItem(zl)}catch{}}function Rl(e){try{const t=sessionStorage.getItem(Tt);return t?JSON.parse(t).includes(e):!1}catch{return!1}}function ya(e){try{const t=sessionStorage.getItem(Tt),a=t?JSON.parse(t):[];a.includes(e)||a.push(e),sessionStorage.setItem(Tt,JSON.stringify(a))}catch{}}function Ol(e){e&&ya(e)}var Dl="gengage_assistant",Fl=3,$e="sessions",Ee="context",Ne="payload",Te="favorites";function dt(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}function Xe(e){return new Promise((t,a)=>{e.oncomplete=()=>t(),e.onerror=()=>a(e.error),e.onabort=()=>a(e.error??new DOMException("Transaction aborted"))})}var $l=class{constructor(e=Dl,t=Fl){this._db=null,this._dbName=e,this._version=t}async open(){return this._db?this._db:new Promise((e,t)=>{const a=indexedDB.open(this._dbName,this._version);a.onupgradeneeded=n=>{const r=a.result,i=n.oldVersion;i<1&&(r.createObjectStore($e,{keyPath:["userId","appId","sessionId"]}),r.createObjectStore(Ee,{keyPath:["sessionId","threadId"]}),r.createObjectStore(Ne,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),r.createObjectStore(Te,{keyPath:["userId","appId","sku"]})),i>=1&&i<2&&(r.objectStoreNames.contains($e)&&r.deleteObjectStore($e),r.objectStoreNames.contains(Ne)&&r.deleteObjectStore(Ne),r.createObjectStore($e,{keyPath:["userId","appId","sessionId"]}),r.createObjectStore(Ne,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),r.objectStoreNames.contains(Ee)||r.createObjectStore(Ee,{keyPath:["sessionId","threadId"]})),i<3&&(r.objectStoreNames.contains(Te)||r.createObjectStore(Te,{keyPath:["userId","appId","sku"]}))},a.onsuccess=()=>{this._db=a.result,e(this._db)},a.onerror=()=>t(a.error)})}close(){this._db?.close(),this._db=null}async saveSession(e){const t=this._requireDb().transaction($e,"readwrite");t.objectStore($e).put(e),await Xe(t)}async loadSession(e,t,a){return await dt(this._requireDb().transaction($e,"readonly").objectStore($e).get([e,t,a]))??null}async saveContext(e){const t=this._requireDb().transaction(Ee,"readwrite");t.objectStore(Ee).put(e),await Xe(t)}async loadContext(e,t){return await dt(this._requireDb().transaction(Ee,"readonly").objectStore(Ee).get([e,t]))??null}async deleteContextsAfterThread(e,t){const a=this._requireDb().transaction(Ee,"readwrite"),n=a.objectStore(Ee).openCursor();await new Promise((r,i)=>{n.onsuccess=()=>{const o=n.result;if(!o){r();return}const s=o.value;if(s.sessionId===e&&s.threadId>t)try{o.delete()}catch{}o.continue()},n.onerror=()=>i(n.error)}),await Xe(a)}async loadLatestContext(e){const t=this._requireDb().transaction(Ee,"readonly").objectStore(Ee),a=IDBKeyRange.bound([e,""],[e,""]);return new Promise((n,r)=>{const i=t.openCursor(a,"prev");i.onsuccess=()=>{const o=i.result;n(o?o.value:null)},i.onerror=()=>r(i.error)})}async savePayload(e){const t=this._requireDb().transaction(Ne,"readwrite");t.objectStore(Ne).put(e),await Xe(t)}async loadPayload(e,t){return await dt(this._requireDb().transaction(Ne,"readonly").objectStore(Ne).get([e,t]))??null}async loadPayloadsByThread(e){const t=this._requireDb().transaction(Ne,"readonly").objectStore(Ne).index("threadId"),a=[];return new Promise((n,r)=>{const i=t.openCursor(IDBKeyRange.only(e));i.onsuccess=()=>{const o=i.result;if(!o){n(a);return}a.push(o.value),o.continue()},i.onerror=()=>r(i.error)})}async saveFavorite(e){const t=this._requireDb().transaction(Te,"readwrite");t.objectStore(Te).put(e),await Xe(t)}async removeFavorite(e,t,a){const n=this._requireDb().transaction(Te,"readwrite");n.objectStore(Te).delete([e,t,a]),await Xe(n)}async loadFavorites(e,t){return(await dt(this._requireDb().transaction(Te,"readonly").objectStore(Te).getAll())).filter(a=>a.userId===e&&a.appId===t)}async isFavorite(e,t,a){return await dt(this._requireDb().transaction(Te,"readonly").objectStore(Te).get([e,t,a]))!==void 0}_requireDb(){if(!this._db)throw new Error("GengageIndexedDB: database not open. Call open() first.");return this._db}},Ul=["comparisonTable","groupList","productDetailsSimilars","productList"],Hl=class{constructor(e){this._lockCount=1,this._hiddenByUser=!1,this._lastPanelContentType=null,this._chatShown=!1,this._isFavoritesMode=!1,this._lastExtended=!1,this._onChange=e.onChange;const t=new Set(Ul);e.productDetailsInPanel&&t.add("productDetails"),this._panelContentTypes=t}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(e){this._hiddenByUser=e,this._checkStateChange()}setChatShown(e){this._chatShown=e,this._checkStateChange()}setFavoritesMode(e){this._isFavoritesMode=e,this._checkStateChange()}setPanelContentType(e){this._lastPanelContentType=e,this._checkStateChange()}_checkStateChange(){const e=this.isExtended;e!==this._lastExtended&&(this._lastExtended=e,this._onChange(e))}},ql=class{constructor(e){this.deps=e,this.snapshots=new Map,this._snapshotRebuilders=new Map,this.snapshotTypes=new Map,this.activePanelMessageId=null,this.currentType=null,this.threads=[],this.lastActionType=null}snapshotForMessage(e,t){const a=this.deps.drawer();if(!a?.hasPanelContent()||a.isPanelLoading())return;const n=a.getPanelContentElement();if(!n)return;const r=n.cloneNode(!0);this.snapshots.set(e,r),t&&this._snapshotRebuilders.set(e,t),this.currentType&&this.snapshotTypes.set(e,this.currentType)}restoreForMessage(e){const t=this._snapshotRebuilders.get(e),a=this.snapshots.get(e);if(!t&&!a)return!1;const n=this.deps.shadow(),r=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(e)}"]`)?.classList.add("gengage-chat-bubble--active"),this.activePanelMessageId=e;const i=t?t():a.cloneNode(!0);r?.setPanelContent(i);const o=this.snapshotTypes.get(e);if(r?.setDividerPreviewEnabled(o==="ProductGrid"),o)if(this.currentType=o,i.querySelector(".gengage-chat-product-grid-head-title")&&o==="ProductGrid"){const s=this.deps.currentThreadId();if(s){const c=this.threads.indexOf(s),l=c>0,g=c>=0&&c<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(l,g,"")}}else this.updateTopBar(o);return!0}notifyExtension(e){const t=this.deps.bridge();e?setTimeout(()=>t?.send("maximize-pdp",{}),350):setTimeout(()=>t?.send("minify-pdp",{}),200)}titleForComponent(e,t){if(t)return t;const a=this.deps.i18n();switch(e){case"ProductDetailsPanel":return a.panelTitleProductDetails;case"ProductGrid":return On(this.lastActionType)?a.panelTitleSearchResults:a.panelTitleSimilarProducts;case"ComparisonTable":return a.panelTitleComparisonResults;case"AIGroupingCards":return a.panelTitleCategories;default:return""}}updateTopBar(e,t,a){const n=this.deps.currentThreadId();if(!n)return;const r=this.threads.indexOf(n),i=r>0,o=r>=0&&r<this.threads.length-1,s=a!==void 0?a:this.titleForComponent(e,t);this.deps.drawer()?.updatePanelTopBar(i,o,s)}updateTopBarForLoading(e){const t=this.deps.i18n(),a={productDetails:t.panelTitleProductDetails,productList:On(this.lastActionType)?t.panelTitleSearchResults:t.panelTitleSimilarProducts,comparisonTable:t.panelTitleComparisonResults,groupList:t.panelTitleCategories}[e]??"";if(a){const n=this.deps.currentThreadId(),r=n?this.threads.indexOf(n):-1,i=r>0,o=r>=0&&r<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(i,o,a)}}updateExtendedMode(e){const t={ComparisonTable:"comparisonTable",AIGroupingCards:"groupList",ProductDetailsPanel:"productDetails",ProductGrid:"productList"}[e]??null;this.deps.extendedModeManager()?.setPanelContentType(t)}navigateBack(){const e=this.deps.currentThreadId();if(!e)return;const t=this.threads.indexOf(e);if(t>0){const a=this.threads[t-1];a&&this.deps.rollbackToThread(a)}}navigateForward(){const e=this.deps.currentThreadId();if(!e)return;const t=this.threads.indexOf(e);if(t>=0&&t<this.threads.length-1){const a=this.threads[t+1];a&&this.deps.rollbackToThread(a)}}toPanelSpec(e){const t=e.elements[e.root];if(!t||t.type!=="ProductCard")return e;const a={...t,type:"ProductDetailsPanel"};return{root:e.root,elements:{...e.elements,[e.root]:a}}}destroy(){this.snapshots.clear(),this._snapshotRebuilders.clear(),this.snapshotTypes.clear(),this.activePanelMessageId=null,this.currentType=null,this.threads=[]}};function On(e){return e==="user_message"||e==="inputText"}function jl(e){return e.similarsAppend&&e.currentPanelType==="ProductDetailsPanel"&&e.hasPanelContent&&!e.isPanelLoading?"appendSimilars":e.componentType==="ProductGrid"&&!e.isFirstPanelContentInStream&&e.hasPanelContent&&!e.isPanelLoading?"append":"replace"}var Dn=class{constructor(e){this.favoritedSkus=new Set,this._favoritesCache=new Map,this._persistLock=Promise.resolve(),this._db=e}get db(){return this._db}set db(e){this._db=e}async persist(e){if(!this._db)return;const t=this._persistLock;let a;this._persistLock=new Promise(n=>{a=n}),await t;try{await this._persistImpl(e)}finally{a()}}async _persistImpl(e){if(!this._db)return;const t=e.messages.map(n=>{const r={id:n.id,role:n.role,timestamp:n.timestamp,status:n.status==="streaming"?"done":n.status};return n.threadId!==void 0&&(r.threadId=n.threadId),n.content!==void 0&&(r.content=n.content),n.silent&&(r.silent=!0),r}),a={};for(const[n,r]of e.panelSnapshots)r.querySelector(".gengage-chat-panel-skeleton")||(a[n]=r.innerHTML);await this._db.saveSession({userId:e.userId,appId:e.appId,sessionId:e.sessionId,messages:t,currentThreadId:e.currentThreadId,lastThreadId:e.lastThreadId,createdAt:e.chatCreatedAt,panelThreads:e.panelThreads.length>0?e.panelThreads:void 0,thumbnailEntries:e.thumbnailEntries.length>0?e.thumbnailEntries:void 0,panelSnapshotHtml:Object.keys(a).length>0?a:void 0,sku:e.sku}),e.lastBackendContext&&e.currentThreadId&&await this._db.saveContext({sessionId:e.sessionId,threadId:e.currentThreadId,context:e.lastBackendContext});for(const n of e.messages)n.uiSpec&&n.threadId&&await this._db.savePayload({threadId:n.threadId,messageId:n.id,uiSpec:n.uiSpec})}async saveAndOpenURL(e,t,a){try{await t()}catch{}a?.send("openURLInNewTab",{url:e}),pe(e)&&(window.location.href=e)}async loadPayload(e,t){if(!this._db)return null;for(let a=0;a<3;a++){try{const n=await this._db.loadPayload(e,t);if(n)return n.uiSpec}catch{}a<2&&await new Promise(n=>setTimeout(n,100))}return null}async loadFavorites(e,t){if(this._db)try{const a=await this._db.loadFavorites(e,t);for(const n of a)this.favoritedSkus.add(n.sku),this._favoritesCache.set(n.sku,n)}catch{}}getFavoriteProducts(){return[...this._favoritesCache.values()].sort((e,t)=>(t.savedAt??"").localeCompare(e.savedAt??""))}async toggleFavorite(e,t,a,n){if(this.favoritedSkus.has(a))this.favoritedSkus.delete(a),this._favoritesCache.delete(a),this._db&&await this._db.removeFavorite(e,t,a);else{const r={userId:e,appId:t,sku:a,name:n.name,imageUrl:n.imageUrl,price:n.price,savedAt:new Date().toISOString()};this.favoritedSkus.add(a),this._favoritesCache.set(a,r),this._db&&await this._db.saveFavorite(r)}}close(){this._db?.close(),this._db=null}},_a=e=>`${e}:assistant`,Zl=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(e){this.shown=e,e||(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(e){const t=_a(e),a=this.groups[t],n=this.shown&&this.pinnedToBottom&&!this.userInteracting?"active_unread":"unseen";this.groups[t]={id:t,threadId:e,readState:a?.readState==="seen"?n:a?.readState??n,status:"streaming",updatedAt:Date.now()},a?.readState==="seen"&&this.lastAutoAnchoredGroupId===t&&(this.lastAutoAnchoredGroupId=null)}finalizeAssistantGroup(e){const t=_a(e),a=this.groups[t];a&&(a.status="complete",a.updatedAt=Date.now())}setGroupReadStates(e){const t=Date.now();for(const{groupId:a,readState:n}of e){const r=this.groups[a];!r||r.readState===n||(r.readState=n,r.updatedAt=t)}}requestThreadFocus(e,t="smooth"){this.focusedThreadId=e,this.scrollRequest={id:this._nextScrollId++,type:"thread",threadId:e,behavior:t}}requestScrollToBottom(e="smooth"){this.scrollRequest={id:this._nextScrollId++,type:"bottom",behavior:e}}consumeScrollRequest(e){this.scrollRequest?.id===e&&(this.scrollRequest=null)}releaseFocusedThread(){this.focusedThreadId=null}setFocusedThreadId(e){this.focusedThreadId=e}markGroupAutoAnchored(e){this.lastAutoAnchoredGroupId=e}shouldBlockStreamAutoScroll(){return this.shown&&this.userInteracting&&!this.pinnedToBottom}getAssistantReadState(e){return this.groups[_a(e)]?.readState}};function Vl(e,t){for(let a=e.length-1;a>=0;a--){const n=e[a],r=t.getAssistantReadState(n);if(r!==void 0&&r!=="seen")return n}return null}function Wl(e){const{label:t,avatarUrl:a,primaryColor:n,secondaryColor:r="#111827",fontFamily:i="inherit",labelClassName:o="gengage-pill-launcher-label",styleId:s="gengage-pill-launcher-style",mobileBreakpoint:c=768,desktopWidth:l="188px",desktopHeight:g="60px",iconSize:d="46px"}=e,h=`${parseInt(l,10)-14}px`,u=`${parseInt(g,10)-4}px`,f=`${parseInt(d,10)-4}px`,p=`
|
|
58
|
+
</svg>`;function tc(e){const t=document.createElement("div");t.className="gengage-chat-launcher-container",t.dataset.gengagePart="chat-launcher-container";const a=document.createElement("div");a.className="gengage-chat-launcher-content-area",a.dataset.gengagePart="chat-launcher-content-primary",t.appendChild(a);const n=document.createElement("button");if(n.type="button",n.setAttribute("aria-label",e.ariaLabel??"Open chat"),e.imageUrl){n.className="gengage-chat-launcher gengage-chat-launcher--image-mode";const i=document.createElement("img");i.src=e.imageUrl,i.alt="",i.draggable=!1,n.appendChild(i)}else n.className="gengage-chat-launcher",n.innerHTML=e.svgMarkup??ec;if(n.dataset.gengagePart="chat-launcher-button",e.tooltip!==void 0){const i=document.createElement("span");i.className="gengage-chat-launcher-tooltip",i.dataset.gengagePart="chat-launcher-tooltip",i.textContent=e.tooltip,n.appendChild(i)}e.hideMobile&&(t.dataset.hideMobile="1"),e.mobileBreakpoint!==void 0&&(t.dataset.mobileBreakpoint=String(e.mobileBreakpoint)),n.addEventListener("click",e.onClick),t.appendChild(n);const r=document.createElement("div");return r.className="gengage-chat-launcher-content-area-bottom",r.dataset.gengagePart="chat-launcher-content-secondary",t.appendChild(r),{container:t,button:n,contentArea:a,contentAreaBottom:r}}var ac=new Set(["audio/ogg","audio/mpeg","audio/mp3","audio/wav","audio/webm","audio/aac","audio/mp4"]),fn=new Set;function ga(e){e.pause(),e.removeAttribute("src"),e.load(),fn.delete(e)}function nc(e,t="audio/ogg"){const a=t.split(";")[0].trim();if(!ac.has(a))return null;try{const n=new Audio(`data:${t};base64,${e}`);return fn.add(n),n.addEventListener("ended",()=>ga(n),{once:!0}),n.play().catch(()=>{ga(n)}),{stop:()=>ga(n)}}catch{return null}}var rc={currencyCode:"TRY",currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function q(e,t){const a=Number(e);if(!Number.isFinite(a)||a<0)return e;const n={...rc,...t},r=Math.abs(a%1)<Number.EPSILON,i=n.alwaysShowDecimals||!r?a.toFixed(2):a.toFixed(0),o=i.indexOf("."),s=o===-1?i:i.slice(0,o),c=o===-1?void 0:i.slice(o+1),l=s.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousandsSeparator);let g;return c!==void 0?g=`${l}${n.decimalSeparator}${c}`:g=l,n.currencySymbol?n.currencyPosition==="prefix"?`${n.currencySymbol}${g}`:`${g} ${n.currencySymbol}`:g}var ic={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 oc(e,t){return t?.[e]??ic[e]??e.replace(/_/g," ").replace(/^\w/,a=>a.toUpperCase())}function bn(e){if(typeof e!="string")return!1;const t=Number(e);return Number.isFinite(t)&&t>0}function sc(e){const t=typeof e=="number"?e:typeof e=="string"?Number(e):NaN;return Number.isFinite(t)&&t>0}function cc(e){const t=typeof e=="number"?e:Number(e),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=t.toFixed(1),a.appendChild(n),a}function lc(e){const{recommended:t,products:a,attributes:n,highlights:r,specialCases:i,onProductClick:o,i18n:s}=e,c=document.createElement("div");if(c.className="gengage-chat-comparison",c.dataset.gengagePart="comparison-dialog",c.setAttribute("role","dialog"),c.setAttribute("aria-label",s?.comparisonHeading??"Comparison Results"),t){const l=document.createElement("article");l.className="gengage-chat-comparison-recommended gds-card",l.dataset.gengagePart="comparison-recommended-card";const g=document.createElement("div");g.className="gengage-chat-comparison-recommended-label",g.textContent=s?.recommendedChoiceLabel??"Recommended Choice",l.appendChild(g);const d=document.createElement("div");d.className="gengage-chat-comparison-recommended-body",d.classList.add("gds-clickable"),d.tabIndex=0,d.setAttribute("role","button"),d.setAttribute("aria-label",t.name);const h=document.createElement("div");if(h.className="gengage-chat-comparison-recommended-media",t.imageUrl&&ye(t.imageUrl)){const b=document.createElement("img");b.src=t.imageUrl,b.alt=t.name,b.loading="lazy",b.addEventListener("error",()=>{b.style.display="none"},{once:!0}),h.appendChild(b)}else{const b=document.createElement("div");b.className="gengage-chat-comparison-recommended-placeholder",b.setAttribute("aria-hidden","true"),h.appendChild(b)}d.appendChild(h);const u=document.createElement("div");u.className="gengage-chat-comparison-recommended-info";const m=document.createElement("div");m.className="gengage-chat-comparison-recommended-title",m.textContent=t.name,u.appendChild(m);const p=document.createElement("div");if(p.className="gengage-chat-comparison-recommended-meta",sc(t.rating)&&p.appendChild(cc(t.rating)),bn(t.price)){const b=document.createElement("div");b.className="gengage-chat-comparison-recommended-price",b.textContent=q(t.price,e.pricing),p.appendChild(b)}if(p.childElementCount>0&&u.appendChild(p),e.recommendedText){const b=document.createElement("p");b.className="gengage-chat-comparison-recommended-text",b.innerHTML=_e(e.recommendedText),u.appendChild(b)}d.appendChild(u);const f=()=>{o({sku:t.sku,name:t.name})};if(d.addEventListener("click",f),d.addEventListener("keydown",b=>{b.key!=="Enter"&&b.key!==" "||(b.preventDefault(),f())}),l.appendChild(d),r.length>0){const b=document.createElement("div");b.className="gengage-chat-comparison-highlights",b.dataset.gengagePart="comparison-highlights";const C=document.createElement("div");C.className="gengage-chat-comparison-highlights-label",C.textContent=s?.highlightsLabel??"Key Highlights",b.appendChild(C);const v=document.createElement("ul");for(const x of r){const k=document.createElement("li");k.textContent=x,v.appendChild(k)}b.appendChild(v),l.appendChild(b)}c.appendChild(l)}if(e.keyDifferencesHtml){const l=document.createElement("details");l.className="gengage-chat-comparison-key-differences",l.dataset.gengagePart="comparison-key-differences";const g=document.createElement("summary");g.className="gengage-chat-comparison-key-differences-summary";const d=document.createElement("span");d.className="gengage-chat-comparison-key-differences-summary-label",d.textContent=s?.keyDifferencesLabel??"Key Differences";const h=document.createElement("span");h.className="gengage-chat-comparison-key-differences-summary-meta",h.textContent=s?.viewMoreLabel??"Show More",g.appendChild(d),g.appendChild(h),l.appendChild(g);const u=document.createElement("div");u.className="gengage-chat-comparison-key-differences-content",u.innerHTML=_e(dc(e.keyDifferencesHtml)),l.appendChild(u),c.appendChild(l)}if(i&&i.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 g=document.createElement("summary");g.textContent=s?.specialCasesLabel??"For Special Cases",l.appendChild(g);const d=document.createElement("ul");for(const h of i)gc(d,h);d.childElementCount>0&&l.appendChild(d),c.appendChild(l)}if(a.length>0&&n.length>0){const l=document.createElement("table");l.className="gengage-chat-comparison-table gds-comparison-table";const g=document.createElement("thead"),d=document.createElement("tr"),h=document.createElement("th");d.appendChild(h);for(const p of a){const f=document.createElement("th");p.sku===t?.sku&&(f.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell");const b=document.createElement("div");b.className="gengage-chat-comparison-table-header-cell gengage-chat-comparison-table-header-cell--clickable gds-clickable",b.tabIndex=0,b.setAttribute("role","button"),b.setAttribute("aria-label",p.name),b.title=p.name;const C=()=>{o({sku:p.sku,name:p.name})};if(b.addEventListener("click",C),b.addEventListener("keydown",x=>{x.key!=="Enter"&&x.key!==" "||(x.preventDefault(),C())}),p.imageUrl&&ye(p.imageUrl)){const x=document.createElement("img");x.src=p.imageUrl,x.alt=p.name,x.loading="lazy",x.addEventListener("error",()=>{x.style.display="none"},{once:!0}),b.appendChild(x)}else{const x=document.createElement("div");x.className="gengage-chat-comparison-table-header-img-placeholder",x.setAttribute("aria-hidden","true"),b.appendChild(x)}const v=document.createElement("div");if(v.className="gengage-chat-comparison-table-product-name",v.textContent=p.name,b.appendChild(v),bn(p.price)){const x=document.createElement("div");x.className="gengage-chat-comparison-table-price",x.textContent=q(p.price,e.pricing),b.appendChild(x)}f.appendChild(b),d.appendChild(f)}g.appendChild(d),l.appendChild(g);const u=document.createElement("tbody");for(const p of n){const f=document.createElement("tr"),b=document.createElement("td");b.className="gengage-chat-comparison-label",b.textContent=oc(p.label,s?.criteriaLabels),f.appendChild(b);for(let C=0;C<p.values.length;C++){const v=document.createElement("td");a[C]?.sku===t?.sku&&(v.className="gengage-chat-comparison-selected gds-comparison-table-winner-cell"),v.textContent=p.values[C]??"",f.appendChild(v)}u.appendChild(f)}l.appendChild(u);const m=document.createElement("div");m.className="gengage-chat-comparison-table-wrapper",m.dataset.gengagePart="comparison-table-wrapper",m.appendChild(l),c.appendChild(m)}return c.addEventListener("keydown",l=>{if(l.key!=="Tab")return;const g=c.querySelectorAll('button, [href], input, [tabindex]:not([tabindex="-1"])');if(g.length===0)return;const d=g[0],h=g[g.length-1];l.shiftKey&&document.activeElement===d?(l.preventDefault(),h.focus()):!l.shiftKey&&document.activeElement===h&&(l.preventDefault(),d.focus())}),c}function dc(e){if(/<[uo]l[\s>]/i.test(e)||/<li[\s>]/i.test(e))return e;const t=e.split(`
|
|
59
|
+
`).filter(a=>a.trim());return t.length<=1?e:"<ul>"+t.map(a=>`<li>${a.trim()}</li>`).join("")+"</ul>"}function gc(e,t){const a=_e(t);if(!a)return;const n=document.createElement("template");n.innerHTML=a;const r=Array.from(n.content.querySelectorAll("li"));if(r.length>0){for(const o of r){const s=document.createElement("li");s.innerHTML=_e(o.innerHTML),e.appendChild(s)}return}const i=document.createElement("li");pc(t)?i.innerHTML=a:i.textContent=t,e.appendChild(i)}function pc(e){return/<\/?[a-z][\s\S]*>/i.test(e)}function ct(e,t=18){const a="http://www.w3.org/2000/svg",n=document.createElementNS(a,"svg");n.setAttribute("width",String(t)),n.setAttribute("height",String(t)),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 r of e){const i=document.createElementNS(a,"path");i.setAttribute("d",r),n.appendChild(i)}return n}var pa="General",vn=220,hc=6;function uc(e){if(typeof e!="string")return[pa];const t=e.split(/[,;|/]+/).map(a=>a.trim().replace(/\s+/g," ")).filter(a=>a.length>0);return t.length===0?[pa]:Array.from(new Set(t.map(a=>a.toLocaleLowerCase()))).map(a=>t.find(n=>n.toLocaleLowerCase()===a)??pa)}function mc(e){return e==="positive"||e==="negative"||e==="neutral"?e:"neutral"}function fc(e){if(typeof e!="string")return"";const t=e.trim().replace(/\s+/g," ");return t.length<=vn?t:`${t.slice(0,vn-3).trimEnd()}...`}function bc(e){return e.positive>e.negative?"positive":e.negative>e.positive?"negative":"neutral"}function vc(e){return ct(e==="positive"?["M7 17 17 7","M7 7h10v10"]:e==="negative"?["M7 7 17 17","M17 7v10H7"]:["M5 12h14"],14)}function yc(e,t="1 customer mentions",a="customers mention"){return e===1?t:`${e} ${a}`}function _c(e,t){const a=document.createElement("div");a.className="gengage-chat-review-highlights";const n=e.props?.reviews;if(!Array.isArray(n)||n.length===0){const p=document.createElement("div");return p.className="gengage-chat-review-empty",p.textContent=t?.emptyReviewsMessage??"No review summary found.",a.appendChild(p),a}const r=n.filter(p=>p!==null&&typeof p=="object"),i=new Map;for(const p of r){const f=mc(p.review_class),b=fc(p.review_text),C=uc(p.review_tag);for(const v of C){const x=v.toLocaleLowerCase();let k=i.get(x);if(k||(k={key:x,label:v,mentions:0,positive:0,negative:0,neutral:0,snippets:[]},i.set(x,k)),k.mentions+=1,f==="positive"?k.positive+=1:f==="negative"?k.negative+=1:k.neutral+=1,b.length>0&&k.snippets.length<hc&&!k.snippets.some(P=>P.text===b)){const P={text:b,tone:f};p.review_rating!==void 0&&String(p.review_rating).length>0&&(P.rating=p.review_rating),k.snippets.push(P)}}}const o=Array.from(i.values()).sort((p,f)=>f.mentions!==p.mentions?f.mentions-p.mentions:p.label.localeCompare(f.label));if(o.length===0){const p=document.createElement("div");return p.className="gengage-chat-review-empty",p.textContent=t?.emptyReviewsMessage??"No review summary found.",a.appendChild(p),a}const s=(t?.reviewFilterPositive??"positive").toLowerCase(),c=(t?.reviewFilterNegative??"negative").toLowerCase(),l=document.createElement("div");l.className="gengage-chat-review-subjects-heading",l.textContent=t?.reviewSubjectsHeading??"Select to learn more",a.appendChild(l);let g=o[0]?.key??null;const d=document.createElement("div");d.className="gengage-chat-review-subjects gds-toolbar gds-toolbar-compact";const h=document.createElement("section");h.className="gengage-chat-review-detail gds-evidence-card";const u=()=>{for(;h.firstChild;)h.removeChild(h.firstChild);if(!g)return;const p=o.find(v=>v.key===g);if(!p)return;const f=document.createElement("div");f.className="gengage-chat-review-detail-meta";const b=document.createElement("span");if(b.className="gengage-chat-review-detail-mentions",b.textContent=`${yc(p.mentions,t?.reviewCustomersMentionSingular,t?.reviewCustomersMentionPlural)} "${p.label}"`,f.appendChild(b),p.positive>0){const v=document.createElement("span");v.className="gengage-chat-review-detail-positive",v.textContent=`${p.positive} ${s}`,f.appendChild(v)}if(p.negative>0){const v=document.createElement("span");v.className="gengage-chat-review-detail-negative",v.textContent=`${p.negative} ${c}`,f.appendChild(v)}h.appendChild(f);const C=document.createElement("div");C.className="gengage-chat-review-snippets";for(const v of p.snippets){const x=document.createElement("article");x.className="gengage-chat-review-snippet",x.dataset.tone=v.tone;const k=document.createElement("div");if(k.className="gengage-chat-review-snippet-text",k.textContent=`"${v.text}"`,x.appendChild(k),v.rating!==void 0&&String(v.rating).length>0){const P=document.createElement("div");P.className="gengage-chat-review-snippet-rating",P.textContent=`★ ${String(v.rating)}`,x.appendChild(P)}C.appendChild(x)}h.appendChild(C)},m=()=>{for(const p of d.querySelectorAll(".gengage-chat-review-subject")){const f=p.dataset.subjectKey===g;p.classList.toggle("gengage-chat-review-subject--active",f),p.classList.toggle("gds-chip-active",f),p.setAttribute("aria-pressed",String(f))}};for(const p of o){const f=bc(p),b=document.createElement("button");b.type="button",b.className="gengage-chat-review-subject gds-chip",b.dataset.subjectKey=p.key,b.dataset.tone=f;const C=document.createElement("span");C.className="gengage-chat-review-subject-icon",C.appendChild(vc(f)),b.appendChild(C);const v=document.createElement("span");v.className="gengage-chat-review-subject-label",v.textContent=p.label,b.appendChild(v);const x=document.createElement("span");x.className="gengage-chat-review-subject-count",x.textContent=`(${p.mentions})`,b.appendChild(x),b.addEventListener("click",()=>{g=p.key,m(),u()}),d.appendChild(b)}return a.appendChild(d),m(),u(),a.appendChild(h),a}function ha(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function ua(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function ma(e){const t=ha(e),a=Math.floor(t),n=t-a>=.5,r=5-a-(n?1:0),i=document.createElement("span");if(i.className="gengage-star-rating",i.setAttribute("role","img"),i.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),a>0&&i.appendChild(document.createTextNode("★".repeat(a))),n){const o=document.createElement("span");o.className="gengage-star-half",o.textContent="☆";const s=document.createElement("span");s.textContent="★",o.appendChild(s),i.appendChild(o)}return r>0&&i.appendChild(document.createTextNode("☆".repeat(r))),i}function Se(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function xc(e){if(!e)return;const t=e.discountReason??e.discount_reason??e.campaignReason??e.campaign_reason;if(typeof t!="string")return;const a=t.trim();return a.length>0?a:void 0}function Qe(e,t){if(e.productPriceUi?.showCampaignReason===!0)return xc(t)}function lt(e,t){const a=t?.originalPriceStyle??t?.price_original_style;if(a==="inline"||a==="strikethrough")return a;const n=e.productPriceUi?.originalPriceStyle;return n==="inline"||n==="strikethrough"?n:"strikethrough"}function _t(e){const t=document.createElement("div");return t.className="gengage-chat-campaign-reason",t.textContent=e,t}function xt(e,t){for(const n of["campaignReasonLogoUrl","campaign_reason_logo_url","discountBadgeLogoUrl","discount_badge_logo_url"]){const r=t?.[n];if(typeof r=="string"&&r.trim()){const i=r.trim();if(ye(i))return i}}const a=e.productPriceUi?.campaignBadgeLogoUrl;if(typeof a=="string"&&a.trim()){const n=a.trim();if(ye(n))return n}}function wt(e){const t=document.createElement("div");if(t.className="gengage-chat-campaign-price-badge",t.dataset.gengagePart="campaign-price-badge",e.logoUrl){const i=document.createElement("div");i.className="gengage-chat-campaign-price-badge__logo";const o=document.createElement("img");o.alt="",o.loading="lazy",o.src=e.logoUrl,Se(o),i.appendChild(o),t.appendChild(i)}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=e.reasonText;const r=document.createElement("span");return r.className="gengage-chat-campaign-price-badge__sale",r.textContent=e.salePriceFormatted,a.appendChild(n),a.appendChild(r),t.appendChild(a),t}function yn(e){const t=e.product.sku;if(typeof t=="string"&&t.length>0)return t;const a=e.action?.payload;return a&&typeof a=="object"&&"sku"in a&&typeof a.sku=="string"?a.sku:null}var wc={winner:"roleWinner",best_value:"roleBestValue",best_alternative:"roleBestAlternative"};function _n(e,t){if(!e||!t)return null;const a=wc[e];return a?t[a]??e:e}function kc(e){const t=e.rating,a=typeof t=="number"?t:typeof t=="string"?parseFloat(t):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 r=document.createElement("span");r.className="gengage-chat-ai-toppick-rating-icon",r.setAttribute("aria-hidden","true"),r.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 i=document.createElement("span");return i.className="gengage-chat-ai-toppick-rating-value",i.textContent=a.toFixed(1),n.appendChild(r),n.appendChild(i),n}function Cc(e,t,a,n,r){const i=document.createElement("div");i.className="gengage-chat-ai-toppick-media",i.dataset.gengagePart="ai-top-pick-media";const o=e.product,s=o.imageUrl;if(s&&ye(s)){const l=document.createElement("img");l.className="gengage-chat-ai-toppick-img",l.dataset.gengagePart="ai-top-pick-image",se(l,"src",s),l.loading="lazy",l.alt=t,Se(l),i.appendChild(l)}const c=yn(e);if(c&&!r?.skipOverlayActions){const l=document.createElement("div");if(l.className="gengage-chat-product-card-img-actions",n.onFavoriteToggle){const u=document.createElement("button");u.className="gengage-chat-favorite-btn",u.type="button",u.dataset.gengageFavoriteSku=c,u.setAttribute("aria-label",n.i18n?.addToFavoritesLabel??"Add to favorites");const m=n.favoritedSkus?.has(c)??!1;m&&u.classList.add("gengage-chat-favorite-btn--active"),u.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${m?"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>`,u.addEventListener("click",p=>{p.stopPropagation(),u.classList.toggle("gengage-chat-favorite-btn--active"),u.querySelector("svg")?.setAttribute("fill",u.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),n.onFavoriteToggle?.(c,o)}),l.appendChild(u)}const g=n.i18n?.findSimilarLabel??"Find Similar",d=document.createElement("button");d.className="gengage-chat-find-similar-pill",d.type="button",d.setAttribute("aria-label",g),d.dataset.tooltip=g,d.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 h=document.createElement("span");h.className="gengage-chat-find-similar-pill-text",h.textContent=g,d.appendChild(h),d.addEventListener("click",u=>{u.stopPropagation(),n.onAction({title:g,type:"findSimilar",payload:{sku:c,...s?{image_url:s}:{}}})}),l.appendChild(d),i.appendChild(l)}a.appendChild(i)}function Sc(e,t,a){const n=e.price,r=e.originalPrice;if(!n)return;const i=Qe(a,e),o=lt(a,e),s=!!(r&&r!==n),c=!!(i&&s),l=xt(a,e),g=document.createElement("div");if(g.className="gengage-chat-ai-toppick-price",g.dataset.gengagePart="ai-top-pick-price",c){const d=wt({reasonText:i,salePriceFormatted:q(n,a.pricing),...l!==void 0?{logoUrl:l}:{}});if(s&&o==="inline"){g.classList.add("gengage-chat-ai-toppick-price--inline"),g.appendChild(d);const h=document.createElement("span");h.className="gengage-chat-ai-toppick-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-ai-toppick-original-price",u.textContent=q(r,a.pricing),g.appendChild(h),g.appendChild(u)}else{const h=document.createElement("span");h.className="gengage-chat-ai-toppick-original-price",h.textContent=q(r,a.pricing),g.appendChild(h),g.appendChild(document.createTextNode(" ")),g.appendChild(d)}t.appendChild(g);return}if(s&&o==="inline"){g.classList.add("gengage-chat-ai-toppick-price--inline");const d=document.createElement("span");d.className="gengage-chat-ai-toppick-price-current",d.textContent=q(n,a.pricing);const h=document.createElement("span");h.className="gengage-chat-ai-toppick-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-ai-toppick-original-price",u.textContent=q(r,a.pricing),g.appendChild(d),g.appendChild(h),g.appendChild(u)}else if(s){const d=document.createElement("span");d.className="gengage-chat-ai-toppick-original-price",d.textContent=q(r,a.pricing),g.appendChild(d),g.appendChild(document.createTextNode(" "));const h=document.createElement("span");h.className="gengage-chat-ai-toppick-price-current",h.textContent=q(n,a.pricing),g.appendChild(h)}else{const d=document.createElement("span");d.className="gengage-chat-ai-toppick-price-current",d.textContent=q(n,a.pricing),g.appendChild(d)}if(i){const d=document.createElement("div");d.className="gengage-chat-ai-toppick-price-stack",d.appendChild(_t(i)),d.appendChild(g),t.appendChild(d)}else t.appendChild(g)}function Ec(e,t){const a=typeof e.reason=="string"?e.reason.trim():"",n=typeof e.reviewHighlight=="string"?e.reviewHighlight.trim():"";if(!(!a&&!n)){if(a){const r=document.createElement("p");r.className="gengage-chat-ai-toppick-reason",r.dataset.gengagePart="ai-top-pick-reason",r.textContent=a,t.appendChild(r)}if(n){const r=document.createElement("div");r.className="gengage-chat-ai-toppick-review",r.dataset.gengagePart="ai-top-pick-review",r.textContent=n,t.appendChild(r)}}}function xn(e,t,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 r=e.product,i=yn(e),o=r.url??"",s=r.cartCode,c=r.inStock,l=!!(i&&s&&c!==!1),g=e.action;i&&t.onProductClick?(n.classList.add("gds-clickable"),n.addEventListener("click",k=>{k.target.closest(".gengage-chat-ai-toppick-cta")||k.target.closest(".gengage-chat-favorite-btn")||k.target.closest(".gengage-chat-find-similar-pill")||t.onProductClick?.({sku:i,url:o})})):g&&(n.classList.add("gds-clickable"),n.addEventListener("click",k=>{k.target.closest(".gengage-chat-ai-toppick-cta")||k.target.closest(".gengage-chat-favorite-btn")||k.target.closest(".gengage-chat-find-similar-pill")||t.onAction(g)}));const d=r.name||"Product image",h=!a&&t.isMobile===!0,u=a?_n(e.role,t.i18n)??t.i18n?.roleWinner??"TOP MATCH":_n(e.role,t.i18n);if(u&&!h){const k=document.createElement("span");k.className="gengage-chat-ai-toppick-badge gds-badge",k.dataset.gengagePart="ai-top-pick-role-badge",k.textContent=u,n.appendChild(k)}const m=document.createElement("div");m.className="gengage-chat-ai-toppick-top-row",m.dataset.gengagePart="ai-top-pick-top-row",Cc(e,d,m,t,{skipOverlayActions:h});const p=document.createElement("div");if(p.className="gengage-chat-ai-toppick-body",p.dataset.gengagePart="ai-top-pick-body",u&&h){const k=document.createElement("div");k.className="gengage-chat-ai-toppick-role-line",k.dataset.gengagePart="ai-top-pick-role-line",k.textContent=u,p.appendChild(k)}const f=r.name;if(f){const k=document.createElement("div");k.className="gengage-chat-ai-toppick-name",k.dataset.gengagePart="ai-top-pick-name",k.textContent=f,p.appendChild(k)}const b=kc(r);b&&p.appendChild(b),Sc(r,p,t),e.labels&&e.labels.length>0&&p.appendChild(Pc(e.labels)),m.appendChild(p),n.appendChild(m);const C=document.createElement("div");if(C.className="gengage-chat-ai-toppick-detail",C.dataset.gengagePart="ai-top-pick-detail",a)Ec(e,C);else{const k=typeof e.reason=="string"?e.reason.trim():"";if(k){const P=document.createElement("p");P.className="gengage-chat-ai-toppick-snippet",P.dataset.gengagePart="ai-top-pick-snippet",P.textContent=k,C.appendChild(P)}}C.childNodes.length>0&&n.appendChild(C);const v=!!(i&&t.topPicksLoadingSku===i),x=(l||g)&&!h;if(v||l||g){const k=document.createElement("div");if(k.className="gengage-chat-ai-toppick-spinner",k.dataset.gengagePart="ai-top-pick-spinner",k.style.display=v?"":"none",n.appendChild(k),x){const P=document.createElement("button");P.className="gengage-chat-ai-toppick-cta gds-btn gds-btn-primary",P.dataset.gengagePart="ai-top-pick-cta",P.type="button",P.textContent=l?t.i18n?.addToCartButton??"Add to Cart":t.i18n?.viewDetails??"View Details",P.addEventListener("click",z=>{if(z.stopPropagation(),l){t.onAction({title:t.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:i,cartCode:s,quantity:1}});return}if(g){if(g.type==="findSimilar"&&i&&t.onProductClick){t.onProductClick({sku:i,url:o});return}t.onAction(g)}}),n.appendChild(P)}}return n}function Tc(e,t){const a=document.createElement("div");a.className="gengage-chat-ai-top-picks",a.dataset.gengagePart="ai-top-picks";const n=e.props?.suggestions??[];if(n.length===0)return a;const r=document.createElement("h3");r.className="gengage-chat-ai-top-picks-title",r.dataset.gengagePart="ai-top-picks-title",r.textContent=t.i18n?.aiTopPicksTitle??"Top Picks",a.appendChild(r);const i=document.createElement("div");i.className="gengage-chat-ai-top-picks-scroll",i.dataset.gengagePart="ai-top-picks-scroll";const o=n[0];if(i.appendChild(xn(o,t,!0)),n.length>1){const s=document.createElement("div");s.className="gengage-chat-ai-top-picks-rest",s.dataset.gengagePart="ai-top-picks-rest";for(let c=1;c<n.length;c++){const l=n[c],g=l.role==="winner";s.appendChild(xn(l,t,g))}i.appendChild(s)}return a.appendChild(i),a}function Pc(e){const t=document.createElement("div");t.className="gengage-chat-ai-toppick-labels",t.dataset.gengagePart="ai-top-pick-labels";for(const a of e){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,t.appendChild(n)}return t}function Ac(e,t){const a=document.createElement("div");a.className="gengage-chat-grounding-review gds-evidence-card",a.dataset.gengagePart="grounding-review-card";const n=e.props??{},r=n.title,i=n.reviewCount,o=n.action,s=t.i18n?.groundingReviewCta??"Read Reviews",c=document.createElement("span");c.className="gengage-chat-grounding-review-icon",c.appendChild(ct(["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(c);const l=document.createElement("div");l.className="gengage-chat-grounding-review-body",l.dataset.gengagePart="grounding-review-body";const g=document.createElement("div");if(g.className="gengage-chat-grounding-review-title",g.dataset.gengagePart="grounding-review-title",g.textContent=r??t.i18n?.customerReviewsTitle??"Customer Reviews",l.appendChild(g),i){const m=document.createElement("div");m.className="gengage-chat-grounding-review-subtitle",m.dataset.gengagePart="grounding-review-subtitle",m.textContent=(t.i18n?.groundingReviewSubtitle??"{count} yorum mevcut").replace("{count}",i),l.appendChild(m)}a.appendChild(l);const d=document.createElement("span");d.className="gengage-chat-grounding-review-cta",d.dataset.gengagePart="grounding-review-cta";const h=document.createElement("span");h.textContent=s,d.appendChild(h);const u=document.createElement("span");return u.className="gengage-chat-grounding-review-cta-icon",u.appendChild(ct(["M5 12h14","M15 8l4 4-4 4"],14)),d.appendChild(u),a.appendChild(d),o&&(a.classList.add("gds-clickable"),a.setAttribute("role","button"),a.setAttribute("tabindex","0"),a.addEventListener("click",()=>t.onAction(o)),a.addEventListener("keydown",m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),t.onAction(o))})),a}function Lc(e){if(e.action.type!=="findSimilar")return e.action;const t=e.action.payload&&typeof e.action.payload=="object"?e.action.payload:null,a=typeof t?.input=="string"&&t.input.trim()||typeof t?.text=="string"&&t.text.trim()||e.name.trim();if(!a)return e.action;const n={text:a,is_suggested_text:1};if(typeof t?.sku=="string"&&t.sku.trim()&&(n.sku=t.sku),Array.isArray(t?.group_skus)){const r=t.group_skus.filter(i=>typeof i=="string"&&i.length>0);r.length>0&&(n.group_skus=r)}return{title:e.action.title,type:"inputText",payload:n}}function Ic(e,t){const a=document.createElement("div");a.className="gengage-chat-grouping-cards",a.dataset.gengagePart="ai-grouping-cards";const n=e.props?.entries??[];if(n.length===0)return a;const r=e.props?.sectionTitle,i=typeof r=="string"&&r.trim().length>0?r.trim():t.i18n?.aiBrowseCategoriesTitle;if(i){const s=document.createElement("h3");s.className="gengage-chat-grouping-section-title",s.textContent=i,a.appendChild(s)}const o=document.createElement("div");o.className="gengage-chat-grouping-cards-scroll",o.dataset.gengagePart="ai-grouping-cards-scroll";for(const s of n){const c=document.createElement("div");if(c.className="gengage-chat-grouping-card gds-card",c.dataset.gengagePart="ai-grouping-card",c.classList.add("gds-clickable"),c.addEventListener("click",()=>t.onAction(Lc(s))),s.image&&ye(s.image)){const h=document.createElement("img");h.className="gengage-chat-grouping-card-img",h.dataset.gengagePart="ai-grouping-card-image",h.src=s.image,h.alt=s.name,h.width=64,h.height=64,c.appendChild(h)}const l=document.createElement("div");l.className="gengage-chat-grouping-card-body",l.dataset.gengagePart="ai-grouping-card-body";const g=document.createElement("span");if(g.className="gengage-chat-grouping-card-name",g.dataset.gengagePart="ai-grouping-card-name",g.textContent=s.name,l.appendChild(g),s.labels&&s.labels.length>0){const h=document.createElement("div");h.className="gengage-chat-grouping-card-labels",h.dataset.gengagePart="ai-grouping-card-labels";for(const u of s.labels.slice(0,2)){const m=document.createElement("span");m.className="gengage-chat-grouping-card-label gds-chip",m.textContent=u,h.appendChild(m)}l.appendChild(h)}c.appendChild(l);const d=document.createElement("span");d.className="gengage-chat-grouping-card-arrow",d.textContent="↳",c.insertBefore(d,c.firstChild),o.appendChild(c)}return a.appendChild(o),a}function Nc(e,t){const a=document.createElement("div");a.className="gengage-chat-suggested-search-cards",a.dataset.gengagePart="ai-suggested-search-cards";const n=e.props?.entries??[];if(n.length===0)return a;for(const r of n){const i=document.createElement("div");if(i.className="gengage-chat-suggested-search-card gds-card",i.dataset.gengagePart="ai-suggested-search-card",i.classList.add("gds-clickable"),i.addEventListener("click",()=>t.onAction(r.action)),r.image&&ye(r.image)){const c=document.createElement("img");c.className="gengage-chat-suggested-search-card-img",c.dataset.gengagePart="ai-suggested-search-card-image",c.src=r.image,c.alt=r.shortName,c.width=64,c.height=64,i.appendChild(c)}const o=document.createElement("div");o.className="gengage-chat-suggested-search-card-body",o.dataset.gengagePart="ai-suggested-search-card-body";const s=document.createElement("div");s.className="gengage-chat-suggested-search-card-name",s.dataset.gengagePart="ai-suggested-search-card-name",s.textContent=r.shortName,o.appendChild(s),i.appendChild(o),a.appendChild(i)}return a}function wn(e,t){const a=e.length>=2,n=t.i18n?.compareSelected??"Compare",r=t.comparisonSelectionWarning,i=document.createElement("div");i.className="gengage-chat-comparison-floating-btn",i.dataset.gengagePart="comparison-dock";const o=document.createElement("div");o.className="gengage-chat-comparison-floating-summary";const s=document.createElement("span");s.className="gengage-chat-comparison-floating-count",s.textContent=String(e.length),o.appendChild(s);const c=document.createElement("div");c.className="gengage-chat-comparison-floating-copy";const l=document.createElement("div");if(l.className="gengage-chat-comparison-floating-title",l.textContent=a?`${n} (${e.length})`:t.i18n?.compareMinHint??"Select at least 2 products",c.appendChild(l),r){const d=document.createElement("div");d.className="gengage-chat-comparison-floating-warning",d.setAttribute("role","status"),d.setAttribute("aria-live","polite"),d.textContent=r,c.appendChild(d)}o.appendChild(c),i.appendChild(o);const g=document.createElement("button");if(g.className="gengage-chat-comparison-floating-action gds-btn gds-btn-primary",g.type="button",g.textContent=n,g.disabled=!a,a||g.classList.add("gengage-chat-comparison-floating-action--disabled"),g.addEventListener("click",()=>{a&&t.onAction({title:n,type:"getComparisonTable",payload:{sku_list:[...e]}})}),i.appendChild(g),t.onToggleComparisonSku){const d=document.createElement("button");d.className="gengage-chat-comparison-floating-close gds-btn gds-btn-ghost gds-icon-btn",d.dataset.gengagePart="comparison-dock-close",d.type="button",d.setAttribute("aria-label",t.i18n?.closeAriaLabel??"Close"),d.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>',d.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),t.onToggleComparisonSku?.("")}),i.appendChild(d)}return i}function zc(e){const t=document.createElement("div");t.className="gengage-chat-pros-cons gds-card-soft",t.dataset.gengagePart="pros-cons";const a=e.props?.productName;if(a){const i=document.createElement("h4");i.className="gengage-chat-pros-cons-heading",i.textContent=a,t.appendChild(i)}const n=e.props?.pros,r=e.props?.cons;if(n&&n.length>0){const i=document.createElement("ul");i.className="gengage-chat-pros-cons-list",i.dataset.gengagePart="pros-list";for(const o of n){const s=document.createElement("li");s.className="gengage-chat-pros-cons-item",s.dataset.gengagePart="pros-item";const c=document.createElement("span");c.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--pro",c.textContent="✓",s.appendChild(c);const l=document.createElement("span");l.textContent=o,s.appendChild(l),i.appendChild(s)}t.appendChild(i)}if(r&&r.length>0){const i=document.createElement("ul");i.className="gengage-chat-pros-cons-list",i.dataset.gengagePart="cons-list";for(const o of r){const s=document.createElement("li");s.className="gengage-chat-pros-cons-item",s.dataset.gengagePart="cons-item";const c=document.createElement("span");c.className="gengage-chat-pros-cons-icon gengage-chat-pros-cons-icon--con",c.textContent="✗",s.appendChild(c);const l=document.createElement("span");l.textContent=o,s.appendChild(l),i.appendChild(s)}t.appendChild(i)}return t}function Mc(e,t){const a=e.props?.groups??[],n=e.props?.filterTags??[],r=document.createElement("div");if(r.className="gengage-chat-categories",r.dataset.gengagePart="categories-container",a.length===0)return r;const i=document.createElement("div");i.className="gengage-chat-categories-tabs gds-toolbar",i.dataset.gengagePart="categories-tab-bar",i.setAttribute("role","tablist");const o=[],s=[],c=l=>{for(let g=0;g<o.length;g++){const d=g===l;o[g].classList.toggle("gengage-chat-categories-tab--active",d),o[g].classList.toggle("is-active",d),o[g].setAttribute("aria-selected",String(d)),o[g].tabIndex=d?0:-1,s[g].style.display=d?"":"none"}};for(let l=0;l<a.length;l++){const g=a[l],d=`gengage-cat-tab-${l}`,h=`gengage-cat-panel-${l}`,u=document.createElement("button");u.className="gengage-chat-categories-tab gds-tab",u.type="button",u.dataset.gengagePart="categories-tab",u.id=d,u.setAttribute("role","tab"),u.setAttribute("aria-controls",h),u.setAttribute("aria-selected",String(l===0)),u.tabIndex=l===0?0:-1,l===0&&u.classList.add("gengage-chat-categories-tab--active","is-active"),u.textContent=g.groupName,u.addEventListener("click",()=>c(l)),u.addEventListener("keydown",p=>{let f=-1;p.key==="ArrowRight"||p.key==="ArrowDown"?f=(l+1)%a.length:p.key==="ArrowLeft"||p.key==="ArrowUp"?f=(l-1+a.length)%a.length:p.key==="Home"?f=0:p.key==="End"&&(f=a.length-1),f>=0&&(p.preventDefault(),c(f),o[f].focus())}),o.push(u),i.appendChild(u);const m=document.createElement("div");m.className="gengage-chat-categories-grid",m.dataset.gengagePart="categories-panel",m.id=h,m.setAttribute("role","tabpanel"),m.setAttribute("aria-labelledby",d),l!==0&&(m.style.display="none");for(const p of g.products){const f=Bc(p,t);m.appendChild(f)}s.push(m)}r.appendChild(i);for(const l of s)r.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 g of n){const d=document.createElement("button");d.className="gengage-chat-categories-filter-tag gds-chip",d.type="button",d.dataset.gengagePart="categories-filter-tag",d.textContent=g.title,g.action&&d.addEventListener("click",()=>{t.onAction(g.action)}),l.appendChild(d)}r.appendChild(l)}return r}function Bc(e,t){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",e.imageUrl&&ye(e.imageUrl)){const i=document.createElement("img");i.className="gengage-chat-product-card-img",i.src=e.imageUrl,i.alt=e.name,i.loading="lazy",Se(i),a.appendChild(i)}const n=document.createElement("div");n.className="gengage-chat-product-card-body";const r=document.createElement("div");if(r.className="gengage-chat-product-card-name",r.textContent=e.name,n.appendChild(r),e.price){const i=document.createElement("div");i.className="gengage-chat-product-card-price",i.textContent=q(e.price,t.pricing),n.appendChild(i)}return a.appendChild(n),(t.onProductSelect||t.onAction)&&(a.classList.add("gds-clickable"),a.addEventListener("click",()=>{if(e.sku){t.onAction({title:e.name,type:"launchSingleProduct",payload:{sku:e.sku}});return}t.onProductSelect?.(e)})),a}function Rc(e,t){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 r=document.createElement("h4");r.className="gengage-chat-handoff-notice-heading",r.textContent=t.i18n?.handoffHeading??"Transferring to a support agent",a.appendChild(r);const i=e.props?.summary;if(i){const o=document.createElement("p");o.className="gengage-chat-handoff-notice-summary",o.textContent=i,a.appendChild(o)}return a}function Oc(e,t){const a=e.props?.product??e.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",u=>{u.target.closest("a")||t.onProductSelect?.(a)});const r=a.imageUrl;if(r&&pe(r)){const u=document.createElement("div");u.className="gengage-chat-product-summary__image",u.dataset.gengagePart="product-summary-image";const m=document.createElement("img");m.loading="lazy",se(m,"src",r),m.alt=a.name||"Product image",Se(m),u.appendChild(m),n.appendChild(u)}const i=document.createElement("div");i.className="gengage-chat-product-summary__content",i.dataset.gengagePart="product-summary-content";const o=a.brand,s=a.name;if(s){const u=document.createElement("div");u.className="gengage-chat-product-summary__name",u.dataset.gengagePart="product-summary-name";const m=o&&!s.toLowerCase().startsWith(o.toLowerCase())?`${o} ${s}`:s;u.textContent=m,u.title=m,i.appendChild(u)}const c=a.rating,l=a.reviewCount;if(typeof c=="number"&&Number.isFinite(c)&&c>0){const u=document.createElement("div");if(u.className="gengage-chat-product-summary__rating",u.dataset.gengagePart="product-summary-rating",u.appendChild(ma(c)),typeof l=="number"&&Number.isFinite(l)){const m=document.createElement("span");m.className="gengage-chat-product-summary__review-count",m.textContent=` (${l})`,u.appendChild(m)}i.appendChild(u)}const g=a.price,d=a.originalPrice;if(g){const u=Qe(t,a),m=lt(t,a),p=!!(d&&d!==g),f=document.createElement("div");f.className="gengage-chat-product-summary__price",f.dataset.gengagePart="product-summary-price";const b=!!(u&&p),C=xt(t,a);if(b){const v=wt({reasonText:u,salePriceFormatted:q(g,t.pricing),...C!==void 0?{logoUrl:C}:{}});if(p&&m==="inline"){f.classList.add("gengage-chat-product-summary__price--inline"),f.appendChild(v);const x=document.createElement("span");x.className="gengage-chat-product-summary__price-sep",x.setAttribute("aria-hidden","true");const k=document.createElement("span");k.className="gengage-chat-product-summary__price-original",k.textContent=q(d,t.pricing),f.appendChild(x),f.appendChild(k)}else{const x=document.createElement("span");x.className="gengage-chat-product-summary__price-original",x.textContent=q(d,t.pricing),f.appendChild(x),f.appendChild(document.createTextNode(" ")),f.appendChild(v)}i.appendChild(f)}else{if(p&&m==="inline"){f.classList.add("gengage-chat-product-summary__price--inline");const v=document.createElement("span");v.className="gengage-chat-product-summary__price-current",v.textContent=q(g,t.pricing);const x=document.createElement("span");x.className="gengage-chat-product-summary__price-sep",x.setAttribute("aria-hidden","true");const k=document.createElement("span");k.className="gengage-chat-product-summary__price-original",k.textContent=q(d,t.pricing),f.appendChild(v),f.appendChild(x),f.appendChild(k)}else if(p){const v=document.createElement("span");v.className="gengage-chat-product-summary__price-original",v.textContent=q(d,t.pricing),f.appendChild(v),f.appendChild(document.createTextNode(" "));const x=document.createElement("span");x.className="gengage-chat-product-summary__price-current",x.textContent=q(g,t.pricing),f.appendChild(x)}else{const v=document.createElement("span");v.className="gengage-chat-product-summary__price-current",v.textContent=q(g,t.pricing),f.appendChild(v)}if(u){const v=document.createElement("div");v.className="gengage-chat-product-summary__price-stack",v.appendChild(_t(u)),v.appendChild(f),i.appendChild(v)}else i.appendChild(f)}}n.appendChild(i);const h=a.url;if(h&&pe(h)){const u=document.createElement("a");u.className="gengage-chat-product-summary__cta gds-chip gds-chip-active",u.dataset.gengagePart="product-summary-cta",se(u,"href",h),se(u,"target","_blank"),se(u,"rel","noopener noreferrer"),u.textContent=t.i18n?.productCtaLabel??"View",n.appendChild(u)}return n}var Dc={PhotoAnalysisCard:({element:e,context:t})=>Rs(e,t),BeautyPhotoStep:({element:e,context:t})=>gn(e,t)};function Fc(e){if(typeof e!="string")return;const t=e.trim();if(!t)return;if(/^https?:\/\//i.test(t))return t;let a=t.split(/[?#]/)[0];if(a&&(a=a.replace(/^\/+/,""),a.startsWith("remoteConfig/")&&(a=a.slice(13)),!!a))return`https://configs.gengage.ai/assets/${a}`}function $c(e,t,a,n,r){const i=document.createElement("div");i.className="gengage-chat-consulting-style-picker";const o=document.createElement("div");o.className="gengage-chat-consulting-style-picker-title",o.textContent=(a==="watch_expert"?r?.i18n?.watchStylesPreparedTitle??"Prepared {count} style directions for you":r?.i18n?.beautyStylesPreparedTitle??"Prepared {count} beauty styles for you").replace("{count}",String(n.length)),i.appendChild(o);const s=document.createElement("div");s.className="gengage-chat-consulting-style-grid",i.appendChild(s);const c=g=>{t.innerHTML="";const d=Array.isArray(g.product_list)?g.product_list:[],h=a==="watch_expert"?[]:Array.isArray(g.recommendation_groups)?g.recommendation_groups:[];if(h.length>0){const u=new Map;for(const v of d){const x=typeof v?.sku=="string"?v.sku:void 0;x&&u.set(x,v)}const m=(v,x,k,P)=>{if(x.length===0)return;const z=document.createElement("section");z.className="gengage-chat-consulting-group";const M=document.createElement("div");M.className="gengage-chat-consulting-group-header";const $=document.createElement("h4");if($.className="gengage-chat-consulting-group-label",$.textContent=`${v} (${x.length})`,M.appendChild($),typeof P=="string"&&P.trim().length>0){const j=document.createElement("p");j.className="gengage-chat-consulting-group-reason",j.textContent=P,M.appendChild(j)}z.appendChild(M);const K=document.createElement("div");K.className="gengage-chat-product-grid gengage-chat-consulting-group-grid",k&&K.classList.add("gengage-chat-consulting-group-grid--single-group"),K.style.setProperty("--consulting-group-columns",String(Math.max(1,Math.min(4,x.length))));for(const j of x){const I=ba({type:"ProductCard",props:{product:j}},r??{onAction:()=>{}});K.appendChild(I)}z.appendChild(K),t.appendChild(z)},p=new Set,f=[];for(const v of h){const x=(Array.isArray(v.skus)?v.skus.filter(z=>typeof z=="string"&&z.trim().length>0):[]).map(z=>(p.add(z),u.get(z))).filter(z=>!!z);if(x.length===0)continue;const k=typeof v.label=="string"&&v.label.trim().length>0?v.label:"Öneri",P=typeof v.reason=="string"?v.reason:void 0;f.push({labelText:k,products:x,...P!==void 0?{reasonText:P}:{}})}const b=d.filter(v=>{const x=typeof v?.sku=="string"?v.sku:"";return x.length>0&&!p.has(x)});b.length>0&&f.push({labelText:r?.i18n?.consultingOtherCompatibleProductsLabel??"Other compatible products",products:b});const C=f.length===1;for(const v of f)m(v.labelText,v.products,C,v.reasonText);return}for(const u of d){const m=ba({type:"ProductCard",props:{product:u}},r??{onAction:()=>{}});t.appendChild(m)}};let l=0;n.forEach((g,d)=>{const h=document.createElement("button");h.type="button",h.className="gengage-chat-consulting-style-btn gds-card",d===0&&h.classList.add("gengage-chat-consulting-style-btn--active"),h.setAttribute("aria-label",g.style_label??`Style ${d+1}`);const u=document.createElement("div");u.className="gengage-chat-consulting-style-media";const m=Fc(g.image_url);if(m&&pe(m)){const f=document.createElement("img");f.className="gengage-chat-consulting-style-image",se(f,"src",m),f.alt=g.style_label??`Style ${d+1}`,f.loading="lazy",Se(f),u.appendChild(f)}const p=document.createElement("span");p.className="gengage-chat-consulting-style-caption",p.textContent=g.style_label??`Style ${d+1}`,u.appendChild(p),h.appendChild(u),h.addEventListener("click",()=>{l!==d&&(l=d,s.querySelectorAll(".gengage-chat-consulting-style-btn").forEach((f,b)=>f.classList.toggle("gengage-chat-consulting-style-btn--active",b===d)),c(g))}),s.appendChild(h)}),e.appendChild(i),c(n[0]??{})}function Uc(e){const t=typeof e.props?.source=="string"?e.props.source:void 0,a=(Array.isArray(e.props?.styleVariations)?e.props.styleVariations:[]).filter(n=>Array.isArray(n.product_list)&&n.product_list.length>0);return{isConsulting:tn(t)&&a.length>0,source:t,styleVariations:a}}function Hc(e,t,a,n){$c(e,t,a.source,a.styleVariations,n)}function fa(){return window.innerWidth<768}var kn={ActionButtons:({element:e,context:t})=>Zc(e,t),ActionButton:({element:e,context:t})=>Vc(e,t),ProductCard:({element:e,context:t})=>ba(e,t),ProductDetailsPanel:({element:e,context:t})=>hl(e,t),ProductGrid:({element:e,spec:t,renderElement:a,context:n})=>xl(e,t,a,n),ReviewHighlights:({element:e,context:t})=>_c(e,{emptyReviewsMessage:t.i18n?.emptyReviewsMessage,reviewFilterPositive:t.i18n?.reviewFilterPositive,reviewFilterNegative:t.i18n?.reviewFilterNegative,reviewCustomersMentionSingular:t.i18n?.reviewCustomersMentionSingular,reviewCustomersMentionPlural:t.i18n?.reviewCustomersMentionPlural,reviewSubjectsHeading:t.i18n?.reviewSubjectsHeading}),ComparisonTable:({element:e,context:t})=>wl(e,t),AITopPicks:({element:e,context:t})=>Tc(e,t),GroundingReviewCard:({element:e,context:t})=>Ac(e,t),AIGroupingCards:({element:e,context:t})=>Ic(e,t),AISuggestedSearchCards:({element:e,context:t})=>Nc(e,t),ProsAndCons:({element:e})=>zc(e),CategoriesContainer:({element:e,context:t})=>Mc(e,t),HandoffNotice:({element:e,context:t})=>Rc(e,t),ProductSummaryCard:({element:e,context:t})=>Oc(e,t),Divider:({element:e})=>kl(e),...Dc},Cn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function qc(){return{...kn}}function jc(e,t,a=kn,n=Cn){return Kt({spec:e,context:t,registry:a,containerClassName:"gengage-chat-uispec",unknownRenderer:n})}function Zc(e,t){const a=document.createElement("div");a.className="gengage-chat-action-buttons";const n=e.props?.buttons;if(n)for(const r of n){const i=document.createElement("button");i.className="gengage-chat-action-btn",i.textContent=r.label,i.addEventListener("click",()=>t.onAction(r.action)),a.appendChild(i)}return a}function Vc(e,t){const a=document.createElement("button");a.className="gengage-chat-action-btn";const n=e.props?.label;typeof n=="string"&&(a.textContent=n);const r=e.props?.action;return r&&a.addEventListener("click",()=>t.onAction(r)),a}function Sn(e,t,a,n,r){e.replaceChildren();const i=lt(t,a),o=!!(r&&n&&r!==n),s=Qe(t,a),c=!!(s&&o),l=xt(t,a);if(!n||parseFloat(n)<=0)return;if(c){const d=wt({reasonText:s,salePriceFormatted:q(n,t.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&i==="inline"){e.classList.add("gengage-chat-product-card-price-block--inline");const h=document.createElement("div");h.className="gengage-chat-product-card-price-row",h.appendChild(d);const u=document.createElement("span");u.className="gengage-chat-product-card-price-sep",u.setAttribute("aria-hidden","true");const m=document.createElement("span");m.className="gengage-chat-product-card-original-price",m.textContent=q(r,t.pricing),h.appendChild(u),h.appendChild(m),e.appendChild(h);return}if(e.classList.remove("gengage-chat-product-card-price-block--inline"),e.appendChild(d),o){e.appendChild(document.createTextNode(" "));const h=document.createElement("span");h.className="gengage-chat-product-card-original-price",h.textContent=q(r,t.pricing),e.appendChild(h)}return}if(o&&i==="inline"){e.classList.add("gengage-chat-product-card-price-block--inline");const d=document.createElement("div");d.className="gengage-chat-product-card-price-row";const h=document.createElement("span");h.className="gengage-chat-product-card-current-price",h.textContent=q(n,t.pricing);const u=document.createElement("span");u.className="gengage-chat-product-card-price-sep",u.setAttribute("aria-hidden","true");const m=document.createElement("span");m.className="gengage-chat-product-card-original-price",m.textContent=q(r,t.pricing),d.appendChild(h),d.appendChild(u),d.appendChild(m),e.appendChild(d);return}e.classList.remove("gengage-chat-product-card-price-block--inline");const g=document.createElement("span");if(g.className="gengage-chat-product-card-current-price",g.textContent=q(n,t.pricing),e.appendChild(g),o){e.appendChild(document.createTextNode(" "));const d=document.createElement("span");d.className="gengage-chat-product-card-original-price",d.textContent=q(r,t.pricing),e.appendChild(d)}}function En(e,t,a,n,r,i,o){e.classList.remove("gengage-chat-product-details-price--inline"),e.replaceChildren(),e.className="gengage-chat-product-details-price";const s=Qe(t,a),c=!!(s&&o),l=xt(t,a);if(c){const d=wt({reasonText:s,salePriceFormatted:q(n,t.pricing),...l!==void 0?{logoUrl:l}:{}});if(o&&i==="inline"){e.classList.add("gengage-chat-product-details-price--inline"),e.appendChild(d);const h=document.createElement("span");h.className="gengage-chat-product-details-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=q(r,t.pricing),e.appendChild(h),e.appendChild(u)}else{if(o){const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=q(r,t.pricing),e.appendChild(h),e.appendChild(document.createTextNode(" "))}e.appendChild(d)}}else if(o&&i==="inline"){e.classList.add("gengage-chat-product-details-price--inline");const d=document.createElement("span");d.className="gengage-chat-product-details-current-price",d.textContent=q(n,t.pricing);const h=document.createElement("span");h.className="gengage-chat-product-details-price-sep",h.setAttribute("aria-hidden","true");const u=document.createElement("span");u.className="gengage-chat-product-details-original-price",u.textContent=q(r,t.pricing),e.appendChild(d),e.appendChild(h),e.appendChild(u)}else{if(o){const h=document.createElement("span");h.className="gengage-chat-product-details-original-price",h.textContent=q(r,t.pricing),e.appendChild(h),e.appendChild(document.createTextNode(" "))}const d=document.createElement("span");d.className="gengage-chat-product-details-current-price",d.textContent=q(n,t.pricing),e.appendChild(d)}const g=kt(a,"discountPercent","price_discount_rate");if(typeof g=="number"&&g>0){const d=document.createElement("span");d.className="gengage-chat-product-details-discount-badge",d.textContent=`%${ua(g)}`,e.appendChild(d)}}function ba(e,t){const a=document.createElement("div");a.className="gengage-chat-product-card gds-card gds-product-card gds-card-interactive";const n=e.props?.product??e.props;if(!n)return a;const r=n.sku;r&&(a.dataset.sku=r);const i=e.props?.action;(t.onProductSelect||i)&&(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(i){t.onAction(i);return}t.onProductSelect?.(n)}}));const o=n.imageUrl;if(o&&pe(o)){const I=document.createElement("div");I.className="gengage-chat-product-card-img-wrapper";const _=document.createElement("img");_.className="gengage-chat-product-card-img",_.loading="lazy",se(_,"src",o);const y=n.name;y&&(_.alt=y),Se(_),I.appendChild(_);const w=n.discountPercent;if(typeof w=="number"&&w>0){const A=document.createElement("span");A.className="gengage-chat-product-card-discount-badge",A.textContent=`%${ua(w)}`,I.appendChild(A)}const E=document.createElement("div");E.className="gengage-chat-product-card-img-actions";const L=n.sku;if(L&&t.onFavoriteToggle){const A=document.createElement("button");A.className="gengage-chat-favorite-btn",A.type="button",A.dataset.gengageFavoriteSku=L,A.setAttribute("aria-label",t.i18n?.addToFavoritesLabel??"Add to favorites");const U=t.favoritedSkus?.has(L)??!1;U&&A.classList.add("gengage-chat-favorite-btn--active"),A.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${U?"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>`,A.addEventListener("click",F=>{F.stopPropagation(),A.classList.toggle("gengage-chat-favorite-btn--active");const W=A.querySelector("svg");W&&W.setAttribute("fill",A.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none"),t.onFavoriteToggle(L,n)}),E.appendChild(A)}const N=n.sku,R=t.i18n?.findSimilarLabel??"Find Similar";if(N){const A=document.createElement("button");A.className="gengage-chat-find-similar-pill",A.type="button",A.setAttribute("aria-label",R),A.dataset.tooltip=R,A.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=R,A.appendChild(U),A.addEventListener("click",F=>{F.stopPropagation(),t.onAction({title:R,type:"findSimilar",payload:{sku:N,...o?{image_url:o}:{}}})}),E.appendChild(A)}E.childElementCount>0&&I.appendChild(E),a.appendChild(I)}const s=document.createElement("div");s.className="gengage-chat-product-card-body";const c=n.brand;if(c){const I=document.createElement("div");I.className="gengage-chat-product-card-brand",I.textContent=c,s.appendChild(I)}const l=n.rating,g=n.reviewCount,d=n.price,h=n.originalPrice,u=n.price_async,m=Qe(t,n),p=lt(t,n),f=!!(m||h&&d&&h!==d&&parseFloat(d)>0&&p==="inline"),b=typeof l=="number"&&Number.isFinite(l)&&l>0,C=document.createElement("div");C.className="gengage-chat-product-card-meta-row";const v=document.createElement("div");v.className="gengage-chat-product-card-price gengage-chat-product-card-price-block";const x=f?(()=>{const I=document.createElement("div");return I.className="gengage-chat-product-card-price-stack",m&&I.appendChild(_t(m)),I.appendChild(v),I})():v;if(u===!0){const I=document.createElement("span");I.className="gengage-chat-price-skeleton",v.appendChild(I),setTimeout(()=>{I.parentElement&&(d&&parseFloat(d)>0?Sn(v,t,n,d,n.originalPrice):I.remove())},300)}else d&&parseFloat(d)>0&&Sn(v,t,n,d,h);if((v.childElementCount>0||u===!0)&&C.appendChild(x),b){const I=document.createElement("div");I.className="gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";const _=ha(l),y=[`${_.toFixed(1)}`,"out of 5 stars"];typeof g=="number"&&Number.isFinite(g)&&y.push(`(${g} reviews)`),I.setAttribute("aria-label",y.join(" "));const w=document.createElement("span");w.className="gengage-chat-product-card-rating-compact-star",w.setAttribute("aria-hidden","true"),w.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=_.toFixed(1),I.appendChild(w),I.appendChild(E),C.appendChild(I)}C.childElementCount===0&&(C.classList.add("gengage-chat-product-card-meta-row--empty"),C.setAttribute("aria-hidden","true")),s.appendChild(C);const k=n.name;if(k){const I=document.createElement("div");I.className="gengage-chat-product-card-name",I.textContent=k,I.title=k,s.appendChild(I)}const P=n.inStock;if(typeof P=="boolean"){const I=document.createElement("div");I.className=`gengage-chat-product-card-stock ${P?"is-in-stock":"is-out-of-stock"}`,I.textContent=P?t.i18n?.inStockLabel??"In Stock":t.i18n?.outOfStockLabel??"Out of Stock",s.appendChild(I)}a.appendChild(s);const z=n.url,M=n.sku,$=n.cartCode,K=!!($&&M&&P!==!1),j=t.i18n?.productCtaLabel??"View";if(K){const I=document.createElement("div");I.className="gengage-chat-product-card-buy-footer";const _=document.createElement("button");_.type="button",_.className="gengage-chat-product-card-buy-trigger",_.textContent=j,_.addEventListener("click",y=>{y.stopPropagation(),t.onAction({title:t.i18n?.addToCartButton??j,type:"addToCart",payload:{sku:M,cartCode:$,quantity:1}})}),I.appendChild(_),a.appendChild(I)}else if(i){const I=document.createElement("button");I.className="gengage-chat-product-card-cta",I.type="button",I.textContent=i.type==="launchSingleProduct"?j:i.title||j,I.addEventListener("click",_=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){_.stopPropagation();return}t.onAction(i)}),a.appendChild(I)}else if(z&&pe(z)){const I=document.createElement("a");I.className="gengage-chat-product-card-cta",se(I,"href",z),se(I,"target","_blank"),se(I,"rel","noopener noreferrer"),I.textContent=j,I.addEventListener("click",_=>{if(a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){_.preventDefault(),_.stopPropagation();return}t.onProductClick&&M&&(_.preventDefault(),t.onProductClick({sku:M,url:z}))}),a.appendChild(I)}if(t.comparisonSelectMode&&M&&t.onToggleComparisonSku){const I=document.createElement("div");I.className="gengage-chat-comparison-select-wrapper";const _=t.comparisonSelectedSkus?.includes(M)??!1;_&&I.classList.add("gengage-chat-comparison-select-wrapper--selected");const y=n.name??M,w=t.i18n?.comparisonSelectCardHint??"Tap anywhere on the card to add or remove it from comparison.";I.setAttribute("role","group"),I.setAttribute("aria-label",`${String(y)}. ${w}`);const E=document.createElement("button");E.type="button",E.className="gengage-chat-comparison-checkbox",E.dataset.selected=_?"true":"false",E.setAttribute("aria-pressed",_?"true":"false");const L=document.createElement("span");L.className="gengage-chat-comparison-checkbox-icon",L.innerHTML=_?'<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=_?t.i18n?.comparisonSelectedLabel??"Selected":t.i18n?.comparisonSelectLabel??"Select to compare",E.appendChild(L),E.appendChild(N),E.addEventListener("click",A=>{A.stopPropagation(),t.onToggleComparisonSku?.(M)});const R=document.createElement("div");return R.className="gengage-chat-comparison-card-hint",R.setAttribute("aria-hidden","true"),R.textContent=w,I.addEventListener("click",A=>{A.target.closest(".gengage-chat-comparison-checkbox")||(A.stopPropagation(),t.onToggleComparisonSku?.(M))}),I.appendChild(E),I.appendChild(R),I.appendChild(a),I}return a}var Tn=new Set(["color","colour","renk","renk kodu","color code"]),Wc=new Set(["size","beden","boyut"]),Gc=new Set(["finish","bitiş","bitişi"]),Kc=["variants","variantOptions","variant_options","productVariants","product_variants","options"],Yc=new Set(["H2","H3","H4","P","BR","UL","OL","LI","STRONG","B","EM","I"]),Jc=new Set(["SCRIPT","STYLE","NOSCRIPT","IFRAME","OBJECT","EMBED"]);function me(e,...t){for(const a of t){const n=e[a];if(typeof n=="string"){const r=n.trim();if(r.length>0)return r}}}function kt(e,...t){for(const a of t){const n=e[a];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){const r=Number(n.replace(",","."));if(Number.isFinite(r))return r}}}function Ct(e,...t){for(const a of t){const n=e[a];if(typeof n=="boolean")return n}}function Qc(e,...t){for(const a of t){const n=e[a];if(n&&typeof n=="object"&&!Array.isArray(n))return n}}function Xc(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}function el(e){const t=[...Xc(e.images),me(e,"imageUrl","image_url","image")].filter(a=>!!a&&pe(a));return Array.from(new Set(t))}function tl(e){return typeof DOMParser<"u"?(new DOMParser().parseFromString(e,"text/html").body.textContent??"").replace(/\s+/g," ").trim():e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim()}function al(e){const t=me(e,"description_html","descriptionHtml");if(t){const n=tl(t);if(n)return{text:n,html:t}}const a=me(e,"description");return a?{text:a}:void 0}function St(e){return Array.isArray(e)?e.map(t=>{if(!t||typeof t!="object")return null;const a=t,n=me(a,"key","name","label","title"),r=a.value,i=typeof r=="string"||typeof r=="number"||typeof r=="boolean"?String(r).trim():void 0;return!n||!i?null:{key:n,value:i}}).filter(t=>t!==null):e&&typeof e=="object"?Object.entries(e).map(([t,a])=>{const n=typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a).trim():void 0;return!t||!n?null:{key:t,value:n}}).filter(t=>t!==null):[]}function Pn(e){const t=St(e.features);return t.length>0?t:St(e.specifications)}function nl(e){const t=e.specifications,a=St(t);if(a.length>0)return Array.isArray(t)?a:Object.fromEntries(a.map(r=>[r.key,r.value]));const n=St(e.features);return n.length>0?n:void 0}function ze(e,...t){return me(e,...t)}function An(e,...t){return kt(e,...t)}function Ln(e){return ze(e,"value","option_value","attribute_value","label","title","name","variant_name","sku")}function In(e){const t=ze(e,"type","attribute","option_name","attribute_name");return t||(ze(e,"value")?ze(e,"name","variant_name"):void 0)}function rl(e){const t=In(e)?.toLowerCase();return!!(me(e,"color","colour","color_hex","hex","swatch","swatchColor")||t&&Tn.has(t))}function Nn(e){if(!e)return;const t=e.trim();if(!(!t||t.includes(";"))&&(typeof CSS<"u"&&CSS.supports?.("color",t)||/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t)))return t}function il(e){const t=Nn(ze(e,"swatchColor","swatch","color_hex","hex","color","colour"));if(t)return t;if(rl(e))return Nn(Ln(e))}function ol(e){return ze(e,"image","imageUrl","image_url","swatchImage","swatch_image")}function sl(e){return An(e,"price_discounted","priceDiscounted")??ze(e,"price_discounted","priceDiscounted")??An(e,"price")??ze(e,"price")}function cl(e){const t=e.trim().toLowerCase();return Tn.has(t)||Wc.has(t)||Gc.has(t)}function ll(e){const t=e.trim().toLowerCase();return t==="renk kodu"?"Renk":t==="color code"?"Color":e.trim()}function dl(e){for(const t of Kc){const a=e[t];if(!Array.isArray(a))continue;const n=a.filter(r=>!!r&&typeof r=="object"&&!Array.isArray(r));if(n.length>0)return n}}function gl(e){const t=dl(e);if(t)return t;const a=me(e,"sku"),n=Ct(e,"inStock","in_stock"),r=[],i=new Set,o=(c,l)=>{if(!cl(c)||typeof l!="string"&&typeof l!="number"&&typeof l!="boolean")return;const g=String(l).trim();if(!g)return;const d=ll(c),h=`${d.toLowerCase()}:${g.toLowerCase()}`;i.has(h)||(i.add(h),r.push({name:d,value:g,sku:a,inStock:n}))},s=Qc(e,"facetHits","facet_hits");if(s)for(const[c,l]of Object.entries(s))o(c,l);for(const c of Pn(e))o(c.key,c.value);return r}function pl(e,t){const a=Array.from(new Set(e.map(In).filter(n=>!!n)));return a.length===1?`${e.length} ${a[0]}`:t.i18n?.variantsLabel??"Variants"}function hl(e,t){const a=document.createElement("article");a.className="gengage-chat-product-details-panel";const n=e.props?.product??e.props;if(!n)return a;const r=me(n,"name"),i=me(n,"brand"),o=me(n,"sku"),s=me(n,"cartCode","cart_code"),c=me(n,"price"),l=me(n,"originalPrice","price_original"),g=Ct(n,"price_async"),d=Qe(t,n),h=lt(t,n),u=!!(l&&c&&l!==c),m=Ct(n,"inStock","in_stock"),p=kt(n,"reviewCount","review_count"),f=kt(n,"rating"),b=el(n),C=Pn(n).slice(0,4);if(b.length>1){const y=document.createElement("div");y.className="gengage-chat-product-details-media gengage-chat-product-details-gallery gengage-chat-product-details-img-wrap";const w=document.createElement("img");w.className="gengage-chat-product-details-img",se(w,"src",b[0]),w.alt=r??"Product image",Se(w),y.appendChild(w);const E=document.createElement("div");E.className="gengage-chat-product-gallery-thumbs";const L=6;let N=null,R=0;const A=t.i18n,U=A?.galleryPrevAriaLabel??"Previous image",F=A?.galleryNextAriaLabel??"Next image",W=B=>B==="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>',Q=document.createElement("button");Q.type="button",Q.className="gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn",Q.setAttribute("aria-label",U),Q.innerHTML=W("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",F),X.innerHTML=W("next");const oe=()=>{Q.disabled=R<=0,X.disabled=R>=b.length-1},Z=B=>{if(B<0||B>=b.length||B===R)return;const Y=b[B];if(!Y)return;se(w,"src",Y);const O=E.querySelectorAll(".gengage-chat-product-gallery-thumb");N&&N.classList.remove("gengage-chat-product-gallery-thumb--active"),B<L&&O[B]?(O[B].classList.add("gengage-chat-product-gallery-thumb--active"),N=O[B]):N=null,R=B,oe()};for(let B=0;B<b.length;B++){const Y=b[B];if(B>=L)break;const O=document.createElement("img");O.className="gengage-chat-product-gallery-thumb",B===0&&(O.classList.add("gengage-chat-product-gallery-thumb--active"),N=O),se(O,"src",Y),O.alt=`${r??"Product"} ${B+1}`,O.width=48,O.height=48,Se(O),O.addEventListener("click",()=>{Z(B)}),E.appendChild(O)}if(b.length>L){const B=document.createElement("span");B.className="gengage-chat-product-gallery-thumb-more",B.textContent=`+${b.length-L}`,E.appendChild(B)}Q.addEventListener("click",B=>{B.stopPropagation(),Z(R-1)}),X.addEventListener("click",B=>{B.stopPropagation(),Z(R+1)}),oe();let be=0;const H=50;w.addEventListener("touchstart",B=>{be=B.changedTouches[0].clientX},{passive:!0}),w.addEventListener("touchend",B=>{const Y=B.changedTouches[0].clientX,O=be-Y;Math.abs(O)<H||Z(O>0?Math.min(R+1,b.length-1):Math.max(R-1,0))}),y.appendChild(Q),y.appendChild(X),y.appendChild(E),a.appendChild(y)}else if(b.length===1){const y=document.createElement("div");y.className="gengage-chat-product-details-media gengage-chat-product-details-img-wrap";const w=document.createElement("img");w.className="gengage-chat-product-details-img",w.loading="lazy",se(w,"src",b[0]),Se(w),w.alt=r??"Product image",y.appendChild(w),a.appendChild(y)}const v=document.createElement("div");if(v.className="gengage-chat-product-details-content",i&&(!r||!r.toLowerCase().startsWith(i.toLowerCase()))){const y=document.createElement("div");y.className="gengage-chat-product-details-brand",y.textContent=i,v.appendChild(y)}if(r){const y=document.createElement("h3");y.className="gengage-chat-product-details-title",y.textContent=r,y.title=r,v.appendChild(y)}if(typeof f=="number"&&Number.isFinite(f)&&f>0){const y=document.createElement(o?"button":"div");y.className="gengage-chat-product-details-rating",o&&(y.type="button",y.classList.add("gengage-chat-product-details-rating--clickable"),y.setAttribute("aria-label",t.i18n?.groundingReviewCta??"Read Reviews"),y.addEventListener("click",()=>{t.onAction({title:t.i18n?.customerReviewsTitle??"Customer Reviews",type:"reviewSummary",payload:{sku:o}})})),y.appendChild(ma(f));const w=document.createElement("span");if(w.className="gengage-chat-product-details-rating-value",w.textContent=ha(f).toFixed(1),y.appendChild(w),typeof p=="number"&&Number.isFinite(p)){const E=document.createElement("span");E.className="gengage-chat-product-details-review-count",E.textContent=` (${p})`,y.appendChild(E)}v.appendChild(y)}{let y=v;if(d){const E=document.createElement("div");E.className="gengage-chat-product-details-price-stack",E.appendChild(_t(d)),v.appendChild(E),y=E}const w=document.createElement("div");if(w.className="gengage-chat-product-details-price",g===!0){const E=document.createElement("span");E.className="gengage-chat-price-skeleton",w.appendChild(E),y.appendChild(w),setTimeout(()=>{if(E.parentElement)if(c&&parseFloat(c)>0)En(w,t,n,c,l,h,u);else{const L=w.parentElement;w.remove(),L?.classList.contains("gengage-chat-product-details-price-stack")&&L.remove()}},300)}else if(c&&parseFloat(c)>0)En(w,t,n,c,l,h,u),y.appendChild(w);else if(d){const E=y;E.classList.contains("gengage-chat-product-details-price-stack")&&E.remove()}}if(typeof m=="boolean"){const y=document.createElement("div");y.className=`gengage-chat-product-details-stock ${m?"is-in-stock":"is-out-of-stock"}`,y.textContent=m?t.i18n?.inStockLabel??"In Stock":t.i18n?.outOfStockLabel??"Out of Stock",v.appendChild(y)}const x=n.promotions;if(x&&x.length>0){const y=document.createElement("div");y.className="gengage-chat-product-details-promos";for(const w of x.slice(0,3)){if(!w||/%(0(\.0+)?)\s/.test(w))continue;const E=document.createElement("span");E.className="gengage-chat-product-details-promo-badge",E.textContent=w,E.title=w,y.appendChild(E)}y.childElementCount>0&&v.appendChild(y)}if(C.length>0){const y=document.createElement("dl");y.className="gengage-chat-product-details-facts";for(const w of C){const E=document.createElement("div");E.className="gengage-chat-product-details-fact";const L=document.createElement("dt");L.textContent=w.key;const N=document.createElement("dd");N.textContent=w.value,E.appendChild(L),E.appendChild(N),y.appendChild(E)}v.appendChild(y)}const k=gl(n);if(k.length>0){const y=document.createElement("div");y.className="gengage-chat-product-variants";const w=document.createElement("div");w.className="gengage-chat-product-variants-label",w.textContent=pl(k,t),y.appendChild(w);const E=document.createElement("div");E.className="gengage-chat-product-variants-list";for(const L of k){const N=Ln(L),R=ze(L,"sku");if(!N&&!R)continue;const A=document.createElement("button");A.className="gengage-chat-product-variant-btn gds-chip",A.type="button";const U=N??R??"";A.title=U;const F=Ct(L,"in_stock","inStock");R&&o&&R===o?(A.classList.add("gengage-chat-product-variant-btn--active"),A.setAttribute("aria-pressed","true")):A.setAttribute("aria-pressed","false"),F===!1&&(A.classList.add("gengage-chat-product-variant-btn--out"),A.disabled=!0);const W=ol(L),Q=il(L);if(W&&pe(W)){const Z=document.createElement("img");Z.className="gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image",se(Z,"src",W),Z.alt="",Z.setAttribute("aria-hidden","true"),Se(Z),A.appendChild(Z)}else if(Q){const Z=document.createElement("span");Z.className="gengage-chat-product-variant-swatch",Z.setAttribute("aria-hidden","true"),Z.style.backgroundColor=Q,A.appendChild(Z)}const X=document.createElement("span");X.className="gengage-chat-product-variant-label",X.textContent=U,A.appendChild(X);const oe=sl(L);if(oe&&String(oe)!==String(c)){const Z=document.createElement("span");Z.className="gengage-chat-product-variant-price",Z.textContent=q(String(oe),t.pricing),A.appendChild(Z)}if(R&&R!==o){const Z=r??"",be=(typeof L.value=="string"?L.value.trim():"")||(typeof L.name=="string"?L.name.trim():"")||(typeof L.variant_name=="string"?L.variant_name.trim():"")||"",H=Z.length>0?be.length>0&&be!==Z?`${Z} (${be})`:Z:U;A.addEventListener("click",()=>{t.onAction({title:H,type:"launchVariant",payload:{sku:R}})})}E.appendChild(A)}E.childElementCount>0&&(y.appendChild(E),v.appendChild(y))}const P=document.createElement("div");P.className="gengage-chat-product-details-actions";const z=e.props?.action;if(z){const y=document.createElement("button");y.className="gengage-chat-product-details-cta gds-btn gds-btn-primary",y.type="button",y.textContent=z.title||t.i18n?.productCtaLabel||"View",y.addEventListener("click",()=>t.onAction(z)),P.appendChild(y)}if(s&&o&&m!==!1){const y=document.createElement("button");y.className="gengage-chat-product-details-atc gds-btn gds-btn-primary",y.type="button",y.textContent=t.i18n?.addToCartButton??"Add to Cart",y.addEventListener("click",()=>{t.onAction({title:t.i18n?.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:o,cartCode:s,quantity:1}})}),P.appendChild(y)}const M=me(n,"url");if(!z&&M&&pe(M)){const y=document.createElement("a");y.className="gengage-chat-product-details-cta gds-btn gds-btn-secondary",se(y,"href",M),se(y,"target","_blank"),se(y,"rel","noopener noreferrer"),y.textContent=t.i18n?.viewOnSiteLabel??t.i18n?.productCtaLabel??"View on Site",y.addEventListener("click",w=>{t.onProductClick&&o&&(w.preventDefault(),t.onProductClick({sku:o,url:M}))}),P.appendChild(y)}const $=M;if($&&pe($)){let N=function(A,U){const F=document.createElementNS(E,"circle");F.setAttribute("cx",A),F.setAttribute("cy",U),F.setAttribute("r","3"),L.appendChild(F)},R=function(A,U,F,W){const Q=document.createElementNS(E,"line");Q.setAttribute("x1",A),Q.setAttribute("y1",U),Q.setAttribute("x2",F),Q.setAttribute("y2",W),L.appendChild(Q)};var I=N,_=R;const y=document.createElement("button");y.className="gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn",y.type="button";const w=t.i18n?.shareButton??"Share";y.title=w,y.setAttribute("aria-label",w);const E="http://www.w3.org/2000/svg",L=document.createElementNS(E,"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"),y.appendChild(L),y.addEventListener("click",async()=>{try{navigator.share?await navigator.share({title:r??"",url:$}):navigator.clipboard&&(await navigator.clipboard.writeText($),y.classList.add("gengage-chat-product-details-share--copied"),setTimeout(()=>y.classList.remove("gengage-chat-product-details-share--copied"),1500))}catch{}}),P.appendChild(y)}P.childElementCount>0&&v.appendChild(P),a.appendChild(v);const K=al(n),j=nl(n);return(K||j)&&a.appendChild(fl(K,j,t)),a}function va(e){if(e.nodeType===Node.TEXT_NODE)return document.createTextNode(e.textContent??"");if(e.nodeType!==Node.ELEMENT_NODE)return null;const t=e,a=t.tagName.toUpperCase();if(Jc.has(a))return null;if(!Yc.has(a)){const r=document.createDocumentFragment();for(const i of Array.from(t.childNodes)){const o=va(i);o&&r.appendChild(o)}return r}const n=document.createElement(a.toLowerCase());for(const r of Array.from(t.childNodes)){const i=va(r);i&&n.appendChild(i)}return n}function ul(e,t){const a=t.split(/\n{2,}/).map(n=>n.replace(/\s+/g," ").trim()).filter(Boolean);if(a.length!==0)for(const n of a){const r=document.createElement("p");r.textContent=n,e.appendChild(r)}}function ml(e,t){if(e.classList.add("gengage-chat-product-description"),t.html&&typeof DOMParser<"u"){const a=new DOMParser().parseFromString(t.html,"text/html"),n=Array.from(a.body.childNodes).map(r=>va(r)).filter(r=>!!r&&(r.nodeType===Node.ELEMENT_NODE||!!r.textContent?.trim()));if(n.length>0){for(const r of n)e.appendChild(r);return}}ul(e,t.text)}function fl(e,t,a){const n=document.createElement("div");n.className="gengage-chat-product-detail-tabs";const r=document.createElement("div");r.className="gengage-chat-product-detail-tab-bar gds-toolbar";const i=[];if(e){const s=document.createElement("button");s.className="gengage-chat-product-detail-tab gds-tab gengage-chat-product-detail-tab--active is-active",s.type="button",s.setAttribute("aria-selected","true"),s.textContent=a.i18n?.productInfoTab??"Product Info",r.appendChild(s);const c=document.createElement("div");c.className="gengage-chat-product-detail-tab-panel",ml(c,e),i.push(c)}if(t){const s=document.createElement("button");s.className=`gengage-chat-product-detail-tab gds-tab${e?"":" gengage-chat-product-detail-tab--active is-active"}`,s.type="button",s.setAttribute("aria-selected",e?"false":"true"),s.textContent=a.i18n?.specificationsTab??"Specifications",r.appendChild(s);const c=document.createElement("div");c.className="gengage-chat-product-detail-tab-panel",e&&(c.style.display="none");const l=document.createElement("table");l.className="gengage-chat-product-specs-table";const g=Array.isArray(t)?t:Object.entries(t).map(([d,h])=>({key:d,value:h}));for(const d of g){const h=document.createElement("tr"),u=document.createElement("td");u.className="gengage-chat-product-specs-key",u.textContent=d.key;const m=document.createElement("td");m.className="gengage-chat-product-specs-value",m.textContent=d.value,h.appendChild(u),h.appendChild(m),l.appendChild(h)}c.appendChild(l),i.push(c)}const o=r.querySelectorAll(".gengage-chat-product-detail-tab");o.forEach((s,c)=>{s.addEventListener("click",()=>{o.forEach(l=>{l.classList.remove("gengage-chat-product-detail-tab--active","is-active"),l.setAttribute("aria-selected","false")}),s.classList.add("gengage-chat-product-detail-tab--active","is-active"),s.setAttribute("aria-selected","true"),i.forEach((l,g)=>{l.style.display=g===c?"":"none"})})}),n.appendChild(r);for(const s of i)n.appendChild(s);return n}function zn(e){const t='width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"';switch(e){case"related":return`<svg ${t} aria-hidden="true"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg>`;case"priceAsc":return`<svg ${t} 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 ${t} 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 bl(){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 vl(){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 yl(){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 Mn(e,t){return e.type===t.type&&e.direction===t.direction}function Bn(e,t,a){if(!a||a.type==="related")return e;const n=e.map(r=>{const i=t.elements[r]?.props?.product,o=i?Number(i.price):NaN;return{id:r,price:Number.isFinite(o)?o:1/0}});return n.sort((r,i)=>r.price===1/0&&i.price===1/0?0:r.price===1/0?1:i.price===1/0?-1:a.direction==="desc"?i.price-r.price:r.price-i.price),n.map(r=>r.id)}function _l(e,t,a,n){const r=Bn(t,a,n),i=new Map;for(const o of Array.from(e.children)){const s=o.dataset.elementId;s&&i.set(s,o)}for(const o of r){const s=i.get(o);s&&e.appendChild(s)}}function xl(e,t,a,n){const r=document.createElement("div");r.className="gengage-chat-product-grid-wrapper";const i=Uc(e),o=i.isConsulting,s=e.children??[],c=document.createElement("div");c.className="gengage-chat-product-grid";const l=n?.panelProductListHeading;if(!o&&s.length>1&&n?.onSortChange){const h=document.createElement("div");h.className="gengage-chat-product-sort-toolbar",h.setAttribute("role","toolbar"),h.setAttribute("aria-label",n.i18n?.sortToolbarAriaLabel??"Sort products");let u=n.productSort??{type:"related"};const m=[{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"}],p=document.createElement("div");p.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 b=n.i18n?.sortToolbarAriaLabel??"Sort products",C=document.createElement("span");C.className="gengage-chat-product-sort-trigger-icon";const v=document.createElement("span");v.className="gengage-chat-product-sort-trigger-label";const x=_=>{const y=m.find(w=>Mn(w.sortState,_))??m[0];v.textContent=y.label,C.innerHTML=zn(y.icon),p.dataset.sortIcon=y.icon,f.setAttribute("aria-label",`${b}: ${y.label}`),f.title=y.label};x(u);const k=document.createElement("span");k.className="gengage-chat-product-sort-trigger-chevron",k.innerHTML=bl(),f.appendChild(C),f.appendChild(v),f.appendChild(k);const P=document.createElement("div");P.className="gengage-chat-product-sort-menu gds-menu",P.hidden=!0,P.setAttribute("role","listbox"),P.setAttribute("aria-label",b);const z=h.ownerDocument;let M=null;const $=()=>{P.hidden=!0,p.classList.remove("gengage-chat-product-sort-dropdown--open"),f.setAttribute("aria-expanded","false"),M?.abort(),M=null},K=_=>{p.classList.contains("gengage-chat-product-sort-dropdown--open")&&(p.contains(_.target)||$())},j=_=>{_.key==="Escape"&&(_.preventDefault(),$())},I=()=>{P.hidden=!1,p.classList.add("gengage-chat-product-sort-dropdown--open"),f.setAttribute("aria-expanded","true"),M=new AbortController;const{signal:_}=M;z.addEventListener("click",K,{signal:_}),z.addEventListener("keydown",j,{capture:!0,signal:_})};f.addEventListener("click",_=>{_.stopPropagation(),p.classList.contains("gengage-chat-product-sort-dropdown--open")?$():I()});for(const _ of m){const y=document.createElement("button");y.type="button",y.className="gengage-chat-product-sort-option gds-menu-option",y.setAttribute("role","option");const w=Mn(u,_.sortState);y.setAttribute("aria-selected",w?"true":"false"),w&&y.classList.add("gengage-chat-product-sort-option--active","gds-menu-option-active");const E=_.sortState.type==="related"?"related":`price-${_.sortState.direction??""}`;y.dataset.sortKey=E;const L=document.createElement("span");L.className="gengage-chat-product-sort-option-icon",L.innerHTML=zn(_.icon);const N=document.createElement("span");N.className="gengage-chat-product-sort-option-label",N.textContent=_.label;const R=document.createElement("span");R.className="gengage-chat-product-sort-option-check",R.innerHTML=vl(),R.setAttribute("aria-hidden","true"),w||R.classList.add("gengage-chat-product-sort-option-check--hidden"),y.appendChild(L),y.appendChild(N),y.appendChild(R),y.addEventListener("click",()=>{u=_.sortState,n.onSortChange?.(_.sortState),_l(c,s,t,_.sortState),P.querySelectorAll(".gengage-chat-product-sort-option").forEach(A=>{const U=A,F=U.dataset.sortKey===E;U.classList.toggle("gengage-chat-product-sort-option--active",F),U.classList.toggle("gds-menu-option-active",F),U.setAttribute("aria-selected",F?"true":"false"),U.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden",!F)}),x(_.sortState),$()}),P.appendChild(y)}if(p.appendChild(f),p.appendChild(P),h.appendChild(p),n.onToggleComparisonSku){const _=document.createElement("button");_.className="gengage-chat-comparison-toggle-btn gds-btn gds-btn-ghost",_.type="button",n.comparisonSelectMode&&_.classList.add("gengage-chat-comparison-toggle-btn--active"),n.isStreaming&&_.classList.add("gengage-chat-comparison-toggle-btn--hidden");const y=document.createElement("span");y.className="gengage-chat-comparison-toggle-icon",y.innerHTML=yl();const w=document.createElement("span");w.className="gengage-chat-comparison-toggle-label";const E=n.i18n?.compareSelected??"Compare";w.textContent=E,_.setAttribute("aria-label",E),_.title=E,_.appendChild(y),_.appendChild(w),_.addEventListener("click",()=>{n.onToggleComparisonSku?.("")}),h.appendChild(_)}if(l){h.classList.add("gengage-chat-product-sort-toolbar--inline");const _=document.createElement("div");_.className="gengage-chat-product-grid-head";const y=document.createElement("span");y.className="gengage-chat-product-grid-head-title",y.textContent=l,_.appendChild(y);const w=document.createElement("div");w.className="gengage-chat-product-grid-head-actions",w.appendChild(h),_.appendChild(w),r.appendChild(_)}else r.appendChild(h)}else if(l){const h=document.createElement("div");h.className="gengage-chat-product-grid-head";const u=document.createElement("span");u.className="gengage-chat-product-grid-head-title",u.textContent=l,h.appendChild(u),r.appendChild(h)}if(o)Hc(r,c,i,n);else{const h=Bn(s,t,n?.productSort);for(const u of h){if(!t.elements[u])continue;const m=a(u);m&&(m.dataset.elementId=u,c.appendChild(m))}}(n?.isMobile??fa())&&c.classList.add("gengage-chat-product-grid--mobile"),r.appendChild(c);const g=e.props?.endOfList;if(!o&&g!==!0&&s.length>0){const h=n?.i18n?.viewMoreLabel??"Show More",u=document.createElement("button");u.className="gengage-chat-product-grid-view-more",u.type="button",u.textContent=h,u.addEventListener("click",()=>{n?.onAction({title:h,type:"moreProductList",payload:{}})}),r.appendChild(u)}const d=n?.isMobile??fa();if(n?.comparisonSelectMode&&n.comparisonSelectedSkus&&!d){const h=wn(n.comparisonSelectedSkus,n);r.appendChild(h)}return r}function wl(e,t){const a=e.props??{},n=a.keyDifferencesHtml,r=a.recommended,i=a.products??[],o=a.attributes??[],s=a.highlights??[],c=a.specialCases,l=a.recommendedText,g=a.winnerHits,d=a.productActions;if(!r)return document.createElement("div");const h={recommended:r,products:i,attributes:o,highlights:s,specialCases:c,onProductClick:({sku:m,name:p})=>{t.onProductClick?.({sku:m,url:"",name:p})},pricing:t.pricing};l!==void 0&&(h.recommendedText=l),g!==void 0&&(h.winnerHits=g),d!==void 0&&(h.productActions=d),n!==void 0&&(h.keyDifferencesHtml=n),t.i18n&&(h.i18n={comparisonHeading:t.i18n.panelTitleComparisonResults,recommendedChoiceLabel:t.i18n.recommendedChoiceLabel,highlightsLabel:t.i18n.highlightsLabel,keyDifferencesLabel:t.i18n.keyDifferencesLabel,viewMoreLabel:t.i18n.viewMoreLabel,specialCasesLabel:t.i18n.specialCasesLabel,addToCartButton:t.i18n.addToCartButton});const u=lc(h);return(t.isMobile??fa())&&u.classList.add("gengage-chat-comparison--mobile"),u}function kl(e){const t=document.createElement("hr");t.className="gengage-chat-divider";const a=e.props?.label;if(a){const n=document.createElement("div");n.className="gengage-chat-divider-wrapper";const r=document.createElement("span");r.className="gengage-chat-divider-label",r.textContent=a,n.appendChild(t),n.appendChild(r);const i=document.createElement("hr");return i.className="gengage-chat-divider",n.appendChild(i),n}return t}var Cl=new Set(["P","DIV","H1","H2","H3","H4","H5","H6","LI","UL","OL","BLOCKQUOTE","PRE","TABLE","SECTION","HR","FIGURE","FIGCAPTION","DL","DT","DD"]);function Sl(e){const t=[];let a=[];for(const n of e)n.nodeType===Node.ELEMENT_NODE&&Cl.has(n.tagName)?(a.length>0&&(t.push(a),a=[]),t.push([n])):a.push(n);return a.length>0&&t.push(a),t}function El(e){for(const t of e)for(const a of t)if(a.nodeType===Node.ELEMENT_NODE&&(a.tagName==="TABLE"||a.querySelector?.("table")))return!0;return!1}function Tl(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Pl(e){const{container:t,html:a,delayMs:n=30,onTick:r,onComplete:i}=e,o=document.createElement("template");o.innerHTML=a;const s=Sl(o.content.childNodes);if(Tl()||s.length<=1||El(s))return t.innerHTML=a,i?.(),{complete(){},cancel(){},isRunning:!1};t.innerHTML="";let c=0,l=null,g=!0;function d(){if(!g||c>=s.length){g=!1,i?.();return}const h=s[c],u=document.createElement("span");u.className="gengage-chat-typewriter-block";for(const m of h)u.appendChild(m.cloneNode(!0));t.appendChild(u),c++,r?.(),c<s.length?l=setTimeout(d,n):(g=!1,i?.())}return d(),{complete(){g&&(l!==null&&clearTimeout(l),g=!1,t.innerHTML=a,i?.())},cancel(){l!==null&&clearTimeout(l),g=!1},get isRunning(){return g}}}function Rn(e){return e!==void 0&&/[\p{L}\p{N}_]/u.test(e)}function Al(e){const{container:t,mentions:a,onProductClick:n}=e;if(a.length===0)return;const r=new Map;for(const i of a)i.short_name.length!==0&&r.set(i.short_name.toLowerCase(),i);if(r.size!==0)for(const[i,o]of r){const s=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let c=s.nextNode(),l=!1;for(;c&&!l;){const g=c.textContent??"",d=g.toLowerCase().indexOf(i);if(d===-1){c=s.nextNode();continue}const h=d>0?g[d-1]:void 0,u=g[d+o.short_name.length];if(Rn(h)||Rn(u)){c=s.nextNode();continue}const m=g.slice(0,d),p=g.slice(d,d+o.short_name.length),f=g.slice(d+o.short_name.length),b=c.parentNode;if(!b){c=s.nextNode();continue}const C=document.createElement("a");C.className="gengage-product-mention",C.textContent=p,C.href="#",C.addEventListener("click",v=>{v.preventDefault(),n(o.sku)}),m&&b.insertBefore(document.createTextNode(m),c),b.insertBefore(C,c),f&&b.insertBefore(document.createTextNode(f),c),b.removeChild(c),l=!0}}}var Ll=new Set(["search","info","review","similar"]),Il=new Set(["quickAnswer","reviewSummary","searchDiscovery","launchDiscovery","exploreTogetherV2"]);function Nl(e){return!!(e.icon&&Ll.has(e.icon)||e.action?.type&&Il.has(e.action.type))}var Et="gengage_choice_prompter_dismissed",zl="gengage_choice_prompter_dismissed_global";function Ml(e){const t=document.createElement("div");t.className="gengage-chat-choice-prompter gds-card",t.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=e.heading,a.appendChild(n);const r=document.createElement("div");r.className="gengage-chat-choice-prompter-suggestion",r.textContent=e.suggestion,a.appendChild(r),t.appendChild(a);const i=document.createElement("button");i.type="button",i.className="gengage-chat-choice-prompter-cta gds-btn gds-btn-primary",i.dataset.gengagePart="choice-prompter-cta",i.textContent=e.ctaLabel,i.addEventListener("click",()=>{ya(e.threadId),t.remove(),e.onCtaClick()}),t.appendChild(i);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",e.dismissAriaLabel??"Dismiss"),o.addEventListener("click",()=>{ya(e.threadId),t.remove(),e.onDismiss?.()}),t.appendChild(o),t}function Bl(){try{sessionStorage.removeItem(Et),sessionStorage.removeItem(zl)}catch{}}function Rl(e){try{const t=sessionStorage.getItem(Et);return t?JSON.parse(t).includes(e):!1}catch{return!1}}function ya(e){try{const t=sessionStorage.getItem(Et),a=t?JSON.parse(t):[];a.includes(e)||a.push(e),sessionStorage.setItem(Et,JSON.stringify(a))}catch{}}function Ol(e){e&&ya(e)}var Dl="gengage_assistant",Fl=3,$e="sessions",Ee="context",Ne="payload",Te="favorites";function dt(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}function Xe(e){return new Promise((t,a)=>{e.oncomplete=()=>t(),e.onerror=()=>a(e.error),e.onabort=()=>a(e.error??new DOMException("Transaction aborted"))})}var $l=class{constructor(e=Dl,t=Fl){this._db=null,this._dbName=e,this._version=t}async open(){return this._db?this._db:new Promise((e,t)=>{const a=indexedDB.open(this._dbName,this._version);a.onupgradeneeded=n=>{const r=a.result,i=n.oldVersion;i<1&&(r.createObjectStore($e,{keyPath:["userId","appId","sessionId"]}),r.createObjectStore(Ee,{keyPath:["sessionId","threadId"]}),r.createObjectStore(Ne,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),r.createObjectStore(Te,{keyPath:["userId","appId","sku"]})),i>=1&&i<2&&(r.objectStoreNames.contains($e)&&r.deleteObjectStore($e),r.objectStoreNames.contains(Ne)&&r.deleteObjectStore(Ne),r.createObjectStore($e,{keyPath:["userId","appId","sessionId"]}),r.createObjectStore(Ne,{keyPath:["threadId","messageId"]}).createIndex("threadId","threadId",{unique:!1}),r.objectStoreNames.contains(Ee)||r.createObjectStore(Ee,{keyPath:["sessionId","threadId"]})),i<3&&(r.objectStoreNames.contains(Te)||r.createObjectStore(Te,{keyPath:["userId","appId","sku"]}))},a.onsuccess=()=>{this._db=a.result,e(this._db)},a.onerror=()=>t(a.error)})}close(){this._db?.close(),this._db=null}async saveSession(e){const t=this._requireDb().transaction($e,"readwrite");t.objectStore($e).put(e),await Xe(t)}async loadSession(e,t,a){return await dt(this._requireDb().transaction($e,"readonly").objectStore($e).get([e,t,a]))??null}async saveContext(e){const t=this._requireDb().transaction(Ee,"readwrite");t.objectStore(Ee).put(e),await Xe(t)}async loadContext(e,t){return await dt(this._requireDb().transaction(Ee,"readonly").objectStore(Ee).get([e,t]))??null}async deleteContextsAfterThread(e,t){const a=this._requireDb().transaction(Ee,"readwrite"),n=a.objectStore(Ee).openCursor();await new Promise((r,i)=>{n.onsuccess=()=>{const o=n.result;if(!o){r();return}const s=o.value;if(s.sessionId===e&&s.threadId>t)try{o.delete()}catch{}o.continue()},n.onerror=()=>i(n.error)}),await Xe(a)}async loadLatestContext(e){const t=this._requireDb().transaction(Ee,"readonly").objectStore(Ee),a=IDBKeyRange.bound([e,""],[e,""]);return new Promise((n,r)=>{const i=t.openCursor(a,"prev");i.onsuccess=()=>{const o=i.result;n(o?o.value:null)},i.onerror=()=>r(i.error)})}async savePayload(e){const t=this._requireDb().transaction(Ne,"readwrite");t.objectStore(Ne).put(e),await Xe(t)}async loadPayload(e,t){return await dt(this._requireDb().transaction(Ne,"readonly").objectStore(Ne).get([e,t]))??null}async loadPayloadsByThread(e){const t=this._requireDb().transaction(Ne,"readonly").objectStore(Ne).index("threadId"),a=[];return new Promise((n,r)=>{const i=t.openCursor(IDBKeyRange.only(e));i.onsuccess=()=>{const o=i.result;if(!o){n(a);return}a.push(o.value),o.continue()},i.onerror=()=>r(i.error)})}async saveFavorite(e){const t=this._requireDb().transaction(Te,"readwrite");t.objectStore(Te).put(e),await Xe(t)}async removeFavorite(e,t,a){const n=this._requireDb().transaction(Te,"readwrite");n.objectStore(Te).delete([e,t,a]),await Xe(n)}async loadFavorites(e,t){return(await dt(this._requireDb().transaction(Te,"readonly").objectStore(Te).getAll())).filter(a=>a.userId===e&&a.appId===t)}async isFavorite(e,t,a){return await dt(this._requireDb().transaction(Te,"readonly").objectStore(Te).get([e,t,a]))!==void 0}_requireDb(){if(!this._db)throw new Error("GengageIndexedDB: database not open. Call open() first.");return this._db}},Ul=["comparisonTable","groupList","productDetailsSimilars","productList"],Hl=class{constructor(e){this._lockCount=1,this._hiddenByUser=!1,this._lastPanelContentType=null,this._chatShown=!1,this._isFavoritesMode=!1,this._lastExtended=!1,this._onChange=e.onChange;const t=new Set(Ul);e.productDetailsInPanel&&t.add("productDetails"),this._panelContentTypes=t}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(e){this._hiddenByUser=e,this._checkStateChange()}setChatShown(e){this._chatShown=e,this._checkStateChange()}setFavoritesMode(e){this._isFavoritesMode=e,this._checkStateChange()}setPanelContentType(e){this._lastPanelContentType=e,this._checkStateChange()}_checkStateChange(){const e=this.isExtended;e!==this._lastExtended&&(this._lastExtended=e,this._onChange(e))}},ql=class{constructor(e){this.deps=e,this.snapshots=new Map,this._snapshotRebuilders=new Map,this.snapshotTypes=new Map,this.activePanelMessageId=null,this.currentType=null,this.threads=[],this.lastActionType=null}snapshotForMessage(e,t){const a=this.deps.drawer();if(!a?.hasPanelContent()||a.isPanelLoading())return;const n=a.getPanelContentElement();if(!n)return;const r=n.cloneNode(!0);this.snapshots.set(e,r),t&&this._snapshotRebuilders.set(e,t),this.currentType&&this.snapshotTypes.set(e,this.currentType)}restoreForMessage(e){const t=this._snapshotRebuilders.get(e),a=this.snapshots.get(e);if(!t&&!a)return!1;const n=this.deps.shadow(),r=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(e)}"]`)?.classList.add("gengage-chat-bubble--active"),this.activePanelMessageId=e;const i=t?t():a.cloneNode(!0);r?.setPanelContent(i);const o=this.snapshotTypes.get(e);if(r?.setDividerPreviewEnabled(o==="ProductGrid"),o)if(this.currentType=o,i.querySelector(".gengage-chat-product-grid-head-title")&&o==="ProductGrid"){const s=this.deps.currentThreadId();if(s){const c=this.threads.indexOf(s),l=c>0,g=c>=0&&c<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(l,g,"")}}else this.updateTopBar(o);return!0}notifyExtension(e){const t=this.deps.bridge();e?setTimeout(()=>t?.send("maximize-pdp",{}),350):setTimeout(()=>t?.send("minify-pdp",{}),200)}titleForComponent(e,t){if(t)return t;const a=this.deps.i18n();switch(e){case"ProductDetailsPanel":return a.panelTitleProductDetails;case"ProductGrid":return On(this.lastActionType)?a.panelTitleSearchResults:a.panelTitleSimilarProducts;case"ComparisonTable":return a.panelTitleComparisonResults;case"AIGroupingCards":return a.panelTitleCategories;default:return""}}updateTopBar(e,t,a){const n=this.deps.currentThreadId();if(!n)return;const r=this.threads.indexOf(n),i=r>0,o=r>=0&&r<this.threads.length-1,s=a!==void 0?a:this.titleForComponent(e,t);this.deps.drawer()?.updatePanelTopBar(i,o,s)}updateTopBarForLoading(e){const t=this.deps.i18n(),a={productDetails:t.panelTitleProductDetails,productList:On(this.lastActionType)?t.panelTitleSearchResults:t.panelTitleSimilarProducts,comparisonTable:t.panelTitleComparisonResults,groupList:t.panelTitleCategories}[e]??"";if(a){const n=this.deps.currentThreadId(),r=n?this.threads.indexOf(n):-1,i=r>0,o=r>=0&&r<this.threads.length-1;this.deps.drawer()?.updatePanelTopBar(i,o,a)}}updateExtendedMode(e){const t={ComparisonTable:"comparisonTable",AIGroupingCards:"groupList",ProductDetailsPanel:"productDetails",ProductGrid:"productList"}[e]??null;this.deps.extendedModeManager()?.setPanelContentType(t)}navigateBack(){const e=this.deps.currentThreadId();if(!e)return;const t=this.threads.indexOf(e);if(t>0){const a=this.threads[t-1];a&&this.deps.rollbackToThread(a)}}navigateForward(){const e=this.deps.currentThreadId();if(!e)return;const t=this.threads.indexOf(e);if(t>=0&&t<this.threads.length-1){const a=this.threads[t+1];a&&this.deps.rollbackToThread(a)}}toPanelSpec(e){const t=e.elements[e.root];if(!t||t.type!=="ProductCard")return e;const a={...t,type:"ProductDetailsPanel"};return{root:e.root,elements:{...e.elements,[e.root]:a}}}destroy(){this.snapshots.clear(),this._snapshotRebuilders.clear(),this.snapshotTypes.clear(),this.activePanelMessageId=null,this.currentType=null,this.threads=[]}};function On(e){return e==="user_message"||e==="inputText"}function jl(e){return e.similarsAppend&&e.currentPanelType==="ProductDetailsPanel"&&e.hasPanelContent&&!e.isPanelLoading?"appendSimilars":e.componentType==="ProductGrid"&&!e.isFirstPanelContentInStream&&e.hasPanelContent&&!e.isPanelLoading?"append":"replace"}var Dn=class{constructor(e){this.favoritedSkus=new Set,this._favoritesCache=new Map,this._persistLock=Promise.resolve(),this._db=e}get db(){return this._db}set db(e){this._db=e}async persist(e){if(!this._db)return;const t=this._persistLock;let a;this._persistLock=new Promise(n=>{a=n}),await t;try{await this._persistImpl(e)}finally{a()}}async _persistImpl(e){if(!this._db)return;const t=e.messages.map(n=>{const r={id:n.id,role:n.role,timestamp:n.timestamp,status:n.status==="streaming"?"done":n.status};return n.threadId!==void 0&&(r.threadId=n.threadId),n.content!==void 0&&(r.content=n.content),n.silent&&(r.silent=!0),r}),a={};for(const[n,r]of e.panelSnapshots)r.querySelector(".gengage-chat-panel-skeleton")||(a[n]=r.innerHTML);await this._db.saveSession({userId:e.userId,appId:e.appId,sessionId:e.sessionId,messages:t,currentThreadId:e.currentThreadId,lastThreadId:e.lastThreadId,createdAt:e.chatCreatedAt,panelThreads:e.panelThreads.length>0?e.panelThreads:void 0,thumbnailEntries:e.thumbnailEntries.length>0?e.thumbnailEntries:void 0,panelSnapshotHtml:Object.keys(a).length>0?a:void 0,sku:e.sku}),e.lastBackendContext&&e.currentThreadId&&await this._db.saveContext({sessionId:e.sessionId,threadId:e.currentThreadId,context:e.lastBackendContext});for(const n of e.messages)n.uiSpec&&n.threadId&&await this._db.savePayload({threadId:n.threadId,messageId:n.id,uiSpec:n.uiSpec})}async saveAndOpenURL(e,t,a){try{await t()}catch{}a?.send("openURLInNewTab",{url:e}),pe(e)&&(window.location.href=e)}async loadPayload(e,t){if(!this._db)return null;for(let a=0;a<3;a++){try{const n=await this._db.loadPayload(e,t);if(n)return n.uiSpec}catch{}a<2&&await new Promise(n=>setTimeout(n,100))}return null}async loadFavorites(e,t){if(this._db)try{const a=await this._db.loadFavorites(e,t);for(const n of a)this.favoritedSkus.add(n.sku),this._favoritesCache.set(n.sku,n)}catch{}}getFavoriteProducts(){return[...this._favoritesCache.values()].sort((e,t)=>(t.savedAt??"").localeCompare(e.savedAt??""))}async toggleFavorite(e,t,a,n){if(this.favoritedSkus.has(a))this.favoritedSkus.delete(a),this._favoritesCache.delete(a),this._db&&await this._db.removeFavorite(e,t,a);else{const r={userId:e,appId:t,sku:a,name:n.name,imageUrl:n.imageUrl,price:n.price,savedAt:new Date().toISOString()};this.favoritedSkus.add(a),this._favoritesCache.set(a,r),this._db&&await this._db.saveFavorite(r)}}close(){this._db?.close(),this._db=null}},_a=e=>`${e}:assistant`,Zl=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(e){this.shown=e,e||(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(e){const t=_a(e),a=this.groups[t],n=this.shown&&this.pinnedToBottom&&!this.userInteracting?"active_unread":"unseen";this.groups[t]={id:t,threadId:e,readState:a?.readState==="seen"?n:a?.readState??n,status:"streaming",updatedAt:Date.now()},a?.readState==="seen"&&this.lastAutoAnchoredGroupId===t&&(this.lastAutoAnchoredGroupId=null)}finalizeAssistantGroup(e){const t=_a(e),a=this.groups[t];a&&(a.status="complete",a.updatedAt=Date.now())}setGroupReadStates(e){const t=Date.now();for(const{groupId:a,readState:n}of e){const r=this.groups[a];!r||r.readState===n||(r.readState=n,r.updatedAt=t)}}requestThreadFocus(e,t="smooth"){this.focusedThreadId=e,this.scrollRequest={id:this._nextScrollId++,type:"thread",threadId:e,behavior:t}}requestScrollToBottom(e="smooth"){this.scrollRequest={id:this._nextScrollId++,type:"bottom",behavior:e}}consumeScrollRequest(e){this.scrollRequest?.id===e&&(this.scrollRequest=null)}releaseFocusedThread(){this.focusedThreadId=null}setFocusedThreadId(e){this.focusedThreadId=e}markGroupAutoAnchored(e){this.lastAutoAnchoredGroupId=e}shouldBlockStreamAutoScroll(){return this.shown&&this.userInteracting&&!this.pinnedToBottom}getAssistantReadState(e){return this.groups[_a(e)]?.readState}};function Vl(e,t){for(let a=e.length-1;a>=0;a--){const n=e[a],r=t.getAssistantReadState(n);if(r!==void 0&&r!=="seen")return n}return null}function Wl(e){const{label:t,avatarUrl:a,primaryColor:n,secondaryColor:r="#111827",fontFamily:i="inherit",labelClassName:o="gengage-pill-launcher-label",styleId:s="gengage-pill-launcher-style",mobileBreakpoint:c=768,desktopWidth:l="188px",desktopHeight:g="60px",iconSize:d="46px"}=e,h=`${parseInt(l,10)-14}px`,u=`${parseInt(g,10)-4}px`,m=`${parseInt(d,10)-4}px`,p=`
|
|
60
60
|
:host {
|
|
61
61
|
--pill-primary: ${n};
|
|
62
62
|
--pill-secondary: ${r};
|
|
@@ -130,49 +130,49 @@ button[data-gengage-part="chat-launcher-button"] img {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
button[data-gengage-part="chat-launcher-button"] img {
|
|
133
|
-
width: ${
|
|
134
|
-
height: ${
|
|
135
|
-
flex-basis: ${
|
|
133
|
+
width: ${m} !important;
|
|
134
|
+
height: ${m} !important;
|
|
135
|
+
flex-basis: ${m} !important;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
`.trim(),m=()=>{for(const k of document.querySelectorAll("[data-gengage-widget]")){if(!(k instanceof HTMLElement))continue;const A=k.shadowRoot;if(A&&(A.querySelector('[data-gengage-part="chat-launcher-button"]')||A.querySelector(".gengage-chat-root")))return k}return null},b=k=>{if(k.getElementById(s))return;const A=document.createElement("style");A.id=s,A.textContent=p,k.appendChild(A)},C=CSS.escape(o),v=k=>{b(k);const A=k.querySelector('[data-gengage-part="chat-launcher-button"]');if(!(A instanceof HTMLButtonElement))return!1;const B=k.querySelector('[data-gengage-part="chat-header-avatar"]');if(B instanceof HTMLImageElement){const H=k.querySelector('[data-gengage-part="chat-launcher-button"] img');(!H||B.src===H.src)&&B.classList.remove("gengage-chat-header-avatar--logo")}if(A.querySelector(`.${C}`))return!0;A.setAttribute("aria-label",t);const I=document.createElement("span");return I.className=o,I.textContent=t,A.appendChild(I),!0};return{launcherImageUrl:a,apply:async k=>{if(k){b(k),await Promise.resolve();for(let B=0;B<90;B++){if(v(k))return;await new Promise(I=>requestAnimationFrame(()=>I()))}return}const A=m();A?.shadowRoot&&b(A.shadowRoot),await Promise.resolve();for(let B=0;B<90;B++){const I=m()?.shadowRoot??null;if(I&&(b(I),v(I)))return;await new Promise(H=>requestAnimationFrame(()=>H()))}}}}var Gl=/^HTTP\s+\d{3}\b/i,Kl=[/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],Yl=[/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],Jl=720;function Ql(e,t){if(na(e))return!0;const a=e.message.trim();if(Gl.test(a)||Kl.some(i=>i.test(a)))return!0;const n=t.trim();if(n.length>Jl)return!0;const r=n.split(/\n/).length;return!!(r>=6||Yl.some(i=>i.test(n))||r>=3&&/\bat\s+/.test(n))}var Fn="gengage_kvkk_shown",Xl=["kvkk","kişisel veri","kisisel veri"],ed=/\b6698\b/;function xa(e){const t=e.toLowerCase();return Xl.some(a=>t.includes(a))||ed.test(t)}function $n(e){try{return localStorage.getItem(`${Fn}_${e}`)==="1"}catch{return!1}}function wa(e){try{localStorage.setItem(`${Fn}_${e}`,"1")}catch{}}function td(e){const t=new DOMParser().parseFromString(e,"text/html").body,a=Array.from(t.children);for(const n of a)if(xa(n.textContent??"")){n.remove();break}return t.innerHTML.trim()}function ad(e){const t=new DOMParser().parseFromString(e,"text/html");for(const a of Array.from(t.body.children))if(xa(a.textContent??""))return a.outerHTML;return null}var nd={tr:"TURKISH",en:"ENGLISH",de:"GERMAN",fr:"FRENCH"};function rd(e){return e?nd[e.toLowerCase().slice(0,2)]??"TURKISH":"TURKISH"}var id=':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:12px;display:flex}.gengage-chat-photo-analysis-summary{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.gengage-chat-photo-analysis-highlights{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-photo-analysis-section{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 78%, white);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.gengage-chat-photo-analysis-section--celeb{gap:6px}.gengage-chat-photo-analysis-section-title{letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:12px;font-weight:800}.gengage-chat-photo-analysis-section-list{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-section-item{margin:0}.gengage-chat-photo-analysis-celeb-name{color:var(--text-primary);margin:0;font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-photo-analysis-celeb-reason{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gengage-chat-photo-analysis-details{border:1px solid color-mix(in srgb, var(--client-primary) 12%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 54%, white);border-radius:12px;overflow:hidden}.gengage-chat-photo-analysis-details-summary{cursor:pointer;color:var(--client-primary);padding:10px 12px;font-size:13px;font-weight:700;list-style:none}.gengage-chat-photo-analysis-details-summary::-webkit-details-marker{display:none}.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-details .gengage-chat-photo-analysis-points{padding:0 16px 14px 32px}.gengage-chat-photo-analysis-next{background:color-mix(in srgb, var(--client-primary) 9%, white);color:var(--text-primary);border-radius:12px;margin:0;padding:10px 12px;font-size:13px;font-weight:700;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}';function od(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function de(e,t){const a={event:e,...t};od()&&window.dataLayer.push(a)}function Pt(e){de("gengage-on-init",{gengage_widget:e})}function At(e){de("gengage-show",{gengage_widget:e})}function ka(e,t){de("gengage-suggested-question",{gengage_question_title:e,gengage_action_type:t})}function Un(e){de("gengage-find-similars",{gengage_sku:e})}function sd(e){de("gengage-compare-preselection",{gengage_sku:e})}function cd(e){de("gengage-compare-selected",{gengage_skus:e,gengage_product_count:e.length})}function ld(){de("gengage-compare-clear")}function dd(e){de("gengage-compare-received",{gengage_product_count:e})}function gd(e){de("gengage-like-product",{gengage_sku:e})}function pd(){de("gengage-like-list")}function hd(e,t){de("gengage-search",{gengage_search_query:e,gengage_result_count:t})}function Ca(e,t){de("gengage-product-detail",{gengage_sku:e,gengage_product_name:t})}function Hn(e,t){de("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function ud(){de("gengage-message-sent")}function qn(){de("gengage-message-received")}function md(){de("gengage-conversation-start")}function fd(){de("gengage-voice-input")}var Xm=Object.freeze({status:"aborted"});function S(e,t,a){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);const l=o.prototype,g=Object.keys(l);for(let d=0;d<g.length;d++){const h=g[d];h in s||(s[h]=l[h].bind(s))}}const r=a?.Parent??Object;class i extends r{}Object.defineProperty(i,"name",{value:e});function o(s){var c;const l=a?.Parent?new i:this;n(l,s),(c=l._zod).deferred??(c.deferred=[]);for(const g of l._zod.deferred)g();return l}return Object.defineProperty(o,"init",{value:n}),Object.defineProperty(o,Symbol.hasInstance,{value:s=>a?.Parent&&s instanceof a.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var et=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},jn=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},Sa={};function je(e){return e&&Object.assign(Sa,e),Sa}function Zn(e){const t=Object.values(e).filter(a=>typeof a=="number");return Object.entries(e).filter(([a,n])=>t.indexOf(+a)===-1).map(([a,n])=>n)}function Ea(e,t){return typeof t=="bigint"?t.toString():t}function Ta(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function Pa(e){return e==null}function Aa(e){const t=e.startsWith("^")?1:0,a=e.endsWith("$")?e.length-1:e.length;return e.slice(t,a)}function bd(e,t){const a=(e.toString().split(".")[1]||"").length,n=t.toString();let r=(n.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(n)){const o=n.match(/\d?e-(\d?)/);o?.[1]&&(r=Number.parseInt(o[1]))}const i=a>r?a:r;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}var Vn=Symbol("evaluating");function Y(e,t,a){let n;Object.defineProperty(e,t,{get(){if(n!==Vn)return n===void 0&&(n=Vn,n=a()),n},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Ze(e,t,a){Object.defineProperty(e,t,{value:a,writable:!0,enumerable:!0,configurable:!0})}function Ue(...e){const t={};for(const a of e)Object.assign(t,Object.getOwnPropertyDescriptors(a));return Object.defineProperties({},t)}function Wn(e){return JSON.stringify(e)}function vd(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Gn="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Lt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var yd=Ta(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function gt(e){if(Lt(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const a=t.prototype;return!(Lt(a)===!1||Object.prototype.hasOwnProperty.call(a,"isPrototypeOf")===!1)}function Kn(e){return gt(e)?{...e}:Array.isArray(e)?[...e]:e}var _d=new Set(["string","number","symbol"]);function tt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function He(e,t,a){const n=new e._zod.constr(t??e._zod.def);return(!t||a?.parent)&&(n._zod.parent=e),n}function D(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function xd(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var wd={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function kd(e,t){const a=e._zod.def,n=a.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return He(e,Ue(e._zod.def,{get shape(){const r={};for(const i in t){if(!(i in a.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(r[i]=a.shape[i])}return Ze(this,"shape",r),r},checks:[]}))}function Cd(e,t){const a=e._zod.def,n=a.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return He(e,Ue(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const i in t){if(!(i in a.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete r[i]}return Ze(this,"shape",r),r},checks:[]}))}function Sd(e,t){if(!gt(t))throw new Error("Invalid input to extend: expected a plain object");const a=e._zod.def.checks;if(a&&a.length>0){const n=e._zod.def.shape;for(const r in t)if(Object.getOwnPropertyDescriptor(n,r)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return He(e,Ue(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return Ze(this,"shape",n),n}}))}function Ed(e,t){if(!gt(t))throw new Error("Invalid input to safeExtend: expected a plain object");return He(e,Ue(e._zod.def,{get shape(){const a={...e._zod.def.shape,...t};return Ze(this,"shape",a),a}}))}function Td(e,t){return He(e,Ue(e._zod.def,{get shape(){const a={...e._zod.def.shape,...t._zod.def.shape};return Ze(this,"shape",a),a},get catchall(){return t._zod.def.catchall},checks:[]}))}function Pd(e,t,a){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return He(t,Ue(t._zod.def,{get shape(){const r=t._zod.def.shape,i={...r};if(a)for(const o in a){if(!(o in r))throw new Error(`Unrecognized key: "${o}"`);a[o]&&(i[o]=e?new e({type:"optional",innerType:r[o]}):r[o])}else for(const o in r)i[o]=e?new e({type:"optional",innerType:r[o]}):r[o];return Ze(this,"shape",i),i},checks:[]}))}function Ad(e,t,a){return He(t,Ue(t._zod.def,{get shape(){const n=t._zod.def.shape,r={...n};if(a)for(const i in a){if(!(i in r))throw new Error(`Unrecognized key: "${i}"`);a[i]&&(r[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(const i in n)r[i]=new e({type:"nonoptional",innerType:n[i]});return Ze(this,"shape",r),r}}))}function at(e,t=0){if(e.aborted===!0)return!0;for(let a=t;a<e.issues.length;a++)if(e.issues[a]?.continue!==!0)return!0;return!1}function Yn(e,t){return t.map(a=>{var n;return(n=a).path??(n.path=[]),a.path.unshift(e),a})}function It(e){return typeof e=="string"?e:e?.message}function Ve(e,t,a){const n={...e,path:e.path??[]};return e.message||(n.message=It(e.inst?._zod.def?.error?.(e))??It(t?.error?.(e))??It(a.customError?.(e))??It(a.localeError?.(e))??"Invalid input"),delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function La(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function pt(...e){const[t,a,n]=e;return typeof t=="string"?{message:t,code:"custom",input:a,inst:n}:{...t}}var Jn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ea,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Qn=S("$ZodError",Jn),we=S("$ZodError",Jn,{Parent:Error});function Ld(e,t=a=>a.message){const a={},n=[];for(const r of e.issues)r.path.length>0?(a[r.path[0]]=a[r.path[0]]||[],a[r.path[0]].push(t(r))):n.push(t(r));return{formErrors:n,fieldErrors:a}}function Id(e,t=a=>a.message){const a={_errors:[]},n=r=>{for(const i of r.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(o=>n({issues:o}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)a._errors.push(t(i));else{let o=a,s=0;for(;s<i.path.length;){const c=i.path[s];s!==i.path.length-1?o[c]=o[c]||{_errors:[]}:(o[c]=o[c]||{_errors:[]},o[c]._errors.push(t(i))),o=o[c],s++}}};return n(e),a}var Nt=e=>(t,a,n,r)=>{const i=n?Object.assign(n,{async:!1}):{async:!1},o=t._zod.run({value:a,issues:[]},i);if(o instanceof Promise)throw new et;if(o.issues.length){const s=new(r?.Err??e)(o.issues.map(c=>Ve(c,i,je())));throw Gn(s,r?.callee),s}return o.value},ef=Nt(we),zt=e=>async(t,a,n,r)=>{const i=n?Object.assign(n,{async:!0}):{async:!0};let o=t._zod.run({value:a,issues:[]},i);if(o instanceof Promise&&(o=await o),o.issues.length){const s=new(r?.Err??e)(o.issues.map(c=>Ve(c,i,je())));throw Gn(s,r?.callee),s}return o.value},tf=zt(we),Mt=e=>(t,a,n)=>{const r=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:a,issues:[]},r);if(i instanceof Promise)throw new et;return i.issues.length?{success:!1,error:new(e??Qn)(i.issues.map(o=>Ve(o,r,je())))}:{success:!0,data:i.value}},Nd=Mt(we),Bt=e=>async(t,a,n)=>{const r=n?Object.assign(n,{async:!0}):{async:!0};let i=t._zod.run({value:a,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(o=>Ve(o,r,je())))}:{success:!0,data:i.value}},zd=Bt(we),Xn=e=>(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Nt(e)(t,a,r)},af=Xn(we),er=e=>(t,a,n)=>Nt(e)(t,a,n),nf=er(we),tr=e=>async(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return zt(e)(t,a,r)},rf=tr(we),ar=e=>async(t,a,n)=>zt(e)(t,a,n),of=ar(we),nr=e=>(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Mt(e)(t,a,r)},sf=nr(we),rr=e=>(t,a,n)=>Mt(e)(t,a,n),cf=rr(we),ir=e=>async(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Bt(e)(t,a,r)},lf=ir(we),or=e=>async(t,a,n)=>Bt(e)(t,a,n),df=or(we),Md=/^[cC][^\s-]{8,}$/,Bd=/^[0-9a-z]+$/,Rd=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Od=/^[0-9a-vA-V]{20}$/,Dd=/^[A-Za-z0-9]{27}$/,Fd=/^[a-zA-Z0-9_-]{21}$/,$d=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ud=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,sr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Hd=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,qd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function jd(){return new RegExp(qd,"u")}var Zd=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Vd=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Wd=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Gd=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Kd=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,cr=/^[A-Za-z0-9_-]*$/,Yd=/^\+[1-9]\d{6,14}$/,lr="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Jd=new RegExp(`^${lr}$`);function dr(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Qd(e){return new RegExp(`^${dr(e)}$`)}function Xd(e){const t=dr({precision:e.precision}),a=["Z"];e.local&&a.push(""),e.offset&&a.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${a.join("|")})`;return new RegExp(`^${lr}T(?:${n})$`)}var eg=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},tg=/^-?\d+$/,ag=/^-?\d+(?:\.\d+)?$/,ng=/^(?:true|false)$/i,rg=/^[^A-Z]*$/,ig=/^[^a-z]*$/,he=S("$ZodCheck",(e,t)=>{var a;e._zod??(e._zod={}),e._zod.def=t,(a=e._zod).onattach??(a.onattach=[])}),gr={number:"number",bigint:"bigint",object:"date"},pr=S("$ZodCheckLessThan",(e,t)=>{he.init(e,t);const a=gr[typeof t.value];e._zod.onattach.push(n=>{const r=n._zod.bag,i=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:a,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),hr=S("$ZodCheckGreaterThan",(e,t)=>{he.init(e,t);const a=gr[typeof t.value];e._zod.onattach.push(n=>{const r=n._zod.bag,i=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:a,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),og=S("$ZodCheckMultipleOf",(e,t)=>{he.init(e,t),e._zod.onattach.push(a=>{var n;(n=a._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=a=>{if(typeof a.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof a.value=="bigint"?a.value%t.value===BigInt(0):bd(a.value,t.value)===0)||a.issues.push({origin:typeof a.value,code:"not_multiple_of",divisor:t.value,input:a.value,inst:e,continue:!t.abort})}}),sg=S("$ZodCheckNumberFormat",(e,t)=>{he.init(e,t),t.format=t.format||"float64";const a=t.format?.includes("int"),n=a?"int":"number",[r,i]=wd[t.format];e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,s.minimum=r,s.maximum=i,a&&(s.pattern=tg)}),e._zod.check=o=>{const s=o.value;if(a){if(!Number.isInteger(s)){o.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}s<r&&o.issues.push({origin:"number",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>i&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),cg=S("$ZodCheckMaxLength",(e,t)=>{var a;he.init(e,t),(a=e._zod.def).when??(a.when=n=>{const r=n.value;return!Pa(r)&&r.length!==void 0}),e._zod.onattach.push(n=>{const r=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const r=n.value;if(r.length<=t.maximum)return;const i=La(r);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),lg=S("$ZodCheckMinLength",(e,t)=>{var a;he.init(e,t),(a=e._zod.def).when??(a.when=n=>{const r=n.value;return!Pa(r)&&r.length!==void 0}),e._zod.onattach.push(n=>{const r=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const r=n.value;if(r.length>=t.minimum)return;const i=La(r);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),dg=S("$ZodCheckLengthEquals",(e,t)=>{var a;he.init(e,t),(a=e._zod.def).when??(a.when=n=>{const r=n.value;return!Pa(r)&&r.length!==void 0}),e._zod.onattach.push(n=>{const r=n._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=n=>{const r=n.value,i=r.length;if(i===t.length)return;const o=La(r),s=i>t.length;n.issues.push({origin:o,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Rt=S("$ZodCheckStringFormat",(e,t)=>{var a,n;he.init(e,t),e._zod.onattach.push(r=>{const i=r._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(a=e._zod).check??(a.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),gg=S("$ZodCheckRegex",(e,t)=>{Rt.init(e,t),e._zod.check=a=>{t.pattern.lastIndex=0,!t.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:"regex",input:a.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),pg=S("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=rg),Rt.init(e,t)}),hg=S("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ig),Rt.init(e,t)}),ug=S("$ZodCheckIncludes",(e,t)=>{he.init(e,t);const a=tt(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${a}`:a);t.pattern=n,e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),mg=S("$ZodCheckStartsWith",(e,t)=>{he.init(e,t);const a=new RegExp(`^${tt(t.prefix)}.*`);t.pattern??(t.pattern=a),e._zod.onattach.push(n=>{const r=n._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(a)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),fg=S("$ZodCheckEndsWith",(e,t)=>{he.init(e,t);const a=new RegExp(`.*${tt(t.suffix)}$`);t.pattern??(t.pattern=a),e._zod.onattach.push(n=>{const r=n._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(a)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),bg=S("$ZodCheckOverwrite",(e,t)=>{he.init(e,t),e._zod.check=a=>{a.value=t.tx(a.value)}}),vg=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
|
|
138
|
+
`.trim(),f=()=>{for(const k of document.querySelectorAll("[data-gengage-widget]")){if(!(k instanceof HTMLElement))continue;const P=k.shadowRoot;if(P&&(P.querySelector('[data-gengage-part="chat-launcher-button"]')||P.querySelector(".gengage-chat-root")))return k}return null},b=k=>{if(k.getElementById(s))return;const P=document.createElement("style");P.id=s,P.textContent=p,k.appendChild(P)},C=CSS.escape(o),v=k=>{b(k);const P=k.querySelector('[data-gengage-part="chat-launcher-button"]');if(!(P instanceof HTMLButtonElement))return!1;const z=k.querySelector('[data-gengage-part="chat-header-avatar"]');if(z instanceof HTMLImageElement){const $=k.querySelector('[data-gengage-part="chat-launcher-button"] img');(!$||z.src===$.src)&&z.classList.remove("gengage-chat-header-avatar--logo")}if(P.querySelector(`.${C}`))return!0;P.setAttribute("aria-label",t);const M=document.createElement("span");return M.className=o,M.textContent=t,P.appendChild(M),!0};return{launcherImageUrl:a,apply:async k=>{if(k){b(k),await Promise.resolve();for(let z=0;z<90;z++){if(v(k))return;await new Promise(M=>requestAnimationFrame(()=>M()))}return}const P=f();P?.shadowRoot&&b(P.shadowRoot),await Promise.resolve();for(let z=0;z<90;z++){const M=f()?.shadowRoot??null;if(M&&(b(M),v(M)))return;await new Promise($=>requestAnimationFrame(()=>$()))}}}}var Gl=/^HTTP\s+\d{3}\b/i,Kl=[/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],Yl=[/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],Jl=720;function Ql(e,t){if(aa(e))return!0;const a=e.message.trim();if(Gl.test(a)||Kl.some(i=>i.test(a)))return!0;const n=t.trim();if(n.length>Jl)return!0;const r=n.split(/\n/).length;return!!(r>=6||Yl.some(i=>i.test(n))||r>=3&&/\bat\s+/.test(n))}var Fn="gengage_kvkk_shown",Xl=["kvkk","kişisel veri","kisisel veri"],ed=/\b6698\b/;function xa(e){const t=e.toLowerCase();return Xl.some(a=>t.includes(a))||ed.test(t)}function $n(e){try{return localStorage.getItem(`${Fn}_${e}`)==="1"}catch{return!1}}function wa(e){try{localStorage.setItem(`${Fn}_${e}`,"1")}catch{}}function td(e){const t=new DOMParser().parseFromString(e,"text/html").body,a=Array.from(t.children);for(const n of a)if(xa(n.textContent??"")){n.remove();break}return t.innerHTML.trim()}function ad(e){const t=new DOMParser().parseFromString(e,"text/html");for(const a of Array.from(t.body.children))if(xa(a.textContent??""))return a.outerHTML;return null}var nd={tr:"TURKISH",en:"ENGLISH",de:"GERMAN",fr:"FRENCH"};function rd(e){return e?nd[e.toLowerCase().slice(0,2)]??"TURKISH":"TURKISH"}var id=':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:12px;display:flex}.gengage-chat-photo-analysis-summary{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.gengage-chat-photo-analysis-highlights{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-photo-analysis-section{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 78%, white);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.gengage-chat-photo-analysis-section--celeb{gap:6px}.gengage-chat-photo-analysis-section-title{letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:12px;font-weight:800}.gengage-chat-photo-analysis-section-list{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-section-item{margin:0}.gengage-chat-photo-analysis-celeb-name{color:var(--text-primary);margin:0;font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-photo-analysis-celeb-reason{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gengage-chat-photo-analysis-details{border:1px solid color-mix(in srgb, var(--client-primary) 12%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 54%, white);border-radius:12px;overflow:hidden}.gengage-chat-photo-analysis-details-summary{cursor:pointer;color:var(--client-primary);padding:10px 12px;font-size:13px;font-weight:700;list-style:none}.gengage-chat-photo-analysis-details-summary::-webkit-details-marker{display:none}.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-details .gengage-chat-photo-analysis-points{padding:0 16px 14px 32px}.gengage-chat-photo-analysis-next{background:color-mix(in srgb, var(--client-primary) 9%, white);color:var(--text-primary);border-radius:12px;margin:0;padding:10px 12px;font-size:13px;font-weight:700;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-root--mobile .gengage-chat-consulting-group-grid.gengage-chat-consulting-group-grid--single-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.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}';function od(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function de(e,t){const a={event:e,...t};od()&&window.dataLayer.push(a)}function Tt(e){de("gengage-on-init",{gengage_widget:e})}function Pt(e){de("gengage-show",{gengage_widget:e})}function ka(e,t){de("gengage-suggested-question",{gengage_question_title:e,gengage_action_type:t})}function Un(e){de("gengage-find-similars",{gengage_sku:e})}function sd(e){de("gengage-compare-preselection",{gengage_sku:e})}function cd(e){de("gengage-compare-selected",{gengage_skus:e,gengage_product_count:e.length})}function ld(){de("gengage-compare-clear")}function dd(e){de("gengage-compare-received",{gengage_product_count:e})}function gd(e){de("gengage-like-product",{gengage_sku:e})}function pd(){de("gengage-like-list")}function hd(e,t){de("gengage-search",{gengage_search_query:e,gengage_result_count:t})}function Ca(e,t){de("gengage-product-detail",{gengage_sku:e,gengage_product_name:t})}function Hn(e,t){de("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function ud(){de("gengage-message-sent")}function qn(){de("gengage-message-received")}function md(){de("gengage-conversation-start")}function fd(){de("gengage-voice-input")}var Xm=Object.freeze({status:"aborted"});function S(e,t,a){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);const l=o.prototype,g=Object.keys(l);for(let d=0;d<g.length;d++){const h=g[d];h in s||(s[h]=l[h].bind(s))}}const r=a?.Parent??Object;class i extends r{}Object.defineProperty(i,"name",{value:e});function o(s){var c;const l=a?.Parent?new i:this;n(l,s),(c=l._zod).deferred??(c.deferred=[]);for(const g of l._zod.deferred)g();return l}return Object.defineProperty(o,"init",{value:n}),Object.defineProperty(o,Symbol.hasInstance,{value:s=>a?.Parent&&s instanceof a.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var et=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},jn=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},Sa={};function je(e){return e&&Object.assign(Sa,e),Sa}function Zn(e){const t=Object.values(e).filter(a=>typeof a=="number");return Object.entries(e).filter(([a,n])=>t.indexOf(+a)===-1).map(([a,n])=>n)}function Ea(e,t){return typeof t=="bigint"?t.toString():t}function Ta(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function Pa(e){return e==null}function Aa(e){const t=e.startsWith("^")?1:0,a=e.endsWith("$")?e.length-1:e.length;return e.slice(t,a)}function bd(e,t){const a=(e.toString().split(".")[1]||"").length,n=t.toString();let r=(n.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(n)){const o=n.match(/\d?e-(\d?)/);o?.[1]&&(r=Number.parseInt(o[1]))}const i=a>r?a:r;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}var Vn=Symbol("evaluating");function J(e,t,a){let n;Object.defineProperty(e,t,{get(){if(n!==Vn)return n===void 0&&(n=Vn,n=a()),n},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Ze(e,t,a){Object.defineProperty(e,t,{value:a,writable:!0,enumerable:!0,configurable:!0})}function Ue(...e){const t={};for(const a of e)Object.assign(t,Object.getOwnPropertyDescriptors(a));return Object.defineProperties({},t)}function Wn(e){return JSON.stringify(e)}function vd(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Gn="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function At(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var yd=Ta(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function gt(e){if(At(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const a=t.prototype;return!(At(a)===!1||Object.prototype.hasOwnProperty.call(a,"isPrototypeOf")===!1)}function Kn(e){return gt(e)?{...e}:Array.isArray(e)?[...e]:e}var _d=new Set(["string","number","symbol"]);function tt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function He(e,t,a){const n=new e._zod.constr(t??e._zod.def);return(!t||a?.parent)&&(n._zod.parent=e),n}function D(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function xd(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var wd={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function kd(e,t){const a=e._zod.def,n=a.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return He(e,Ue(e._zod.def,{get shape(){const r={};for(const i in t){if(!(i in a.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(r[i]=a.shape[i])}return Ze(this,"shape",r),r},checks:[]}))}function Cd(e,t){const a=e._zod.def,n=a.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return He(e,Ue(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const i in t){if(!(i in a.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete r[i]}return Ze(this,"shape",r),r},checks:[]}))}function Sd(e,t){if(!gt(t))throw new Error("Invalid input to extend: expected a plain object");const a=e._zod.def.checks;if(a&&a.length>0){const n=e._zod.def.shape;for(const r in t)if(Object.getOwnPropertyDescriptor(n,r)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return He(e,Ue(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return Ze(this,"shape",n),n}}))}function Ed(e,t){if(!gt(t))throw new Error("Invalid input to safeExtend: expected a plain object");return He(e,Ue(e._zod.def,{get shape(){const a={...e._zod.def.shape,...t};return Ze(this,"shape",a),a}}))}function Td(e,t){return He(e,Ue(e._zod.def,{get shape(){const a={...e._zod.def.shape,...t._zod.def.shape};return Ze(this,"shape",a),a},get catchall(){return t._zod.def.catchall},checks:[]}))}function Pd(e,t,a){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return He(t,Ue(t._zod.def,{get shape(){const r=t._zod.def.shape,i={...r};if(a)for(const o in a){if(!(o in r))throw new Error(`Unrecognized key: "${o}"`);a[o]&&(i[o]=e?new e({type:"optional",innerType:r[o]}):r[o])}else for(const o in r)i[o]=e?new e({type:"optional",innerType:r[o]}):r[o];return Ze(this,"shape",i),i},checks:[]}))}function Ad(e,t,a){return He(t,Ue(t._zod.def,{get shape(){const n=t._zod.def.shape,r={...n};if(a)for(const i in a){if(!(i in r))throw new Error(`Unrecognized key: "${i}"`);a[i]&&(r[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(const i in n)r[i]=new e({type:"nonoptional",innerType:n[i]});return Ze(this,"shape",r),r}}))}function at(e,t=0){if(e.aborted===!0)return!0;for(let a=t;a<e.issues.length;a++)if(e.issues[a]?.continue!==!0)return!0;return!1}function Yn(e,t){return t.map(a=>{var n;return(n=a).path??(n.path=[]),a.path.unshift(e),a})}function Lt(e){return typeof e=="string"?e:e?.message}function Ve(e,t,a){const n={...e,path:e.path??[]};return e.message||(n.message=Lt(e.inst?._zod.def?.error?.(e))??Lt(t?.error?.(e))??Lt(a.customError?.(e))??Lt(a.localeError?.(e))??"Invalid input"),delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function La(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function pt(...e){const[t,a,n]=e;return typeof t=="string"?{message:t,code:"custom",input:a,inst:n}:{...t}}var Jn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ea,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Qn=S("$ZodError",Jn),we=S("$ZodError",Jn,{Parent:Error});function Ld(e,t=a=>a.message){const a={},n=[];for(const r of e.issues)r.path.length>0?(a[r.path[0]]=a[r.path[0]]||[],a[r.path[0]].push(t(r))):n.push(t(r));return{formErrors:n,fieldErrors:a}}function Id(e,t=a=>a.message){const a={_errors:[]},n=r=>{for(const i of r.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(o=>n({issues:o}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)a._errors.push(t(i));else{let o=a,s=0;for(;s<i.path.length;){const c=i.path[s];s!==i.path.length-1?o[c]=o[c]||{_errors:[]}:(o[c]=o[c]||{_errors:[]},o[c]._errors.push(t(i))),o=o[c],s++}}};return n(e),a}var It=e=>(t,a,n,r)=>{const i=n?Object.assign(n,{async:!1}):{async:!1},o=t._zod.run({value:a,issues:[]},i);if(o instanceof Promise)throw new et;if(o.issues.length){const s=new(r?.Err??e)(o.issues.map(c=>Ve(c,i,je())));throw Gn(s,r?.callee),s}return o.value},ef=It(we),Nt=e=>async(t,a,n,r)=>{const i=n?Object.assign(n,{async:!0}):{async:!0};let o=t._zod.run({value:a,issues:[]},i);if(o instanceof Promise&&(o=await o),o.issues.length){const s=new(r?.Err??e)(o.issues.map(c=>Ve(c,i,je())));throw Gn(s,r?.callee),s}return o.value},tf=Nt(we),zt=e=>(t,a,n)=>{const r=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:a,issues:[]},r);if(i instanceof Promise)throw new et;return i.issues.length?{success:!1,error:new(e??Qn)(i.issues.map(o=>Ve(o,r,je())))}:{success:!0,data:i.value}},Nd=zt(we),Mt=e=>async(t,a,n)=>{const r=n?Object.assign(n,{async:!0}):{async:!0};let i=t._zod.run({value:a,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(o=>Ve(o,r,je())))}:{success:!0,data:i.value}},zd=Mt(we),Xn=e=>(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return It(e)(t,a,r)},af=Xn(we),er=e=>(t,a,n)=>It(e)(t,a,n),nf=er(we),tr=e=>async(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Nt(e)(t,a,r)},rf=tr(we),ar=e=>async(t,a,n)=>Nt(e)(t,a,n),of=ar(we),nr=e=>(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return zt(e)(t,a,r)},sf=nr(we),rr=e=>(t,a,n)=>zt(e)(t,a,n),cf=rr(we),ir=e=>async(t,a,n)=>{const r=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Mt(e)(t,a,r)},lf=ir(we),or=e=>async(t,a,n)=>Mt(e)(t,a,n),df=or(we),Md=/^[cC][^\s-]{8,}$/,Bd=/^[0-9a-z]+$/,Rd=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Od=/^[0-9a-vA-V]{20}$/,Dd=/^[A-Za-z0-9]{27}$/,Fd=/^[a-zA-Z0-9_-]{21}$/,$d=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ud=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,sr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Hd=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,qd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function jd(){return new RegExp(qd,"u")}var Zd=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Vd=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Wd=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Gd=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Kd=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,cr=/^[A-Za-z0-9_-]*$/,Yd=/^\+[1-9]\d{6,14}$/,lr="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Jd=new RegExp(`^${lr}$`);function dr(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Qd(e){return new RegExp(`^${dr(e)}$`)}function Xd(e){const t=dr({precision:e.precision}),a=["Z"];e.local&&a.push(""),e.offset&&a.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${a.join("|")})`;return new RegExp(`^${lr}T(?:${n})$`)}var eg=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},tg=/^-?\d+$/,ag=/^-?\d+(?:\.\d+)?$/,ng=/^(?:true|false)$/i,rg=/^[^A-Z]*$/,ig=/^[^a-z]*$/,he=S("$ZodCheck",(e,t)=>{var a;e._zod??(e._zod={}),e._zod.def=t,(a=e._zod).onattach??(a.onattach=[])}),gr={number:"number",bigint:"bigint",object:"date"},pr=S("$ZodCheckLessThan",(e,t)=>{he.init(e,t);const a=gr[typeof t.value];e._zod.onattach.push(n=>{const r=n._zod.bag,i=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:a,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),hr=S("$ZodCheckGreaterThan",(e,t)=>{he.init(e,t);const a=gr[typeof t.value];e._zod.onattach.push(n=>{const r=n._zod.bag,i=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:a,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),og=S("$ZodCheckMultipleOf",(e,t)=>{he.init(e,t),e._zod.onattach.push(a=>{var n;(n=a._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=a=>{if(typeof a.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof a.value=="bigint"?a.value%t.value===BigInt(0):bd(a.value,t.value)===0)||a.issues.push({origin:typeof a.value,code:"not_multiple_of",divisor:t.value,input:a.value,inst:e,continue:!t.abort})}}),sg=S("$ZodCheckNumberFormat",(e,t)=>{he.init(e,t),t.format=t.format||"float64";const a=t.format?.includes("int"),n=a?"int":"number",[r,i]=wd[t.format];e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,s.minimum=r,s.maximum=i,a&&(s.pattern=tg)}),e._zod.check=o=>{const s=o.value;if(a){if(!Number.isInteger(s)){o.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}s<r&&o.issues.push({origin:"number",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>i&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),cg=S("$ZodCheckMaxLength",(e,t)=>{var a;he.init(e,t),(a=e._zod.def).when??(a.when=n=>{const r=n.value;return!Pa(r)&&r.length!==void 0}),e._zod.onattach.push(n=>{const r=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const r=n.value;if(r.length<=t.maximum)return;const i=La(r);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),lg=S("$ZodCheckMinLength",(e,t)=>{var a;he.init(e,t),(a=e._zod.def).when??(a.when=n=>{const r=n.value;return!Pa(r)&&r.length!==void 0}),e._zod.onattach.push(n=>{const r=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const r=n.value;if(r.length>=t.minimum)return;const i=La(r);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),dg=S("$ZodCheckLengthEquals",(e,t)=>{var a;he.init(e,t),(a=e._zod.def).when??(a.when=n=>{const r=n.value;return!Pa(r)&&r.length!==void 0}),e._zod.onattach.push(n=>{const r=n._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=n=>{const r=n.value,i=r.length;if(i===t.length)return;const o=La(r),s=i>t.length;n.issues.push({origin:o,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Bt=S("$ZodCheckStringFormat",(e,t)=>{var a,n;he.init(e,t),e._zod.onattach.push(r=>{const i=r._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(a=e._zod).check??(a.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),gg=S("$ZodCheckRegex",(e,t)=>{Bt.init(e,t),e._zod.check=a=>{t.pattern.lastIndex=0,!t.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:"regex",input:a.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),pg=S("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=rg),Bt.init(e,t)}),hg=S("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ig),Bt.init(e,t)}),ug=S("$ZodCheckIncludes",(e,t)=>{he.init(e,t);const a=tt(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${a}`:a);t.pattern=n,e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),mg=S("$ZodCheckStartsWith",(e,t)=>{he.init(e,t);const a=new RegExp(`^${tt(t.prefix)}.*`);t.pattern??(t.pattern=a),e._zod.onattach.push(n=>{const r=n._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(a)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),fg=S("$ZodCheckEndsWith",(e,t)=>{he.init(e,t);const a=new RegExp(`.*${tt(t.suffix)}$`);t.pattern??(t.pattern=a),e._zod.onattach.push(n=>{const r=n._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(a)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),bg=S("$ZodCheckOverwrite",(e,t)=>{he.init(e,t),e._zod.check=a=>{a.value=t.tx(a.value)}}),vg=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
|
|
139
139
|
`).filter(r=>r),a=Math.min(...t.map(r=>r.length-r.trimStart().length)),n=t.map(r=>r.slice(a)).map(r=>" ".repeat(this.indent*2)+r);for(const r of n)this.content.push(r)}compile(){const e=Function,t=this?.args,a=[...(this?.content??[""]).map(n=>` ${n}`)];return new e(...t,a.join(`
|
|
140
|
-
`))}},yg={major:4,minor:3,patch:6},ae=S("$ZodType",(e,t)=>{var a;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=yg;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const r of n)for(const i of r._zod.onattach)i(e);if(n.length===0)(a=e._zod).deferred??(a.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const r=(o,s,c)=>{let l=at(o),g;for(const d of s){if(d._zod.def.when){if(!d._zod.def.when(o))continue}else if(l)continue;const h=o.issues.length,u=d._zod.check(o);if(u instanceof Promise&&c?.async===!1)throw new et;if(g||u instanceof Promise)g=(g??Promise.resolve()).then(async()=>{await u,o.issues.length!==h&&(l||(l=at(o,h)))});else{if(o.issues.length===h)continue;l||(l=at(o,h))}}return g?g.then(()=>o):o},i=(o,s,c)=>{if(at(o))return o.aborted=!0,o;const l=r(s,n,c);if(l instanceof Promise){if(c.async===!1)throw new et;return l.then(g=>e._zod.parse(g,c))}return e._zod.parse(l,c)};e._zod.run=(o,s)=>{if(s.skipChecks)return e._zod.parse(o,s);if(s.direction==="backward"){const l=e._zod.parse({value:o.value,issues:[]},{...s,skipChecks:!0});return l instanceof Promise?l.then(g=>i(g,o,s)):i(l,o,s)}const c=e._zod.parse(o,s);if(c instanceof Promise){if(s.async===!1)throw new et;return c.then(l=>r(l,n,s))}return r(c,n,s)}}
|
|
141
|
-
if (${
|
|
140
|
+
`))}},yg={major:4,minor:3,patch:6},ae=S("$ZodType",(e,t)=>{var a;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=yg;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const r of n)for(const i of r._zod.onattach)i(e);if(n.length===0)(a=e._zod).deferred??(a.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const r=(o,s,c)=>{let l=at(o),g;for(const d of s){if(d._zod.def.when){if(!d._zod.def.when(o))continue}else if(l)continue;const h=o.issues.length,u=d._zod.check(o);if(u instanceof Promise&&c?.async===!1)throw new et;if(g||u instanceof Promise)g=(g??Promise.resolve()).then(async()=>{await u,o.issues.length!==h&&(l||(l=at(o,h)))});else{if(o.issues.length===h)continue;l||(l=at(o,h))}}return g?g.then(()=>o):o},i=(o,s,c)=>{if(at(o))return o.aborted=!0,o;const l=r(s,n,c);if(l instanceof Promise){if(c.async===!1)throw new et;return l.then(g=>e._zod.parse(g,c))}return e._zod.parse(l,c)};e._zod.run=(o,s)=>{if(s.skipChecks)return e._zod.parse(o,s);if(s.direction==="backward"){const l=e._zod.parse({value:o.value,issues:[]},{...s,skipChecks:!0});return l instanceof Promise?l.then(g=>i(g,o,s)):i(l,o,s)}const c=e._zod.parse(o,s);if(c instanceof Promise){if(s.async===!1)throw new et;return c.then(l=>r(l,n,s))}return r(c,n,s)}}J(e,"~standard",()=>({validate:r=>{try{const i=Nd(e,r);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return zd(e,r).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),Ia=S("$ZodString",(e,t)=>{ae.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??eg(e._zod.bag),e._zod.parse=(a,n)=>{if(t.coerce)try{a.value=String(a.value)}catch{}return typeof a.value=="string"||a.issues.push({expected:"string",code:"invalid_type",input:a.value,inst:e}),a}}),ee=S("$ZodStringFormat",(e,t)=>{Bt.init(e,t),Ia.init(e,t)}),_g=S("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ud),ee.init(e,t)}),xg=S("$ZodUUID",(e,t)=>{if(t.version){const a={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(a===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=sr(a))}else t.pattern??(t.pattern=sr());ee.init(e,t)}),wg=S("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Hd),ee.init(e,t)}),kg=S("$ZodURL",(e,t)=>{ee.init(e,t),e._zod.check=a=>{try{const n=a.value.trim(),r=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(r.hostname)||a.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:a.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(r.protocol.endsWith(":")?r.protocol.slice(0,-1):r.protocol)||a.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:a.value,inst:e,continue:!t.abort})),t.normalize?a.value=r.href:a.value=n;return}catch{a.issues.push({code:"invalid_format",format:"url",input:a.value,inst:e,continue:!t.abort})}}}),Cg=S("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=jd()),ee.init(e,t)}),Sg=S("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Fd),ee.init(e,t)}),Eg=S("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Md),ee.init(e,t)}),Tg=S("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Bd),ee.init(e,t)}),Pg=S("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Rd),ee.init(e,t)}),Ag=S("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Od),ee.init(e,t)}),Lg=S("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Dd),ee.init(e,t)}),Ig=S("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Xd(t)),ee.init(e,t)}),Ng=S("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Jd),ee.init(e,t)}),zg=S("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Qd(t)),ee.init(e,t)}),Mg=S("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=$d),ee.init(e,t)}),Bg=S("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Zd),ee.init(e,t),e._zod.bag.format="ipv4"}),Rg=S("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Vd),ee.init(e,t),e._zod.bag.format="ipv6",e._zod.check=a=>{try{new URL(`http://[${a.value}]`)}catch{a.issues.push({code:"invalid_format",format:"ipv6",input:a.value,inst:e,continue:!t.abort})}}}),Og=S("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Wd),ee.init(e,t)}),Dg=S("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Gd),ee.init(e,t),e._zod.check=a=>{const n=a.value.split("/");try{if(n.length!==2)throw new Error;const[r,i]=n;if(!i)throw new Error;const o=Number(i);if(`${o}`!==i)throw new Error;if(o<0||o>128)throw new Error;new URL(`http://[${r}]`)}catch{a.issues.push({code:"invalid_format",format:"cidrv6",input:a.value,inst:e,continue:!t.abort})}}});function ur(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Fg=S("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Kd),ee.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=a=>{ur(a.value)||a.issues.push({code:"invalid_format",format:"base64",input:a.value,inst:e,continue:!t.abort})}});function $g(e){if(!cr.test(e))return!1;const t=e.replace(/[-_]/g,a=>a==="-"?"+":"/");return ur(t.padEnd(Math.ceil(t.length/4)*4,"="))}var Ug=S("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=cr),ee.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=a=>{$g(a.value)||a.issues.push({code:"invalid_format",format:"base64url",input:a.value,inst:e,continue:!t.abort})}}),Hg=S("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Yd),ee.init(e,t)});function qg(e,t=null){try{const a=e.split(".");if(a.length!==3)return!1;const[n]=a;if(!n)return!1;const r=JSON.parse(atob(n));return!("typ"in r&&r?.typ!=="JWT"||!r.alg||t&&(!("alg"in r)||r.alg!==t))}catch{return!1}}var jg=S("$ZodJWT",(e,t)=>{ee.init(e,t),e._zod.check=a=>{qg(a.value,t.alg)||a.issues.push({code:"invalid_format",format:"jwt",input:a.value,inst:e,continue:!t.abort})}}),mr=S("$ZodNumber",(e,t)=>{ae.init(e,t),e._zod.pattern=e._zod.bag.pattern??ag,e._zod.parse=(a,n)=>{if(t.coerce)try{a.value=Number(a.value)}catch{}const r=a.value;if(typeof r=="number"&&!Number.isNaN(r)&&Number.isFinite(r))return a;const i=typeof r=="number"?Number.isNaN(r)?"NaN":Number.isFinite(r)?void 0:"Infinity":void 0;return a.issues.push({expected:"number",code:"invalid_type",input:r,inst:e,...i?{received:i}:{}}),a}}),Zg=S("$ZodNumberFormat",(e,t)=>{sg.init(e,t),mr.init(e,t)}),Vg=S("$ZodBoolean",(e,t)=>{ae.init(e,t),e._zod.pattern=ng,e._zod.parse=(a,n)=>{if(t.coerce)try{a.value=!!a.value}catch{}const r=a.value;return typeof r=="boolean"||a.issues.push({expected:"boolean",code:"invalid_type",input:r,inst:e}),a}}),Wg=S("$ZodUnknown",(e,t)=>{ae.init(e,t),e._zod.parse=a=>a}),Gg=S("$ZodNever",(e,t)=>{ae.init(e,t),e._zod.parse=(a,n)=>(a.issues.push({expected:"never",code:"invalid_type",input:a.value,inst:e}),a)});function fr(e,t,a){e.issues.length&&t.issues.push(...Yn(a,e.issues)),t.value[a]=e.value}var Kg=S("$ZodArray",(e,t)=>{ae.init(e,t),e._zod.parse=(a,n)=>{const r=a.value;if(!Array.isArray(r))return a.issues.push({expected:"array",code:"invalid_type",input:r,inst:e}),a;a.value=Array(r.length);const i=[];for(let o=0;o<r.length;o++){const s=r[o],c=t.element._zod.run({value:s,issues:[]},n);c instanceof Promise?i.push(c.then(l=>fr(l,a,o))):fr(c,a,o)}return i.length?Promise.all(i).then(()=>a):a}});function Rt(e,t,a,n,r){if(e.issues.length){if(r&&!(a in n))return;t.issues.push(...Yn(a,e.issues))}e.value===void 0?a in n&&(t.value[a]=void 0):t.value[a]=e.value}function br(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const a=xd(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function vr(e,t,a,n,r,i){const o=[],s=r.keySet,c=r.catchall._zod,l=c.def.type,g=c.optout==="optional";for(const d in t){if(s.has(d))continue;if(l==="never"){o.push(d);continue}const h=c.run({value:t[d],issues:[]},n);h instanceof Promise?e.push(h.then(u=>Rt(u,a,d,t,g))):Rt(h,a,d,t,g)}return o.length&&a.issues.push({code:"unrecognized_keys",keys:o,input:t,inst:i}),e.length?Promise.all(e).then(()=>a):a}var Yg=S("$ZodObject",(e,t)=>{if(ae.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const o=t.shape;Object.defineProperty(t,"shape",{get:()=>{const s={...o};return Object.defineProperty(t,"shape",{value:s}),s}})}const a=Ta(()=>br(t));J(e._zod,"propValues",()=>{const o=t.shape,s={};for(const c in o){const l=o[c]._zod;if(l.values){s[c]??(s[c]=new Set);for(const g of l.values)s[c].add(g)}}return s});const n=At,r=t.catchall;let i;e._zod.parse=(o,s)=>{i??(i=a.value);const c=o.value;if(!n(c))return o.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),o;o.value={};const l=[],g=i.shape;for(const d of i.keys){const h=g[d],u=h._zod.optout==="optional",m=h._zod.run({value:c[d],issues:[]},s);m instanceof Promise?l.push(m.then(p=>Rt(p,o,d,c,u))):Rt(m,o,d,c,u)}return r?vr(l,c,o,s,a.value,e):l.length?Promise.all(l).then(()=>o):o}}),Jg=S("$ZodObjectJIT",(e,t)=>{Yg.init(e,t);const a=e._zod.parse,n=Ta(()=>br(t)),r=h=>{const u=new vg(["shape","payload","ctx"]),m=n.value,p=v=>{const x=Wn(v);return`shape[${x}]._zod.run({ value: input[${x}], issues: [] }, ctx)`};u.write("const input = payload.value;");const f=Object.create(null);let b=0;for(const v of m.keys)f[v]=`key_${b++}`;u.write("const newResult = {};");for(const v of m.keys){const x=f[v],k=Wn(v),P=h[v]?._zod?.optout==="optional";u.write(`const ${x} = ${p(v)};`),P?u.write(`
|
|
141
|
+
if (${x}.issues.length) {
|
|
142
142
|
if (${k} in input) {
|
|
143
|
-
payload.issues = payload.issues.concat(${
|
|
143
|
+
payload.issues = payload.issues.concat(${x}.issues.map(iss => ({
|
|
144
144
|
...iss,
|
|
145
145
|
path: iss.path ? [${k}, ...iss.path] : [${k}]
|
|
146
146
|
})));
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
if (${
|
|
150
|
+
if (${x}.value === undefined) {
|
|
151
151
|
if (${k} in input) {
|
|
152
152
|
newResult[${k}] = undefined;
|
|
153
153
|
}
|
|
154
154
|
} else {
|
|
155
|
-
newResult[${k}] = ${
|
|
155
|
+
newResult[${k}] = ${x}.value;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
`):u.write(`
|
|
159
|
-
if (${
|
|
160
|
-
payload.issues = payload.issues.concat(${
|
|
159
|
+
if (${x}.issues.length) {
|
|
160
|
+
payload.issues = payload.issues.concat(${x}.issues.map(iss => ({
|
|
161
161
|
...iss,
|
|
162
162
|
path: iss.path ? [${k}, ...iss.path] : [${k}]
|
|
163
163
|
})));
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
if (${
|
|
166
|
+
if (${x}.value === undefined) {
|
|
167
167
|
if (${k} in input) {
|
|
168
168
|
newResult[${k}] = undefined;
|
|
169
169
|
}
|
|
170
170
|
} else {
|
|
171
|
-
newResult[${k}] = ${
|
|
171
|
+
newResult[${k}] = ${x}.value;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
`)}u.write("payload.value = newResult;"),u.write("return payload;");const C=u.compile();return(v,w)=>C(h,v,w)};let i;const o=Lt,s=!Sa.jitless,l=s&&yd.value,g=t.catchall;let d;e._zod.parse=(h,u)=>{d??(d=n.value);const f=h.value;return o(f)?s&&l&&u?.async===!1&&u.jitless!==!0?(i||(i=r(t.shape)),h=i(h,u),g?vr([],f,h,u,d,e):h):a(h,u):(h.issues.push({expected:"object",code:"invalid_type",input:f,inst:e}),h)}});function yr(e,t,a,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const r=e.filter(i=>!at(i));return r.length===1?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:a,errors:e.map(i=>i.issues.map(o=>Ve(o,n,je())))}),t)}var Qg=S("$ZodUnion",(e,t)=>{ae.init(e,t),Y(e._zod,"optin",()=>t.options.some(r=>r._zod.optin==="optional")?"optional":void 0),Y(e._zod,"optout",()=>t.options.some(r=>r._zod.optout==="optional")?"optional":void 0),Y(e._zod,"values",()=>{if(t.options.every(r=>r._zod.values))return new Set(t.options.flatMap(r=>Array.from(r._zod.values)))}),Y(e._zod,"pattern",()=>{if(t.options.every(r=>r._zod.pattern)){const r=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${r.map(i=>Aa(i.source)).join("|")})$`)}});const a=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(r,i)=>{if(a)return n(r,i);let o=!1;const s=[];for(const c of t.options){const l=c._zod.run({value:r.value,issues:[]},i);if(l instanceof Promise)s.push(l),o=!0;else{if(l.issues.length===0)return l;s.push(l)}}return o?Promise.all(s).then(c=>yr(c,r,e,i)):yr(s,r,e,i)}}),Xg=S("$ZodIntersection",(e,t)=>{ae.init(e,t),e._zod.parse=(a,n)=>{const r=a.value,i=t.left._zod.run({value:r,issues:[]},n),o=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||o instanceof Promise?Promise.all([i,o]).then(([s,c])=>_r(a,s,c)):_r(a,i,o)}});function Na(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(gt(e)&>(t)){const a=Object.keys(t),n=Object.keys(e).filter(i=>a.indexOf(i)!==-1),r={...e,...t};for(const i of n){const o=Na(e[i],t[i]);if(!o.valid)return{valid:!1,mergeErrorPath:[i,...o.mergeErrorPath]};r[i]=o.data}return{valid:!0,data:r}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const a=[];for(let n=0;n<e.length;n++){const r=e[n],i=t[n],o=Na(r,i);if(!o.valid)return{valid:!1,mergeErrorPath:[n,...o.mergeErrorPath]};a.push(o.data)}return{valid:!0,data:a}}return{valid:!1,mergeErrorPath:[]}}function _r(e,t,a){const n=new Map;let r;for(const s of t.issues)if(s.code==="unrecognized_keys"){r??(r=s);for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(s);for(const s of a.issues)if(s.code==="unrecognized_keys")for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(s);const i=[...n].filter(([,s])=>s.l&&s.r).map(([s])=>s);if(i.length&&r&&e.issues.push({...r,keys:i}),at(e))return e;const o=Na(t.value,a.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var ep=S("$ZodEnum",(e,t)=>{ae.init(e,t);const a=Zn(t.entries),n=new Set(a);e._zod.values=n,e._zod.pattern=new RegExp(`^(${a.filter(r=>_d.has(typeof r)).map(r=>typeof r=="string"?tt(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:a,input:o,inst:e}),r}}),tp=S("$ZodLiteral",(e,t)=>{if(ae.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const a=new Set(t.values);e._zod.values=a,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?tt(n):n?tt(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,r)=>{const i=n.value;return a.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),ap=S("$ZodTransform",(e,t)=>{ae.init(e,t),e._zod.parse=(a,n)=>{if(n.direction==="backward")throw new jn(e.constructor.name);const r=t.transform(a.value,a);if(n.async)return(r instanceof Promise?r:Promise.resolve(r)).then(i=>(a.value=i,a));if(r instanceof Promise)throw new et;return a.value=r,a}});function xr(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var wr=S("$ZodOptional",(e,t)=>{ae.init(e,t),e._zod.optin="optional",e._zod.optout="optional",Y(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Y(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${Aa(a.source)})?$`):void 0}),e._zod.parse=(a,n)=>{if(t.innerType._zod.optin==="optional"){const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>xr(i,a.value)):xr(r,a.value)}return a.value===void 0?a:t.innerType._zod.run(a,n)}}),np=S("$ZodExactOptional",(e,t)=>{wr.init(e,t),Y(e._zod,"values",()=>t.innerType._zod.values),Y(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(a,n)=>t.innerType._zod.run(a,n)}),rp=S("$ZodNullable",(e,t)=>{ae.init(e,t),Y(e._zod,"optin",()=>t.innerType._zod.optin),Y(e._zod,"optout",()=>t.innerType._zod.optout),Y(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${Aa(a.source)}|null)$`):void 0}),Y(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(a,n)=>a.value===null?a:t.innerType._zod.run(a,n)}),ip=S("$ZodDefault",(e,t)=>{ae.init(e,t),e._zod.optin="optional",Y(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>{if(n.direction==="backward")return t.innerType._zod.run(a,n);if(a.value===void 0)return a.value=t.defaultValue,a;const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>kr(i,t)):kr(r,t)}});function kr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var op=S("$ZodPrefault",(e,t)=>{ae.init(e,t),e._zod.optin="optional",Y(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>(n.direction==="backward"||a.value===void 0&&(a.value=t.defaultValue),t.innerType._zod.run(a,n))}),sp=S("$ZodNonOptional",(e,t)=>{ae.init(e,t),Y(e._zod,"values",()=>{const a=t.innerType._zod.values;return a?new Set([...a].filter(n=>n!==void 0)):void 0}),e._zod.parse=(a,n)=>{const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>Cr(i,e)):Cr(r,e)}});function Cr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var cp=S("$ZodCatch",(e,t)=>{ae.init(e,t),Y(e._zod,"optin",()=>t.innerType._zod.optin),Y(e._zod,"optout",()=>t.innerType._zod.optout),Y(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>{if(n.direction==="backward")return t.innerType._zod.run(a,n);const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>(a.value=i.value,i.issues.length&&(a.value=t.catchValue({...a,error:{issues:i.issues.map(o=>Ve(o,n,je()))},input:a.value}),a.issues=[]),a)):(a.value=r.value,r.issues.length&&(a.value=t.catchValue({...a,error:{issues:r.issues.map(i=>Ve(i,n,je()))},input:a.value}),a.issues=[]),a)}}),lp=S("$ZodPipe",(e,t)=>{ae.init(e,t),Y(e._zod,"values",()=>t.in._zod.values),Y(e._zod,"optin",()=>t.in._zod.optin),Y(e._zod,"optout",()=>t.out._zod.optout),Y(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(a,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(a,n);return i instanceof Promise?i.then(o=>Dt(o,t.in,n)):Dt(i,t.in,n)}const r=t.in._zod.run(a,n);return r instanceof Promise?r.then(i=>Dt(i,t.out,n)):Dt(r,t.out,n)}});function Dt(e,t,a){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},a)}var dp=S("$ZodReadonly",(e,t)=>{ae.init(e,t),Y(e._zod,"propValues",()=>t.innerType._zod.propValues),Y(e._zod,"values",()=>t.innerType._zod.values),Y(e._zod,"optin",()=>t.innerType?._zod?.optin),Y(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(a,n)=>{if(n.direction==="backward")return t.innerType._zod.run(a,n);const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(Sr):Sr(r)}});function Sr(e){return e.value=Object.freeze(e.value),e}var gp=S("$ZodCustom",(e,t)=>{he.init(e,t),ae.init(e,t),e._zod.parse=(a,n)=>a,e._zod.check=a=>{const n=a.value,r=t.fn(n);if(r instanceof Promise)return r.then(i=>Er(i,a,n,e));Er(r,a,n,e)}});function Er(e,t,a,n){if(!e){const r={code:"custom",input:a,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(r.params=n._zod.def.params),t.issues.push(pt(r))}}var Tr,pp=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const a=t[0];return this._map.set(e,a),a&&typeof a=="object"&&"id"in a&&this._idmap.set(a.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const a={...this.get(t)??{}};delete a.id;const n={...a,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function hp(){return new pp}(Tr=globalThis).__zod_globalRegistry??(Tr.__zod_globalRegistry=hp());var Me=globalThis.__zod_globalRegistry;function up(e,t){return new e({type:"string",...D(t)})}function mp(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...D(t)})}function Pr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...D(t)})}function fp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...D(t)})}function bp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...D(t)})}function vp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...D(t)})}function yp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...D(t)})}function _p(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...D(t)})}function xp(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...D(t)})}function wp(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...D(t)})}function kp(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...D(t)})}function Cp(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...D(t)})}function Sp(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...D(t)})}function Ep(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...D(t)})}function Tp(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...D(t)})}function Pp(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...D(t)})}function Ap(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...D(t)})}function Lp(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...D(t)})}function Ip(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...D(t)})}function Np(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...D(t)})}function zp(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...D(t)})}function Mp(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...D(t)})}function Bp(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...D(t)})}function Rp(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...D(t)})}function Op(e,t){return new e({type:"string",format:"date",check:"string_format",...D(t)})}function Dp(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...D(t)})}function Fp(e,t){return new e({type:"string",format:"duration",check:"string_format",...D(t)})}function $p(e,t){return new e({type:"number",checks:[],...D(t)})}function Up(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...D(t)})}function Hp(e,t){return new e({type:"boolean",...D(t)})}function qp(e){return new e({type:"unknown"})}function jp(e,t){return new e({type:"never",...D(t)})}function Ar(e,t){return new pr({check:"less_than",...D(t),value:e,inclusive:!1})}function za(e,t){return new pr({check:"less_than",...D(t),value:e,inclusive:!0})}function Lr(e,t){return new hr({check:"greater_than",...D(t),value:e,inclusive:!1})}function Ma(e,t){return new hr({check:"greater_than",...D(t),value:e,inclusive:!0})}function Ir(e,t){return new og({check:"multiple_of",...D(t),value:e})}function Nr(e,t){return new cg({check:"max_length",...D(t),maximum:e})}function Ft(e,t){return new lg({check:"min_length",...D(t),minimum:e})}function zr(e,t){return new dg({check:"length_equals",...D(t),length:e})}function Zp(e,t){return new gg({check:"string_format",format:"regex",...D(t),pattern:e})}function Vp(e){return new pg({check:"string_format",format:"lowercase",...D(e)})}function Wp(e){return new hg({check:"string_format",format:"uppercase",...D(e)})}function Gp(e,t){return new ug({check:"string_format",format:"includes",...D(t),includes:e})}function Kp(e,t){return new mg({check:"string_format",format:"starts_with",...D(t),prefix:e})}function Yp(e,t){return new fg({check:"string_format",format:"ends_with",...D(t),suffix:e})}function nt(e){return new bg({check:"overwrite",tx:e})}function Jp(e){return nt(t=>t.normalize(e))}function Qp(){return nt(e=>e.trim())}function Xp(){return nt(e=>e.toLowerCase())}function eh(){return nt(e=>e.toUpperCase())}function th(){return nt(e=>vd(e))}function ah(e,t,a){return new e({type:"array",element:t,...D(a)})}function nh(e,t,a){return new e({type:"custom",check:"custom",fn:t,...D(a)})}function rh(e){const t=ih(a=>(a.addIssue=n=>{if(typeof n=="string")a.issues.push(pt(n,a.value,t._zod.def));else{const r=n;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=a.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),a.issues.push(pt(r))}},e(a.value,a)));return t}function ih(e,t){const a=new he({check:"custom",...D(t)});return a._zod.check=e,a}function oh(e){const t=new he({check:"describe"});return t._zod.onattach=[a=>{const n=Me.get(a)??{};Me.add(a,{...n,description:e})}],t._zod.check=()=>{},t}function sh(e){const t=new he({check:"meta"});return t._zod.onattach=[a=>{const n=Me.get(a)??{};Me.add(a,{...n,...e})}],t._zod.check=()=>{},t}function Mr(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Me,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function ge(e,t,a={path:[],schemaPath:[]}){var n;const r=e._zod.def,i=t.seen.get(e);if(i)return i.count++,a.schemaPath.includes(e)&&(i.cycle=a.path),i.schema;const o={schema:{},count:1,cycle:void 0,path:a.path};t.seen.set(e,o);const s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{const l={...a,schemaPath:[...a.schemaPath,e],path:a.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,l);else{const d=o.schema,h=t.processors[r.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${r.type}`);h(e,t,d,l)}const g=e._zod.parent;g&&(o.ref||(o.ref=g),ge(g,t,l),t.seen.get(g).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io==="input"&&ue(e)&&(delete o.schema.examples,delete o.schema.default),t.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Br(e,t){const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const o of e.seen.entries()){const s=e.metadataRegistry.get(o[0])?.id;if(s){const c=n.get(s);if(c&&c!==o[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,o[0])}}const r=o=>{const s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const g=e.external.registry.get(o[0])?.id,d=e.external.uri??(u=>u);if(g)return{ref:d(g)};const h=o[1].defId??o[1].schema.id??`schema${e.counter++}`;return o[1].defId=h,{defId:h,ref:`${d("__shared")}#/${s}/${h}`}}if(o[1]===a)return{ref:"#"};const c=`#/${s}/`,l=o[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:c+l}},i=o=>{if(o[1].schema.$ref)return;const s=o[1],{ref:c,defId:l}=r(o);s.def={...s.schema},l&&(s.defId=l);const g=s.schema;for(const d in g)delete g[d];g.$ref=c};if(e.cycles==="throw")for(const o of e.seen.entries()){const s=o[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/<root>
|
|
174
|
+
`)}u.write("payload.value = newResult;"),u.write("return payload;");const C=u.compile();return(v,x)=>C(h,v,x)};let i;const o=At,s=!Sa.jitless,l=s&&yd.value,g=t.catchall;let d;e._zod.parse=(h,u)=>{d??(d=n.value);const m=h.value;return o(m)?s&&l&&u?.async===!1&&u.jitless!==!0?(i||(i=r(t.shape)),h=i(h,u),g?vr([],m,h,u,d,e):h):a(h,u):(h.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),h)}});function yr(e,t,a,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const r=e.filter(i=>!at(i));return r.length===1?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:a,errors:e.map(i=>i.issues.map(o=>Ve(o,n,je())))}),t)}var Qg=S("$ZodUnion",(e,t)=>{ae.init(e,t),J(e._zod,"optin",()=>t.options.some(r=>r._zod.optin==="optional")?"optional":void 0),J(e._zod,"optout",()=>t.options.some(r=>r._zod.optout==="optional")?"optional":void 0),J(e._zod,"values",()=>{if(t.options.every(r=>r._zod.values))return new Set(t.options.flatMap(r=>Array.from(r._zod.values)))}),J(e._zod,"pattern",()=>{if(t.options.every(r=>r._zod.pattern)){const r=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${r.map(i=>Aa(i.source)).join("|")})$`)}});const a=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(r,i)=>{if(a)return n(r,i);let o=!1;const s=[];for(const c of t.options){const l=c._zod.run({value:r.value,issues:[]},i);if(l instanceof Promise)s.push(l),o=!0;else{if(l.issues.length===0)return l;s.push(l)}}return o?Promise.all(s).then(c=>yr(c,r,e,i)):yr(s,r,e,i)}}),Xg=S("$ZodIntersection",(e,t)=>{ae.init(e,t),e._zod.parse=(a,n)=>{const r=a.value,i=t.left._zod.run({value:r,issues:[]},n),o=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||o instanceof Promise?Promise.all([i,o]).then(([s,c])=>_r(a,s,c)):_r(a,i,o)}});function Na(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(gt(e)&>(t)){const a=Object.keys(t),n=Object.keys(e).filter(i=>a.indexOf(i)!==-1),r={...e,...t};for(const i of n){const o=Na(e[i],t[i]);if(!o.valid)return{valid:!1,mergeErrorPath:[i,...o.mergeErrorPath]};r[i]=o.data}return{valid:!0,data:r}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const a=[];for(let n=0;n<e.length;n++){const r=e[n],i=t[n],o=Na(r,i);if(!o.valid)return{valid:!1,mergeErrorPath:[n,...o.mergeErrorPath]};a.push(o.data)}return{valid:!0,data:a}}return{valid:!1,mergeErrorPath:[]}}function _r(e,t,a){const n=new Map;let r;for(const s of t.issues)if(s.code==="unrecognized_keys"){r??(r=s);for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(s);for(const s of a.issues)if(s.code==="unrecognized_keys")for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(s);const i=[...n].filter(([,s])=>s.l&&s.r).map(([s])=>s);if(i.length&&r&&e.issues.push({...r,keys:i}),at(e))return e;const o=Na(t.value,a.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var ep=S("$ZodEnum",(e,t)=>{ae.init(e,t);const a=Zn(t.entries),n=new Set(a);e._zod.values=n,e._zod.pattern=new RegExp(`^(${a.filter(r=>_d.has(typeof r)).map(r=>typeof r=="string"?tt(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:a,input:o,inst:e}),r}}),tp=S("$ZodLiteral",(e,t)=>{if(ae.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const a=new Set(t.values);e._zod.values=a,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?tt(n):n?tt(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,r)=>{const i=n.value;return a.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),ap=S("$ZodTransform",(e,t)=>{ae.init(e,t),e._zod.parse=(a,n)=>{if(n.direction==="backward")throw new jn(e.constructor.name);const r=t.transform(a.value,a);if(n.async)return(r instanceof Promise?r:Promise.resolve(r)).then(i=>(a.value=i,a));if(r instanceof Promise)throw new et;return a.value=r,a}});function xr(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var wr=S("$ZodOptional",(e,t)=>{ae.init(e,t),e._zod.optin="optional",e._zod.optout="optional",J(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),J(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${Aa(a.source)})?$`):void 0}),e._zod.parse=(a,n)=>{if(t.innerType._zod.optin==="optional"){const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>xr(i,a.value)):xr(r,a.value)}return a.value===void 0?a:t.innerType._zod.run(a,n)}}),np=S("$ZodExactOptional",(e,t)=>{wr.init(e,t),J(e._zod,"values",()=>t.innerType._zod.values),J(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(a,n)=>t.innerType._zod.run(a,n)}),rp=S("$ZodNullable",(e,t)=>{ae.init(e,t),J(e._zod,"optin",()=>t.innerType._zod.optin),J(e._zod,"optout",()=>t.innerType._zod.optout),J(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${Aa(a.source)}|null)$`):void 0}),J(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(a,n)=>a.value===null?a:t.innerType._zod.run(a,n)}),ip=S("$ZodDefault",(e,t)=>{ae.init(e,t),e._zod.optin="optional",J(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>{if(n.direction==="backward")return t.innerType._zod.run(a,n);if(a.value===void 0)return a.value=t.defaultValue,a;const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>kr(i,t)):kr(r,t)}});function kr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var op=S("$ZodPrefault",(e,t)=>{ae.init(e,t),e._zod.optin="optional",J(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>(n.direction==="backward"||a.value===void 0&&(a.value=t.defaultValue),t.innerType._zod.run(a,n))}),sp=S("$ZodNonOptional",(e,t)=>{ae.init(e,t),J(e._zod,"values",()=>{const a=t.innerType._zod.values;return a?new Set([...a].filter(n=>n!==void 0)):void 0}),e._zod.parse=(a,n)=>{const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>Cr(i,e)):Cr(r,e)}});function Cr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var cp=S("$ZodCatch",(e,t)=>{ae.init(e,t),J(e._zod,"optin",()=>t.innerType._zod.optin),J(e._zod,"optout",()=>t.innerType._zod.optout),J(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,n)=>{if(n.direction==="backward")return t.innerType._zod.run(a,n);const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(i=>(a.value=i.value,i.issues.length&&(a.value=t.catchValue({...a,error:{issues:i.issues.map(o=>Ve(o,n,je()))},input:a.value}),a.issues=[]),a)):(a.value=r.value,r.issues.length&&(a.value=t.catchValue({...a,error:{issues:r.issues.map(i=>Ve(i,n,je()))},input:a.value}),a.issues=[]),a)}}),lp=S("$ZodPipe",(e,t)=>{ae.init(e,t),J(e._zod,"values",()=>t.in._zod.values),J(e._zod,"optin",()=>t.in._zod.optin),J(e._zod,"optout",()=>t.out._zod.optout),J(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(a,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(a,n);return i instanceof Promise?i.then(o=>Ot(o,t.in,n)):Ot(i,t.in,n)}const r=t.in._zod.run(a,n);return r instanceof Promise?r.then(i=>Ot(i,t.out,n)):Ot(r,t.out,n)}});function Ot(e,t,a){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},a)}var dp=S("$ZodReadonly",(e,t)=>{ae.init(e,t),J(e._zod,"propValues",()=>t.innerType._zod.propValues),J(e._zod,"values",()=>t.innerType._zod.values),J(e._zod,"optin",()=>t.innerType?._zod?.optin),J(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(a,n)=>{if(n.direction==="backward")return t.innerType._zod.run(a,n);const r=t.innerType._zod.run(a,n);return r instanceof Promise?r.then(Sr):Sr(r)}});function Sr(e){return e.value=Object.freeze(e.value),e}var gp=S("$ZodCustom",(e,t)=>{he.init(e,t),ae.init(e,t),e._zod.parse=(a,n)=>a,e._zod.check=a=>{const n=a.value,r=t.fn(n);if(r instanceof Promise)return r.then(i=>Er(i,a,n,e));Er(r,a,n,e)}});function Er(e,t,a,n){if(!e){const r={code:"custom",input:a,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(r.params=n._zod.def.params),t.issues.push(pt(r))}}var Tr,pp=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const a=t[0];return this._map.set(e,a),a&&typeof a=="object"&&"id"in a&&this._idmap.set(a.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const a={...this.get(t)??{}};delete a.id;const n={...a,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function hp(){return new pp}(Tr=globalThis).__zod_globalRegistry??(Tr.__zod_globalRegistry=hp());var Me=globalThis.__zod_globalRegistry;function up(e,t){return new e({type:"string",...D(t)})}function mp(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...D(t)})}function Pr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...D(t)})}function fp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...D(t)})}function bp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...D(t)})}function vp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...D(t)})}function yp(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...D(t)})}function _p(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...D(t)})}function xp(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...D(t)})}function wp(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...D(t)})}function kp(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...D(t)})}function Cp(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...D(t)})}function Sp(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...D(t)})}function Ep(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...D(t)})}function Tp(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...D(t)})}function Pp(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...D(t)})}function Ap(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...D(t)})}function Lp(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...D(t)})}function Ip(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...D(t)})}function Np(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...D(t)})}function zp(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...D(t)})}function Mp(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...D(t)})}function Bp(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...D(t)})}function Rp(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...D(t)})}function Op(e,t){return new e({type:"string",format:"date",check:"string_format",...D(t)})}function Dp(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...D(t)})}function Fp(e,t){return new e({type:"string",format:"duration",check:"string_format",...D(t)})}function $p(e,t){return new e({type:"number",checks:[],...D(t)})}function Up(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...D(t)})}function Hp(e,t){return new e({type:"boolean",...D(t)})}function qp(e){return new e({type:"unknown"})}function jp(e,t){return new e({type:"never",...D(t)})}function Ar(e,t){return new pr({check:"less_than",...D(t),value:e,inclusive:!1})}function za(e,t){return new pr({check:"less_than",...D(t),value:e,inclusive:!0})}function Lr(e,t){return new hr({check:"greater_than",...D(t),value:e,inclusive:!1})}function Ma(e,t){return new hr({check:"greater_than",...D(t),value:e,inclusive:!0})}function Ir(e,t){return new og({check:"multiple_of",...D(t),value:e})}function Nr(e,t){return new cg({check:"max_length",...D(t),maximum:e})}function Dt(e,t){return new lg({check:"min_length",...D(t),minimum:e})}function zr(e,t){return new dg({check:"length_equals",...D(t),length:e})}function Zp(e,t){return new gg({check:"string_format",format:"regex",...D(t),pattern:e})}function Vp(e){return new pg({check:"string_format",format:"lowercase",...D(e)})}function Wp(e){return new hg({check:"string_format",format:"uppercase",...D(e)})}function Gp(e,t){return new ug({check:"string_format",format:"includes",...D(t),includes:e})}function Kp(e,t){return new mg({check:"string_format",format:"starts_with",...D(t),prefix:e})}function Yp(e,t){return new fg({check:"string_format",format:"ends_with",...D(t),suffix:e})}function nt(e){return new bg({check:"overwrite",tx:e})}function Jp(e){return nt(t=>t.normalize(e))}function Qp(){return nt(e=>e.trim())}function Xp(){return nt(e=>e.toLowerCase())}function eh(){return nt(e=>e.toUpperCase())}function th(){return nt(e=>vd(e))}function ah(e,t,a){return new e({type:"array",element:t,...D(a)})}function nh(e,t,a){return new e({type:"custom",check:"custom",fn:t,...D(a)})}function rh(e){const t=ih(a=>(a.addIssue=n=>{if(typeof n=="string")a.issues.push(pt(n,a.value,t._zod.def));else{const r=n;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=a.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),a.issues.push(pt(r))}},e(a.value,a)));return t}function ih(e,t){const a=new he({check:"custom",...D(t)});return a._zod.check=e,a}function oh(e){const t=new he({check:"describe"});return t._zod.onattach=[a=>{const n=Me.get(a)??{};Me.add(a,{...n,description:e})}],t._zod.check=()=>{},t}function sh(e){const t=new he({check:"meta"});return t._zod.onattach=[a=>{const n=Me.get(a)??{};Me.add(a,{...n,...e})}],t._zod.check=()=>{},t}function Mr(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Me,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function ge(e,t,a={path:[],schemaPath:[]}){var n;const r=e._zod.def,i=t.seen.get(e);if(i)return i.count++,a.schemaPath.includes(e)&&(i.cycle=a.path),i.schema;const o={schema:{},count:1,cycle:void 0,path:a.path};t.seen.set(e,o);const s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{const l={...a,schemaPath:[...a.schemaPath,e],path:a.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,l);else{const d=o.schema,h=t.processors[r.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${r.type}`);h(e,t,d,l)}const g=e._zod.parent;g&&(o.ref||(o.ref=g),ge(g,t,l),t.seen.get(g).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io==="input"&&ue(e)&&(delete o.schema.examples,delete o.schema.default),t.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Br(e,t){const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const o of e.seen.entries()){const s=e.metadataRegistry.get(o[0])?.id;if(s){const c=n.get(s);if(c&&c!==o[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,o[0])}}const r=o=>{const s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const g=e.external.registry.get(o[0])?.id,d=e.external.uri??(u=>u);if(g)return{ref:d(g)};const h=o[1].defId??o[1].schema.id??`schema${e.counter++}`;return o[1].defId=h,{defId:h,ref:`${d("__shared")}#/${s}/${h}`}}if(o[1]===a)return{ref:"#"};const c=`#/${s}/`,l=o[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:c+l}},i=o=>{if(o[1].schema.$ref)return;const s=o[1],{ref:c,defId:l}=r(o);s.def={...s.schema},l&&(s.defId=l);const g=s.schema;for(const d in g)delete g[d];g.$ref=c};if(e.cycles==="throw")for(const o of e.seen.entries()){const s=o[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/<root>
|
|
175
175
|
|
|
176
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const s=o[1];if(t===o[0]){i(o);continue}if(e.external){const c=e.external.registry.get(o[0])?.id;if(t!==o[0]&&c){i(o);continue}}if(e.metadataRegistry.get(o[0])?.id){i(o);continue}if(s.cycle){i(o);continue}if(s.count>1&&e.reused==="ref"){i(o);continue}}}function Rr(e,t){const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=o=>{const s=e.seen.get(o);if(s.ref===null)return;const c=s.def??s.schema,l={...c},g=s.ref;if(s.ref=null,g){n(g);const h=e.seen.get(g),u=h.schema;if(u.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(u)):Object.assign(c,u),Object.assign(c,l),o._zod.parent===g)for(const f in c)f==="$ref"||f==="allOf"||f in l||delete c[f];if(u.$ref&&h.def)for(const f in c)f==="$ref"||f==="allOf"||f in h.def&&JSON.stringify(c[f])===JSON.stringify(h.def[f])&&delete c[f]}const d=o._zod.parent;if(d&&d!==g){n(d);const h=e.seen.get(d);if(h?.schema.$ref&&(c.$ref=h.schema.$ref,h.def))for(const u in c)u==="$ref"||u==="allOf"||u in h.def&&JSON.stringify(c[u])===JSON.stringify(h.def[u])&&delete c[u]}e.override({zodSchema:o,jsonSchema:c,path:s.path??[]})};for(const o of[...e.seen.entries()].reverse())n(o[0]);const r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const o=e.external.registry.get(t)?.id;if(!o)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(o)}Object.assign(r,a.def??a.schema);const i=e.external?.defs??{};for(const o of e.seen.entries()){const s=o[1];s.def&&s.defId&&(i[s.defId]=s.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?r.$defs=i:r.definitions=i);try{const o=JSON.parse(JSON.stringify(r));return Object.defineProperty(o,"~standard",{value:{...t["~standard"],jsonSchema:{input:$t(t,"input",e.processors),output:$t(t,"output",e.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function ue(e,t){const a=t??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return ue(n.element,a);if(n.type==="set")return ue(n.valueType,a);if(n.type==="lazy")return ue(n.getter(),a);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return ue(n.innerType,a);if(n.type==="intersection")return ue(n.left,a)||ue(n.right,a);if(n.type==="record"||n.type==="map")return ue(n.keyType,a)||ue(n.valueType,a);if(n.type==="pipe")return ue(n.in,a)||ue(n.out,a);if(n.type==="object"){for(const r in n.shape)if(ue(n.shape[r],a))return!0;return!1}if(n.type==="union"){for(const r of n.options)if(ue(r,a))return!0;return!1}if(n.type==="tuple"){for(const r of n.items)if(ue(r,a))return!0;return!!(n.rest&&ue(n.rest,a))}return!1}var ch=(e,t={})=>a=>{const n=Mr({...a,processors:t});return ge(e,n),Br(n,e),Rr(n,e)},$t=(e,t,a={})=>n=>{const{libraryOptions:r,target:i}=n??{},o=Mr({...r??{},target:i,io:t,processors:a});return ge(e,o),Br(o,e),Rr(o,e)},lh={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},dh=(e,t,a,n)=>{const r=a;r.type="string";const{minimum:i,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof i=="number"&&(r.minLength=i),typeof o=="number"&&(r.maxLength=o),s&&(r.format=lh[s]??s,r.format===""&&delete r.format,s==="time"&&delete r.format),l&&(r.contentEncoding=l),c&&c.size>0){const g=[...c];g.length===1?r.pattern=g[0].source:g.length>1&&(r.allOf=[...g.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},gh=(e,t,a,n)=>{const r=a,{minimum:i,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:g}=e._zod.bag;typeof s=="string"&&s.includes("int")?r.type="integer":r.type="number",typeof g=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.minimum=g,r.exclusiveMinimum=!0):r.exclusiveMinimum=g),typeof i=="number"&&(r.minimum=i,typeof g=="number"&&t.target!=="draft-04"&&(g>=i?delete r.minimum:delete r.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.maximum=l,r.exclusiveMaximum=!0):r.exclusiveMaximum=l),typeof o=="number"&&(r.maximum=o,typeof l=="number"&&t.target!=="draft-04"&&(l<=o?delete r.maximum:delete r.exclusiveMaximum)),typeof c=="number"&&(r.multipleOf=c)},ph=(e,t,a,n)=>{a.type="boolean"},hh=(e,t,a,n)=>{a.not={}},uh=(e,t,a,n)=>{},mh=(e,t,a,n)=>{const r=e._zod.def,i=Zn(r.entries);i.every(o=>typeof o=="number")&&(a.type="number"),i.every(o=>typeof o=="string")&&(a.type="string"),a.enum=i},fh=(e,t,a,n)=>{const r=e._zod.def,i=[];for(const o of r.values)if(o===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(o))}else i.push(o);if(i.length!==0)if(i.length===1){const o=i[0];a.type=o===null?"null":typeof o,t.target==="draft-04"||t.target==="openapi-3.0"?a.enum=[o]:a.const=o}else i.every(o=>typeof o=="number")&&(a.type="number"),i.every(o=>typeof o=="string")&&(a.type="string"),i.every(o=>typeof o=="boolean")&&(a.type="boolean"),i.every(o=>o===null)&&(a.type="null"),a.enum=i},bh=(e,t,a,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},vh=(e,t,a,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},yh=(e,t,a,n)=>{const r=a,i=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o=="number"&&(r.minItems=o),typeof s=="number"&&(r.maxItems=s),r.type="array",r.items=ge(i.element,t,{...n,path:[...n.path,"items"]})},_h=(e,t,a,n)=>{const r=a,i=e._zod.def;r.type="object",r.properties={};const o=i.shape;for(const l in o)r.properties[l]=ge(o[l],t,{...n,path:[...n.path,"properties",l]});const s=new Set(Object.keys(o)),c=new Set([...s].filter(l=>{const g=i.shape[l]._zod;return t.io==="input"?g.optin===void 0:g.optout===void 0}));c.size>0&&(r.required=Array.from(c)),i.catchall?._zod.def.type==="never"?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=ge(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},xh=(e,t,a,n)=>{const r=e._zod.def,i=r.inclusive===!1,o=r.options.map((s,c)=>ge(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?a.oneOf=o:a.anyOf=o},wh=(e,t,a,n)=>{const r=e._zod.def,i=ge(r.left,t,{...n,path:[...n.path,"allOf",0]}),o=ge(r.right,t,{...n,path:[...n.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1;a.allOf=[...s(i)?i.allOf:[i],...s(o)?o.allOf:[o]]},kh=(e,t,a,n)=>{const r=e._zod.def,i=ge(r.innerType,t,n),o=t.seen.get(e);t.target==="openapi-3.0"?(o.ref=r.innerType,a.nullable=!0):a.anyOf=[i,{type:"null"}]},Ch=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType},Sh=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType,a.default=JSON.parse(JSON.stringify(r.defaultValue))},Eh=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType,t.io==="input"&&(a._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},Th=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType;let o;try{o=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}a.default=o},Ph=(e,t,a,n)=>{const r=e._zod.def,i=t.io==="input"?r.in._zod.def.type==="transform"?r.out:r.in:r.out;ge(i,t,n);const o=t.seen.get(e);o.ref=i},Ah=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType,a.readOnly=!0},Or=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType},Lh=S("ZodISODateTime",(e,t)=>{Ig.init(e,t),te.init(e,t)});function Ih(e){return Rp(Lh,e)}var Nh=S("ZodISODate",(e,t)=>{Ng.init(e,t),te.init(e,t)});function zh(e){return Op(Nh,e)}var Mh=S("ZodISOTime",(e,t)=>{zg.init(e,t),te.init(e,t)});function Bh(e){return Dp(Mh,e)}var Rh=S("ZodISODuration",(e,t)=>{Mg.init(e,t),te.init(e,t)});function Oh(e){return Fp(Rh,e)}var Dr=(e,t)=>{Qn.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>Id(e,a)},flatten:{value:a=>Ld(e,a)},addIssue:{value:a=>{e.issues.push(a),e.message=JSON.stringify(e.issues,Ea,2)}},addIssues:{value:a=>{e.issues.push(...a),e.message=JSON.stringify(e.issues,Ea,2)}},isEmpty:{get(){return e.issues.length===0}}})},gf=S("ZodError",Dr),ke=S("ZodError",Dr,{Parent:Error}),Dh=Nt(ke),Fh=zt(ke),$h=Mt(ke),Uh=Bt(ke),Hh=Xn(ke),qh=er(ke),jh=tr(ke),Zh=ar(ke),Vh=nr(ke),Wh=rr(ke),Gh=ir(ke),Kh=or(ke),ne=S("ZodType",(e,t)=>(ae.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:$t(e,"input"),output:$t(e,"output")}}),e.toJSONSchema=ch(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...a)=>e.clone(Ue(t,{checks:[...t.checks??[],...a.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),e.with=e.check,e.clone=(a,n)=>He(e,a,n),e.brand=()=>e,e.register=((a,n)=>(a.add(e,n),e)),e.parse=(a,n)=>Dh(e,a,n,{callee:e.parse}),e.safeParse=(a,n)=>$h(e,a,n),e.parseAsync=async(a,n)=>Fh(e,a,n,{callee:e.parseAsync}),e.safeParseAsync=async(a,n)=>Uh(e,a,n),e.spa=e.safeParseAsync,e.encode=(a,n)=>Hh(e,a,n),e.decode=(a,n)=>qh(e,a,n),e.encodeAsync=async(a,n)=>jh(e,a,n),e.decodeAsync=async(a,n)=>Zh(e,a,n),e.safeEncode=(a,n)=>Vh(e,a,n),e.safeDecode=(a,n)=>Wh(e,a,n),e.safeEncodeAsync=async(a,n)=>Gh(e,a,n),e.safeDecodeAsync=async(a,n)=>Kh(e,a,n),e.refine=(a,n)=>e.check(ju(a,n)),e.superRefine=a=>e.check(Zu(a)),e.overwrite=a=>e.check(nt(a)),e.optional=()=>Vr(e),e.exactOptional=()=>Iu(e),e.nullable=()=>Wr(e),e.nullish=()=>Vr(Wr(e)),e.nonoptional=a=>Ou(e,a),e.array=()=>_u(e),e.or=a=>ku([e,a]),e.and=a=>Su(e,a),e.transform=a=>Kr(e,Au(a)),e.default=a=>Mu(e,a),e.prefault=a=>Ru(e,a),e.catch=a=>Fu(e,a),e.pipe=a=>Kr(e,a),e.readonly=()=>Hu(e),e.describe=a=>{const n=e.clone();return Me.add(n,{description:a}),n},Object.defineProperty(e,"description",{get(){return Me.get(e)?.description},configurable:!0}),e.meta=(...a)=>{if(a.length===0)return Me.get(e);const n=e.clone();return Me.add(n,a[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=a=>a(e),e)),Fr=S("_ZodString",(e,t)=>{Ia.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(n,r,i)=>dh(e,n,r,i);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,e.regex=(...n)=>e.check(Zp(...n)),e.includes=(...n)=>e.check(Gp(...n)),e.startsWith=(...n)=>e.check(Kp(...n)),e.endsWith=(...n)=>e.check(Yp(...n)),e.min=(...n)=>e.check(Ft(...n)),e.max=(...n)=>e.check(Nr(...n)),e.length=(...n)=>e.check(zr(...n)),e.nonempty=(...n)=>e.check(Ft(1,...n)),e.lowercase=n=>e.check(Vp(n)),e.uppercase=n=>e.check(Wp(n)),e.trim=()=>e.check(Qp()),e.normalize=(...n)=>e.check(Jp(...n)),e.toLowerCase=()=>e.check(Xp()),e.toUpperCase=()=>e.check(eh()),e.slugify=()=>e.check(th())}),Yh=S("ZodString",(e,t)=>{Ia.init(e,t),Fr.init(e,t),e.email=a=>e.check(mp(Jh,a)),e.url=a=>e.check(_p(Qh,a)),e.jwt=a=>e.check(Bp(hu,a)),e.emoji=a=>e.check(xp(Xh,a)),e.guid=a=>e.check(Pr($r,a)),e.uuid=a=>e.check(fp(Ut,a)),e.uuidv4=a=>e.check(bp(Ut,a)),e.uuidv6=a=>e.check(vp(Ut,a)),e.uuidv7=a=>e.check(yp(Ut,a)),e.nanoid=a=>e.check(wp(eu,a)),e.guid=a=>e.check(Pr($r,a)),e.cuid=a=>e.check(kp(tu,a)),e.cuid2=a=>e.check(Cp(au,a)),e.ulid=a=>e.check(Sp(nu,a)),e.base64=a=>e.check(Np(du,a)),e.base64url=a=>e.check(zp(gu,a)),e.xid=a=>e.check(Ep(ru,a)),e.ksuid=a=>e.check(Tp(iu,a)),e.ipv4=a=>e.check(Pp(ou,a)),e.ipv6=a=>e.check(Ap(su,a)),e.cidrv4=a=>e.check(Lp(cu,a)),e.cidrv6=a=>e.check(Ip(lu,a)),e.e164=a=>e.check(Mp(pu,a)),e.datetime=a=>e.check(Ih(a)),e.date=a=>e.check(zh(a)),e.time=a=>e.check(Bh(a)),e.duration=a=>e.check(Oh(a))});function Ce(e){return up(Yh,e)}var te=S("ZodStringFormat",(e,t)=>{ee.init(e,t),Fr.init(e,t)}),Jh=S("ZodEmail",(e,t)=>{wg.init(e,t),te.init(e,t)}),$r=S("ZodGUID",(e,t)=>{_g.init(e,t),te.init(e,t)}),Ut=S("ZodUUID",(e,t)=>{xg.init(e,t),te.init(e,t)}),Qh=S("ZodURL",(e,t)=>{kg.init(e,t),te.init(e,t)}),Xh=S("ZodEmoji",(e,t)=>{Cg.init(e,t),te.init(e,t)}),eu=S("ZodNanoID",(e,t)=>{Sg.init(e,t),te.init(e,t)}),tu=S("ZodCUID",(e,t)=>{Eg.init(e,t),te.init(e,t)}),au=S("ZodCUID2",(e,t)=>{Tg.init(e,t),te.init(e,t)}),nu=S("ZodULID",(e,t)=>{Pg.init(e,t),te.init(e,t)}),ru=S("ZodXID",(e,t)=>{Ag.init(e,t),te.init(e,t)}),iu=S("ZodKSUID",(e,t)=>{Lg.init(e,t),te.init(e,t)}),ou=S("ZodIPv4",(e,t)=>{Bg.init(e,t),te.init(e,t)}),su=S("ZodIPv6",(e,t)=>{Rg.init(e,t),te.init(e,t)}),cu=S("ZodCIDRv4",(e,t)=>{Og.init(e,t),te.init(e,t)}),lu=S("ZodCIDRv6",(e,t)=>{Dg.init(e,t),te.init(e,t)}),du=S("ZodBase64",(e,t)=>{Fg.init(e,t),te.init(e,t)}),gu=S("ZodBase64URL",(e,t)=>{Ug.init(e,t),te.init(e,t)}),pu=S("ZodE164",(e,t)=>{Hg.init(e,t),te.init(e,t)}),hu=S("ZodJWT",(e,t)=>{jg.init(e,t),te.init(e,t)}),Ur=S("ZodNumber",(e,t)=>{mr.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(n,r,i)=>gh(e,n,r,i),e.gt=(n,r)=>e.check(Lr(n,r)),e.gte=(n,r)=>e.check(Ma(n,r)),e.min=(n,r)=>e.check(Ma(n,r)),e.lt=(n,r)=>e.check(Ar(n,r)),e.lte=(n,r)=>e.check(za(n,r)),e.max=(n,r)=>e.check(za(n,r)),e.int=n=>e.check(qr(n)),e.safe=n=>e.check(qr(n)),e.positive=n=>e.check(Lr(0,n)),e.nonnegative=n=>e.check(Ma(0,n)),e.negative=n=>e.check(Ar(0,n)),e.nonpositive=n=>e.check(za(0,n)),e.multipleOf=(n,r)=>e.check(Ir(n,r)),e.step=(n,r)=>e.check(Ir(n,r)),e.finite=()=>e;const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function Hr(e){return $p(Ur,e)}var uu=S("ZodNumberFormat",(e,t)=>{Zg.init(e,t),Ur.init(e,t)});function qr(e){return Up(uu,e)}var mu=S("ZodBoolean",(e,t)=>{Vg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>ph(e,a,n,r)});function We(e){return Hp(mu,e)}var fu=S("ZodUnknown",(e,t)=>{Wg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>uh(e,a,n,r)});function jr(){return qp(fu)}var bu=S("ZodNever",(e,t)=>{Gg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>hh(e,a,n,r)});function vu(e){return jp(bu,e)}var yu=S("ZodArray",(e,t)=>{Kg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>yh(e,a,n,r),e.element=t.element,e.min=(a,n)=>e.check(Ft(a,n)),e.nonempty=a=>e.check(Ft(1,a)),e.max=(a,n)=>e.check(Nr(a,n)),e.length=(a,n)=>e.check(zr(a,n)),e.unwrap=()=>e.element});function _u(e,t){return ah(yu,e,t)}var xu=S("ZodObject",(e,t)=>{Jg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>_h(e,a,n,r),Y(e,"shape",()=>t.shape),e.keyof=()=>Ra(Object.keys(e._zod.def.shape)),e.catchall=a=>e.clone({...e._zod.def,catchall:a}),e.passthrough=()=>e.clone({...e._zod.def,catchall:jr()}),e.loose=()=>e.clone({...e._zod.def,catchall:jr()}),e.strict=()=>e.clone({...e._zod.def,catchall:vu()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=a=>Sd(e,a),e.safeExtend=a=>Ed(e,a),e.merge=a=>Td(e,a),e.pick=a=>kd(e,a),e.omit=a=>Cd(e,a),e.partial=(...a)=>Pd(Zr,e,a[0]),e.required=(...a)=>Ad(Gr,e,a[0])});function Be(e,t){return new xu({type:"object",shape:e??{},...D(t)})}var wu=S("ZodUnion",(e,t)=>{Qg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>xh(e,a,n,r),e.options=t.options});function ku(e,t){return new wu({type:"union",options:e,...D(t)})}var Cu=S("ZodIntersection",(e,t)=>{Xg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>wh(e,a,n,r)});function Su(e,t){return new Cu({type:"intersection",left:e,right:t})}var Ba=S("ZodEnum",(e,t)=>{ep.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(n,r,i)=>mh(e,n,r,i),e.enum=t.entries,e.options=Object.values(t.entries);const a=new Set(Object.keys(t.entries));e.extract=(n,r)=>{const i={};for(const o of n)if(a.has(o))i[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Ba({...t,checks:[],...D(r),entries:i})},e.exclude=(n,r)=>{const i={...t.entries};for(const o of n)if(a.has(o))delete i[o];else throw new Error(`Key ${o} not found in enum`);return new Ba({...t,checks:[],...D(r),entries:i})}});function Ra(e,t){return new Ba({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(a=>[a,a])):e,...D(t)})}var Eu=S("ZodLiteral",(e,t)=>{tp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>fh(e,a,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Tu(e,t){return new Eu({type:"literal",values:Array.isArray(e)?e:[e],...D(t)})}var Pu=S("ZodTransform",(e,t)=>{ap.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>vh(e,a,n,r),e._zod.parse=(a,n)=>{if(n.direction==="backward")throw new jn(e.constructor.name);a.addIssue=i=>{if(typeof i=="string")a.issues.push(pt(i,a.value,t));else{const o=i;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=a.value),o.inst??(o.inst=e),a.issues.push(pt(o))}};const r=t.transform(a.value,a);return r instanceof Promise?r.then(i=>(a.value=i,a)):(a.value=r,a)}});function Au(e){return new Pu({type:"transform",transform:e})}var Zr=S("ZodOptional",(e,t)=>{wr.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Or(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Vr(e){return new Zr({type:"optional",innerType:e})}var Lu=S("ZodExactOptional",(e,t)=>{np.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Or(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Iu(e){return new Lu({type:"optional",innerType:e})}var Nu=S("ZodNullable",(e,t)=>{rp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>kh(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Wr(e){return new Nu({type:"nullable",innerType:e})}var zu=S("ZodDefault",(e,t)=>{ip.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Sh(e,a,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Mu(e,t){return new zu({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Kn(t)}})}var Bu=S("ZodPrefault",(e,t)=>{op.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Eh(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Ru(e,t){return new Bu({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Kn(t)}})}var Gr=S("ZodNonOptional",(e,t)=>{sp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Ch(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Ou(e,t){return new Gr({type:"nonoptional",innerType:e,...D(t)})}var Du=S("ZodCatch",(e,t)=>{cp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Th(e,a,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Fu(e,t){return new Du({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var $u=S("ZodPipe",(e,t)=>{lp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Ph(e,a,n,r),e.in=t.in,e.out=t.out});function Kr(e,t){return new $u({type:"pipe",in:e,out:t})}var Uu=S("ZodReadonly",(e,t)=>{dp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Ah(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Hu(e){return new Uu({type:"readonly",innerType:e})}var qu=S("ZodCustom",(e,t)=>{gp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>bh(e,a,n,r)});function ju(e,t={}){return nh(qu,e,t)}function Zu(e){return rh(e)}var pf=oh,hf=sh;function Yr(e){return e.length>120?!1:/^[a-zA-Z0-9#(),.\s%/\-]+$/.test(e)}function Oa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}var Vu=class it extends ft{constructor(...t){super(...t),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=ca,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 Zl,this._eventCallbacks=new Map,this._lastSentAction=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._modeController=new Gs}static{this._MAX_COMPARISON_SELECTION=5}static{this._MAX_PANEL_HISTORY=10}get _assistantMode(){return this._modeController.mode}set _assistantMode(t){this._modeController.mode=t}get _uiHints(){return this._modeController.uiHints}set _uiHints(t){this._modeController.uiHints=t}async onInit(t){if(this._i18n=this._resolveI18n(t),this._chatCreatedAt=new Date().toISOString(),t.pillLauncher){const p=Wl(t.pillLauncher);t.launcherImageUrl=p.launcherImageUrl,t.headerAvatarUrl===void 0&&(t.headerAvatarUrl=t.pillLauncher.avatarUrl),this._pillLauncherApply=()=>p.apply(this._shadow??void 0)}this._shadow=this.root.attachShadow({mode:"open"});const a=document.createElement("style");a.textContent=id,this._shadow.appendChild(a);const n=this.root,r=(p,m)=>{m&&Yr(m)&&n.style.setProperty(p,m)};if(r("--gengage-chat-header-bg",t.headerBg),r("--gengage-chat-header-foreground",t.headerForeground),t.theme)for(const[p,m]of Object.entries(t.theme))p.startsWith("--")&&typeof m=="string"&&r(p,m);this._applyDiscountedPriceColorVar(t.productPriceUi?.discountedPriceColor);const i=document.createElement("div");i.className="gengage-chat-root",this._rootEl=i,this._shadow.appendChild(i);const o=t.variant??"floating";if(o==="inline"&&i.classList.add("gengage-chat--inline"),o!=="inline"){const p=document.createElement("div");p.className="gengage-chat-backdrop",p.setAttribute("aria-hidden","true"),p.setAttribute("role","button"),p.setAttribute("tabindex","-1"),p.setAttribute("aria-label",this._i18n.closeAriaLabel),p.addEventListener("click",m=>{m.preventDefault(),m.stopPropagation(),this.close()}),this._backdropEl=p,i.prepend(p)}if(o==="floating"){const p={onClick:()=>this.open(),ariaLabel:this._i18n.openButton};t.launcherImageUrl!==void 0?p.imageUrl=t.launcherImageUrl:t.launcherSvg!==void 0&&(p.svgMarkup=t.launcherSvg),t.hideMobileLauncher!==void 0&&(p.hideMobile=t.hideMobileLauncher),t.mobileBreakpoint!==void 0&&(p.mobileBreakpoint=t.mobileBreakpoint),t.launcherTooltip!==void 0&&(p.tooltip=t.launcherTooltip),this._launcher=tc(p),i.appendChild(this._launcher.container)}o==="overlay"&&i.classList.add("gengage-chat--overlay");const s=document.createElement("div");i.appendChild(s),this._drawer=new qs(s,{i18n:this._i18n,onSend:(p,m)=>this._sendMessage(p,m),onClose:()=>this.close(),onAttachment:p=>this._handleAttachment(p),onPanelToggle:()=>{this._drawer?.persistPanelState(t.accountId)},onHostShellSync:()=>{this._applyOpenStateClasses()},onRollback:p=>this._handleRollback(p),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:t.headerTitle,headerAvatarUrl:t.headerAvatarUrl,launcherImageUrl:t.launcherImageUrl,headerBadge:t.headerBadge,headerCartUrl:t.headerCartUrl,showHeaderFavorites:typeof t.onFavoritesClick=="function"||t.headerFavoritesToggle===!0,onCartClick:()=>{t.headerCartUrl?this._saveSessionAndOpenURL(t.headerCartUrl):t.onCartClick?.()},onFavoritesClick:()=>{if(pd(),typeof t.onFavoritesClick=="function"){t.onFavoritesClick();return}this._openFavoritesPanel()},getMobileState:()=>this._openState??"full",getMobileViewport:()=>this._isMobileViewport,onMobileSnap:p=>{p==="close"?this.close():(this._openState=p,this._applyOpenStateClasses())},onThumbnailClick:p=>this._rollbackToThread(p),onLinkClick:p=>{this._saveSessionAndOpenURL(p)},voiceEnabled:t.voiceEnabled,voiceLang:t.locale?`${t.locale.split("-")[0]??"tr"}-${(t.locale.split("-")[1]??t.locale.split("-")[0]??"TR").toUpperCase()}`:void 0,presentation:{onPinnedToBottomChange:p=>{this._presentation.pinnedToBottom=p},onUserInteractingChange:p=>{this._presentation.userInteracting=p},onFormerMessagesHint:()=>{this._presentation.focusedThreadId&&this._hasMultipleThreadIds()&&this._drawer?.setFormerMessagesButtonVisible(!0)},shouldBlockSoftAutoScroll:()=>this._presentation.shouldBlockStreamAutoScroll(),onReleasePresentationFocus:()=>this._releasePresentationFocus()}}),this._applyUiHints(),this._extendedModeManager=new Hl({onChange:p=>this._panel?.notifyExtension(p),productDetailsInPanel:(t.isDemoWebsite??!1)&&(t.productDetailsExtended??!1)}),this._panel=new ql({drawer:()=>this._drawer,shadow:()=>this._shadow,currentThreadId:()=>this._currentThreadId,bridge:()=>this._bridge,extendedModeManager:()=>this._extendedModeManager,i18n:()=>this._i18n,rollbackToThread:p=>this._rollbackToThread(p)}),o!=="inline"&&this._drawer.getElement().classList.add("gengage-chat-drawer--hidden");const c=this._drawer.restorePanelState(t.accountId),l=t.panelMode??"auto";l==="collapsed"?this._drawer.setPanelCollapsed(!0):l==="expanded"&&this._drawer.setForceExpanded();const g=sessionStorage.getItem("gengage_restore_session_id"),d=sessionStorage.getItem("gengage_restore_sku"),h=!!(g&&d);h&&(sessionStorage.removeItem("gengage_restore_session_id"),sessionStorage.removeItem("gengage_restore_sku"));try{const p=new $l;await p.open(),this._session=new Dn(p),await this._restoreFromIndexedDB(h)}catch{this._session=new Dn(null)}this._registerPublicAPI(),t.mobileInitialState!==void 0&&(this._openState=t.mobileInitialState),this._mobileBreakpoint=t.mobileBreakpoint??768,this._syncViewportState();const u=()=>this._syncViewportState();if(window.addEventListener("resize",u,{passive:!0}),this.addCleanup(()=>window.removeEventListener("resize",u)),window.visualViewport){const p=()=>{if(!this._drawerVisible||!this._isMobileViewport)return;const m=this._drawer?.getElement();if(!m)return;const b=window.innerHeight-(window.visualViewport?.height??window.innerHeight);m.style.setProperty("--gengage-keyboard-offset",`${Math.max(0,b)}px`)};window.visualViewport.addEventListener("resize",p),this.addCleanup(()=>window.visualViewport?.removeEventListener("resize",p))}o==="inline"&&(this._drawerVisible=!0,this.isVisible=!0,this._applyOpenStateClasses(),this._presentation.setShown(!0),setTimeout(()=>this._maybeAutoAnchorUnreadAssistant(),60));const f={namespace:"chat",onMessage:p=>this._handleBridgeMessage(p)};t.allowedOrigins!==void 0&&(f.allowedOrigins=t.allowedOrigins),this._bridge=new po(f),this._lastSku=this.config.pageContext?.sku,this._initComplete=!0;for(const p of this._pendingActions)this._sendAction(p.action,p.options);this._pendingActions=[],this._pillLauncherApply&&o==="floating"&&(await this._pillLauncherApply(),this._pillLauncherApply=null),ce("gengage:chat:ready",{}),Pt("chat"),t.onReady?.()}onUpdate(t){t.sku!==void 0&&t.sku!==this._lastSku&&(this._lastSku=t.sku,this._resetForNewPage())}onShow(){this._showDrawer(),this.emit("open"),ce("gengage:chat:open",{state:this._openState}),At("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"),ce("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(),ws(),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(t){t?.state!==void 0&&(this._openState=t.state,this._drawerVisible&&this._applyOpenStateClasses()),this.show(),t?.initialMessage!==void 0&&this._sendMessage(t.initialMessage)}openWithAction(t,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(t)}sendMessage(t){this._sendMessage(t)}sendAction(t,a){this._sendAction(t,a)}close(){this.hide()}saveSession(t,a){sessionStorage.setItem("gengage_restore_session_id",t),sessionStorage.setItem("gengage_restore_sku",a)}get isOpen(){return this._drawerVisible}addCallback(t,a){let n=this._eventCallbacks.get(t);return n||(n=new Set,this._eventCallbacks.set(t,n)),n.add(a),()=>{n.delete(a),n.size===0&&this._eventCallbacks.delete(t)}}_applyDiscountedPriceColorVar(t){const a=this.root;t==="client"?a.style.setProperty("--gengage-discounted-price-color","var(--client-primary)"):a.style.removeProperty("--gengage-discounted-price-color")}_abortAllActiveRequests(){for(const t of this._abortControllers)t.abort();this._abortControllers.clear()}_pruneEmptyStreamingAssistantPlaceholders(){const t=[];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(i=>i.remove()),this._panel&&(this._panel.threads=this._panel.threads.filter(i=>i!==n.threadId));const r=this._thumbnailEntries.length;this._thumbnailEntries=this._thumbnailEntries.filter(i=>i.threadId!==n.threadId),this._thumbnailEntries.length!==r&&(a=!0)}this._drawer?.removeMessageBubble(n.id),this._panel?.snapshots.delete(n.id),this._panel?.snapshotTypes.delete(n.id);continue}t.push(n)}this._messages.length=0,this._messages.push(...t),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 t=this._presentation.scrollRequest;if(!t||!this._drawer)return;let a=!1;t.type==="thread"&&t.threadId?(a=this._drawer.scrollThreadIntoView(t.threadId,t.behavior),a||(this._drawer.scrollToBottomPresentation(t.behavior),a=!0)):t.type==="bottom"&&(this._drawer.scrollToBottomPresentation(t.behavior),a=!0),a&&this._presentation.consumeScrollRequest(t.id)}_releasePresentationFocus(){this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1)}_hasMultipleThreadIds(){const t=new Set;for(const a of this._messages)a.threadId&&t.add(a.threadId);return t.size>1}_orderedThreadIds(){const t=[],a=new Set;for(const n of this._messages)n.threadId&&!a.has(n.threadId)&&(a.add(n.threadId),t.push(n.threadId));return t}_maybeAutoAnchorUnreadAssistant(){if(!this._drawer||!this._presentation.shown)return;const t=this._orderedThreadIds();if(t.length===0)return;const a=Vl(t,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(t){switch(t.type){case"openChat":this.open();break;case"closeChat":this.close();break;case"startNewChatWithLauncherAction":{const a=t.payload,n=a?.action,r=Oa(n)?n:Oa(a)?a:null;r&&this._sendAction(r,{silent:!0}),this.open();break}case"startNewChatWithDetailContext":{const a=t.payload;if(a&&typeof a=="object"){this._bridgeContext=a;const n=a.sku;if(n&&this.update({sku:n}),Oa(a.action)){this._pdpLaunched=!0,this.open(),this._sendAction(a.action);break}}this.open();break}case"launcherAction":{const a=t.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",t.payload);break;case"cartQuantityHandler":{const a=t.payload;a&&"quantity"in a&&typeof a.quantity=="number"&&(this._cartQuantity=a.quantity);break}case"favoritesCountHandler":{const a=t.payload?.count;typeof a=="number"&&a>=0&&this._drawer?.updateFavoritesBadge(a);break}case"minimizeRequestedByUser":this._extendedModeManager?.setHiddenByUser(!0);break;case"bgColorChange":{const a=t.payload?.color;typeof a=="string"&&Yr(a)&&this._shadow&&this._shadow.host.style.setProperty("--gengage-chat-bg",a);break}default:break}}_registerPublicAPI(){window.gengage||(window.gengage={}),window.gengage.chat={open:t=>this.open(t),openWithAction:(t,a)=>this.openWithAction(t,a),sendMessage:t=>this.sendMessage(t),sendAction:(t,a)=>this.sendAction(t,a),close:()=>this.close(),saveSession:(t,a)=>this.saveSession(t,a),get isOpen(){return!1},on:(t,a)=>this.on(t,a),trackCheckout:(t,a)=>this.trackCheckout(t,a),flushMeteringSummary:t=>this.flushMeteringSummary(t),addCallback:(t,a)=>this.addCallback(t,a)},Object.defineProperty(window.gengage.chat,"isOpen",{get:()=>this._drawerVisible})}_showDrawer(){if(this._drawerVisible)return;this._drawerVisible=!0;const t=this._drawer?.getElement();t&&t.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 t=this._resolveOpeningContextKey(),a=this._resolveContextualOpeningActions(t);if(a.length>0&&this._drawer?.setPills(a.map(i=>({label:i.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(i,t))}))),t==="product"&&this.config.pageContext?.sku||this._shouldPrimeContextualOpening(t))return;const n=this._resolveContextualOpeningMessage(t);if(!n)return;const r={id:Ja(),role:"assistant",content:n,timestamp:Date.now(),status:"done"};this._messages.push(r),this._drawer?.addMessage(r)}_resolveOpeningContextKey(){switch(this.config.pageContext?.pageType){case"home":return"home";case"search":case"plp":return"listing";case"pdp":return"product";default:return"default"}}_resolveContextualOpeningMessage(t=this._resolveOpeningContextKey()){return this.config.openingMessagesByContext?.[t]??(t!=="default"?this.config.openingMessagesByContext?.default:void 0)??this.config.welcomeMessage}_resolveContextualOpeningGuidance(t=this._resolveOpeningContextKey()){return this.config.openingGuidanceByContext?.[t]??(t!=="default"?this.config.openingGuidanceByContext?.default:void 0)}_resolveContextualOpeningActions(t=this._resolveOpeningContextKey()){const a=this.config.welcomeActionsByContext?.[t]??(t!=="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(t,a=this._resolveOpeningContextKey()){const n=t.title.trim(),r=this.config.pageContext?.sku??this._readContextStringField("sku"),i=this._readContextStringListField("visible_skus")??[];return t.icon==="review"&&r?{title:n,type:"reviewSummary",payload:{sku:r}}:t.icon==="similar"&&r?{title:n,type:"findSimilar",payload:{sku:r}}:t.icon==="compare"&&a==="listing"&&i.length>=2?{title:n,type:"getComparisonTable",payload:{sku_list:i.slice(0,2)}}:{title:n,type:"user_message",payload:n}}_readContextStringField(t){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,r=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),i=a?.[t]??n?.[t]??a?.[r]??n?.[r];return typeof i=="string"&&i.trim().length>0?i.trim():void 0}_readContextStringListField(t){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,r=t.replace(/_([a-z])/g,(s,c)=>c.toUpperCase()),i=a?.[t]??n?.[t]??a?.[r]??n?.[r];if(!Array.isArray(i))return;const o=i.filter(s=>typeof s=="string"&&s.trim().length>0);return o.length>0?o:void 0}_buildEntryOpeningPageDetails(){const t={};t.url=this.config.pageContext?.url??window.location.href;const a=this._readContextStringField("page_title");a&&(t.page_title=a);const n=this._readContextStringField("page_description");n&&(t.page_description=n);const r=this._readContextStringField("search_query");r&&(t.search_query=r);const i=this._readContextStringListField("visible_skus");i?.length&&(t.visible_skus=i);const o=this._readContextStringListField("popular_searches");o?.length&&(t.popular_searches=o);const s=this.config.pageContext?.categoryTree??this._readContextStringListField("category_path");return s?.length&&(t.category_path=s),Object.keys(t).length>0?t:void 0}_shouldPrimeContextualOpening(t=this._resolveOpeningContextKey()){return this._messages.length!==0||this._entryContextPrimed||this._pdpPrimingInFlight||t==="product"?!1:!!(this.config.openingMessagesByContext||this.config.openingGuidanceByContext||this.config.welcomeActionsByContext)}_maybePrimeEntryContextOpening(){const t=this._resolveOpeningContextKey();if(!this._shouldPrimeContextualOpening(t))return;this._entryContextPrimed=!0;const a={text:"",is_entry_context_opening:1,opening_context_key:t},n=this._buildEntryOpeningPageDetails();n&&(a.page_details=n);const r=this._resolveContextualOpeningMessage(t);r&&(a.opening_message=r);const i=this._resolveContextualOpeningGuidance(t);i&&(a.opening_guidance=i),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 t=this._drawer?.getElement();t&&t.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 t=this._isMobileViewport&&this.config.hideMobileLauncher===!0;this._launcher.container.classList.toggle("gengage-chat-launcher--hidden-mobile",t)}this._applyOpenStateClasses()}}_isMaximizedForHostChrome(){if(!this._drawerVisible)return!1;const t=this.config.variant??"floating";return t==="inline"?!1:t==="overlay"?!0:this._drawer?.isPanelVisible()??!1}_applyOpenStateClasses(){if(!this._rootEl)return;const t=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",t),this._rootEl.classList.toggle("gengage-chat-root--mobile-full",a),this._rootEl.classList.toggle("gengage-chat-root--maximized-host-chrome",n),this._backdropEl){const r=n&&(this.config.variant??"floating")!=="inline";this._backdropEl.setAttribute("aria-hidden",r?"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(t){try{const a=t.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 r=window.getComputedStyle(n),i=(r.overflowY==="auto"||r.overflowY==="scroll")&&n.scrollHeight>n.clientHeight+1,o=(r.overflowX==="auto"||r.overflowX==="scroll")&&n.scrollWidth>n.clientWidth+1;if(i||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(t){const a=_o(t);if(!a.ok){ce("gengage:global:error",{message:a.reason==="invalid_type"?this._i18n.invalidFileType:this._i18n.fileTooLarge,source:"chat"});return}this._drawer?.stageAttachment(t)}_sendMessage(t,a){this._pdpPrimingInFlight&&(this._abortAllActiveRequests(),this._pdpPrimingInFlight=!1,this._queuedUserMessages=[]),(!this._messages.some(r=>r.role==="user")||this._drawer?.isKvkkBannerVisible())&&(wa(this.config.accountId),this._drawer?.hideKvkkBanner()),ud(),this._messages.some(r=>r.role==="user")||md(),Le("chat","sendMessage",{mode:this._assistantMode,hasAttachment:a!==void 0,textLength:t.length});const n=a!==void 0?{title:t,type:this._modeController.resolveAttachmentActionType(),payload:t?{text:t}:{}}:{title:t,type:"user_message",payload:t};a!==void 0?this._sendAction(n,{attachment:a}):this._sendAction(n)}_flushQueuedUserMessages(){if(this._pdpPrimingInFlight||this._queuedUserMessages.length===0)return;const t=[...this._queuedUserMessages];this._queuedUserMessages=[];for(const a of t)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(t=>t.remove())})}_handleRedirectMetadata(t){this._modeController.handleRedirect(t)}_sendAction(t,a){if(this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._lastSentAction={action:t,options:a},!this._initComplete){this._pendingActions.length<10&&this._pendingActions.push({action:t,options:a});return}if(this._choicePrompterEl?.remove(),this._choicePrompterEl=null,a?.preservePanel||Bl(),!a?.preservePanel&&this._comparisonSelectMode&&t.type!=="getComparisonTable"&&(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[]),a?.preservePanel||(this._localPanelHistory=[]),this._currentThreadId&&this._lastThreadId&&this._lastThreadId>this._currentThreadId){const _=this._currentThreadId,y=this._messages.filter(x=>x.threadId!==void 0&&x.threadId>_);this._messages=this._messages.filter(x=>!x.threadId||x.threadId<=_);for(const x of y)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>_&&x.remove()})}a?.preservePills||this._drawer?.setPills([]),this._drawer?.clearInputAreaChips(),this._bridge?.send("isResponding",!0);const n=Ja();this._currentThreadId=n,this._lastThreadId=n,this._panel&&t.type!=="launchSingleProduct"&&(this._panel.lastActionType=t.type);const r=a?.preservePanel===!0,i=t.type==="launchSingleProduct"&&a?.silent===!0&&a?.isPdpPrime===!0;if(r||(this._activeRequestThreadId=n),!a?.silent&&!r&&this._drawer?.setPresentationFocus(n),!a?.silent){const _=typeof t.payload=="string"?t.payload:typeof t.payload?.text=="string"?t.payload.text:t.title,y=this._messages.length>0?this._messages[this._messages.length-1]:void 0;if(!(y!==void 0&&y.role==="user"&&y.content===_)){const x=this._createMessage("user",_);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()&&(t.type==="user_message"||t.type==="inputText")){const _=this._i18n.productNotFoundMessage,y=this._createMessage("assistant",_);y.threadId=n,y.status="done",this._messages.push(y),this._ensureAssistantMessageRendered(y),this._drawer?.updateBotMessage(y.id,_),this._drawer?.setPresentationFocus(n),this._bridge?.send("isResponding",!1),this.emit("message",y),this._persistToIndexedDB().catch(()=>{});return}let o=this._currentPanelSource,s=!1;const c=()=>{s||a?.preservePanel||(o=this._currentPanelSource,s=!0)},l=()=>{if(this._drawer?.isPanelLoading()){if(o){const _=this._buildRenderContext(),y=this._renderPanelFromSource(o,_);this._drawer.setPanelContent(y),this._drawer.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(o)),this._currentPanelSource=o}else this._drawer.clearPanel(),this._currentPanelSource=null;o=null}};t.type==="getComparisonTable"&&(this._drawer?.showPanelLoading("comparisonTable"),this._panel?.updateTopBarForLoading("comparisonTable")),!a?.silent&&!r&&this._pruneEmptyStreamingAssistantPlaceholders(),this._drawer?.showTypingIndicator();let g="";const d=this._createMessage("assistant","");d.threadId=n,d.status="streaming",a?.silent&&(d.silent=!0),this._messages.push(d),this._presentation.registerAssistantActivity(n),this._presentation.requestThreadFocus(n,"smooth"),(a?.silent||r)&&this._drawer?.setPresentationFocus(n),this._drawer?.setFormerMessagesButtonVisible(!1),setTimeout(()=>this._flushPresentationScroll(),40),a?.preservePanel||this._abortAllActiveRequests();const h={middlewareUrl:this.config.middlewareUrl,...this.config.accountId?{accountId:this.config.accountId}:{}};a?.attachment!==void 0&&(h.attachment=a.attachment);const u=this._getVisibleMessages().filter(_=>_!==d&&(_.content||_.role==="assistant")).slice(-50).map(_=>({role:_.role==="user"?"user":"model",content:_.content??""})),f={outputLanguage:rd(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:$n(this.config.accountId),voiceEnabled:this.config.voiceEnabled??!1,threadId:n,isControlGroup:this.config.session?.abTestVariant==="control",isMobile:this._isMobileViewport};this._modeController.isShopping||(f.assistantMode=this._modeController.mode),this.config.session?.viewId!==void 0&&(f.viewId=this.config.session.viewId);const p=bs(t,{pageContext:this.config.pageContext,backendContext:this._lastBackendContext,isMobile:this._isMobileViewport}),m={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",type:p.type,locale:this.config.locale??"tr",meta:f,context:{...this._lastBackendContext??{},messages:u,session_id:this.config.session?.sessionId??""}};this.config.session?.userId!==void 0&&(m.user_id=this.config.session.userId),this.config.session?.viewId!==void 0&&(m.view_id=this.config.session.viewId),p.payload!==void 0&&(m.payload=p.payload),this.config.pageContext?.sku!==void 0&&(m.sku=this.config.pageContext.sku),this.config.pageContext?.pageType!==void 0&&(m.page_type=this.config.pageContext.pageType);const b=crypto.randomUUID(),C=Date.now();let v=0,w=!1,k=!1,A=!1,B=!1,I=!1;const H=Ks();let Q=null;const K=()=>{if(this._drawer){if(this._isMobileViewport||!A){this._drawer.setPanelAiZoneState("hidden");return}B||(I?this._drawer.setPanelAiZoneState("hidden"):this._drawer.setPanelAiZoneState("analyzing",{analyzingLabel:this._i18n.aiAnalysisAnalyzingLabel}))}};this.track(Qt(this.analyticsContext(),{endpoint:"process_action",request_id:b,widget:"chat"}));let N=null;if(N=_s(m,{onTextChunk:(_,y,x)=>{if(!r&&n!==this._activeRequestThreadId||(g+=_,this._drawer?.removeTypingIndicator(),x?.skuToProductItem&&(this._skuToProductItem={...this._skuToProductItem,...x.skuToProductItem}),x?.conversationMode&&(this._conversationMode=x.conversationMode),x?.renderHint&&(d.renderHint=x.renderHint),this.track(zi(this.analyticsContext(),{request_id:b,chunk_index:v++,widget:"chat"})),!this._drawer))return;let E=g;const L=x?.kvkk===!0||i&&xa(E);if(y&&L){const R=this.config.accountId;if(!$n(R)){const P=ad(E);P?this._drawer?.showKvkkBanner(P,()=>{this._drawer?.hideKvkkBanner(),wa(R)}):wa(R)}E=td(E)}const z=this._shadow?.querySelector(`[data-message-id="${d.id}"] .gengage-chat-bubble-text`);if(z?z.innerHTML=_e(E):(d.content=E,d.role==="assistant"&&d.threadId&&!this._threadsWithFirstBot.has(d.threadId)&&(this._threadsWithFirstBot.add(d.threadId),this._drawer.markFirstBotMessage(d.id)),this._drawer.addMessage(d)),y)if(d.content=E,d.status="done",qn(),Js(d))this._drawer?.updateBotMessage(d.id,E,"photo_analysis",d.photoAnalysis);else{const R=this._shadow?.querySelector(`[data-message-id="${d.id}"] .gengage-chat-bubble-text`);if(R){this._activeTypewriter?.cancel();const P=x?.productMentions;this._activeTypewriter=Pl({container:R,html:_e(E),onTick:()=>this._drawer?.scrollToBottomIfNeeded(),onComplete:()=>{this._activeTypewriter=null,P&&P.length>0&&R&&Al({container:R,mentions:P,onProductClick:$=>{this._sendAction({title:P.find(F=>F.sku===$)?.short_name??$,type:"launchSingleProduct",payload:{sku:$}})}})}})}}},onUISpec:(_,y,x,E)=>{if(!r&&n!==this._activeRequestThreadId||y!=="chat")return;E&&(this._clearAssistantPanelLikeStreamClearPanel(),w=!1);const L=_.elements[_.root],z=L?.type??"unknown";if(Ys(z,L?.props??{},H,{drawer:this._drawer,ensureRendered:()=>this._ensureAssistantMessageRendered(d),cancelTypewriter:()=>{this._activeTypewriter?.cancel(),this._activeTypewriter=null},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:I},d))return;const R=z==="ProductGrid"&&L?.props?.similarsAppend===!0,P=this.config.productDetailsExtended!==!0&&(z==="ProductDetailsPanel"||R);P&&!E&&(this._clearAssistantPanelLikeStreamClearPanel(),w=!1);const $=z==="ProductDetailsPanel"&&x!=="panel"?"panel":x;this.track(Mi(this.analyticsContext(),{request_id:b,chunk_index:v,component_type:z,widget:"chat"}));const F=this._buildRenderContext();if(F.isStreaming=!0,z==="ComparisonTable"){const U=L?.props?.products;dd(Array.isArray(U)?U.length:0)}if(z==="ProductGrid"){const U=L?.children?.length??0;hd(void 0,U)}const V=$==="panel"&&this._panel?this._panel.toPanelSpec(_):_;if($==="panel"&&this._panel&&!P){const U=!k;k=!0;const M=jl({componentType:z,similarsAppend:L?.props?.similarsAppend===!0,currentPanelType:this._panel.currentType,hasPanelContent:this._drawer?.hasPanelContent()??!1,isPanelLoading:this._drawer?.isPanelLoading()??!1,isFirstPanelContentInStream:U});F.panelProductListHeading=void 0,z==="ProductGrid"&&(M==="appendSimilars"?F.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products":this._applyPanelListHeadingToContext(F,{kind:"spec",spec:V})),M==="appendSimilars"?this._appendSimilarsToPanel(V,F):M==="append"?(this._drawer?.appendPanelContent(this._renderUISpec(V,F)),this._comparisonSelectMode&&this._refreshComparisonUI()):(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._drawer?.setComparisonDockContent(null),this._drawer?.setPanelContent(this._renderUISpec(V,F)),this._currentPanelSource={kind:"spec",spec:V},this._panel.currentType=z),this._drawer?.setDividerPreviewEnabled((this._panel.currentType??z)==="ProductGrid"),z==="ProductDetailsPanel"&&t.type==="launchSingleProduct"&&this._clearUnavailableProductContext(),d.threadId&&!this._panel.threads.includes(d.threadId)&&this._panel.threads.push(d.threadId);const G=this._panel.currentType??z,O=L?.props?.panelTitle;if(this._panel.updateTopBar(G,O),this._panel.updateExtendedMode(z),this._isMobileViewport&&i&&this._drawer?.hideMobilePanel(),z==="ProductGrid"||z==="CategoriesContainer"){if(A=!this._isMobileViewport,Q){const re=this._buildRenderContext();re.isStreaming=!0;const Gt=this._renderUISpec(Q,re);B=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:Gt}),Q=null}}else M!=="appendSimilars"&&M!=="append"&&(A=!1,Q=null,this._drawer?.setPanelAiZoneState("hidden"))}if(z==="ProductDetailsPanel"&&$==="panel"&&(!d.silent||i)){const U=L?.props?.product;if(U){const M={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:U}}}},G=this._shadow?.querySelector(".gengage-chat-messages");if(G){const O=this._renderUISpec(M,F);d.threadId&&(O.dataset.threadId=d.threadId);const re=this._shadow?.querySelector(`[data-message-id="${d.id}"]`);re&&re.parentNode===G?re.after(O):G.appendChild(O),O.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),k=!0}}}const J=z==="AITopPicks"||z==="AIGroupingCards";let X=!1,oe=!1;if(P&&R&&(F.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products"),J&&!this._isMobileViewport&&!d.silent)if(A){const U=this._renderUISpec(_,F);B=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:U}),X=!0,Q=null}else Q=_,oe=!0;const j=i&&z==="GroundingReviewCard";if((!d.silent||j)&&($!=="panel"||z==="ProductCard"||P&&z==="ProductGrid"&&(!R||this._isMobileViewport))&&z!=="ActionButtons"&&!X&&!(oe&&J)){const U=this._shadow?.querySelector(".gengage-chat-messages");if(U){const M=this._renderUISpec(_,F);d.threadId&&(M.dataset.threadId=d.threadId),U.appendChild(M),M.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),P&&z==="ProductGrid"&&(k=!0)}}if((z==="ProductGrid"||z==="ProductCard")&&d.threadId){const U=L?.children??[],M=z==="ProductGrid"?U.map(G=>_.elements[G]?.props?.product).filter(Boolean):[L?.props?.product].filter(Boolean);for(const G of M){const O=G.sku,re=G.imageUrl;O&&re&&this._thumbnailEntries.push({sku:O,imageUrl:re,threadId:d.threadId}),O&&this._viewedProductSkus.add(O)}this._drawer?.setThumbnails(this._thumbnailEntries)}if(z==="ProductGrid"||z==="ProductDetailsPanel"){const U=(z==="ProductGrid"?(L?.children??[]).map(M=>_.elements[M]?.props?.product).filter(Boolean):[L?.props?.product??L?.props].filter(Boolean)).map(M=>M.imageUrl).filter(M=>typeof M=="string").slice(0,5);U.length>0&&this._bridge?.send("previewImages",{images:U})}const be=L?.children?.length??0;if(z==="ProductGrid"&&$==="panel"&&!P&&be>1&&!this._modeController.isChoicePrompterHidden&&!this._comparisonSelectMode&&!Rl(this._currentThreadId??"")){this._choicePrompterEl?.remove(),this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(M=>M.remove()),this._choicePrompterEl=Ml({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 U=this._shadow?.querySelector(".gengage-chat-panel-float");if(U){if(U.appendChild(this._choicePrompterEl),this._isMobileViewport&&window.visualViewport){const M=this._choicePrompterEl,G=()=>{window.visualViewport.height/window.innerHeight<.75&&(M.remove(),this._choicePrompterEl===M&&(this._choicePrompterEl=null),window.visualViewport.removeEventListener("resize",G))};window.visualViewport.addEventListener("resize",G)}}else this._choicePrompterEl=null}if(z==="ActionButtons"){const U=L?.props?.buttons;if(U&&U.length>0){const M=[],G=[];for(const O of U)if(Nl(O)){const re={label:O.label,action:O.action};O.icon&&(re.icon=O.icon),M.push(re)}else G.push(O);M.length>0&&this._drawer?.setInputAreaChips(M.map(O=>({label:O.label,onAction:()=>this._sendAction(O.action),...O.icon?{icon:O.icon}:{}}))),G.length>0&&this._drawer?.setPills(G.map(O=>{const re={label:O.label,onAction:()=>this._sendAction(O.action)};return O.icon&&(re.icon=O.icon),O.image&&(re.image=O.image),O.description&&(re.description=O.description),re}))}}K(),d.uiSpec=_},onAction:_=>{if(!(!r&&n!==this._activeRequestThreadId)&&_.type==="action"){const y={};this.config.actionHandling?.unknownActionPolicy!==void 0&&(y.unknownActionPolicy=this.config.actionHandling.unknownActionPolicy),this.config.actionHandling?.allowScriptCall!==void 0&&(y.allowScriptCall=this.config.actionHandling.allowScriptCall),fo(_,{openChat:()=>this.open(),navigate:x=>{pe(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=>{ce("gengage:similar:add-to-cart",x)},scriptCall:x=>{ce("gengage:chat:script-call",x),this.config.onScriptCall?.(x)}},y)}},onMetadata:_=>{if(!(!r&&n!==this._activeRequestThreadId)&&_.type==="metadata"&&_.meta){if(_.meta.panel!==void 0||_.meta.messages!==void 0||_.meta.message_id!==void 0){this._lastBackendContext=_.meta;const x=ga(_.meta.panel);x&&(this._modeController.updateFromContext(x),this._applyUiHints())}if(_.meta.panelLoading){const x=typeof _.meta.panelPendingType=="string"?_.meta.panelPendingType:void 0;this.config.productDetailsExtended!==!0&&(x==="productDetails"||x==="productDetailsSimilars")||(w=!0,k=!1,c(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(x),x&&this._panel?.updateTopBarForLoading(x))}if(_.meta.voice){const x=new CustomEvent("gengage:chat:voice",{detail:{payload:_.meta.voice},bubbles:!1,cancelable:!0}),E=window.dispatchEvent(x);if(fd(),E){const L=_.meta.voice;L.audio_base64&&(this._activeTtsHandle?.stop(),this._activeTtsHandle=nc(L.audio_base64,L.content_type??"audio/ogg"))}}if((_.meta.redirectTarget||_.meta.redirect)&&(ce("gengage:chat:redirect",{target:_.meta.redirectTarget??null,payload:_.meta.redirect??null}),Le("redirect","redirect dispatched",{target:_.meta.redirectTarget??null}),this._handleRedirectMetadata(_.meta.redirect)),_.meta.analyzeAnimation&&this.config.productDetailsExtended===!0&&(w=!0,k=!1,c(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(),this._panel?.updateTopBarForLoading("productDetails")),_.meta.loading){const x=Array.isArray(_.meta.thinkingMessages)?_.meta.thinkingMessages.filter(L=>typeof L=="string"):[],E=typeof _.meta.loadingText=="string"?_.meta.loadingText:void 0;if(x.length>0){const L=E&&this._modeController.shouldCondenseThinking()?[...x.slice(0,2),E]:x;this._drawer?.setThinkingSteps(L)}typeof E=="string"&&E.length>0&&(this._drawer?.addThinkingStep(E),this._bridge?.send("loadingMessage",{text:E}))}_.meta.visitorDataResponse&&this._bridge?.send("engagingMessage",_.meta.visitorDataResponse),_.meta.formType&&this._bridge?.send("glovOtokoc",{type:_.meta.formType,data:_.meta.formPayload}),_.meta.launcherContent&&this._bridge?.send("launcherContent",_.meta.launcherContent),ce("gengage:chat:metadata",{payload:_.meta});const y=_.meta;typeof y.prompt_tokens=="number"&&typeof y.completion_tokens=="number"&&this.track(Bi(this.analyticsContext(),{model:_.model??"unknown",prompt_tokens:y.prompt_tokens,completion_tokens:y.completion_tokens,total_tokens:y.total_tokens??y.prompt_tokens+y.completion_tokens}))}},onError:_=>{if(N&&this._abortControllers.delete(N),!r&&n!==this._activeRequestThreadId)return;I=!0,this._activeTypewriter?.cancel(),this._activeTypewriter=null,K(),Q=null,this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),this._drawer?.clearInputAreaChips(),Xs(H,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const y=k;w&&!k&&l(),w=!1,k=!1;const x=d.silent||d.content!=null&&d.content.length>0||g.length>0||y,E=typeof navigator<"u"&&navigator.onLine===!1&&na(_),L=()=>{this._shadow?.querySelector(`[data-message-id="${CSS.escape(d.id)}"]`)?.remove();const P=this._messages.indexOf(d);P>=0&&this._messages.splice(P,1)};let z=!1;const R=()=>{if(E)return;this.emit("error",_);const P=_.message;P===this._lastErrorMessage?this._consecutiveErrorCount++:(this._consecutiveErrorCount=1,this._lastErrorMessage=P);const $=_.message.trim(),F=$.length>0?$:this._i18n.errorMessage,V={onRetry:()=>{this._lastSentAction&&this._sendAction(this._lastSentAction.action,this._lastSentAction.options)},onNewQuestion:()=>{this._drawer?.focusInput()}};if(this._consecutiveErrorCount>=2){L(),z=!0,this._drawer?.showErrorWithRecovery(this._i18n.accountInactiveMessage,V);return}if(Ql(_,F)){L(),z=!0,this._drawer?.showErrorWithRecovery(F,V);return}d.content=F,d.status="done";const J=_e(F.replace(/\r\n/g,`
|
|
176
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const s=o[1];if(t===o[0]){i(o);continue}if(e.external){const c=e.external.registry.get(o[0])?.id;if(t!==o[0]&&c){i(o);continue}}if(e.metadataRegistry.get(o[0])?.id){i(o);continue}if(s.cycle){i(o);continue}if(s.count>1&&e.reused==="ref"){i(o);continue}}}function Rr(e,t){const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=o=>{const s=e.seen.get(o);if(s.ref===null)return;const c=s.def??s.schema,l={...c},g=s.ref;if(s.ref=null,g){n(g);const h=e.seen.get(g),u=h.schema;if(u.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(u)):Object.assign(c,u),Object.assign(c,l),o._zod.parent===g)for(const m in c)m==="$ref"||m==="allOf"||m in l||delete c[m];if(u.$ref&&h.def)for(const m in c)m==="$ref"||m==="allOf"||m in h.def&&JSON.stringify(c[m])===JSON.stringify(h.def[m])&&delete c[m]}const d=o._zod.parent;if(d&&d!==g){n(d);const h=e.seen.get(d);if(h?.schema.$ref&&(c.$ref=h.schema.$ref,h.def))for(const u in c)u==="$ref"||u==="allOf"||u in h.def&&JSON.stringify(c[u])===JSON.stringify(h.def[u])&&delete c[u]}e.override({zodSchema:o,jsonSchema:c,path:s.path??[]})};for(const o of[...e.seen.entries()].reverse())n(o[0]);const r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const o=e.external.registry.get(t)?.id;if(!o)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(o)}Object.assign(r,a.def??a.schema);const i=e.external?.defs??{};for(const o of e.seen.entries()){const s=o[1];s.def&&s.defId&&(i[s.defId]=s.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?r.$defs=i:r.definitions=i);try{const o=JSON.parse(JSON.stringify(r));return Object.defineProperty(o,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ft(t,"input",e.processors),output:Ft(t,"output",e.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function ue(e,t){const a=t??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return ue(n.element,a);if(n.type==="set")return ue(n.valueType,a);if(n.type==="lazy")return ue(n.getter(),a);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return ue(n.innerType,a);if(n.type==="intersection")return ue(n.left,a)||ue(n.right,a);if(n.type==="record"||n.type==="map")return ue(n.keyType,a)||ue(n.valueType,a);if(n.type==="pipe")return ue(n.in,a)||ue(n.out,a);if(n.type==="object"){for(const r in n.shape)if(ue(n.shape[r],a))return!0;return!1}if(n.type==="union"){for(const r of n.options)if(ue(r,a))return!0;return!1}if(n.type==="tuple"){for(const r of n.items)if(ue(r,a))return!0;return!!(n.rest&&ue(n.rest,a))}return!1}var ch=(e,t={})=>a=>{const n=Mr({...a,processors:t});return ge(e,n),Br(n,e),Rr(n,e)},Ft=(e,t,a={})=>n=>{const{libraryOptions:r,target:i}=n??{},o=Mr({...r??{},target:i,io:t,processors:a});return ge(e,o),Br(o,e),Rr(o,e)},lh={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},dh=(e,t,a,n)=>{const r=a;r.type="string";const{minimum:i,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof i=="number"&&(r.minLength=i),typeof o=="number"&&(r.maxLength=o),s&&(r.format=lh[s]??s,r.format===""&&delete r.format,s==="time"&&delete r.format),l&&(r.contentEncoding=l),c&&c.size>0){const g=[...c];g.length===1?r.pattern=g[0].source:g.length>1&&(r.allOf=[...g.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},gh=(e,t,a,n)=>{const r=a,{minimum:i,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:g}=e._zod.bag;typeof s=="string"&&s.includes("int")?r.type="integer":r.type="number",typeof g=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.minimum=g,r.exclusiveMinimum=!0):r.exclusiveMinimum=g),typeof i=="number"&&(r.minimum=i,typeof g=="number"&&t.target!=="draft-04"&&(g>=i?delete r.minimum:delete r.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.maximum=l,r.exclusiveMaximum=!0):r.exclusiveMaximum=l),typeof o=="number"&&(r.maximum=o,typeof l=="number"&&t.target!=="draft-04"&&(l<=o?delete r.maximum:delete r.exclusiveMaximum)),typeof c=="number"&&(r.multipleOf=c)},ph=(e,t,a,n)=>{a.type="boolean"},hh=(e,t,a,n)=>{a.not={}},uh=(e,t,a,n)=>{},mh=(e,t,a,n)=>{const r=e._zod.def,i=Zn(r.entries);i.every(o=>typeof o=="number")&&(a.type="number"),i.every(o=>typeof o=="string")&&(a.type="string"),a.enum=i},fh=(e,t,a,n)=>{const r=e._zod.def,i=[];for(const o of r.values)if(o===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(o))}else i.push(o);if(i.length!==0)if(i.length===1){const o=i[0];a.type=o===null?"null":typeof o,t.target==="draft-04"||t.target==="openapi-3.0"?a.enum=[o]:a.const=o}else i.every(o=>typeof o=="number")&&(a.type="number"),i.every(o=>typeof o=="string")&&(a.type="string"),i.every(o=>typeof o=="boolean")&&(a.type="boolean"),i.every(o=>o===null)&&(a.type="null"),a.enum=i},bh=(e,t,a,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},vh=(e,t,a,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},yh=(e,t,a,n)=>{const r=a,i=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o=="number"&&(r.minItems=o),typeof s=="number"&&(r.maxItems=s),r.type="array",r.items=ge(i.element,t,{...n,path:[...n.path,"items"]})},_h=(e,t,a,n)=>{const r=a,i=e._zod.def;r.type="object",r.properties={};const o=i.shape;for(const l in o)r.properties[l]=ge(o[l],t,{...n,path:[...n.path,"properties",l]});const s=new Set(Object.keys(o)),c=new Set([...s].filter(l=>{const g=i.shape[l]._zod;return t.io==="input"?g.optin===void 0:g.optout===void 0}));c.size>0&&(r.required=Array.from(c)),i.catchall?._zod.def.type==="never"?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=ge(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},xh=(e,t,a,n)=>{const r=e._zod.def,i=r.inclusive===!1,o=r.options.map((s,c)=>ge(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?a.oneOf=o:a.anyOf=o},wh=(e,t,a,n)=>{const r=e._zod.def,i=ge(r.left,t,{...n,path:[...n.path,"allOf",0]}),o=ge(r.right,t,{...n,path:[...n.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1;a.allOf=[...s(i)?i.allOf:[i],...s(o)?o.allOf:[o]]},kh=(e,t,a,n)=>{const r=e._zod.def,i=ge(r.innerType,t,n),o=t.seen.get(e);t.target==="openapi-3.0"?(o.ref=r.innerType,a.nullable=!0):a.anyOf=[i,{type:"null"}]},Ch=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType},Sh=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType,a.default=JSON.parse(JSON.stringify(r.defaultValue))},Eh=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType,t.io==="input"&&(a._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},Th=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType;let o;try{o=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}a.default=o},Ph=(e,t,a,n)=>{const r=e._zod.def,i=t.io==="input"?r.in._zod.def.type==="transform"?r.out:r.in:r.out;ge(i,t,n);const o=t.seen.get(e);o.ref=i},Ah=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType,a.readOnly=!0},Or=(e,t,a,n)=>{const r=e._zod.def;ge(r.innerType,t,n);const i=t.seen.get(e);i.ref=r.innerType},Lh=S("ZodISODateTime",(e,t)=>{Ig.init(e,t),te.init(e,t)});function Ih(e){return Rp(Lh,e)}var Nh=S("ZodISODate",(e,t)=>{Ng.init(e,t),te.init(e,t)});function zh(e){return Op(Nh,e)}var Mh=S("ZodISOTime",(e,t)=>{zg.init(e,t),te.init(e,t)});function Bh(e){return Dp(Mh,e)}var Rh=S("ZodISODuration",(e,t)=>{Mg.init(e,t),te.init(e,t)});function Oh(e){return Fp(Rh,e)}var Dr=(e,t)=>{Qn.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>Id(e,a)},flatten:{value:a=>Ld(e,a)},addIssue:{value:a=>{e.issues.push(a),e.message=JSON.stringify(e.issues,Ea,2)}},addIssues:{value:a=>{e.issues.push(...a),e.message=JSON.stringify(e.issues,Ea,2)}},isEmpty:{get(){return e.issues.length===0}}})},gf=S("ZodError",Dr),ke=S("ZodError",Dr,{Parent:Error}),Dh=It(ke),Fh=Nt(ke),$h=zt(ke),Uh=Mt(ke),Hh=Xn(ke),qh=er(ke),jh=tr(ke),Zh=ar(ke),Vh=nr(ke),Wh=rr(ke),Gh=ir(ke),Kh=or(ke),ne=S("ZodType",(e,t)=>(ae.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Ft(e,"input"),output:Ft(e,"output")}}),e.toJSONSchema=ch(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...a)=>e.clone(Ue(t,{checks:[...t.checks??[],...a.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),e.with=e.check,e.clone=(a,n)=>He(e,a,n),e.brand=()=>e,e.register=((a,n)=>(a.add(e,n),e)),e.parse=(a,n)=>Dh(e,a,n,{callee:e.parse}),e.safeParse=(a,n)=>$h(e,a,n),e.parseAsync=async(a,n)=>Fh(e,a,n,{callee:e.parseAsync}),e.safeParseAsync=async(a,n)=>Uh(e,a,n),e.spa=e.safeParseAsync,e.encode=(a,n)=>Hh(e,a,n),e.decode=(a,n)=>qh(e,a,n),e.encodeAsync=async(a,n)=>jh(e,a,n),e.decodeAsync=async(a,n)=>Zh(e,a,n),e.safeEncode=(a,n)=>Vh(e,a,n),e.safeDecode=(a,n)=>Wh(e,a,n),e.safeEncodeAsync=async(a,n)=>Gh(e,a,n),e.safeDecodeAsync=async(a,n)=>Kh(e,a,n),e.refine=(a,n)=>e.check(ju(a,n)),e.superRefine=a=>e.check(Zu(a)),e.overwrite=a=>e.check(nt(a)),e.optional=()=>Vr(e),e.exactOptional=()=>Iu(e),e.nullable=()=>Wr(e),e.nullish=()=>Vr(Wr(e)),e.nonoptional=a=>Ou(e,a),e.array=()=>_u(e),e.or=a=>ku([e,a]),e.and=a=>Su(e,a),e.transform=a=>Kr(e,Au(a)),e.default=a=>Mu(e,a),e.prefault=a=>Ru(e,a),e.catch=a=>Fu(e,a),e.pipe=a=>Kr(e,a),e.readonly=()=>Hu(e),e.describe=a=>{const n=e.clone();return Me.add(n,{description:a}),n},Object.defineProperty(e,"description",{get(){return Me.get(e)?.description},configurable:!0}),e.meta=(...a)=>{if(a.length===0)return Me.get(e);const n=e.clone();return Me.add(n,a[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=a=>a(e),e)),Fr=S("_ZodString",(e,t)=>{Ia.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(n,r,i)=>dh(e,n,r,i);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,e.regex=(...n)=>e.check(Zp(...n)),e.includes=(...n)=>e.check(Gp(...n)),e.startsWith=(...n)=>e.check(Kp(...n)),e.endsWith=(...n)=>e.check(Yp(...n)),e.min=(...n)=>e.check(Dt(...n)),e.max=(...n)=>e.check(Nr(...n)),e.length=(...n)=>e.check(zr(...n)),e.nonempty=(...n)=>e.check(Dt(1,...n)),e.lowercase=n=>e.check(Vp(n)),e.uppercase=n=>e.check(Wp(n)),e.trim=()=>e.check(Qp()),e.normalize=(...n)=>e.check(Jp(...n)),e.toLowerCase=()=>e.check(Xp()),e.toUpperCase=()=>e.check(eh()),e.slugify=()=>e.check(th())}),Yh=S("ZodString",(e,t)=>{Ia.init(e,t),Fr.init(e,t),e.email=a=>e.check(mp(Jh,a)),e.url=a=>e.check(_p(Qh,a)),e.jwt=a=>e.check(Bp(hu,a)),e.emoji=a=>e.check(xp(Xh,a)),e.guid=a=>e.check(Pr($r,a)),e.uuid=a=>e.check(fp($t,a)),e.uuidv4=a=>e.check(bp($t,a)),e.uuidv6=a=>e.check(vp($t,a)),e.uuidv7=a=>e.check(yp($t,a)),e.nanoid=a=>e.check(wp(eu,a)),e.guid=a=>e.check(Pr($r,a)),e.cuid=a=>e.check(kp(tu,a)),e.cuid2=a=>e.check(Cp(au,a)),e.ulid=a=>e.check(Sp(nu,a)),e.base64=a=>e.check(Np(du,a)),e.base64url=a=>e.check(zp(gu,a)),e.xid=a=>e.check(Ep(ru,a)),e.ksuid=a=>e.check(Tp(iu,a)),e.ipv4=a=>e.check(Pp(ou,a)),e.ipv6=a=>e.check(Ap(su,a)),e.cidrv4=a=>e.check(Lp(cu,a)),e.cidrv6=a=>e.check(Ip(lu,a)),e.e164=a=>e.check(Mp(pu,a)),e.datetime=a=>e.check(Ih(a)),e.date=a=>e.check(zh(a)),e.time=a=>e.check(Bh(a)),e.duration=a=>e.check(Oh(a))});function Ce(e){return up(Yh,e)}var te=S("ZodStringFormat",(e,t)=>{ee.init(e,t),Fr.init(e,t)}),Jh=S("ZodEmail",(e,t)=>{wg.init(e,t),te.init(e,t)}),$r=S("ZodGUID",(e,t)=>{_g.init(e,t),te.init(e,t)}),$t=S("ZodUUID",(e,t)=>{xg.init(e,t),te.init(e,t)}),Qh=S("ZodURL",(e,t)=>{kg.init(e,t),te.init(e,t)}),Xh=S("ZodEmoji",(e,t)=>{Cg.init(e,t),te.init(e,t)}),eu=S("ZodNanoID",(e,t)=>{Sg.init(e,t),te.init(e,t)}),tu=S("ZodCUID",(e,t)=>{Eg.init(e,t),te.init(e,t)}),au=S("ZodCUID2",(e,t)=>{Tg.init(e,t),te.init(e,t)}),nu=S("ZodULID",(e,t)=>{Pg.init(e,t),te.init(e,t)}),ru=S("ZodXID",(e,t)=>{Ag.init(e,t),te.init(e,t)}),iu=S("ZodKSUID",(e,t)=>{Lg.init(e,t),te.init(e,t)}),ou=S("ZodIPv4",(e,t)=>{Bg.init(e,t),te.init(e,t)}),su=S("ZodIPv6",(e,t)=>{Rg.init(e,t),te.init(e,t)}),cu=S("ZodCIDRv4",(e,t)=>{Og.init(e,t),te.init(e,t)}),lu=S("ZodCIDRv6",(e,t)=>{Dg.init(e,t),te.init(e,t)}),du=S("ZodBase64",(e,t)=>{Fg.init(e,t),te.init(e,t)}),gu=S("ZodBase64URL",(e,t)=>{Ug.init(e,t),te.init(e,t)}),pu=S("ZodE164",(e,t)=>{Hg.init(e,t),te.init(e,t)}),hu=S("ZodJWT",(e,t)=>{jg.init(e,t),te.init(e,t)}),Ur=S("ZodNumber",(e,t)=>{mr.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(n,r,i)=>gh(e,n,r,i),e.gt=(n,r)=>e.check(Lr(n,r)),e.gte=(n,r)=>e.check(Ma(n,r)),e.min=(n,r)=>e.check(Ma(n,r)),e.lt=(n,r)=>e.check(Ar(n,r)),e.lte=(n,r)=>e.check(za(n,r)),e.max=(n,r)=>e.check(za(n,r)),e.int=n=>e.check(qr(n)),e.safe=n=>e.check(qr(n)),e.positive=n=>e.check(Lr(0,n)),e.nonnegative=n=>e.check(Ma(0,n)),e.negative=n=>e.check(Ar(0,n)),e.nonpositive=n=>e.check(za(0,n)),e.multipleOf=(n,r)=>e.check(Ir(n,r)),e.step=(n,r)=>e.check(Ir(n,r)),e.finite=()=>e;const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function Hr(e){return $p(Ur,e)}var uu=S("ZodNumberFormat",(e,t)=>{Zg.init(e,t),Ur.init(e,t)});function qr(e){return Up(uu,e)}var mu=S("ZodBoolean",(e,t)=>{Vg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>ph(e,a,n,r)});function We(e){return Hp(mu,e)}var fu=S("ZodUnknown",(e,t)=>{Wg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>uh(e,a,n,r)});function jr(){return qp(fu)}var bu=S("ZodNever",(e,t)=>{Gg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>hh(e,a,n,r)});function vu(e){return jp(bu,e)}var yu=S("ZodArray",(e,t)=>{Kg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>yh(e,a,n,r),e.element=t.element,e.min=(a,n)=>e.check(Dt(a,n)),e.nonempty=a=>e.check(Dt(1,a)),e.max=(a,n)=>e.check(Nr(a,n)),e.length=(a,n)=>e.check(zr(a,n)),e.unwrap=()=>e.element});function _u(e,t){return ah(yu,e,t)}var xu=S("ZodObject",(e,t)=>{Jg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>_h(e,a,n,r),J(e,"shape",()=>t.shape),e.keyof=()=>Ra(Object.keys(e._zod.def.shape)),e.catchall=a=>e.clone({...e._zod.def,catchall:a}),e.passthrough=()=>e.clone({...e._zod.def,catchall:jr()}),e.loose=()=>e.clone({...e._zod.def,catchall:jr()}),e.strict=()=>e.clone({...e._zod.def,catchall:vu()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=a=>Sd(e,a),e.safeExtend=a=>Ed(e,a),e.merge=a=>Td(e,a),e.pick=a=>kd(e,a),e.omit=a=>Cd(e,a),e.partial=(...a)=>Pd(Zr,e,a[0]),e.required=(...a)=>Ad(Gr,e,a[0])});function Be(e,t){return new xu({type:"object",shape:e??{},...D(t)})}var wu=S("ZodUnion",(e,t)=>{Qg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>xh(e,a,n,r),e.options=t.options});function ku(e,t){return new wu({type:"union",options:e,...D(t)})}var Cu=S("ZodIntersection",(e,t)=>{Xg.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>wh(e,a,n,r)});function Su(e,t){return new Cu({type:"intersection",left:e,right:t})}var Ba=S("ZodEnum",(e,t)=>{ep.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(n,r,i)=>mh(e,n,r,i),e.enum=t.entries,e.options=Object.values(t.entries);const a=new Set(Object.keys(t.entries));e.extract=(n,r)=>{const i={};for(const o of n)if(a.has(o))i[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Ba({...t,checks:[],...D(r),entries:i})},e.exclude=(n,r)=>{const i={...t.entries};for(const o of n)if(a.has(o))delete i[o];else throw new Error(`Key ${o} not found in enum`);return new Ba({...t,checks:[],...D(r),entries:i})}});function Ra(e,t){return new Ba({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(a=>[a,a])):e,...D(t)})}var Eu=S("ZodLiteral",(e,t)=>{tp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>fh(e,a,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Tu(e,t){return new Eu({type:"literal",values:Array.isArray(e)?e:[e],...D(t)})}var Pu=S("ZodTransform",(e,t)=>{ap.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>vh(e,a,n,r),e._zod.parse=(a,n)=>{if(n.direction==="backward")throw new jn(e.constructor.name);a.addIssue=i=>{if(typeof i=="string")a.issues.push(pt(i,a.value,t));else{const o=i;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=a.value),o.inst??(o.inst=e),a.issues.push(pt(o))}};const r=t.transform(a.value,a);return r instanceof Promise?r.then(i=>(a.value=i,a)):(a.value=r,a)}});function Au(e){return new Pu({type:"transform",transform:e})}var Zr=S("ZodOptional",(e,t)=>{wr.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Or(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Vr(e){return new Zr({type:"optional",innerType:e})}var Lu=S("ZodExactOptional",(e,t)=>{np.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Or(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Iu(e){return new Lu({type:"optional",innerType:e})}var Nu=S("ZodNullable",(e,t)=>{rp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>kh(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Wr(e){return new Nu({type:"nullable",innerType:e})}var zu=S("ZodDefault",(e,t)=>{ip.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Sh(e,a,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Mu(e,t){return new zu({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Kn(t)}})}var Bu=S("ZodPrefault",(e,t)=>{op.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Eh(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Ru(e,t){return new Bu({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Kn(t)}})}var Gr=S("ZodNonOptional",(e,t)=>{sp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Ch(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Ou(e,t){return new Gr({type:"nonoptional",innerType:e,...D(t)})}var Du=S("ZodCatch",(e,t)=>{cp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Th(e,a,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Fu(e,t){return new Du({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var $u=S("ZodPipe",(e,t)=>{lp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Ph(e,a,n,r),e.in=t.in,e.out=t.out});function Kr(e,t){return new $u({type:"pipe",in:e,out:t})}var Uu=S("ZodReadonly",(e,t)=>{dp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>Ah(e,a,n,r),e.unwrap=()=>e._zod.def.innerType});function Hu(e){return new Uu({type:"readonly",innerType:e})}var qu=S("ZodCustom",(e,t)=>{gp.init(e,t),ne.init(e,t),e._zod.processJSONSchema=(a,n,r)=>bh(e,a,n,r)});function ju(e,t={}){return nh(qu,e,t)}function Zu(e){return rh(e)}var pf=oh,hf=sh;function Yr(e){return e.length>120?!1:/^[a-zA-Z0-9#(),.\s%/\-]+$/.test(e)}function Oa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}var Vu=class it extends ft{constructor(...t){super(...t),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=sa,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 Zl,this._eventCallbacks=new Map,this._lastSentAction=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._modeController=new Gs}static{this._MAX_COMPARISON_SELECTION=5}static{this._MAX_PANEL_HISTORY=10}get _assistantMode(){return this._modeController.mode}set _assistantMode(t){this._modeController.mode=t}get _uiHints(){return this._modeController.uiHints}set _uiHints(t){this._modeController.uiHints=t}async onInit(t){if(this._i18n=this._resolveI18n(t),this._chatCreatedAt=new Date().toISOString(),t.pillLauncher){const p=Wl(t.pillLauncher);t.launcherImageUrl=p.launcherImageUrl,t.headerAvatarUrl===void 0&&(t.headerAvatarUrl=t.pillLauncher.avatarUrl),this._pillLauncherApply=()=>p.apply(this._shadow??void 0)}this._shadow=this.root.attachShadow({mode:"open"});const a=document.createElement("style");a.textContent=id,this._shadow.appendChild(a);const n=this.root,r=(p,f)=>{f&&Yr(f)&&n.style.setProperty(p,f)};if(r("--gengage-chat-header-bg",t.headerBg),r("--gengage-chat-header-foreground",t.headerForeground),t.theme)for(const[p,f]of Object.entries(t.theme))p.startsWith("--")&&typeof f=="string"&&r(p,f);this._applyDiscountedPriceColorVar(t.productPriceUi?.discountedPriceColor);const i=document.createElement("div");i.className="gengage-chat-root",this._rootEl=i,this._shadow.appendChild(i);const o=t.variant??"floating";if(o==="inline"&&i.classList.add("gengage-chat--inline"),o!=="inline"){const p=document.createElement("div");p.className="gengage-chat-backdrop",p.setAttribute("aria-hidden","true"),p.setAttribute("role","button"),p.setAttribute("tabindex","-1"),p.setAttribute("aria-label",this._i18n.closeAriaLabel),p.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),this.close()}),this._backdropEl=p,i.prepend(p)}if(o==="floating"){const p={onClick:()=>this.open(),ariaLabel:this._i18n.openButton};t.launcherImageUrl!==void 0?p.imageUrl=t.launcherImageUrl:t.launcherSvg!==void 0&&(p.svgMarkup=t.launcherSvg),t.hideMobileLauncher!==void 0&&(p.hideMobile=t.hideMobileLauncher),t.mobileBreakpoint!==void 0&&(p.mobileBreakpoint=t.mobileBreakpoint),t.launcherTooltip!==void 0&&(p.tooltip=t.launcherTooltip),this._launcher=tc(p),i.appendChild(this._launcher.container)}o==="overlay"&&i.classList.add("gengage-chat--overlay");const s=document.createElement("div");i.appendChild(s),this._drawer=new qs(s,{i18n:this._i18n,onSend:(p,f)=>this._sendMessage(p,f),onClose:()=>this.close(),onAttachment:p=>this._handleAttachment(p),onPanelToggle:()=>{this._drawer?.persistPanelState(t.accountId)},onHostShellSync:()=>{this._applyOpenStateClasses()},onRollback:p=>this._handleRollback(p),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:t.headerTitle,headerAvatarUrl:t.headerAvatarUrl,launcherImageUrl:t.launcherImageUrl,headerBadge:t.headerBadge,headerCartUrl:t.headerCartUrl,showHeaderFavorites:typeof t.onFavoritesClick=="function"||t.headerFavoritesToggle===!0,onCartClick:()=>{t.headerCartUrl?this._saveSessionAndOpenURL(t.headerCartUrl):t.onCartClick?.()},onFavoritesClick:()=>{if(pd(),typeof t.onFavoritesClick=="function"){t.onFavoritesClick();return}this._openFavoritesPanel()},getMobileState:()=>this._openState??"full",getMobileViewport:()=>this._isMobileViewport,onMobileSnap:p=>{p==="close"?this.close():(this._openState=p,this._applyOpenStateClasses())},onThumbnailClick:p=>this._rollbackToThread(p),onLinkClick:p=>{this._saveSessionAndOpenURL(p)},voiceEnabled:t.voiceEnabled,voiceLang:t.locale?`${t.locale.split("-")[0]??"tr"}-${(t.locale.split("-")[1]??t.locale.split("-")[0]??"TR").toUpperCase()}`:void 0,presentation:{onPinnedToBottomChange:p=>{this._presentation.pinnedToBottom=p},onUserInteractingChange:p=>{this._presentation.userInteracting=p},onFormerMessagesHint:()=>{this._presentation.focusedThreadId&&this._hasMultipleThreadIds()&&this._drawer?.setFormerMessagesButtonVisible(!0)},shouldBlockSoftAutoScroll:()=>this._presentation.shouldBlockStreamAutoScroll(),onReleasePresentationFocus:()=>this._releasePresentationFocus()}}),this._applyUiHints(),this._extendedModeManager=new Hl({onChange:p=>this._panel?.notifyExtension(p),productDetailsInPanel:(t.isDemoWebsite??!1)&&(t.productDetailsExtended??!1)}),this._panel=new ql({drawer:()=>this._drawer,shadow:()=>this._shadow,currentThreadId:()=>this._currentThreadId,bridge:()=>this._bridge,extendedModeManager:()=>this._extendedModeManager,i18n:()=>this._i18n,rollbackToThread:p=>this._rollbackToThread(p)}),o!=="inline"&&this._drawer.getElement().classList.add("gengage-chat-drawer--hidden");const c=this._drawer.restorePanelState(t.accountId),l=t.panelMode??"auto";l==="collapsed"?this._drawer.setPanelCollapsed(!0):l==="expanded"&&this._drawer.setForceExpanded();const g=sessionStorage.getItem("gengage_restore_session_id"),d=sessionStorage.getItem("gengage_restore_sku"),h=!!(g&&d);h&&(sessionStorage.removeItem("gengage_restore_session_id"),sessionStorage.removeItem("gengage_restore_sku"));try{const p=new $l;await p.open(),this._session=new Dn(p),await this._restoreFromIndexedDB(h)}catch{this._session=new Dn(null)}this._registerPublicAPI(),t.mobileInitialState!==void 0&&(this._openState=t.mobileInitialState),this._mobileBreakpoint=t.mobileBreakpoint??768,this._syncViewportState();const u=()=>this._syncViewportState();if(window.addEventListener("resize",u,{passive:!0}),this.addCleanup(()=>window.removeEventListener("resize",u)),window.visualViewport){const p=()=>{if(!this._drawerVisible||!this._isMobileViewport)return;const f=this._drawer?.getElement();if(!f)return;const b=window.innerHeight-(window.visualViewport?.height??window.innerHeight);f.style.setProperty("--gengage-keyboard-offset",`${Math.max(0,b)}px`)};window.visualViewport.addEventListener("resize",p),this.addCleanup(()=>window.visualViewport?.removeEventListener("resize",p))}o==="inline"&&(this._drawerVisible=!0,this.isVisible=!0,this._applyOpenStateClasses(),this._presentation.setShown(!0),setTimeout(()=>this._maybeAutoAnchorUnreadAssistant(),60));const m={namespace:"chat",onMessage:p=>this._handleBridgeMessage(p)};t.allowedOrigins!==void 0&&(m.allowedOrigins=t.allowedOrigins),this._bridge=new po(m),this._lastSku=this.config.pageContext?.sku,this._initComplete=!0;for(const p of this._pendingActions)this._sendAction(p.action,p.options);this._pendingActions=[],this._pillLauncherApply&&o==="floating"&&(await this._pillLauncherApply(),this._pillLauncherApply=null),ce("gengage:chat:ready",{}),Tt("chat"),t.onReady?.()}onUpdate(t){t.sku!==void 0&&t.sku!==this._lastSku&&(this._lastSku=t.sku,this._resetForNewPage())}onShow(){this._showDrawer(),this.emit("open"),ce("gengage:chat:open",{state:this._openState}),Pt("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"),ce("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(),ws(),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(t){t?.state!==void 0&&(this._openState=t.state,this._drawerVisible&&this._applyOpenStateClasses()),this.show(),t?.initialMessage!==void 0&&this._sendMessage(t.initialMessage)}openWithAction(t,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(t)}sendMessage(t){this._sendMessage(t)}sendAction(t,a){this._sendAction(t,a)}close(){this.hide()}saveSession(t,a){sessionStorage.setItem("gengage_restore_session_id",t),sessionStorage.setItem("gengage_restore_sku",a)}get isOpen(){return this._drawerVisible}addCallback(t,a){let n=this._eventCallbacks.get(t);return n||(n=new Set,this._eventCallbacks.set(t,n)),n.add(a),()=>{n.delete(a),n.size===0&&this._eventCallbacks.delete(t)}}_applyDiscountedPriceColorVar(t){const a=this.root;t==="client"?a.style.setProperty("--gengage-discounted-price-color","var(--client-primary)"):a.style.removeProperty("--gengage-discounted-price-color")}_abortAllActiveRequests(){for(const t of this._abortControllers)t.abort();this._abortControllers.clear()}_pruneEmptyStreamingAssistantPlaceholders(){const t=[];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(i=>i.remove()),this._panel&&(this._panel.threads=this._panel.threads.filter(i=>i!==n.threadId));const r=this._thumbnailEntries.length;this._thumbnailEntries=this._thumbnailEntries.filter(i=>i.threadId!==n.threadId),this._thumbnailEntries.length!==r&&(a=!0)}this._drawer?.removeMessageBubble(n.id),this._panel?.snapshots.delete(n.id),this._panel?.snapshotTypes.delete(n.id);continue}t.push(n)}this._messages.length=0,this._messages.push(...t),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 t=this._presentation.scrollRequest;if(!t||!this._drawer)return;let a=!1;t.type==="thread"&&t.threadId?(a=this._drawer.scrollThreadIntoView(t.threadId,t.behavior),a||(this._drawer.scrollToBottomPresentation(t.behavior),a=!0)):t.type==="bottom"&&(this._drawer.scrollToBottomPresentation(t.behavior),a=!0),a&&this._presentation.consumeScrollRequest(t.id)}_releasePresentationFocus(){this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),this._drawer?.setFormerMessagesButtonVisible(!1)}_hasMultipleThreadIds(){const t=new Set;for(const a of this._messages)a.threadId&&t.add(a.threadId);return t.size>1}_orderedThreadIds(){const t=[],a=new Set;for(const n of this._messages)n.threadId&&!a.has(n.threadId)&&(a.add(n.threadId),t.push(n.threadId));return t}_maybeAutoAnchorUnreadAssistant(){if(!this._drawer||!this._presentation.shown)return;const t=this._orderedThreadIds();if(t.length===0)return;const a=Vl(t,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(t){switch(t.type){case"openChat":this.open();break;case"closeChat":this.close();break;case"startNewChatWithLauncherAction":{const a=t.payload,n=a?.action,r=Oa(n)?n:Oa(a)?a:null;r&&this._sendAction(r,{silent:!0}),this.open();break}case"startNewChatWithDetailContext":{const a=t.payload;if(a&&typeof a=="object"){this._bridgeContext=a;const n=a.sku;if(n&&this.update({sku:n}),Oa(a.action)){this._pdpLaunched=!0,this.open(),this._sendAction(a.action);break}}this.open();break}case"launcherAction":{const a=t.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",t.payload);break;case"cartQuantityHandler":{const a=t.payload;a&&"quantity"in a&&typeof a.quantity=="number"&&(this._cartQuantity=a.quantity);break}case"favoritesCountHandler":{const a=t.payload?.count;typeof a=="number"&&a>=0&&this._drawer?.updateFavoritesBadge(a);break}case"minimizeRequestedByUser":this._extendedModeManager?.setHiddenByUser(!0);break;case"bgColorChange":{const a=t.payload?.color;typeof a=="string"&&Yr(a)&&this._shadow&&this._shadow.host.style.setProperty("--gengage-chat-bg",a);break}default:break}}_registerPublicAPI(){window.gengage||(window.gengage={}),window.gengage.chat={open:t=>this.open(t),openWithAction:(t,a)=>this.openWithAction(t,a),sendMessage:t=>this.sendMessage(t),sendAction:(t,a)=>this.sendAction(t,a),close:()=>this.close(),saveSession:(t,a)=>this.saveSession(t,a),get isOpen(){return!1},on:(t,a)=>this.on(t,a),trackCheckout:(t,a)=>this.trackCheckout(t,a),flushMeteringSummary:t=>this.flushMeteringSummary(t),addCallback:(t,a)=>this.addCallback(t,a)},Object.defineProperty(window.gengage.chat,"isOpen",{get:()=>this._drawerVisible})}_showDrawer(){if(this._drawerVisible)return;this._drawerVisible=!0;const t=this._drawer?.getElement();t&&t.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 t=this._resolveOpeningContextKey(),a=this._resolveContextualOpeningActions(t);if(a.length>0&&this._drawer?.setPills(a.map(i=>({label:i.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(i,t))}))),t==="product"&&this.config.pageContext?.sku||this._shouldPrimeContextualOpening(t))return;const n=this._resolveContextualOpeningMessage(t);if(!n)return;const r={id:Ja(),role:"assistant",content:n,timestamp:Date.now(),status:"done"};this._messages.push(r),this._drawer?.addMessage(r)}_resolveOpeningContextKey(){switch(this.config.pageContext?.pageType){case"home":return"home";case"search":case"plp":return"listing";case"pdp":return"product";default:return"default"}}_resolveContextualOpeningMessage(t=this._resolveOpeningContextKey()){return this.config.openingMessagesByContext?.[t]??(t!=="default"?this.config.openingMessagesByContext?.default:void 0)??this.config.welcomeMessage}_resolveContextualOpeningGuidance(t=this._resolveOpeningContextKey()){return this.config.openingGuidanceByContext?.[t]??(t!=="default"?this.config.openingGuidanceByContext?.default:void 0)}_resolveContextualOpeningActions(t=this._resolveOpeningContextKey()){const a=this.config.welcomeActionsByContext?.[t]??(t!=="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(t,a=this._resolveOpeningContextKey()){const n=t.title.trim(),r=this.config.pageContext?.sku??this._readContextStringField("sku"),i=this._readContextStringListField("visible_skus")??[];return t.icon==="review"&&r?{title:n,type:"reviewSummary",payload:{sku:r}}:t.icon==="similar"&&r?{title:n,type:"findSimilar",payload:{sku:r}}:t.icon==="compare"&&a==="listing"&&i.length>=2?{title:n,type:"getComparisonTable",payload:{sku_list:i.slice(0,2)}}:{title:n,type:"user_message",payload:n}}_readContextStringField(t){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,r=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),i=a?.[t]??n?.[t]??a?.[r]??n?.[r];return typeof i=="string"&&i.trim().length>0?i.trim():void 0}_readContextStringListField(t){const a=this.config.pageContext,n=a?.extra&&typeof a.extra=="object"&&!Array.isArray(a.extra)?a.extra:void 0,r=t.replace(/_([a-z])/g,(s,c)=>c.toUpperCase()),i=a?.[t]??n?.[t]??a?.[r]??n?.[r];if(!Array.isArray(i))return;const o=i.filter(s=>typeof s=="string"&&s.trim().length>0);return o.length>0?o:void 0}_buildEntryOpeningPageDetails(){const t={};t.url=this.config.pageContext?.url??window.location.href;const a=this._readContextStringField("page_title");a&&(t.page_title=a);const n=this._readContextStringField("page_description");n&&(t.page_description=n);const r=this._readContextStringField("search_query");r&&(t.search_query=r);const i=this._readContextStringListField("visible_skus");i?.length&&(t.visible_skus=i);const o=this._readContextStringListField("popular_searches");o?.length&&(t.popular_searches=o);const s=this.config.pageContext?.categoryTree??this._readContextStringListField("category_path");return s?.length&&(t.category_path=s),Object.keys(t).length>0?t:void 0}_shouldPrimeContextualOpening(t=this._resolveOpeningContextKey()){return this._messages.length!==0||this._entryContextPrimed||this._pdpPrimingInFlight||t==="product"?!1:!!(this.config.openingMessagesByContext||this.config.openingGuidanceByContext||this.config.welcomeActionsByContext)}_maybePrimeEntryContextOpening(){const t=this._resolveOpeningContextKey();if(!this._shouldPrimeContextualOpening(t))return;this._entryContextPrimed=!0;const a={text:"",is_entry_context_opening:1,opening_context_key:t},n=this._buildEntryOpeningPageDetails();n&&(a.page_details=n);const r=this._resolveContextualOpeningMessage(t);r&&(a.opening_message=r);const i=this._resolveContextualOpeningGuidance(t);i&&(a.opening_guidance=i),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 t=this._drawer?.getElement();t&&t.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 t=this._isMobileViewport&&this.config.hideMobileLauncher===!0;this._launcher.container.classList.toggle("gengage-chat-launcher--hidden-mobile",t)}this._applyOpenStateClasses()}}_isMaximizedForHostChrome(){if(!this._drawerVisible)return!1;const t=this.config.variant??"floating";return t==="inline"?!1:t==="overlay"?!0:this._drawer?.isPanelVisible()??!1}_applyOpenStateClasses(){if(!this._rootEl)return;const t=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",t),this._rootEl.classList.toggle("gengage-chat-root--mobile-full",a),this._rootEl.classList.toggle("gengage-chat-root--maximized-host-chrome",n),this._backdropEl){const r=n&&(this.config.variant??"floating")!=="inline";this._backdropEl.setAttribute("aria-hidden",r?"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(t){try{const a=t.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 r=window.getComputedStyle(n),i=(r.overflowY==="auto"||r.overflowY==="scroll")&&n.scrollHeight>n.clientHeight+1,o=(r.overflowX==="auto"||r.overflowX==="scroll")&&n.scrollWidth>n.clientWidth+1;if(i||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(t){const a=_o(t);if(!a.ok){ce("gengage:global:error",{message:a.reason==="invalid_type"?this._i18n.invalidFileType:this._i18n.fileTooLarge,source:"chat"});return}this._drawer?.stageAttachment(t)}_sendMessage(t,a){this._pdpPrimingInFlight&&(this._abortAllActiveRequests(),this._pdpPrimingInFlight=!1,this._queuedUserMessages=[]),(!this._messages.some(r=>r.role==="user")||this._drawer?.isKvkkBannerVisible())&&(wa(this.config.accountId),this._drawer?.hideKvkkBanner()),ud(),this._messages.some(r=>r.role==="user")||md(),Le("chat","sendMessage",{mode:this._assistantMode,hasAttachment:a!==void 0,textLength:t.length});const n=a!==void 0?{title:t,type:this._modeController.resolveAttachmentActionType(),payload:t?{text:t}:{}}:{title:t,type:"user_message",payload:t};a!==void 0?this._sendAction(n,{attachment:a}):this._sendAction(n)}_flushQueuedUserMessages(){if(this._pdpPrimingInFlight||this._queuedUserMessages.length===0)return;const t=[...this._queuedUserMessages];this._queuedUserMessages=[];for(const a of t)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(t=>t.remove())})}_handleRedirectMetadata(t){this._modeController.handleRedirect(t)}_sendAction(t,a){if(this._activeTypewriter?.cancel(),this._activeTypewriter=null,this._activeTtsHandle?.stop(),this._activeTtsHandle=null,this._lastSentAction={action:t,options:a},!this._initComplete){this._pendingActions.length<10&&this._pendingActions.push({action:t,options:a});return}if(this._choicePrompterEl?.remove(),this._choicePrompterEl=null,a?.preservePanel||Bl(),!a?.preservePanel&&this._comparisonSelectMode&&t.type!=="getComparisonTable"&&(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[]),a?.preservePanel||(this._localPanelHistory=[]),this._currentThreadId&&this._lastThreadId&&this._lastThreadId>this._currentThreadId){const _=this._currentThreadId,y=this._messages.filter(w=>w.threadId!==void 0&&w.threadId>_);this._messages=this._messages.filter(w=>!w.threadId||w.threadId<=_);for(const w of y)this._shadow?.querySelector(`[data-message-id="${CSS.escape(w.id)}"]`)?.remove(),this._panel.snapshots.delete(w.id),this._panel.snapshotTypes.delete(w.id);this._shadow?.querySelectorAll("[data-thread-id]")?.forEach(w=>{w instanceof HTMLElement&&w.dataset.threadId&&w.dataset.threadId>_&&w.remove()})}a?.preservePills||this._drawer?.setPills([]),this._drawer?.clearInputAreaChips(),this._bridge?.send("isResponding",!0);const n=Ja();this._currentThreadId=n,this._lastThreadId=n,this._panel&&t.type!=="launchSingleProduct"&&(this._panel.lastActionType=t.type);const r=a?.preservePanel===!0,i=t.type==="launchSingleProduct"&&a?.silent===!0&&a?.isPdpPrime===!0;if(r||(this._activeRequestThreadId=n),!a?.silent&&!r&&this._drawer?.setPresentationFocus(n),!a?.silent){const _=typeof t.payload=="string"?t.payload:typeof t.payload?.text=="string"?t.payload.text:t.title,y=this._messages.length>0?this._messages[this._messages.length-1]:void 0;if(!(y!==void 0&&y.role==="user"&&y.content===_)){const w=this._createMessage("user",_);w.threadId=n,a?.attachment!==void 0&&(w.attachment=a.attachment),this._drawer?.addMessage(w),this._messages.push(w)}}if(!a?.silent&&this._assistantMode==="shopping"&&this._hasUnavailableProductContext()&&(t.type==="user_message"||t.type==="inputText")){const _=this._i18n.productNotFoundMessage,y=this._createMessage("assistant",_);y.threadId=n,y.status="done",this._messages.push(y),this._ensureAssistantMessageRendered(y),this._drawer?.updateBotMessage(y.id,_),this._drawer?.setPresentationFocus(n),this._bridge?.send("isResponding",!1),this.emit("message",y),this._persistToIndexedDB().catch(()=>{});return}let o=this._currentPanelSource,s=!1;const c=()=>{s||a?.preservePanel||(o=this._currentPanelSource,s=!0)},l=()=>{if(this._drawer?.isPanelLoading()){if(o){const _=this._buildRenderContext(),y=this._renderPanelFromSource(o,_);this._drawer.setPanelContent(y),this._drawer.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(o)),this._currentPanelSource=o}else this._drawer.clearPanel(),this._currentPanelSource=null;o=null}};t.type==="getComparisonTable"&&(this._drawer?.showPanelLoading("comparisonTable"),this._panel?.updateTopBarForLoading("comparisonTable")),!a?.silent&&!r&&this._pruneEmptyStreamingAssistantPlaceholders(),this._drawer?.showTypingIndicator();let g="";const d=this._createMessage("assistant","");d.threadId=n,d.status="streaming",a?.silent&&(d.silent=!0),this._messages.push(d),this._presentation.registerAssistantActivity(n),this._presentation.requestThreadFocus(n,"smooth"),(a?.silent||r)&&this._drawer?.setPresentationFocus(n),this._drawer?.setFormerMessagesButtonVisible(!1),setTimeout(()=>this._flushPresentationScroll(),40),a?.preservePanel||this._abortAllActiveRequests();const h={middlewareUrl:this.config.middlewareUrl,...this.config.accountId?{accountId:this.config.accountId}:{}};a?.attachment!==void 0&&(h.attachment=a.attachment);const u=this._getVisibleMessages().filter(_=>_!==d&&(_.content||_.role==="assistant")).slice(-50).map(_=>({role:_.role==="user"?"user":"model",content:_.content??""})),m={outputLanguage:rd(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:$n(this.config.accountId),voiceEnabled:this.config.voiceEnabled??!1,threadId:n,isControlGroup:this.config.session?.abTestVariant==="control",isMobile:this._isMobileViewport};this._modeController.isShopping||(m.assistantMode=this._modeController.mode),this.config.session?.viewId!==void 0&&(m.viewId=this.config.session.viewId);const p=bs(t,{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:p.type,locale:this.config.locale??"tr",meta:m,context:{...this._lastBackendContext??{},messages:u,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),p.payload!==void 0&&(f.payload=p.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 b=crypto.randomUUID(),C=Date.now();let v=0,x=!1,k=!1,P=!1,z=!1,M=!1;const $=Ks();let K=null;const j=()=>{if(this._drawer){if(this._isMobileViewport||!P){this._drawer.setPanelAiZoneState("hidden");return}z||(M?this._drawer.setPanelAiZoneState("hidden"):this._drawer.setPanelAiZoneState("analyzing",{analyzingLabel:this._i18n.aiAnalysisAnalyzingLabel}))}};this.track(Jt(this.analyticsContext(),{endpoint:"process_action",request_id:b,widget:"chat"}));let I=null;if(I=_s(f,{onTextChunk:(_,y,w)=>{if(!r&&n!==this._activeRequestThreadId||(g+=_,this._drawer?.removeTypingIndicator(),w?.skuToProductItem&&(this._skuToProductItem={...this._skuToProductItem,...w.skuToProductItem}),w?.conversationMode&&(this._conversationMode=w.conversationMode),w?.renderHint&&(d.renderHint=w.renderHint),this.track(zi(this.analyticsContext(),{request_id:b,chunk_index:v++,widget:"chat"})),!this._drawer))return;let E=g;const L=w?.kvkk===!0||i&&xa(E);if(y&&L){const R=this.config.accountId;if(!$n(R)){const A=ad(E);A?this._drawer?.showKvkkBanner(A,()=>{this._drawer?.hideKvkkBanner(),wa(R)}):wa(R)}E=td(E)}const N=this._shadow?.querySelector(`[data-message-id="${d.id}"] .gengage-chat-bubble-text`);if(N?N.innerHTML=_e(E):(d.content=E,d.role==="assistant"&&d.threadId&&!this._threadsWithFirstBot.has(d.threadId)&&(this._threadsWithFirstBot.add(d.threadId),this._drawer.markFirstBotMessage(d.id)),this._drawer.addMessage(d)),y)if(d.content=E,d.status="done",qn(),Js(d))this._drawer?.updateBotMessage(d.id,E,"photo_analysis",d.photoAnalysis);else{const R=this._shadow?.querySelector(`[data-message-id="${d.id}"] .gengage-chat-bubble-text`);if(R){this._activeTypewriter?.cancel();const A=w?.productMentions;this._activeTypewriter=Pl({container:R,html:_e(E),onTick:()=>this._drawer?.scrollToBottomIfNeeded(),onComplete:()=>{this._activeTypewriter=null,A&&A.length>0&&R&&Al({container:R,mentions:A,onProductClick:U=>{this._sendAction({title:A.find(F=>F.sku===U)?.short_name??U,type:"launchSingleProduct",payload:{sku:U}})}})}})}}},onUISpec:(_,y,w,E)=>{if(!r&&n!==this._activeRequestThreadId||y!=="chat")return;E&&(this._clearAssistantPanelLikeStreamClearPanel(),x=!1);const L=_.elements[_.root],N=L?.type??"unknown";if(Ys(N,L?.props??{},$,{drawer:this._drawer,ensureRendered:()=>this._ensureAssistantMessageRendered(d),cancelTypewriter:()=>{this._activeTypewriter?.cancel(),this._activeTypewriter=null},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:M},d))return;const R=N==="ProductGrid"&&L?.props?.similarsAppend===!0,A=this.config.productDetailsExtended!==!0&&(N==="ProductDetailsPanel"||R);A&&!E&&(this._clearAssistantPanelLikeStreamClearPanel(),x=!1);const U=N==="ProductDetailsPanel"&&w!=="panel"?"panel":w;this.track(Mi(this.analyticsContext(),{request_id:b,chunk_index:v,component_type:N,widget:"chat"}));const F=this._buildRenderContext();if(F.isStreaming=!0,N==="ComparisonTable"){const H=L?.props?.products;dd(Array.isArray(H)?H.length:0)}if(N==="ProductGrid"){const H=L?.children?.length??0;hd(void 0,H)}const W=U==="panel"&&this._panel?this._panel.toPanelSpec(_):_;if(U==="panel"&&this._panel&&!A){const H=!k;k=!0;const B=jl({componentType:N,similarsAppend:L?.props?.similarsAppend===!0,currentPanelType:this._panel.currentType,hasPanelContent:this._drawer?.hasPanelContent()??!1,isPanelLoading:this._drawer?.isPanelLoading()??!1,isFirstPanelContentInStream:H});F.panelProductListHeading=void 0,N==="ProductGrid"&&(B==="appendSimilars"?F.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products":this._applyPanelListHeadingToContext(F,{kind:"spec",spec:W})),B==="appendSimilars"?this._appendSimilarsToPanel(W,F):B==="append"?(this._drawer?.appendPanelContent(this._renderUISpec(W,F)),this._comparisonSelectMode&&this._refreshComparisonUI()):(this._comparisonSelectMode=!1,this._comparisonSelectedSkus=[],this._comparisonSelectionWarning=null,this._drawer?.setComparisonDockContent(null),this._drawer?.setPanelContent(this._renderUISpec(W,F)),this._currentPanelSource={kind:"spec",spec:W},this._panel.currentType=N),this._drawer?.setDividerPreviewEnabled((this._panel.currentType??N)==="ProductGrid"),N==="ProductDetailsPanel"&&t.type==="launchSingleProduct"&&this._clearUnavailableProductContext(),d.threadId&&!this._panel.threads.includes(d.threadId)&&this._panel.threads.push(d.threadId);const Y=this._panel.currentType??N,O=L?.props?.panelTitle;if(this._panel.updateTopBar(Y,O),this._panel.updateExtendedMode(N),this._isMobileViewport&&i&&this._drawer?.hideMobilePanel(),N==="ProductGrid"||N==="CategoriesContainer"){if(P=!this._isMobileViewport,K){const re=this._buildRenderContext();re.isStreaming=!0;const Wt=this._renderUISpec(K,re);z=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:Wt}),K=null}}else B!=="appendSimilars"&&B!=="append"&&(P=!1,K=null,this._drawer?.setPanelAiZoneState("hidden"))}if(N==="ProductDetailsPanel"&&U==="panel"&&(!d.silent||i)){const H=L?.props?.product;if(H){const B={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:H}}}},Y=this._shadow?.querySelector(".gengage-chat-messages");if(Y){const O=this._renderUISpec(B,F);d.threadId&&(O.dataset.threadId=d.threadId);const re=this._shadow?.querySelector(`[data-message-id="${d.id}"]`);re&&re.parentNode===Y?re.after(O):Y.appendChild(O),O.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),k=!0}}}const Q=N==="AITopPicks"||N==="AIGroupingCards";let X=!1,oe=!1;if(A&&R&&(F.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products"),Q&&!this._isMobileViewport&&!d.silent)if(P){const H=this._renderUISpec(_,F);z=!0,this._drawer?.setPanelAiZoneState("results",{resultEl:H}),X=!0,K=null}else K=_,oe=!0;const Z=i&&N==="GroundingReviewCard";if((!d.silent||Z)&&(U!=="panel"||N==="ProductCard"||A&&N==="ProductGrid"&&(!R||this._isMobileViewport))&&N!=="ActionButtons"&&!X&&!(oe&&Q)){const H=this._shadow?.querySelector(".gengage-chat-messages");if(H){const B=this._renderUISpec(_,F);d.threadId&&(B.dataset.threadId=d.threadId),H.appendChild(B),B.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed(),A&&N==="ProductGrid"&&(k=!0)}}if((N==="ProductGrid"||N==="ProductCard")&&d.threadId){const H=L?.children??[],B=N==="ProductGrid"?H.map(Y=>_.elements[Y]?.props?.product).filter(Boolean):[L?.props?.product].filter(Boolean);for(const Y of B){const O=Y.sku,re=Y.imageUrl;O&&re&&this._thumbnailEntries.push({sku:O,imageUrl:re,threadId:d.threadId}),O&&this._viewedProductSkus.add(O)}this._drawer?.setThumbnails(this._thumbnailEntries)}if(N==="ProductGrid"||N==="ProductDetailsPanel"){const H=(N==="ProductGrid"?(L?.children??[]).map(B=>_.elements[B]?.props?.product).filter(Boolean):[L?.props?.product??L?.props].filter(Boolean)).map(B=>B.imageUrl).filter(B=>typeof B=="string").slice(0,5);H.length>0&&this._bridge?.send("previewImages",{images:H})}const be=L?.children?.length??0;if(N==="ProductGrid"&&U==="panel"&&!A&&be>1&&!this._modeController.isChoicePrompterHidden&&!this._comparisonSelectMode&&!Rl(this._currentThreadId??"")){this._choicePrompterEl?.remove(),this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach(B=>B.remove()),this._choicePrompterEl=Ml({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 H=this._shadow?.querySelector(".gengage-chat-panel-float");if(H){if(H.appendChild(this._choicePrompterEl),this._isMobileViewport&&window.visualViewport){const B=this._choicePrompterEl,Y=()=>{window.visualViewport.height/window.innerHeight<.75&&(B.remove(),this._choicePrompterEl===B&&(this._choicePrompterEl=null),window.visualViewport.removeEventListener("resize",Y))};window.visualViewport.addEventListener("resize",Y)}}else this._choicePrompterEl=null}if(N==="ActionButtons"){const H=L?.props?.buttons;if(H&&H.length>0){const B=[],Y=[];for(const O of H)if(Nl(O)){const re={label:O.label,action:O.action};O.icon&&(re.icon=O.icon),B.push(re)}else Y.push(O);B.length>0&&this._drawer?.setInputAreaChips(B.map(O=>({label:O.label,onAction:()=>this._sendAction(O.action),...O.icon?{icon:O.icon}:{}}))),Y.length>0&&this._drawer?.setPills(Y.map(O=>{const re={label:O.label,onAction:()=>this._sendAction(O.action)};return O.icon&&(re.icon=O.icon),O.image&&(re.image=O.image),O.description&&(re.description=O.description),re}))}}j(),d.uiSpec=_},onAction:_=>{if(!(!r&&n!==this._activeRequestThreadId)&&_.type==="action"){const y={};this.config.actionHandling?.unknownActionPolicy!==void 0&&(y.unknownActionPolicy=this.config.actionHandling.unknownActionPolicy),this.config.actionHandling?.allowScriptCall!==void 0&&(y.allowScriptCall=this.config.actionHandling.allowScriptCall),fo(_,{openChat:()=>this.open(),navigate:w=>{pe(w.url)&&(this._bridge?.send("navigate",w),w.newTab?window.open(w.url,"_blank","noopener,noreferrer"):window.location.href=w.url)},saveSession:w=>this.saveSession(w.sessionId,w.sku),addToCart:w=>{ce("gengage:similar:add-to-cart",w)},scriptCall:w=>{ce("gengage:chat:script-call",w),this.config.onScriptCall?.(w)}},y)}},onMetadata:_=>{if(!(!r&&n!==this._activeRequestThreadId)&&_.type==="metadata"&&_.meta){if(_.meta.panel!==void 0||_.meta.messages!==void 0||_.meta.message_id!==void 0){this._lastBackendContext=_.meta;const w=da(_.meta.panel);w&&(this._modeController.updateFromContext(w),this._applyUiHints())}if(_.meta.panelLoading){const w=typeof _.meta.panelPendingType=="string"?_.meta.panelPendingType:void 0;this.config.productDetailsExtended!==!0&&(w==="productDetails"||w==="productDetailsSimilars")||(x=!0,k=!1,c(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(w),w&&this._panel?.updateTopBarForLoading(w))}if(_.meta.voice){const w=new CustomEvent("gengage:chat:voice",{detail:{payload:_.meta.voice},bubbles:!1,cancelable:!0}),E=window.dispatchEvent(w);if(fd(),E){const L=_.meta.voice;L.audio_base64&&(this._activeTtsHandle?.stop(),this._activeTtsHandle=nc(L.audio_base64,L.content_type??"audio/ogg"))}}if((_.meta.redirectTarget||_.meta.redirect)&&(ce("gengage:chat:redirect",{target:_.meta.redirectTarget??null,payload:_.meta.redirect??null}),Le("redirect","redirect dispatched",{target:_.meta.redirectTarget??null}),this._handleRedirectMetadata(_.meta.redirect)),_.meta.analyzeAnimation&&this.config.productDetailsExtended===!0&&(x=!0,k=!1,c(),this._panel&&(this._panel.currentType=null),this._drawer?.showPanelLoading(),this._panel?.updateTopBarForLoading("productDetails")),_.meta.loading){const w=Array.isArray(_.meta.thinkingMessages)?_.meta.thinkingMessages.filter(L=>typeof L=="string"):[],E=typeof _.meta.loadingText=="string"?_.meta.loadingText:void 0;if(w.length>0){const L=E&&this._modeController.shouldCondenseThinking()?[...w.slice(0,2),E]:w;this._drawer?.setThinkingSteps(L)}typeof E=="string"&&E.length>0&&(this._drawer?.addThinkingStep(E),this._bridge?.send("loadingMessage",{text:E}))}_.meta.visitorDataResponse&&this._bridge?.send("engagingMessage",_.meta.visitorDataResponse),_.meta.formType&&this._bridge?.send("glovOtokoc",{type:_.meta.formType,data:_.meta.formPayload}),_.meta.launcherContent&&this._bridge?.send("launcherContent",_.meta.launcherContent),ce("gengage:chat:metadata",{payload:_.meta});const y=_.meta;typeof y.prompt_tokens=="number"&&typeof y.completion_tokens=="number"&&this.track(Bi(this.analyticsContext(),{model:_.model??"unknown",prompt_tokens:y.prompt_tokens,completion_tokens:y.completion_tokens,total_tokens:y.total_tokens??y.prompt_tokens+y.completion_tokens}))}},onError:_=>{if(I&&this._abortControllers.delete(I),!r&&n!==this._activeRequestThreadId)return;M=!0,this._activeTypewriter?.cancel(),this._activeTypewriter=null,j(),K=null,this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),this._drawer?.clearInputAreaChips(),Xs($,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const y=k;x&&!k&&l(),x=!1,k=!1;const w=d.silent||d.content!=null&&d.content.length>0||g.length>0||y,E=typeof navigator<"u"&&navigator.onLine===!1&&aa(_),L=()=>{this._shadow?.querySelector(`[data-message-id="${CSS.escape(d.id)}"]`)?.remove();const A=this._messages.indexOf(d);A>=0&&this._messages.splice(A,1)};let N=!1;const R=()=>{if(E)return;this.emit("error",_);const A=_.message;A===this._lastErrorMessage?this._consecutiveErrorCount++:(this._consecutiveErrorCount=1,this._lastErrorMessage=A);const U=_.message.trim(),F=U.length>0?U:this._i18n.errorMessage,W={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,W);return}if(Ql(_,F)){L(),N=!0,this._drawer?.showErrorWithRecovery(F,W);return}d.content=F,d.status="done";const Q=_e(F.replace(/\r\n/g,`
|
|
177
177
|
`).split(`
|
|
178
|
-
`).join("<br />"));this._ensureAssistantMessageRendered(d),this._drawer?.updateBotMessage(d.id,J),this._drawer?.showRecoveryPillsOnly(V)};if(x)this._drawer?.setPills([]),d.silent||R();else if(i||this._hasUnavailableProductContext()){this._drawer?.setPills([]);const P=this._i18n.productNotFoundMessage;d.content=P,d.status="done",this._ensureAssistantMessageRendered(d),this._drawer?.updateBotMessage(d.id,P),this._markUnavailableProductContext()}else if(R(),E)return;i&&(this._pdpPrimingInFlight=!1,this._flushQueuedUserMessages()),!z&&d.status==="streaming"&&(d.status="error"),E||this.track(Xt(this.analyticsContext(),{request_id:b,error_code:"STREAM_ERROR",error_message:_.message,widget:"chat"}))},onDone:()=>{if(N&&this._abortControllers.delete(N),!r&&n!==this._activeRequestThreadId)return;if(I=!0,K(),Q){const E=this._buildRenderContext();E.isStreaming=!1;const L=this._shadow?.querySelector(".gengage-chat-messages");if(L){const z=this._renderUISpec(Q,E);d.threadId&&(z.dataset.threadId=d.threadId),L.appendChild(z),z.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed()}Q=null}this._activeRequestThreadId=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),Qs(H,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const _=k;if(w&&!k&&l(),w=!1,i&&!g&&!_){const E=this._i18n.productNotFoundMessage;d.content=E,this._ensureAssistantMessageRendered(d),this._drawer?.updateBotMessage(d.id,E),this._markUnavailableProductContext()}if(k=!1,i){this._pdpPrimingInFlight=!1;const E=this._queuedUserMessages.length>0;this._flushQueuedUserMessages(),E||this._ensurePdpPrimeSuggestedUiIfNeeded()}d.status==="streaming"&&(d.status="done",qn()),this._presentation.finalizeAssistantGroup(n);const y=this._shadow?.querySelector(".gengage-chat-comparison-toggle-btn--hidden");y&&(y.classList.remove("gengage-chat-comparison-toggle-btn--hidden"),y.classList.add("gengage-chat-comparison-toggle-btn--reveal")),this.emit("message",d);const x=this._currentPanelSource;this._panel?.snapshotForMessage(d.id,x?()=>{const E=this._buildRenderContext();return this._renderPanelFromSource(x,E)}:void 0),this.track(ut(this.analyticsContext(),{request_id:b,latency_ms:Date.now()-C,chunk_count:v,widget:"chat"})),this.track(Ri(this.analyticsContext(),{meter_key:"chat_request",quantity:1,unit:"request"})),this.track(Di(this.analyticsContext(),{message_count:this._messages.length,history_ref:this.config.session?.sessionId??"",redaction_level:"none"})),this._persistToIndexedDB().catch(()=>{})}},h),this._abortControllers.add(N),!a?.silent&&!r){const _=N;this._drawer?.showStopButton(()=>{_.abort(),this._abortControllers.delete(_),this._drawer?.removeTypingIndicator(),this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),d.status==="streaming"&&(d.status="done")})}}_getVisibleMessages(){const t=this._messages.filter(n=>!n.silent);if(!this._currentThreadId)return t;const a=this._currentThreadId;return t.filter(n=>!n.threadId||n.threadId<=a)}_appendSimilarsToPanel(t,a){if(!this._drawer)return;const n=this._drawer.getPanelContentElement();if(!n)return;a.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products";const r=this._renderUISpec(t,a);r.classList.add("gengage-chat-product-details-similars"),n.appendChild(r),this._mergePanelSourceWithSimilars(t)}_mergePanelSourceWithSimilars(t){const a=this._currentPanelSource;a?.kind==="spec"&&this._panel?.currentType==="ProductDetailsPanel"&&(this._currentPanelSource={kind:"productDetailsWithSimilars",pdpSpec:a.spec,similarsSpec:t})}_renderProductDetailsWithSimilars(t,a,n){this._applyPanelListHeadingToContext(n,{kind:"productDetailsWithSimilars",pdpSpec:t,similarsSpec:a});const r=this._renderUISpec(t,n),i=this._renderUISpec(a,n);return i.classList.add("gengage-chat-product-details-similars"),r.appendChild(i),r}_applyPanelListHeadingToContext(t,a){if(t.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&&(t.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&&(t.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products")}}}_renderPanelFromSource(t,a){return this._applyPanelListHeadingToContext(a,t),t.kind==="favorites"?this._buildFavoritesPageEl():t.kind==="productDetailsWithSimilars"?this._renderProductDetailsWithSimilars(t.pdpSpec,t.similarsSpec,a):this._renderUISpec(t.spec,a)}_handleRollback(t){const a=this._messages.find(n=>n.id===t);a?.threadId&&this._rollbackToThread(a.threadId)}_ensurePdpPrimeSuggestedUiIfNeeded(){const t=this.config.pageContext?.sku;if(!t||!this._drawer||this._hasUnavailableProductContext())return;const a="product",n=this._resolveContextualOpeningActions(a);if(n.length>0){this._drawer.setInputAreaChips(n.map(r=>({label:r.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(r,a)),...r.icon?{icon:r.icon}:{}})));return}this._drawer.setInputAreaChips([{label:this._i18n.groundingReviewCta,icon:"review",onAction:()=>this._sendAction({title:this._i18n.customerReviewsTitle,type:"reviewSummary",payload:{sku:t}})},{label:this._i18n.findSimilarLabel,icon:"similar",onAction:()=>this._sendAction({title:this._i18n.findSimilarLabel,type:"findSimilar",payload:{sku:t}})}])}_rollbackToThread(t){if(this._panel&&this._panel.threads.length>0&&!this._panel.threads.includes(t)&&!this._messages.some(i=>i.threadId===t))return;this._currentThreadId=t,this._extendedModeManager?.setHiddenByUser(!1),this._lastThreadId!=null&&t===this._lastThreadId?(this._presentation.setFocusedThreadId(t),this._drawer?.setPresentationFocus(t)):(this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null)),this._drawer?.setFormerMessagesButtonVisible(!1);for(const i of this._messages){const o=this._shadow?.querySelector(`[data-message-id="${CSS.escape(i.id)}"]`);o&&(i.threadId&&i.threadId>t?o.classList.add("gengage-chat-bubble--hidden"):o.classList.remove("gengage-chat-bubble--hidden"))}this._shadow?.querySelectorAll("[data-thread-id]").forEach(i=>{i instanceof HTMLElement&&i.dataset.threadId&&i.dataset.threadId>t?i.classList.add("gengage-chat-bubble--hidden"):i instanceof HTMLElement&&i.classList.remove("gengage-chat-bubble--hidden")});const a=this._messages.find(i=>i.role==="assistant"&&i.threadId===t),n=a?this._panel?.restoreForMessage(a.id):!1;n||(this._drawer?.clearPanel(),this._currentPanelSource=null),n&&a&&(this._currentPanelSource=null);const r=this._panel.currentType??"";if(this._panel?.updateTopBar(r),this._drawer?.setPills([]),requestAnimationFrame(()=>{this._drawer?.scrollThreadIntoView(t,"auto")}),this._session?.db&&this.config.session?.sessionId){const i=this.config.session.sessionId;(async()=>{try{const o=await this._session?.db?.loadContext(i,t);o&&(this._lastBackendContext=o.context),await this._session?.db?.deleteContextsAfterThread(i,t)}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(t){try{return t.trim()?new URL(t,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 t=this.config.pageContext?.sku;return t!==void 0&&t.length>0&&this._productContextUnavailableSku===t}_ensureAssistantMessageRendered(t){if(!(this._shadow?.querySelector(`[data-message-id="${CSS.escape(t.id)}"]`)||!this._drawer)){if(t.role==="assistant"&&t.threadId&&!this._threadsWithFirstBot.has(t.threadId)){this._threadsWithFirstBot.add(t.threadId),this._drawer.addMessage(t),this._drawer.markFirstBotMessage(t.id);return}this._drawer.addMessage(t)}}async _saveSessionAndOpenURL(t){this._session&&await this._session.saveAndOpenURL(t,()=>this._persistToIndexedDB(),this._bridge)}async _loadPayload(t,a){return this._session?this._session.loadPayload(t,a):null}async _restoreFromIndexedDB(t){if(!this._session?.db)return;const a=this.config.session?.sessionId;if(!a)return;const n=this.config.session?.userId??"",r=this.config.accountId;if(await this._session.loadFavorites(n,r),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size),!t)return;const i=await this._session.db?.loadSession(n,r,a);if(!i||i.messages.length===0)return;const o=this.config.pageContext?.sku;if(o&&i.sku&&i.sku!==o)return;if(this._pdpLaunched=!0,this._drawer?.lockScrollForRestore(),this._currentThreadId=i.currentThreadId,this._lastThreadId=i.lastThreadId,this._currentThreadId&&this._lastThreadId&&this._currentThreadId>this._lastThreadId&&(this._currentThreadId=this._lastThreadId),this._chatCreatedAt=i.createdAt,i.panelThreads&&(this._panel.threads=i.panelThreads),i.thumbnailEntries&&(this._thumbnailEntries=i.thumbnailEntries,this._drawer?.setThumbnails(this._thumbnailEntries)),i.panelSnapshotHtml)for(const[c,l]of Object.entries(i.panelSnapshotHtml)){const g=document.createElement("div");g.innerHTML=_e(l),this._panel.snapshots.set(c,g)}let s=0;for(const c of i.messages){const l={id:c.id,role:c.role,timestamp:c.timestamp,status:c.status};if(c.threadId!==void 0&&(l.threadId=c.threadId),c.content!==void 0&&(l.content=c.content),c.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 g=parseInt(c.id.replace("msg-",""),10);if(!isNaN(g)&&g>s&&(s=g),l.role==="assistant"&&l.threadId){const d=await this._loadPayload(l.threadId,l.id);d&&(l.uiSpec=d,this._restoreInlineUISpec(l),delete l.uiSpec)}}if(s>this._currentMessageId&&(this._currentMessageId=s),this._currentThreadId){let c=await this._session.db?.loadContext(a,this._currentThreadId);c||(c=await this._session.db?.loadLatestContext(a)),c&&(this._lastBackendContext=c.context)}if(this._currentThreadId){const c=[...this._messages].reverse().find(l=>l.role==="assistant"&&l.threadId===this._currentThreadId&&!l.silent);c&&this._panel.snapshots.has(c.id)&&this._panel?.restoreForMessage(c.id)}if(this._currentThreadId){const c=this._currentThreadId;for(const l of this._messages)l.threadId&&l.threadId>c&&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>c&&l.classList.add("gengage-chat-bubble--hidden")})}if(this._panel.threads.length>0&&this._currentThreadId){const c=this._panel.threads[this._panel.threads.length-1];if(c){const l=[...this._messages].reverse().find(g=>g.role==="assistant"&&g.threadId===c);if(l?.threadId){const g=await this._loadPayload(l.threadId,l.id);if(g){const d=g.elements[g.root];d&&this._panel?.updateTopBar(d.type)}}}}this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),setTimeout(()=>{this._drawer?.scrollToLastThread()},550)}_navigatePanelBack(){const t=this._localPanelHistory.pop();if(t){const a=this._buildRenderContext(),n=this._renderPanelFromSource(t.source,a);this._drawer?.setPanelContent(n),this._drawer?.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(t.source)),this._currentPanelSource=t.source;const r=this._localPanelHistory.length>0||(this._panel?.threads.length??0)>1;this._drawer?.updatePanelTopBar(r,!1,t.title);return}if(this._isMobileViewport){this._drawer?.hideMobilePanel();return}this._panel?.navigateBack()}_shouldUseDividerPreviewForSpec(t){return t.elements[t.root]?.type==="ProductGrid"}_shouldUseDividerPreviewForSource(t){return t?.kind==="spec"?this._shouldUseDividerPreviewForSpec(t.spec):!1}_toggleComparisonSku(t){if(t==="")this._comparisonSelectMode=!this._comparisonSelectMode,this._comparisonSelectionWarning=null,this._comparisonSelectMode&&(Ol(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,ld());else if(this._comparisonSelectedSkus.indexOf(t)>=0)this._comparisonSelectedSkus=this._comparisonSelectedSkus.filter(a=>a!==t),this._comparisonSelectionWarning=null;else{if(this._comparisonSelectedSkus.length>=it._MAX_COMPARISON_SELECTION){this._comparisonSelectionWarning=this._i18n.compareMaxHint??`You can select up to ${it._MAX_COMPARISON_SELECTION} products`,this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()});return}this._comparisonSelectedSkus=[...this._comparisonSelectedSkus,t],this._comparisonSelectionWarning=null,sd(t)}this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()})}_refreshComparisonUI(){const t=this._shadow?.querySelector(".gengage-chat-panel");if(!t){this._drawer?.setComparisonDockContent(null);return}const a=t.querySelector(".gengage-chat-product-grid-wrapper"),n=a?.querySelector(".gengage-chat-product-grid");if(!a||!n){this._drawer?.setComparisonDockContent(null);return}const r=a.querySelector(".gengage-chat-comparison-toggle-btn");if(r&&r.classList.toggle("gengage-chat-comparison-toggle-btn--active",this._comparisonSelectMode),this._comparisonSelectMode){const i=n.querySelectorAll(".gengage-chat-product-card[data-sku]");for(const o of i){if(o.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){const u=o.parentElement,f=this._comparisonSelectedSkus.includes(o.dataset.sku);u.classList.toggle("gengage-chat-comparison-select-wrapper--selected",f);const p=u.querySelector(".gengage-chat-comparison-checkbox");if(p){p.dataset.selected=f?"true":"false",p.setAttribute("aria-pressed",f?"true":"false");const m=p.querySelector(".gengage-chat-comparison-checkbox-icon"),b=p.querySelector(".gengage-chat-comparison-checkbox-label");m&&(m.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>'),b&&(b.textContent=f?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare")}continue}const s=o.dataset.sku,c=document.createElement("div");c.className="gengage-chat-comparison-select-wrapper";const l=this._comparisonSelectedSkus.includes(s);l&&c.classList.add("gengage-chat-comparison-select-wrapper--selected");const g=document.createElement("button");g.type="button",g.className="gengage-chat-comparison-checkbox",g.dataset.selected=l?"true":"false",g.setAttribute("aria-pressed",l?"true":"false");const d=document.createElement("span");d.className="gengage-chat-comparison-checkbox-icon",d.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 h=document.createElement("span");h.className="gengage-chat-comparison-checkbox-label",h.textContent=l?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare",g.appendChild(d),g.appendChild(h),g.addEventListener("click",u=>{u.stopPropagation(),this._toggleComparisonSku(s)}),o.parentNode.insertBefore(c,o),c.appendChild(g),c.appendChild(o),c.classList.add("gds-clickable"),c.addEventListener("click",u=>{u.target.closest(".gengage-chat-comparison-checkbox")||(u.stopPropagation(),this._toggleComparisonSku(s))})}}else{const i=n.querySelectorAll(".gengage-chat-comparison-select-wrapper");for(const o of i){const s=o.querySelector(".gengage-chat-product-card");s&&o.parentNode&&(o.parentNode.insertBefore(s,o),o.remove())}}if(a.querySelector(".gengage-chat-comparison-floating-btn")?.remove(),this._comparisonSelectMode){const i=wn(this._comparisonSelectedSkus,this._buildRenderContext());this._isMobileViewport?this._drawer?.setComparisonDockContent(i):(this._drawer?.setComparisonDockContent(null),a.appendChild(i))}else this._drawer?.setComparisonDockContent(null)}_parseAddToCartActionPayload(t){if(typeof t!="object"||t===null)return null;const a=t,n=this._coerceAddToCartString(a.sku),r=this._coerceAddToCartString(a.cartCode??a.cart_code);let i=1;return typeof a.quantity=="number"&&Number.isFinite(a.quantity)&&a.quantity>0&&(i=Math.max(1,Math.floor(a.quantity))),!n||!r?null:{sku:n,cartCode:r,quantity:i}}_coerceAddToCartString(t){return typeof t=="string"&&t.length>0?t:typeof t=="number"&&Number.isFinite(t)?String(t):""}_runChatAddToCartFlow(t){if(this.config.onAddToCart!==void 0)try{const r=this.config.onAddToCart(t);r instanceof Promise&&r.catch(i=>console.error("[gengage] onAddToCart",i))}catch(r){console.error("[gengage] onAddToCart",r)}Hn(t.sku,t.quantity);const a={...t,sessionId:this.config.session?.sessionId??null};ce("gengage:chat:add-to-cart",a),this._bridge?.send("addToCart",t),this._runEventCallbacks("gengage-cart-add",a),this.track(Ua(this.analyticsContext(),{attribution_source:"chat",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??"TRY",line_items:t.quantity,sku:t.sku})),this._sendAction({title:this._i18n.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:t.sku,cart_code:t.cartCode,quantity:t.quantity}},{preservePanel:!0});const n=this._i18n.addedToCartToast??"Added to cart";this._drawer?.showCartToast(n),this._drawer?.flashCartBadge()}_buildRenderContext(){const t={onAction:a=>{if(ka(a.title,a.type),a.type==="addToCart"){const r=this._parseAddToCartActionPayload(a.payload);if(r){this._runChatAddToCartFlow(r);return}}if(a.type==="launchSingleProduct"){this._drawer?.setDividerPreviewEnabled(!1);const r=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";r&&Ca(r,a.title)}if(a.type==="findSimilar"){const r=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";Un(r)}a.type==="getComparisonTable"&&cd(this._comparisonSelectedSkus);const n=a.type==="addToCart"||a.type==="like";this._sendAction(a,n?{preservePanel:!0}:void 0)},onProductClick:a=>{if(Ca(a.sku),this.config.isDemoWebsite!==!0&&this._isSameOriginUrl(a.url))ce("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 s=this._drawer?.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:s}),this._localPanelHistory.length>it._MAX_PANEL_HISTORY&&this._localPanelHistory.shift()}const n=this._buildRenderContext(),r={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:a}}}},i=this._shadow?.querySelector(".gengage-chat-messages");if(i){const s=this._renderUISpec(r,n);this._currentThreadId&&(s.dataset.threadId=this._currentThreadId),i.appendChild(s),s.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,t)),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:it._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 t}async _toggleFavorite(t,a){if(!this._session)return;const n=this.config.session?.userId??"",r=this.config.accountId;await this._session.toggleFavorite(n,r,t,a),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size)}_revertFavoriteHeartUi(t){const a=this._shadow?.querySelectorAll(`[data-gengage-favorite-sku="${CSS.escape(t)}"]`);if(a?.length)for(const n of a){if(!(n instanceof HTMLButtonElement))continue;n.classList.toggle("gengage-chat-favorite-btn--active");const r=n.querySelector("svg");r&&r.setAttribute("fill",n.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none")}}async _toggleProductFavorite(t,a){const n=!(this._session?.favoritedSkus.has(t)??!1),r={sku:t,product:a,favorited:n,sessionId:this.config.session?.sessionId??null};ce("gengage:chat:product-favorite",r),this._bridge?.send("productFavorite",r);const i=this._eventCallbacks.get("gengage-product-favorite");if(i&&i.size>0){for(const o of i)try{const s=o(r);if((s instanceof Promise?await s:s)===!1){this._revertFavoriteHeartUi(t),this._handleCallbackFailure("gengage-product-favorite",r);return}}catch{this._revertFavoriteHeartUi(t),this._handleCallbackFailure("gengage-product-favorite",r);return}this._session&&(n?this._session.favoritedSkus.add(t):this._session.favoritedSkus.delete(t),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size));return}if(await this._toggleFavorite(t,a),n){gd(t);const o=a.name??t;this._sendAction({title:o,type:"like",payload:{sku:t}},{preservePanel:!0})}}_openFavoritesPanel(){if(this._drawer){if(this._currentPanelSource){const t=this._drawer.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:t}),this._localPanelHistory.length>it._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 t=this._session?.getFavoriteProducts()??[];if(t.length===0){const i=document.createElement("div");i.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>',i.appendChild(o);const s=document.createElement("p");return s.textContent=this._i18n.emptyFavoritesMessage,i.appendChild(s),i}const a={},n=[];for(const[i,o]of t.entries()){const s=`card_${i}`;n.push(s),a[s]={type:"ProductCard",props:{product:{sku:o.sku,name:o.name,imageUrl:o.imageUrl,price:o.price}}}}a.grid={type:"ProductGrid",children:n};const r={root:"grid",elements:a};return this._renderUISpec(r,this._buildRenderContext())}async _runEventCallbacks(t,a){const n=this._eventCallbacks.get(t);if(!(!n||n.size===0))for(const r of n)try{const i=r(a);if((i instanceof Promise?await i:i)===!1){this._handleCallbackFailure(t,a);return}}catch{this._handleCallbackFailure(t,a);return}}_handleCallbackFailure(t,a){if(t==="gengage-cart-add"){const n=this._i18n.cartAddErrorMessage,r=this._createMessage("assistant",n);this._currentThreadId&&(r.threadId=this._currentThreadId),this._messages.push(r),this._drawer?.addMessage(r)}if(t==="gengage-product-favorite"){const n=this._i18n.favoriteToggleErrorMessage,r=this._createMessage("assistant",n);this._currentThreadId&&(r.threadId=this._currentThreadId),this._messages.push(r),this._drawer?.addMessage(r)}}_restoreInlineUISpec(t){if(!t.uiSpec||!this._drawer)return;const a=t.uiSpec,n=a.elements[a.root];if(!n)return;const r=n.type;if(r==="ActionButtons"||r==="ComparisonTable"||r==="ProductGrid"&&n.props?.similarsAppend===!0&&(this.config.productDetailsExtended===!0||!this._isMobileViewport))return;const i=this._buildRenderContext(),o=this._shadow?.querySelector(".gengage-chat-messages");if(!o)return;if(r==="ProductDetailsPanel"){const c=n.props?.product;if(!c)return;const l={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:c}}}},g=this._renderUISpec(l,i);t.threadId&&(g.dataset.threadId=t.threadId),o.appendChild(g),this._drawer?.refreshPresentationCollapsed();return}const s=this._renderUISpec(a,i);t.threadId&&(s.dataset.threadId=t.threadId),o.appendChild(s),this._drawer?.refreshPresentationCollapsed()}_createMessage(t,a){return this._currentMessageId++,{id:`msg-${this._currentMessageId}`,role:t,content:a,timestamp:Date.now(),status:"done"}}_resolveI18n(t){return{...Ss(t.locale),...t.i18n}}_resolveUISpecRegistry(){return Jt(qc(),this.config.renderer?.registry)}_renderUISpec(t,a){const n=this._resolveUISpecRegistry(),r=this.config.renderer?.unknownRenderer??Cn,i=(s,c)=>jc(s,c,n,r),o=this.config.renderer?.renderUISpec;return o?o(t,a,{registry:n,unknownRenderer:r,defaultRender:i}):i(t,a)}},Wu=8e3,Gu=5e3,Ku="https://www.google.com/favicon.ico",Re=new Map,Jr=!1,rt=null,ht=null,Ge=!1;function Yu(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function Qr(e){return Yu(e)?"İnternet bağlantısında sorun var gibi görünüyor. İstek sürerken yeniden deneyeceğiz.":"Your internet connection looks unstable. We'll keep retrying while this request is active."}function Xr(){let e;for(const t of Re.values())e=t;return e}function Da(){rt&&(clearTimeout(rt),rt=null)}function Ju(){ht&&(clearInterval(ht),ht=null)}async function ei(){try{if(typeof navigator<"u"&&navigator.onLine===!1)return!1;if(typeof window<"u"){const a=window.location.hostname;if(a==="localhost"||a==="127.0.0.1")return navigator.onLine}const e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{return await fetch(Ku,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:e.signal}),!0}catch{return navigator.onLine}finally{clearTimeout(t)}}catch{return typeof navigator>"u"?!0:navigator.onLine}}function Ht(){Ge=!1,Ju(),Ya()}function qt(){rt||Ge||Re.size===0||(rt=setTimeout(async()=>{rt=null,!(Ge||Re.size===0)&&!await ei()&&Re.size>0&&(Ge=!0,ra({source:"sdk",message:Qr(Xr()),sticky:!0}),ht||(ht=setInterval(async()=>{if(Re.size===0){Ht();return}await ei()&&(Ht(),qt())},Gu)))},Wu))}function Qu(){Jr||typeof window>"u"||(Jr=!0,window.addEventListener("online",()=>{Ht(),qt()}),window.addEventListener("offline",()=>{Re.size===0||Ge||(Ge=!0,Da(),ra({source:"sdk",message:Qr(Xr()),sticky:!0}))}))}function ti(e){Qu();const t=Symbol(e.source);Re.set(t,e.locale),qt();let a=!1;return()=>{if(!a){if(a=!0,Re.delete(t),Re.size===0){Da(),Ht();return}Ge||(Da(),qt())}}}async function Xu(e,t,a){const n=yt("launcher_action",t),r={uiSpecs:[],actions:[]},i={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};a!==void 0&&(i.signal=a);const o=await fetch(n,i);if(!o.ok)throw new Error(`HTTP ${o.status}: ${o.statusText}`);const s={onEvent:c=>{const l=vt(c);if(l&&(l.type==="ui_spec"&&r.uiSpecs.push(l.spec),l.type==="ui_spec"&&l.spec.elements)){for(const g of Object.values(l.spec.elements))if(g.type==="ActionButton"&&g.props?.action){const d=g.props.action;r.actions.push(d)}}}};return a!==void 0&&(s.signal=a),await bt(o,s),r}function ai(e){const t=document.createElement("div");t.className="gengage-qna-buttons gds-toolbar",t.dataset.gengagePart="qna-button-row",t.setAttribute("role","group"),t.setAttribute("aria-label",e.quickQuestionsAriaLabel??"Quick questions"),e.orientation==="vertical"&&(t.style.flexDirection="column");for(const a of e.actions){const n=document.createElement("button");n.className="gengage-qna-button gds-chip",n.dataset.gengagePart="qna-quick-question",n.textContent=a.title,n.type="button",n.addEventListener("click",()=>{const r={title:a.title,type:a.type};a.payload!==void 0&&(r.payload=a.payload),e.onAction(r)}),t.appendChild(n)}if(e.ctaText||e.onOpenChat){const a=document.createElement("button");a.className="gengage-qna-cta gds-btn gds-btn-secondary",a.dataset.gengagePart="qna-cta",a.textContent=e.ctaText??e.defaultCtaText??"Ask something else",a.type="button",a.addEventListener("click",()=>{e.onOpenChat?.()}),t.appendChild(a)}return t}function em(e){const t=document.createElement("div");t.className="gengage-qna-input-wrapper",t.dataset.gengagePart="qna-input-wrapper";const a=document.createElement("div");a.className="gengage-qna-input-combo",a.dataset.gengagePart="qna-input-combo";const n=document.createElement("input");n.type="text",n.className="gengage-qna-input",n.dataset.gengagePart="qna-input",n.setAttribute("aria-label",e.askQuestionAriaLabel??"Ask a question");const r=Array.isArray(e.placeholders)?e.placeholders:e.placeholders?[e.placeholders]:[e.defaultInputPlaceholder??"Ask a question..."];let i=0,o=r[0]??"";n.placeholder=o;let s=null,c=null,l=!1;const g=()=>{s&&clearInterval(s),s=null,c&&clearTimeout(c),c=null,n.classList.remove("gengage-qna-input--fade")},d=()=>r.length>1&&!l&&n.value.trim().length===0,h=()=>{g(),d()&&(s=setInterval(()=>{d()&&(n.classList.add("gengage-qna-input--fade"),c=setTimeout(()=>{i=(i+1)%r.length,o=r[i]??"",n.placeholder=o,n.classList.remove("gengage-qna-input--fade")},180))},3e3))},u=document.createElement("div");u.className="gengage-qna-input-actions",u.dataset.gengagePart="qna-input-actions";const f=document.createElement("button");f.className="gengage-qna-icon-btn gengage-qna-clear gengage-qna-icon-btn--hidden",f.type="button",f.dataset.gengagePart="qna-clear",f.setAttribute("aria-label","Clear question"),f.innerHTML='<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M18 6L6 18" /><path d="M6 6L18 18" /></svg>';const p=document.createElement("button");p.className="gengage-qna-icon-btn gengage-qna-send gengage-qna-icon-btn--hidden",p.type="button",p.dataset.gengagePart="qna-send",p.setAttribute("aria-label",e.sendQuestionAriaLabel??"Send question"),p.disabled=!0,p.innerHTML=`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M22 2L11 13" /><path d="M22 2L15 22L11 13L2 9L22 2Z" /></svg><span class="gengage-qna-sr-only">${e.ctaLabel??e.sendButtonText??"Ask"}</span>`;const m=()=>{const C=n.value.trim().length>0;f.classList.toggle("gengage-qna-icon-btn--hidden",!C),p.classList.toggle("gengage-qna-icon-btn--hidden",!C),p.classList.toggle("gengage-qna-send--active",C),p.disabled=!C},b=()=>{const C=n.value.trim();C&&(e.onSubmit({title:C,type:"user_message",payload:C}),n.value="",m(),h())};return f.addEventListener("click",()=>{n.value="",m(),n.focus({preventScroll:!0})}),p.addEventListener("click",b),n.addEventListener("focus",()=>{l=!0,g(),n.placeholder=""}),n.addEventListener("blur",()=>{l=!1,n.value.trim().length===0&&(n.placeholder=o),h()}),n.addEventListener("input",()=>{if(m(),n.value.trim().length>0){g();return}n.placeholder=l?"":o,h()}),n.addEventListener("keydown",C=>{C.key==="Enter"&&(C.preventDefault(),b()),C.key==="Escape"&&n.value.length>0&&(n.value="",m(),h())}),u.appendChild(f),u.appendChild(p),a.appendChild(n),a.appendChild(u),t.appendChild(a),m(),h(),t._cleanup=()=>{g()},t}function jt(e,t){if(!e||typeof e!="object")return null;const a=e,n=a.type;if(typeof n!="string"||n.length===0)return null;const r=a.title,i=a.payload,o=typeof r=="string"&&r.length>0?r:t;if(!o)return null;const s={title:o,type:n};return i!==void 0&&(s.payload=i),s}function ni(e){const t={title:e.title,type:e.type};return e.payload!==void 0&&(t.payload=e.payload),t}function ri(e,t){const a=[],n=e.props?.actions;if(Array.isArray(n))for(const o of n){const s=jt(o);s&&a.push(s)}const r=e.props?.buttons;if(Array.isArray(r))for(const o of r){if(!o||typeof o!="object")continue;const s=o,c=typeof s.label=="string"?s.label:void 0,l=jt(s.action,c);l&&a.push(l)}if(e.children)for(const o of e.children){const s=t.elements[o];if(!s||s.type!=="ActionButton")continue;const c=typeof s.props?.label=="string"?s.props.label:void 0,l=jt(s.props?.action,c);l&&a.push(l)}const i=new Set;return a.filter(o=>i.has(o.title)?!1:(i.add(o.title),!0))}var ii={ButtonRow:({element:e,spec:t,context:a})=>{const n=ri(e,t).map(ni),r=e.props?.orientation,i={actions:n,onAction:a.onAction,defaultCtaText:a.i18n.defaultCtaText,quickQuestionsAriaLabel:a.i18n.quickQuestionsAriaLabel};return a.onOpenChat!==void 0&&(i.onOpenChat=a.onOpenChat),a.ctaText!==void 0&&(i.ctaText=a.ctaText),(r==="horizontal"||r==="vertical")&&(i.orientation=r),ai(i)},ActionButtons:({element:e,spec:t,context:a})=>{const n={actions:ri(e,t).map(ni),onAction:a.onAction,defaultCtaText:a.i18n.defaultCtaText,quickQuestionsAriaLabel:a.i18n.quickQuestionsAriaLabel};return a.onOpenChat!==void 0&&(n.onOpenChat=a.onOpenChat),a.ctaText!==void 0&&(n.ctaText=a.ctaText),ai(n)},ActionButton:({element:e,context:t})=>{const a=document.createElement("button");a.className="gengage-qna-button gds-chip",a.type="button",a.dataset.gengagePart="qna-action-button";const n=e.props?.label;typeof n=="string"?a.textContent=n:a.textContent=t.i18n.defaultCtaText;const r=jt(e.props?.action,typeof n=="string"?n:void 0);return r&&a.addEventListener("click",()=>t.onAction(r)),a},TextInput:({element:e,context:t})=>{const a=e.props?.placeholder,n=typeof a=="string"||Array.isArray(a)?a:t.inputPlaceholder,r=typeof e.props?.ctaLabel=="string"?e.props.ctaLabel:void 0,i={onSubmit:t.onAction,askQuestionAriaLabel:t.i18n.askQuestionAriaLabel,defaultInputPlaceholder:t.i18n.defaultInputPlaceholder,sendButtonText:t.i18n.sendButton,sendQuestionAriaLabel:t.i18n.sendQuestionAriaLabel};return n!==void 0&&(i.placeholders=n),r!==void 0&&(i.ctaLabel=r),em(i)},QuestionHeading:({element:e,context:t})=>{const a=document.createElement("h3");a.className="gengage-qna-heading",a.dataset.gengagePart="qna-heading";const n=e.props?.text,r=t.headingTitleOverride;return a.textContent=typeof r=="string"&&r.trim().length>0?r:typeof n=="string"?n:"",a},ProductCard:()=>null},oi=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function tm(){return{...ii}}function am(e,t,a=ii,n=oi){return Yt({spec:e,context:t,registry:a,containerClassName:"gengage-qna-uispec",unknownRenderer:n})}function nm(e){if(!e)return;const t=e.extra;if(t&&typeof t=="object"&&!Array.isArray(t)){const n=t.visible_skus??t.visibleSkus;if(Array.isArray(n)){const r=n.filter(i=>typeof i=="string"&&i.trim().length>0).map(i=>i.trim()).slice(0,200);if(r.length>0)return r}}const a=typeof e.sku=="string"&&e.sku.trim()?e.sku.trim():void 0;return a?[a]:void 0}function si(e,t){if(!e)return null;const a=e.action;if(!a||typeof a!="object")return null;const n=a,r=n.type;if(typeof r!="string"||r.length===0)return null;const i=n.title,o=typeof i=="string"&&i.length>0?i:typeof t=="string"&&t.length>0?t:"";if(!o)return null;const s=n.payload,c={title:o,type:r};return s!==void 0&&(c.payload=s),c}function rm(e,t){const a=e.elements[e.root];if(!a)return!1;const n=r=>{if(r.type!=="ActionButton")return!1;const i=r.props;if(!i||typeof i!="object")return!1;const o=typeof i.label=="string"?i.label:void 0;return o===t?!0:si(i,o)?.title===t};if(a.type==="ActionButton")return n(a);if(a.children)for(const r of a.children){const i=e.elements[r];if(i&&n(i))return!0}if(a.type==="ActionButtons"&&Array.isArray(a.props?.buttons)){for(const r of a.props.buttons)if(r?.label===t||r?.action?.title===t)return!0}return!1}var ci=0;function li(){return ci+=1,`gengage-merge-${ci}`}function im(e,t){const a=e.elements[e.root];if(!a||a.type!=="ButtonRow")return;const n=li();e.elements[n]={type:"ActionButton",props:{label:t.title,action:{title:t.title,type:t.type,...t.payload!==void 0?{payload:t.payload}:{}}}},a.children=a.children?[n,...a.children]:[n]}function om(e,t){const a=e.elements[e.root];if(!a||a.type!=="ActionButtons")return;const n=li();e.elements[n]={type:"ActionButton",props:{label:t.title,action:{title:t.title,type:t.type,...t.payload!==void 0?{payload:t.payload}:{}}}},a.children=a.children?[n,...a.children]:[n];const r=a.props?.buttons??[],i={label:t.title,action:{title:t.title,type:t.type,...t.payload!==void 0?{payload:t.payload}:{}}};a.props={...a.props,buttons:[i,...r]}}function sm(e){const t={},a=[];for(let n=0;n<e.length;n++){const r=e[n],i=`action-${n}`;a.push(i),t[i]={type:"ActionButton",props:{label:r.title,action:{title:r.title,type:r.type,...r.payload!==void 0?{payload:r.payload}:{}}}}}return t.root={type:"ButtonRow",children:a},{root:"root",elements:t}}function cm(e){return e.find(t=>{const a=t.elements[t.root];return a?.type==="ActionButtons"||a?.type==="ButtonRow"})}function di(e,t){const a=e.productContextQuickPillLabel,n={text:a};return t&&t.length>0&&(n.sku_list=t),{title:a,type:"user_message",payload:n}}function lm(e,t,a){const n=a?.skuList,r=[],i=[];for(const c of e){const l=c.elements[c.root];if(l?.type==="ActionButton"){const g=l.props;if(si(g,typeof g?.label=="string"?g.label:void 0)?.type==="findSimilar"){r.push(di(t,n));continue}}i.push(c)}if(r.length===0)return e;const o=di(t,n),s=cm(i);if(!s)return[...i,sm([o])];if(!rm(s,o.title)){const c=s.elements[s.root];c?.type==="ActionButtons"?om(s,o):c?.type==="ButtonRow"&&im(s,o)}return i}var gi={quickQuestionsAriaLabel:"Hızlı sorular",askQuestionAriaLabel:"Soru sorun",defaultInputPlaceholder:"Bir soru sorun...",sendButton:"Sor",sendQuestionAriaLabel:"Soruyu gönder",defaultCtaText:"Başka bir şey sor",redirectingToChat:"Sohbete yönlendiriliyor...",productContextQuickPillLabel:"Bu ürün hakkında ne bilmeliyim?"},dm={quickQuestionsAriaLabel:"Quick questions",askQuestionAriaLabel:"Ask a question",defaultInputPlaceholder:"Ask a question...",sendButton:"Ask",sendQuestionAriaLabel:"Send question",defaultCtaText:"Ask something else",redirectingToChat:"Redirecting to chat...",productContextQuickPillLabel:"What should I know about this product?"};function gm(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function pm(e){return gm(e)==="en"?dm:gi}var hm=class extends ft{constructor(...e){super(...e),this._abortController=null,this._debounceTimer=null,this._contentEl=null,this._i18n=gi,this._actionHandler=this._handleAction.bind(this),this._openChatHandler=this._handleOpenChat.bind(this)}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-qna-container",this._contentEl.dataset.gengagePart="qna-container",this.root.appendChild(this._contentEl);const t=e.pageContext?.sku;t&&(this._lastSku=t,await this._fetchAndRender(t)),Pt("qna")}onUpdate(e){const t=e.sku;!t||t===this._lastSku||(this._debounceTimer&&clearTimeout(this._debounceTimer),this._debounceTimer=setTimeout(()=>{this._debounceTimer=null,this._lastSku=t,this._fetchAndRender(t)},50))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.2s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._debounceTimer&&(clearTimeout(this._debounceTimer),this._debounceTimer=null),this._contentEl&&(this._cleanupTextInputTimers(),this._contentEl.remove(),this._contentEl=null)}_abort(){this._abortController?.abort(),this._abortController=null}_resolvedQnaHeaderTitle(){const e=this.config.headerTitle??this.config.headingTitle;if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}_cleanupTextInputTimers(){if(!this._contentEl)return;const e=this._contentEl.querySelectorAll(".gengage-qna-input-wrapper");for(const t of e)t._cleanup?.()}async _fetchAndRender(e){if(this._abort(),this._abortController=new AbortController,!this._contentEl)return;this._cleanupTextInputTimers(),this._contentEl.innerHTML="";const t=this._createLoadingIndicator();this._contentEl.appendChild(t);const a={middlewareUrl:this.config.middlewareUrl},n=crypto.randomUUID(),r=Date.now(),i=ti({source:"qna",locale:this.config.locale});this.track(Qt(this.analyticsContext(),{endpoint:"launcher_action",request_id:n,widget:"qna"}));try{const o={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e,locale:this.config.locale??"tr"},s=this.config.pageContext?.pageType;s!==void 0&&(o.page_type=s);const c=await Xu(o,a,this._abortController.signal);if(this.track(ut(this.analyticsContext(),{request_id:n,latency_ms:Date.now()-r,chunk_count:c.actions.length,widget:"qna"})),this.track(ea(this.analyticsContext(),{message_count:c.actions.length,history_ref:n,redaction_level:"none",widget:"qna"})),!this._contentEl)return;this._contentEl.innerHTML="";const l=document.createElement("div");l.className="gengage-qna-panel gds-panel",l.dataset.gengagePart="qna-panel",this._contentEl.appendChild(l);const g=this._specIncludesType(c.uiSpecs,"QuestionHeading"),d=this._resolvedQnaHeaderTitle()??(this.config.showStaticQuestion&&this.config.staticQuestionText?this.config.staticQuestionText:void 0);if(!g&&d){const v=document.createElement("h3");v.className="gengage-qna-heading",v.textContent=d,l.appendChild(v)}const h=this.config.inputPlaceholder;let u;if(h!==!0)u=h??this._i18n.defaultInputPlaceholder;else if(c.actions.length>0){const v=c.actions.filter(w=>w.type==="user_message"||w.title.includes("?")).map(w=>w.title);u=v.length>0?v:this._i18n.defaultInputPlaceholder}else u=this._i18n.defaultInputPlaceholder;const f={onAction:this._actionHandler,i18n:this._i18n},p=this._resolvedQnaHeaderTitle();p!==void 0&&(f.headingTitleOverride=p),this.config.hideButtonRowCta||(f.onOpenChat=this._openChatHandler,this.config.ctaText!==void 0&&(f.ctaText=this.config.ctaText)),u!==void 0&&(f.inputPlaceholder=u);const m=this._buildFallbackActionsSpec(c.actions),b=nm(this.config.pageContext),C=(c.uiSpecs.length>0?lm(c.uiSpecs,this._i18n,{skuList:b}):[m]).filter(v=>Object.keys(v.elements).length>0);for(const v of C){const w=this._renderUISpec(v,f);l.appendChild(w)}C.length>0&&At("qna"),this._specIncludesType(C,"TextInput")||this._insertStandaloneInputBeforePills(l,f,u)}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;if(ce("gengage:global:error",{source:"qna",code:"FETCH_ERROR",message:Ka(this.config.locale,o)}),this.track(Xt(this.analyticsContext(),{request_id:n,error_code:"FETCH_ERROR",error_message:o instanceof Error?o.message:String(o),widget:"qna"})),this._contentEl){this._cleanupTextInputTimers(),this._contentEl.innerHTML="";const s=document.createElement("div");s.className="gengage-qna-panel",this._contentEl.appendChild(s);const c=this.config.inputPlaceholder===!0?this._i18n.defaultInputPlaceholder:this.config.inputPlaceholder??this._i18n.defaultInputPlaceholder,l={onAction:this._actionHandler,i18n:this._i18n,onOpenChat:this._openChatHandler},g=this._resolvedQnaHeaderTitle();g!==void 0&&(l.headingTitleOverride=g),this.config.ctaText!==void 0&&(l.ctaText=this.config.ctaText),this._appendStandaloneInput(l,c,s)}}finally{i()}}_createLoadingIndicator(){const e=document.createElement("div");e.className="gengage-qna-loading";for(let t=0;t<3;t++){const a=document.createElement("div");a.className="gengage-qna-loading-dot",e.appendChild(a)}return e}_resolveI18n(e){return{...pm(e.locale),...e.i18n}}_resolveUISpecRegistry(){return Jt(tm(),this.config.renderer?.registry)}_renderUISpec(e,t){const a=this._resolveUISpecRegistry(),n=this.config.renderer?.unknownRenderer??oi,r=(o,s)=>am(o,s,a,n),i=this.config.renderer?.renderUISpec;return i?i(e,t,{registry:a,unknownRenderer:n,defaultRender:r}):r(e,t)}_specIncludesType(e,t){for(const a of e)for(const n of Object.values(a.elements))if(n.type===t)return!0;return!1}_buildFallbackActionsSpec(e){if(e.length===0)return{root:"root",elements:{}};const t={},a=[];for(let n=0;n<e.length;n++){const r=e[n],i=`action-${n}`;a.push(i),t[i]={type:"ActionButton",props:{label:r.title,action:{title:r.title,type:r.type,payload:r.payload}}}}return t.root={type:"ButtonRow",children:a},{root:"root",elements:t}}_insertStandaloneInputBeforePills(e,t,a){const n={root:"root",elements:{root:{type:"TextInput",props:{placeholder:a}}}},r=this._renderUISpec(n,t),i=r.querySelector(".gengage-qna-input-wrapper");if(!i)return;const o=e.querySelector(".gengage-qna-uispec"),s=o?.querySelector(":scope > .gengage-qna-buttons");if(o&&s)o.insertBefore(i,s);else if(o){const c=o.querySelector(":scope > .gengage-qna-heading");c?c.insertAdjacentElement("afterend",i):o.prepend(i)}else{e.appendChild(r);return}r.remove()}_appendStandaloneInput(e,t,a){if(!this._contentEl)return;const n={root:"root",elements:{root:{type:"TextInput",props:{placeholder:t}}}},r=this._renderUISpec(n,e);(a??this._contentEl).appendChild(r)}_handleAction(e){this._showTransitionIndicator(),ka(e.title,e.type),this.config.onActionSelected?.(e),setTimeout(()=>ce("gengage:qna:action",e),350)}_handleOpenChat(){this._showTransitionIndicator(),this.config.onOpenChat?.(),setTimeout(()=>ce("gengage:qna:open-chat",{}),350)}_showTransitionIndicator(){if(!this._contentEl)return;this._contentEl.querySelector(".gengage-qna-transition-indicator")?.remove(),this._contentEl.classList.add("gengage-qna--transitioning");const e=this._i18n.redirectingToChat??"Redirecting to chat...",t=document.createElement("div");t.className="gengage-qna-transition-indicator",t.textContent=e,(this._contentEl.querySelector(".gengage-qna-panel")??this._contentEl).appendChild(t),setTimeout(()=>{this._contentEl?.classList.remove("gengage-qna--transitioning"),t.remove()},600)}};function pi(e){const t=[];for(const a of Object.values(e))if(a.type==="ProductCard"&&a.props){const n=a.props.product??a.props;typeof n.sku=="string"&&typeof n.name=="string"&&t.push(n)}return t}function hi(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function um(e,t){const a=[],n={onEvent:r=>{const i=vt(r);!i||i.type!=="ui_spec"||a.push(...pi(i.spec.elements))}};return t!==void 0&&(n.signal=t),await bt(e,n),a}async function mm(e,t,a){const n=yt("similar_products",t),r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};a!==void 0&&(r.signal=a);const i=await fetch(n,r);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(hi(i))return um(i,a);const o=await i.text();if(!o)throw new Error("Empty response body from similar_products endpoint");try{return ps(JSON.parse(o))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function fm(e,t){const a=[];let n=null;const r={onEvent:i=>{const o=vt(i);if(o){if(o.type==="metadata"&&o.meta){const s=o.meta.group_name;if(typeof s=="string"){n={name:s,products:[]};const c=o.meta.highlight;typeof c=="string"&&(n.highlight=c),a.push(n)}}o.type==="ui_spec"&&n&&n.products.push(...pi(o.spec.elements))}}};return t!==void 0&&(r.signal=t),await bt(e,r),a}async function bm(e,t,a){const n=yt("product_groupings",t),r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};a!==void 0&&(r.signal=a);const i=await fetch(n,r);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(hi(i))return fm(i,a);const o=await i.text();if(!o)return[];try{return hs(JSON.parse(o))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}function ui(e){const{product:t,index:a,discountType:n,onClick:r,onAddToCart:i,renderCard:o}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,a);if(p)return p}if(o){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive",p.dataset.gengagePart="simrel-product-card",p.innerHTML=_e(o(t,a)),p.addEventListener("click",m=>{m.target.closest(".gengage-simrel-atc")||m.target.closest(".gengage-chat-product-card-atc")||r(t)}),p}const l=document.createElement("article");l.className="gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive",l.dataset.gengagePart="simrel-product-card",t.inStock===!1&&l.classList.add("gengage-simrel-card--out-of-stock"),l.setAttribute("role","listitem"),l.dataset.sku=t.sku;const g=document.createElement("div");if(g.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",g.dataset.gengagePart="simrel-product-card-image",t.imageUrl&&ye(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",Se(p),g.appendChild(p)}if(n==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${ma(t.discountPercent)}`,g.appendChild(p)}l.appendChild(g);const d=document.createElement("div");if(d.className="gengage-simrel-card-info gengage-chat-product-card-body",d.dataset.gengagePart="simrel-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,d.appendChild(p)}const h=document.createElement("div");if(h.className="gengage-simrel-card-name gengage-chat-product-card-name",h.textContent=t.name,h.title=t.name,d.appendChild(h),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(fa(t.rating)),t.reviewCount!=null){const m=document.createElement("span");m.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",m.textContent=` (${t.reviewCount})`,p.appendChild(m)}d.appendChild(p)}const u=document.createElement("div");if(u.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(n==="strike-through"||!n)){const p=document.createElement("span");p.className="gengage-simrel-card-price-original gengage-chat-product-card-original-price",p.textContent=q(t.originalPrice,c),u.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=q(t.price,c),u.appendChild(p)}d.appendChild(u),l.appendChild(d);const f=document.createElement("button");if(f.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",f.type="button",f.dataset.gengagePart="simrel-product-card-cta",f.textContent=s?.ctaLabel??"View",f.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),r(t)}),l.appendChild(f),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=s?.outOfStockLabel??"Out of Stock",l.appendChild(p)}else if(t.cartCode){const p=document.createElement("button");p.className="gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary",p.type="button",p.textContent=s?.addToCartButton??"Add to Cart",p.addEventListener("click",m=>{m.preventDefault(),m.stopPropagation(),i({sku:t.sku,quantity:1,cartCode:t.cartCode})}),l.appendChild(p)}return l.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||r(t)}),l}function mi(e){const t=document.createElement("div");t.className="gengage-simrel-grid",t.setAttribute("role","list"),t.setAttribute("aria-label",e.i18n?.similarProductsAriaLabel??"Similar products"),e.columns&&t.style.setProperty("--gengage-simrel-columns",String(e.columns));for(let a=0;a<e.products.length;a++){const n={product:e.products[a],index:a,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(n.i18n=e.i18n),e.discountType!==void 0&&(n.discountType=e.discountType),e.renderCard!==void 0&&(n.renderCard=e.renderCard),e.renderCardElement!==void 0&&(n.renderCardElement=e.renderCardElement);const r=ui(n);t.appendChild(r)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var vm=0;function ym(e){const t=vm++,a=document.createElement("div");if(a.className="gengage-simrel-groups",a.dataset.gengagePart="simrel-groups",e.groups.length===0)return a.style.display="none",a.dataset.empty="true",a;const n=document.createElement("div");n.className="gengage-simrel-tabs gds-toolbar",n.dataset.gengagePart="simrel-tab-bar",n.setAttribute("role","tablist");const r=[],i=[],o=p=>{const m={products:p.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(m.i18n=e.i18n),e.discountType!==void 0&&(m.discountType=e.discountType),e.renderCard!==void 0&&(m.renderCard=e.renderCard),e.renderCardElement!==void 0&&(m.renderCardElement=e.renderCardElement),e.columns!==void 0&&(m.columns=e.columns),m},s=p=>{for(let v=0;v<r.length;v++){const w=v===p;r[v].classList.toggle("gengage-simrel-tab--active",w),r[v].setAttribute("aria-selected",String(w)),r[v].tabIndex=w?0:-1}const m=e.groups[p],b=i[p];b.innerHTML="";const C=mi(o(m));b.appendChild(C);for(let v=0;v<i.length;v++){const w=v===p;i[v].style.display=w?"":"none",i[v].tabIndex=w?0:-1}};for(let p=0;p<e.groups.length;p++){const m=e.groups[p],b=`gengage-simrel-tab-${t}-${p}`,C=`gengage-simrel-panel-${t}-${p}`,v=document.createElement("button");v.className="gengage-simrel-tab gds-tab",v.type="button",v.dataset.gengagePart="simrel-tab",v.id=b,v.textContent=m.name,v.setAttribute("role","tab"),v.setAttribute("aria-controls",C),v.setAttribute("aria-selected",String(p===0)),v.tabIndex=p===0?0:-1,p===0&&v.classList.add("gengage-simrel-tab--active"),v.addEventListener("click",()=>s(p)),v.addEventListener("keydown",k=>{let A=-1;k.key==="ArrowRight"||k.key==="ArrowDown"?A=(p+1)%e.groups.length:k.key==="ArrowLeft"||k.key==="ArrowUp"?A=(p-1+e.groups.length)%e.groups.length:k.key==="Home"?A=0:k.key==="End"&&(A=e.groups.length-1),A>=0&&(k.preventDefault(),s(A),r[A].focus())}),r.push(v),n.appendChild(v);const w=document.createElement("div");w.className="gengage-simrel-tab-panel",w.dataset.gengagePart="simrel-tab-panel",w.id=C,w.setAttribute("role","tabpanel"),w.setAttribute("aria-labelledby",b),w.tabIndex=p===0?0:-1,p!==0&&(w.style.display="none"),i.push(w)}const c=document.createElement("button");c.type="button",c.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left",c.setAttribute("aria-label",e.i18n?.scrollTabsLeft??"Scroll tabs left"),c.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>';const l=document.createElement("button");l.type="button",l.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--right",l.setAttribute("aria-label",e.i18n?.scrollTabsRight??"Scroll tabs right"),l.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>';const g=200;c.addEventListener("click",()=>{n.scrollBy({left:-g,behavior:"smooth"})}),l.addEventListener("click",()=>{n.scrollBy({left:g,behavior:"smooth"})});const d=()=>{const p=n.scrollLeft<=4,m=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;c.style.display=p?"none":"",l.style.display=m?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!m),n.classList.toggle("gengage-simrel-tabs--peek-left",!p)};n.addEventListener("scroll",d,{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(d).observe(n),c.style.display="none",l.style.display="none",requestAnimationFrame(d);const h=document.createElement("div");h.className="gengage-simrel-tabs-wrapper",h.appendChild(c),h.appendChild(n),h.appendChild(l),a.appendChild(h);const u=i[0],f=mi(o(e.groups[0]));u.appendChild(f);for(const p of i)a.appendChild(p);return a}function fi(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const a={sku:t.sku,name:t.name,url:t.url},n=t.imageUrl;typeof n=="string"&&(a.imageUrl=n);const r=t.price;typeof r=="string"&&(a.price=r);const i=t.originalPrice;typeof i=="string"&&(a.originalPrice=i);const o=t.discountPercent;typeof o=="number"&&(a.discountPercent=o);const s=t.brand;typeof s=="string"&&(a.brand=s);const c=t.rating;typeof c=="number"&&(a.rating=c);const l=t.reviewCount;typeof l=="number"&&(a.reviewCount=l);const g=t.cartCode;typeof g=="string"&&(a.cartCode=g);const d=t.inStock;typeof d=="boolean"&&(a.inStock=d);const h=t.extras;return h!=null&&typeof h=="object"&&(a.extras=h),a}function _m(e){if(!e||typeof e!="object")return null;const t=e,a=t.title,n=t.type;if(typeof a!="string"||typeof n!="string")return null;const r={title:a,type:n};return t.payload!==void 0&&(r.payload=t.payload),r}var bi={ProductGrid:({element:e,renderElement:t,context:a})=>{const n=document.createElement("div");n.className="gengage-simrel-grid",n.setAttribute("role","list");const r=e.props?.columns;let i;typeof r=="number"&&Number.isFinite(r)&&r>0?i=Math.floor(r):typeof a.gridColumns=="number"&&Number.isFinite(a.gridColumns)&&a.gridColumns>0&&(i=Math.floor(a.gridColumns)),i!==void 0&&n.style.setProperty("--gengage-simrel-columns",String(i));for(const o of e.children??[]){const s=t(o);s&&n.appendChild(s)}if(n.children.length===0){const o=document.createElement("div");o.className="gengage-simrel-empty",o.textContent=a.i18n.emptyStateMessage,n.appendChild(o)}return n},ProductCard:({element:e,context:t})=>{const a=fi(e.props?.product??e.props);if(!a)return null;const n=e.props?.index,r=typeof n=="number"&&Number.isFinite(n)?n:0,i=e.props?.discountType,o=i==="strike-through"||i==="badge"?i:t.discountType,s={product:a,index:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return o!==void 0&&(s.discountType=o),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),ui(s)},GroupTabs:({element:e,context:t})=>{const a=e.props?.groups;if(!Array.isArray(a))return null;const n=[];for(const o of a){if(!o||typeof o!="object")continue;const s=o;if(typeof s.name!="string")continue;const c=[];if(Array.isArray(s.products))for(const g of s.products){const d=fi(g);d&&c.push(d)}const l={name:s.name,products:c};typeof s.highlight=="string"&&(l.highlight=s.highlight),n.push(l)}const r={groups:n,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},i=e.props?.columns;return typeof i=="number"&&Number.isFinite(i)&&i>0?r.columns=Math.floor(i):typeof t.gridColumns=="number"&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(r.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(r.discountType=t.discountType),t.renderCard!==void 0&&(r.renderCard=t.renderCard),t.renderCardElement!==void 0&&(r.renderCardElement=t.renderCardElement),ym(r)},EmptyState:({element:e,context:t})=>{const a=document.createElement("div");a.className="gengage-simrel-empty";const n=e.props?.message;return a.textContent=typeof n=="string"?n:t.i18n.emptyStateMessage,a},AddToCartButton:({element:e,context:t})=>{const a=e.props?.sku,n=e.props?.cartCode;if(typeof a!="string"||typeof n!="string")return null;const r=document.createElement("button");r.className="gengage-simrel-atc gengage-chat-product-card-cta",r.type="button";const i=e.props?.label;return r.textContent=typeof i=="string"?i:t.i18n.addToCartButton,r.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),t.onAddToCart({sku:a,quantity:1,cartCode:n})}),r},QuickActions:({element:e,context:t})=>{const a=document.createElement("div");a.className="gengage-simrel-quick-actions";const n=e.props?.actions;if(!Array.isArray(n)||!t.onAction)return a;for(const r of n){if(!r||typeof r!="object")continue;const i=r,o=i.label,s=_m(i.action);if(typeof o!="string"||!s)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=o,c.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),t.onAction?.(s)}),a.appendChild(c)}return a}},vi=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function xm(){return{...bi}}function wm(e,t,a=bi,n=vi){return Yt({spec:e,context:t,registry:a,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var yi={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",ctaLabel:"İncele",outOfStockLabel:"Stokta Yok",decreaseLabel:"Azalt",increaseLabel:"Artır",errorLoadingMessage:"Benzer ürünler yüklenemedi.",retryButtonText:"Tekrar dene",priceSuffix:" TL",scrollTabsLeft:"Sola kaydır",scrollTabsRight:"Sağa kaydır"},km={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",decreaseLabel:"Decrease",increaseLabel:"Increase",errorLoadingMessage:"Could not load similar products.",retryButtonText:"Try again",priceSuffix:"",scrollTabsLeft:"Scroll tabs left",scrollTabsRight:"Scroll tabs right"};function Cm(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Sm(e){return Cm(e)==="en"?km:yi}var Em=class extends ft{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=yi}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-simrel-container",this._contentEl.dataset.gengagePart="simrel-container";const t=this._clampGridColumns(e.gridColumns);t!==void 0&&this._contentEl.style.setProperty("--gengage-simrel-columns",String(t)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),Pt("simrel")}onUpdate(e){const t=e.sku;!t||t===this._lastSku&&this._lastResultCount!==0||(this._lastSku=t,this._fetchAndRender(t))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.3s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&(this._contentEl.remove(),this._contentEl=null)}_handleProductClick(e){const t={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(t.imageUrl=e.imageUrl),e.price!==void 0&&(t.price=e.price),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(t.discountPercent=e.discountPercent),e.brand!==void 0&&(t.brand=e.brand),e.rating!==void 0&&(t.rating=e.rating),e.reviewCount!==void 0&&(t.reviewCount=e.reviewCount),e.cartCode!==void 0&&(t.cartCode=e.cartCode),e.inStock!==void 0&&(t.inStock=e.inStock),this.config.onProductClick?.(t)===!1)return;Ca(e.sku,e.name);const a=this.config.session?.sessionId??null;ce("gengage:similar:product-click",{sku:e.sku,url:e.url,sessionId:a}),this.config.onProductNavigate?.(e.url,e.sku,a)}_handleAddToCart(e){Hn(e.sku,e.quantity),this.config.onAddToCart?.(e),ce("gengage:similar:add-to-cart",e),this.track(Ua(this.analyticsContext(),{attribution_source:"simrel",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??"TRY",line_items:e.quantity,sku:e.sku}))}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}async _fetchAndRender(e){this._abort(),this._abortController=new AbortController;const t=this._abortController.signal,a=setTimeout(()=>this._abortController?.abort(),1e4);if(t.addEventListener("abort",()=>clearTimeout(a)),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const n=document.createElement("div");n.className="gengage-simrel-loading",n.dataset.gengagePart="simrel-loading";const r=document.createElement("div");r.className="gengage-simrel-spinner",r.dataset.gengagePart="simrel-loading-spinner",n.appendChild(r),this._contentEl.appendChild(n);const i={middlewareUrl:this.config.middlewareUrl},o=crypto.randomUUID(),s=Date.now(),c=ti({source:"simrel",locale:this.config.locale});this.track(Qt(this.analyticsContext(),{endpoint:"similar_products",request_id:o,widget:"simrel"}));try{const l={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e};this.config.domain!==void 0&&(l.domain=this.config.domain);const g=await mm(l,i,t);if(this._lastResultCount=g.length,!this._contentEl)return;if(this._contentEl.innerHTML="",g.length>0)try{const d=g.map(f=>f.sku),h=new Map(g.map(f=>[f.sku,f])),u=(await bm({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},i,t)).map(f=>({...f,products:f.products.map(p=>({...h.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(f=>f.products.length>0);if(u.length>0&&this._contentEl){const f=this._buildGroupsSpec(u),p=this._renderUISpec(f);this._contentEl.appendChild(p),At("simrel"),this.track(ut(this.analyticsContext(),{request_id:o,latency_ms:Date.now()-s,chunk_count:u.reduce((m,b)=>m+b.products.length,0),widget:"simrel"})),this.track(ea(this.analyticsContext(),{message_count:u.reduce((m,b)=>m+b.products.length,0),history_ref:o,redaction_level:"none",widget:"simrel"}));return}}catch{}if(this._isSuperseded(t))return;if(this._contentEl){const d=this._buildProductsSpec(g),h=this._renderUISpec(d);this._contentEl.appendChild(h)}g.length>0&&At("simrel"),this.track(ut(this.analyticsContext(),{request_id:o,latency_ms:Date.now()-s,chunk_count:g.length,widget:"simrel"})),this.track(ea(this.analyticsContext(),{message_count:g.length,history_ref:o,redaction_level:"none",widget:"simrel"}))}catch(l){if(l instanceof DOMException&&l.name==="AbortError"&&this._isSuperseded(t))return;if(ce("gengage:global:error",{source:"simrel",code:"FETCH_ERROR",message:Ka(this.config.locale,l)}),this.track(Xt(this.analyticsContext(),{request_id:o,error_code:"FETCH_ERROR",error_message:l instanceof Error?l.message:String(l),widget:"simrel"})),this._contentEl){this._contentEl.innerHTML="";const g=document.createElement("div");g.className="gengage-simrel-error";const d=document.createElement("span");d.textContent=this._i18n.errorLoadingMessage,g.appendChild(d);const h=document.createElement("button");h.className="gengage-simrel-retry",h.textContent=this._i18n.retryButtonText,h.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),g.appendChild(h),this._contentEl.appendChild(g)}}finally{c()}}_clampGridColumns(e){if(!(e===void 0||typeof e!="number"||!Number.isFinite(e)))return Math.max(1,Math.min(12,Math.floor(e)))}_resolveI18n(e){return{...Sm(e.locale),...e.i18n}}_resolveUISpecRegistry(){return Jt(xm(),this.config.renderer?.registry)}_buildRenderContext(){const e=this.config.renderCard,t={onClick:n=>this._handleProductClick(n),onAddToCart:n=>this._handleAddToCart(n),i18n:this._i18n};this.config.discountType!==void 0&&(t.discountType=this.config.discountType),e!==void 0&&(t.renderCard=e),this.config.renderCardElement!==void 0&&(t.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(t.pricing=this.config.pricing);const a=this._clampGridColumns(this.config.gridColumns);return a!==void 0&&(t.gridColumns=a),t}_renderUISpec(e){const t=this._resolveUISpecRegistry(),a=this._buildRenderContext(),n=this.config.renderer?.unknownRenderer??vi,r=(o,s)=>wm(o,s,t,n),i=this.config.renderer?.renderUISpec;return i?i(e,a,{registry:t,unknownRenderer:n,defaultRender:r}):r(e,a)}_buildProductsSpec(e){const t={},a=[];for(let i=0;i<e.length;i++){const o=e[i],s=`product-${i}`;a.push(s),t[s]={type:"ProductCard",props:{product:o,index:i,discountType:this.config.discountType}}}const n={layout:"grid"},r=this._clampGridColumns(this.config.gridColumns);return r!==void 0&&(n.columns=r),t.root={type:"ProductGrid",props:n,children:a},{root:"root",elements:t}}_buildGroupsSpec(e){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:e}}}}}},_i={findSimilarLabel:"Benzerlerini Bul"},Tm={findSimilarLabel:"Find Similar"};function Pm(e,t){return t?.findSimilarLabel?t.findSimilarLabel:(e??"tr").toLowerCase().startsWith("en")?Tm.findSimilarLabel:_i.findSimilarLabel}function Zt(e){const t=typeof e.sku=="string"&&e.sku.length>0?e.sku:void 0,a=typeof e.pageContext?.sku=="string"&&e.pageContext.sku.length>0?e.pageContext.sku:void 0;return t??a}var Am=class extends ft{constructor(...e){super(...e),this._button=null,this._label=_i.findSimilarLabel}async onInit(e){this._label=Pm(e.locale,e.i18n),this.root.classList.add("gengage-simbut-root"),window.getComputedStyle(this.root).position==="static"&&(this.root.style.position="relative");const t=document.createElement("button");t.type="button",t.className="gengage-chat-find-similar-pill",t.textContent=this._label,this._button=t;const a=()=>{t.disabled=!(Zt(this.config)&&(this.config.onFindSimilar||this.config.chat))};t.addEventListener("click",n=>{n.stopPropagation();const r=Zt(this.config);if(!r)return;const i=this.config.imageUrl,o=typeof i=="string"&&pe(i)?i:void 0;if(ka(this._label,"findSimilar"),Un(r),this.config.onFindSimilar){this.config.onFindSimilar(o?{sku:r,imageUrl:o}:{sku:r});return}const s=this.config.chat;if(!s)return;const c={title:this._label,type:"findSimilar",payload:o?{sku:r,image_url:o}:{sku:r}};s.openWithAction(c,{sku:r})}),this.root.appendChild(t),a(),Pt("simbut")}onUpdate(e){if(!this._button)return;const t=!!Zt(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}hide(){this.isVisible&&(this.isVisible=!1,this._button&&(this._button.style.display="none"),this.onHide(),this.emit("hide"))}show(){this.isVisible||(this.isVisible=!0,this._button&&(this._button.style.display=""),this.onShow(),this.emit("show"))}_cleanupRoot(){}onShow(){}onHide(){}onDestroy(){this._button?.remove(),this._button=null}setChat(e){if(this.config.chat=e,this._button){const t=!!Zt(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}}},Vt=Be({enabled:We().default(!0)}),Lm=Be({chat:Ce().optional(),qna:Ce().optional(),simrel:Ce().optional(),simbut:Ce().optional()}),Im=Be({}),Nm=Ra(["none","x-api-key-header","bearer-header","body-api-key"]),zm=Be({mode:Nm.default("none"),key:Ce().optional(),headerName:Ce().optional(),bodyField:Ce().default("api_key")}),Mm=Be({enabled:We().default(!0),endpoint:Ce().default("/analytics"),auth:zm.default({mode:"none",bodyField:"api_key"}),fireAndForget:We().default(!0),useBeacon:We().default(!0),keepaliveFetch:We().default(!0),timeoutMs:Hr().int().positive().default(4e3),maxRetries:Hr().int().min(0).max(5).default(1)}),xi="__gengageWidgetsInit",Bm=Be({idempotencyKey:Ce().default(xi),requireDomReady:We().default(!0)}),Rm=Ra(["log-and-ignore","throw","delegate"]),Om=Be({unknownActionPolicy:Rm.default("log-and-ignore"),allowScriptCall:We().default(!1)}),uf=Be({version:Tu("1",{error:'version must be "1"'}),accountId:Ce({error:"accountId must be a non-empty string"}).min(1,{error:"accountId must be a non-empty string"}),middlewareUrl:Ce({error:'middlewareUrl must be a valid URL (e.g. "https://your-backend.example.com")'}).url({error:'middlewareUrl must be a valid URL (e.g. "https://your-backend.example.com")'}),locale:Ce().optional(),widgets:Be({chat:Vt.default({enabled:!0}),qna:Vt.default({enabled:!0}),simrel:Vt.default({enabled:!0}),simbut:Vt.default({enabled:!1})}),mounts:Lm.default({}),transport:Im.default({}),analytics:Mm.default({enabled:!0,endpoint:"/analytics",auth:{mode:"none",bodyField:"api_key"},fireAndForget:!0,useBeacon:!0,keepaliveFetch:!0,timeoutMs:4e3,maxRetries:1}),gtm:Bm.default({idempotencyKey:"__gengageWidgetsInit",requireDomReady:!0}),actionHandling:Om.default({unknownActionPolicy:"log-and-ignore",allowScriptCall:!1})}),Dm=`${xi}_overlay_`,Fm="#gengage-qna",$m="#gengage-simrel",Um="#gengage-simbut";function wi(){const e=window;return e.__gengageOverlayRegistry||(e.__gengageOverlayRegistry={instances:{},pending:{}}),e.__gengageOverlayRegistry}function Hm(e){const t={pageType:e.pageContext?.pageType??(e.sku!==void 0?"pdp":"other")},a=e.pageContext;return a?.sku!==void 0&&(t.sku=a.sku),a?.price!==void 0&&(t.price=a.price),a?.categoryTree!==void 0&&(t.categoryTree=a.categoryTree),a?.url!==void 0&&(t.url=a.url),a?.extra!==void 0&&(t.extra=a.extra),e.sku!==void 0&&(t.sku=e.sku),t}function qm(e,t){const a={...e,...t,pageType:t.pageType??e.pageType};return t.sku===void 0&&e.sku!==void 0&&(a.sku=e.sku),a}function Fa(e){return e instanceof HTMLElement||document.querySelector(e)?e:null}function ki(e){return e.idempotencyKey??`${Dm}${e.accountId}`}var jm=class{constructor(e,t){this.options=e,this.onDestroy=t,this._chat=null,this._qna=null,this._simrel=null,this._simbut=null,this._analyticsClient=null,this._offQnaWire=null,this._destroyed=!1,this._queue=Promise.resolve(),this._warnedQnaMountMissing=!1,this._warnedSimRelMountMissing=!1,this._warnedSimButMountMissing=!1,this._warnedSimButNoChat=!1,this.idempotencyKey=ki(e),this.session=ja(e.session),this._pageContext=Hm(e)}get chat(){return this._chat}get qna(){return this._qna}get simrel(){return this._simrel}get simbut(){return this._simbut}get analyticsClient(){return this._analyticsClient}async init(){window.gengage||(window.gengage={}),window.gengage.sessionId=this.session.sessionId,window.gengage.pageContext=this._pageContext,await this._initChat(),this.options.wireQnaToChat!==!1&&(this._offQnaWire=Ki()),await this._syncPdpWidgets(),window.gengage.overlay=this}openChat(e){this._chat?.open(e)}closeChat(){this._chat?.close()}async updateContext(e){this._destroyed||await this._enqueue(async()=>{this._pageContext=qm(this._pageContext,e),window.gengage||(window.gengage={}),window.gengage.pageContext=this._pageContext,this._chat?.update(e),this._qna?.update(e),this._simrel?.update(e),this._simbut?.update(e),await this._syncPdpWidgets()})}async updateSku(e,t="pdp"){await this.updateContext({sku:e,pageType:t})}destroy(){this._destroyed||(this._destroyed=!0,this._offQnaWire?.(),this._offQnaWire=null,this._chat?.destroy(),this._qna?.destroy(),this._simrel?.destroy(),this._simbut?.destroy(),this._chat=null,this._qna=null,this._simrel=null,this._simbut=null,window.gengage?.overlay===this&&delete window.gengage.overlay,this.onDestroy())}async _initChat(){if(this.options.chat?.enabled===!1)return;const e=this.options.middlewareUrl,t=this.options.chat?.productDetailsExtended??this.options.productDetailsExtended,a=this.options.chat?.isDemoWebsite??this.options.isDemoWebsite,n={accountId:this.options.accountId,middlewareUrl:e,session:this.session,pageContext:this._pageContext,variant:this.options.chat?.variant??"floating"};this.options.theme!==void 0&&(n.theme=this.options.theme),this.options.locale!==void 0&&(n.locale=this.options.locale),this.options.pricing!==void 0&&(n.pricing=this.options.pricing),this.options.chat?.mountTarget!==void 0&&(n.mountTarget=this.options.chat.mountTarget),this.options.chat?.pillLauncher!==void 0&&(n.pillLauncher=this.options.chat.pillLauncher),this.options.chat?.launcherImageUrl!==void 0?n.launcherImageUrl=this.options.chat.launcherImageUrl:this.options.chat?.launcherSvg!==void 0&&(n.launcherSvg=this.options.chat.launcherSvg),this.options.chat?.headerTitle!==void 0&&(n.headerTitle=this.options.chat.headerTitle),this.options.chat?.headerAvatarUrl!==void 0&&(n.headerAvatarUrl=this.options.chat.headerAvatarUrl),this.options.chat?.headerBadge!==void 0&&(n.headerBadge=this.options.chat.headerBadge),this.options.chat?.headerCartUrl!==void 0&&(n.headerCartUrl=this.options.chat.headerCartUrl),this.options.chat?.headerFavoritesToggle!==void 0&&(n.headerFavoritesToggle=this.options.chat.headerFavoritesToggle),this.options.chat?.onFavoritesClick!==void 0&&(n.onFavoritesClick=this.options.chat.onFavoritesClick),this.options.chat?.hideMobileLauncher!==void 0&&(n.hideMobileLauncher=this.options.chat.hideMobileLauncher),this.options.chat?.mobileBreakpoint!==void 0&&(n.mobileBreakpoint=this.options.chat.mobileBreakpoint),this.options.chat?.mobileInitialState!==void 0&&(n.mobileInitialState=this.options.chat.mobileInitialState),this.options.chat?.i18n!==void 0&&(n.i18n=this.options.chat.i18n),this.options.chat?.actionHandling!==void 0&&(n.actionHandling=this.options.chat.actionHandling),this.options.chat?.renderer!==void 0&&(n.renderer=this.options.chat.renderer),t!==void 0&&(n.productDetailsExtended=t),a!==void 0&&(n.isDemoWebsite=a),this.options.chat?.productPriceUi!==void 0&&(n.productPriceUi=this.options.chat.productPriceUi),this.options.onScriptCall!==void 0&&(n.onScriptCall=this.options.onScriptCall),this.options.onAddToCart!==void 0&&(n.onAddToCart=this.options.onAddToCart),this.options.chat?.onOpen!==void 0&&(n.onOpen=this.options.chat.onOpen),this.options.chat?.onClose!==void 0&&(n.onClose=this.options.chat.onClose),this._chat=new Vu,await this._chat.init(n)}async _syncPdpWidgets(){if(this._destroyed)return;const e=this._pageContext.sku;if(!(this._pageContext.pageType==="pdp"&&e!==void 0&&e.length>0)){this._qna?.hide(),this._simrel?.hide(),this._simbut?.hide();return}const t=this.options.middlewareUrl;if(this.options.qna?.enabled!==!1){const a=this.options.qna?.mountTarget??Fm,n=Fa(a);if(n)if(this._warnedQnaMountMissing=!1,this._qna)this._qna.show(),this._qna.update({pageType:"pdp",sku:e});else{const r=new hm,i={accountId:this.options.accountId,middlewareUrl:t,session:this.session,pageContext:{pageType:"pdp",sku:e},mountTarget:n};this.options.theme!==void 0&&(i.theme=this.options.theme),this.options.qna?.ctaText!==void 0&&(i.ctaText=this.options.qna.ctaText),this.options.qna?.hideButtonRowCta!==void 0&&(i.hideButtonRowCta=this.options.qna.hideButtonRowCta),this.options.qna?.inputPlaceholder!==void 0&&(i.inputPlaceholder=this.options.qna.inputPlaceholder),this.options.qna?.i18n!==void 0&&(i.i18n=this.options.qna.i18n),this.options.qna?.renderer!==void 0&&(i.renderer=this.options.qna.renderer);const o=this.options.qna?.headerTitle??this.options.qna?.headingTitle;o!==void 0&&(i.headerTitle=o),await r.init(i),this._qna=r}else this._qna?.destroy(),this._qna=null,this._warnedQnaMountMissing||(console.warn(`[gengage] QNA mount target not found: ${a}`),this._warnedQnaMountMissing=!0)}else this._qna?.destroy(),this._qna=null;if(this.options.simrel?.enabled!==!1){const a=this.options.simrel?.mountTarget??$m,n=Fa(a);if(n)if(this._warnedSimRelMountMissing=!1,this._simrel)this._simrel.show(),this._simrel.update({pageType:"pdp",sku:e});else{const r=new Em,i={accountId:this.options.accountId,middlewareUrl:t,session:this.session,sku:e,mountTarget:n};this.options.theme!==void 0&&(i.theme=this.options.theme),this.options.pricing!==void 0&&(i.pricing=this.options.pricing),this.options.simrel?.discountType!==void 0&&(i.discountType=this.options.simrel.discountType),this.options.simrel?.renderCardElement!==void 0&&(i.renderCardElement=this.options.simrel.renderCardElement),this.options.simrel?.renderer!==void 0&&(i.renderer=this.options.simrel.renderer),this.options.onAddToCart!==void 0&&(i.onAddToCart=this.options.onAddToCart),this.options.onProductNavigate!==void 0?i.onProductNavigate=this.options.onProductNavigate:i.onProductNavigate=(o,s,c)=>{pe(o)&&(this._chat?.saveSession(c??this.session.sessionId,s),window.location.href=o)},await r.init(i),this._simrel=r}else this._simrel?.destroy(),this._simrel=null,this._warnedSimRelMountMissing||(console.warn(`[gengage] SimRel mount target not found: ${a}`),this._warnedSimRelMountMissing=!0)}else this._simrel?.destroy(),this._simrel=null;if(this.options.simbut&&this.options.simbut.enabled!==!1){const a=this.options.simbut.mountTarget??Um,n=Fa(a),r=this._chat??this.options.simbut.onFindSimilar;if(n&&r)if(this._warnedSimButMountMissing=!1,this._warnedSimButNoChat=!1,this._simbut)this._simbut.show(),this._simbut.setChat(this._chat),this._simbut.update({pageType:"pdp",sku:e});else{const i=new Am,o={accountId:this.options.accountId,middlewareUrl:t,session:this.session,pageContext:{pageType:"pdp",sku:e},mountTarget:n,chat:this._chat};this.options.theme!==void 0&&(o.theme=this.options.theme),this.options.locale!==void 0&&(o.locale=this.options.locale),this.options.simbut.imageUrl!==void 0&&(o.imageUrl=this.options.simbut.imageUrl),this.options.simbut.i18n!==void 0&&(o.i18n=this.options.simbut.i18n),this.options.simbut.onFindSimilar!==void 0&&(o.onFindSimilar=this.options.simbut.onFindSimilar),await i.init(o),this._simbut=i}else this._simbut?.destroy(),this._simbut=null,!n&&!this._warnedSimButMountMissing?(console.warn(`[gengage] SimBut mount target not found: ${a}`),this._warnedSimButMountMissing=!0):!r&&!this._warnedSimButNoChat&&(console.warn("[gengage] SimBut requires chat to be enabled or simbut.onFindSimilar"),this._warnedSimButNoChat=!0)}else this._simbut?.destroy(),this._simbut=null}_enqueue(e){const t=this._queue.then(e);return this._queue=t.catch(a=>{}),t}};async function Zm(e){const t=ki(e),a=wi(),n=a.instances[t];if(n)return n;const r=a.pending[t];if(r)return r;const i=new jm(e,()=>{const s=wi();delete s.instances[t],delete s.pending[t]}),o=i.init().then(()=>(a.instances[t]=i,delete a.pending[t],i)).catch(s=>{throw delete a.pending[t],s});return a.pending[t]=o,o}var Ci=["gengage:chat:open","gengage:chat:close","gengage:chat:ready","gengage:chat:add-to-cart","gengage:qna:action","gengage:qna:open-chat","gengage:similar:product-click","gengage:similar:add-to-cart","gengage:global:error","gengage:context:update"],Vm=32,Si="#gengage-qna",Ei="#gengage-simrel";function mf(e){return e}function Wm(e){let t=e;if(typeof e=="string"){const i=e.trim();if(i.length===0)return null;if(!i.startsWith("{")&&!i.startsWith("["))return{type:i};try{t=JSON.parse(i)}catch{return null}}if(!t||typeof t!="object")return null;const a=t,n=[a.type,a.command,a.action,a.event].find(i=>typeof i=="string"&&i.length>0);if(!n)return null;let r=a.payload;if(r===void 0&&"data"in a&&(r=a.data),n==="setSession"&&r===void 0){const i={};typeof a.sessionId=="string"&&(i.sessionId=a.sessionId),typeof a.userId=="string"&&(i.userId=a.userId),(i.sessionId!==void 0||i.userId!==void 0)&&(r=i)}return r===void 0?{type:n}:{type:n,payload:r}}function Gm(e){if(typeof e=="string"&&e.length>0)return{sku:e};if(e&&typeof e=="object"&&"sku"in e){const t=e.sku;if(typeof t=="string"&&t.length>0){const a=e.pageType;return a!==void 0?{sku:t,pageType:a}:{sku:t}}}return null}function $a(e,t){return t instanceof HTMLElement?!0:typeof t!="string"?!1:e.document.querySelector(t)!==null}function Ti(e,t,a){if(t instanceof HTMLElement||$a(e,t)||typeof t!="string")return t;if(t.startsWith("#")){const i=t.slice(1);if(i.length>0){const o=e.document.getElementById(i);if(o)return o;const s=e.document.createElement("div");return s.id=i,e.document.body.appendChild(s),s}}const n=e.document.getElementById(a);if(n)return n;const r=e.document.createElement("div");return r.id=a,e.document.body.appendChild(r),r}function Pi(e,t){const a=e.webkit?.messageHandlers?.[t];return a&&typeof a.postMessage=="function"?a.postMessage.bind(a):null}function Wt(e,t){const a=e[t];return a&&typeof a=="object"&&typeof a.postMessage=="function"?a:null}function Ai(e={}){const t=e.win??window,a=e.iosHandlerName??"gengage",n=e.androidInterfaceName??"GengageNative",r=e.reactNativeInterfaceName??"ReactNativeWebView";return Pi(t,a)?"ios":Wt(t,n)?"android":Wt(t,r)?"react-native":"browser"}function Li(e,t={}){const a=t.win??window;if(e.sessionId!==void 0){a.__gengageSessionId=e.sessionId,a.gengage||(a.gengage={}),a.gengage.sessionId=e.sessionId;try{a.sessionStorage.setItem("gengage_session_id",e.sessionId)}catch{}}if(e.userId!==void 0){a.gengage||(a.gengage={});const n=a.gengage,r=n.session??{};r.userId=e.userId,n.session=r}}function Ii(e={}){const t=e.win??window,a=t;if(a.gengageNative)return a.gengageNative;const n=e.iosHandlerName??"gengage",r=e.androidInterfaceName??"GengageNative",i=e.reactNativeInterfaceName??"ReactNativeWebView",o=e.trackedEvents??[...Ci],s=Ai({win:t,iosHandlerName:n,androidInterfaceName:r,reactNativeInterfaceName:i});let c=t.gengage?.overlay??null;const l=[],g=(b,C)=>{const v=C===void 0?{type:b}:{type:b,payload:C};if(s==="ios"){Pi(t,n)?.(v);return}if(s==="android"){Wt(t,r)?.postMessage(JSON.stringify(v));return}if(s==="react-native"){Wt(t,i)?.postMessage(JSON.stringify(v));return}},d=b=>{const C=b.detail;!C||typeof C.namespace!="string"||typeof C.type!="string"||g("bridge_message",{namespace:C.namespace,type:C.type,payload:C.payload})};t.addEventListener("gengage:bridge:message",d);const h=o.map(b=>{const C=v=>{const w=v.detail;g("widget_event",{event:b,detail:w})};return t.addEventListener(b,C),{event:b,handler:C}}),u=b=>{l.length>=Vm&&l.shift(),l.push(b)},f=()=>{if(!c||l.length===0)return;const b=l.splice(0,l.length);for(const C of b)p(C)},p=b=>{const C=Wm(b);if(!C||typeof C.type!="string"){console.warn("[gengage:native-bridge] Invalid message:",b);return}const v=C.type,w=C.payload;switch(v){case"openChat":c?c.openChat(w&&typeof w=="object"?w:w==="half"||w==="full"?{state:w}:void 0):u(C);return;case"closeChat":c?c.closeChat():u(C);return;case"updateContext":c&&w&&typeof w=="object"?c.updateContext(w):c?console.warn("[gengage:native-bridge] updateContext: missing payload"):u(C);return;case"updateSku":{const k=Gm(w);if(c&&k){c.updateSku(k.sku,k.pageType);return}c?console.warn("[gengage:native-bridge] updateSku: missing sku"):u(C);return}case"setSession":w&&typeof w=="object"&&Li(w,{win:t});return;case"destroy":c?.destroy();return;default:t.postMessage({gengage:"native",type:v,payload:w},t.location.origin),e.logUnhandled&&console.warn("[gengage:native-bridge] Unhandled inbound type forwarded:",v)}},m={env:s,sendToNative:g,receive:p,setController(b){c=b,f()},destroy(){t.removeEventListener("gengage:bridge:message",d);for(const b of h)t.removeEventListener(b.event,b.handler);l.splice(0,l.length),t.gengageNative===m&&delete t.gengageNative}};return a.gengageNative=m,m}async function Km(e){const{nativeBridge:t,emitReadyEvent:a=!0,...n}=e,r=Ii(t),i={...n};i.onAddToCart||(i.onAddToCart=l=>{r.sendToNative("addToCart",{sku:l.sku,quantity:l.quantity,cartCode:l.cartCode})}),i.onProductNavigate||(i.onProductNavigate=(l,g,d)=>{r.sendToNative("productNavigate",{url:l,sku:g,sessionId:d})});const o=i.qna?.enabled===!0||i.qna?.mountTarget!==void 0;if(i.qna?.enabled!==!1)if(o){const l=Ti(window,i.qna?.mountTarget??Si,"gengage-qna");i.qna={...i.qna,enabled:!0,mountTarget:l}}else $a(window,Si)||(i.qna={enabled:!1});const s=i.simrel?.enabled===!0||i.simrel?.mountTarget!==void 0;if(i.simrel?.enabled!==!1)if(s){const l=Ti(window,i.simrel?.mountTarget??Ei,"gengage-simrel");i.simrel={...i.simrel,enabled:!0,mountTarget:l}}else $a(window,Ei)||(i.simrel={enabled:!1});const c=await Zm(i);return r.setController(c),a&&r.sendToNative("ready",{sessionId:c.session.sessionId,widgets:{chat:c.chat!==null,qna:c.qna!==null,simrel:c.simrel!==null}}),{controller:c,bridge:r,destroy(){c.destroy(),r.destroy()}}}Ye.DEFAULT_NATIVE_TRACKED_EVENTS=Ci,Ye.applyNativeSession=Li,Ye.createNativeWebViewBridge=Ii,Ye.detectNativeEnvironment=Ai,Ye.initNativeOverlayWidgets=Km})(this.Gengage=this.Gengage||{});
|
|
178
|
+
`).join("<br />"));this._ensureAssistantMessageRendered(d),this._drawer?.updateBotMessage(d.id,Q),this._drawer?.showRecoveryPillsOnly(W)};if(w)this._drawer?.setPills([]),d.silent||R();else if(i||this._hasUnavailableProductContext()){this._drawer?.setPills([]);const A=this._i18n.productNotFoundMessage;d.content=A,d.status="done",this._ensureAssistantMessageRendered(d),this._drawer?.updateBotMessage(d.id,A),this._markUnavailableProductContext()}else if(R(),E)return;i&&(this._pdpPrimingInFlight=!1,this._flushQueuedUserMessages()),!N&&d.status==="streaming"&&(d.status="error"),E||this.track(Qt(this.analyticsContext(),{request_id:b,error_code:"STREAM_ERROR",error_message:_.message,widget:"chat"}))},onDone:()=>{if(I&&this._abortControllers.delete(I),!r&&n!==this._activeRequestThreadId)return;if(M=!0,j(),K){const E=this._buildRenderContext();E.isStreaming=!1;const L=this._shadow?.querySelector(".gengage-chat-messages");if(L){const N=this._renderUISpec(K,E);d.threadId&&(N.dataset.threadId=d.threadId),L.appendChild(N),N.scrollIntoView({behavior:"auto",block:"end"}),this._drawer?.refreshPresentationCollapsed()}K=null}this._activeRequestThreadId=null,this._consecutiveErrorCount=0,this._lastErrorMessage="",this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),this._drawer?.removeTypingIndicator(),Qs($,{drawer:this._drawer,ensureRendered:()=>{},cancelTypewriter:()=>{},sendSkipMessage:()=>this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),streamDone:!0});const _=k;if(x&&!k&&l(),x=!1,i&&!g&&!_){const E=this._i18n.productNotFoundMessage;d.content=E,this._ensureAssistantMessageRendered(d),this._drawer?.updateBotMessage(d.id,E),this._markUnavailableProductContext()}if(k=!1,i){this._pdpPrimingInFlight=!1;const E=this._queuedUserMessages.length>0;this._flushQueuedUserMessages(),E||this._ensurePdpPrimeSuggestedUiIfNeeded()}d.status==="streaming"&&(d.status="done",qn()),this._presentation.finalizeAssistantGroup(n);const y=this._shadow?.querySelector(".gengage-chat-comparison-toggle-btn--hidden");y&&(y.classList.remove("gengage-chat-comparison-toggle-btn--hidden"),y.classList.add("gengage-chat-comparison-toggle-btn--reveal")),this.emit("message",d);const w=this._currentPanelSource;this._panel?.snapshotForMessage(d.id,w?()=>{const E=this._buildRenderContext();return this._renderPanelFromSource(w,E)}:void 0),this.track(ut(this.analyticsContext(),{request_id:b,latency_ms:Date.now()-C,chunk_count:v,widget:"chat"})),this.track(Ri(this.analyticsContext(),{meter_key:"chat_request",quantity:1,unit:"request"})),this.track(Di(this.analyticsContext(),{message_count:this._messages.length,history_ref:this.config.session?.sessionId??"",redaction_level:"none"})),this._persistToIndexedDB().catch(()=>{})}},h),this._abortControllers.add(I),!a?.silent&&!r){const _=I;this._drawer?.showStopButton(()=>{_.abort(),this._abortControllers.delete(_),this._drawer?.removeTypingIndicator(),this._bridge?.send("isResponding",!1),this._bridge?.send("loadingMessage",{text:null}),d.status==="streaming"&&(d.status="done")})}}_getVisibleMessages(){const t=this._messages.filter(n=>!n.silent);if(!this._currentThreadId)return t;const a=this._currentThreadId;return t.filter(n=>!n.threadId||n.threadId<=a)}_appendSimilarsToPanel(t,a){if(!this._drawer)return;const n=this._drawer.getPanelContentElement();if(!n)return;a.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products";const r=this._renderUISpec(t,a);r.classList.add("gengage-chat-product-details-similars"),n.appendChild(r),this._mergePanelSourceWithSimilars(t)}_mergePanelSourceWithSimilars(t){const a=this._currentPanelSource;a?.kind==="spec"&&this._panel?.currentType==="ProductDetailsPanel"&&(this._currentPanelSource={kind:"productDetailsWithSimilars",pdpSpec:a.spec,similarsSpec:t})}_renderProductDetailsWithSimilars(t,a,n){this._applyPanelListHeadingToContext(n,{kind:"productDetailsWithSimilars",pdpSpec:t,similarsSpec:a});const r=this._renderUISpec(t,n),i=this._renderUISpec(a,n);return i.classList.add("gengage-chat-product-details-similars"),r.appendChild(i),r}_applyPanelListHeadingToContext(t,a){if(t.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&&(t.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&&(t.panelProductListHeading=this._i18n.similarProductsLabel??"Similar Products")}}}_renderPanelFromSource(t,a){return this._applyPanelListHeadingToContext(a,t),t.kind==="favorites"?this._buildFavoritesPageEl():t.kind==="productDetailsWithSimilars"?this._renderProductDetailsWithSimilars(t.pdpSpec,t.similarsSpec,a):this._renderUISpec(t.spec,a)}_handleRollback(t){const a=this._messages.find(n=>n.id===t);a?.threadId&&this._rollbackToThread(a.threadId)}_ensurePdpPrimeSuggestedUiIfNeeded(){const t=this.config.pageContext?.sku;if(!t||!this._drawer||this._hasUnavailableProductContext())return;const a="product",n=this._resolveContextualOpeningActions(a);if(n.length>0){this._drawer.setInputAreaChips(n.map(r=>({label:r.title,onAction:()=>this._sendAction(this._resolveContextualOpeningAction(r,a)),...r.icon?{icon:r.icon}:{}})));return}this._drawer.setInputAreaChips([{label:this._i18n.groundingReviewCta,icon:"review",onAction:()=>this._sendAction({title:this._i18n.customerReviewsTitle,type:"reviewSummary",payload:{sku:t}})},{label:this._i18n.findSimilarLabel,icon:"similar",onAction:()=>this._sendAction({title:this._i18n.findSimilarLabel,type:"findSimilar",payload:{sku:t}})}])}_rollbackToThread(t){if(this._panel&&this._panel.threads.length>0&&!this._panel.threads.includes(t)&&!this._messages.some(i=>i.threadId===t))return;this._currentThreadId=t,this._extendedModeManager?.setHiddenByUser(!1),this._lastThreadId!=null&&t===this._lastThreadId?(this._presentation.setFocusedThreadId(t),this._drawer?.setPresentationFocus(t)):(this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null)),this._drawer?.setFormerMessagesButtonVisible(!1);for(const i of this._messages){const o=this._shadow?.querySelector(`[data-message-id="${CSS.escape(i.id)}"]`);o&&(i.threadId&&i.threadId>t?o.classList.add("gengage-chat-bubble--hidden"):o.classList.remove("gengage-chat-bubble--hidden"))}this._shadow?.querySelectorAll("[data-thread-id]").forEach(i=>{i instanceof HTMLElement&&i.dataset.threadId&&i.dataset.threadId>t?i.classList.add("gengage-chat-bubble--hidden"):i instanceof HTMLElement&&i.classList.remove("gengage-chat-bubble--hidden")});const a=this._messages.find(i=>i.role==="assistant"&&i.threadId===t),n=a?this._panel?.restoreForMessage(a.id):!1;n||(this._drawer?.clearPanel(),this._currentPanelSource=null),n&&a&&(this._currentPanelSource=null);const r=this._panel.currentType??"";if(this._panel?.updateTopBar(r),this._drawer?.setPills([]),requestAnimationFrame(()=>{this._drawer?.scrollThreadIntoView(t,"auto")}),this._session?.db&&this.config.session?.sessionId){const i=this.config.session.sessionId;(async()=>{try{const o=await this._session?.db?.loadContext(i,t);o&&(this._lastBackendContext=o.context),await this._session?.db?.deleteContextsAfterThread(i,t)}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(t){try{return t.trim()?new URL(t,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 t=this.config.pageContext?.sku;return t!==void 0&&t.length>0&&this._productContextUnavailableSku===t}_ensureAssistantMessageRendered(t){if(!(this._shadow?.querySelector(`[data-message-id="${CSS.escape(t.id)}"]`)||!this._drawer)){if(t.role==="assistant"&&t.threadId&&!this._threadsWithFirstBot.has(t.threadId)){this._threadsWithFirstBot.add(t.threadId),this._drawer.addMessage(t),this._drawer.markFirstBotMessage(t.id);return}this._drawer.addMessage(t)}}async _saveSessionAndOpenURL(t){this._session&&await this._session.saveAndOpenURL(t,()=>this._persistToIndexedDB(),this._bridge)}async _loadPayload(t,a){return this._session?this._session.loadPayload(t,a):null}async _restoreFromIndexedDB(t){if(!this._session?.db)return;const a=this.config.session?.sessionId;if(!a)return;const n=this.config.session?.userId??"",r=this.config.accountId;if(await this._session.loadFavorites(n,r),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size),!t)return;const i=await this._session.db?.loadSession(n,r,a);if(!i||i.messages.length===0)return;const o=this.config.pageContext?.sku;if(o&&i.sku&&i.sku!==o)return;if(this._pdpLaunched=!0,this._drawer?.lockScrollForRestore(),this._currentThreadId=i.currentThreadId,this._lastThreadId=i.lastThreadId,this._currentThreadId&&this._lastThreadId&&this._currentThreadId>this._lastThreadId&&(this._currentThreadId=this._lastThreadId),this._chatCreatedAt=i.createdAt,i.panelThreads&&(this._panel.threads=i.panelThreads),i.thumbnailEntries&&(this._thumbnailEntries=i.thumbnailEntries,this._drawer?.setThumbnails(this._thumbnailEntries)),i.panelSnapshotHtml)for(const[c,l]of Object.entries(i.panelSnapshotHtml)){const g=document.createElement("div");g.innerHTML=_e(l),this._panel.snapshots.set(c,g)}let s=0;for(const c of i.messages){const l={id:c.id,role:c.role,timestamp:c.timestamp,status:c.status};if(c.threadId!==void 0&&(l.threadId=c.threadId),c.content!==void 0&&(l.content=c.content),c.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 g=parseInt(c.id.replace("msg-",""),10);if(!isNaN(g)&&g>s&&(s=g),l.role==="assistant"&&l.threadId){const d=await this._loadPayload(l.threadId,l.id);d&&(l.uiSpec=d,this._restoreInlineUISpec(l),delete l.uiSpec)}}if(s>this._currentMessageId&&(this._currentMessageId=s),this._currentThreadId){let c=await this._session.db?.loadContext(a,this._currentThreadId);c||(c=await this._session.db?.loadLatestContext(a)),c&&(this._lastBackendContext=c.context)}if(this._currentThreadId){const c=[...this._messages].reverse().find(l=>l.role==="assistant"&&l.threadId===this._currentThreadId&&!l.silent);c&&this._panel.snapshots.has(c.id)&&this._panel?.restoreForMessage(c.id)}if(this._currentThreadId){const c=this._currentThreadId;for(const l of this._messages)l.threadId&&l.threadId>c&&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>c&&l.classList.add("gengage-chat-bubble--hidden")})}if(this._panel.threads.length>0&&this._currentThreadId){const c=this._panel.threads[this._panel.threads.length-1];if(c){const l=[...this._messages].reverse().find(g=>g.role==="assistant"&&g.threadId===c);if(l?.threadId){const g=await this._loadPayload(l.threadId,l.id);if(g){const d=g.elements[g.root];d&&this._panel?.updateTopBar(d.type)}}}}this._presentation.releaseFocusedThread(),this._drawer?.setPresentationFocus(null),setTimeout(()=>{this._drawer?.scrollToLastThread()},550)}_navigatePanelBack(){const t=this._localPanelHistory.pop();if(t){const a=this._buildRenderContext(),n=this._renderPanelFromSource(t.source,a);this._drawer?.setPanelContent(n),this._drawer?.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(t.source)),this._currentPanelSource=t.source;const r=this._localPanelHistory.length>0||(this._panel?.threads.length??0)>1;this._drawer?.updatePanelTopBar(r,!1,t.title);return}if(this._isMobileViewport){this._drawer?.hideMobilePanel();return}this._panel?.navigateBack()}_shouldUseDividerPreviewForSpec(t){return t.elements[t.root]?.type==="ProductGrid"}_shouldUseDividerPreviewForSource(t){return t?.kind==="spec"?this._shouldUseDividerPreviewForSpec(t.spec):!1}_toggleComparisonSku(t){if(t==="")this._comparisonSelectMode=!this._comparisonSelectMode,this._comparisonSelectionWarning=null,this._comparisonSelectMode&&(Ol(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,ld());else if(this._comparisonSelectedSkus.indexOf(t)>=0)this._comparisonSelectedSkus=this._comparisonSelectedSkus.filter(a=>a!==t),this._comparisonSelectionWarning=null;else{if(this._comparisonSelectedSkus.length>=it._MAX_COMPARISON_SELECTION){this._comparisonSelectionWarning=this._i18n.compareMaxHint??`You can select up to ${it._MAX_COMPARISON_SELECTION} products`,this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()});return}this._comparisonSelectedSkus=[...this._comparisonSelectedSkus,t],this._comparisonSelectionWarning=null,sd(t)}this._comparisonRefreshRafId!==null&&cancelAnimationFrame(this._comparisonRefreshRafId),this._comparisonRefreshRafId=requestAnimationFrame(()=>{this._comparisonRefreshRafId=null,this._refreshComparisonUI()})}_refreshComparisonUI(){const t=this._shadow?.querySelector(".gengage-chat-panel");if(!t){this._drawer?.setComparisonDockContent(null);return}const a=t.querySelector(".gengage-chat-product-grid-wrapper"),n=a?.querySelector(".gengage-chat-product-grid");if(!a||!n){this._drawer?.setComparisonDockContent(null);return}const r=a.querySelector(".gengage-chat-comparison-toggle-btn");if(r&&r.classList.toggle("gengage-chat-comparison-toggle-btn--active",this._comparisonSelectMode),this._comparisonSelectMode){const i=n.querySelectorAll(".gengage-chat-product-card[data-sku]");for(const o of i){if(o.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")){const u=o.parentElement,m=this._comparisonSelectedSkus.includes(o.dataset.sku);u.classList.toggle("gengage-chat-comparison-select-wrapper--selected",m);const p=u.querySelector(".gengage-chat-comparison-checkbox");if(p){p.dataset.selected=m?"true":"false",p.setAttribute("aria-pressed",m?"true":"false");const f=p.querySelector(".gengage-chat-comparison-checkbox-icon"),b=p.querySelector(".gengage-chat-comparison-checkbox-label");f&&(f.innerHTML=m?'<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>'),b&&(b.textContent=m?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare")}continue}const s=o.dataset.sku,c=document.createElement("div");c.className="gengage-chat-comparison-select-wrapper";const l=this._comparisonSelectedSkus.includes(s);l&&c.classList.add("gengage-chat-comparison-select-wrapper--selected");const g=document.createElement("button");g.type="button",g.className="gengage-chat-comparison-checkbox",g.dataset.selected=l?"true":"false",g.setAttribute("aria-pressed",l?"true":"false");const d=document.createElement("span");d.className="gengage-chat-comparison-checkbox-icon",d.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 h=document.createElement("span");h.className="gengage-chat-comparison-checkbox-label",h.textContent=l?this._i18n.comparisonSelectedLabel??"Selected":this._i18n.comparisonSelectLabel??"Select to compare",g.appendChild(d),g.appendChild(h),g.addEventListener("click",u=>{u.stopPropagation(),this._toggleComparisonSku(s)}),o.parentNode.insertBefore(c,o),c.appendChild(g),c.appendChild(o),c.classList.add("gds-clickable"),c.addEventListener("click",u=>{u.target.closest(".gengage-chat-comparison-checkbox")||(u.stopPropagation(),this._toggleComparisonSku(s))})}}else{const i=n.querySelectorAll(".gengage-chat-comparison-select-wrapper");for(const o of i){const s=o.querySelector(".gengage-chat-product-card");s&&o.parentNode&&(o.parentNode.insertBefore(s,o),o.remove())}}if(a.querySelector(".gengage-chat-comparison-floating-btn")?.remove(),this._comparisonSelectMode){const i=wn(this._comparisonSelectedSkus,this._buildRenderContext());this._isMobileViewport?this._drawer?.setComparisonDockContent(i):(this._drawer?.setComparisonDockContent(null),a.appendChild(i))}else this._drawer?.setComparisonDockContent(null)}_parseAddToCartActionPayload(t){if(typeof t!="object"||t===null)return null;const a=t,n=this._coerceAddToCartString(a.sku),r=this._coerceAddToCartString(a.cartCode??a.cart_code);let i=1;return typeof a.quantity=="number"&&Number.isFinite(a.quantity)&&a.quantity>0&&(i=Math.max(1,Math.floor(a.quantity))),!n||!r?null:{sku:n,cartCode:r,quantity:i}}_coerceAddToCartString(t){return typeof t=="string"&&t.length>0?t:typeof t=="number"&&Number.isFinite(t)?String(t):""}_runChatAddToCartFlow(t){if(this.config.onAddToCart!==void 0)try{const r=this.config.onAddToCart(t);r instanceof Promise&&r.catch(i=>console.error("[gengage] onAddToCart",i))}catch(r){console.error("[gengage] onAddToCart",r)}Hn(t.sku,t.quantity);const a={...t,sessionId:this.config.session?.sessionId??null};ce("gengage:chat:add-to-cart",a),this._bridge?.send("addToCart",t),this._runEventCallbacks("gengage-cart-add",a),this.track(Ua(this.analyticsContext(),{attribution_source:"chat",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??"TRY",line_items:t.quantity,sku:t.sku})),this._sendAction({title:this._i18n.addToCartButton??"Add to Cart",type:"addToCart",payload:{sku:t.sku,cart_code:t.cartCode,quantity:t.quantity}},{preservePanel:!0});const n=this._i18n.addedToCartToast??"Added to cart";this._drawer?.showCartToast(n),this._drawer?.flashCartBadge()}_buildRenderContext(){const t={onAction:a=>{if(ka(a.title,a.type),a.type==="addToCart"){const r=this._parseAddToCartActionPayload(a.payload);if(r){this._runChatAddToCartFlow(r);return}}if(a.type==="launchSingleProduct"){this._drawer?.setDividerPreviewEnabled(!1);const r=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";r&&Ca(r,a.title)}if(a.type==="findSimilar"){const r=typeof a.payload=="object"&&a.payload!==null&&"sku"in a.payload?String(a.payload.sku):"";Un(r)}a.type==="getComparisonTable"&&cd(this._comparisonSelectedSkus);const n=a.type==="addToCart"||a.type==="like";this._sendAction(a,n?{preservePanel:!0}:void 0)},onProductClick:a=>{if(Ca(a.sku),this.config.isDemoWebsite!==!0&&this._isSameOriginUrl(a.url))ce("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 s=this._drawer?.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:s}),this._localPanelHistory.length>it._MAX_PANEL_HISTORY&&this._localPanelHistory.shift()}const n=this._buildRenderContext(),r={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:a}}}},i=this._shadow?.querySelector(".gengage-chat-messages");if(i){const s=this._renderUISpec(r,n);this._currentThreadId&&(s.dataset.threadId=this._currentThreadId),i.appendChild(s),s.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,t)),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:it._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 t}async _toggleFavorite(t,a){if(!this._session)return;const n=this.config.session?.userId??"",r=this.config.accountId;await this._session.toggleFavorite(n,r,t,a),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size)}_revertFavoriteHeartUi(t){const a=this._shadow?.querySelectorAll(`[data-gengage-favorite-sku="${CSS.escape(t)}"]`);if(a?.length)for(const n of a){if(!(n instanceof HTMLButtonElement))continue;n.classList.toggle("gengage-chat-favorite-btn--active");const r=n.querySelector("svg");r&&r.setAttribute("fill",n.classList.contains("gengage-chat-favorite-btn--active")?"currentColor":"none")}}async _toggleProductFavorite(t,a){const n=!(this._session?.favoritedSkus.has(t)??!1),r={sku:t,product:a,favorited:n,sessionId:this.config.session?.sessionId??null};ce("gengage:chat:product-favorite",r),this._bridge?.send("productFavorite",r);const i=this._eventCallbacks.get("gengage-product-favorite");if(i&&i.size>0){for(const o of i)try{const s=o(r);if((s instanceof Promise?await s:s)===!1){this._revertFavoriteHeartUi(t),this._handleCallbackFailure("gengage-product-favorite",r);return}}catch{this._revertFavoriteHeartUi(t),this._handleCallbackFailure("gengage-product-favorite",r);return}this._session&&(n?this._session.favoritedSkus.add(t):this._session.favoritedSkus.delete(t),this._drawer?.updateFavoritesBadge(this._session.favoritedSkus.size));return}if(await this._toggleFavorite(t,a),n){gd(t);const o=a.name??t;this._sendAction({title:o,type:"like",payload:{sku:t}},{preservePanel:!0})}}_openFavoritesPanel(){if(this._drawer){if(this._currentPanelSource){const t=this._drawer.getPanelTopBarTitle()??"";this._localPanelHistory.push({source:this._currentPanelSource,title:t}),this._localPanelHistory.length>it._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 t=this._session?.getFavoriteProducts()??[];if(t.length===0){const i=document.createElement("div");i.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>',i.appendChild(o);const s=document.createElement("p");return s.textContent=this._i18n.emptyFavoritesMessage,i.appendChild(s),i}const a={},n=[];for(const[i,o]of t.entries()){const s=`card_${i}`;n.push(s),a[s]={type:"ProductCard",props:{product:{sku:o.sku,name:o.name,imageUrl:o.imageUrl,price:o.price}}}}a.grid={type:"ProductGrid",children:n};const r={root:"grid",elements:a};return this._renderUISpec(r,this._buildRenderContext())}async _runEventCallbacks(t,a){const n=this._eventCallbacks.get(t);if(!(!n||n.size===0))for(const r of n)try{const i=r(a);if((i instanceof Promise?await i:i)===!1){this._handleCallbackFailure(t,a);return}}catch{this._handleCallbackFailure(t,a);return}}_handleCallbackFailure(t,a){if(t==="gengage-cart-add"){const n=this._i18n.cartAddErrorMessage,r=this._createMessage("assistant",n);this._currentThreadId&&(r.threadId=this._currentThreadId),this._messages.push(r),this._drawer?.addMessage(r)}if(t==="gengage-product-favorite"){const n=this._i18n.favoriteToggleErrorMessage,r=this._createMessage("assistant",n);this._currentThreadId&&(r.threadId=this._currentThreadId),this._messages.push(r),this._drawer?.addMessage(r)}}_restoreInlineUISpec(t){if(!t.uiSpec||!this._drawer)return;const a=t.uiSpec,n=a.elements[a.root];if(!n)return;const r=n.type;if(r==="ActionButtons"||r==="ComparisonTable"||r==="ProductGrid"&&n.props?.similarsAppend===!0&&(this.config.productDetailsExtended===!0||!this._isMobileViewport))return;const i=this._buildRenderContext(),o=this._shadow?.querySelector(".gengage-chat-messages");if(!o)return;if(r==="ProductDetailsPanel"){const c=n.props?.product;if(!c)return;const l={root:"root",elements:{root:{type:"ProductSummaryCard",props:{product:c}}}},g=this._renderUISpec(l,i);t.threadId&&(g.dataset.threadId=t.threadId),o.appendChild(g),this._drawer?.refreshPresentationCollapsed();return}const s=this._renderUISpec(a,i);t.threadId&&(s.dataset.threadId=t.threadId),o.appendChild(s),this._drawer?.refreshPresentationCollapsed()}_createMessage(t,a){return this._currentMessageId++,{id:`msg-${this._currentMessageId}`,role:t,content:a,timestamp:Date.now(),status:"done"}}_resolveI18n(t){return{...Ss(t.locale),...t.i18n}}_resolveUISpecRegistry(){return Yt(qc(),this.config.renderer?.registry)}_renderUISpec(t,a){const n=this._resolveUISpecRegistry(),r=this.config.renderer?.unknownRenderer??Cn,i=(s,c)=>jc(s,c,n,r),o=this.config.renderer?.renderUISpec;return o?o(t,a,{registry:n,unknownRenderer:r,defaultRender:i}):i(t,a)}},Wu=8e3,Gu=5e3,Ku="https://www.google.com/favicon.ico",Re=new Map,Jr=!1,rt=null,ht=null,Ge=!1;function Yu(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function Qr(e){return Yu(e)?"İnternet bağlantısında sorun var gibi görünüyor. İstek sürerken yeniden deneyeceğiz.":"Your internet connection looks unstable. We'll keep retrying while this request is active."}function Xr(){let e;for(const t of Re.values())e=t;return e}function Da(){rt&&(clearTimeout(rt),rt=null)}function Ju(){ht&&(clearInterval(ht),ht=null)}async function ei(){try{if(typeof navigator<"u"&&navigator.onLine===!1)return!1;if(typeof window<"u"){const a=window.location.hostname;if(a==="localhost"||a==="127.0.0.1")return navigator.onLine}const e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{return await fetch(Ku,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:e.signal}),!0}catch{return navigator.onLine}finally{clearTimeout(t)}}catch{return typeof navigator>"u"?!0:navigator.onLine}}function Ut(){Ge=!1,Ju(),Ya()}function Ht(){rt||Ge||Re.size===0||(rt=setTimeout(async()=>{rt=null,!(Ge||Re.size===0)&&!await ei()&&Re.size>0&&(Ge=!0,na({source:"sdk",message:Qr(Xr()),sticky:!0}),ht||(ht=setInterval(async()=>{if(Re.size===0){Ut();return}await ei()&&(Ut(),Ht())},Gu)))},Wu))}function Qu(){Jr||typeof window>"u"||(Jr=!0,window.addEventListener("online",()=>{Ut(),Ht()}),window.addEventListener("offline",()=>{Re.size===0||Ge||(Ge=!0,Da(),na({source:"sdk",message:Qr(Xr()),sticky:!0}))}))}function ti(e){Qu();const t=Symbol(e.source);Re.set(t,e.locale),Ht();let a=!1;return()=>{if(!a){if(a=!0,Re.delete(t),Re.size===0){Da(),Ut();return}Ge||(Da(),Ht())}}}async function Xu(e,t,a){const n=yt("launcher_action",t),r={uiSpecs:[],actions:[]},i={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};a!==void 0&&(i.signal=a);const o=await fetch(n,i);if(!o.ok)throw new Error(`HTTP ${o.status}: ${o.statusText}`);const s={onEvent:c=>{const l=vt(c);if(l&&(l.type==="ui_spec"&&r.uiSpecs.push(l.spec),l.type==="ui_spec"&&l.spec.elements)){for(const g of Object.values(l.spec.elements))if(g.type==="ActionButton"&&g.props?.action){const d=g.props.action;r.actions.push(d)}}}};return a!==void 0&&(s.signal=a),await bt(o,s),r}function ai(e){const t=document.createElement("div");t.className="gengage-qna-buttons gds-toolbar",t.dataset.gengagePart="qna-button-row",t.setAttribute("role","group"),t.setAttribute("aria-label",e.quickQuestionsAriaLabel??"Quick questions"),e.orientation==="vertical"&&(t.style.flexDirection="column");for(const a of e.actions){const n=document.createElement("button");n.className="gengage-qna-button gds-chip",n.dataset.gengagePart="qna-quick-question",n.textContent=a.title,n.type="button",n.addEventListener("click",()=>{const r={title:a.title,type:a.type};a.payload!==void 0&&(r.payload=a.payload),e.onAction(r)}),t.appendChild(n)}if(e.ctaText||e.onOpenChat){const a=document.createElement("button");a.className="gengage-qna-cta gds-btn gds-btn-secondary",a.dataset.gengagePart="qna-cta",a.textContent=e.ctaText??e.defaultCtaText??"Ask something else",a.type="button",a.addEventListener("click",()=>{e.onOpenChat?.()}),t.appendChild(a)}return t}function em(e){const t=document.createElement("div");t.className="gengage-qna-input-wrapper",t.dataset.gengagePart="qna-input-wrapper";const a=document.createElement("div");a.className="gengage-qna-input-combo",a.dataset.gengagePart="qna-input-combo";const n=document.createElement("input");n.type="text",n.className="gengage-qna-input",n.dataset.gengagePart="qna-input",n.setAttribute("aria-label",e.askQuestionAriaLabel??"Ask a question");const r=Array.isArray(e.placeholders)?e.placeholders:e.placeholders?[e.placeholders]:[e.defaultInputPlaceholder??"Ask a question..."];let i=0,o=r[0]??"";n.placeholder=o;let s=null,c=null,l=!1;const g=()=>{s&&clearInterval(s),s=null,c&&clearTimeout(c),c=null,n.classList.remove("gengage-qna-input--fade")},d=()=>r.length>1&&!l&&n.value.trim().length===0,h=()=>{g(),d()&&(s=setInterval(()=>{d()&&(n.classList.add("gengage-qna-input--fade"),c=setTimeout(()=>{i=(i+1)%r.length,o=r[i]??"",n.placeholder=o,n.classList.remove("gengage-qna-input--fade")},180))},3e3))},u=document.createElement("div");u.className="gengage-qna-input-actions",u.dataset.gengagePart="qna-input-actions";const m=document.createElement("button");m.className="gengage-qna-icon-btn gengage-qna-clear gengage-qna-icon-btn--hidden",m.type="button",m.dataset.gengagePart="qna-clear",m.setAttribute("aria-label","Clear question"),m.innerHTML='<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M18 6L6 18" /><path d="M6 6L18 18" /></svg>';const p=document.createElement("button");p.className="gengage-qna-icon-btn gengage-qna-send gengage-qna-icon-btn--hidden",p.type="button",p.dataset.gengagePart="qna-send",p.setAttribute("aria-label",e.sendQuestionAriaLabel??"Send question"),p.disabled=!0,p.innerHTML=`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M22 2L11 13" /><path d="M22 2L15 22L11 13L2 9L22 2Z" /></svg><span class="gengage-qna-sr-only">${e.ctaLabel??e.sendButtonText??"Ask"}</span>`;const f=()=>{const C=n.value.trim().length>0;m.classList.toggle("gengage-qna-icon-btn--hidden",!C),p.classList.toggle("gengage-qna-icon-btn--hidden",!C),p.classList.toggle("gengage-qna-send--active",C),p.disabled=!C},b=()=>{const C=n.value.trim();C&&(e.onSubmit({title:C,type:"user_message",payload:C}),n.value="",f(),h())};return m.addEventListener("click",()=>{n.value="",f(),n.focus({preventScroll:!0})}),p.addEventListener("click",b),n.addEventListener("focus",()=>{l=!0,g(),n.placeholder=""}),n.addEventListener("blur",()=>{l=!1,n.value.trim().length===0&&(n.placeholder=o),h()}),n.addEventListener("input",()=>{if(f(),n.value.trim().length>0){g();return}n.placeholder=l?"":o,h()}),n.addEventListener("keydown",C=>{C.key==="Enter"&&(C.preventDefault(),b()),C.key==="Escape"&&n.value.length>0&&(n.value="",f(),h())}),u.appendChild(m),u.appendChild(p),a.appendChild(n),a.appendChild(u),t.appendChild(a),f(),h(),t._cleanup=()=>{g()},t}function qt(e,t){if(!e||typeof e!="object")return null;const a=e,n=a.type;if(typeof n!="string"||n.length===0)return null;const r=a.title,i=a.payload,o=typeof r=="string"&&r.length>0?r:t;if(!o)return null;const s={title:o,type:n};return i!==void 0&&(s.payload=i),s}function ni(e){const t={title:e.title,type:e.type};return e.payload!==void 0&&(t.payload=e.payload),t}function ri(e,t){const a=[],n=e.props?.actions;if(Array.isArray(n))for(const o of n){const s=qt(o);s&&a.push(s)}const r=e.props?.buttons;if(Array.isArray(r))for(const o of r){if(!o||typeof o!="object")continue;const s=o,c=typeof s.label=="string"?s.label:void 0,l=qt(s.action,c);l&&a.push(l)}if(e.children)for(const o of e.children){const s=t.elements[o];if(!s||s.type!=="ActionButton")continue;const c=typeof s.props?.label=="string"?s.props.label:void 0,l=qt(s.props?.action,c);l&&a.push(l)}const i=new Set;return a.filter(o=>i.has(o.title)?!1:(i.add(o.title),!0))}var ii={ButtonRow:({element:e,spec:t,context:a})=>{const n=ri(e,t).map(ni),r=e.props?.orientation,i={actions:n,onAction:a.onAction,defaultCtaText:a.i18n.defaultCtaText,quickQuestionsAriaLabel:a.i18n.quickQuestionsAriaLabel};return a.onOpenChat!==void 0&&(i.onOpenChat=a.onOpenChat),a.ctaText!==void 0&&(i.ctaText=a.ctaText),(r==="horizontal"||r==="vertical")&&(i.orientation=r),ai(i)},ActionButtons:({element:e,spec:t,context:a})=>{const n={actions:ri(e,t).map(ni),onAction:a.onAction,defaultCtaText:a.i18n.defaultCtaText,quickQuestionsAriaLabel:a.i18n.quickQuestionsAriaLabel};return a.onOpenChat!==void 0&&(n.onOpenChat=a.onOpenChat),a.ctaText!==void 0&&(n.ctaText=a.ctaText),ai(n)},ActionButton:({element:e,context:t})=>{const a=document.createElement("button");a.className="gengage-qna-button gds-chip",a.type="button",a.dataset.gengagePart="qna-action-button";const n=e.props?.label;typeof n=="string"?a.textContent=n:a.textContent=t.i18n.defaultCtaText;const r=qt(e.props?.action,typeof n=="string"?n:void 0);return r&&a.addEventListener("click",()=>t.onAction(r)),a},TextInput:({element:e,context:t})=>{const a=e.props?.placeholder,n=typeof a=="string"||Array.isArray(a)?a:t.inputPlaceholder,r=typeof e.props?.ctaLabel=="string"?e.props.ctaLabel:void 0,i={onSubmit:t.onAction,askQuestionAriaLabel:t.i18n.askQuestionAriaLabel,defaultInputPlaceholder:t.i18n.defaultInputPlaceholder,sendButtonText:t.i18n.sendButton,sendQuestionAriaLabel:t.i18n.sendQuestionAriaLabel};return n!==void 0&&(i.placeholders=n),r!==void 0&&(i.ctaLabel=r),em(i)},QuestionHeading:({element:e,context:t})=>{const a=document.createElement("h3");a.className="gengage-qna-heading",a.dataset.gengagePart="qna-heading";const n=e.props?.text,r=t.headingTitleOverride;return a.textContent=typeof r=="string"&&r.trim().length>0?r:typeof n=="string"?n:"",a},ProductCard:()=>null},oi=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function tm(){return{...ii}}function am(e,t,a=ii,n=oi){return Kt({spec:e,context:t,registry:a,containerClassName:"gengage-qna-uispec",unknownRenderer:n})}function nm(e){if(!e)return;const t=e.extra;if(t&&typeof t=="object"&&!Array.isArray(t)){const n=t.visible_skus??t.visibleSkus;if(Array.isArray(n)){const r=n.filter(i=>typeof i=="string"&&i.trim().length>0).map(i=>i.trim()).slice(0,200);if(r.length>0)return r}}const a=typeof e.sku=="string"&&e.sku.trim()?e.sku.trim():void 0;return a?[a]:void 0}function si(e,t){if(!e)return null;const a=e.action;if(!a||typeof a!="object")return null;const n=a,r=n.type;if(typeof r!="string"||r.length===0)return null;const i=n.title,o=typeof i=="string"&&i.length>0?i:typeof t=="string"&&t.length>0?t:"";if(!o)return null;const s=n.payload,c={title:o,type:r};return s!==void 0&&(c.payload=s),c}function rm(e,t){const a=e.elements[e.root];if(!a)return!1;const n=r=>{if(r.type!=="ActionButton")return!1;const i=r.props;if(!i||typeof i!="object")return!1;const o=typeof i.label=="string"?i.label:void 0;return o===t?!0:si(i,o)?.title===t};if(a.type==="ActionButton")return n(a);if(a.children)for(const r of a.children){const i=e.elements[r];if(i&&n(i))return!0}if(a.type==="ActionButtons"&&Array.isArray(a.props?.buttons)){for(const r of a.props.buttons)if(r?.label===t||r?.action?.title===t)return!0}return!1}var ci=0;function li(){return ci+=1,`gengage-merge-${ci}`}function im(e,t){const a=e.elements[e.root];if(!a||a.type!=="ButtonRow")return;const n=li();e.elements[n]={type:"ActionButton",props:{label:t.title,action:{title:t.title,type:t.type,...t.payload!==void 0?{payload:t.payload}:{}}}},a.children=a.children?[n,...a.children]:[n]}function om(e,t){const a=e.elements[e.root];if(!a||a.type!=="ActionButtons")return;const n=li();e.elements[n]={type:"ActionButton",props:{label:t.title,action:{title:t.title,type:t.type,...t.payload!==void 0?{payload:t.payload}:{}}}},a.children=a.children?[n,...a.children]:[n];const r=a.props?.buttons??[],i={label:t.title,action:{title:t.title,type:t.type,...t.payload!==void 0?{payload:t.payload}:{}}};a.props={...a.props,buttons:[i,...r]}}function sm(e){const t={},a=[];for(let n=0;n<e.length;n++){const r=e[n],i=`action-${n}`;a.push(i),t[i]={type:"ActionButton",props:{label:r.title,action:{title:r.title,type:r.type,...r.payload!==void 0?{payload:r.payload}:{}}}}}return t.root={type:"ButtonRow",children:a},{root:"root",elements:t}}function cm(e){return e.find(t=>{const a=t.elements[t.root];return a?.type==="ActionButtons"||a?.type==="ButtonRow"})}function di(e,t){const a=e.productContextQuickPillLabel,n={text:a};return t&&t.length>0&&(n.sku_list=t),{title:a,type:"user_message",payload:n}}function lm(e,t,a){const n=a?.skuList,r=[],i=[];for(const c of e){const l=c.elements[c.root];if(l?.type==="ActionButton"){const g=l.props;if(si(g,typeof g?.label=="string"?g.label:void 0)?.type==="findSimilar"){r.push(di(t,n));continue}}i.push(c)}if(r.length===0)return e;const o=di(t,n),s=cm(i);if(!s)return[...i,sm([o])];if(!rm(s,o.title)){const c=s.elements[s.root];c?.type==="ActionButtons"?om(s,o):c?.type==="ButtonRow"&&im(s,o)}return i}var gi={quickQuestionsAriaLabel:"Hızlı sorular",askQuestionAriaLabel:"Soru sorun",defaultInputPlaceholder:"Bir soru sorun...",sendButton:"Sor",sendQuestionAriaLabel:"Soruyu gönder",defaultCtaText:"Başka bir şey sor",redirectingToChat:"Sohbete yönlendiriliyor...",productContextQuickPillLabel:"Bu ürün hakkında ne bilmeliyim?"},dm={quickQuestionsAriaLabel:"Quick questions",askQuestionAriaLabel:"Ask a question",defaultInputPlaceholder:"Ask a question...",sendButton:"Ask",sendQuestionAriaLabel:"Send question",defaultCtaText:"Ask something else",redirectingToChat:"Redirecting to chat...",productContextQuickPillLabel:"What should I know about this product?"};function gm(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function pm(e){return gm(e)==="en"?dm:gi}var hm=class extends ft{constructor(...e){super(...e),this._abortController=null,this._debounceTimer=null,this._contentEl=null,this._i18n=gi,this._actionHandler=this._handleAction.bind(this),this._openChatHandler=this._handleOpenChat.bind(this)}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-qna-container",this._contentEl.dataset.gengagePart="qna-container",this.root.appendChild(this._contentEl);const t=e.pageContext?.sku;t&&(this._lastSku=t,await this._fetchAndRender(t)),Tt("qna")}onUpdate(e){const t=e.sku;!t||t===this._lastSku||(this._debounceTimer&&clearTimeout(this._debounceTimer),this._debounceTimer=setTimeout(()=>{this._debounceTimer=null,this._lastSku=t,this._fetchAndRender(t)},50))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.2s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._debounceTimer&&(clearTimeout(this._debounceTimer),this._debounceTimer=null),this._contentEl&&(this._cleanupTextInputTimers(),this._contentEl.remove(),this._contentEl=null)}_abort(){this._abortController?.abort(),this._abortController=null}_resolvedQnaHeaderTitle(){const e=this.config.headerTitle??this.config.headingTitle;if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}_cleanupTextInputTimers(){if(!this._contentEl)return;const e=this._contentEl.querySelectorAll(".gengage-qna-input-wrapper");for(const t of e)t._cleanup?.()}async _fetchAndRender(e){if(this._abort(),this._abortController=new AbortController,!this._contentEl)return;this._cleanupTextInputTimers(),this._contentEl.innerHTML="";const t=this._createLoadingIndicator();this._contentEl.appendChild(t);const a={middlewareUrl:this.config.middlewareUrl},n=crypto.randomUUID(),r=Date.now(),i=ti({source:"qna",locale:this.config.locale});this.track(Jt(this.analyticsContext(),{endpoint:"launcher_action",request_id:n,widget:"qna"}));try{const o={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e,locale:this.config.locale??"tr"},s=this.config.pageContext?.pageType;s!==void 0&&(o.page_type=s);const c=await Xu(o,a,this._abortController.signal);if(this.track(ut(this.analyticsContext(),{request_id:n,latency_ms:Date.now()-r,chunk_count:c.actions.length,widget:"qna"})),this.track(Xt(this.analyticsContext(),{message_count:c.actions.length,history_ref:n,redaction_level:"none",widget:"qna"})),!this._contentEl)return;this._contentEl.innerHTML="";const l=document.createElement("div");l.className="gengage-qna-panel gds-panel",l.dataset.gengagePart="qna-panel",this._contentEl.appendChild(l);const g=this._specIncludesType(c.uiSpecs,"QuestionHeading"),d=this._resolvedQnaHeaderTitle()??(this.config.showStaticQuestion&&this.config.staticQuestionText?this.config.staticQuestionText:void 0);if(!g&&d){const v=document.createElement("h3");v.className="gengage-qna-heading",v.textContent=d,l.appendChild(v)}const h=this.config.inputPlaceholder;let u;if(h!==!0)u=h??this._i18n.defaultInputPlaceholder;else if(c.actions.length>0){const v=c.actions.filter(x=>x.type==="user_message"||x.title.includes("?")).map(x=>x.title);u=v.length>0?v:this._i18n.defaultInputPlaceholder}else u=this._i18n.defaultInputPlaceholder;const m={onAction:this._actionHandler,i18n:this._i18n},p=this._resolvedQnaHeaderTitle();p!==void 0&&(m.headingTitleOverride=p),this.config.hideButtonRowCta||(m.onOpenChat=this._openChatHandler,this.config.ctaText!==void 0&&(m.ctaText=this.config.ctaText)),u!==void 0&&(m.inputPlaceholder=u);const f=this._buildFallbackActionsSpec(c.actions),b=nm(this.config.pageContext),C=(c.uiSpecs.length>0?lm(c.uiSpecs,this._i18n,{skuList:b}):[f]).filter(v=>Object.keys(v.elements).length>0);for(const v of C){const x=this._renderUISpec(v,m);l.appendChild(x)}C.length>0&&Pt("qna"),this._specIncludesType(C,"TextInput")||this._insertStandaloneInputBeforePills(l,m,u)}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;if(ce("gengage:global:error",{source:"qna",code:"FETCH_ERROR",message:Ka(this.config.locale,o)}),this.track(Qt(this.analyticsContext(),{request_id:n,error_code:"FETCH_ERROR",error_message:o instanceof Error?o.message:String(o),widget:"qna"})),this._contentEl){this._cleanupTextInputTimers(),this._contentEl.innerHTML="";const s=document.createElement("div");s.className="gengage-qna-panel",this._contentEl.appendChild(s);const c=this.config.inputPlaceholder===!0?this._i18n.defaultInputPlaceholder:this.config.inputPlaceholder??this._i18n.defaultInputPlaceholder,l={onAction:this._actionHandler,i18n:this._i18n,onOpenChat:this._openChatHandler},g=this._resolvedQnaHeaderTitle();g!==void 0&&(l.headingTitleOverride=g),this.config.ctaText!==void 0&&(l.ctaText=this.config.ctaText),this._appendStandaloneInput(l,c,s)}}finally{i()}}_createLoadingIndicator(){const e=document.createElement("div");e.className="gengage-qna-loading";for(let t=0;t<3;t++){const a=document.createElement("div");a.className="gengage-qna-loading-dot",e.appendChild(a)}return e}_resolveI18n(e){return{...pm(e.locale),...e.i18n}}_resolveUISpecRegistry(){return Yt(tm(),this.config.renderer?.registry)}_renderUISpec(e,t){const a=this._resolveUISpecRegistry(),n=this.config.renderer?.unknownRenderer??oi,r=(o,s)=>am(o,s,a,n),i=this.config.renderer?.renderUISpec;return i?i(e,t,{registry:a,unknownRenderer:n,defaultRender:r}):r(e,t)}_specIncludesType(e,t){for(const a of e)for(const n of Object.values(a.elements))if(n.type===t)return!0;return!1}_buildFallbackActionsSpec(e){if(e.length===0)return{root:"root",elements:{}};const t={},a=[];for(let n=0;n<e.length;n++){const r=e[n],i=`action-${n}`;a.push(i),t[i]={type:"ActionButton",props:{label:r.title,action:{title:r.title,type:r.type,payload:r.payload}}}}return t.root={type:"ButtonRow",children:a},{root:"root",elements:t}}_insertStandaloneInputBeforePills(e,t,a){const n={root:"root",elements:{root:{type:"TextInput",props:{placeholder:a}}}},r=this._renderUISpec(n,t),i=r.querySelector(".gengage-qna-input-wrapper");if(!i)return;const o=e.querySelector(".gengage-qna-uispec"),s=o?.querySelector(":scope > .gengage-qna-buttons");if(o&&s)o.insertBefore(i,s);else if(o){const c=o.querySelector(":scope > .gengage-qna-heading");c?c.insertAdjacentElement("afterend",i):o.prepend(i)}else{e.appendChild(r);return}r.remove()}_appendStandaloneInput(e,t,a){if(!this._contentEl)return;const n={root:"root",elements:{root:{type:"TextInput",props:{placeholder:t}}}},r=this._renderUISpec(n,e);(a??this._contentEl).appendChild(r)}_handleAction(e){this._showTransitionIndicator(),ka(e.title,e.type),this.config.onActionSelected?.(e),setTimeout(()=>ce("gengage:qna:action",e),350)}_handleOpenChat(){this._showTransitionIndicator(),this.config.onOpenChat?.(),setTimeout(()=>ce("gengage:qna:open-chat",{}),350)}_showTransitionIndicator(){if(!this._contentEl)return;this._contentEl.querySelector(".gengage-qna-transition-indicator")?.remove(),this._contentEl.classList.add("gengage-qna--transitioning");const e=this._i18n.redirectingToChat??"Redirecting to chat...",t=document.createElement("div");t.className="gengage-qna-transition-indicator",t.textContent=e,(this._contentEl.querySelector(".gengage-qna-panel")??this._contentEl).appendChild(t),setTimeout(()=>{this._contentEl?.classList.remove("gengage-qna--transitioning"),t.remove()},600)}};function pi(e){const t=[];for(const a of Object.values(e))if(a.type==="ProductCard"&&a.props){const n=a.props.product??a.props;typeof n.sku=="string"&&typeof n.name=="string"&&t.push(n)}return t}function hi(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function um(e,t){const a=[],n={onEvent:r=>{const i=vt(r);!i||i.type!=="ui_spec"||a.push(...pi(i.spec.elements))}};return t!==void 0&&(n.signal=t),await bt(e,n),a}async function mm(e,t,a){const n=yt("similar_products",t),r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};a!==void 0&&(r.signal=a);const i=await fetch(n,r);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(hi(i))return um(i,a);const o=await i.text();if(!o)throw new Error("Empty response body from similar_products endpoint");try{return ps(JSON.parse(o))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function fm(e,t){const a=[];let n=null;const r={onEvent:i=>{const o=vt(i);if(o){if(o.type==="metadata"&&o.meta){const s=o.meta.group_name;if(typeof s=="string"){n={name:s,products:[]};const c=o.meta.highlight;typeof c=="string"&&(n.highlight=c),a.push(n)}}o.type==="ui_spec"&&n&&n.products.push(...pi(o.spec.elements))}}};return t!==void 0&&(r.signal=t),await bt(e,r),a}async function bm(e,t,a){const n=yt("product_groupings",t),r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};a!==void 0&&(r.signal=a);const i=await fetch(n,r);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(hi(i))return fm(i,a);const o=await i.text();if(!o)return[];try{return hs(JSON.parse(o))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}function ui(e){const{product:t,index:a,discountType:n,onClick:r,onAddToCart:i,renderCard:o}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,a);if(p)return p}if(o){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive",p.dataset.gengagePart="simrel-product-card",p.innerHTML=_e(o(t,a)),p.addEventListener("click",f=>{f.target.closest(".gengage-simrel-atc")||f.target.closest(".gengage-chat-product-card-atc")||r(t)}),p}const l=document.createElement("article");l.className="gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive",l.dataset.gengagePart="simrel-product-card",t.inStock===!1&&l.classList.add("gengage-simrel-card--out-of-stock"),l.setAttribute("role","listitem"),l.dataset.sku=t.sku;const g=document.createElement("div");if(g.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",g.dataset.gengagePart="simrel-product-card-image",t.imageUrl&&ye(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",Se(p),g.appendChild(p)}if(n==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${ua(t.discountPercent)}`,g.appendChild(p)}l.appendChild(g);const d=document.createElement("div");if(d.className="gengage-simrel-card-info gengage-chat-product-card-body",d.dataset.gengagePart="simrel-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,d.appendChild(p)}const h=document.createElement("div");if(h.className="gengage-simrel-card-name gengage-chat-product-card-name",h.textContent=t.name,h.title=t.name,d.appendChild(h),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(ma(t.rating)),t.reviewCount!=null){const f=document.createElement("span");f.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",f.textContent=` (${t.reviewCount})`,p.appendChild(f)}d.appendChild(p)}const u=document.createElement("div");if(u.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(n==="strike-through"||!n)){const p=document.createElement("span");p.className="gengage-simrel-card-price-original gengage-chat-product-card-original-price",p.textContent=q(t.originalPrice,c),u.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=q(t.price,c),u.appendChild(p)}d.appendChild(u),l.appendChild(d);const m=document.createElement("button");if(m.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",m.type="button",m.dataset.gengagePart="simrel-product-card-cta",m.textContent=s?.ctaLabel??"View",m.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),r(t)}),l.appendChild(m),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=s?.outOfStockLabel??"Out of Stock",l.appendChild(p)}else if(t.cartCode){const p=document.createElement("button");p.className="gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary",p.type="button",p.textContent=s?.addToCartButton??"Add to Cart",p.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),i({sku:t.sku,quantity:1,cartCode:t.cartCode})}),l.appendChild(p)}return l.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||r(t)}),l}function mi(e){const t=document.createElement("div");t.className="gengage-simrel-grid",t.setAttribute("role","list"),t.setAttribute("aria-label",e.i18n?.similarProductsAriaLabel??"Similar products"),e.columns&&t.style.setProperty("--gengage-simrel-columns",String(e.columns));for(let a=0;a<e.products.length;a++){const n={product:e.products[a],index:a,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(n.i18n=e.i18n),e.discountType!==void 0&&(n.discountType=e.discountType),e.renderCard!==void 0&&(n.renderCard=e.renderCard),e.renderCardElement!==void 0&&(n.renderCardElement=e.renderCardElement);const r=ui(n);t.appendChild(r)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var vm=0;function ym(e){const t=vm++,a=document.createElement("div");if(a.className="gengage-simrel-groups",a.dataset.gengagePart="simrel-groups",e.groups.length===0)return a.style.display="none",a.dataset.empty="true",a;const n=document.createElement("div");n.className="gengage-simrel-tabs gds-toolbar",n.dataset.gengagePart="simrel-tab-bar",n.setAttribute("role","tablist");const r=[],i=[],o=p=>{const f={products:p.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(f.i18n=e.i18n),e.discountType!==void 0&&(f.discountType=e.discountType),e.renderCard!==void 0&&(f.renderCard=e.renderCard),e.renderCardElement!==void 0&&(f.renderCardElement=e.renderCardElement),e.columns!==void 0&&(f.columns=e.columns),f},s=p=>{for(let v=0;v<r.length;v++){const x=v===p;r[v].classList.toggle("gengage-simrel-tab--active",x),r[v].setAttribute("aria-selected",String(x)),r[v].tabIndex=x?0:-1}const f=e.groups[p],b=i[p];b.innerHTML="";const C=mi(o(f));b.appendChild(C);for(let v=0;v<i.length;v++){const x=v===p;i[v].style.display=x?"":"none",i[v].tabIndex=x?0:-1}};for(let p=0;p<e.groups.length;p++){const f=e.groups[p],b=`gengage-simrel-tab-${t}-${p}`,C=`gengage-simrel-panel-${t}-${p}`,v=document.createElement("button");v.className="gengage-simrel-tab gds-tab",v.type="button",v.dataset.gengagePart="simrel-tab",v.id=b,v.textContent=f.name,v.setAttribute("role","tab"),v.setAttribute("aria-controls",C),v.setAttribute("aria-selected",String(p===0)),v.tabIndex=p===0?0:-1,p===0&&v.classList.add("gengage-simrel-tab--active"),v.addEventListener("click",()=>s(p)),v.addEventListener("keydown",k=>{let P=-1;k.key==="ArrowRight"||k.key==="ArrowDown"?P=(p+1)%e.groups.length:k.key==="ArrowLeft"||k.key==="ArrowUp"?P=(p-1+e.groups.length)%e.groups.length:k.key==="Home"?P=0:k.key==="End"&&(P=e.groups.length-1),P>=0&&(k.preventDefault(),s(P),r[P].focus())}),r.push(v),n.appendChild(v);const x=document.createElement("div");x.className="gengage-simrel-tab-panel",x.dataset.gengagePart="simrel-tab-panel",x.id=C,x.setAttribute("role","tabpanel"),x.setAttribute("aria-labelledby",b),x.tabIndex=p===0?0:-1,p!==0&&(x.style.display="none"),i.push(x)}const c=document.createElement("button");c.type="button",c.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left",c.setAttribute("aria-label",e.i18n?.scrollTabsLeft??"Scroll tabs left"),c.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>';const l=document.createElement("button");l.type="button",l.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--right",l.setAttribute("aria-label",e.i18n?.scrollTabsRight??"Scroll tabs right"),l.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>';const g=200;c.addEventListener("click",()=>{n.scrollBy({left:-g,behavior:"smooth"})}),l.addEventListener("click",()=>{n.scrollBy({left:g,behavior:"smooth"})});const d=()=>{const p=n.scrollLeft<=4,f=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;c.style.display=p?"none":"",l.style.display=f?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!f),n.classList.toggle("gengage-simrel-tabs--peek-left",!p)};n.addEventListener("scroll",d,{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(d).observe(n),c.style.display="none",l.style.display="none",requestAnimationFrame(d);const h=document.createElement("div");h.className="gengage-simrel-tabs-wrapper",h.appendChild(c),h.appendChild(n),h.appendChild(l),a.appendChild(h);const u=i[0],m=mi(o(e.groups[0]));u.appendChild(m);for(const p of i)a.appendChild(p);return a}function fi(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const a={sku:t.sku,name:t.name,url:t.url},n=t.imageUrl;typeof n=="string"&&(a.imageUrl=n);const r=t.price;typeof r=="string"&&(a.price=r);const i=t.originalPrice;typeof i=="string"&&(a.originalPrice=i);const o=t.discountPercent;typeof o=="number"&&(a.discountPercent=o);const s=t.brand;typeof s=="string"&&(a.brand=s);const c=t.rating;typeof c=="number"&&(a.rating=c);const l=t.reviewCount;typeof l=="number"&&(a.reviewCount=l);const g=t.cartCode;typeof g=="string"&&(a.cartCode=g);const d=t.inStock;typeof d=="boolean"&&(a.inStock=d);const h=t.extras;return h!=null&&typeof h=="object"&&(a.extras=h),a}function _m(e){if(!e||typeof e!="object")return null;const t=e,a=t.title,n=t.type;if(typeof a!="string"||typeof n!="string")return null;const r={title:a,type:n};return t.payload!==void 0&&(r.payload=t.payload),r}var bi={ProductGrid:({element:e,renderElement:t,context:a})=>{const n=document.createElement("div");n.className="gengage-simrel-grid",n.setAttribute("role","list");const r=e.props?.columns;let i;typeof r=="number"&&Number.isFinite(r)&&r>0?i=Math.floor(r):typeof a.gridColumns=="number"&&Number.isFinite(a.gridColumns)&&a.gridColumns>0&&(i=Math.floor(a.gridColumns)),i!==void 0&&n.style.setProperty("--gengage-simrel-columns",String(i));for(const o of e.children??[]){const s=t(o);s&&n.appendChild(s)}if(n.children.length===0){const o=document.createElement("div");o.className="gengage-simrel-empty",o.textContent=a.i18n.emptyStateMessage,n.appendChild(o)}return n},ProductCard:({element:e,context:t})=>{const a=fi(e.props?.product??e.props);if(!a)return null;const n=e.props?.index,r=typeof n=="number"&&Number.isFinite(n)?n:0,i=e.props?.discountType,o=i==="strike-through"||i==="badge"?i:t.discountType,s={product:a,index:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return o!==void 0&&(s.discountType=o),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),ui(s)},GroupTabs:({element:e,context:t})=>{const a=e.props?.groups;if(!Array.isArray(a))return null;const n=[];for(const o of a){if(!o||typeof o!="object")continue;const s=o;if(typeof s.name!="string")continue;const c=[];if(Array.isArray(s.products))for(const g of s.products){const d=fi(g);d&&c.push(d)}const l={name:s.name,products:c};typeof s.highlight=="string"&&(l.highlight=s.highlight),n.push(l)}const r={groups:n,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},i=e.props?.columns;return typeof i=="number"&&Number.isFinite(i)&&i>0?r.columns=Math.floor(i):typeof t.gridColumns=="number"&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(r.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(r.discountType=t.discountType),t.renderCard!==void 0&&(r.renderCard=t.renderCard),t.renderCardElement!==void 0&&(r.renderCardElement=t.renderCardElement),ym(r)},EmptyState:({element:e,context:t})=>{const a=document.createElement("div");a.className="gengage-simrel-empty";const n=e.props?.message;return a.textContent=typeof n=="string"?n:t.i18n.emptyStateMessage,a},AddToCartButton:({element:e,context:t})=>{const a=e.props?.sku,n=e.props?.cartCode;if(typeof a!="string"||typeof n!="string")return null;const r=document.createElement("button");r.className="gengage-simrel-atc gengage-chat-product-card-cta",r.type="button";const i=e.props?.label;return r.textContent=typeof i=="string"?i:t.i18n.addToCartButton,r.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),t.onAddToCart({sku:a,quantity:1,cartCode:n})}),r},QuickActions:({element:e,context:t})=>{const a=document.createElement("div");a.className="gengage-simrel-quick-actions";const n=e.props?.actions;if(!Array.isArray(n)||!t.onAction)return a;for(const r of n){if(!r||typeof r!="object")continue;const i=r,o=i.label,s=_m(i.action);if(typeof o!="string"||!s)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=o,c.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),t.onAction?.(s)}),a.appendChild(c)}return a}},vi=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const a=document.createElement("div");for(const n of e.children){const r=t(n);r&&a.appendChild(r)}return a};function xm(){return{...bi}}function wm(e,t,a=bi,n=vi){return Kt({spec:e,context:t,registry:a,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var yi={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",ctaLabel:"İncele",outOfStockLabel:"Stokta Yok",decreaseLabel:"Azalt",increaseLabel:"Artır",errorLoadingMessage:"Benzer ürünler yüklenemedi.",retryButtonText:"Tekrar dene",priceSuffix:" TL",scrollTabsLeft:"Sola kaydır",scrollTabsRight:"Sağa kaydır"},km={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",decreaseLabel:"Decrease",increaseLabel:"Increase",errorLoadingMessage:"Could not load similar products.",retryButtonText:"Try again",priceSuffix:"",scrollTabsLeft:"Scroll tabs left",scrollTabsRight:"Scroll tabs right"};function Cm(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Sm(e){return Cm(e)==="en"?km:yi}var Em=class extends ft{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=yi}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-simrel-container",this._contentEl.dataset.gengagePart="simrel-container";const t=this._clampGridColumns(e.gridColumns);t!==void 0&&this._contentEl.style.setProperty("--gengage-simrel-columns",String(t)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),Tt("simrel")}onUpdate(e){const t=e.sku;!t||t===this._lastSku&&this._lastResultCount!==0||(this._lastSku=t,this._fetchAndRender(t))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.3s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&(this._contentEl.remove(),this._contentEl=null)}_handleProductClick(e){const t={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(t.imageUrl=e.imageUrl),e.price!==void 0&&(t.price=e.price),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(t.discountPercent=e.discountPercent),e.brand!==void 0&&(t.brand=e.brand),e.rating!==void 0&&(t.rating=e.rating),e.reviewCount!==void 0&&(t.reviewCount=e.reviewCount),e.cartCode!==void 0&&(t.cartCode=e.cartCode),e.inStock!==void 0&&(t.inStock=e.inStock),this.config.onProductClick?.(t)===!1)return;Ca(e.sku,e.name);const a=this.config.session?.sessionId??null;ce("gengage:similar:product-click",{sku:e.sku,url:e.url,sessionId:a}),this.config.onProductNavigate?.(e.url,e.sku,a)}_handleAddToCart(e){Hn(e.sku,e.quantity),this.config.onAddToCart?.(e),ce("gengage:similar:add-to-cart",e),this.track(Ua(this.analyticsContext(),{attribution_source:"simrel",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??"TRY",line_items:e.quantity,sku:e.sku}))}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}async _fetchAndRender(e){this._abort(),this._abortController=new AbortController;const t=this._abortController.signal,a=setTimeout(()=>this._abortController?.abort(),1e4);if(t.addEventListener("abort",()=>clearTimeout(a)),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const n=document.createElement("div");n.className="gengage-simrel-loading",n.dataset.gengagePart="simrel-loading";const r=document.createElement("div");r.className="gengage-simrel-spinner",r.dataset.gengagePart="simrel-loading-spinner",n.appendChild(r),this._contentEl.appendChild(n);const i={middlewareUrl:this.config.middlewareUrl},o=crypto.randomUUID(),s=Date.now(),c=ti({source:"simrel",locale:this.config.locale});this.track(Jt(this.analyticsContext(),{endpoint:"similar_products",request_id:o,widget:"simrel"}));try{const l={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e};this.config.domain!==void 0&&(l.domain=this.config.domain);const g=await mm(l,i,t);if(this._lastResultCount=g.length,!this._contentEl)return;if(this._contentEl.innerHTML="",g.length>0)try{const d=g.map(m=>m.sku),h=new Map(g.map(m=>[m.sku,m])),u=(await bm({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},i,t)).map(m=>({...m,products:m.products.map(p=>({...h.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(m=>m.products.length>0);if(u.length>0&&this._contentEl){const m=this._buildGroupsSpec(u),p=this._renderUISpec(m);this._contentEl.appendChild(p),Pt("simrel"),this.track(ut(this.analyticsContext(),{request_id:o,latency_ms:Date.now()-s,chunk_count:u.reduce((f,b)=>f+b.products.length,0),widget:"simrel"})),this.track(Xt(this.analyticsContext(),{message_count:u.reduce((f,b)=>f+b.products.length,0),history_ref:o,redaction_level:"none",widget:"simrel"}));return}}catch{}if(this._isSuperseded(t))return;if(this._contentEl){const d=this._buildProductsSpec(g),h=this._renderUISpec(d);this._contentEl.appendChild(h)}g.length>0&&Pt("simrel"),this.track(ut(this.analyticsContext(),{request_id:o,latency_ms:Date.now()-s,chunk_count:g.length,widget:"simrel"})),this.track(Xt(this.analyticsContext(),{message_count:g.length,history_ref:o,redaction_level:"none",widget:"simrel"}))}catch(l){if(l instanceof DOMException&&l.name==="AbortError"&&this._isSuperseded(t))return;if(ce("gengage:global:error",{source:"simrel",code:"FETCH_ERROR",message:Ka(this.config.locale,l)}),this.track(Qt(this.analyticsContext(),{request_id:o,error_code:"FETCH_ERROR",error_message:l instanceof Error?l.message:String(l),widget:"simrel"})),this._contentEl){this._contentEl.innerHTML="";const g=document.createElement("div");g.className="gengage-simrel-error";const d=document.createElement("span");d.textContent=this._i18n.errorLoadingMessage,g.appendChild(d);const h=document.createElement("button");h.className="gengage-simrel-retry",h.textContent=this._i18n.retryButtonText,h.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),g.appendChild(h),this._contentEl.appendChild(g)}}finally{c()}}_clampGridColumns(e){if(!(e===void 0||typeof e!="number"||!Number.isFinite(e)))return Math.max(1,Math.min(12,Math.floor(e)))}_resolveI18n(e){return{...Sm(e.locale),...e.i18n}}_resolveUISpecRegistry(){return Yt(xm(),this.config.renderer?.registry)}_buildRenderContext(){const e=this.config.renderCard,t={onClick:n=>this._handleProductClick(n),onAddToCart:n=>this._handleAddToCart(n),i18n:this._i18n};this.config.discountType!==void 0&&(t.discountType=this.config.discountType),e!==void 0&&(t.renderCard=e),this.config.renderCardElement!==void 0&&(t.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(t.pricing=this.config.pricing);const a=this._clampGridColumns(this.config.gridColumns);return a!==void 0&&(t.gridColumns=a),t}_renderUISpec(e){const t=this._resolveUISpecRegistry(),a=this._buildRenderContext(),n=this.config.renderer?.unknownRenderer??vi,r=(o,s)=>wm(o,s,t,n),i=this.config.renderer?.renderUISpec;return i?i(e,a,{registry:t,unknownRenderer:n,defaultRender:r}):r(e,a)}_buildProductsSpec(e){const t={},a=[];for(let i=0;i<e.length;i++){const o=e[i],s=`product-${i}`;a.push(s),t[s]={type:"ProductCard",props:{product:o,index:i,discountType:this.config.discountType}}}const n={layout:"grid"},r=this._clampGridColumns(this.config.gridColumns);return r!==void 0&&(n.columns=r),t.root={type:"ProductGrid",props:n,children:a},{root:"root",elements:t}}_buildGroupsSpec(e){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:e}}}}}},_i={findSimilarLabel:"Benzerlerini Bul"},Tm={findSimilarLabel:"Find Similar"};function Pm(e,t){return t?.findSimilarLabel?t.findSimilarLabel:(e??"tr").toLowerCase().startsWith("en")?Tm.findSimilarLabel:_i.findSimilarLabel}function jt(e){const t=typeof e.sku=="string"&&e.sku.length>0?e.sku:void 0,a=typeof e.pageContext?.sku=="string"&&e.pageContext.sku.length>0?e.pageContext.sku:void 0;return t??a}var Am=class extends ft{constructor(...e){super(...e),this._button=null,this._label=_i.findSimilarLabel}async onInit(e){this._label=Pm(e.locale,e.i18n),this.root.classList.add("gengage-simbut-root"),window.getComputedStyle(this.root).position==="static"&&(this.root.style.position="relative");const t=document.createElement("button");t.type="button",t.className="gengage-chat-find-similar-pill",t.textContent=this._label,this._button=t;const a=()=>{t.disabled=!(jt(this.config)&&(this.config.onFindSimilar||this.config.chat))};t.addEventListener("click",n=>{n.stopPropagation();const r=jt(this.config);if(!r)return;const i=this.config.imageUrl,o=typeof i=="string"&&pe(i)?i:void 0;if(ka(this._label,"findSimilar"),Un(r),this.config.onFindSimilar){this.config.onFindSimilar(o?{sku:r,imageUrl:o}:{sku:r});return}const s=this.config.chat;if(!s)return;const c={title:this._label,type:"findSimilar",payload:o?{sku:r,image_url:o}:{sku:r}};s.openWithAction(c,{sku:r})}),this.root.appendChild(t),a(),Tt("simbut")}onUpdate(e){if(!this._button)return;const t=!!jt(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}hide(){this.isVisible&&(this.isVisible=!1,this._button&&(this._button.style.display="none"),this.onHide(),this.emit("hide"))}show(){this.isVisible||(this.isVisible=!0,this._button&&(this._button.style.display=""),this.onShow(),this.emit("show"))}_cleanupRoot(){}onShow(){}onHide(){}onDestroy(){this._button?.remove(),this._button=null}setChat(e){if(this.config.chat=e,this._button){const t=!!jt(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}}},Zt=Be({enabled:We().default(!0)}),Lm=Be({chat:Ce().optional(),qna:Ce().optional(),simrel:Ce().optional(),simbut:Ce().optional()}),Im=Be({}),Nm=Ra(["none","x-api-key-header","bearer-header","body-api-key"]),zm=Be({mode:Nm.default("none"),key:Ce().optional(),headerName:Ce().optional(),bodyField:Ce().default("api_key")}),Mm=Be({enabled:We().default(!0),endpoint:Ce().default("/analytics"),auth:zm.default({mode:"none",bodyField:"api_key"}),fireAndForget:We().default(!0),useBeacon:We().default(!0),keepaliveFetch:We().default(!0),timeoutMs:Hr().int().positive().default(4e3),maxRetries:Hr().int().min(0).max(5).default(1)}),xi="__gengageWidgetsInit",Bm=Be({idempotencyKey:Ce().default(xi),requireDomReady:We().default(!0)}),Rm=Ra(["log-and-ignore","throw","delegate"]),Om=Be({unknownActionPolicy:Rm.default("log-and-ignore"),allowScriptCall:We().default(!1)}),uf=Be({version:Tu("1",{error:'version must be "1"'}),accountId:Ce({error:"accountId must be a non-empty string"}).min(1,{error:"accountId must be a non-empty string"}),middlewareUrl:Ce({error:'middlewareUrl must be a valid URL (e.g. "https://your-backend.example.com")'}).url({error:'middlewareUrl must be a valid URL (e.g. "https://your-backend.example.com")'}),locale:Ce().optional(),widgets:Be({chat:Zt.default({enabled:!0}),qna:Zt.default({enabled:!0}),simrel:Zt.default({enabled:!0}),simbut:Zt.default({enabled:!1})}),mounts:Lm.default({}),transport:Im.default({}),analytics:Mm.default({enabled:!0,endpoint:"/analytics",auth:{mode:"none",bodyField:"api_key"},fireAndForget:!0,useBeacon:!0,keepaliveFetch:!0,timeoutMs:4e3,maxRetries:1}),gtm:Bm.default({idempotencyKey:"__gengageWidgetsInit",requireDomReady:!0}),actionHandling:Om.default({unknownActionPolicy:"log-and-ignore",allowScriptCall:!1})}),Dm=`${xi}_overlay_`,Fm="#gengage-qna",$m="#gengage-simrel",Um="#gengage-simbut";function wi(){const e=window;return e.__gengageOverlayRegistry||(e.__gengageOverlayRegistry={instances:{},pending:{}}),e.__gengageOverlayRegistry}function Hm(e){const t={pageType:e.pageContext?.pageType??(e.sku!==void 0?"pdp":"other")},a=e.pageContext;return a?.sku!==void 0&&(t.sku=a.sku),a?.price!==void 0&&(t.price=a.price),a?.categoryTree!==void 0&&(t.categoryTree=a.categoryTree),a?.url!==void 0&&(t.url=a.url),a?.extra!==void 0&&(t.extra=a.extra),e.sku!==void 0&&(t.sku=e.sku),t}function qm(e,t){const a={...e,...t,pageType:t.pageType??e.pageType};return t.sku===void 0&&e.sku!==void 0&&(a.sku=e.sku),a}function Fa(e){return e instanceof HTMLElement||document.querySelector(e)?e:null}function ki(e){return e.idempotencyKey??`${Dm}${e.accountId}`}var jm=class{constructor(e,t){this.options=e,this.onDestroy=t,this._chat=null,this._qna=null,this._simrel=null,this._simbut=null,this._analyticsClient=null,this._offQnaWire=null,this._destroyed=!1,this._queue=Promise.resolve(),this._warnedQnaMountMissing=!1,this._warnedSimRelMountMissing=!1,this._warnedSimButMountMissing=!1,this._warnedSimButNoChat=!1,this.idempotencyKey=ki(e),this.session=ja(e.session),this._pageContext=Hm(e)}get chat(){return this._chat}get qna(){return this._qna}get simrel(){return this._simrel}get simbut(){return this._simbut}get analyticsClient(){return this._analyticsClient}async init(){window.gengage||(window.gengage={}),window.gengage.sessionId=this.session.sessionId,window.gengage.pageContext=this._pageContext,await this._initChat(),this.options.wireQnaToChat!==!1&&(this._offQnaWire=Ki()),await this._syncPdpWidgets(),window.gengage.overlay=this}openChat(e){this._chat?.open(e)}closeChat(){this._chat?.close()}async updateContext(e){this._destroyed||await this._enqueue(async()=>{this._pageContext=qm(this._pageContext,e),window.gengage||(window.gengage={}),window.gengage.pageContext=this._pageContext,this._chat?.update(e),this._qna?.update(e),this._simrel?.update(e),this._simbut?.update(e),await this._syncPdpWidgets()})}async updateSku(e,t="pdp"){await this.updateContext({sku:e,pageType:t})}destroy(){this._destroyed||(this._destroyed=!0,this._offQnaWire?.(),this._offQnaWire=null,this._chat?.destroy(),this._qna?.destroy(),this._simrel?.destroy(),this._simbut?.destroy(),this._chat=null,this._qna=null,this._simrel=null,this._simbut=null,window.gengage?.overlay===this&&delete window.gengage.overlay,this.onDestroy())}async _initChat(){if(this.options.chat?.enabled===!1)return;const e=this.options.middlewareUrl,t=this.options.chat?.productDetailsExtended??this.options.productDetailsExtended,a=this.options.chat?.isDemoWebsite??this.options.isDemoWebsite,n={accountId:this.options.accountId,middlewareUrl:e,session:this.session,pageContext:this._pageContext,variant:this.options.chat?.variant??"floating"};this.options.theme!==void 0&&(n.theme=this.options.theme),this.options.locale!==void 0&&(n.locale=this.options.locale),this.options.pricing!==void 0&&(n.pricing=this.options.pricing),this.options.chat?.mountTarget!==void 0&&(n.mountTarget=this.options.chat.mountTarget),this.options.chat?.pillLauncher!==void 0&&(n.pillLauncher=this.options.chat.pillLauncher),this.options.chat?.launcherImageUrl!==void 0?n.launcherImageUrl=this.options.chat.launcherImageUrl:this.options.chat?.launcherSvg!==void 0&&(n.launcherSvg=this.options.chat.launcherSvg),this.options.chat?.headerTitle!==void 0&&(n.headerTitle=this.options.chat.headerTitle),this.options.chat?.headerAvatarUrl!==void 0&&(n.headerAvatarUrl=this.options.chat.headerAvatarUrl),this.options.chat?.headerBadge!==void 0&&(n.headerBadge=this.options.chat.headerBadge),this.options.chat?.headerCartUrl!==void 0&&(n.headerCartUrl=this.options.chat.headerCartUrl),this.options.chat?.headerFavoritesToggle!==void 0&&(n.headerFavoritesToggle=this.options.chat.headerFavoritesToggle),this.options.chat?.onFavoritesClick!==void 0&&(n.onFavoritesClick=this.options.chat.onFavoritesClick),this.options.chat?.hideMobileLauncher!==void 0&&(n.hideMobileLauncher=this.options.chat.hideMobileLauncher),this.options.chat?.mobileBreakpoint!==void 0&&(n.mobileBreakpoint=this.options.chat.mobileBreakpoint),this.options.chat?.mobileInitialState!==void 0&&(n.mobileInitialState=this.options.chat.mobileInitialState),this.options.chat?.i18n!==void 0&&(n.i18n=this.options.chat.i18n),this.options.chat?.actionHandling!==void 0&&(n.actionHandling=this.options.chat.actionHandling),this.options.chat?.renderer!==void 0&&(n.renderer=this.options.chat.renderer),t!==void 0&&(n.productDetailsExtended=t),a!==void 0&&(n.isDemoWebsite=a),this.options.chat?.productPriceUi!==void 0&&(n.productPriceUi=this.options.chat.productPriceUi),this.options.onScriptCall!==void 0&&(n.onScriptCall=this.options.onScriptCall),this.options.onAddToCart!==void 0&&(n.onAddToCart=this.options.onAddToCart),this.options.chat?.onOpen!==void 0&&(n.onOpen=this.options.chat.onOpen),this.options.chat?.onClose!==void 0&&(n.onClose=this.options.chat.onClose),this._chat=new Vu,await this._chat.init(n)}async _syncPdpWidgets(){if(this._destroyed)return;const e=this._pageContext.sku;if(!(this._pageContext.pageType==="pdp"&&e!==void 0&&e.length>0)){this._qna?.hide(),this._simrel?.hide(),this._simbut?.hide();return}const t=this.options.middlewareUrl;if(this.options.qna?.enabled!==!1){const a=this.options.qna?.mountTarget??Fm,n=Fa(a);if(n)if(this._warnedQnaMountMissing=!1,this._qna)this._qna.show(),this._qna.update({pageType:"pdp",sku:e});else{const r=new hm,i={accountId:this.options.accountId,middlewareUrl:t,session:this.session,pageContext:{pageType:"pdp",sku:e},mountTarget:n};this.options.theme!==void 0&&(i.theme=this.options.theme),this.options.qna?.ctaText!==void 0&&(i.ctaText=this.options.qna.ctaText),this.options.qna?.hideButtonRowCta!==void 0&&(i.hideButtonRowCta=this.options.qna.hideButtonRowCta),this.options.qna?.inputPlaceholder!==void 0&&(i.inputPlaceholder=this.options.qna.inputPlaceholder),this.options.qna?.i18n!==void 0&&(i.i18n=this.options.qna.i18n),this.options.qna?.renderer!==void 0&&(i.renderer=this.options.qna.renderer);const o=this.options.qna?.headerTitle??this.options.qna?.headingTitle;o!==void 0&&(i.headerTitle=o),await r.init(i),this._qna=r}else this._qna?.destroy(),this._qna=null,this._warnedQnaMountMissing||(console.warn(`[gengage] QNA mount target not found: ${a}`),this._warnedQnaMountMissing=!0)}else this._qna?.destroy(),this._qna=null;if(this.options.simrel?.enabled!==!1){const a=this.options.simrel?.mountTarget??$m,n=Fa(a);if(n)if(this._warnedSimRelMountMissing=!1,this._simrel)this._simrel.show(),this._simrel.update({pageType:"pdp",sku:e});else{const r=new Em,i={accountId:this.options.accountId,middlewareUrl:t,session:this.session,sku:e,mountTarget:n};this.options.theme!==void 0&&(i.theme=this.options.theme),this.options.pricing!==void 0&&(i.pricing=this.options.pricing),this.options.simrel?.discountType!==void 0&&(i.discountType=this.options.simrel.discountType),this.options.simrel?.renderCardElement!==void 0&&(i.renderCardElement=this.options.simrel.renderCardElement),this.options.simrel?.renderer!==void 0&&(i.renderer=this.options.simrel.renderer),this.options.onAddToCart!==void 0&&(i.onAddToCart=this.options.onAddToCart),this.options.onProductNavigate!==void 0?i.onProductNavigate=this.options.onProductNavigate:i.onProductNavigate=(o,s,c)=>{pe(o)&&(this._chat?.saveSession(c??this.session.sessionId,s),window.location.href=o)},await r.init(i),this._simrel=r}else this._simrel?.destroy(),this._simrel=null,this._warnedSimRelMountMissing||(console.warn(`[gengage] SimRel mount target not found: ${a}`),this._warnedSimRelMountMissing=!0)}else this._simrel?.destroy(),this._simrel=null;if(this.options.simbut&&this.options.simbut.enabled!==!1){const a=this.options.simbut.mountTarget??Um,n=Fa(a),r=this._chat??this.options.simbut.onFindSimilar;if(n&&r)if(this._warnedSimButMountMissing=!1,this._warnedSimButNoChat=!1,this._simbut)this._simbut.show(),this._simbut.setChat(this._chat),this._simbut.update({pageType:"pdp",sku:e});else{const i=new Am,o={accountId:this.options.accountId,middlewareUrl:t,session:this.session,pageContext:{pageType:"pdp",sku:e},mountTarget:n,chat:this._chat};this.options.theme!==void 0&&(o.theme=this.options.theme),this.options.locale!==void 0&&(o.locale=this.options.locale),this.options.simbut.imageUrl!==void 0&&(o.imageUrl=this.options.simbut.imageUrl),this.options.simbut.i18n!==void 0&&(o.i18n=this.options.simbut.i18n),this.options.simbut.onFindSimilar!==void 0&&(o.onFindSimilar=this.options.simbut.onFindSimilar),await i.init(o),this._simbut=i}else this._simbut?.destroy(),this._simbut=null,!n&&!this._warnedSimButMountMissing?(console.warn(`[gengage] SimBut mount target not found: ${a}`),this._warnedSimButMountMissing=!0):!r&&!this._warnedSimButNoChat&&(console.warn("[gengage] SimBut requires chat to be enabled or simbut.onFindSimilar"),this._warnedSimButNoChat=!0)}else this._simbut?.destroy(),this._simbut=null}_enqueue(e){const t=this._queue.then(e);return this._queue=t.catch(a=>{}),t}};async function Zm(e){const t=ki(e),a=wi(),n=a.instances[t];if(n)return n;const r=a.pending[t];if(r)return r;const i=new jm(e,()=>{const s=wi();delete s.instances[t],delete s.pending[t]}),o=i.init().then(()=>(a.instances[t]=i,delete a.pending[t],i)).catch(s=>{throw delete a.pending[t],s});return a.pending[t]=o,o}var Ci=["gengage:chat:open","gengage:chat:close","gengage:chat:ready","gengage:chat:add-to-cart","gengage:qna:action","gengage:qna:open-chat","gengage:similar:product-click","gengage:similar:add-to-cart","gengage:global:error","gengage:context:update"],Vm=32,Si="#gengage-qna",Ei="#gengage-simrel";function mf(e){return e}function Wm(e){let t=e;if(typeof e=="string"){const i=e.trim();if(i.length===0)return null;if(!i.startsWith("{")&&!i.startsWith("["))return{type:i};try{t=JSON.parse(i)}catch{return null}}if(!t||typeof t!="object")return null;const a=t,n=[a.type,a.command,a.action,a.event].find(i=>typeof i=="string"&&i.length>0);if(!n)return null;let r=a.payload;if(r===void 0&&"data"in a&&(r=a.data),n==="setSession"&&r===void 0){const i={};typeof a.sessionId=="string"&&(i.sessionId=a.sessionId),typeof a.userId=="string"&&(i.userId=a.userId),(i.sessionId!==void 0||i.userId!==void 0)&&(r=i)}return r===void 0?{type:n}:{type:n,payload:r}}function Gm(e){if(typeof e=="string"&&e.length>0)return{sku:e};if(e&&typeof e=="object"&&"sku"in e){const t=e.sku;if(typeof t=="string"&&t.length>0){const a=e.pageType;return a!==void 0?{sku:t,pageType:a}:{sku:t}}}return null}function $a(e,t){return t instanceof HTMLElement?!0:typeof t!="string"?!1:e.document.querySelector(t)!==null}function Ti(e,t,a){if(t instanceof HTMLElement||$a(e,t)||typeof t!="string")return t;if(t.startsWith("#")){const i=t.slice(1);if(i.length>0){const o=e.document.getElementById(i);if(o)return o;const s=e.document.createElement("div");return s.id=i,e.document.body.appendChild(s),s}}const n=e.document.getElementById(a);if(n)return n;const r=e.document.createElement("div");return r.id=a,e.document.body.appendChild(r),r}function Pi(e,t){const a=e.webkit?.messageHandlers?.[t];return a&&typeof a.postMessage=="function"?a.postMessage.bind(a):null}function Vt(e,t){const a=e[t];return a&&typeof a=="object"&&typeof a.postMessage=="function"?a:null}function Ai(e={}){const t=e.win??window,a=e.iosHandlerName??"gengage",n=e.androidInterfaceName??"GengageNative",r=e.reactNativeInterfaceName??"ReactNativeWebView";return Pi(t,a)?"ios":Vt(t,n)?"android":Vt(t,r)?"react-native":"browser"}function Li(e,t={}){const a=t.win??window;if(e.sessionId!==void 0){a.__gengageSessionId=e.sessionId,a.gengage||(a.gengage={}),a.gengage.sessionId=e.sessionId;try{a.sessionStorage.setItem("gengage_session_id",e.sessionId)}catch{}}if(e.userId!==void 0){a.gengage||(a.gengage={});const n=a.gengage,r=n.session??{};r.userId=e.userId,n.session=r}}function Ii(e={}){const t=e.win??window,a=t;if(a.gengageNative)return a.gengageNative;const n=e.iosHandlerName??"gengage",r=e.androidInterfaceName??"GengageNative",i=e.reactNativeInterfaceName??"ReactNativeWebView",o=e.trackedEvents??[...Ci],s=Ai({win:t,iosHandlerName:n,androidInterfaceName:r,reactNativeInterfaceName:i});let c=t.gengage?.overlay??null;const l=[],g=(b,C)=>{const v=C===void 0?{type:b}:{type:b,payload:C};if(s==="ios"){Pi(t,n)?.(v);return}if(s==="android"){Vt(t,r)?.postMessage(JSON.stringify(v));return}if(s==="react-native"){Vt(t,i)?.postMessage(JSON.stringify(v));return}},d=b=>{const C=b.detail;!C||typeof C.namespace!="string"||typeof C.type!="string"||g("bridge_message",{namespace:C.namespace,type:C.type,payload:C.payload})};t.addEventListener("gengage:bridge:message",d);const h=o.map(b=>{const C=v=>{const x=v.detail;g("widget_event",{event:b,detail:x})};return t.addEventListener(b,C),{event:b,handler:C}}),u=b=>{l.length>=Vm&&l.shift(),l.push(b)},m=()=>{if(!c||l.length===0)return;const b=l.splice(0,l.length);for(const C of b)p(C)},p=b=>{const C=Wm(b);if(!C||typeof C.type!="string"){console.warn("[gengage:native-bridge] Invalid message:",b);return}const v=C.type,x=C.payload;switch(v){case"openChat":c?c.openChat(x&&typeof x=="object"?x:x==="half"||x==="full"?{state:x}:void 0):u(C);return;case"closeChat":c?c.closeChat():u(C);return;case"updateContext":c&&x&&typeof x=="object"?c.updateContext(x):c?console.warn("[gengage:native-bridge] updateContext: missing payload"):u(C);return;case"updateSku":{const k=Gm(x);if(c&&k){c.updateSku(k.sku,k.pageType);return}c?console.warn("[gengage:native-bridge] updateSku: missing sku"):u(C);return}case"setSession":x&&typeof x=="object"&&Li(x,{win:t});return;case"destroy":c?.destroy();return;default:t.postMessage({gengage:"native",type:v,payload:x},t.location.origin),e.logUnhandled&&console.warn("[gengage:native-bridge] Unhandled inbound type forwarded:",v)}},f={env:s,sendToNative:g,receive:p,setController(b){c=b,m()},destroy(){t.removeEventListener("gengage:bridge:message",d);for(const b of h)t.removeEventListener(b.event,b.handler);l.splice(0,l.length),t.gengageNative===f&&delete t.gengageNative}};return a.gengageNative=f,f}async function Km(e){const{nativeBridge:t,emitReadyEvent:a=!0,...n}=e,r=Ii(t),i={...n};i.onAddToCart||(i.onAddToCart=l=>{r.sendToNative("addToCart",{sku:l.sku,quantity:l.quantity,cartCode:l.cartCode})}),i.onProductNavigate||(i.onProductNavigate=(l,g,d)=>{r.sendToNative("productNavigate",{url:l,sku:g,sessionId:d})});const o=i.qna?.enabled===!0||i.qna?.mountTarget!==void 0;if(i.qna?.enabled!==!1)if(o){const l=Ti(window,i.qna?.mountTarget??Si,"gengage-qna");i.qna={...i.qna,enabled:!0,mountTarget:l}}else $a(window,Si)||(i.qna={enabled:!1});const s=i.simrel?.enabled===!0||i.simrel?.mountTarget!==void 0;if(i.simrel?.enabled!==!1)if(s){const l=Ti(window,i.simrel?.mountTarget??Ei,"gengage-simrel");i.simrel={...i.simrel,enabled:!0,mountTarget:l}}else $a(window,Ei)||(i.simrel={enabled:!1});const c=await Zm(i);return r.setController(c),a&&r.sendToNative("ready",{sessionId:c.session.sessionId,widgets:{chat:c.chat!==null,qna:c.qna!==null,simrel:c.simrel!==null}}),{controller:c,bridge:r,destroy(){c.destroy(),r.destroy()}}}Ye.DEFAULT_NATIVE_TRACKED_EVENTS=Ci,Ye.applyNativeSession=Li,Ye.createNativeWebViewBridge=Ii,Ye.detectNativeEnvironment=Ai,Ye.initNativeOverlayWidgets=Km})(this.Gengage=this.Gengage||{});
|