@gengage/assistant-fe 0.6.42 → 0.6.44
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/components/ChatDrawer.d.ts +5 -1
- package/dist/chat/runtime.d.ts +1 -1
- package/dist/chat/types.d.ts +18 -0
- package/dist/chat-runtime.js +1 -1
- package/dist/chat.iife.js +25 -25
- package/dist/chat.js +1 -1
- package/dist/common/overlay.d.ts +1 -0
- package/dist/{common-B9n_o9ki.js → common-B_QhTwRK.js} +2 -2
- package/dist/common.js +7 -7
- package/dist/{connection-warning-ByY3TKaG.js → connection-warning-DjGsAS1h.js} +1 -1
- package/dist/{fastIntent-BaNC2CJz.js → fastIntent-DOgXE46i.js} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +12 -12
- package/dist/{native-webview-Ch9lsx7E.js → native-webview-CYX30O3Q.js} +1 -1
- package/dist/native.iife.js +8 -8
- package/dist/native.js +1 -1
- package/dist/{overlay-CPLLn1eK.js → overlay-BPZEIyo_.js} +1 -1
- package/dist/overlay.js +1 -1
- package/dist/qna-runtime.js +1 -1
- package/dist/qna.iife.js +8 -8
- package/dist/qna.js +1 -1
- package/dist/{request-response-cache-DkilqELR.js → request-response-cache-Ddw59jGs.js} +1 -1
- package/dist/{runtime-BkqUiRUi.js → runtime-BJiDilHj.js} +3 -3
- package/dist/{runtime-CmpEARET.js → runtime-Cr3f6wjm.js} +3 -3
- package/dist/{runtime-_ly8XVXC.js → runtime-D39A30T-.js} +1176 -1155
- package/dist/{simbut-CltMk2OF.js → simbut-C-2-g2V1.js} +1 -1
- package/dist/simbut.iife.js +2 -2
- package/dist/simbut.js +1 -1
- package/dist/{simrel-BuCc53Pw.js → simrel-BaahIAgs.js} +1 -1
- package/dist/simrel-runtime.js +1 -1
- package/dist/simrel.iife.js +2 -2
- package/dist/simrel.js +2 -2
- package/dist/{widget-base-vDXD27_n.js → widget-base-DRNUkp-i.js} +4 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { c as Xt, f as Sa, g as Ea, i as Pa, l as
|
|
2
|
-
import { A as Ce, C as Ma, D as Na, E as Ba, M as
|
|
3
|
-
import { i as ze, s as Qt, t as Ya } from "./widget-base-
|
|
4
|
-
import { d as he, f as Za, i as Xa, n as Qa, p as Ja, r as en, t as wt, u as tn } from "./fastIntent-
|
|
1
|
+
import { c as Xt, f as Sa, g as Ea, i as Pa, l as La, m as Ta, n as Aa, t as Ia } from "./request-response-cache-Ddw59jGs.js";
|
|
2
|
+
import { A as Ce, C as Ma, D as Na, E as Ba, M as de, N as be, O as za, S as yt, T as Ra, _ as Ha, a as _e, b as Fa, d as Da, f as Oa, g as Ua, h as ja, j as ve, l as qa, m as $a, p as Va, u as Ga, v as Wa, w as at, x as Ka } from "./context-UTzCGyR9.js";
|
|
3
|
+
import { i as ze, s as Qt, t as Ya } from "./widget-base-DRNUkp-i.js";
|
|
4
|
+
import { d as he, f as Za, i as Xa, n as Qa, p as Ja, r as en, t as wt, u as tn } from "./fastIntent-DOgXE46i.js";
|
|
5
5
|
import { t as Ue } from "./locale-uQ5XZ2yS.js";
|
|
6
|
-
import { a as Jt, i as ea, n as
|
|
6
|
+
import { a as Jt, i as ea, n as xe, r as ta, t as ae } from "./price-formatter-CHUmYq8I.js";
|
|
7
7
|
function _t() {
|
|
8
8
|
const t = Date.now(), e = new Uint8Array(16);
|
|
9
9
|
crypto.getRandomValues(e), e[0] = t / 2 ** 40 & 255, e[1] = t / 2 ** 32 & 255, e[2] = t / 2 ** 24 & 255, e[3] = t / 2 ** 16 & 255, e[4] = t / 2 ** 8 & 255, e[5] = t & 255, e[6] = e[6] & 15 | 112, e[8] = e[8] & 63 | 128;
|
|
@@ -754,7 +754,7 @@ function Pn(t, e) {
|
|
|
754
754
|
const a = ra(t.props ?? {}) ?? { summary: "" };
|
|
755
755
|
return ia(En(e), a);
|
|
756
756
|
}
|
|
757
|
-
function
|
|
757
|
+
function Ln(t, e, a) {
|
|
758
758
|
t.innerHTML = "", a && t.appendChild(ia(e, a));
|
|
759
759
|
}
|
|
760
760
|
var Et = '<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>', Pt = {
|
|
@@ -762,7 +762,7 @@ var Et = '<svg viewBox="0 0 16 16" class="gengage-chat-icon"><path d="M3 8h10M9
|
|
|
762
762
|
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>',
|
|
763
763
|
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>',
|
|
764
764
|
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>'
|
|
765
|
-
},
|
|
765
|
+
}, Tn = Re, An = 1400, Lt = 1500, In = /data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;
|
|
766
766
|
async function Mn(t) {
|
|
767
767
|
for (const e of t) for (const a of e.types)
|
|
768
768
|
if (a.startsWith("image/"))
|
|
@@ -804,24 +804,41 @@ async function Nn(t) {
|
|
|
804
804
|
}
|
|
805
805
|
var Bn = class {
|
|
806
806
|
_renderPhotoAnalysisCard(t, e) {
|
|
807
|
-
|
|
807
|
+
Ln(t, {
|
|
808
808
|
badge: this.i18n.photoAnalysisBadge,
|
|
809
809
|
strengths: this.i18n.photoAnalysisStrengthsLabel,
|
|
810
810
|
focus: this.i18n.photoAnalysisFocusLabel,
|
|
811
811
|
celebStyle: this.i18n.photoAnalysisCelebStyleLabel
|
|
812
812
|
}, e);
|
|
813
813
|
}
|
|
814
|
+
_createLegacyHeaderPoweredBy() {
|
|
815
|
+
const t = typeof this.i18n.poweredBy == "string" ? this.i18n.poweredBy.trim() : "";
|
|
816
|
+
if (!t) return null;
|
|
817
|
+
const e = document.createElement("a");
|
|
818
|
+
return e.className = "gengage-chat-header-powered", e.dataset.gengagePart = "chat-header-powered-by", e.href = "https://gengage.ai/", e.target = "_blank", e.rel = "noopener noreferrer", e.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>${t}`, e;
|
|
819
|
+
}
|
|
820
|
+
_createFooterAttribution() {
|
|
821
|
+
const t = document.createElement("div");
|
|
822
|
+
t.className = "gengage-chat-footer", t.dataset.gengagePart = "chat-footer";
|
|
823
|
+
const e = this._options.footerAttribution, a = typeof e?.label == "string" ? e.label.trim() : "", n = typeof e?.href == "string" ? e.href.trim() : "", r = typeof this.i18n.poweredBy == "string" ? this.i18n.poweredBy.trim() : "", i = a || r;
|
|
824
|
+
if (!i) return null;
|
|
825
|
+
if (n && ve(n)) {
|
|
826
|
+
const o = document.createElement("a");
|
|
827
|
+
return o.className = "gengage-chat-footer-link", o.dataset.gengagePart = "chat-footer-link", o.href = n, o.target = e?.target || "_blank", o.rel = e?.rel || "noopener noreferrer", o.textContent = i, typeof e?.ariaLabel == "string" && e.ariaLabel.trim() && o.setAttribute("aria-label", e.ariaLabel.trim()), t.appendChild(o), t;
|
|
828
|
+
}
|
|
829
|
+
return t.textContent = i, t;
|
|
830
|
+
}
|
|
814
831
|
constructor(t, e) {
|
|
815
832
|
this._sendStopHandler = null, this._panelVisible = !1, this._panelCollapsed = !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 = /* @__PURE__ */ new Set(), this._voiceInput = null, this._micBtn = null, this._voiceEnabled = !1, this._voiceLang = "tr-TR", this._ignoreNextDividerClick = !1, 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._cartToastEl = null, this._cartToastTimerId = null, this._options = e, this.i18n = {
|
|
816
|
-
...
|
|
833
|
+
...Tn,
|
|
817
834
|
...e.i18n
|
|
818
835
|
}, this.onSend = e.onSend, e.onPanelToggle !== void 0 && (this._onPanelToggle = e.onPanelToggle), e.onHostShellSync !== void 0 && (this._onHostShellSync = e.onHostShellSync), e.onAttachment !== void 0 && (this._onAttachment = e.onAttachment), e.onRollback !== void 0 && (this._onRollback = e.onRollback), e.onLinkClick !== void 0 && (this._onLinkClick = e.onLinkClick), e.voiceEnabled && (this._voiceEnabled = !0), e.voiceLang !== void 0 && (this._voiceLang = e.voiceLang), this.root = document.createElement("div"), this.root.className = "gengage-chat-drawer gds-panel", this.root.dataset.gengagePart = "chat-drawer", this.root.setAttribute("role", "dialog"), this.root.setAttribute("aria-label", this.i18n.headerTitle ?? "Chat"), this.root.setAttribute("aria-modal", "true");
|
|
819
836
|
const a = "gengage-chat-dialog-desc", n = document.createElement("span");
|
|
820
837
|
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);
|
|
821
838
|
let r = null;
|
|
822
839
|
{
|
|
823
|
-
const
|
|
824
|
-
|
|
840
|
+
const y = document.createElement("div");
|
|
841
|
+
y.className = "gengage-chat-drawer-handle", y.dataset.gengagePart = "chat-drawer-handle", y.setAttribute("aria-hidden", "true"), y.style.pointerEvents = "none", r = y;
|
|
825
842
|
}
|
|
826
843
|
const i = document.createElement("div");
|
|
827
844
|
i.className = "gengage-chat-header gds-shell-header", i.dataset.gengagePart = "chat-header";
|
|
@@ -829,8 +846,8 @@ var Bn = class {
|
|
|
829
846
|
o.className = "gengage-chat-header-left", o.dataset.gengagePart = "chat-header-left";
|
|
830
847
|
const s = e.headerAvatarUrl ?? e.launcherImageUrl, c = typeof e.headerAvatarUrl == "string" && e.headerAvatarUrl.length > 0 && e.headerAvatarUrl !== e.launcherImageUrl;
|
|
831
848
|
if (s) {
|
|
832
|
-
const
|
|
833
|
-
|
|
849
|
+
const y = document.createElement("img");
|
|
850
|
+
y.className = "gengage-chat-header-avatar", c && y.classList.add("gengage-chat-header-avatar--logo"), y.dataset.gengagePart = "chat-header-avatar", y.src = s, y.alt = e.headerTitle ?? "Assistant", o.appendChild(y);
|
|
834
851
|
}
|
|
835
852
|
const l = document.createElement("div");
|
|
836
853
|
l.className = "gengage-chat-header-info", l.dataset.gengagePart = "chat-header-info";
|
|
@@ -838,70 +855,72 @@ var Bn = class {
|
|
|
838
855
|
d.className = "gengage-chat-header-title-row", d.dataset.gengagePart = "chat-header-title-row";
|
|
839
856
|
const p = document.createElement("span");
|
|
840
857
|
if (p.className = "gengage-chat-header-title", p.dataset.gengagePart = "chat-header-title", p.textContent = e.headerTitle ?? this.i18n.headerTitle ?? "Product Expert", d.appendChild(p), e.headerBadge) {
|
|
841
|
-
const
|
|
842
|
-
|
|
858
|
+
const y = document.createElement("span");
|
|
859
|
+
y.className = "gengage-chat-header-badge gds-badge gds-badge-brand", y.dataset.gengagePart = "chat-header-badge", y.textContent = e.headerBadge, d.appendChild(y);
|
|
843
860
|
}
|
|
844
|
-
l.appendChild(d)
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
861
|
+
if (l.appendChild(d), e.footerAttribution === void 0) {
|
|
862
|
+
const y = this._createLegacyHeaderPoweredBy();
|
|
863
|
+
y && l.appendChild(y);
|
|
864
|
+
}
|
|
865
|
+
o.appendChild(l), i.appendChild(o);
|
|
866
|
+
const h = document.createElement("div");
|
|
867
|
+
h.className = "gengage-chat-header-right", h.dataset.gengagePart = "chat-header-actions";
|
|
849
868
|
{
|
|
850
|
-
const
|
|
851
|
-
|
|
869
|
+
const y = document.createElement("button");
|
|
870
|
+
y.type = "button", y.className = "gengage-chat-header-btn gengage-chat-header-btn--reopen-panel gds-btn gds-btn-ghost gds-icon-btn", y.dataset.gengagePart = "chat-header-reopen-panel", y.setAttribute("aria-label", this.i18n.showPanelAriaLabel), y.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>', y.addEventListener("click", () => this._showMobilePanelFromBtn()), h.appendChild(y), this._reopenPanelBtn = y;
|
|
852
871
|
}
|
|
853
872
|
if (e.headerCartUrl || e.onCartClick) {
|
|
854
|
-
const
|
|
855
|
-
|
|
873
|
+
const y = document.createElement("button");
|
|
874
|
+
y.type = "button", y.className = "gengage-chat-header-btn gengage-chat-header-btn--cart gds-btn gds-btn-ghost gds-icon-btn", y.dataset.gengagePart = "chat-header-cart", y.setAttribute("aria-label", this.i18n.cartAriaLabel), y.title = this.i18n.cartAriaLabel, y.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><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>', y.addEventListener("click", () => e.onCartClick?.()), h.appendChild(y), this._cartBtn = y;
|
|
856
875
|
}
|
|
857
876
|
if (e.onHistoryClick) {
|
|
858
|
-
const
|
|
859
|
-
|
|
877
|
+
const y = document.createElement("button");
|
|
878
|
+
y.type = "button", y.className = "gengage-chat-header-btn gengage-chat-header-btn--history gds-btn gds-btn-ghost gds-icon-btn", y.dataset.gengagePart = "chat-header-history", y.setAttribute("aria-label", this.i18n.historyAriaLabel), y.title = this.i18n.historyAriaLabel, y.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 8v5l3 2"/><path d="M3.05 11A9 9 0 1 1 5 17.5"/><path d="M3 8v4h4"/></svg>', y.addEventListener("click", () => e.onHistoryClick?.()), h.appendChild(y);
|
|
860
879
|
}
|
|
861
880
|
if (e.onNewChat) {
|
|
862
|
-
const
|
|
863
|
-
|
|
864
|
-
}
|
|
865
|
-
const
|
|
866
|
-
if (
|
|
867
|
-
const
|
|
868
|
-
|
|
869
|
-
const
|
|
870
|
-
|
|
881
|
+
const y = document.createElement("button");
|
|
882
|
+
y.className = "gengage-chat-header-btn gengage-chat-new-chat gds-btn gds-btn-ghost gds-icon-btn", y.dataset.gengagePart = "chat-header-new-chat", y.type = "button", y.setAttribute("aria-label", this.i18n.newChatButton), y.title = this.i18n.newChatButton, y.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>', y.addEventListener("click", () => e.onNewChat?.()), h.appendChild(y);
|
|
883
|
+
}
|
|
884
|
+
const m = document.createElement("button");
|
|
885
|
+
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", e.onClose), e.showHeaderFavorites) {
|
|
886
|
+
const y = document.createElement("button");
|
|
887
|
+
y.className = "gengage-chat-header-btn gengage-chat-header-btn--fav gds-btn gds-btn-ghost gds-icon-btn", y.dataset.gengagePart = "chat-header-favorites", y.type = "button", y.setAttribute("aria-label", this.i18n.favoritesAriaLabel), y.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>';
|
|
888
|
+
const Y = document.createElement("span");
|
|
889
|
+
Y.className = "gengage-chat-header-fav-badge", Y.dataset.gengagePart = "chat-header-favorites-badge", Y.setAttribute("aria-hidden", "true"), Y.style.display = "none", y.appendChild(Y), this._favBadgeEl = Y, y.addEventListener("click", () => {
|
|
871
890
|
e.onFavoritesClick?.();
|
|
872
|
-
}),
|
|
891
|
+
}), h.appendChild(y);
|
|
873
892
|
}
|
|
874
|
-
|
|
893
|
+
h.appendChild(m), r && i.insertBefore(r, i.firstChild), i.appendChild(h);
|
|
875
894
|
{
|
|
876
|
-
let
|
|
877
|
-
const
|
|
878
|
-
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) ||
|
|
879
|
-
const
|
|
880
|
-
|
|
881
|
-
},
|
|
882
|
-
if (!
|
|
883
|
-
const
|
|
884
|
-
if (!
|
|
885
|
-
|
|
886
|
-
const
|
|
887
|
-
|
|
888
|
-
},
|
|
889
|
-
if (!
|
|
890
|
-
|
|
891
|
-
const
|
|
892
|
-
let
|
|
893
|
-
|
|
895
|
+
let Y = 0, ce = 0, ie = !1;
|
|
896
|
+
const M = (V) => {
|
|
897
|
+
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) || V.target.closest('button, a, input, [role="button"]')) return;
|
|
898
|
+
const G = V.changedTouches?.[0];
|
|
899
|
+
G && (Y = G.clientY, ce = 0, ie = !0, this.root.style.transition = "none");
|
|
900
|
+
}, H = (V) => {
|
|
901
|
+
if (!ie) return;
|
|
902
|
+
const G = V.changedTouches?.[0];
|
|
903
|
+
if (!G) return;
|
|
904
|
+
ce = G.clientY - Y;
|
|
905
|
+
const J = (e.getMobileState?.() ?? "full") === "full" ? Math.max(0, ce) : ce;
|
|
906
|
+
V.preventDefault(), this.root.style.transform = `translateY(${J}px)`;
|
|
907
|
+
}, ee = () => {
|
|
908
|
+
if (!ie) return;
|
|
909
|
+
ie = !1;
|
|
910
|
+
const V = e.getMobileState?.() ?? "full";
|
|
911
|
+
let G;
|
|
912
|
+
ce > 72 ? G = V === "full" ? "half" : "close" : ce < -72 && V === "half" ? G = "full" : G = V, this.root.style.transition = "", G === "close" ? (this.root.style.transform = "translateY(100%)", setTimeout(() => {
|
|
894
913
|
this.root.style.transform = "", e.onMobileSnap?.("close");
|
|
895
|
-
}, 280)) : (this.root.style.transform = "", e.onMobileSnap?.(
|
|
896
|
-
},
|
|
897
|
-
|
|
914
|
+
}, 280)) : (this.root.style.transform = "", e.onMobileSnap?.(G)), ce = 0;
|
|
915
|
+
}, pe = () => {
|
|
916
|
+
ie && (ie = !1, ce = 0, this.root.style.transition = "", this.root.style.transform = "");
|
|
898
917
|
};
|
|
899
|
-
i.addEventListener("touchstart",
|
|
900
|
-
i.removeEventListener("touchstart",
|
|
918
|
+
i.addEventListener("touchstart", M, { passive: !0 }), i.addEventListener("touchmove", H, { passive: !1 }), i.addEventListener("touchend", ee, { passive: !0 }), i.addEventListener("touchcancel", pe, { passive: !0 }), this._cleanups.push(() => {
|
|
919
|
+
i.removeEventListener("touchstart", M), i.removeEventListener("touchmove", H), i.removeEventListener("touchend", ee), i.removeEventListener("touchcancel", pe);
|
|
901
920
|
});
|
|
902
921
|
}
|
|
903
|
-
const
|
|
904
|
-
|
|
922
|
+
const x = document.createElement("div");
|
|
923
|
+
x.className = "gengage-chat-body", x.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 _n({
|
|
905
924
|
onBack: () => e.onPanelBack?.(),
|
|
906
925
|
onForward: () => e.onPanelForward?.(),
|
|
907
926
|
onClose: () => {
|
|
@@ -911,186 +930,186 @@ var Bn = class {
|
|
|
911
930
|
forwardAriaLabel: this.i18n.forwardAriaLabel,
|
|
912
931
|
closePanelAriaLabel: this.i18n.closePanelAriaLabel
|
|
913
932
|
}), this._panelEl.appendChild(this._panelTopBar.getElement());
|
|
914
|
-
const
|
|
915
|
-
this._panelEl.addEventListener("scroll",
|
|
916
|
-
const
|
|
917
|
-
|
|
933
|
+
const v = () => this._updateScrollAffordance();
|
|
934
|
+
this._panelEl.addEventListener("scroll", v, { passive: !0 }), this._cleanups.push(() => this._panelEl.removeEventListener("scroll", v)), x.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);
|
|
935
|
+
const u = document.createElement("button");
|
|
936
|
+
u.className = "gengage-chat-panel-divider-toggle gds-btn gds-btn-ghost", u.dataset.gengagePart = "chat-panel-divider-toggle", u.type = "button", u.setAttribute("aria-label", this.i18n.togglePanelAriaLabel), u.setAttribute("title", this.i18n.togglePanelAriaLabel), u.textContent = "»", u.addEventListener("click", () => {
|
|
918
937
|
if (this._ignoreNextDividerClick) {
|
|
919
938
|
this._ignoreNextDividerClick = !1;
|
|
920
939
|
return;
|
|
921
940
|
}
|
|
922
941
|
this.togglePanel(), this._onPanelToggle?.();
|
|
923
942
|
});
|
|
924
|
-
let
|
|
925
|
-
const
|
|
943
|
+
let g = null, _ = null;
|
|
944
|
+
const w = 24, b = (y) => {
|
|
926
945
|
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768)) return;
|
|
927
|
-
const
|
|
928
|
-
|
|
929
|
-
},
|
|
930
|
-
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) ||
|
|
931
|
-
const
|
|
932
|
-
if (!
|
|
933
|
-
const
|
|
934
|
-
if (
|
|
935
|
-
const
|
|
936
|
-
|
|
946
|
+
const Y = y.changedTouches?.[0];
|
|
947
|
+
Y && (g = Y.clientX, _ = Y.clientY);
|
|
948
|
+
}, A = (y) => {
|
|
949
|
+
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) || g === null || _ === null) return;
|
|
950
|
+
const Y = y.changedTouches?.[0];
|
|
951
|
+
if (!Y) return;
|
|
952
|
+
const ce = Y.clientX - g, ie = Y.clientY - _;
|
|
953
|
+
if (g = null, _ = null, Math.abs(ie) < w || Math.abs(ie) < Math.abs(ce)) return;
|
|
954
|
+
const M = ie < 0;
|
|
955
|
+
M !== this._panelCollapsed && (this._ignoreNextDividerClick = !0, this.setPanelCollapsed(M), this._onPanelToggle?.());
|
|
937
956
|
};
|
|
938
|
-
this._dividerEl.addEventListener("touchstart",
|
|
939
|
-
this._dividerEl.removeEventListener("touchstart",
|
|
940
|
-
}), this._dividerEl.appendChild(
|
|
957
|
+
this._dividerEl.addEventListener("touchstart", b, { passive: !0 }), this._dividerEl.addEventListener("touchend", A, { passive: !0 }), this._cleanups.push(() => {
|
|
958
|
+
this._dividerEl.removeEventListener("touchstart", b), this._dividerEl.removeEventListener("touchend", A);
|
|
959
|
+
}), this._dividerEl.appendChild(u), x.appendChild(this._dividerEl);
|
|
960
|
+
const T = document.createElement("div");
|
|
961
|
+
T.className = "gengage-chat-conversation", T.dataset.gengagePart = "chat-conversation", this._conversationEl = T, T.appendChild(i);
|
|
941
962
|
const k = document.createElement("div");
|
|
942
|
-
k.className = "gengage-chat-
|
|
943
|
-
const
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
const W = document.createElement("button");
|
|
950
|
-
W.type = "button", W.className = "gengage-chat-former-messages-btn gds-chip", W.dataset.gengagePart = "chat-former-messages-button", W.textContent = this.i18n.showFormerMessagesButton, W.setAttribute("aria-label", this.i18n.showFormerMessagesButton), W.style.display = "none", W.addEventListener("click", () => {
|
|
963
|
+
k.className = "gengage-chat-offline-bar gds-evidence-card gds-evidence-card-warning", k.dataset.gengagePart = "chat-offline-bar", k.setAttribute("role", "status"), k.setAttribute("aria-live", "polite"), k.textContent = this.i18n.offlineMessage, typeof navigator < "u" && !navigator.onLine && k.classList.add("gengage-chat-offline-bar--visible"), T.appendChild(k);
|
|
964
|
+
const P = () => k.classList.add("gengage-chat-offline-bar--visible"), z = () => k.classList.remove("gengage-chat-offline-bar--visible");
|
|
965
|
+
window.addEventListener("offline", P), window.addEventListener("online", z), this._cleanups.push(() => {
|
|
966
|
+
window.removeEventListener("offline", P), window.removeEventListener("online", z);
|
|
967
|
+
}), this._kvkkSlot = document.createElement("div"), this._kvkkSlot.className = "gengage-chat-kvkk-slot", this._kvkkSlot.dataset.gengagePart = "chat-kvkk-slot", T.appendChild(this._kvkkSlot), this.messagesEl = document.createElement("div"), this.messagesEl.id = dt, 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), Ct(this.messagesEl);
|
|
968
|
+
const U = document.createElement("button");
|
|
969
|
+
U.type = "button", U.className = "gengage-chat-former-messages-btn gds-chip", U.dataset.gengagePart = "chat-former-messages-button", U.textContent = this.i18n.showFormerMessagesButton, U.setAttribute("aria-label", this.i18n.showFormerMessagesButton), U.style.display = "none", U.addEventListener("click", () => {
|
|
951
970
|
this._options.presentation?.onReleasePresentationFocus?.();
|
|
952
|
-
}), this.messagesEl.appendChild(
|
|
953
|
-
const
|
|
971
|
+
}), this.messagesEl.appendChild(U), this._formerMessagesBtn = U;
|
|
972
|
+
const X = () => {
|
|
954
973
|
this._userInteractionUntil = Date.now() + 2e3;
|
|
955
974
|
};
|
|
956
|
-
let
|
|
957
|
-
const
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
const { scrollTop:
|
|
961
|
-
this._userScrolledUp =
|
|
962
|
-
const
|
|
963
|
-
|
|
975
|
+
let E = !1;
|
|
976
|
+
const R = () => this._options.presentation, F = () => {
|
|
977
|
+
E || (E = !0, requestAnimationFrame(() => {
|
|
978
|
+
E = !1;
|
|
979
|
+
const { scrollTop: y, scrollHeight: Y, clientHeight: ce } = this.messagesEl, ie = Y - y - ce;
|
|
980
|
+
this._userScrolledUp = ie > 10;
|
|
981
|
+
const M = this._presentationPinned ? ie < 96 : ie < 32, H = Date.now(), ee = H < this._programmaticScrollUntil, pe = !M && H < this._userInteractionUntil, V = ee ? !1 : pe;
|
|
982
|
+
M !== this._presentationPinned && (this._presentationPinned = M, R()?.onPinnedToBottomChange?.(M)), V !== this._presentationUserInteracting && (this._presentationUserInteracting = V, R()?.onUserInteractingChange?.(V));
|
|
964
983
|
}));
|
|
965
984
|
};
|
|
966
|
-
this.messagesEl.addEventListener("scroll",
|
|
967
|
-
this.messagesEl.removeEventListener("scroll",
|
|
985
|
+
this.messagesEl.addEventListener("scroll", F, { passive: !0 }), this._cleanups.push(() => {
|
|
986
|
+
this.messagesEl.removeEventListener("scroll", F);
|
|
968
987
|
});
|
|
969
|
-
const
|
|
970
|
-
|
|
988
|
+
const B = (y) => {
|
|
989
|
+
X(), y.deltaY < -6 && this._presentationFocusThreadId && this._options.presentation?.onFormerMessagesHint?.();
|
|
971
990
|
};
|
|
972
|
-
this.messagesEl.addEventListener("wheel",
|
|
973
|
-
const
|
|
974
|
-
|
|
975
|
-
},
|
|
976
|
-
|
|
977
|
-
const
|
|
978
|
-
typeof
|
|
991
|
+
this.messagesEl.addEventListener("wheel", B, { passive: !0 }), this._cleanups.push(() => this.messagesEl.removeEventListener("wheel", B));
|
|
992
|
+
const C = (y) => {
|
|
993
|
+
X(), this._touchStartY = y.touches[0]?.clientY ?? null;
|
|
994
|
+
}, O = (y) => {
|
|
995
|
+
X();
|
|
996
|
+
const Y = y.touches[0]?.clientY, ce = this._touchStartY;
|
|
997
|
+
typeof Y == "number" && typeof ce == "number" && Y - ce > 10 && this._presentationFocusThreadId && this._options.presentation?.onFormerMessagesHint?.();
|
|
979
998
|
};
|
|
980
|
-
this.messagesEl.addEventListener("touchstart",
|
|
981
|
-
this.messagesEl.removeEventListener("touchstart",
|
|
982
|
-
}),
|
|
983
|
-
const
|
|
984
|
-
|
|
985
|
-
const
|
|
986
|
-
|
|
987
|
-
|
|
999
|
+
this.messagesEl.addEventListener("touchstart", C, { passive: !0 }), this.messagesEl.addEventListener("touchmove", O, { passive: !0 }), this._cleanups.push(() => {
|
|
1000
|
+
this.messagesEl.removeEventListener("touchstart", C), this.messagesEl.removeEventListener("touchmove", O);
|
|
1001
|
+
}), T.appendChild(this.messagesEl), 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";
|
|
1002
|
+
const N = document.createElement("div");
|
|
1003
|
+
N.className = "gengage-chat-pills-scroll", N.dataset.gengagePart = "chat-suggestion-pills-scroll", this._pillsEl.appendChild(N);
|
|
1004
|
+
const q = document.createElement("button");
|
|
1005
|
+
q.className = "gengage-chat-pills-arrow gds-btn gds-btn-ghost", q.dataset.gengagePart = "chat-suggestion-pills-more", q.type = "button", q.setAttribute("aria-label", this.i18n.moreSuggestionsAriaLabel), q.textContent = "›", q.addEventListener("click", () => {
|
|
1006
|
+
N.scrollBy({
|
|
988
1007
|
left: 150,
|
|
989
1008
|
behavior: "smooth"
|
|
990
1009
|
});
|
|
991
|
-
}), this._pillsEl.appendChild(
|
|
992
|
-
let
|
|
993
|
-
const
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
const
|
|
997
|
-
|
|
1010
|
+
}), this._pillsEl.appendChild(q);
|
|
1011
|
+
let D = !1;
|
|
1012
|
+
const ne = () => {
|
|
1013
|
+
D || (D = !0, requestAnimationFrame(() => {
|
|
1014
|
+
D = !1;
|
|
1015
|
+
const y = N.scrollLeft + N.clientWidth >= N.scrollWidth - 4;
|
|
1016
|
+
q.style.display = y ? "none" : "";
|
|
998
1017
|
}));
|
|
999
1018
|
};
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
}),
|
|
1003
|
-
const
|
|
1004
|
-
|
|
1019
|
+
N.addEventListener("scroll", ne, { passive: !0 }), this._cleanups.push(() => {
|
|
1020
|
+
N.removeEventListener("scroll", ne);
|
|
1021
|
+
}), T.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", T.appendChild(this._inputChipsEl);
|
|
1022
|
+
const W = document.createElement("div");
|
|
1023
|
+
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", () => {
|
|
1005
1024
|
this._resizeRafId !== null && cancelAnimationFrame(this._resizeRafId), this._resizeRafId = requestAnimationFrame(() => {
|
|
1006
1025
|
this._resizeRafId = null, this.inputEl.style.height = "auto", this.inputEl.style.height = `${Math.min(this.inputEl.scrollHeight, 120)}px`;
|
|
1007
1026
|
}), this._updateSendEnabled();
|
|
1008
|
-
}), this.inputEl.addEventListener("keydown", (
|
|
1009
|
-
|
|
1010
|
-
}), this.inputEl.addEventListener("paste", (
|
|
1011
|
-
const
|
|
1012
|
-
if (!
|
|
1013
|
-
let
|
|
1014
|
-
const
|
|
1015
|
-
if (
|
|
1016
|
-
else if (
|
|
1017
|
-
const
|
|
1018
|
-
if (
|
|
1019
|
-
const
|
|
1020
|
-
if (
|
|
1021
|
-
|
|
1027
|
+
}), this.inputEl.addEventListener("keydown", (y) => {
|
|
1028
|
+
y.key === "Enter" && !y.isComposing && ((this._options.getMobileViewport?.() ?? window.innerWidth <= 768) || !y.shiftKey) && (y.preventDefault(), this._submit());
|
|
1029
|
+
}), this.inputEl.addEventListener("paste", (y) => {
|
|
1030
|
+
const Y = y.clipboardData;
|
|
1031
|
+
if (!Y) return;
|
|
1032
|
+
let ce = null;
|
|
1033
|
+
const ie = Y.files?.[0];
|
|
1034
|
+
if (ie && ie.type.startsWith("image/")) ce = ie;
|
|
1035
|
+
else if (Y.items?.length) for (let M = 0; M < Y.items.length; M++) {
|
|
1036
|
+
const H = Y.items[M];
|
|
1037
|
+
if (H?.kind === "file" && H.type.startsWith("image/")) {
|
|
1038
|
+
const ee = H.getAsFile();
|
|
1039
|
+
if (ee) {
|
|
1040
|
+
ce = ee;
|
|
1022
1041
|
break;
|
|
1023
1042
|
}
|
|
1024
1043
|
}
|
|
1025
1044
|
}
|
|
1026
|
-
|
|
1045
|
+
ce && (y.preventDefault(), this._routeAttachmentFile(ce));
|
|
1027
1046
|
}), 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", () => {
|
|
1028
|
-
const
|
|
1029
|
-
|
|
1047
|
+
const y = this._fileInput.files?.[0];
|
|
1048
|
+
y && this._routeAttachmentFile(y), this._fileInput.value = "";
|
|
1030
1049
|
});
|
|
1031
|
-
const
|
|
1032
|
-
|
|
1033
|
-
const
|
|
1034
|
-
this._attachBtn =
|
|
1035
|
-
|
|
1050
|
+
const K = document.createElement("div");
|
|
1051
|
+
K.className = "gengage-chat-attach-wrap", K.dataset.gengagePart = "chat-attach-wrap", this._attachWrapEl = K;
|
|
1052
|
+
const f = document.createElement("button");
|
|
1053
|
+
this._attachBtn = f, f.className = "gengage-chat-attach-btn gds-btn gds-btn-ghost", f.dataset.gengagePart = "chat-attach-button", f.type = "button", f.setAttribute("aria-label", this.i18n.attachImageButton), f.setAttribute("aria-haspopup", "menu"), f.setAttribute("aria-expanded", "false"), f.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>', f.addEventListener("click", (y) => {
|
|
1054
|
+
y.stopPropagation(), this._toggleAttachMenu();
|
|
1036
1055
|
});
|
|
1037
|
-
const
|
|
1038
|
-
this._attachMenuEl =
|
|
1039
|
-
const
|
|
1040
|
-
|
|
1041
|
-
|
|
1056
|
+
const S = document.createElement("div");
|
|
1057
|
+
this._attachMenuEl = S, S.className = "gengage-chat-attach-menu gds-menu", S.dataset.gengagePart = "chat-attach-menu", S.setAttribute("role", "menu"), S.setAttribute("hidden", "");
|
|
1058
|
+
const L = document.createElement("button");
|
|
1059
|
+
L.type = "button", L.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", L.dataset.gengagePart = "chat-attach-menu-select-photo", L.setAttribute("role", "menuitem"), L.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>`, L.addEventListener("click", (y) => {
|
|
1060
|
+
y.stopPropagation(), this._closeAttachMenu(), this._fileInput.click();
|
|
1042
1061
|
});
|
|
1043
|
-
const
|
|
1044
|
-
|
|
1045
|
-
const
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
const
|
|
1049
|
-
this._pasteImageFromClipboardMenu(
|
|
1050
|
-
}),
|
|
1051
|
-
const
|
|
1052
|
-
|
|
1053
|
-
const
|
|
1054
|
-
|
|
1062
|
+
const $ = document.createElement("div");
|
|
1063
|
+
$.className = "gengage-chat-attach-menu-sep", $.dataset.gengagePart = "chat-attach-menu-separator", $.setAttribute("aria-hidden", "true");
|
|
1064
|
+
const I = document.createElement("button");
|
|
1065
|
+
I.type = "button", I.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", I.dataset.gengagePart = "chat-attach-menu-paste", I.setAttribute("role", "menuitem"), I.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>`, I.addEventListener("click", (y) => {
|
|
1066
|
+
y.stopPropagation();
|
|
1067
|
+
const Y = typeof navigator.clipboard?.read == "function" ? navigator.clipboard.read() : void 0;
|
|
1068
|
+
this._pasteImageFromClipboardMenu(Y);
|
|
1069
|
+
}), S.appendChild(L), S.appendChild($), S.appendChild(I), K.appendChild(f), K.appendChild(S), 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";
|
|
1070
|
+
const j = document.createElement("img");
|
|
1071
|
+
j.className = "gengage-chat-attachment-preview-thumb", j.dataset.gengagePart = "chat-attachment-preview-thumb", j.alt = "", this._previewName = document.createElement("span"), this._previewName.className = "gengage-chat-attachment-name", this._previewName.dataset.gengagePart = "chat-attachment-preview-name";
|
|
1072
|
+
const Q = document.createElement("button");
|
|
1073
|
+
Q.className = "gengage-chat-attachment-remove gds-btn gds-btn-ghost", Q.dataset.gengagePart = "chat-attachment-preview-remove", Q.type = "button", Q.setAttribute("aria-label", this.i18n.removeAttachmentButton), Q.textContent = "×", Q.addEventListener("click", () => this.clearAttachment()), this._previewStrip.appendChild(j), this._previewStrip.appendChild(this._previewName), this._previewStrip.appendChild(Q), 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", () => {
|
|
1055
1074
|
if (this._sendStopHandler) {
|
|
1056
|
-
const
|
|
1057
|
-
this.hideStopButton(),
|
|
1075
|
+
const y = this._sendStopHandler;
|
|
1076
|
+
this.hideStopButton(), y();
|
|
1058
1077
|
return;
|
|
1059
1078
|
}
|
|
1060
1079
|
this._submit();
|
|
1061
|
-
}),
|
|
1062
|
-
|
|
1063
|
-
}),
|
|
1064
|
-
|
|
1065
|
-
}),
|
|
1066
|
-
|
|
1067
|
-
const
|
|
1068
|
-
|
|
1080
|
+
}), W.addEventListener("dragover", (y) => {
|
|
1081
|
+
y.preventDefault(), W.classList.add("gengage-chat-input-area--dragover");
|
|
1082
|
+
}), W.addEventListener("dragleave", () => {
|
|
1083
|
+
W.classList.remove("gengage-chat-input-area--dragover");
|
|
1084
|
+
}), W.addEventListener("drop", (y) => {
|
|
1085
|
+
y.preventDefault(), W.classList.remove("gengage-chat-input-area--dragover");
|
|
1086
|
+
const Y = y.dataTransfer?.files[0];
|
|
1087
|
+
Y && this._routeAttachmentFile(Y);
|
|
1069
1088
|
});
|
|
1070
1089
|
const te = document.createElement("div");
|
|
1071
|
-
te.className = "gengage-chat-input-pill gds-input-shell", te.dataset.gengagePart = "chat-input-shell", te.appendChild(
|
|
1072
|
-
onInterim: (
|
|
1073
|
-
this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this.inputEl.value =
|
|
1090
|
+
te.className = "gengage-chat-input-pill gds-input-shell", te.dataset.gengagePart = "chat-input-shell", te.appendChild(K), te.appendChild(this.inputEl), this._voiceEnabled && Xa() && (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()), te.appendChild(this._micBtn), this._voiceInput = new en({
|
|
1091
|
+
onInterim: (y) => {
|
|
1092
|
+
this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this.inputEl.value = y, this.inputEl.style.height = "auto", this.inputEl.style.height = `${Math.min(this.inputEl.scrollHeight, 120)}px`;
|
|
1074
1093
|
},
|
|
1075
|
-
onFinal: (
|
|
1076
|
-
this.inputEl.value =
|
|
1094
|
+
onFinal: (y) => {
|
|
1095
|
+
this.inputEl.value = y;
|
|
1077
1096
|
},
|
|
1078
|
-
onAutoSubmit: (
|
|
1079
|
-
this.inputEl.value =
|
|
1097
|
+
onAutoSubmit: (y) => {
|
|
1098
|
+
this.inputEl.value = y, this._micBtn?.classList.remove("gengage-chat-mic-btn--active"), this._submit();
|
|
1080
1099
|
},
|
|
1081
|
-
onStateChange: (
|
|
1082
|
-
|
|
1100
|
+
onStateChange: (y) => {
|
|
1101
|
+
y === "listening" ? this._micBtn?.classList.add("gengage-chat-mic-btn--active") : this._micBtn?.classList.remove("gengage-chat-mic-btn--active");
|
|
1083
1102
|
},
|
|
1084
|
-
onError: (
|
|
1103
|
+
onError: (y, Y) => {
|
|
1085
1104
|
this._micBtn?.classList.remove("gengage-chat-mic-btn--active");
|
|
1086
1105
|
}
|
|
1087
|
-
}, { lang: this._voiceLang })), te.appendChild(this.sendBtn),
|
|
1088
|
-
const
|
|
1089
|
-
|
|
1090
|
-
const
|
|
1091
|
-
|
|
1106
|
+
}, { lang: this._voiceLang })), te.appendChild(this.sendBtn), W.appendChild(this._previewStrip), W.appendChild(this._fileInput), W.appendChild(te), T.appendChild(W), x.appendChild(T), this._comparisonDockSlotEl = document.createElement("div"), this._comparisonDockSlotEl.className = "gengage-chat-comparison-dock-slot", this._comparisonDockSlotEl.dataset.gengagePart = "comparison-dock-slot", x.appendChild(this._comparisonDockSlotEl), this.root.appendChild(x), this._setupHorizontalSwipe(T);
|
|
1107
|
+
const oe = this._createFooterAttribution();
|
|
1108
|
+
oe && this.root.appendChild(oe);
|
|
1109
|
+
const se = (y) => {
|
|
1110
|
+
y.key === "Escape" && e.onClose();
|
|
1092
1111
|
};
|
|
1093
|
-
this.root.addEventListener("keydown",
|
|
1112
|
+
this.root.addEventListener("keydown", se), this._cleanups.push(() => this.root.removeEventListener("keydown", se)), t.appendChild(this.root);
|
|
1094
1113
|
}
|
|
1095
1114
|
addMessage(t) {
|
|
1096
1115
|
const e = this._options.renderMessageUISpec?.(t) ?? null;
|
|
@@ -1432,8 +1451,8 @@ var Bn = class {
|
|
|
1432
1451
|
const d = document.createElement("div");
|
|
1433
1452
|
d.className = "gengage-chat-comparison-recommended-info";
|
|
1434
1453
|
for (let k = 0; k < 2; k++) {
|
|
1435
|
-
const
|
|
1436
|
-
|
|
1454
|
+
const P = document.createElement("div");
|
|
1455
|
+
P.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-title", k === 1 && P.classList.add("gengage-chat-comparison-skeleton-rec-title--short"), d.appendChild(P);
|
|
1437
1456
|
}
|
|
1438
1457
|
const p = document.createElement("div");
|
|
1439
1458
|
p.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-price", d.appendChild(p), c.appendChild(l), c.appendChild(d), o.appendChild(c);
|
|
@@ -1444,8 +1463,8 @@ var Bn = class {
|
|
|
1444
1463
|
const x = document.createElement("ul");
|
|
1445
1464
|
x.className = "gengage-chat-comparison-skeleton-hl-list";
|
|
1446
1465
|
for (let k = 0; k < 3; k++) {
|
|
1447
|
-
const
|
|
1448
|
-
|
|
1466
|
+
const P = document.createElement("li"), z = document.createElement("div");
|
|
1467
|
+
z.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-line", k === 1 && z.classList.add("gengage-chat-comparison-skeleton-hl-line--medium"), k === 2 && z.classList.add("gengage-chat-comparison-skeleton-hl-line--short"), P.appendChild(z), x.appendChild(P);
|
|
1449
1468
|
}
|
|
1450
1469
|
h.appendChild(x), o.appendChild(h), i.appendChild(o);
|
|
1451
1470
|
const v = document.createElement("div");
|
|
@@ -1455,41 +1474,41 @@ var Bn = class {
|
|
|
1455
1474
|
const g = document.createElement("div");
|
|
1456
1475
|
g.className = "gengage-chat-comparison-key-differences-content";
|
|
1457
1476
|
for (let k = 0; k < 4; k++) {
|
|
1458
|
-
const
|
|
1459
|
-
|
|
1477
|
+
const P = document.createElement("div");
|
|
1478
|
+
P.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-line", g.appendChild(P);
|
|
1460
1479
|
}
|
|
1461
1480
|
v.appendChild(g), i.appendChild(v);
|
|
1462
1481
|
const _ = document.createElement("div");
|
|
1463
1482
|
_.className = "gengage-chat-comparison-special gengage-chat-comparison-special--skeleton";
|
|
1464
|
-
const
|
|
1465
|
-
|
|
1483
|
+
const w = document.createElement("div");
|
|
1484
|
+
w.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-special-line", _.appendChild(w), i.appendChild(_);
|
|
1466
1485
|
const b = document.createElement("div");
|
|
1467
1486
|
b.className = "gengage-chat-comparison-skeleton-table-wrap";
|
|
1468
|
-
const
|
|
1469
|
-
|
|
1470
|
-
const
|
|
1471
|
-
|
|
1487
|
+
const A = document.createElement("div");
|
|
1488
|
+
A.className = "gengage-chat-comparison-skeleton-table-head";
|
|
1489
|
+
const T = document.createElement("div");
|
|
1490
|
+
T.className = "gengage-chat-comparison-skeleton-table-corner", A.appendChild(T);
|
|
1472
1491
|
for (let k = 0; k < 3; k++) {
|
|
1473
|
-
const
|
|
1474
|
-
|
|
1475
|
-
const
|
|
1476
|
-
|
|
1477
|
-
const
|
|
1478
|
-
|
|
1479
|
-
const
|
|
1480
|
-
|
|
1492
|
+
const P = document.createElement("div");
|
|
1493
|
+
P.className = "gengage-chat-comparison-skeleton-table-col";
|
|
1494
|
+
const z = document.createElement("div");
|
|
1495
|
+
z.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-img";
|
|
1496
|
+
const U = document.createElement("div");
|
|
1497
|
+
U.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";
|
|
1498
|
+
const X = document.createElement("div");
|
|
1499
|
+
X.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-price", P.appendChild(z), P.appendChild(U), P.appendChild(X), A.appendChild(P);
|
|
1481
1500
|
}
|
|
1482
|
-
b.appendChild(
|
|
1501
|
+
b.appendChild(A);
|
|
1483
1502
|
for (let k = 0; k < 3; k++) {
|
|
1484
|
-
const
|
|
1485
|
-
|
|
1486
|
-
const
|
|
1487
|
-
|
|
1488
|
-
for (let
|
|
1489
|
-
const
|
|
1490
|
-
|
|
1503
|
+
const P = document.createElement("div");
|
|
1504
|
+
P.className = "gengage-chat-comparison-skeleton-table-row";
|
|
1505
|
+
const z = document.createElement("div");
|
|
1506
|
+
z.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-label", P.appendChild(z);
|
|
1507
|
+
for (let U = 0; U < 3; U++) {
|
|
1508
|
+
const X = document.createElement("div");
|
|
1509
|
+
X.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-cell", P.appendChild(X);
|
|
1491
1510
|
}
|
|
1492
|
-
b.appendChild(
|
|
1511
|
+
b.appendChild(P);
|
|
1493
1512
|
}
|
|
1494
1513
|
i.appendChild(b), e.appendChild(i);
|
|
1495
1514
|
break;
|
|
@@ -1718,7 +1737,7 @@ var Bn = class {
|
|
|
1718
1737
|
}
|
|
1719
1738
|
if (r || (r = i), !r) return !1;
|
|
1720
1739
|
const o = Date.now();
|
|
1721
|
-
this._programmaticScrollUntil = o +
|
|
1740
|
+
this._programmaticScrollUntil = o + Lt, this._scrollLockedUntil = Math.max(this._scrollLockedUntil, o + Lt), this._userScrolledUp = !0;
|
|
1722
1741
|
const s = () => {
|
|
1723
1742
|
this._scrollMessagesTo(Math.max(r.offsetTop - 20, 0), e);
|
|
1724
1743
|
};
|
|
@@ -1988,7 +2007,7 @@ function Kn(t, e) {
|
|
|
1988
2007
|
return t.toLocaleUpperCase("tr");
|
|
1989
2008
|
}
|
|
1990
2009
|
}
|
|
1991
|
-
function
|
|
2010
|
+
function Tt(t) {
|
|
1992
2011
|
if (typeof t != "string") return !1;
|
|
1993
2012
|
const e = Number(t);
|
|
1994
2013
|
return Number.isFinite(e) && e > 0;
|
|
@@ -2028,9 +2047,9 @@ function Xn(t) {
|
|
|
2028
2047
|
const x = document.createElement("div");
|
|
2029
2048
|
x.className = "gengage-chat-comparison-recommended-title", x.textContent = e.name, m.appendChild(x);
|
|
2030
2049
|
const v = document.createElement("div");
|
|
2031
|
-
if (v.className = "gengage-chat-comparison-recommended-meta", Yn(e.rating) && v.appendChild(Zn(e.rating)),
|
|
2050
|
+
if (v.className = "gengage-chat-comparison-recommended-meta", Yn(e.rating) && v.appendChild(Zn(e.rating)), Tt(e.price)) {
|
|
2032
2051
|
const g = document.createElement("div");
|
|
2033
|
-
g.className = "gengage-chat-comparison-recommended-price", g.textContent =
|
|
2052
|
+
g.className = "gengage-chat-comparison-recommended-price", g.textContent = ae(e.price, t.pricing), v.appendChild(g);
|
|
2034
2053
|
}
|
|
2035
2054
|
if (v.childElementCount > 0 && m.appendChild(v), t.recommendedText) {
|
|
2036
2055
|
const g = document.createElement("p");
|
|
@@ -2050,12 +2069,12 @@ function Xn(t) {
|
|
|
2050
2069
|
g.className = "gengage-chat-comparison-highlights", g.dataset.gengagePart = "comparison-highlights";
|
|
2051
2070
|
const _ = document.createElement("div");
|
|
2052
2071
|
_.className = "gengage-chat-comparison-highlights-label", _.textContent = s?.highlightsLabel ?? "Key Highlights", g.appendChild(_);
|
|
2053
|
-
const
|
|
2072
|
+
const w = document.createElement("ul");
|
|
2054
2073
|
for (const b of r) {
|
|
2055
|
-
const
|
|
2056
|
-
|
|
2074
|
+
const A = document.createElement("li");
|
|
2075
|
+
A.textContent = b, w.appendChild(A);
|
|
2057
2076
|
}
|
|
2058
|
-
g.appendChild(
|
|
2077
|
+
g.appendChild(w), l.appendChild(g);
|
|
2059
2078
|
}
|
|
2060
2079
|
c.appendChild(l);
|
|
2061
2080
|
}
|
|
@@ -2107,10 +2126,10 @@ function Xn(t) {
|
|
|
2107
2126
|
const b = document.createElement("div");
|
|
2108
2127
|
b.className = "gengage-chat-comparison-table-header-img-placeholder", b.setAttribute("aria-hidden", "true"), g.appendChild(b);
|
|
2109
2128
|
}
|
|
2110
|
-
const
|
|
2111
|
-
if (
|
|
2129
|
+
const w = document.createElement("div");
|
|
2130
|
+
if (w.className = "gengage-chat-comparison-table-product-name", w.textContent = v.name, g.appendChild(w), Tt(v.price)) {
|
|
2112
2131
|
const b = document.createElement("div");
|
|
2113
|
-
b.className = "gengage-chat-comparison-table-price", b.textContent =
|
|
2132
|
+
b.className = "gengage-chat-comparison-table-price", b.textContent = ae(v.price, t.pricing), g.appendChild(b);
|
|
2114
2133
|
}
|
|
2115
2134
|
u.appendChild(g), p.appendChild(u);
|
|
2116
2135
|
}
|
|
@@ -2120,10 +2139,10 @@ function Xn(t) {
|
|
|
2120
2139
|
const u = document.createElement("tr"), g = document.createElement("td");
|
|
2121
2140
|
g.className = "gengage-chat-comparison-label", g.textContent = Wn(v.label, s?.criteriaLabels, t.locale), u.appendChild(g);
|
|
2122
2141
|
for (let _ = 0; _ < v.values.length; _++) {
|
|
2123
|
-
const
|
|
2124
|
-
a[_]?.sku === e?.sku && (
|
|
2142
|
+
const w = document.createElement("td");
|
|
2143
|
+
a[_]?.sku === e?.sku && (w.className = "gengage-chat-comparison-selected gds-comparison-table-winner-cell");
|
|
2125
2144
|
const b = v.values[_] ?? "";
|
|
2126
|
-
sa(b) ?
|
|
2145
|
+
sa(b) ? w.innerHTML = be(b) : w.textContent = b, u.appendChild(w);
|
|
2127
2146
|
}
|
|
2128
2147
|
m.appendChild(u);
|
|
2129
2148
|
}
|
|
@@ -2207,23 +2226,23 @@ function sr(t, e) {
|
|
|
2207
2226
|
const r = n.filter((v) => v !== null && typeof v == "object"), i = /* @__PURE__ */ new Map();
|
|
2208
2227
|
for (const v of r) {
|
|
2209
2228
|
const u = ar(v.review_class), g = nr(v.review_text), _ = tr(v.review_tag);
|
|
2210
|
-
for (const
|
|
2211
|
-
const b =
|
|
2212
|
-
let
|
|
2213
|
-
if (
|
|
2229
|
+
for (const w of _) {
|
|
2230
|
+
const b = w.toLocaleLowerCase();
|
|
2231
|
+
let A = i.get(b);
|
|
2232
|
+
if (A || (A = {
|
|
2214
2233
|
key: b,
|
|
2215
|
-
label:
|
|
2234
|
+
label: w,
|
|
2216
2235
|
mentions: 0,
|
|
2217
2236
|
positive: 0,
|
|
2218
2237
|
negative: 0,
|
|
2219
2238
|
neutral: 0,
|
|
2220
2239
|
snippets: []
|
|
2221
|
-
}, i.set(b,
|
|
2222
|
-
const
|
|
2240
|
+
}, i.set(b, A)), A.mentions += 1, u === "positive" ? A.positive += 1 : u === "negative" ? A.negative += 1 : A.neutral += 1, g.length > 0 && A.snippets.length < er && !A.snippets.some((T) => T.text === g)) {
|
|
2241
|
+
const T = {
|
|
2223
2242
|
text: g,
|
|
2224
2243
|
tone: u
|
|
2225
2244
|
};
|
|
2226
|
-
v.review_rating !== void 0 && String(v.review_rating).length > 0 && (
|
|
2245
|
+
v.review_rating !== void 0 && String(v.review_rating).length > 0 && (T.rating = v.review_rating), A.snippets.push(T);
|
|
2227
2246
|
}
|
|
2228
2247
|
}
|
|
2229
2248
|
}
|
|
@@ -2242,29 +2261,29 @@ function sr(t, e) {
|
|
|
2242
2261
|
const m = () => {
|
|
2243
2262
|
for (; h.firstChild; ) h.removeChild(h.firstChild);
|
|
2244
2263
|
if (!d) return;
|
|
2245
|
-
const v = o.find((
|
|
2264
|
+
const v = o.find((w) => w.key === d);
|
|
2246
2265
|
if (!v) return;
|
|
2247
2266
|
const u = document.createElement("div");
|
|
2248
2267
|
u.className = "gengage-chat-review-detail-meta";
|
|
2249
2268
|
const g = document.createElement("span");
|
|
2250
2269
|
if (g.className = "gengage-chat-review-detail-mentions", g.textContent = `${or(v.mentions, e?.reviewCustomersMentionSingular, e?.reviewCustomersMentionPlural)} "${v.label}"`, u.appendChild(g), v.positive > 0) {
|
|
2251
|
-
const
|
|
2252
|
-
|
|
2270
|
+
const w = document.createElement("span");
|
|
2271
|
+
w.className = "gengage-chat-review-detail-positive", w.textContent = `${v.positive} ${s}`, u.appendChild(w);
|
|
2253
2272
|
}
|
|
2254
2273
|
if (v.negative > 0) {
|
|
2255
|
-
const
|
|
2256
|
-
|
|
2274
|
+
const w = document.createElement("span");
|
|
2275
|
+
w.className = "gengage-chat-review-detail-negative", w.textContent = `${v.negative} ${c}`, u.appendChild(w);
|
|
2257
2276
|
}
|
|
2258
2277
|
h.appendChild(u);
|
|
2259
2278
|
const _ = document.createElement("div");
|
|
2260
2279
|
_.className = "gengage-chat-review-snippets";
|
|
2261
|
-
for (const
|
|
2280
|
+
for (const w of v.snippets) {
|
|
2262
2281
|
const b = document.createElement("article");
|
|
2263
|
-
b.className = "gengage-chat-review-snippet", b.dataset.tone =
|
|
2264
|
-
const
|
|
2265
|
-
if (
|
|
2266
|
-
const
|
|
2267
|
-
|
|
2282
|
+
b.className = "gengage-chat-review-snippet", b.dataset.tone = w.tone;
|
|
2283
|
+
const A = document.createElement("div");
|
|
2284
|
+
if (A.className = "gengage-chat-review-snippet-text", A.textContent = `"${w.text}"`, b.appendChild(A), w.rating !== void 0 && String(w.rating).length > 0) {
|
|
2285
|
+
const T = document.createElement("div");
|
|
2286
|
+
T.className = "gengage-chat-review-snippet-rating", T.textContent = `★ ${String(w.rating)}`, b.appendChild(T);
|
|
2268
2287
|
}
|
|
2269
2288
|
_.appendChild(b);
|
|
2270
2289
|
}
|
|
@@ -2280,8 +2299,8 @@ function sr(t, e) {
|
|
|
2280
2299
|
g.type = "button", g.className = "gengage-chat-review-subject gds-chip", g.dataset.subjectKey = v.key, g.dataset.tone = u;
|
|
2281
2300
|
const _ = document.createElement("span");
|
|
2282
2301
|
_.className = "gengage-chat-review-subject-icon", _.appendChild(ir(u)), g.appendChild(_);
|
|
2283
|
-
const
|
|
2284
|
-
|
|
2302
|
+
const w = document.createElement("span");
|
|
2303
|
+
w.className = "gengage-chat-review-subject-label", w.textContent = v.label, g.appendChild(w);
|
|
2285
2304
|
const b = document.createElement("span");
|
|
2286
2305
|
b.className = "gengage-chat-review-subject-count", b.textContent = `(${v.mentions})`, g.appendChild(b), g.addEventListener("click", () => {
|
|
2287
2306
|
d = v.key, x(), m();
|
|
@@ -2335,7 +2354,7 @@ function et(t) {
|
|
|
2335
2354
|
const i = document.createElement("div");
|
|
2336
2355
|
i.className = "gengage-chat-campaign-price-badge__logo";
|
|
2337
2356
|
const o = document.createElement("img");
|
|
2338
|
-
o.alt = "", o.loading = "lazy", o.src = t.logoUrl,
|
|
2357
|
+
o.alt = "", o.loading = "lazy", o.src = t.logoUrl, xe(o), i.appendChild(o), e.appendChild(i);
|
|
2339
2358
|
}
|
|
2340
2359
|
const a = document.createElement("div");
|
|
2341
2360
|
a.className = "gengage-chat-campaign-price-badge__body";
|
|
@@ -2383,7 +2402,7 @@ function pr(t, e, a, n, r) {
|
|
|
2383
2402
|
const o = t.product, s = o.imageUrl;
|
|
2384
2403
|
if (s && Ce(s)) {
|
|
2385
2404
|
const l = document.createElement("img");
|
|
2386
|
-
l.className = "gengage-chat-ai-toppick-img", l.dataset.gengagePart = "ai-top-pick-image",
|
|
2405
|
+
l.className = "gengage-chat-ai-toppick-img", l.dataset.gengagePart = "ai-top-pick-image", de(l, "src", s), l.loading = "lazy", l.alt = e, xe(l), i.appendChild(l);
|
|
2387
2406
|
}
|
|
2388
2407
|
const c = ca(t);
|
|
2389
2408
|
if (c && !r?.skipOverlayActions) {
|
|
@@ -2416,7 +2435,7 @@ function hr(t, e, a) {
|
|
|
2416
2435
|
if (d.className = "gengage-chat-ai-toppick-price", d.dataset.gengagePart = "ai-top-pick-price", c) {
|
|
2417
2436
|
const p = et({
|
|
2418
2437
|
reasonText: i,
|
|
2419
|
-
salePriceFormatted:
|
|
2438
|
+
salePriceFormatted: ae(n, a.pricing),
|
|
2420
2439
|
...l !== void 0 ? { logoUrl: l } : {}
|
|
2421
2440
|
});
|
|
2422
2441
|
if (s && o === "inline") {
|
|
@@ -2424,10 +2443,10 @@ function hr(t, e, a) {
|
|
|
2424
2443
|
const h = document.createElement("span");
|
|
2425
2444
|
h.className = "gengage-chat-ai-toppick-price-sep", h.setAttribute("aria-hidden", "true");
|
|
2426
2445
|
const m = document.createElement("span");
|
|
2427
|
-
m.className = "gengage-chat-ai-toppick-original-price", m.textContent =
|
|
2446
|
+
m.className = "gengage-chat-ai-toppick-original-price", m.textContent = ae(r, a.pricing), d.appendChild(h), d.appendChild(m);
|
|
2428
2447
|
} else {
|
|
2429
2448
|
const h = document.createElement("span");
|
|
2430
|
-
h.className = "gengage-chat-ai-toppick-original-price", h.textContent =
|
|
2449
|
+
h.className = "gengage-chat-ai-toppick-original-price", h.textContent = ae(r, a.pricing), d.appendChild(h), d.appendChild(document.createTextNode(" ")), d.appendChild(p);
|
|
2431
2450
|
}
|
|
2432
2451
|
e.appendChild(d);
|
|
2433
2452
|
return;
|
|
@@ -2435,19 +2454,19 @@ function hr(t, e, a) {
|
|
|
2435
2454
|
if (s && o === "inline") {
|
|
2436
2455
|
d.classList.add("gengage-chat-ai-toppick-price--inline");
|
|
2437
2456
|
const p = document.createElement("span");
|
|
2438
|
-
p.className = "gengage-chat-ai-toppick-price-current", p.textContent =
|
|
2457
|
+
p.className = "gengage-chat-ai-toppick-price-current", p.textContent = ae(n, a.pricing);
|
|
2439
2458
|
const h = document.createElement("span");
|
|
2440
2459
|
h.className = "gengage-chat-ai-toppick-price-sep", h.setAttribute("aria-hidden", "true");
|
|
2441
2460
|
const m = document.createElement("span");
|
|
2442
|
-
m.className = "gengage-chat-ai-toppick-original-price", m.textContent =
|
|
2461
|
+
m.className = "gengage-chat-ai-toppick-original-price", m.textContent = ae(r, a.pricing), d.appendChild(p), d.appendChild(h), d.appendChild(m);
|
|
2443
2462
|
} else if (s) {
|
|
2444
2463
|
const p = document.createElement("span");
|
|
2445
|
-
p.className = "gengage-chat-ai-toppick-original-price", p.textContent =
|
|
2464
|
+
p.className = "gengage-chat-ai-toppick-original-price", p.textContent = ae(r, a.pricing), d.appendChild(p), d.appendChild(document.createTextNode(" "));
|
|
2446
2465
|
const h = document.createElement("span");
|
|
2447
|
-
h.className = "gengage-chat-ai-toppick-price-current", h.textContent =
|
|
2466
|
+
h.className = "gengage-chat-ai-toppick-price-current", h.textContent = ae(n, a.pricing), d.appendChild(h);
|
|
2448
2467
|
} else {
|
|
2449
2468
|
const p = document.createElement("span");
|
|
2450
|
-
p.className = "gengage-chat-ai-toppick-price-current", p.textContent =
|
|
2469
|
+
p.className = "gengage-chat-ai-toppick-price-current", p.textContent = ae(n, a.pricing), d.appendChild(p);
|
|
2451
2470
|
}
|
|
2452
2471
|
if (i) {
|
|
2453
2472
|
const p = document.createElement("div");
|
|
@@ -2475,11 +2494,11 @@ function Mt(t, e, a, n) {
|
|
|
2475
2494
|
const o = t.product, s = ca(t), c = o.url ?? "", l = o.cartCode, d = o.inStock, p = !!(s && l && d !== !1), h = t.action;
|
|
2476
2495
|
s && e.onProductClick ? (r.classList.add("gds-clickable"), r.addEventListener("click", (k) => {
|
|
2477
2496
|
if (k.target.closest(".gengage-chat-ai-toppick-cta") || k.target.closest(".gengage-chat-favorite-btn") || k.target.closest(".gengage-chat-find-similar-pill")) return;
|
|
2478
|
-
const
|
|
2497
|
+
const P = o.name;
|
|
2479
2498
|
e.onProductClick?.({
|
|
2480
2499
|
sku: s,
|
|
2481
2500
|
url: c,
|
|
2482
|
-
...
|
|
2501
|
+
...P ? { name: P } : {}
|
|
2483
2502
|
});
|
|
2484
2503
|
})) : h && (r.classList.add("gds-clickable"), r.addEventListener("click", (k) => {
|
|
2485
2504
|
k.target.closest(".gengage-chat-ai-toppick-cta") || k.target.closest(".gengage-chat-favorite-btn") || k.target.closest(".gengage-chat-find-similar-pill") || e.onAction(h);
|
|
@@ -2501,25 +2520,25 @@ function Mt(t, e, a, n) {
|
|
|
2501
2520
|
const k = document.createElement("div");
|
|
2502
2521
|
k.className = "gengage-chat-ai-toppick-name", k.dataset.gengagePart = "ai-top-pick-name", k.textContent = _, g.appendChild(k);
|
|
2503
2522
|
}
|
|
2504
|
-
const
|
|
2505
|
-
|
|
2523
|
+
const w = dr(o);
|
|
2524
|
+
w && g.appendChild(w), hr(o, g, e), t.labels && t.labels.length > 0 && g.appendChild(fr(t.labels)), u.appendChild(g), r.appendChild(u);
|
|
2506
2525
|
const b = document.createElement("div");
|
|
2507
2526
|
if (b.className = "gengage-chat-ai-toppick-detail", b.dataset.gengagePart = "ai-top-pick-detail", a) ur(t, b, e);
|
|
2508
2527
|
else {
|
|
2509
2528
|
const k = typeof t.reason == "string" ? t.reason.trim() : "";
|
|
2510
2529
|
if (k) {
|
|
2511
|
-
const
|
|
2512
|
-
|
|
2530
|
+
const P = document.createElement("p");
|
|
2531
|
+
P.className = "gengage-chat-ai-toppick-snippet", P.dataset.gengagePart = "ai-top-pick-snippet", P.textContent = k, b.appendChild(P);
|
|
2513
2532
|
}
|
|
2514
2533
|
}
|
|
2515
2534
|
b.childNodes.length > 0 && r.appendChild(b);
|
|
2516
|
-
const
|
|
2517
|
-
if (
|
|
2535
|
+
const A = !!(s && e.topPicksLoadingSku === s), T = (p || h) && !x;
|
|
2536
|
+
if (A || p || h) {
|
|
2518
2537
|
const k = document.createElement("div");
|
|
2519
|
-
if (k.className = "gengage-chat-ai-toppick-spinner", k.dataset.gengagePart = "ai-top-pick-spinner", k.style.display =
|
|
2520
|
-
const
|
|
2521
|
-
|
|
2522
|
-
if (
|
|
2538
|
+
if (k.className = "gengage-chat-ai-toppick-spinner", k.dataset.gengagePart = "ai-top-pick-spinner", k.style.display = A ? "" : "none", r.appendChild(k), T) {
|
|
2539
|
+
const P = document.createElement("button");
|
|
2540
|
+
P.className = "gengage-chat-ai-toppick-cta gds-btn gds-btn-primary", P.dataset.gengagePart = "ai-top-pick-cta", P.type = "button", P.textContent = p ? e.i18n?.addToCartButton ?? "Add to Cart" : e.i18n?.viewDetails ?? "View Details", P.addEventListener("click", (z) => {
|
|
2541
|
+
if (z.stopPropagation(), p) {
|
|
2523
2542
|
e.onAction({
|
|
2524
2543
|
title: e.i18n?.addToCartButton ?? "Add to Cart",
|
|
2525
2544
|
type: "addToCart",
|
|
@@ -2533,17 +2552,17 @@ function Mt(t, e, a, n) {
|
|
|
2533
2552
|
}
|
|
2534
2553
|
if (h) {
|
|
2535
2554
|
if (h.type === "findSimilar" && s && e.onProductClick) {
|
|
2536
|
-
const
|
|
2555
|
+
const U = o.name;
|
|
2537
2556
|
e.onProductClick({
|
|
2538
2557
|
sku: s,
|
|
2539
2558
|
url: c,
|
|
2540
|
-
...
|
|
2559
|
+
...U ? { name: U } : {}
|
|
2541
2560
|
});
|
|
2542
2561
|
return;
|
|
2543
2562
|
}
|
|
2544
2563
|
e.onAction(h);
|
|
2545
2564
|
}
|
|
2546
|
-
}), r.appendChild(
|
|
2565
|
+
}), r.appendChild(P);
|
|
2547
2566
|
}
|
|
2548
2567
|
}
|
|
2549
2568
|
return r;
|
|
@@ -2777,7 +2796,7 @@ function Er(t) {
|
|
|
2777
2796
|
const e = Sr(t), a = typeof t.description == "string" ? t.description.trim() : "";
|
|
2778
2797
|
if (!a && e.length === 0) return null;
|
|
2779
2798
|
const n = document.createElement("div");
|
|
2780
|
-
if (n.className = "gengage-chat-categories-group-summary", n.dataset.gengagePart = "categories-group-summary", n.appendChild(Pr(t)), e.length > 0 && n.appendChild(
|
|
2799
|
+
if (n.className = "gengage-chat-categories-group-summary", n.dataset.gengagePart = "categories-group-summary", n.appendChild(Pr(t)), e.length > 0 && n.appendChild(Lr(e)), a) {
|
|
2781
2800
|
const r = document.createElement("p");
|
|
2782
2801
|
r.className = "gengage-chat-categories-group-reason", r.dataset.gengagePart = "categories-group-reason", r.textContent = a, n.appendChild(r);
|
|
2783
2802
|
}
|
|
@@ -2787,12 +2806,12 @@ function Pr(t) {
|
|
|
2787
2806
|
const e = document.createElement("div");
|
|
2788
2807
|
if (e.className = "gengage-chat-categories-group-selection", e.dataset.gengagePart = "categories-group-selection", t.image && Ce(t.image)) {
|
|
2789
2808
|
const n = document.createElement("img");
|
|
2790
|
-
n.className = "gengage-chat-categories-group-selection-image", n.draggable = !1, n.src = t.image, n.alt = t.groupName, n.loading = "lazy",
|
|
2809
|
+
n.className = "gengage-chat-categories-group-selection-image", n.draggable = !1, n.src = t.image, n.alt = t.groupName, n.loading = "lazy", xe(n), e.appendChild(n);
|
|
2791
2810
|
}
|
|
2792
2811
|
const a = document.createElement("div");
|
|
2793
2812
|
return a.className = "gengage-chat-categories-group-selection-title", a.textContent = t.groupName, e.appendChild(a), e;
|
|
2794
2813
|
}
|
|
2795
|
-
function
|
|
2814
|
+
function Lr(t) {
|
|
2796
2815
|
const e = document.createElement("div");
|
|
2797
2816
|
e.className = "gengage-chat-categories-group-chips", e.dataset.gengagePart = "categories-group-chips";
|
|
2798
2817
|
for (const a of t) {
|
|
@@ -2801,7 +2820,7 @@ function Tr(t) {
|
|
|
2801
2820
|
}
|
|
2802
2821
|
return e;
|
|
2803
2822
|
}
|
|
2804
|
-
function
|
|
2823
|
+
function Tr(t, e) {
|
|
2805
2824
|
const a = t.props?.groups ?? [], n = t.props?.filterTags ?? [], r = `gengage-cat-${Cr++}`, i = document.createElement("div");
|
|
2806
2825
|
if (i.className = "gengage-chat-categories", i.dataset.gengagePart = "categories-container", a.length === 0) return i;
|
|
2807
2826
|
const o = document.createElement("div");
|
|
@@ -2815,13 +2834,13 @@ function Lr(t, e) {
|
|
|
2815
2834
|
for (let d = 0; d < a.length; d++) {
|
|
2816
2835
|
const p = a[d], h = `${r}-tab-${d}`, m = `${r}-panel-${d}`, x = document.createElement("button");
|
|
2817
2836
|
if (x.className = "gengage-chat-categories-tab gds-tab", x.type = "button", x.dataset.gengagePart = "categories-tab", x.id = h, x.setAttribute("role", "tab"), x.setAttribute("aria-controls", m), x.setAttribute("aria-selected", String(d === 0)), x.tabIndex = d === 0 ? 0 : -1, d === 0 && x.classList.add("gengage-chat-categories-tab--active", "is-active"), p.image && Ce(p.image)) {
|
|
2818
|
-
const
|
|
2819
|
-
|
|
2837
|
+
const w = document.createElement("img");
|
|
2838
|
+
w.className = "gengage-chat-categories-tab-image", w.draggable = !1, w.src = p.image, w.alt = p.groupName, w.loading = "lazy", xe(w), x.appendChild(w);
|
|
2820
2839
|
}
|
|
2821
2840
|
const v = document.createElement("span");
|
|
2822
|
-
v.className = "gengage-chat-categories-tab-text", v.textContent = p.groupName, x.appendChild(v), x.addEventListener("click", () => l(d)), x.addEventListener("keydown", (
|
|
2841
|
+
v.className = "gengage-chat-categories-tab-text", v.textContent = p.groupName, x.appendChild(v), x.addEventListener("click", () => l(d)), x.addEventListener("keydown", (w) => {
|
|
2823
2842
|
let b = -1;
|
|
2824
|
-
|
|
2843
|
+
w.key === "ArrowRight" || w.key === "ArrowDown" ? b = (d + 1) % a.length : w.key === "ArrowLeft" || w.key === "ArrowUp" ? b = (d - 1 + a.length) % a.length : w.key === "Home" ? b = 0 : w.key === "End" && (b = a.length - 1), b >= 0 && (w.preventDefault(), l(b), s[b].focus());
|
|
2825
2844
|
}), s.push(x), o.appendChild(x);
|
|
2826
2845
|
const u = document.createElement("div");
|
|
2827
2846
|
u.className = "gengage-chat-categories-panel", u.dataset.gengagePart = "categories-panel", u.id = m, u.setAttribute("role", "tabpanel"), u.setAttribute("aria-labelledby", h), d !== 0 && (u.style.display = "none");
|
|
@@ -2829,8 +2848,8 @@ function Lr(t, e) {
|
|
|
2829
2848
|
g && u.appendChild(g);
|
|
2830
2849
|
const _ = document.createElement("div");
|
|
2831
2850
|
_.className = "gengage-chat-categories-grid", _.dataset.gengagePart = "categories-grid";
|
|
2832
|
-
for (const
|
|
2833
|
-
const b = Ar(
|
|
2851
|
+
for (const w of p.products) {
|
|
2852
|
+
const b = Ar(w, e);
|
|
2834
2853
|
_.appendChild(b);
|
|
2835
2854
|
}
|
|
2836
2855
|
u.appendChild(_), c.push(u);
|
|
@@ -2854,14 +2873,14 @@ function Ar(t, e) {
|
|
|
2854
2873
|
const a = document.createElement("div");
|
|
2855
2874
|
if (a.className = "gengage-chat-product-card gds-card gds-product-card gds-card-interactive", a.dataset.gengagePart = "categories-product-card", t.imageUrl && Ce(t.imageUrl)) {
|
|
2856
2875
|
const i = document.createElement("img");
|
|
2857
|
-
i.className = "gengage-chat-product-card-img", i.draggable = !1, i.src = t.imageUrl, i.alt = t.name, i.loading = "lazy",
|
|
2876
|
+
i.className = "gengage-chat-product-card-img", i.draggable = !1, i.src = t.imageUrl, i.alt = t.name, i.loading = "lazy", xe(i), a.appendChild(i);
|
|
2858
2877
|
}
|
|
2859
2878
|
const n = document.createElement("div");
|
|
2860
2879
|
n.className = "gengage-chat-product-card-body";
|
|
2861
2880
|
const r = document.createElement("div");
|
|
2862
2881
|
if (r.className = "gengage-chat-product-card-name", r.textContent = t.name, n.appendChild(r), t.price) {
|
|
2863
2882
|
const i = document.createElement("div");
|
|
2864
|
-
i.className = "gengage-chat-product-card-price", i.textContent =
|
|
2883
|
+
i.className = "gengage-chat-product-card-price", i.textContent = ae(t.price, e.pricing), n.appendChild(i);
|
|
2865
2884
|
}
|
|
2866
2885
|
return a.appendChild(n), (e.onProductSelect || e.onAction) && (a.classList.add("gds-clickable"), a.addEventListener("click", () => {
|
|
2867
2886
|
if (t.sku) {
|
|
@@ -2890,7 +2909,7 @@ function Ir(t, e) {
|
|
|
2890
2909
|
return a;
|
|
2891
2910
|
}
|
|
2892
2911
|
var Mr = "frontend_restore_panel_message";
|
|
2893
|
-
function
|
|
2912
|
+
function Te(t) {
|
|
2894
2913
|
return typeof t == "string" ? t : "";
|
|
2895
2914
|
}
|
|
2896
2915
|
function Nr(t) {
|
|
@@ -2898,13 +2917,13 @@ function Nr(t) {
|
|
|
2898
2917
|
if (!e || typeof e != "object") return null;
|
|
2899
2918
|
const a = e;
|
|
2900
2919
|
return {
|
|
2901
|
-
imageUrl:
|
|
2902
|
-
name:
|
|
2920
|
+
imageUrl: Te(a.imageUrl) || void 0,
|
|
2921
|
+
name: Te(a.name) || void 0
|
|
2903
2922
|
};
|
|
2904
2923
|
}).filter((e) => e !== null) : [];
|
|
2905
2924
|
}
|
|
2906
2925
|
function Br(t, e) {
|
|
2907
|
-
const a = t.props ?? {}, n =
|
|
2926
|
+
const a = t.props ?? {}, n = Te(a.eyebrow), r = Te(a.title), i = a.showTitle !== !1, o = Te(a.ctaLabel) || e.i18n?.showPanelAriaLabel || "Show Results", s = Te(a.panelMessageId), c = Te(a.highlightMessageId), l = Te(a.threadId), d = Nr(a.products).slice(0, 3), p = document.createElement("button");
|
|
2908
2927
|
p.type = "button", p.className = "gengage-chat-panel-restore-card gds-card", !n && !i && p.classList.add("gengage-chat-panel-restore-card--minimal"), p.dataset.gengagePart = "panel-restore-card";
|
|
2909
2928
|
const h = r || n || o;
|
|
2910
2929
|
p.setAttribute("aria-label", r ? `${h} - ${o}` : h);
|
|
@@ -2928,9 +2947,9 @@ function Br(t, e) {
|
|
|
2928
2947
|
const g = document.createElement("div");
|
|
2929
2948
|
g.className = "gengage-chat-panel-restore-card__thumb";
|
|
2930
2949
|
const _ = u.imageUrl;
|
|
2931
|
-
if (_ &&
|
|
2932
|
-
const
|
|
2933
|
-
|
|
2950
|
+
if (_ && ve(_)) {
|
|
2951
|
+
const w = document.createElement("img");
|
|
2952
|
+
w.loading = "lazy", w.alt = u.name || r, de(w, "src", _), xe(w), g.appendChild(w);
|
|
2934
2953
|
}
|
|
2935
2954
|
v.appendChild(g);
|
|
2936
2955
|
}
|
|
@@ -2950,11 +2969,11 @@ function zr(t, e) {
|
|
|
2950
2969
|
g.target.closest("a") || e.onProductSelect?.(a);
|
|
2951
2970
|
});
|
|
2952
2971
|
const r = a.imageUrl;
|
|
2953
|
-
if (r &&
|
|
2972
|
+
if (r && ve(r)) {
|
|
2954
2973
|
const g = document.createElement("div");
|
|
2955
2974
|
g.className = "gengage-chat-product-summary__image", g.dataset.gengagePart = "product-summary-image";
|
|
2956
2975
|
const _ = document.createElement("img");
|
|
2957
|
-
_.loading = "lazy",
|
|
2976
|
+
_.loading = "lazy", de(_, "src", r), _.alt = a.name || "Product image", xe(_), g.appendChild(_), n.appendChild(g);
|
|
2958
2977
|
}
|
|
2959
2978
|
const i = document.createElement("div");
|
|
2960
2979
|
i.className = "gengage-chat-product-summary__content", i.dataset.gengagePart = "product-summary-content";
|
|
@@ -2976,43 +2995,43 @@ function zr(t, e) {
|
|
|
2976
2995
|
}
|
|
2977
2996
|
const d = a.price, p = a.originalPrice;
|
|
2978
2997
|
if (d) {
|
|
2979
|
-
const g = He(e, a), _ = $e(e, a),
|
|
2998
|
+
const g = He(e, a), _ = $e(e, a), w = !!(p && p !== d), b = document.createElement("div");
|
|
2980
2999
|
b.className = "gengage-chat-product-summary__price", b.dataset.gengagePart = "product-summary-price";
|
|
2981
|
-
const
|
|
2982
|
-
if (
|
|
3000
|
+
const A = !!(g && w), T = Je(e, a);
|
|
3001
|
+
if (A) {
|
|
2983
3002
|
const k = et({
|
|
2984
3003
|
reasonText: g,
|
|
2985
|
-
salePriceFormatted:
|
|
2986
|
-
...
|
|
3004
|
+
salePriceFormatted: ae(d, e.pricing),
|
|
3005
|
+
...T !== void 0 ? { logoUrl: T } : {}
|
|
2987
3006
|
});
|
|
2988
|
-
if (
|
|
3007
|
+
if (w && _ === "inline") {
|
|
2989
3008
|
b.classList.add("gengage-chat-product-summary__price--inline"), b.appendChild(k);
|
|
2990
|
-
const
|
|
2991
|
-
|
|
2992
|
-
const
|
|
2993
|
-
|
|
3009
|
+
const P = document.createElement("span");
|
|
3010
|
+
P.className = "gengage-chat-product-summary__price-sep", P.setAttribute("aria-hidden", "true");
|
|
3011
|
+
const z = document.createElement("span");
|
|
3012
|
+
z.className = "gengage-chat-product-summary__price-original", z.textContent = ae(p, e.pricing), b.appendChild(P), b.appendChild(z);
|
|
2994
3013
|
} else {
|
|
2995
|
-
const
|
|
2996
|
-
|
|
3014
|
+
const P = document.createElement("span");
|
|
3015
|
+
P.className = "gengage-chat-product-summary__price-original", P.textContent = ae(p, e.pricing), b.appendChild(P), b.appendChild(document.createTextNode(" ")), b.appendChild(k);
|
|
2997
3016
|
}
|
|
2998
3017
|
i.appendChild(b);
|
|
2999
3018
|
} else {
|
|
3000
|
-
if (
|
|
3019
|
+
if (w && _ === "inline") {
|
|
3001
3020
|
b.classList.add("gengage-chat-product-summary__price--inline");
|
|
3002
3021
|
const k = document.createElement("span");
|
|
3003
|
-
k.className = "gengage-chat-product-summary__price-current", k.textContent =
|
|
3004
|
-
const
|
|
3005
|
-
|
|
3006
|
-
const
|
|
3007
|
-
|
|
3008
|
-
} else if (
|
|
3022
|
+
k.className = "gengage-chat-product-summary__price-current", k.textContent = ae(d, e.pricing);
|
|
3023
|
+
const P = document.createElement("span");
|
|
3024
|
+
P.className = "gengage-chat-product-summary__price-sep", P.setAttribute("aria-hidden", "true");
|
|
3025
|
+
const z = document.createElement("span");
|
|
3026
|
+
z.className = "gengage-chat-product-summary__price-original", z.textContent = ae(p, e.pricing), b.appendChild(k), b.appendChild(P), b.appendChild(z);
|
|
3027
|
+
} else if (w) {
|
|
3009
3028
|
const k = document.createElement("span");
|
|
3010
|
-
k.className = "gengage-chat-product-summary__price-original", k.textContent =
|
|
3011
|
-
const
|
|
3012
|
-
|
|
3029
|
+
k.className = "gengage-chat-product-summary__price-original", k.textContent = ae(p, e.pricing), b.appendChild(k), b.appendChild(document.createTextNode(" "));
|
|
3030
|
+
const P = document.createElement("span");
|
|
3031
|
+
P.className = "gengage-chat-product-summary__price-current", P.textContent = ae(d, e.pricing), b.appendChild(P);
|
|
3013
3032
|
} else {
|
|
3014
3033
|
const k = document.createElement("span");
|
|
3015
|
-
k.className = "gengage-chat-product-summary__price-current", k.textContent =
|
|
3034
|
+
k.className = "gengage-chat-product-summary__price-current", k.textContent = ae(d, e.pricing), b.appendChild(k);
|
|
3016
3035
|
}
|
|
3017
3036
|
if (g) {
|
|
3018
3037
|
const k = document.createElement("div");
|
|
@@ -3035,9 +3054,9 @@ function zr(t, e) {
|
|
|
3035
3054
|
}
|
|
3036
3055
|
});
|
|
3037
3056
|
}), n.appendChild(g);
|
|
3038
|
-
} else if (h &&
|
|
3057
|
+
} else if (h && ve(h)) {
|
|
3039
3058
|
const g = document.createElement("a");
|
|
3040
|
-
g.className = "gengage-chat-product-summary__cta gds-chip gds-chip-active", g.dataset.gengagePart = "product-summary-cta",
|
|
3059
|
+
g.className = "gengage-chat-product-summary__cta gds-chip gds-chip-active", g.dataset.gengagePart = "product-summary-cta", de(g, "href", h), de(g, "target", "_blank"), de(g, "rel", "noopener noreferrer"), g.textContent = e.i18n?.productCtaLabel ?? "View", n.appendChild(g);
|
|
3041
3060
|
}
|
|
3042
3061
|
return n;
|
|
3043
3062
|
}
|
|
@@ -3069,7 +3088,7 @@ var ga = {
|
|
|
3069
3088
|
AIGroupingCards: ({ element: t, context: e }) => xr(t, e),
|
|
3070
3089
|
AISuggestedSearchCards: ({ element: t, context: e }) => yr(t, e),
|
|
3071
3090
|
ProsAndCons: ({ element: t }) => _r(t),
|
|
3072
|
-
CategoriesContainer: ({ element: t, context: e }) =>
|
|
3091
|
+
CategoriesContainer: ({ element: t, context: e }) => Tr(t, e),
|
|
3073
3092
|
HandoffNotice: ({ element: t, context: e }) => Ir(t, e),
|
|
3074
3093
|
PanelRestoreCard: ({ element: t, context: e }) => Br(t, e),
|
|
3075
3094
|
ProductSummaryCard: ({ element: t, context: e }) => zr(t, e),
|
|
@@ -3121,7 +3140,7 @@ function Nt(t, e, a, n, r) {
|
|
|
3121
3140
|
if (c) {
|
|
3122
3141
|
const p = et({
|
|
3123
3142
|
reasonText: s,
|
|
3124
|
-
salePriceFormatted:
|
|
3143
|
+
salePriceFormatted: ae(n, e.pricing),
|
|
3125
3144
|
...l !== void 0 ? { logoUrl: l } : {}
|
|
3126
3145
|
});
|
|
3127
3146
|
if (o && i === "inline") {
|
|
@@ -3131,13 +3150,13 @@ function Nt(t, e, a, n, r) {
|
|
|
3131
3150
|
const m = document.createElement("span");
|
|
3132
3151
|
m.className = "gengage-chat-product-card-price-sep", m.setAttribute("aria-hidden", "true");
|
|
3133
3152
|
const x = document.createElement("span");
|
|
3134
|
-
x.className = "gengage-chat-product-card-original-price", x.textContent =
|
|
3153
|
+
x.className = "gengage-chat-product-card-original-price", x.textContent = ae(r, e.pricing), h.appendChild(m), h.appendChild(x), t.appendChild(h);
|
|
3135
3154
|
return;
|
|
3136
3155
|
}
|
|
3137
3156
|
if (t.classList.remove("gengage-chat-product-card-price-block--inline"), t.appendChild(p), o) {
|
|
3138
3157
|
t.appendChild(document.createTextNode(" "));
|
|
3139
3158
|
const h = document.createElement("span");
|
|
3140
|
-
h.className = "gengage-chat-product-card-original-price", h.textContent =
|
|
3159
|
+
h.className = "gengage-chat-product-card-original-price", h.textContent = ae(r, e.pricing), t.appendChild(h);
|
|
3141
3160
|
}
|
|
3142
3161
|
return;
|
|
3143
3162
|
}
|
|
@@ -3146,19 +3165,19 @@ function Nt(t, e, a, n, r) {
|
|
|
3146
3165
|
const p = document.createElement("div");
|
|
3147
3166
|
p.className = "gengage-chat-product-card-price-row";
|
|
3148
3167
|
const h = document.createElement("span");
|
|
3149
|
-
h.className = "gengage-chat-product-card-current-price", h.textContent =
|
|
3168
|
+
h.className = "gengage-chat-product-card-current-price", h.textContent = ae(n, e.pricing);
|
|
3150
3169
|
const m = document.createElement("span");
|
|
3151
3170
|
m.className = "gengage-chat-product-card-price-sep", m.setAttribute("aria-hidden", "true");
|
|
3152
3171
|
const x = document.createElement("span");
|
|
3153
|
-
x.className = "gengage-chat-product-card-original-price", x.textContent =
|
|
3172
|
+
x.className = "gengage-chat-product-card-original-price", x.textContent = ae(r, e.pricing), p.appendChild(h), p.appendChild(m), p.appendChild(x), t.appendChild(p);
|
|
3154
3173
|
return;
|
|
3155
3174
|
}
|
|
3156
3175
|
t.classList.remove("gengage-chat-product-card-price-block--inline");
|
|
3157
3176
|
const d = document.createElement("span");
|
|
3158
|
-
if (d.className = "gengage-chat-product-card-current-price", d.textContent =
|
|
3177
|
+
if (d.className = "gengage-chat-product-card-current-price", d.textContent = ae(n, e.pricing), t.appendChild(d), o) {
|
|
3159
3178
|
t.appendChild(document.createTextNode(" "));
|
|
3160
3179
|
const p = document.createElement("span");
|
|
3161
|
-
p.className = "gengage-chat-product-card-original-price", p.textContent =
|
|
3180
|
+
p.className = "gengage-chat-product-card-original-price", p.textContent = ae(r, e.pricing), t.appendChild(p);
|
|
3162
3181
|
}
|
|
3163
3182
|
}
|
|
3164
3183
|
function Bt(t, e, a, n, r, i, o) {
|
|
@@ -3167,7 +3186,7 @@ function Bt(t, e, a, n, r, i, o) {
|
|
|
3167
3186
|
if (c) {
|
|
3168
3187
|
const p = et({
|
|
3169
3188
|
reasonText: s,
|
|
3170
|
-
salePriceFormatted:
|
|
3189
|
+
salePriceFormatted: ae(n, e.pricing),
|
|
3171
3190
|
...l !== void 0 ? { logoUrl: l } : {}
|
|
3172
3191
|
});
|
|
3173
3192
|
if (o && i === "inline") {
|
|
@@ -3175,29 +3194,29 @@ function Bt(t, e, a, n, r, i, o) {
|
|
|
3175
3194
|
const h = document.createElement("span");
|
|
3176
3195
|
h.className = "gengage-chat-product-details-price-sep", h.setAttribute("aria-hidden", "true");
|
|
3177
3196
|
const m = document.createElement("span");
|
|
3178
|
-
m.className = "gengage-chat-product-details-original-price", m.textContent =
|
|
3197
|
+
m.className = "gengage-chat-product-details-original-price", m.textContent = ae(r, e.pricing), t.appendChild(h), t.appendChild(m);
|
|
3179
3198
|
} else {
|
|
3180
3199
|
if (o) {
|
|
3181
3200
|
const h = document.createElement("span");
|
|
3182
|
-
h.className = "gengage-chat-product-details-original-price", h.textContent =
|
|
3201
|
+
h.className = "gengage-chat-product-details-original-price", h.textContent = ae(r, e.pricing), t.appendChild(h), t.appendChild(document.createTextNode(" "));
|
|
3183
3202
|
}
|
|
3184
3203
|
t.appendChild(p);
|
|
3185
3204
|
}
|
|
3186
3205
|
} else if (o && i === "inline") {
|
|
3187
3206
|
t.classList.add("gengage-chat-product-details-price--inline");
|
|
3188
3207
|
const p = document.createElement("span");
|
|
3189
|
-
p.className = "gengage-chat-product-details-current-price", p.textContent =
|
|
3208
|
+
p.className = "gengage-chat-product-details-current-price", p.textContent = ae(n, e.pricing);
|
|
3190
3209
|
const h = document.createElement("span");
|
|
3191
3210
|
h.className = "gengage-chat-product-details-price-sep", h.setAttribute("aria-hidden", "true");
|
|
3192
3211
|
const m = document.createElement("span");
|
|
3193
|
-
m.className = "gengage-chat-product-details-original-price", m.textContent =
|
|
3212
|
+
m.className = "gengage-chat-product-details-original-price", m.textContent = ae(r, e.pricing), t.appendChild(p), t.appendChild(h), t.appendChild(m);
|
|
3194
3213
|
} else {
|
|
3195
3214
|
if (o) {
|
|
3196
3215
|
const h = document.createElement("span");
|
|
3197
|
-
h.className = "gengage-chat-product-details-original-price", h.textContent =
|
|
3216
|
+
h.className = "gengage-chat-product-details-original-price", h.textContent = ae(r, e.pricing), t.appendChild(h), t.appendChild(document.createTextNode(" "));
|
|
3198
3217
|
}
|
|
3199
3218
|
const p = document.createElement("span");
|
|
3200
|
-
p.className = "gengage-chat-product-details-current-price", p.textContent =
|
|
3219
|
+
p.className = "gengage-chat-product-details-current-price", p.textContent = ae(n, e.pricing), t.appendChild(p);
|
|
3201
3220
|
}
|
|
3202
3221
|
const d = Ke(a, "discountPercent", "price_discount_rate");
|
|
3203
3222
|
if (!e.hideProductDiscountBadge && typeof d == "number" && d > 0) {
|
|
@@ -3212,7 +3231,7 @@ function pt(t, e) {
|
|
|
3212
3231
|
if (!n) return a;
|
|
3213
3232
|
const r = n.sku;
|
|
3214
3233
|
r && (a.dataset.sku = r);
|
|
3215
|
-
const i = t.props?.action, o = n.name, s = n.url, c = n.sku, l = s &&
|
|
3234
|
+
const i = t.props?.action, o = n.name, s = n.url, c = n.sku, l = s && ve(s) ? s : void 0, d = () => i?.type !== "launchSingleProduct" || l === void 0 || c === void 0 || e.onProductClick === void 0 ? !1 : (e.onProductClick({
|
|
3216
3235
|
sku: c,
|
|
3217
3236
|
url: l,
|
|
3218
3237
|
...typeof o == "string" ? { name: o } : {}
|
|
@@ -3227,45 +3246,45 @@ function pt(t, e) {
|
|
|
3227
3246
|
}
|
|
3228
3247
|
}));
|
|
3229
3248
|
const p = n.imageUrl;
|
|
3230
|
-
if (p &&
|
|
3249
|
+
if (p && ve(p)) {
|
|
3231
3250
|
const C = document.createElement("div");
|
|
3232
3251
|
C.className = "gengage-chat-product-card-img-wrapper";
|
|
3233
|
-
const
|
|
3234
|
-
|
|
3235
|
-
const
|
|
3236
|
-
|
|
3237
|
-
const
|
|
3238
|
-
if (!e.hideProductDiscountBadge && typeof
|
|
3252
|
+
const O = document.createElement("img");
|
|
3253
|
+
O.className = "gengage-chat-product-card-img", O.loading = "lazy", de(O, "src", p);
|
|
3254
|
+
const N = n.name;
|
|
3255
|
+
N && (O.alt = N), xe(O), C.appendChild(O);
|
|
3256
|
+
const q = n.discountPercent;
|
|
3257
|
+
if (!e.hideProductDiscountBadge && typeof q == "number" && q > 0) {
|
|
3239
3258
|
const f = document.createElement("span");
|
|
3240
|
-
f.className = "gengage-chat-product-card-discount-badge", f.textContent = `%${ta(
|
|
3259
|
+
f.className = "gengage-chat-product-card-discount-badge", f.textContent = `%${ta(q)}`, C.appendChild(f);
|
|
3241
3260
|
}
|
|
3242
|
-
const
|
|
3243
|
-
|
|
3261
|
+
const D = document.createElement("div");
|
|
3262
|
+
D.className = "gengage-chat-product-card-img-actions";
|
|
3244
3263
|
const ne = n.sku;
|
|
3245
3264
|
if (ne && e.onFavoriteToggle) {
|
|
3246
3265
|
const f = document.createElement("button");
|
|
3247
3266
|
f.className = "gengage-chat-favorite-btn", f.type = "button", f.dataset.gengageFavoriteSku = ne, f.setAttribute("aria-label", e.i18n?.addToFavoritesLabel ?? "Add to favorites");
|
|
3248
3267
|
const S = e.favoritedSkus?.has(ne) ?? !1;
|
|
3249
|
-
S && f.classList.add("gengage-chat-favorite-btn--active"), f.innerHTML = `<svg width="14" height="14" viewBox="0 0 24 24" fill="${S ? "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>`, f.addEventListener("click", (
|
|
3250
|
-
|
|
3251
|
-
const
|
|
3252
|
-
|
|
3253
|
-
}),
|
|
3254
|
-
}
|
|
3255
|
-
const
|
|
3256
|
-
if (
|
|
3268
|
+
S && f.classList.add("gengage-chat-favorite-btn--active"), f.innerHTML = `<svg width="14" height="14" viewBox="0 0 24 24" fill="${S ? "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>`, f.addEventListener("click", (L) => {
|
|
3269
|
+
L.stopPropagation(), f.classList.toggle("gengage-chat-favorite-btn--active");
|
|
3270
|
+
const $ = f.querySelector("svg");
|
|
3271
|
+
$ && $.setAttribute("fill", f.classList.contains("gengage-chat-favorite-btn--active") ? "currentColor" : "none"), e.onFavoriteToggle(ne, n);
|
|
3272
|
+
}), D.appendChild(f);
|
|
3273
|
+
}
|
|
3274
|
+
const W = n.sku, K = e.i18n?.findSimilarLabel ?? "Find Similar";
|
|
3275
|
+
if (W) {
|
|
3257
3276
|
const f = document.createElement("button");
|
|
3258
|
-
f.className = "gengage-chat-find-similar-pill", f.type = "button", f.setAttribute("aria-label",
|
|
3277
|
+
f.className = "gengage-chat-find-similar-pill", f.type = "button", f.setAttribute("aria-label", K), f.dataset.tooltip = K, f.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>';
|
|
3259
3278
|
const S = document.createElement("span");
|
|
3260
|
-
S.className = "gengage-chat-find-similar-pill-text", S.textContent =
|
|
3261
|
-
|
|
3262
|
-
title:
|
|
3279
|
+
S.className = "gengage-chat-find-similar-pill-text", S.textContent = K, f.appendChild(S), f.addEventListener("click", (L) => {
|
|
3280
|
+
L.stopPropagation(), e.onAction({
|
|
3281
|
+
title: K,
|
|
3263
3282
|
type: "findSimilar",
|
|
3264
|
-
payload: { sku:
|
|
3283
|
+
payload: { sku: W }
|
|
3265
3284
|
});
|
|
3266
|
-
}),
|
|
3285
|
+
}), D.appendChild(f);
|
|
3267
3286
|
}
|
|
3268
|
-
|
|
3287
|
+
D.childElementCount > 0 && C.appendChild(D), a.appendChild(C);
|
|
3269
3288
|
}
|
|
3270
3289
|
const h = document.createElement("div");
|
|
3271
3290
|
h.className = "gengage-chat-product-card-body";
|
|
@@ -3274,73 +3293,73 @@ function pt(t, e) {
|
|
|
3274
3293
|
const C = document.createElement("div");
|
|
3275
3294
|
C.className = "gengage-chat-product-card-brand", C.textContent = m, h.appendChild(C);
|
|
3276
3295
|
}
|
|
3277
|
-
const x = n.rating, v = n.reviewCount, u = n.price, g = n.originalPrice, _ = n.price_async,
|
|
3278
|
-
|
|
3279
|
-
const
|
|
3280
|
-
|
|
3281
|
-
const
|
|
3296
|
+
const x = n.rating, v = n.reviewCount, u = n.price, g = n.originalPrice, _ = n.price_async, w = He(e, n), b = $e(e, n), A = !!(g && u && g !== u && parseFloat(u) > 0), T = !!(w && A), k = !!(w && !T || A && b === "inline"), P = typeof x == "number" && Number.isFinite(x) && x > 0, z = document.createElement("div");
|
|
3297
|
+
z.className = "gengage-chat-product-card-meta-row";
|
|
3298
|
+
const U = document.createElement("div");
|
|
3299
|
+
U.className = "gengage-chat-product-card-price gengage-chat-product-card-price-block";
|
|
3300
|
+
const X = k ? (() => {
|
|
3282
3301
|
const C = document.createElement("div");
|
|
3283
|
-
return C.className = "gengage-chat-product-card-price-stack",
|
|
3284
|
-
})() :
|
|
3302
|
+
return C.className = "gengage-chat-product-card-price-stack", w && !T && C.appendChild(Qe(w)), C.appendChild(U), C;
|
|
3303
|
+
})() : U;
|
|
3285
3304
|
if (_ === !0) {
|
|
3286
3305
|
const C = document.createElement("span");
|
|
3287
|
-
C.className = "gengage-chat-price-skeleton",
|
|
3288
|
-
C.parentElement && (u && parseFloat(u) > 0 ? Nt(
|
|
3306
|
+
C.className = "gengage-chat-price-skeleton", U.appendChild(C), setTimeout(() => {
|
|
3307
|
+
C.parentElement && (u && parseFloat(u) > 0 ? Nt(U, e, n, u, n.originalPrice) : C.remove());
|
|
3289
3308
|
}, 300);
|
|
3290
|
-
} else u && parseFloat(u) > 0 && Nt(
|
|
3291
|
-
if ((
|
|
3309
|
+
} else u && parseFloat(u) > 0 && Nt(U, e, n, u, g);
|
|
3310
|
+
if ((U.childElementCount > 0 || _ === !0) && z.appendChild(X), P) {
|
|
3292
3311
|
const C = document.createElement("div");
|
|
3293
3312
|
C.className = "gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";
|
|
3294
|
-
const
|
|
3295
|
-
typeof v == "number" && Number.isFinite(v) &&
|
|
3296
|
-
const
|
|
3297
|
-
|
|
3298
|
-
const
|
|
3299
|
-
|
|
3300
|
-
}
|
|
3301
|
-
if (
|
|
3313
|
+
const O = ea(x), N = [`${O.toFixed(1)}`, "out of 5 stars"];
|
|
3314
|
+
typeof v == "number" && Number.isFinite(v) && N.push(`(${v} reviews)`), C.setAttribute("aria-label", N.join(" "));
|
|
3315
|
+
const q = document.createElement("span");
|
|
3316
|
+
q.className = "gengage-chat-product-card-rating-compact-star", q.setAttribute("aria-hidden", "true"), q.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>';
|
|
3317
|
+
const D = document.createElement("span");
|
|
3318
|
+
D.className = "gengage-chat-product-card-rating-compact-value", D.textContent = O.toFixed(1), C.appendChild(q), C.appendChild(D), z.appendChild(C);
|
|
3319
|
+
}
|
|
3320
|
+
if (z.childElementCount === 0 && (z.classList.add("gengage-chat-product-card-meta-row--empty"), z.setAttribute("aria-hidden", "true")), h.appendChild(z), o) {
|
|
3302
3321
|
const C = document.createElement("div");
|
|
3303
3322
|
C.className = "gengage-chat-product-card-name", C.textContent = o, C.title = o, h.appendChild(C);
|
|
3304
3323
|
}
|
|
3305
|
-
const
|
|
3306
|
-
if (e.hideStockStatus !== !0 && typeof
|
|
3324
|
+
const E = n.inStock;
|
|
3325
|
+
if (e.hideStockStatus !== !0 && typeof E == "boolean") {
|
|
3307
3326
|
const C = document.createElement("div");
|
|
3308
|
-
C.className = `gengage-chat-product-card-stock ${
|
|
3327
|
+
C.className = `gengage-chat-product-card-stock ${E ? "is-in-stock" : "is-out-of-stock"}`, C.textContent = E ? e.i18n?.inStockLabel ?? "In Stock" : e.i18n?.outOfStockLabel ?? "Out of Stock", h.appendChild(C);
|
|
3309
3328
|
}
|
|
3310
3329
|
a.appendChild(h);
|
|
3311
|
-
const
|
|
3312
|
-
if (
|
|
3330
|
+
const R = n.cartCode, F = !!(R && c && E !== !1), B = e.i18n?.productCtaLabel ?? "View";
|
|
3331
|
+
if (F) {
|
|
3313
3332
|
const C = document.createElement("div");
|
|
3314
3333
|
C.className = "gengage-chat-product-card-buy-footer";
|
|
3315
|
-
const
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
title: e.i18n?.addToCartButton ??
|
|
3334
|
+
const O = document.createElement("button");
|
|
3335
|
+
O.type = "button", O.className = "gengage-chat-product-card-buy-trigger", O.textContent = B, O.addEventListener("click", (N) => {
|
|
3336
|
+
N.stopPropagation(), e.onAction({
|
|
3337
|
+
title: e.i18n?.addToCartButton ?? B,
|
|
3319
3338
|
type: "addToCart",
|
|
3320
3339
|
payload: {
|
|
3321
3340
|
sku: c,
|
|
3322
|
-
cartCode:
|
|
3341
|
+
cartCode: R,
|
|
3323
3342
|
quantity: 1
|
|
3324
3343
|
}
|
|
3325
3344
|
});
|
|
3326
|
-
}), C.appendChild(
|
|
3345
|
+
}), C.appendChild(O), a.appendChild(C);
|
|
3327
3346
|
} else if (i) {
|
|
3328
3347
|
const C = document.createElement("button");
|
|
3329
|
-
C.className = "gengage-chat-product-card-cta", C.type = "button", C.textContent = i.type === "launchSingleProduct" ?
|
|
3348
|
+
C.className = "gengage-chat-product-card-cta", C.type = "button", C.textContent = i.type === "launchSingleProduct" ? B : i.title || B, C.addEventListener("click", (O) => {
|
|
3330
3349
|
if (a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")) {
|
|
3331
|
-
|
|
3350
|
+
O.stopPropagation();
|
|
3332
3351
|
return;
|
|
3333
3352
|
}
|
|
3334
3353
|
d() || e.onAction(i);
|
|
3335
3354
|
}), a.appendChild(C);
|
|
3336
3355
|
} else if (l) {
|
|
3337
3356
|
const C = document.createElement("a");
|
|
3338
|
-
C.className = "gengage-chat-product-card-cta",
|
|
3357
|
+
C.className = "gengage-chat-product-card-cta", de(C, "href", l), de(C, "target", "_blank"), de(C, "rel", "noopener noreferrer"), C.textContent = B, C.addEventListener("click", (O) => {
|
|
3339
3358
|
if (a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")) {
|
|
3340
|
-
|
|
3359
|
+
O.preventDefault(), O.stopPropagation();
|
|
3341
3360
|
return;
|
|
3342
3361
|
}
|
|
3343
|
-
e.onProductClick && c && (
|
|
3362
|
+
e.onProductClick && c && (O.preventDefault(), e.onProductClick({
|
|
3344
3363
|
sku: c,
|
|
3345
3364
|
url: l,
|
|
3346
3365
|
...o ? { name: o } : {}
|
|
@@ -3350,22 +3369,22 @@ function pt(t, e) {
|
|
|
3350
3369
|
if (e.comparisonSelectMode && c && e.onToggleComparisonSku) {
|
|
3351
3370
|
const C = document.createElement("div");
|
|
3352
3371
|
C.className = "gengage-chat-comparison-select-wrapper";
|
|
3353
|
-
const
|
|
3354
|
-
|
|
3355
|
-
const
|
|
3356
|
-
C.setAttribute("role", "group"), C.setAttribute("aria-label", `${String(
|
|
3357
|
-
const
|
|
3358
|
-
|
|
3372
|
+
const O = e.comparisonSelectedSkus?.includes(c) ?? !1;
|
|
3373
|
+
O && C.classList.add("gengage-chat-comparison-select-wrapper--selected");
|
|
3374
|
+
const N = n.name ?? c, q = e.i18n?.comparisonSelectCardHint ?? "Tap anywhere on the card to add or remove it from comparison.";
|
|
3375
|
+
C.setAttribute("role", "group"), C.setAttribute("aria-label", `${String(N)}. ${q}`);
|
|
3376
|
+
const D = document.createElement("button");
|
|
3377
|
+
D.type = "button", D.className = "gengage-chat-comparison-checkbox", D.dataset.selected = O ? "true" : "false", D.setAttribute("aria-pressed", O ? "true" : "false");
|
|
3359
3378
|
const ne = document.createElement("span");
|
|
3360
|
-
ne.className = "gengage-chat-comparison-checkbox-icon", ne.innerHTML =
|
|
3361
|
-
const
|
|
3362
|
-
|
|
3379
|
+
ne.className = "gengage-chat-comparison-checkbox-icon", ne.innerHTML = O ? '<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>';
|
|
3380
|
+
const W = document.createElement("span");
|
|
3381
|
+
W.className = "gengage-chat-comparison-checkbox-label", W.textContent = O ? e.i18n?.comparisonSelectedLabel ?? "Selected" : e.i18n?.comparisonSelectLabel ?? "Select to compare", D.appendChild(ne), D.appendChild(W), D.addEventListener("click", (f) => {
|
|
3363
3382
|
f.stopPropagation(), e.onToggleComparisonSku?.(c);
|
|
3364
3383
|
});
|
|
3365
|
-
const
|
|
3366
|
-
return
|
|
3384
|
+
const K = document.createElement("div");
|
|
3385
|
+
return K.className = "gengage-chat-comparison-card-hint", K.setAttribute("aria-hidden", "true"), K.textContent = q, C.addEventListener("click", (f) => {
|
|
3367
3386
|
f.target.closest(".gengage-chat-comparison-checkbox") || (f.stopPropagation(), e.onToggleComparisonSku?.(c));
|
|
3368
|
-
}), C.appendChild(
|
|
3387
|
+
}), C.appendChild(D), C.appendChild(K), C.appendChild(a), C;
|
|
3369
3388
|
}
|
|
3370
3389
|
return a;
|
|
3371
3390
|
}
|
|
@@ -3446,7 +3465,7 @@ function Wr(t) {
|
|
|
3446
3465
|
return Array.isArray(t) ? t.filter((e) => typeof e == "string" && e.trim().length > 0) : [];
|
|
3447
3466
|
}
|
|
3448
3467
|
function Kr(t) {
|
|
3449
|
-
const e = [...Wr(t.images), fe(t, "imageUrl", "image_url", "image")].filter((a) => !!a &&
|
|
3468
|
+
const e = [...Wr(t.images), fe(t, "imageUrl", "image_url", "image")].filter((a) => !!a && ve(a));
|
|
3450
3469
|
return Array.from(new Set(e));
|
|
3451
3470
|
}
|
|
3452
3471
|
function Yr(t) {
|
|
@@ -3571,193 +3590,193 @@ function si(t, e) {
|
|
|
3571
3590
|
if (!n) return a;
|
|
3572
3591
|
const r = fe(n, "name"), i = fe(n, "brand"), o = fe(n, "sku"), s = fe(n, "cartCode", "cart_code"), c = fe(n, "price"), l = fe(n, "originalPrice", "price_original"), d = Ge(n, "price_async"), p = He(e, n), h = $e(e, n), m = !!(l && c && l !== c), x = Ge(n, "inStock", "in_stock"), v = Ke(n, "reviewCount", "review_count"), u = Ke(n, "rating"), g = Kr(n), _ = ha(n).slice(0, 4);
|
|
3573
3592
|
if (g.length > 1) {
|
|
3574
|
-
const
|
|
3575
|
-
|
|
3576
|
-
const
|
|
3577
|
-
|
|
3578
|
-
const
|
|
3579
|
-
|
|
3580
|
-
const
|
|
3581
|
-
let C = null,
|
|
3582
|
-
const
|
|
3583
|
-
|
|
3584
|
-
const
|
|
3585
|
-
|
|
3593
|
+
const E = document.createElement("div");
|
|
3594
|
+
E.className = "gengage-chat-product-details-media gengage-chat-product-details-gallery gengage-chat-product-details-img-wrap";
|
|
3595
|
+
const R = document.createElement("img");
|
|
3596
|
+
R.className = "gengage-chat-product-details-img", de(R, "src", g[0]), R.alt = r ?? "Product image", xe(R), E.appendChild(R);
|
|
3597
|
+
const F = document.createElement("div");
|
|
3598
|
+
F.className = "gengage-chat-product-gallery-thumbs";
|
|
3599
|
+
const B = 6;
|
|
3600
|
+
let C = null, O = 0;
|
|
3601
|
+
const N = e.i18n, q = N?.galleryPrevAriaLabel ?? "Previous image", D = N?.galleryNextAriaLabel ?? "Next image", ne = (I) => I === "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>', W = document.createElement("button");
|
|
3602
|
+
W.type = "button", W.className = "gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn", W.setAttribute("aria-label", q), W.innerHTML = ne("prev");
|
|
3603
|
+
const K = document.createElement("button");
|
|
3604
|
+
K.type = "button", K.className = "gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--next gds-btn gds-btn-ghost gds-icon-btn", K.setAttribute("aria-label", D), K.innerHTML = ne("next");
|
|
3586
3605
|
const f = () => {
|
|
3587
|
-
|
|
3606
|
+
W.disabled = O <= 0, K.disabled = O >= g.length - 1;
|
|
3588
3607
|
}, S = (I) => {
|
|
3589
|
-
if (I < 0 || I >= g.length || I ===
|
|
3590
|
-
const
|
|
3591
|
-
if (!
|
|
3592
|
-
|
|
3593
|
-
const
|
|
3594
|
-
C && C.classList.remove("gengage-chat-product-gallery-thumb--active"), I <
|
|
3608
|
+
if (I < 0 || I >= g.length || I === O) return;
|
|
3609
|
+
const j = g[I];
|
|
3610
|
+
if (!j) return;
|
|
3611
|
+
de(R, "src", j);
|
|
3612
|
+
const Q = F.querySelectorAll(".gengage-chat-product-gallery-thumb");
|
|
3613
|
+
C && C.classList.remove("gengage-chat-product-gallery-thumb--active"), I < B && Q[I] ? (Q[I].classList.add("gengage-chat-product-gallery-thumb--active"), C = Q[I]) : C = null, O = I, f();
|
|
3595
3614
|
};
|
|
3596
3615
|
for (let I = 0; I < g.length; I++) {
|
|
3597
|
-
const
|
|
3598
|
-
if (I >=
|
|
3599
|
-
const
|
|
3600
|
-
|
|
3616
|
+
const j = g[I];
|
|
3617
|
+
if (I >= B) break;
|
|
3618
|
+
const Q = document.createElement("img");
|
|
3619
|
+
Q.className = "gengage-chat-product-gallery-thumb", I === 0 && (Q.classList.add("gengage-chat-product-gallery-thumb--active"), C = Q), de(Q, "src", j), Q.alt = `${r ?? "Product"} ${I + 1}`, Q.width = 48, Q.height = 48, xe(Q), Q.addEventListener("click", () => {
|
|
3601
3620
|
S(I);
|
|
3602
|
-
}),
|
|
3621
|
+
}), F.appendChild(Q);
|
|
3603
3622
|
}
|
|
3604
|
-
if (g.length >
|
|
3623
|
+
if (g.length > B) {
|
|
3605
3624
|
const I = document.createElement("span");
|
|
3606
|
-
I.className = "gengage-chat-product-gallery-thumb-more", I.textContent = `+${g.length -
|
|
3625
|
+
I.className = "gengage-chat-product-gallery-thumb-more", I.textContent = `+${g.length - B}`, F.appendChild(I);
|
|
3607
3626
|
}
|
|
3608
|
-
|
|
3609
|
-
I.stopPropagation(), S(
|
|
3610
|
-
}),
|
|
3611
|
-
I.stopPropagation(), S(
|
|
3627
|
+
W.addEventListener("click", (I) => {
|
|
3628
|
+
I.stopPropagation(), S(O - 1);
|
|
3629
|
+
}), K.addEventListener("click", (I) => {
|
|
3630
|
+
I.stopPropagation(), S(O + 1);
|
|
3612
3631
|
}), f();
|
|
3613
|
-
let
|
|
3614
|
-
const
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
}, { passive: !0 }),
|
|
3618
|
-
const
|
|
3619
|
-
Math.abs(
|
|
3620
|
-
}),
|
|
3632
|
+
let L = 0;
|
|
3633
|
+
const $ = 50;
|
|
3634
|
+
R.addEventListener("touchstart", (I) => {
|
|
3635
|
+
L = I.changedTouches[0].clientX;
|
|
3636
|
+
}, { passive: !0 }), R.addEventListener("touchend", (I) => {
|
|
3637
|
+
const j = I.changedTouches[0].clientX, Q = L - j;
|
|
3638
|
+
Math.abs(Q) < $ || S(Q > 0 ? Math.min(O + 1, g.length - 1) : Math.max(O - 1, 0));
|
|
3639
|
+
}), E.appendChild(W), E.appendChild(K), E.appendChild(F), a.appendChild(E);
|
|
3621
3640
|
} else if (g.length === 1) {
|
|
3622
|
-
const
|
|
3623
|
-
|
|
3624
|
-
const
|
|
3625
|
-
|
|
3641
|
+
const E = document.createElement("div");
|
|
3642
|
+
E.className = "gengage-chat-product-details-media gengage-chat-product-details-img-wrap";
|
|
3643
|
+
const R = document.createElement("img");
|
|
3644
|
+
R.className = "gengage-chat-product-details-img", R.loading = "lazy", de(R, "src", g[0]), xe(R), R.alt = r ?? "Product image", E.appendChild(R), a.appendChild(E);
|
|
3626
3645
|
}
|
|
3627
|
-
const
|
|
3628
|
-
if (
|
|
3629
|
-
const
|
|
3630
|
-
|
|
3646
|
+
const w = document.createElement("div");
|
|
3647
|
+
if (w.className = "gengage-chat-product-details-content", i && (!r || !r.toLowerCase().startsWith(i.toLowerCase()))) {
|
|
3648
|
+
const E = document.createElement("div");
|
|
3649
|
+
E.className = "gengage-chat-product-details-brand", E.textContent = i, w.appendChild(E);
|
|
3631
3650
|
}
|
|
3632
3651
|
if (r) {
|
|
3633
|
-
const
|
|
3634
|
-
|
|
3652
|
+
const E = document.createElement("h3");
|
|
3653
|
+
E.className = "gengage-chat-product-details-title", E.textContent = r, E.title = r, w.appendChild(E);
|
|
3635
3654
|
}
|
|
3636
3655
|
if (e.hideUserReviews !== !0 && typeof u == "number" && Number.isFinite(u) && u > 0) {
|
|
3637
|
-
const
|
|
3638
|
-
|
|
3656
|
+
const E = document.createElement(o ? "button" : "div");
|
|
3657
|
+
E.className = "gengage-chat-product-details-rating", o && (E.type = "button", E.classList.add("gengage-chat-product-details-rating--clickable"), E.setAttribute("aria-label", e.i18n?.groundingReviewCta ?? "Read Reviews"), E.addEventListener("click", () => {
|
|
3639
3658
|
e.onAction({
|
|
3640
3659
|
title: e.i18n?.customerReviewsTitle ?? "Customer Reviews",
|
|
3641
3660
|
type: "reviewSummary",
|
|
3642
3661
|
payload: { sku: o }
|
|
3643
3662
|
});
|
|
3644
|
-
})),
|
|
3645
|
-
const
|
|
3646
|
-
if (
|
|
3647
|
-
const
|
|
3648
|
-
|
|
3663
|
+
})), E.appendChild(Jt(u));
|
|
3664
|
+
const R = document.createElement("span");
|
|
3665
|
+
if (R.className = "gengage-chat-product-details-rating-value", R.textContent = ea(u).toFixed(1), E.appendChild(R), typeof v == "number" && Number.isFinite(v)) {
|
|
3666
|
+
const F = document.createElement("span");
|
|
3667
|
+
F.className = "gengage-chat-product-details-review-count", F.textContent = ` (${v})`, E.appendChild(F);
|
|
3649
3668
|
}
|
|
3650
|
-
|
|
3669
|
+
w.appendChild(E);
|
|
3651
3670
|
}
|
|
3652
3671
|
{
|
|
3653
|
-
const
|
|
3654
|
-
let
|
|
3655
|
-
if (p && !
|
|
3656
|
-
const
|
|
3657
|
-
|
|
3672
|
+
const E = !!(p && m);
|
|
3673
|
+
let R = w;
|
|
3674
|
+
if (p && !E) {
|
|
3675
|
+
const B = document.createElement("div");
|
|
3676
|
+
B.className = "gengage-chat-product-details-price-stack", B.appendChild(Qe(p)), w.appendChild(B), R = B;
|
|
3658
3677
|
}
|
|
3659
|
-
const
|
|
3660
|
-
if (
|
|
3661
|
-
const
|
|
3662
|
-
|
|
3663
|
-
if (
|
|
3664
|
-
if (c && parseFloat(c) > 0) Bt(
|
|
3678
|
+
const F = document.createElement("div");
|
|
3679
|
+
if (F.className = "gengage-chat-product-details-price", d === !0) {
|
|
3680
|
+
const B = document.createElement("span");
|
|
3681
|
+
B.className = "gengage-chat-price-skeleton", F.appendChild(B), R.appendChild(F), setTimeout(() => {
|
|
3682
|
+
if (B.parentElement)
|
|
3683
|
+
if (c && parseFloat(c) > 0) Bt(F, e, n, c, l, h, m);
|
|
3665
3684
|
else {
|
|
3666
|
-
const C =
|
|
3667
|
-
|
|
3685
|
+
const C = F.parentElement;
|
|
3686
|
+
F.remove(), C?.classList.contains("gengage-chat-product-details-price-stack") && C.remove();
|
|
3668
3687
|
}
|
|
3669
3688
|
}, 300);
|
|
3670
3689
|
} else if (c && parseFloat(c) > 0)
|
|
3671
|
-
Bt(
|
|
3690
|
+
Bt(F, e, n, c, l, h, m), R.appendChild(F);
|
|
3672
3691
|
else if (p) {
|
|
3673
|
-
const
|
|
3674
|
-
|
|
3692
|
+
const B = R;
|
|
3693
|
+
B.classList.contains("gengage-chat-product-details-price-stack") && B.remove();
|
|
3675
3694
|
}
|
|
3676
3695
|
}
|
|
3677
3696
|
if (e.hideStockStatus !== !0 && typeof x == "boolean") {
|
|
3678
|
-
const
|
|
3679
|
-
|
|
3697
|
+
const E = document.createElement("div");
|
|
3698
|
+
E.className = `gengage-chat-product-details-stock ${x ? "is-in-stock" : "is-out-of-stock"}`, E.textContent = x ? e.i18n?.inStockLabel ?? "In Stock" : e.i18n?.outOfStockLabel ?? "Out of Stock", w.appendChild(E);
|
|
3680
3699
|
}
|
|
3681
3700
|
const b = n.promotions;
|
|
3682
3701
|
if (b && b.length > 0) {
|
|
3683
|
-
const
|
|
3684
|
-
|
|
3685
|
-
for (const
|
|
3686
|
-
if (!
|
|
3687
|
-
const
|
|
3688
|
-
|
|
3702
|
+
const E = document.createElement("div");
|
|
3703
|
+
E.className = "gengage-chat-product-details-promos";
|
|
3704
|
+
for (const R of b.slice(0, 3)) {
|
|
3705
|
+
if (!R || /%(0(\.0+)?)\s/.test(R)) continue;
|
|
3706
|
+
const F = document.createElement("span");
|
|
3707
|
+
F.className = "gengage-chat-product-details-promo-badge", F.textContent = R, F.title = R, E.appendChild(F);
|
|
3689
3708
|
}
|
|
3690
|
-
|
|
3709
|
+
E.childElementCount > 0 && w.appendChild(E);
|
|
3691
3710
|
}
|
|
3692
3711
|
if (_.length > 0) {
|
|
3693
|
-
const
|
|
3694
|
-
|
|
3695
|
-
for (const
|
|
3696
|
-
const
|
|
3697
|
-
|
|
3698
|
-
const
|
|
3699
|
-
|
|
3712
|
+
const E = document.createElement("dl");
|
|
3713
|
+
E.className = "gengage-chat-product-details-facts";
|
|
3714
|
+
for (const R of _) {
|
|
3715
|
+
const F = document.createElement("div");
|
|
3716
|
+
F.className = "gengage-chat-product-details-fact";
|
|
3717
|
+
const B = document.createElement("dt");
|
|
3718
|
+
B.textContent = R.key;
|
|
3700
3719
|
const C = document.createElement("dd");
|
|
3701
|
-
C.textContent =
|
|
3720
|
+
C.textContent = R.value, F.appendChild(B), F.appendChild(C), E.appendChild(F);
|
|
3702
3721
|
}
|
|
3703
|
-
|
|
3722
|
+
w.appendChild(E);
|
|
3704
3723
|
}
|
|
3705
|
-
const
|
|
3706
|
-
if (
|
|
3707
|
-
const
|
|
3708
|
-
|
|
3709
|
-
const
|
|
3710
|
-
|
|
3711
|
-
const
|
|
3712
|
-
|
|
3713
|
-
for (const
|
|
3714
|
-
const C = ua(
|
|
3715
|
-
if (!C && !
|
|
3716
|
-
const
|
|
3717
|
-
|
|
3718
|
-
const
|
|
3719
|
-
|
|
3720
|
-
const
|
|
3721
|
-
|
|
3722
|
-
const ne = ei(
|
|
3723
|
-
if (ne &&
|
|
3724
|
+
const A = ii(n);
|
|
3725
|
+
if (A.length > 0) {
|
|
3726
|
+
const E = document.createElement("div");
|
|
3727
|
+
E.className = "gengage-chat-product-variants";
|
|
3728
|
+
const R = document.createElement("div");
|
|
3729
|
+
R.className = "gengage-chat-product-variants-label", R.textContent = oi(A, e), E.appendChild(R);
|
|
3730
|
+
const F = document.createElement("div");
|
|
3731
|
+
F.className = "gengage-chat-product-variants-list";
|
|
3732
|
+
for (const B of A) {
|
|
3733
|
+
const C = ua(B), O = Ee(B, "sku");
|
|
3734
|
+
if (!C && !O) continue;
|
|
3735
|
+
const N = document.createElement("button");
|
|
3736
|
+
N.className = "gengage-chat-product-variant-btn gds-chip", N.type = "button";
|
|
3737
|
+
const q = C ?? O ?? "";
|
|
3738
|
+
N.title = q;
|
|
3739
|
+
const D = Ge(B, "in_stock", "inStock");
|
|
3740
|
+
O && o && O === o ? (N.classList.add("gengage-chat-product-variant-btn--active"), N.setAttribute("aria-pressed", "true")) : N.setAttribute("aria-pressed", "false"), D === !1 && (N.classList.add("gengage-chat-product-variant-btn--out"), N.disabled = !0);
|
|
3741
|
+
const ne = ei(B), W = Jr(B);
|
|
3742
|
+
if (ne && ve(ne)) {
|
|
3724
3743
|
const S = document.createElement("img");
|
|
3725
|
-
S.className = "gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image",
|
|
3726
|
-
} else if (
|
|
3744
|
+
S.className = "gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image", de(S, "src", ne), S.alt = "", S.setAttribute("aria-hidden", "true"), xe(S), N.appendChild(S);
|
|
3745
|
+
} else if (W) {
|
|
3727
3746
|
const S = document.createElement("span");
|
|
3728
|
-
S.className = "gengage-chat-product-variant-swatch", S.setAttribute("aria-hidden", "true"), S.style.backgroundColor =
|
|
3747
|
+
S.className = "gengage-chat-product-variant-swatch", S.setAttribute("aria-hidden", "true"), S.style.backgroundColor = W, N.appendChild(S);
|
|
3729
3748
|
}
|
|
3730
|
-
const
|
|
3731
|
-
|
|
3732
|
-
const f = ti(
|
|
3749
|
+
const K = document.createElement("span");
|
|
3750
|
+
K.className = "gengage-chat-product-variant-label", K.textContent = q, N.appendChild(K);
|
|
3751
|
+
const f = ti(B);
|
|
3733
3752
|
if (f && String(f) !== String(c)) {
|
|
3734
3753
|
const S = document.createElement("span");
|
|
3735
|
-
S.className = "gengage-chat-product-variant-price", S.textContent =
|
|
3754
|
+
S.className = "gengage-chat-product-variant-price", S.textContent = ae(String(f), e.pricing), N.appendChild(S);
|
|
3736
3755
|
}
|
|
3737
|
-
if (
|
|
3738
|
-
const S = r ?? "",
|
|
3739
|
-
|
|
3756
|
+
if (O && O !== o) {
|
|
3757
|
+
const S = r ?? "", L = (typeof B.value == "string" ? B.value.trim() : "") || (typeof B.name == "string" ? B.name.trim() : "") || (typeof B.variant_name == "string" ? B.variant_name.trim() : "") || "", $ = S.length > 0 ? L.length > 0 && L !== S ? `${S} (${L})` : S : q;
|
|
3758
|
+
N.addEventListener("click", () => {
|
|
3740
3759
|
e.onAction({
|
|
3741
|
-
title:
|
|
3760
|
+
title: $,
|
|
3742
3761
|
type: "launchVariant",
|
|
3743
|
-
payload: { sku:
|
|
3762
|
+
payload: { sku: O }
|
|
3744
3763
|
});
|
|
3745
3764
|
});
|
|
3746
3765
|
}
|
|
3747
|
-
|
|
3766
|
+
F.appendChild(N);
|
|
3748
3767
|
}
|
|
3749
|
-
|
|
3768
|
+
F.childElementCount > 0 && (E.appendChild(F), w.appendChild(E));
|
|
3750
3769
|
}
|
|
3751
|
-
const
|
|
3752
|
-
|
|
3770
|
+
const T = document.createElement("div");
|
|
3771
|
+
T.className = "gengage-chat-product-details-actions";
|
|
3753
3772
|
const k = t.props?.action;
|
|
3754
3773
|
if (k) {
|
|
3755
|
-
const
|
|
3756
|
-
|
|
3774
|
+
const E = document.createElement("button");
|
|
3775
|
+
E.className = "gengage-chat-product-details-cta gds-btn gds-btn-primary", E.type = "button", E.textContent = k.title || e.i18n?.productCtaLabel || "View", E.addEventListener("click", () => e.onAction(k)), T.appendChild(E);
|
|
3757
3776
|
}
|
|
3758
3777
|
if (s && o && x !== !1) {
|
|
3759
|
-
const
|
|
3760
|
-
|
|
3778
|
+
const E = document.createElement("button");
|
|
3779
|
+
E.className = "gengage-chat-product-details-atc gds-btn gds-btn-primary", E.type = "button", E.textContent = e.i18n?.addToCartButton ?? "Add to Cart", E.addEventListener("click", () => {
|
|
3761
3780
|
e.onAction({
|
|
3762
3781
|
title: e.i18n?.addToCartButton ?? "Add to Cart",
|
|
3763
3782
|
type: "addToCart",
|
|
@@ -3767,46 +3786,46 @@ function si(t, e) {
|
|
|
3767
3786
|
quantity: 1
|
|
3768
3787
|
}
|
|
3769
3788
|
});
|
|
3770
|
-
}),
|
|
3789
|
+
}), T.appendChild(E);
|
|
3771
3790
|
}
|
|
3772
|
-
const
|
|
3773
|
-
if (!k &&
|
|
3774
|
-
const
|
|
3775
|
-
|
|
3776
|
-
e.onProductClick && o && (
|
|
3791
|
+
const P = fe(n, "url");
|
|
3792
|
+
if (!k && P && ve(P)) {
|
|
3793
|
+
const E = document.createElement("a");
|
|
3794
|
+
E.className = "gengage-chat-product-details-cta gds-btn gds-btn-secondary", de(E, "href", P), de(E, "target", "_blank"), de(E, "rel", "noopener noreferrer"), E.textContent = e.i18n?.viewOnSiteLabel ?? e.i18n?.productCtaLabel ?? "View on Site", E.addEventListener("click", (R) => {
|
|
3795
|
+
e.onProductClick && o && (R.preventDefault(), e.onProductClick({
|
|
3777
3796
|
sku: o,
|
|
3778
|
-
url:
|
|
3797
|
+
url: P,
|
|
3779
3798
|
...r ? { name: r } : {}
|
|
3780
3799
|
}));
|
|
3781
|
-
}),
|
|
3782
|
-
}
|
|
3783
|
-
const
|
|
3784
|
-
if (
|
|
3785
|
-
let C = function(
|
|
3786
|
-
const
|
|
3787
|
-
|
|
3788
|
-
},
|
|
3789
|
-
const
|
|
3790
|
-
|
|
3800
|
+
}), T.appendChild(E);
|
|
3801
|
+
}
|
|
3802
|
+
const z = P;
|
|
3803
|
+
if (z && ve(z)) {
|
|
3804
|
+
let C = function(N, q) {
|
|
3805
|
+
const D = document.createElementNS(F, "circle");
|
|
3806
|
+
D.setAttribute("cx", N), D.setAttribute("cy", q), D.setAttribute("r", "3"), B.appendChild(D);
|
|
3807
|
+
}, O = function(N, q, D, ne) {
|
|
3808
|
+
const W = document.createElementNS(F, "line");
|
|
3809
|
+
W.setAttribute("x1", N), W.setAttribute("y1", q), W.setAttribute("x2", D), W.setAttribute("y2", ne), B.appendChild(W);
|
|
3791
3810
|
};
|
|
3792
|
-
const
|
|
3793
|
-
|
|
3794
|
-
const
|
|
3795
|
-
|
|
3796
|
-
const
|
|
3797
|
-
|
|
3811
|
+
const E = document.createElement("button");
|
|
3812
|
+
E.className = "gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn", E.type = "button";
|
|
3813
|
+
const R = e.i18n?.shareButton ?? "Share";
|
|
3814
|
+
E.title = R, E.setAttribute("aria-label", R);
|
|
3815
|
+
const F = "http://www.w3.org/2000/svg", B = document.createElementNS(F, "svg");
|
|
3816
|
+
B.setAttribute("width", "18"), B.setAttribute("height", "18"), B.setAttribute("viewBox", "0 0 24 24"), B.setAttribute("fill", "none"), B.setAttribute("stroke", "currentColor"), B.setAttribute("stroke-width", "2"), B.setAttribute("stroke-linecap", "round"), B.setAttribute("stroke-linejoin", "round"), C("18", "5"), C("6", "12"), C("18", "19"), O("8.59", "13.51", "15.42", "17.49"), O("15.41", "6.51", "8.59", "10.49"), E.appendChild(B), E.addEventListener("click", async () => {
|
|
3798
3817
|
try {
|
|
3799
3818
|
navigator.share ? await navigator.share({
|
|
3800
3819
|
title: r ?? "",
|
|
3801
|
-
url:
|
|
3802
|
-
}) : navigator.clipboard && (await navigator.clipboard.writeText(
|
|
3820
|
+
url: z
|
|
3821
|
+
}) : navigator.clipboard && (await navigator.clipboard.writeText(z), E.classList.add("gengage-chat-product-details-share--copied"), setTimeout(() => E.classList.remove("gengage-chat-product-details-share--copied"), 1500));
|
|
3803
3822
|
} catch {
|
|
3804
3823
|
}
|
|
3805
|
-
}),
|
|
3824
|
+
}), T.appendChild(E);
|
|
3806
3825
|
}
|
|
3807
|
-
|
|
3808
|
-
const
|
|
3809
|
-
return (
|
|
3826
|
+
T.childElementCount > 0 && w.appendChild(T), a.appendChild(w);
|
|
3827
|
+
const U = Zr(n), X = Xr(n);
|
|
3828
|
+
return (U || X) && a.appendChild(gi(U, X, e)), a;
|
|
3810
3829
|
}
|
|
3811
3830
|
function ht(t) {
|
|
3812
3831
|
if (t.nodeType === Node.TEXT_NODE) return document.createTextNode(t.textContent ?? "");
|
|
@@ -3949,25 +3968,25 @@ function mi(t, e, a, n) {
|
|
|
3949
3968
|
if (!n?.onToggleComparisonSku) return;
|
|
3950
3969
|
const _ = document.createElement("button");
|
|
3951
3970
|
_.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");
|
|
3952
|
-
const
|
|
3953
|
-
|
|
3971
|
+
const w = document.createElement("span");
|
|
3972
|
+
w.className = "gengage-chat-comparison-toggle-icon", w.innerHTML = hi();
|
|
3954
3973
|
const b = document.createElement("span");
|
|
3955
3974
|
b.className = "gengage-chat-comparison-toggle-label";
|
|
3956
|
-
const
|
|
3957
|
-
b.textContent =
|
|
3975
|
+
const A = n.i18n?.compareSelected ?? "Compare";
|
|
3976
|
+
b.textContent = A, _.setAttribute("aria-label", A), _.title = A, _.appendChild(w), _.appendChild(b), _.addEventListener("click", () => {
|
|
3958
3977
|
n.onToggleComparisonSku?.("");
|
|
3959
3978
|
}), g.appendChild(_);
|
|
3960
3979
|
}, v = (g, _ = s.length) => {
|
|
3961
|
-
const
|
|
3962
|
-
if (o || !(d ?
|
|
3963
|
-
const b = n?.i18n?.viewMoreLabel ?? "Show More",
|
|
3964
|
-
|
|
3980
|
+
const w = t.props?.endOfList;
|
|
3981
|
+
if (o || !(d ? w === !1 : w !== !0) || _ === 0) return;
|
|
3982
|
+
const b = n?.i18n?.viewMoreLabel ?? "Show More", A = document.createElement("button");
|
|
3983
|
+
A.className = "gengage-chat-product-grid-view-more", A.type = "button", A.textContent = b, A.addEventListener("click", () => {
|
|
3965
3984
|
n?.onAction({
|
|
3966
3985
|
title: b,
|
|
3967
3986
|
type: "moreProductList",
|
|
3968
3987
|
payload: {}
|
|
3969
3988
|
});
|
|
3970
|
-
}), g.appendChild(
|
|
3989
|
+
}), g.appendChild(A);
|
|
3971
3990
|
}, u = () => {
|
|
3972
3991
|
const g = n?.isMobile ?? Ve();
|
|
3973
3992
|
n?.comparisonSelectMode && n.comparisonSelectedSkus && !g && r.appendChild(la(n.comparisonSelectedSkus, n));
|
|
@@ -3976,7 +3995,7 @@ function mi(t, e, a, n) {
|
|
|
3976
3995
|
const g = document.createElement("div");
|
|
3977
3996
|
g.className = "gengage-chat-product-sort-toolbar", g.setAttribute("role", "toolbar"), g.setAttribute("aria-label", n.i18n?.sortToolbarAriaLabel ?? "Sort products");
|
|
3978
3997
|
let _ = n.productSort ?? { type: "related" };
|
|
3979
|
-
const
|
|
3998
|
+
const w = [
|
|
3980
3999
|
{
|
|
3981
4000
|
label: n.i18n?.sortRelated ?? "Related",
|
|
3982
4001
|
sortState: { type: "related" },
|
|
@@ -4000,67 +4019,67 @@ function mi(t, e, a, n) {
|
|
|
4000
4019
|
}
|
|
4001
4020
|
], b = document.createElement("div");
|
|
4002
4021
|
b.className = "gengage-chat-product-sort-dropdown";
|
|
4003
|
-
const
|
|
4004
|
-
|
|
4005
|
-
const
|
|
4022
|
+
const A = document.createElement("button");
|
|
4023
|
+
A.type = "button", A.className = "gengage-chat-product-sort-trigger gds-btn gds-btn-ghost", A.setAttribute("aria-haspopup", "listbox"), A.setAttribute("aria-expanded", "false");
|
|
4024
|
+
const T = n.i18n?.sortToolbarAriaLabel ?? "Sort products", k = document.createElement("span");
|
|
4006
4025
|
k.className = "gengage-chat-product-sort-trigger-icon";
|
|
4007
|
-
const
|
|
4008
|
-
|
|
4009
|
-
const
|
|
4010
|
-
const
|
|
4011
|
-
|
|
4026
|
+
const P = document.createElement("span");
|
|
4027
|
+
P.className = "gengage-chat-product-sort-trigger-label";
|
|
4028
|
+
const z = (N) => {
|
|
4029
|
+
const q = w.find((D) => Ft(D.sortState, N)) ?? w[0];
|
|
4030
|
+
P.textContent = q.label, k.innerHTML = Ht(q.icon), b.dataset.sortIcon = q.icon, A.setAttribute("aria-label", `${T}: ${q.label}`), A.title = q.label;
|
|
4012
4031
|
};
|
|
4013
|
-
|
|
4014
|
-
const
|
|
4015
|
-
|
|
4016
|
-
const
|
|
4017
|
-
|
|
4018
|
-
const
|
|
4019
|
-
let
|
|
4020
|
-
const
|
|
4021
|
-
|
|
4022
|
-
},
|
|
4023
|
-
b.classList.contains("gengage-chat-product-sort-dropdown--open") && (b.contains(
|
|
4024
|
-
}, C = (
|
|
4025
|
-
|
|
4026
|
-
},
|
|
4027
|
-
|
|
4028
|
-
const { signal:
|
|
4029
|
-
|
|
4032
|
+
z(_);
|
|
4033
|
+
const U = document.createElement("span");
|
|
4034
|
+
U.className = "gengage-chat-product-sort-trigger-chevron", U.innerHTML = di(), A.appendChild(k), A.appendChild(P), A.appendChild(U);
|
|
4035
|
+
const X = document.createElement("div");
|
|
4036
|
+
X.className = "gengage-chat-product-sort-menu gds-menu", X.hidden = !0, X.setAttribute("role", "listbox"), X.setAttribute("aria-label", T);
|
|
4037
|
+
const E = g.ownerDocument;
|
|
4038
|
+
let R = null;
|
|
4039
|
+
const F = () => {
|
|
4040
|
+
X.hidden = !0, b.classList.remove("gengage-chat-product-sort-dropdown--open"), A.setAttribute("aria-expanded", "false"), R?.abort(), R = null;
|
|
4041
|
+
}, B = (N) => {
|
|
4042
|
+
b.classList.contains("gengage-chat-product-sort-dropdown--open") && (b.contains(N.target) || F());
|
|
4043
|
+
}, C = (N) => {
|
|
4044
|
+
N.key === "Escape" && (N.preventDefault(), F());
|
|
4045
|
+
}, O = () => {
|
|
4046
|
+
X.hidden = !1, b.classList.add("gengage-chat-product-sort-dropdown--open"), A.setAttribute("aria-expanded", "true"), R = new AbortController();
|
|
4047
|
+
const { signal: N } = R;
|
|
4048
|
+
E.addEventListener("click", B, { signal: N }), E.addEventListener("keydown", C, {
|
|
4030
4049
|
capture: !0,
|
|
4031
|
-
signal:
|
|
4050
|
+
signal: N
|
|
4032
4051
|
});
|
|
4033
4052
|
};
|
|
4034
|
-
|
|
4035
|
-
|
|
4053
|
+
A.addEventListener("click", (N) => {
|
|
4054
|
+
N.stopPropagation(), b.classList.contains("gengage-chat-product-sort-dropdown--open") ? F() : O();
|
|
4036
4055
|
});
|
|
4037
|
-
for (const
|
|
4038
|
-
const
|
|
4039
|
-
|
|
4040
|
-
const
|
|
4041
|
-
|
|
4042
|
-
const ne =
|
|
4043
|
-
|
|
4044
|
-
const
|
|
4045
|
-
|
|
4046
|
-
const
|
|
4047
|
-
|
|
4056
|
+
for (const N of w) {
|
|
4057
|
+
const q = document.createElement("button");
|
|
4058
|
+
q.type = "button", q.className = "gengage-chat-product-sort-option gds-menu-option", q.setAttribute("role", "option");
|
|
4059
|
+
const D = Ft(_, N.sortState);
|
|
4060
|
+
q.setAttribute("aria-selected", D ? "true" : "false"), D && q.classList.add("gengage-chat-product-sort-option--active", "gds-menu-option-active");
|
|
4061
|
+
const ne = N.sortState.type === "related" ? "related" : `price-${N.sortState.direction ?? ""}`;
|
|
4062
|
+
q.dataset.sortKey = ne;
|
|
4063
|
+
const W = document.createElement("span");
|
|
4064
|
+
W.className = "gengage-chat-product-sort-option-icon", W.innerHTML = Ht(N.icon);
|
|
4065
|
+
const K = document.createElement("span");
|
|
4066
|
+
K.className = "gengage-chat-product-sort-option-label", K.textContent = N.label;
|
|
4048
4067
|
const f = document.createElement("span");
|
|
4049
|
-
f.className = "gengage-chat-product-sort-option-check", f.innerHTML = pi(), f.setAttribute("aria-hidden", "true"),
|
|
4050
|
-
_ =
|
|
4051
|
-
const
|
|
4052
|
-
|
|
4053
|
-
}),
|
|
4054
|
-
}),
|
|
4055
|
-
}
|
|
4056
|
-
if (b.appendChild(
|
|
4068
|
+
f.className = "gengage-chat-product-sort-option-check", f.innerHTML = pi(), f.setAttribute("aria-hidden", "true"), D || f.classList.add("gengage-chat-product-sort-option-check--hidden"), q.appendChild(W), q.appendChild(K), q.appendChild(f), q.addEventListener("click", () => {
|
|
4069
|
+
_ = N.sortState, n.onSortChange?.(N.sortState), ui(c, s, e, N.sortState), X.querySelectorAll(".gengage-chat-product-sort-option").forEach((S) => {
|
|
4070
|
+
const L = S, $ = L.dataset.sortKey === ne;
|
|
4071
|
+
L.classList.toggle("gengage-chat-product-sort-option--active", $), L.classList.toggle("gds-menu-option-active", $), L.setAttribute("aria-selected", $ ? "true" : "false"), L.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden", !$);
|
|
4072
|
+
}), z(N.sortState), F();
|
|
4073
|
+
}), X.appendChild(q);
|
|
4074
|
+
}
|
|
4075
|
+
if (b.appendChild(A), b.appendChild(X), g.appendChild(b), x(g), h) {
|
|
4057
4076
|
g.classList.add("gengage-chat-product-sort-toolbar--inline");
|
|
4058
|
-
const
|
|
4059
|
-
|
|
4060
|
-
const
|
|
4061
|
-
|
|
4062
|
-
const
|
|
4063
|
-
|
|
4077
|
+
const N = document.createElement("div");
|
|
4078
|
+
N.className = "gengage-chat-product-grid-head";
|
|
4079
|
+
const q = document.createElement("span");
|
|
4080
|
+
q.className = "gengage-chat-product-grid-head-title", q.textContent = h, N.appendChild(q);
|
|
4081
|
+
const D = document.createElement("div");
|
|
4082
|
+
D.className = "gengage-chat-product-grid-head-actions", D.appendChild(g), N.appendChild(D), r.appendChild(N);
|
|
4064
4083
|
} else r.appendChild(g);
|
|
4065
4084
|
} else if (h) {
|
|
4066
4085
|
const g = document.createElement("div");
|
|
@@ -4076,35 +4095,35 @@ function mi(t, e, a, n) {
|
|
|
4076
4095
|
const g = document.createElement("div");
|
|
4077
4096
|
g.className = "gengage-chat-product-grid-sections", g.setAttribute("role", "list");
|
|
4078
4097
|
const _ = t.props?.rankingState;
|
|
4079
|
-
let
|
|
4098
|
+
let w = 0;
|
|
4080
4099
|
for (const b of l) {
|
|
4081
|
-
|
|
4082
|
-
const
|
|
4083
|
-
|
|
4100
|
+
w += b.children.length;
|
|
4101
|
+
const A = fi(b.children.length, n), T = document.createElement("section");
|
|
4102
|
+
T.className = "gengage-chat-product-grid-section", T.setAttribute("role", "listitem");
|
|
4084
4103
|
const k = document.createElement("div");
|
|
4085
4104
|
if (k.className = "gengage-chat-product-grid-section-head", b.title) {
|
|
4086
|
-
const
|
|
4087
|
-
|
|
4105
|
+
const U = document.createElement("h3");
|
|
4106
|
+
U.className = "gengage-chat-product-grid-section-title", U.textContent = b.title, k.appendChild(U);
|
|
4088
4107
|
}
|
|
4089
|
-
const
|
|
4090
|
-
|
|
4091
|
-
const
|
|
4092
|
-
|
|
4093
|
-
for (const
|
|
4094
|
-
const
|
|
4095
|
-
|
|
4108
|
+
const P = document.createElement("span");
|
|
4109
|
+
P.className = "gengage-chat-product-grid-section-count", P.textContent = A, k.appendChild(P), T.appendChild(k);
|
|
4110
|
+
const z = document.createElement("div");
|
|
4111
|
+
z.className = "gengage-chat-product-grid gengage-chat-product-grid--section";
|
|
4112
|
+
for (const U of b.children) {
|
|
4113
|
+
const X = a(U);
|
|
4114
|
+
X && (X.dataset.elementId = U, z.appendChild(X));
|
|
4096
4115
|
}
|
|
4097
|
-
(n?.isMobile ?? Ve()) &&
|
|
4116
|
+
(n?.isMobile ?? Ve()) && z.classList.add("gengage-chat-product-grid--mobile"), _ === "pending" && (z.classList.add("gengage-chat-product-grid--pending"), z.inert = !0, z.setAttribute("aria-busy", "true")), T.appendChild(z), g.appendChild(T);
|
|
4098
4117
|
}
|
|
4099
|
-
return r.appendChild(g), v(r,
|
|
4118
|
+
return r.appendChild(g), v(r, w), u(), r;
|
|
4100
4119
|
}
|
|
4101
4120
|
if (o) Ci(r, c, i, n);
|
|
4102
4121
|
else {
|
|
4103
4122
|
const g = fa(s, e, n?.productSort);
|
|
4104
4123
|
for (const _ of g) {
|
|
4105
4124
|
if (!e.elements[_]) continue;
|
|
4106
|
-
const
|
|
4107
|
-
|
|
4125
|
+
const w = a(_);
|
|
4126
|
+
w && (w.dataset.elementId = _, c.appendChild(w));
|
|
4108
4127
|
}
|
|
4109
4128
|
}
|
|
4110
4129
|
return (n?.isMobile ?? Ve()) && c.classList.add("gengage-chat-product-grid--mobile"), t.props?.rankingState === "pending" && (c.classList.add("gengage-chat-product-grid--pending"), c.inert = !0, c.setAttribute("aria-busy", "true")), r.appendChild(c), v(r), u(), r;
|
|
@@ -4240,38 +4259,38 @@ function vt(t, e) {
|
|
|
4240
4259
|
const g = typeof u?.sku == "string" ? u.sku : void 0;
|
|
4241
4260
|
g && d.set(g, u);
|
|
4242
4261
|
}
|
|
4243
|
-
const p = (u, g, _,
|
|
4262
|
+
const p = (u, g, _, w) => {
|
|
4244
4263
|
if (g.length === 0) return;
|
|
4245
4264
|
const b = document.createElement("section");
|
|
4246
4265
|
b.className = "gengage-chat-consulting-group";
|
|
4247
|
-
const
|
|
4248
|
-
|
|
4249
|
-
const
|
|
4250
|
-
if (
|
|
4251
|
-
const
|
|
4252
|
-
|
|
4266
|
+
const A = document.createElement("div");
|
|
4267
|
+
A.className = "gengage-chat-consulting-group-header";
|
|
4268
|
+
const T = document.createElement("h4");
|
|
4269
|
+
if (T.className = "gengage-chat-consulting-group-label", T.textContent = `${u} (${g.length})`, A.appendChild(T), typeof w == "string" && w.trim().length > 0) {
|
|
4270
|
+
const P = document.createElement("p");
|
|
4271
|
+
P.className = "gengage-chat-consulting-group-reason", P.textContent = w, A.appendChild(P);
|
|
4253
4272
|
}
|
|
4254
|
-
b.appendChild(
|
|
4273
|
+
b.appendChild(A);
|
|
4255
4274
|
const k = document.createElement("div");
|
|
4256
4275
|
k.className = "gengage-chat-product-grid gengage-chat-consulting-group-grid", _ && k.classList.add("gengage-chat-consulting-group-grid--single-group"), k.style.setProperty("--consulting-group-columns", String(Math.max(1, Math.min(4, g.length))));
|
|
4257
|
-
for (const
|
|
4258
|
-
const
|
|
4276
|
+
for (const P of g) {
|
|
4277
|
+
const z = pt({
|
|
4259
4278
|
type: "ProductCard",
|
|
4260
|
-
props: { product:
|
|
4279
|
+
props: { product: P }
|
|
4261
4280
|
}, r ?? { onAction: () => {
|
|
4262
4281
|
} });
|
|
4263
|
-
k.appendChild(
|
|
4282
|
+
k.appendChild(z);
|
|
4264
4283
|
}
|
|
4265
4284
|
b.appendChild(k), n.appendChild(b);
|
|
4266
4285
|
}, h = /* @__PURE__ */ new Set(), m = [];
|
|
4267
4286
|
for (const u of l) {
|
|
4268
4287
|
const g = (Array.isArray(u.skus) ? u.skus.filter((b) => typeof b == "string" && b.trim().length > 0) : []).map((b) => (h.add(b), d.get(b))).filter((b) => !!b);
|
|
4269
4288
|
if (g.length === 0) continue;
|
|
4270
|
-
const _ = typeof u.label == "string" && u.label.trim().length > 0 ? u.label : i.consultingFallbackGroupLabel,
|
|
4289
|
+
const _ = typeof u.label == "string" && u.label.trim().length > 0 ? u.label : i.consultingFallbackGroupLabel, w = typeof u.reason == "string" ? u.reason : void 0;
|
|
4271
4290
|
m.push({
|
|
4272
4291
|
labelText: _,
|
|
4273
4292
|
products: g,
|
|
4274
|
-
...
|
|
4293
|
+
...w !== void 0 ? { reasonText: w } : {}
|
|
4275
4294
|
});
|
|
4276
4295
|
}
|
|
4277
4296
|
const x = c.filter((u) => {
|
|
@@ -4301,9 +4320,9 @@ function mt(t, e, a, n) {
|
|
|
4301
4320
|
let s = t.querySelector(".gengage-chat-consulting-style-media");
|
|
4302
4321
|
s ? s.innerHTML = "" : (s = document.createElement("div"), s.className = "gengage-chat-consulting-style-media", t.appendChild(s));
|
|
4303
4322
|
const c = yi(e.image_url);
|
|
4304
|
-
if (c &&
|
|
4323
|
+
if (c && ve(c)) {
|
|
4305
4324
|
const d = document.createElement("img");
|
|
4306
|
-
d.className = "gengage-chat-consulting-style-image", d.draggable = !1,
|
|
4325
|
+
d.className = "gengage-chat-consulting-style-image", d.draggable = !1, de(d, "src", c), d.alt = We(e, a + 1, n), d.loading = "lazy", xe(d), s.appendChild(d);
|
|
4307
4326
|
}
|
|
4308
4327
|
const l = document.createElement("span");
|
|
4309
4328
|
if (l.className = "gengage-chat-consulting-style-caption", l.textContent = We(e, a + 1, n), s.appendChild(l), r === "loading" || r !== "ready") {
|
|
@@ -4385,7 +4404,7 @@ function ki(t) {
|
|
|
4385
4404
|
function ft(t) {
|
|
4386
4405
|
const e = typeof t.props?.source == "string" ? t.props.source : void 0, a = (Array.isArray(t.props?.styleVariations) ? t.props.styleVariations : []).filter((n) => typeof n.style_label == "string" && n.style_label.trim().length > 0);
|
|
4387
4406
|
return {
|
|
4388
|
-
isConsulting:
|
|
4407
|
+
isConsulting: La(e) && a.length > 0,
|
|
4389
4408
|
source: e,
|
|
4390
4409
|
styleVariations: a
|
|
4391
4410
|
};
|
|
@@ -4410,7 +4429,7 @@ var Pi = `<svg width="28" height="28" viewBox="0 0 24 24" fill="none" xmlns="htt
|
|
|
4410
4429
|
<path d="M1 12V14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
4411
4430
|
<path d="M23 12V14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
4412
4431
|
</svg>`;
|
|
4413
|
-
function
|
|
4432
|
+
function Li(t) {
|
|
4414
4433
|
const e = document.createElement("div");
|
|
4415
4434
|
e.className = "gengage-chat-launcher-container", e.dataset.gengagePart = "chat-launcher-container";
|
|
4416
4435
|
const a = document.createElement("div");
|
|
@@ -4440,7 +4459,7 @@ function Ti(t) {
|
|
|
4440
4459
|
};
|
|
4441
4460
|
}
|
|
4442
4461
|
var Ot = "gengage-floating-launcher-style";
|
|
4443
|
-
function
|
|
4462
|
+
function Ti(t) {
|
|
4444
4463
|
return `
|
|
4445
4464
|
@property --gengage-fl-ring-angle {
|
|
4446
4465
|
syntax: '<angle>';
|
|
@@ -4734,10 +4753,10 @@ function Ii(t, e, a) {
|
|
|
4734
4753
|
"Ürün ara",
|
|
4735
4754
|
"Karşılaştır",
|
|
4736
4755
|
"Soru sor"
|
|
4737
|
-
], placeholderInterval: x = 2e3, voiceLang: v = "tr-TR", showBorderAnimation: u = !0, sendAriaLabel: g = "Gönder", micAriaLabel: _ = "Sesli giriş", cancelAriaLabel:
|
|
4756
|
+
], placeholderInterval: x = 2e3, voiceLang: v = "tr-TR", showBorderAnimation: u = !0, sendAriaLabel: g = "Gönder", micAriaLabel: _ = "Sesli giriş", cancelAriaLabel: w = "Ses kaydını durdur", openChatAriaLabel: b = "Chat'i aç" } = t;
|
|
4738
4757
|
if (!a.getElementById(Ot)) {
|
|
4739
|
-
const
|
|
4740
|
-
|
|
4758
|
+
const V = document.createElement("style");
|
|
4759
|
+
V.id = Ot, V.textContent = Ti({
|
|
4741
4760
|
primaryColor: n,
|
|
4742
4761
|
backgroundColor: r,
|
|
4743
4762
|
textColor: i,
|
|
@@ -4748,135 +4767,135 @@ function Ii(t, e, a) {
|
|
|
4748
4767
|
height: d,
|
|
4749
4768
|
maxWidth: p,
|
|
4750
4769
|
fontFamily: h
|
|
4751
|
-
}), a.appendChild(
|
|
4770
|
+
}), a.appendChild(V);
|
|
4752
4771
|
}
|
|
4753
|
-
const
|
|
4754
|
-
|
|
4755
|
-
const
|
|
4756
|
-
|
|
4757
|
-
let C = !1,
|
|
4772
|
+
const A = document.createElement("div");
|
|
4773
|
+
A.className = "gengage-fl", A.dataset.gengagePart = "floating-launcher", A.innerHTML = Ai();
|
|
4774
|
+
const T = A.querySelector(".gengage-fl-input"), k = A.querySelector(".gengage-fl-transcript"), P = A.querySelector(".gengage-fl-transcript-final"), z = A.querySelector(".gengage-fl-transcript-interim"), U = A.querySelector(".gengage-fl-btn-send"), X = A.querySelector(".gengage-fl-btn-mic"), E = A.querySelector(".gengage-fl-btn-open-chat"), R = A.querySelector(".gengage-fl-cancel"), F = A.querySelector(".gengage-fl-wave"), B = A.querySelector(".gengage-fl-ring");
|
|
4775
|
+
T.placeholder = m[0] ?? "", U.setAttribute("aria-label", g), X.setAttribute("aria-label", _), R.setAttribute("aria-label", w), E.setAttribute("aria-label", b);
|
|
4776
|
+
let C = !1, O = !1, N = "", q = !1, D = null, ne = 0, W = null, K = null, f = null, S = null, L = null, $ = 0;
|
|
4758
4777
|
function I() {
|
|
4759
|
-
const
|
|
4760
|
-
if (
|
|
4761
|
-
|
|
4778
|
+
const V = T.value.trim().length > 0;
|
|
4779
|
+
if (X.classList.toggle("is-recording", C), C) {
|
|
4780
|
+
U.style.display = "flex", X.style.display = "flex", R.style.display = "flex", E.style.display = "none";
|
|
4762
4781
|
return;
|
|
4763
4782
|
}
|
|
4764
|
-
|
|
4765
|
-
}
|
|
4766
|
-
function O() {
|
|
4767
|
-
ne = (ne + 1) % m.length, M.placeholder = m[ne] ?? "", X = setTimeout(O, x);
|
|
4783
|
+
U.style.display = V ? "flex" : "none", X.style.display = V ? "none" : "flex", R.style.display = "none", E.style.display = !V && q ? "flex" : "none";
|
|
4768
4784
|
}
|
|
4769
|
-
function
|
|
4770
|
-
|
|
4785
|
+
function j() {
|
|
4786
|
+
ne = (ne + 1) % m.length, T.placeholder = m[ne] ?? "", W = setTimeout(j, x);
|
|
4771
4787
|
}
|
|
4772
|
-
function
|
|
4773
|
-
|
|
4788
|
+
function Q() {
|
|
4789
|
+
W !== null || m.length <= 1 || (W = setTimeout(j, x));
|
|
4774
4790
|
}
|
|
4775
4791
|
function te() {
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4792
|
+
W !== null && (clearTimeout(W), W = null);
|
|
4793
|
+
}
|
|
4794
|
+
function oe() {
|
|
4795
|
+
C && (C = !1, y(), O = !1, ie(), u && H(), N = "", T.style.display = "", k.style.display = "none", P.textContent = "", z.textContent = "");
|
|
4796
|
+
const V = T.value.trim();
|
|
4797
|
+
V && (e.onSend(V), q || (q = !0)), T.value = "", N = "", I();
|
|
4779
4798
|
}
|
|
4780
4799
|
function se() {
|
|
4781
|
-
const
|
|
4782
|
-
if (
|
|
4800
|
+
const V = window, G = V.SpeechRecognition ?? V.webkitSpeechRecognition;
|
|
4801
|
+
if (!G) {
|
|
4783
4802
|
console.warn("[FloatingLauncher] SpeechRecognition not supported.");
|
|
4784
4803
|
return;
|
|
4785
4804
|
}
|
|
4786
|
-
|
|
4805
|
+
D || (D = new G(), D.continuous = !0, D.interimResults = !0, D.lang = v), C = !0, O = !0, N = "", T.value = "", T.style.display = "none", k.style.display = "flex", P.textContent = "", z.textContent = "", I(), ce(), u && M(), D.onresult = (J) => {
|
|
4787
4806
|
if (!C) return;
|
|
4788
|
-
let
|
|
4789
|
-
for (let
|
|
4790
|
-
const Ae =
|
|
4807
|
+
let re = "", Z = "";
|
|
4808
|
+
for (let le = J.resultIndex; le < J.results.length; le++) {
|
|
4809
|
+
const Ae = J.results[le];
|
|
4791
4810
|
if (!Ae) continue;
|
|
4792
4811
|
const Fe = Ae[0]?.transcript ?? "";
|
|
4793
|
-
Ae.isFinal ?
|
|
4812
|
+
Ae.isFinal ? Z += Fe : re += Fe;
|
|
4794
4813
|
}
|
|
4795
|
-
|
|
4796
|
-
},
|
|
4814
|
+
N += Z, P.textContent = N, z.textContent = re, T.value = `${N} ${re}`.trim(), I();
|
|
4815
|
+
}, D.onend = () => Y(), D.onerror = () => Y();
|
|
4797
4816
|
try {
|
|
4798
|
-
|
|
4817
|
+
D.start();
|
|
4799
4818
|
} catch {
|
|
4800
|
-
|
|
4819
|
+
Y();
|
|
4801
4820
|
}
|
|
4802
4821
|
}
|
|
4803
|
-
function
|
|
4822
|
+
function y() {
|
|
4804
4823
|
try {
|
|
4805
|
-
|
|
4824
|
+
D?.stop();
|
|
4806
4825
|
} catch {
|
|
4807
4826
|
}
|
|
4808
4827
|
}
|
|
4809
|
-
function
|
|
4810
|
-
|
|
4828
|
+
function Y() {
|
|
4829
|
+
O && (O = !1, C = !1, ie(), u && H(), N.trim() && (T.value = N.trim()), T.style.display = "", k.style.display = "none", P.textContent = "", z.textContent = "", I());
|
|
4811
4830
|
}
|
|
4812
|
-
async function
|
|
4813
|
-
const
|
|
4831
|
+
async function ce() {
|
|
4832
|
+
const V = ++$, G = Array.from(F.querySelectorAll("span"));
|
|
4814
4833
|
try {
|
|
4815
|
-
const
|
|
4816
|
-
if (!C ||
|
|
4817
|
-
|
|
4834
|
+
const J = await navigator.mediaDevices.getUserMedia({ audio: !0 });
|
|
4835
|
+
if (!C || V !== $) {
|
|
4836
|
+
J.getTracks().forEach((Ie) => Ie.stop());
|
|
4818
4837
|
return;
|
|
4819
4838
|
}
|
|
4820
|
-
|
|
4821
|
-
const
|
|
4822
|
-
if (!
|
|
4823
|
-
throw
|
|
4824
|
-
const
|
|
4825
|
-
if (!C ||
|
|
4826
|
-
|
|
4839
|
+
K = J;
|
|
4840
|
+
const re = window, Z = re.AudioContext ?? re.webkitAudioContext;
|
|
4841
|
+
if (!Z)
|
|
4842
|
+
throw K = null, J.getTracks().forEach((Ie) => Ie.stop()), new Error("AudioContext not supported");
|
|
4843
|
+
const le = new Z();
|
|
4844
|
+
if (!C || V !== $) {
|
|
4845
|
+
J.getTracks().forEach((Ie) => Ie.stop()), le.close().catch(() => {
|
|
4827
4846
|
});
|
|
4828
4847
|
return;
|
|
4829
4848
|
}
|
|
4830
|
-
f =
|
|
4849
|
+
f = le, S = le.createAnalyser(), S.fftSize = 256, le.createMediaStreamSource(J).connect(S);
|
|
4831
4850
|
const Ae = new Uint8Array(S.frequencyBinCount), Fe = () => {
|
|
4832
|
-
if (!C ||
|
|
4851
|
+
if (!C || V !== $ || !S) return;
|
|
4833
4852
|
S.getByteFrequencyData(Ae);
|
|
4834
|
-
const Ie = Math.max(1, Math.floor(Ae.length /
|
|
4835
|
-
|
|
4853
|
+
const Ie = Math.max(1, Math.floor(Ae.length / G.length));
|
|
4854
|
+
G.forEach((ka, Ca) => {
|
|
4836
4855
|
ka.style.height = `${4 + Math.round((Ae[Ca * Ie] ?? 0) / 255 * 8)}px`;
|
|
4837
|
-
}),
|
|
4856
|
+
}), L = requestAnimationFrame(Fe);
|
|
4838
4857
|
};
|
|
4839
4858
|
Fe();
|
|
4840
4859
|
} catch {
|
|
4841
|
-
if (!C ||
|
|
4842
|
-
|
|
4843
|
-
}), f = null),
|
|
4860
|
+
if (!C || V !== $) return;
|
|
4861
|
+
L !== null && (cancelAnimationFrame(L), L = null), S && (S.disconnect(), S = null), f && (f.close().catch(() => {
|
|
4862
|
+
}), f = null), K && (K.getTracks().forEach((J) => J.stop()), K = null), F.classList.add("is-css-animated");
|
|
4844
4863
|
}
|
|
4845
4864
|
}
|
|
4846
4865
|
function ie() {
|
|
4847
|
-
|
|
4848
|
-
}), f = null),
|
|
4849
|
-
|
|
4866
|
+
$ += 1, F.classList.remove("is-css-animated"), L !== null && (cancelAnimationFrame(L), L = null), S && (S.disconnect(), S = null), f && (f.close().catch(() => {
|
|
4867
|
+
}), f = null), K && (K.getTracks().forEach((V) => V.stop()), K = null), Array.from(F.querySelectorAll("span")).forEach((V) => {
|
|
4868
|
+
V.style.height = "4px";
|
|
4850
4869
|
});
|
|
4851
4870
|
}
|
|
4852
|
-
function
|
|
4853
|
-
|
|
4854
|
-
}
|
|
4855
|
-
function
|
|
4856
|
-
|
|
4857
|
-
}
|
|
4858
|
-
|
|
4859
|
-
|
|
4860
|
-
}),
|
|
4861
|
-
C && (C = !1,
|
|
4862
|
-
}),
|
|
4863
|
-
|
|
4864
|
-
}),
|
|
4865
|
-
|
|
4866
|
-
}), I(),
|
|
4871
|
+
function M() {
|
|
4872
|
+
B.classList.add("is-active");
|
|
4873
|
+
}
|
|
4874
|
+
function H() {
|
|
4875
|
+
B.classList.remove("is-active");
|
|
4876
|
+
}
|
|
4877
|
+
U.addEventListener("click", oe), X.addEventListener("click", (V) => {
|
|
4878
|
+
V.preventDefault(), V.stopPropagation(), C ? y() : se();
|
|
4879
|
+
}), R.addEventListener("click", () => {
|
|
4880
|
+
C && (C = !1, y(), O = !1, ie(), u && H(), N = "", T.style.display = "", k.style.display = "none", P.textContent = "", z.textContent = "", I());
|
|
4881
|
+
}), E.addEventListener("click", (V) => {
|
|
4882
|
+
V.preventDefault(), V.stopPropagation(), e.onOpenChat();
|
|
4883
|
+
}), T.addEventListener("input", I), T.addEventListener("keydown", (V) => {
|
|
4884
|
+
V.key === "Enter" && oe();
|
|
4885
|
+
}), I(), Q();
|
|
4867
4886
|
function ee() {
|
|
4868
|
-
|
|
4887
|
+
q = !0, I();
|
|
4869
4888
|
}
|
|
4870
|
-
function
|
|
4871
|
-
|
|
4889
|
+
function pe() {
|
|
4890
|
+
te(), ie(), H(), C && (C = !1, y()), D && (D.onresult = null, D.onend = null, D.onerror = null, D = null);
|
|
4872
4891
|
}
|
|
4873
4892
|
return {
|
|
4874
|
-
container:
|
|
4893
|
+
container: A,
|
|
4875
4894
|
showOpenChatButton: ee,
|
|
4876
|
-
destroy:
|
|
4895
|
+
destroy: pe
|
|
4877
4896
|
};
|
|
4878
4897
|
}
|
|
4879
|
-
var Mi = "gengage-inline-launcher-style", Ut = "gengage-inline-launcher-hide-floating", me = "gengage-inline-launcher", Ni = "gengage-inline-launcher", je = "data-gengage-inline-sibling", rt = "data-gengage-inline-sibling-restore-index", Bi = '<svg viewBox="0 0 20 20" fill="none" aria-hidden="true"><path d="M8.85 2.4c.23 0 .43.16.48.39l.9 3.77a3.8 3.8 0 0 0 2.8 2.8l3.77.9a.5.5 0 0 1 0 .98l-3.77.9a3.8 3.8 0 0 0-2.8 2.8l-.9 3.77a.5.5 0 0 1-.98 0l-.9-3.77a3.8 3.8 0 0 0-2.8-2.8l-3.77-.9a.5.5 0 0 1 0-.98l3.77-.9a3.8 3.8 0 0 0 2.8-2.8l.9-3.77c.05-.23.25-.39.48-.39Z" fill="currentColor"/><path d="M15.95 1.1c.12 0 .23.08.26.2l.32 1.34c.16.68.7 1.21 1.37 1.37l1.34.32a.27.27 0 0 1 0 .53l-1.34.32a1.87 1.87 0 0 0-1.37 1.37l-.32 1.34a.27.27 0 0 1-.53 0l-.32-1.34A1.87 1.87 0 0 0 14 5.18l-1.34-.32a.27.27 0 0 1 0-.53L14 4a1.87 1.87 0 0 0 1.37-1.37l.32-1.34c.03-.12.14-.2.26-.2Z" fill="currentColor" opacity=".72"/></svg>',
|
|
4898
|
+
var Mi = "gengage-inline-launcher-style", Ut = "gengage-inline-launcher-hide-floating", me = "gengage-inline-launcher", Ni = "gengage-inline-launcher", je = "data-gengage-inline-sibling", rt = "data-gengage-inline-sibling-restore-index", Bi = '<svg viewBox="0 0 20 20" fill="none" aria-hidden="true"><path d="M8.85 2.4c.23 0 .43.16.48.39l.9 3.77a3.8 3.8 0 0 0 2.8 2.8l3.77.9a.5.5 0 0 1 0 .98l-3.77.9a3.8 3.8 0 0 0-2.8 2.8l-.9 3.77a.5.5 0 0 1-.98 0l-.9-3.77a3.8 3.8 0 0 0-2.8-2.8l-3.77-.9a.5.5 0 0 1 0-.98l3.77-.9a3.8 3.8 0 0 0 2.8-2.8l.9-3.77c.05-.23.25-.39.48-.39Z" fill="currentColor"/><path d="M15.95 1.1c.12 0 .23.08.26.2l.32 1.34c.16.68.7 1.21 1.37 1.37l1.34.32a.27.27 0 0 1 0 .53l-1.34.32a1.87 1.87 0 0 0-1.37 1.37l-.32 1.34a.27.27 0 0 1-.53 0l-.32-1.34A1.87 1.87 0 0 0 14 5.18l-1.34-.32a.27.27 0 0 1 0-.53L14 4a1.87 1.87 0 0 0 1.37-1.37l.32-1.34c.03-.12.14-.2.26-.2Z" fill="currentColor" opacity=".72"/></svg>', ge = {
|
|
4880
4899
|
rowGap: "14px",
|
|
4881
4900
|
buttonHeight: "46px",
|
|
4882
4901
|
buttonPadding: "0 14px 0 10px",
|
|
@@ -4903,27 +4922,27 @@ var Mi = "gengage-inline-launcher-style", Ut = "gengage-inline-launcher-hide-flo
|
|
|
4903
4922
|
function zi(t) {
|
|
4904
4923
|
const e = t?.mobile;
|
|
4905
4924
|
return {
|
|
4906
|
-
rowGap: t?.rowGap ??
|
|
4907
|
-
buttonHeight: t?.buttonHeight ??
|
|
4908
|
-
buttonPadding: t?.buttonPadding ??
|
|
4909
|
-
buttonGap: t?.buttonGap ??
|
|
4910
|
-
fontSize: t?.fontSize ??
|
|
4911
|
-
iconSize: t?.iconSize ??
|
|
4912
|
-
iconImageSize: t?.iconImageSize ??
|
|
4913
|
-
sparkSize: t?.sparkSize ??
|
|
4914
|
-
sparkIconSize: t?.sparkIconSize ??
|
|
4925
|
+
rowGap: t?.rowGap ?? ge.rowGap,
|
|
4926
|
+
buttonHeight: t?.buttonHeight ?? ge.buttonHeight,
|
|
4927
|
+
buttonPadding: t?.buttonPadding ?? ge.buttonPadding,
|
|
4928
|
+
buttonGap: t?.buttonGap ?? ge.buttonGap,
|
|
4929
|
+
fontSize: t?.fontSize ?? ge.fontSize,
|
|
4930
|
+
iconSize: t?.iconSize ?? ge.iconSize,
|
|
4931
|
+
iconImageSize: t?.iconImageSize ?? ge.iconImageSize,
|
|
4932
|
+
sparkSize: t?.sparkSize ?? ge.sparkSize,
|
|
4933
|
+
sparkIconSize: t?.sparkIconSize ?? ge.sparkIconSize,
|
|
4915
4934
|
mobile: {
|
|
4916
|
-
rowGap: e?.rowGap ??
|
|
4917
|
-
buttonPadding: e?.buttonPadding ??
|
|
4918
|
-
buttonGap: e?.buttonGap ??
|
|
4919
|
-
fontSize: e?.fontSize ??
|
|
4920
|
-
iconSize: e?.iconSize ??
|
|
4921
|
-
iconImageSize: e?.iconImageSize ??
|
|
4922
|
-
sparkSize: e?.sparkSize ??
|
|
4923
|
-
sparkIconSize: e?.sparkIconSize ??
|
|
4924
|
-
hideTitle: e?.hideTitle ??
|
|
4925
|
-
hideSpark: e?.hideSpark ??
|
|
4926
|
-
hideLogo: e?.hideLogo ??
|
|
4935
|
+
rowGap: e?.rowGap ?? ge.mobile.rowGap,
|
|
4936
|
+
buttonPadding: e?.buttonPadding ?? ge.mobile.buttonPadding,
|
|
4937
|
+
buttonGap: e?.buttonGap ?? ge.mobile.buttonGap,
|
|
4938
|
+
fontSize: e?.fontSize ?? ge.mobile.fontSize,
|
|
4939
|
+
iconSize: e?.iconSize ?? ge.mobile.iconSize,
|
|
4940
|
+
iconImageSize: e?.iconImageSize ?? ge.mobile.iconImageSize,
|
|
4941
|
+
sparkSize: e?.sparkSize ?? ge.mobile.sparkSize,
|
|
4942
|
+
sparkIconSize: e?.sparkIconSize ?? ge.mobile.sparkIconSize,
|
|
4943
|
+
hideTitle: e?.hideTitle ?? ge.mobile.hideTitle,
|
|
4944
|
+
hideSpark: e?.hideSpark ?? ge.mobile.hideSpark,
|
|
4945
|
+
hideLogo: e?.hideLogo ?? ge.mobile.hideLogo
|
|
4927
4946
|
}
|
|
4928
4947
|
};
|
|
4929
4948
|
}
|
|
@@ -5060,17 +5079,17 @@ function Hi(t) {
|
|
|
5060
5079
|
return new Promise((e) => window.setTimeout(e, t));
|
|
5061
5080
|
}
|
|
5062
5081
|
function Fi(t, e, a) {
|
|
5063
|
-
const { hostSelector: n, rowClassName: r = "gengage-inline-launcher-row", siblingSelector: i, siblingPlacement: o = "before", rowPlacement: s = "end", title: c = "Ask", iconUrl: l, primaryColor: d = "#6366f1", textColor: p = "#222222", fontFamily: h = "inherit", borderRadius: m = "3px", showSparkIcon: x = !0, desktopMinWidth: v = 0, enableOnMobile: u = !1, disabledPageTypes: g = ["pdp"], hideFloatingLauncher: _ = !0, mountPollFrames:
|
|
5064
|
-
let
|
|
5065
|
-
const
|
|
5082
|
+
const { hostSelector: n, rowClassName: r = "gengage-inline-launcher-row", siblingSelector: i, siblingPlacement: o = "before", rowPlacement: s = "end", title: c = "Ask", iconUrl: l, primaryColor: d = "#6366f1", textColor: p = "#222222", fontFamily: h = "inherit", borderRadius: m = "3px", showSparkIcon: x = !0, desktopMinWidth: v = 0, enableOnMobile: u = !1, disabledPageTypes: g = ["pdp"], hideFloatingLauncher: _ = !0, mountPollFrames: w = 90, debounceMs: b = 90, buttonId: A = Ni } = t, T = t.ariaLabel ?? c, k = t.siblingRestoreParentSelector ?? n, P = u && v > 0 ? v : 576, z = zi(t.size), U = `${Mi}-${A}`;
|
|
5083
|
+
let X = !1, E = !1, R = null, F = null, B = null, C = null;
|
|
5084
|
+
const O = () => {
|
|
5066
5085
|
if (u && v > 0 && window.innerWidth < v && t.mobileHost && t.mobileHost) {
|
|
5067
|
-
const
|
|
5086
|
+
const M = t.mobileHost;
|
|
5068
5087
|
return {
|
|
5069
|
-
hostSelector:
|
|
5070
|
-
siblingSelector:
|
|
5071
|
-
siblingRestoreParentSelector:
|
|
5072
|
-
rowPlacement:
|
|
5073
|
-
siblingPlacement:
|
|
5088
|
+
hostSelector: M.hostSelector,
|
|
5089
|
+
siblingSelector: M.siblingSelector ?? i,
|
|
5090
|
+
siblingRestoreParentSelector: M.siblingRestoreParentSelector ?? M.hostSelector,
|
|
5091
|
+
rowPlacement: M.rowPlacement ?? s,
|
|
5092
|
+
siblingPlacement: M.siblingPlacement ?? o
|
|
5074
5093
|
};
|
|
5075
5094
|
}
|
|
5076
5095
|
return {
|
|
@@ -5080,143 +5099,143 @@ function Fi(t, e, a) {
|
|
|
5080
5099
|
rowPlacement: s,
|
|
5081
5100
|
siblingPlacement: o
|
|
5082
5101
|
};
|
|
5083
|
-
},
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
].join("|"),
|
|
5088
|
-
if (document.getElementById(
|
|
5089
|
-
const
|
|
5090
|
-
|
|
5102
|
+
}, N = (M) => [
|
|
5103
|
+
M.hostSelector,
|
|
5104
|
+
M.siblingSelector ?? "",
|
|
5105
|
+
M.siblingRestoreParentSelector
|
|
5106
|
+
].join("|"), q = () => {
|
|
5107
|
+
if (document.getElementById(U)) return;
|
|
5108
|
+
const M = document.createElement("style");
|
|
5109
|
+
M.id = U, M.textContent = Ri({
|
|
5091
5110
|
primaryColor: d,
|
|
5092
5111
|
textColor: p,
|
|
5093
5112
|
fontFamily: h,
|
|
5094
5113
|
borderRadius: m,
|
|
5095
5114
|
rowClassName: r,
|
|
5096
|
-
compactBelowWidth:
|
|
5097
|
-
buttonId:
|
|
5098
|
-
sizes:
|
|
5099
|
-
}), document.head.appendChild(
|
|
5100
|
-
},
|
|
5115
|
+
compactBelowWidth: P,
|
|
5116
|
+
buttonId: A,
|
|
5117
|
+
sizes: z
|
|
5118
|
+
}), document.head.appendChild(M);
|
|
5119
|
+
}, D = (M) => {
|
|
5101
5120
|
if (!_ || !a.shadowRoot) return;
|
|
5102
|
-
const
|
|
5103
|
-
if (!
|
|
5104
|
-
|
|
5121
|
+
const H = a.shadowRoot.getElementById(Ut);
|
|
5122
|
+
if (!M) {
|
|
5123
|
+
H?.remove();
|
|
5105
5124
|
return;
|
|
5106
5125
|
}
|
|
5107
|
-
if (
|
|
5126
|
+
if (H) return;
|
|
5108
5127
|
const ee = document.createElement("style");
|
|
5109
5128
|
ee.id = Ut, ee.textContent = ".gengage-chat-launcher-container,.gengage-fl{display:none!important;}", a.shadowRoot.appendChild(ee);
|
|
5110
|
-
}, ne = (
|
|
5111
|
-
const
|
|
5112
|
-
return
|
|
5113
|
-
},
|
|
5114
|
-
if (!
|
|
5115
|
-
const
|
|
5116
|
-
return
|
|
5117
|
-
},
|
|
5129
|
+
}, ne = (M) => {
|
|
5130
|
+
const H = document.querySelector(M);
|
|
5131
|
+
return H instanceof HTMLElement ? H : null;
|
|
5132
|
+
}, W = (M) => {
|
|
5133
|
+
if (!M) return null;
|
|
5134
|
+
const H = document.querySelector(M);
|
|
5135
|
+
return H instanceof HTMLElement ? H : null;
|
|
5136
|
+
}, K = (M) => {
|
|
5118
5137
|
if (C?.isConnected) return C;
|
|
5119
|
-
const
|
|
5120
|
-
return
|
|
5121
|
-
}, f = (
|
|
5122
|
-
const
|
|
5123
|
-
return
|
|
5124
|
-
}, S = (
|
|
5125
|
-
if (
|
|
5126
|
-
const
|
|
5127
|
-
if (!
|
|
5128
|
-
const ee = Array.from(
|
|
5129
|
-
ee >= 0 &&
|
|
5130
|
-
},
|
|
5131
|
-
const
|
|
5132
|
-
if (!
|
|
5133
|
-
if (S(
|
|
5134
|
-
|
|
5138
|
+
const H = W(M.siblingSelector);
|
|
5139
|
+
return H && (C = H), H;
|
|
5140
|
+
}, f = (M) => {
|
|
5141
|
+
const H = document.querySelector(M);
|
|
5142
|
+
return H instanceof HTMLElement ? H : null;
|
|
5143
|
+
}, S = (M) => {
|
|
5144
|
+
if (M.hasAttribute(rt)) return;
|
|
5145
|
+
const H = M.parentElement;
|
|
5146
|
+
if (!H) return;
|
|
5147
|
+
const ee = Array.from(H.children).indexOf(M);
|
|
5148
|
+
ee >= 0 && M.setAttribute(rt, String(ee));
|
|
5149
|
+
}, L = (M) => {
|
|
5150
|
+
const H = K(M), ee = f(M.siblingRestoreParentSelector);
|
|
5151
|
+
if (!H || !ee) return;
|
|
5152
|
+
if (S(H), H.parentElement === ee) {
|
|
5153
|
+
H.removeAttribute(je);
|
|
5135
5154
|
return;
|
|
5136
5155
|
}
|
|
5137
|
-
const
|
|
5138
|
-
if (
|
|
5139
|
-
ee.insertBefore(
|
|
5156
|
+
const pe = H.getAttribute(rt), V = pe ? Number.parseInt(pe, 10) : 0, G = Array.from(ee.children).filter((re) => !(re instanceof HTMLElement && re.classList.contains(r))), J = Number.isFinite(V) && V >= 0 ? G[V] ?? null : null;
|
|
5157
|
+
if (J) {
|
|
5158
|
+
ee.insertBefore(H, J), H.removeAttribute(je);
|
|
5140
5159
|
return;
|
|
5141
5160
|
}
|
|
5142
|
-
ee.appendChild(
|
|
5143
|
-
},
|
|
5144
|
-
|
|
5161
|
+
ee.appendChild(H), H.removeAttribute(je);
|
|
5162
|
+
}, $ = (M) => {
|
|
5163
|
+
M.querySelector(`.${r}`)?.remove();
|
|
5145
5164
|
}, I = () => {
|
|
5146
|
-
const
|
|
5147
|
-
|
|
5148
|
-
const
|
|
5149
|
-
return
|
|
5150
|
-
},
|
|
5165
|
+
const M = document.createElement("span");
|
|
5166
|
+
M.className = `${me}-icon`;
|
|
5167
|
+
const H = document.createElement("img");
|
|
5168
|
+
return H.src = l, H.alt = "", H.draggable = !1, M.appendChild(H), M;
|
|
5169
|
+
}, j = () => window.innerWidth < P, Q = (M) => {
|
|
5151
5170
|
if (!l) return;
|
|
5152
|
-
const
|
|
5153
|
-
if (
|
|
5154
|
-
|
|
5171
|
+
const H = M.querySelector(`.${me}-icon`);
|
|
5172
|
+
if (j() && z.mobile.hideLogo) {
|
|
5173
|
+
H?.remove();
|
|
5155
5174
|
return;
|
|
5156
5175
|
}
|
|
5157
|
-
|
|
5158
|
-
},
|
|
5159
|
-
const
|
|
5160
|
-
|
|
5161
|
-
const
|
|
5162
|
-
|
|
5176
|
+
H || M.insertBefore(I(), M.firstChild);
|
|
5177
|
+
}, te = () => {
|
|
5178
|
+
const M = document.createElement("button");
|
|
5179
|
+
M.type = "button", M.id = A, M.className = me, M.setAttribute("aria-label", T), l && M.appendChild(I());
|
|
5180
|
+
const H = document.createElement("span");
|
|
5181
|
+
H.className = `${me}-copy`;
|
|
5163
5182
|
const ee = document.createElement("span");
|
|
5164
|
-
if (ee.className = `${me}-title`, ee.textContent = c,
|
|
5165
|
-
const
|
|
5166
|
-
|
|
5167
|
-
}
|
|
5168
|
-
return
|
|
5169
|
-
},
|
|
5170
|
-
if (S(
|
|
5171
|
-
(
|
|
5183
|
+
if (ee.className = `${me}-title`, ee.textContent = c, H.appendChild(ee), M.appendChild(H), x) {
|
|
5184
|
+
const pe = document.createElement("span");
|
|
5185
|
+
pe.className = `${me}-spark`, pe.innerHTML = Bi, M.appendChild(pe);
|
|
5186
|
+
}
|
|
5187
|
+
return M.addEventListener("click", () => e.onClick()), M;
|
|
5188
|
+
}, oe = (M, H, ee) => {
|
|
5189
|
+
if (S(H), H.setAttribute(je, "true"), o === "before") {
|
|
5190
|
+
(H.parentElement !== M || H.nextElementSibling !== ee) && M.insertBefore(H, ee);
|
|
5172
5191
|
return;
|
|
5173
5192
|
}
|
|
5174
|
-
(
|
|
5193
|
+
(H.parentElement !== M || ee.nextElementSibling !== H) && M.appendChild(H);
|
|
5175
5194
|
}, se = () => {
|
|
5176
|
-
if (
|
|
5177
|
-
|
|
5178
|
-
const
|
|
5179
|
-
|
|
5180
|
-
}
|
|
5181
|
-
C = null,
|
|
5182
|
-
},
|
|
5183
|
-
const
|
|
5184
|
-
if (!
|
|
5195
|
+
if (B) {
|
|
5196
|
+
L(B);
|
|
5197
|
+
const M = ne(B.hostSelector);
|
|
5198
|
+
M && $(M), B = null;
|
|
5199
|
+
}
|
|
5200
|
+
C = null, D(!1), X = !1;
|
|
5201
|
+
}, y = (M) => !(M && g.includes(M) || v > 0 && window.innerWidth < v && !u), Y = async (M) => {
|
|
5202
|
+
const H = M ?? a.getPageType();
|
|
5203
|
+
if (!y(H))
|
|
5185
5204
|
return se(), !1;
|
|
5186
|
-
|
|
5187
|
-
const ee =
|
|
5188
|
-
|
|
5189
|
-
for (let
|
|
5190
|
-
if (!
|
|
5205
|
+
q();
|
|
5206
|
+
const ee = O();
|
|
5207
|
+
B && N(B) !== N(ee) && se();
|
|
5208
|
+
for (let pe = 0; pe < w; pe += 1) {
|
|
5209
|
+
if (!y(H))
|
|
5191
5210
|
return se(), !1;
|
|
5192
|
-
const
|
|
5193
|
-
if (
|
|
5194
|
-
|
|
5195
|
-
let
|
|
5196
|
-
|
|
5197
|
-
let
|
|
5198
|
-
return
|
|
5211
|
+
const V = O(), G = ne(V.hostSelector), J = K(V);
|
|
5212
|
+
if (G && (!V.siblingSelector || J)) {
|
|
5213
|
+
B && N(B) !== N(V) && se(), J && S(J);
|
|
5214
|
+
let re = G.querySelector(`.${r}`);
|
|
5215
|
+
re instanceof HTMLElement || (re = document.createElement("div"), re.className = r, V.rowPlacement === "start" ? G.insertBefore(re, G.firstChild) : G.appendChild(re));
|
|
5216
|
+
let Z = re.querySelector(`#${CSS.escape(A)}`);
|
|
5217
|
+
return Z instanceof HTMLButtonElement ? F = Z : (Z = te(), F = Z, re.appendChild(Z)), J && oe(re, J, Z), Q(Z), E ? Z.classList.add(`${me}--active`) : Z.classList.remove(`${me}--active`), D(!0), X = !0, B = V, !0;
|
|
5199
5218
|
}
|
|
5200
5219
|
await Hi(16);
|
|
5201
5220
|
}
|
|
5202
5221
|
return se(), !1;
|
|
5203
|
-
},
|
|
5204
|
-
|
|
5205
|
-
|
|
5222
|
+
}, ce = () => {
|
|
5223
|
+
R !== null && window.clearTimeout(R), R = window.setTimeout(() => {
|
|
5224
|
+
R = null, Y();
|
|
5206
5225
|
}, b);
|
|
5207
|
-
}, ie = () =>
|
|
5226
|
+
}, ie = () => ce();
|
|
5208
5227
|
return window.addEventListener("resize", ie, { passive: !0 }), window.addEventListener("orientationchange", ie), {
|
|
5209
5228
|
get isMounted() {
|
|
5210
|
-
return
|
|
5229
|
+
return X;
|
|
5211
5230
|
},
|
|
5212
|
-
sync(
|
|
5213
|
-
return
|
|
5231
|
+
sync(M) {
|
|
5232
|
+
return Y(M);
|
|
5214
5233
|
},
|
|
5215
|
-
setActive(
|
|
5216
|
-
|
|
5234
|
+
setActive(M) {
|
|
5235
|
+
E = M, F?.classList.toggle(`${me}--active`, M);
|
|
5217
5236
|
},
|
|
5218
5237
|
destroy() {
|
|
5219
|
-
|
|
5238
|
+
R !== null && (window.clearTimeout(R), R = null), window.removeEventListener("resize", ie), window.removeEventListener("orientationchange", ie), se(), document.getElementById(U)?.remove(), F = null;
|
|
5220
5239
|
}
|
|
5221
5240
|
};
|
|
5222
5241
|
}
|
|
@@ -5346,8 +5365,8 @@ function Gi(t) {
|
|
|
5346
5365
|
continue;
|
|
5347
5366
|
}
|
|
5348
5367
|
const _ = document.createElement("a");
|
|
5349
|
-
_.className = "gengage-product-mention", _.textContent = v, _.href = "#", _.addEventListener("click", (
|
|
5350
|
-
|
|
5368
|
+
_.className = "gengage-product-mention", _.textContent = v, _.href = "#", _.addEventListener("click", (w) => {
|
|
5369
|
+
w.preventDefault(), n(o.sku);
|
|
5351
5370
|
}), x && g.insertBefore(document.createTextNode(x), c), g.insertBefore(_, c), u && g.insertBefore(document.createTextNode(u), c), g.removeChild(c), l = !0;
|
|
5352
5371
|
}
|
|
5353
5372
|
}
|
|
@@ -5412,7 +5431,7 @@ function bt(t) {
|
|
|
5412
5431
|
function Ji(t) {
|
|
5413
5432
|
t && bt(t);
|
|
5414
5433
|
}
|
|
5415
|
-
var eo = "gengage_assistant", to = 3,
|
|
5434
|
+
var eo = "gengage_assistant", to = 3, Le = "sessions", ye = "context", Se = "payload", we = "favorites";
|
|
5416
5435
|
function De(t) {
|
|
5417
5436
|
return new Promise((e, a) => {
|
|
5418
5437
|
t.onsuccess = () => e(t.result), t.onerror = () => a(t.error);
|
|
@@ -5432,7 +5451,7 @@ var ao = class {
|
|
|
5432
5451
|
const a = indexedDB.open(this._dbName, this._version);
|
|
5433
5452
|
a.onupgradeneeded = (n) => {
|
|
5434
5453
|
const r = a.result, i = n.oldVersion;
|
|
5435
|
-
i < 1 && (r.createObjectStore(
|
|
5454
|
+
i < 1 && (r.createObjectStore(Le, { keyPath: [
|
|
5436
5455
|
"userId",
|
|
5437
5456
|
"appId",
|
|
5438
5457
|
"sessionId"
|
|
@@ -5440,7 +5459,7 @@ var ao = class {
|
|
|
5440
5459
|
"userId",
|
|
5441
5460
|
"appId",
|
|
5442
5461
|
"sku"
|
|
5443
|
-
] })), i >= 1 && i < 2 && (r.objectStoreNames.contains(
|
|
5462
|
+
] })), i >= 1 && i < 2 && (r.objectStoreNames.contains(Le) && r.deleteObjectStore(Le), r.objectStoreNames.contains(Se) && r.deleteObjectStore(Se), r.createObjectStore(Le, { keyPath: [
|
|
5444
5463
|
"userId",
|
|
5445
5464
|
"appId",
|
|
5446
5465
|
"sessionId"
|
|
@@ -5458,11 +5477,11 @@ var ao = class {
|
|
|
5458
5477
|
this._db?.close(), this._db = null;
|
|
5459
5478
|
}
|
|
5460
5479
|
async saveSession(t) {
|
|
5461
|
-
const e = this._requireDb().transaction(
|
|
5462
|
-
e.objectStore(
|
|
5480
|
+
const e = this._requireDb().transaction(Le, "readwrite");
|
|
5481
|
+
e.objectStore(Le).put(t), await Ne(e);
|
|
5463
5482
|
}
|
|
5464
5483
|
async loadSession(t, e, a) {
|
|
5465
|
-
return await De(this._requireDb().transaction(
|
|
5484
|
+
return await De(this._requireDb().transaction(Le, "readonly").objectStore(Le).get([
|
|
5466
5485
|
t,
|
|
5467
5486
|
e,
|
|
5468
5487
|
a
|
|
@@ -6004,7 +6023,7 @@ var xo = class {
|
|
|
6004
6023
|
await e();
|
|
6005
6024
|
} catch {
|
|
6006
6025
|
}
|
|
6007
|
-
a?.send("openURLInNewTab", { url: t }),
|
|
6026
|
+
a?.send("openURLInNewTab", { url: t }), ve(t) && n(t);
|
|
6008
6027
|
}
|
|
6009
6028
|
async loadPayload(t, e) {
|
|
6010
6029
|
if (!this._db) return null;
|
|
@@ -6158,10 +6177,10 @@ var _a = "gengage_kvkk_shown", Po = [
|
|
|
6158
6177
|
"kvkk",
|
|
6159
6178
|
"kişisel veri",
|
|
6160
6179
|
"kisisel veri"
|
|
6161
|
-
],
|
|
6180
|
+
], Lo = /\b6698\b/;
|
|
6162
6181
|
function xt(t) {
|
|
6163
6182
|
const e = t.toLowerCase();
|
|
6164
|
-
return Po.some((a) => e.includes(a)) ||
|
|
6183
|
+
return Po.some((a) => e.includes(a)) || Lo.test(e);
|
|
6165
6184
|
}
|
|
6166
6185
|
function Kt(t) {
|
|
6167
6186
|
try {
|
|
@@ -6176,7 +6195,7 @@ function ct(t) {
|
|
|
6176
6195
|
} catch {
|
|
6177
6196
|
}
|
|
6178
6197
|
}
|
|
6179
|
-
function
|
|
6198
|
+
function To(t, e = {}) {
|
|
6180
6199
|
const a = new DOMParser().parseFromString(t, "text/html").body, n = Array.from(a.children);
|
|
6181
6200
|
let r = !1;
|
|
6182
6201
|
for (const i of n) if (xt(i.textContent ?? "")) {
|
|
@@ -6199,7 +6218,7 @@ var Io = {
|
|
|
6199
6218
|
function Mo(t) {
|
|
6200
6219
|
return t ? Io[t.toLowerCase().slice(0, 2)] ?? "TURKISH" : "TURKISH";
|
|
6201
6220
|
}
|
|
6202
|
-
var No = ':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%;min-height:44px;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:0 16px;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%;min-height:48px;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;align-self:center;font-size:13px;line-height:1.35;display:block}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;min-height:20px;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-width:var(--gengage-chat-launcher-width,56px);--_gengage-chat-launcher-height:var(--gengage-chat-launcher-height,56px);--_gengage-chat-launcher-mobile-width:var(--gengage-chat-launcher-mobile-width,var(--_gengage-chat-launcher-width));--_gengage-chat-launcher-mobile-height:var(--gengage-chat-launcher-mobile-height,var(--_gengage-chat-launcher-height));--_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-anchor-bottom,var(--_gengage-chat-launcher-bottom));right:var(--gengage-chat-launcher-anchor-right,var(--_gengage-chat-launcher-right));z-index:var(--gengage-z-index,2147480000);transition:bottom var(--gengage-chat-launcher-anchor-transition,0s) ease, right var(--gengage-chat-launcher-anchor-transition,0s) ease;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-width);height:var(--_gengage-chat-launcher-height);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-img--mobile,.gengage-chat-root--mobile .gengage-chat-launcher-img--desktop{display:none}.gengage-chat-root--mobile .gengage-chat-launcher-img--mobile{display:block}.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-anchor-right,var(--gengage-chat-launcher-mobile-right,16px));bottom:calc(var(--gengage-chat-launcher-anchor-bottom,var(--gengage-chat-launcher-mobile-bottom,16px)) + env(safe-area-inset-bottom,0px))}.gengage-chat-root--mobile .gengage-chat-launcher{width:var(--_gengage-chat-launcher-mobile-width);height:var(--_gengage-chat-launcher-mobile-height)}.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{top:var(--gengage-chat-visual-top,0px);height:var(--gengage-chat-visual-vh,100dvh);max-height:var(--gengage-chat-visual-vh,100dvh);border-radius:0;bottom:auto}.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)}.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}@media (width<=374px){.gengage-chat-header{gap:8px;padding:10px}.gengage-chat-header-right{flex-shrink:1;gap:4px;min-width:0}.gengage-chat-header-btn{width:34px;min-width:34px;height:34px;min-height:34px}}.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.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-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-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--panel-bookmark{max-width:72%;margin-top:-6px}.gengage-chat-inline-panel-bookmark-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:700}.gengage-chat-inline-panel-bookmark-card{border:1px solid color-mix(in srgb, var(--client-primary) 38%, var(--border-default));background:color-mix(in srgb, var(--surface-card) 94%, transparent);text-align:left;width:100%;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-1);border-radius:18px;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;transition:transform .16s,border-color .16s,box-shadow .16s,background-color .16s;display:flex}.gengage-chat-inline-panel-bookmark-card:hover{border-color:color-mix(in srgb, var(--client-primary) 52%, var(--border-default));box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-chat-inline-panel-bookmark-card--active{background:color-mix(in srgb, var(--client-primary-subtle) 42%, var(--surface-card))}.gengage-chat-inline-panel-bookmark-previews{gap:8px;display:flex}.gengage-chat-inline-panel-bookmark-preview{background:color-mix(in srgb, var(--surface-card-muted) 70%, var(--surface-card));border:1px solid color-mix(in srgb, var(--border-default) 74%, transparent);border-radius:14px;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;overflow:hidden}.gengage-chat-inline-panel-bookmark-preview-img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-inline-panel-bookmark-preview-fallback{color:var(--text-primary);font-size:13px;font-weight:700}.gengage-chat-inline-panel-bookmark-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.gengage-chat-inline-panel-bookmark-cta{color:var(--client-primary);font-size:13px;font-weight:700}@media (width<=768px){.gengage-chat-bubble--panel-bookmark{display:none!important}}.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--ui-spec{box-shadow:none;background:0 0;border:none;min-width:0;padding:0}.gengage-chat-bubble--ui-spec-only{max-width:min(85%,420px)}.gengage-chat-bubble-ui-spec{width:100%}.gengage-chat-bubble--active{outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}.gengage-chat-bubble--panel-restore.gengage-chat-bubble--active{outline:none}.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-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-typing--presence{justify-content:flex-start;width:fit-content;max-width:100%}.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{--gengage-chat-input-control-size:40px;--gengage-chat-input-shell-pad:6px;--gengage-chat-input-shell-radius:18px;--gengage-chat-input-control-radius:12px;min-width:0;min-height:calc(var(--gengage-chat-input-control-size) + (var(--gengage-chat-input-shell-pad) * 2));background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--gengage-chat-input-shell-radius);padding:var(--gengage-chat-input-shell-pad);box-sizing:border-box;box-shadow:none;flex:1;align-items:center;gap:10px;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{box-sizing:border-box;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;padding:11px 0 9px;font-family:inherit;font-size:14px;line-height:1.4;overflow-y:hidden}.gengage-chat-root--mobile .gengage-chat-input-pill{--gengage-chat-input-control-size:44px;--gengage-chat-input-shell-radius:20px;--gengage-chat-input-control-radius:14px;min-height:calc(var(--gengage-chat-input-control-size) + (var(--gengage-chat-input-shell-pad) * 2))}.gengage-chat-root--mobile .gengage-chat-input{white-space:nowrap;min-height:44px;max-height:44px;padding:12px 0 10px;font-size:16px;line-height:1.4;overflow:hidden}.gengage-chat-input::placeholder{color:var(--text-muted);font-size:14px;line-height:inherit}.gengage-chat-send{width:var(--gengage-chat-input-control-size,40px);height:var(--gengage-chat-input-control-size,40px);min-width:var(--gengage-chat-input-control-size,40px);border:1px solid var(--ds-button-primary-border);border-radius:var(--gengage-chat-input-control-radius,12px);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:none;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-inline-question-buttons{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:10px 0 4px;display:flex}.gengage-chat-inline-question-btn{border:1px solid var(--ds-chip-border);border-radius:var(--radius-pill);background:var(--ds-chip-bg);max-width:100%;min-height:46px;color:var(--text-primary);text-align:left;white-space:normal;cursor:pointer;flex:0 auto;justify-content:flex-start;padding:11px 18px;font-size:13px;font-weight:700;line-height:1.4;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s;box-shadow:0 1px #1118270a}.gengage-chat-inline-question-btn:hover{background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border));box-shadow:0 4px 12px #11182714}.gengage-chat-inline-question-btn:active{background:var(--ds-chip-bg-active);border-color:var(--ds-chip-border-active);color:var(--text-primary);transform:translateY(1px);box-shadow:0 1px 4px #1118270f}.gengage-chat-inline-question-icon{color:color-mix(in srgb, var(--client-primary) 38%, var(--text-muted));flex:none;font-size:12px;line-height:1;transform:translateY(-1px)}.gengage-chat-inline-question-label{display:inline}.gengage-chat-root--mobile .gengage-chat-inline-question-buttons{gap:10px}.gengage-chat-root--mobile .gengage-chat-inline-question-btn{width:auto;max-width:min(100%,34rem);padding:12px 16px;font-size:12.5px}.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-panel-restore-card{appearance:none;box-sizing:border-box;font:inherit;border:1px solid color-mix(in srgb, var(--client-primary) 34%, var(--border-default));border-radius:calc(var(--radius-control) + 6px);background:var(--surface-card);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:12px;margin:0;padding:16px 18px;transition:transform .18s,background .18s,box-shadow .18s,border-color .18s;display:flex}.gengage-chat-panel-restore-card--minimal{gap:10px;padding:14px 16px}.gengage-chat-panel-restore-card:hover{background:color-mix(in srgb, var(--surface-card) 92%, var(--client-primary-subtle) 8%);box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 52%, var(--border-default));transform:translateY(-1px)}.gengage-chat-panel-restore-card:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:3px}.gengage-chat-panel-restore-card__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:800}.gengage-chat-panel-restore-card__previews{gap:10px;display:flex}.gengage-chat-panel-restore-card--minimal .gengage-chat-panel-restore-card__previews{gap:8px}.gengage-chat-panel-restore-card__thumb{border:1px solid var(--border-default);background:var(--surface-card);border-radius:16px;width:58px;height:58px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff8a}.gengage-chat-panel-restore-card__thumb img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-panel-restore-card__title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:18px;font-weight:700;line-height:1.24;display:-webkit-box;overflow:hidden}.gengage-chat-panel-restore-card__cta{color:var(--client-primary);font-size:15px;font-weight:700}.gengage-chat-panel-restore-card--minimal .gengage-chat-panel-restore-card__cta{letter-spacing:.01em;font-size:14px}.gengage-chat-root--mobile .gengage-chat-panel-restore-card{-webkit-tap-highlight-color:transparent;padding:14px 16px}.gengage-chat-root--mobile .gengage-chat-panel-restore-card__thumb{border-radius:14px;width:52px;height:52px}.gengage-chat-root--mobile .gengage-chat-bubble--active{outline:none}.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}button.gengage-chat-product-summary__cta{cursor:pointer;font:inherit;border:none}.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-product-grid--pending{filter:blur(3px)saturate(.85);opacity:.75;pointer-events:none;transition:filter .16s ease-out,opacity .16s ease-out;position:relative}.gengage-chat-product-grid--pending:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff59 50%,#0000 100%);animation:1.2s ease-in-out infinite gengage-chat-product-grid-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes gengage-chat-product-grid-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.gengage-chat-product-grid--pending:after{animation: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-history-page{flex-direction:column;gap:12px;padding:12px;display:flex}.gengage-chat-history-actions{display:flex}.gengage-chat-history-new-chat{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));border-radius:var(--radius-control);background:color-mix(in srgb, var(--client-primary) 9%, white);width:100%;min-height:42px;color:var(--client-primary);cursor:pointer;padding:0 14px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,transform .15s}.gengage-chat-history-new-chat:hover{background:color-mix(in srgb, var(--client-primary) 14%, white);border-color:color-mix(in srgb, var(--client-primary) 28%, var(--border-default))}.gengage-chat-history-list{flex-direction:column;gap:10px;display:flex}.gengage-chat-history-item{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-1);align-items:stretch;gap:8px;padding:0;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.gengage-chat-history-item:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-history-item--active{border-color:color-mix(in srgb, var(--client-primary) 28%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 6%, var(--surface-card))}.gengage-chat-history-open{min-width:0;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:12px 14px}.gengage-chat-history-item-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.gengage-chat-history-item-title{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.gengage-chat-history-item-meta{color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:600}.gengage-chat-history-item-preview{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.gengage-chat-history-delete{border:none;border-left:1px solid color-mix(in srgb, var(--border-default) 84%, transparent);border-top-right-radius:inherit;border-bottom-right-radius:inherit;width:38px;min-width:38px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.gengage-chat-history-delete:hover{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-history-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-history-empty-icon{opacity:.25;color:var(--client-primary)}.gengage-chat-history-empty p{margin:0;font-size:13px;line-height:1.5}.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-panel .gengage-chat-product-grid.gengage-chat-product-grid--consulting-groups{grid-template-columns:repeat(auto-fit,minmax(200px,240px));justify-content:start}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--consulting-groups.gengage-chat-product-grid--mobile{grid-template-columns:1fr}.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:var(--gengage-chat-input-control-size,40px);height:var(--gengage-chat-input-control-size,40px);border-radius:var(--gengage-chat-input-control-radius,12px);color:var(--text-primary);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}@media (width<=374px){.gengage-chat-root--mobile .gengage-chat-header-btn{width:34px;min-width:34px;height:34px;min-height:34px}}.gengage-chat-root--mobile .gengage-chat-attach-btn,.gengage-chat-root--mobile .gengage-chat-mic-btn,.gengage-chat-root--mobile .gengage-chat-send{width:var(--gengage-chat-input-control-size,44px);height:var(--gengage-chat-input-control-size,44px);min-width:var(--gengage-chat-input-control-size,44px);border-radius:var(--gengage-chat-input-control-radius,14px)}.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;line-height:inherit}.gengage-chat-kvkk-banner{color:var(--text-secondary);background:0 0;border:none;padding:14px 32px 10px;font-size:13px;line-height:1.55}.gengage-chat-kvkk-content{min-width:0}.gengage-chat-kvkk-content p{margin:0}.gengage-chat-kvkk-content a{color:inherit;margin-top:8px;text-decoration:underline;display:inline-block}.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 td ul,.gengage-chat-comparison-table td ol{text-align:left;margin:0;padding-left:18px}.gengage-chat-comparison-table td li+li{margin-top:4px}.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-inline-question-btn,.gengage-chat-product-card,.gengage-chat-product-card-cta,.gengage-chat-send,.gengage-chat-launcher-container,.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-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:none}.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,.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-img{object-fit:contain;width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;inset:4px}.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{--_badge-inset-top:12px;--_badge-height:30px;box-sizing:border-box;padding:calc(var(--_badge-inset-top) + var(--_badge-height) + 6px) 12px 12px;border-radius:var(--radius-card);background:var(--surface-card);flex-direction:column;align-items:stretch;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{top:var(--_badge-inset-top,12px);z-index:2;box-sizing:border-box;text-transform:uppercase;letter-spacing:.04em;pointer-events:none;white-space:normal;border-radius:999px;align-items:center;max-width:calc(100% - 28px);margin:0;padding:8px 14px;font-size:11px;font-weight:800;line-height:1.25;display:inline-flex;position:absolute;left:14px}.gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{background:var(--client-primary);color:var(--client-on-primary);box-shadow:0 10px 18px color-mix(in srgb, var(--client-primary) 20%, transparent)}.gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-badge{background:var(--surface-card);color:color-mix(in srgb, var(--client-primary) 72%, var(--text-primary));border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.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:100%;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:8px;max-width:100%;padding:7px 9px;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:64px;height:auto;max-height:26px;display:block}.gengage-chat-campaign-price-badge__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;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:10px;font-weight:700;line-height:1.2}.gengage-chat-campaign-price-badge__sale{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:14px;font-weight:800;line-height:1.15}.gengage-chat-product-card-price-row .gengage-chat-campaign-price-badge__sale{font-size:13px}.gengage-chat-product-summary__price .gengage-chat-campaign-price-badge__sale{font-size:12px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge{border-radius:var(--radius-control,12px);padding:9px 11px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__reason{font-size:11px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__sale{font-size:18px}: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--uniform-mobile{scroll-snap-type:none;flex-direction:column;margin:0;padding:0;overflow-x: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-top-picks-rest--uniform-mobile .gengage-chat-ai-toppick-card--compact{scroll-snap-align:none;flex:none;width:100%;max-width:none}.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--mobile-uniform{margin-top:8px;padding:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-top-row,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;height:100%;padding:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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--mobile-uniform .gengage-chat-ai-toppick-cta{display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;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-product-grid-wrapper--grouped{gap:12px}.gengage-chat-product-grid-sections{flex-direction:column;gap:20px;display:flex}.gengage-chat-product-grid-section{border-top:1px solid color-mix(in srgb, var(--border-default) 70%, transparent);flex-direction:column;gap:10px;padding:14px 0 18px;display:flex}.gengage-chat-product-grid-section:first-child{border-top:0;padding-top:4px}.gengage-chat-product-grid-section:last-child{padding-bottom:4px}.gengage-chat-product-grid-section-head{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;padding:0 2px;display:flex}.gengage-chat-product-grid-section-title{letter-spacing:0;min-width:0;color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-family:inherit;font-size:15px;font-weight:700;line-height:1.25}.gengage-chat-product-grid-section-count{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-card-soft);min-height:22px;color:var(--text-secondary);letter-spacing:0;white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:1px 8px;font-family:inherit;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.gengage-chat-panel .gengage-chat-product-grid--section{padding-top:0;padding-bottom:2px}.gengage-chat-root--mobile .gengage-chat-product-grid-sections{gap:16px}.gengage-chat-root--mobile .gengage-chat-product-grid-section{gap:8px;padding:12px 0 14px}.gengage-chat-root--mobile .gengage-chat-product-grid-section-title{font-size:14px}.gengage-chat-root--mobile .gengage-chat-product-grid-section-count{min-height:20px;padding-inline:8px;font-size:10.5px}.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-btn--loading{border-style:dashed}.gengage-chat-consulting-style-btn--muted{opacity:.78}.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);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;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-style-status{color:var(--text-primary);background:color-mix(in srgb, white 88%, var(--client-primary) 12%);border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;position:absolute;top:10px;right:10px}.gengage-chat-consulting-loading-panel{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:18px;flex-direction:column;gap:12px;padding:16px;display:flex}.gengage-chat-consulting-loading-panel-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:800}.gengage-chat-consulting-loading-panel-copy{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.gengage-chat-consulting-loading-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.gengage-chat-consulting-loading-card{border:1px solid var(--border-default);background:linear-gradient(90deg, color-mix(in srgb, var(--surface-card-soft) 94%, white) 20%, color-mix(in srgb, white 86%, var(--surface-card-soft) 14%) 50%, color-mix(in srgb, var(--surface-card-soft) 94%, white) 80%);background-size:220% 100%;border-radius:18px;min-height:240px;animation:1.2s linear infinite gengage-chat-consulting-loading-shimmer}@keyframes gengage-chat-consulting-loading-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.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(0, 1fr));justify-content:stretch;align-items:stretch;gap:14px;margin-bottom:2px;display:grid}.gengage-chat-consulting-group-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:none;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;min-width:0;padding:14px}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:100%;margin-inline:0}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-img-wrapper{flex-shrink:1;align-self:stretch;min-width:0;max-width:100%}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-body{min-width:0;max-width:100%}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-name,.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-price,.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-price-block{overflow-wrap:anywhere;word-break:break-word}.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-root--mobile .gengage-chat-consulting-loading-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: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-panel.gengage-chat-panel--visible~.gengage-chat-comparison-dock-slot:not(:empty){left:0;right:0;bottom:calc(var(--gengage-chat-input-control-size,44px) + 8px + env(safe-area-inset-bottom,0px));z-index:30;box-sizing:border-box;pointer-events:none;max-width:100%;padding:0 10px;display:block;position:absolute}.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-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:auto;background:var(--surface-card);border:1px solid var(--border-default);z-index:5;opacity:1;border-bottom:none;border-radius:16px 16px 0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;width:auto;max-width:none;margin-left:0;margin-right:0;padding:12px 20px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:-16px;left:-16px;right:-16px;transform:translateY(0);box-shadow:0 -2px 8px #00000014}.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-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:inline-flex}.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:color-mix(in srgb, var(--surface-card-soft) 92%, white);width:40px;height:40px;color:var(--text-muted);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:flex}.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;align-items:center;gap:8px;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-categories-tab-image{object-fit:cover;border:1px solid var(--border-subtle);background:var(--surface-card-muted);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;width:28px;height:28px}.gengage-chat-categories-tab-text{min-width:0}.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-panel{flex-direction:column;gap:12px;display:flex}.gengage-chat-categories-group-summary{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 6%, var(--surface-card));border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.gengage-chat-categories-group-selection{border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 10%, white);max-width:100%;color:var(--client-primary);border-radius:999px;align-self:flex-start;align-items:center;gap:10px;padding:6px 12px 6px 8px;display:inline-flex}.gengage-chat-categories-group-selection-image{object-fit:cover;border:1px solid color-mix(in srgb, white 82%, var(--border-subtle) 18%);background:var(--surface-card-muted);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;width:30px;height:30px}.gengage-chat-categories-group-selection-title{min-width:0;color:inherit;font-size:13px;font-weight:800;line-height:1.25}.gengage-chat-categories-group-chips{flex-wrap:wrap;gap:6px;display:flex}.gengage-chat-categories-group-chip{border:1px solid var(--border-default);background:color-mix(in srgb, white 78%, var(--surface-card-soft));color:var(--text-secondary);border-radius:999px;align-items:center;padding:5px 10px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.gengage-chat-categories-group-chip--accent{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 10%, white);color:var(--client-primary)}.gengage-chat-categories-group-reason{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;display:grid}.gengage-chat-categories-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:none}:is(.gengage-chat-categories .gengage-chat-product-card-img,.gengage-chat-consulting-group-grid .gengage-chat-product-card-img,.gengage-chat-product-grid-wrapper:has(.gengage-chat-consulting-style-picker) .gengage-chat-product-card-img){-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.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-inline-question-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-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-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-root--mobile-half .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter{box-sizing:border-box;pointer-events:auto;opacity:1;border-radius:14px;grid-template-columns:1fr;gap:10px;width:100%;max-width:100%;max-height:none;margin:0;padding:10px 12px;display:none;position:relative;bottom:auto;left:auto;right:auto;overflow:visible;transform:none}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-panel--visible~.gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter{display:grid}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter-suggestion{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter-cta{width:100%;min-width:0;min-height:44px;padding:0 14px}.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-dropdown--open{z-index:40}.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-product-sort-menu{width:min(224px,100vw - 32px);min-width:196px;max-width:calc(100vw - 32px);top:calc(100% + 6px);left:auto;right:0}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-option{min-height:44px;padding:10px 12px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-option-label{white-space:normal;line-height:1.3}.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-comparison-dock-slot .gengage-chat-choice-prompter-dismiss{width:40px;height:40px}.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}@media (prefers-reduced-motion:reduce){.gengage-chat-consulting-loading-card{animation:none}}.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}.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--neutral{background:var(--surface-shell);color:var(--text-inverse)}.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}', Bo = /* @__PURE__ */ new Set([
|
|
6221
|
+
var No = ':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%;min-height:44px;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:0 16px;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%;min-height:48px;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;align-self:center;font-size:13px;line-height:1.35;display:block}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;min-height:20px;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-width:var(--gengage-chat-launcher-width,56px);--_gengage-chat-launcher-height:var(--gengage-chat-launcher-height,56px);--_gengage-chat-launcher-mobile-width:var(--gengage-chat-launcher-mobile-width,var(--_gengage-chat-launcher-width));--_gengage-chat-launcher-mobile-height:var(--gengage-chat-launcher-mobile-height,var(--_gengage-chat-launcher-height));--_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-anchor-bottom,var(--_gengage-chat-launcher-bottom));right:var(--gengage-chat-launcher-anchor-right,var(--_gengage-chat-launcher-right));z-index:var(--gengage-z-index,2147480000);transition:bottom var(--gengage-chat-launcher-anchor-transition,0s) ease, right var(--gengage-chat-launcher-anchor-transition,0s) ease;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-width);height:var(--_gengage-chat-launcher-height);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-img--mobile,.gengage-chat-root--mobile .gengage-chat-launcher-img--desktop{display:none}.gengage-chat-root--mobile .gengage-chat-launcher-img--mobile{display:block}.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-anchor-right,var(--gengage-chat-launcher-mobile-right,16px));bottom:calc(var(--gengage-chat-launcher-anchor-bottom,var(--gengage-chat-launcher-mobile-bottom,16px)) + env(safe-area-inset-bottom,0px))}.gengage-chat-root--mobile .gengage-chat-launcher{width:var(--_gengage-chat-launcher-mobile-width);height:var(--_gengage-chat-launcher-mobile-height)}.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{top:var(--gengage-chat-visual-top,0px);height:var(--gengage-chat-visual-vh,100dvh);max-height:var(--gengage-chat-visual-vh,100dvh);border-radius:0;bottom:auto}.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)}.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}@media (width<=374px){.gengage-chat-header{gap:8px;padding:10px}.gengage-chat-header-right{flex-shrink:1;gap:4px;min-width:0}.gengage-chat-header-btn{width:34px;min-width:34px;height:34px;min-height:34px}}.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.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-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-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--panel-bookmark{max-width:72%;margin-top:-6px}.gengage-chat-inline-panel-bookmark-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:700}.gengage-chat-inline-panel-bookmark-card{border:1px solid color-mix(in srgb, var(--client-primary) 38%, var(--border-default));background:color-mix(in srgb, var(--surface-card) 94%, transparent);text-align:left;width:100%;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-1);border-radius:18px;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;transition:transform .16s,border-color .16s,box-shadow .16s,background-color .16s;display:flex}.gengage-chat-inline-panel-bookmark-card:hover{border-color:color-mix(in srgb, var(--client-primary) 52%, var(--border-default));box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-chat-inline-panel-bookmark-card--active{background:color-mix(in srgb, var(--client-primary-subtle) 42%, var(--surface-card))}.gengage-chat-inline-panel-bookmark-previews{gap:8px;display:flex}.gengage-chat-inline-panel-bookmark-preview{background:color-mix(in srgb, var(--surface-card-muted) 70%, var(--surface-card));border:1px solid color-mix(in srgb, var(--border-default) 74%, transparent);border-radius:14px;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;overflow:hidden}.gengage-chat-inline-panel-bookmark-preview-img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-inline-panel-bookmark-preview-fallback{color:var(--text-primary);font-size:13px;font-weight:700}.gengage-chat-inline-panel-bookmark-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.gengage-chat-inline-panel-bookmark-cta{color:var(--client-primary);font-size:13px;font-weight:700}@media (width<=768px){.gengage-chat-bubble--panel-bookmark{display:none!important}}.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--ui-spec{box-shadow:none;background:0 0;border:none;min-width:0;padding:0}.gengage-chat-bubble--ui-spec-only{max-width:min(85%,420px)}.gengage-chat-bubble-ui-spec{width:100%}.gengage-chat-bubble--active{outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}.gengage-chat-bubble--panel-restore.gengage-chat-bubble--active{outline:none}.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-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-typing--presence{justify-content:flex-start;width:fit-content;max-width:100%}.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{--gengage-chat-input-control-size:40px;--gengage-chat-input-shell-pad:6px;--gengage-chat-input-shell-radius:18px;--gengage-chat-input-control-radius:12px;min-width:0;min-height:calc(var(--gengage-chat-input-control-size) + (var(--gengage-chat-input-shell-pad) * 2));background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--gengage-chat-input-shell-radius);padding:var(--gengage-chat-input-shell-pad);box-sizing:border-box;box-shadow:none;flex:1;align-items:center;gap:10px;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{box-sizing:border-box;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;padding:11px 0 9px;font-family:inherit;font-size:14px;line-height:1.4;overflow-y:hidden}.gengage-chat-root--mobile .gengage-chat-input-pill{--gengage-chat-input-control-size:44px;--gengage-chat-input-shell-radius:20px;--gengage-chat-input-control-radius:14px;min-height:calc(var(--gengage-chat-input-control-size) + (var(--gengage-chat-input-shell-pad) * 2))}.gengage-chat-root--mobile .gengage-chat-input{white-space:nowrap;min-height:44px;max-height:44px;padding:12px 0 10px;font-size:16px;line-height:1.4;overflow:hidden}.gengage-chat-input::placeholder{color:var(--text-muted);font-size:14px;line-height:inherit}.gengage-chat-send{width:var(--gengage-chat-input-control-size,40px);height:var(--gengage-chat-input-control-size,40px);min-width:var(--gengage-chat-input-control-size,40px);border:1px solid var(--ds-button-primary-border);border-radius:var(--gengage-chat-input-control-radius,12px);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:none;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-footer-link{max-width:100%;color:inherit;text-underline-offset:.22em;justify-content:center;align-items:center;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1.5px;transition:color .2s,text-decoration-color .2s;display:inline-flex}.gengage-chat-footer-link:hover,.gengage-chat-footer-link:focus-visible{color:var(--gengage-chat-footer-link-hover-color,var(--gengage-brand-accent-mid,var(--ai-accent-end,#f768f2)));-webkit-text-decoration-color:var(--gengage-brand-accent-end,#ffed74);text-decoration-color:var(--gengage-brand-accent-end,#ffed74)}@supports ((-webkit-background-clip:text) or (background-clip:text)){.gengage-chat-footer-link:hover,.gengage-chat-footer-link:focus-visible{background-image:linear-gradient(90deg, var(--gengage-brand-accent-start,var(--ai-accent-start,#0b24d6)) 0%, var(--gengage-brand-accent-start,var(--ai-accent-start,#0b24d6)) 42%, var(--gengage-brand-accent-mid,var(--ai-accent-end,#f768f2)) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}}.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-inline-question-buttons{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:10px 0 4px;display:flex}.gengage-chat-inline-question-btn{border:1px solid var(--ds-chip-border);border-radius:var(--radius-pill);background:var(--ds-chip-bg);max-width:100%;min-height:46px;color:var(--text-primary);text-align:left;white-space:normal;cursor:pointer;flex:0 auto;justify-content:flex-start;padding:11px 18px;font-size:13px;font-weight:700;line-height:1.4;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s;box-shadow:0 1px #1118270a}.gengage-chat-inline-question-btn:hover{background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border));box-shadow:0 4px 12px #11182714}.gengage-chat-inline-question-btn:active{background:var(--ds-chip-bg-active);border-color:var(--ds-chip-border-active);color:var(--text-primary);transform:translateY(1px);box-shadow:0 1px 4px #1118270f}.gengage-chat-inline-question-icon{color:color-mix(in srgb, var(--client-primary) 38%, var(--text-muted));flex:none;font-size:12px;line-height:1;transform:translateY(-1px)}.gengage-chat-inline-question-label{display:inline}.gengage-chat-root--mobile .gengage-chat-inline-question-buttons{gap:10px}.gengage-chat-root--mobile .gengage-chat-inline-question-btn{width:auto;max-width:min(100%,34rem);padding:12px 16px;font-size:12.5px}.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-panel-restore-card{appearance:none;box-sizing:border-box;font:inherit;border:1px solid color-mix(in srgb, var(--client-primary) 34%, var(--border-default));border-radius:calc(var(--radius-control) + 6px);background:var(--surface-card);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:12px;margin:0;padding:16px 18px;transition:transform .18s,background .18s,box-shadow .18s,border-color .18s;display:flex}.gengage-chat-panel-restore-card--minimal{gap:10px;padding:14px 16px}.gengage-chat-panel-restore-card:hover{background:color-mix(in srgb, var(--surface-card) 92%, var(--client-primary-subtle) 8%);box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 52%, var(--border-default));transform:translateY(-1px)}.gengage-chat-panel-restore-card:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:3px}.gengage-chat-panel-restore-card__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:800}.gengage-chat-panel-restore-card__previews{gap:10px;display:flex}.gengage-chat-panel-restore-card--minimal .gengage-chat-panel-restore-card__previews{gap:8px}.gengage-chat-panel-restore-card__thumb{border:1px solid var(--border-default);background:var(--surface-card);border-radius:16px;width:58px;height:58px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff8a}.gengage-chat-panel-restore-card__thumb img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-panel-restore-card__title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:18px;font-weight:700;line-height:1.24;display:-webkit-box;overflow:hidden}.gengage-chat-panel-restore-card__cta{color:var(--client-primary);font-size:15px;font-weight:700}.gengage-chat-panel-restore-card--minimal .gengage-chat-panel-restore-card__cta{letter-spacing:.01em;font-size:14px}.gengage-chat-root--mobile .gengage-chat-panel-restore-card{-webkit-tap-highlight-color:transparent;padding:14px 16px}.gengage-chat-root--mobile .gengage-chat-panel-restore-card__thumb{border-radius:14px;width:52px;height:52px}.gengage-chat-root--mobile .gengage-chat-bubble--active{outline:none}.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}button.gengage-chat-product-summary__cta{cursor:pointer;font:inherit;border:none}.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-product-grid--pending{filter:blur(3px)saturate(.85);opacity:.75;pointer-events:none;transition:filter .16s ease-out,opacity .16s ease-out;position:relative}.gengage-chat-product-grid--pending:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff59 50%,#0000 100%);animation:1.2s ease-in-out infinite gengage-chat-product-grid-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes gengage-chat-product-grid-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.gengage-chat-product-grid--pending:after{animation: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-history-page{flex-direction:column;gap:12px;padding:12px;display:flex}.gengage-chat-history-actions{display:flex}.gengage-chat-history-new-chat{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));border-radius:var(--radius-control);background:color-mix(in srgb, var(--client-primary) 9%, white);width:100%;min-height:42px;color:var(--client-primary);cursor:pointer;padding:0 14px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,transform .15s}.gengage-chat-history-new-chat:hover{background:color-mix(in srgb, var(--client-primary) 14%, white);border-color:color-mix(in srgb, var(--client-primary) 28%, var(--border-default))}.gengage-chat-history-list{flex-direction:column;gap:10px;display:flex}.gengage-chat-history-item{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-1);align-items:stretch;gap:8px;padding:0;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.gengage-chat-history-item:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-history-item--active{border-color:color-mix(in srgb, var(--client-primary) 28%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 6%, var(--surface-card))}.gengage-chat-history-open{min-width:0;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:12px 14px}.gengage-chat-history-item-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.gengage-chat-history-item-title{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.gengage-chat-history-item-meta{color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:600}.gengage-chat-history-item-preview{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.gengage-chat-history-delete{border:none;border-left:1px solid color-mix(in srgb, var(--border-default) 84%, transparent);border-top-right-radius:inherit;border-bottom-right-radius:inherit;width:38px;min-width:38px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.gengage-chat-history-delete:hover{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-history-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-history-empty-icon{opacity:.25;color:var(--client-primary)}.gengage-chat-history-empty p{margin:0;font-size:13px;line-height:1.5}.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-panel .gengage-chat-product-grid.gengage-chat-product-grid--consulting-groups{grid-template-columns:repeat(auto-fit,minmax(200px,240px));justify-content:start}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--consulting-groups.gengage-chat-product-grid--mobile{grid-template-columns:1fr}.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:var(--gengage-chat-input-control-size,40px);height:var(--gengage-chat-input-control-size,40px);border-radius:var(--gengage-chat-input-control-radius,12px);color:var(--text-primary);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}@media (width<=374px){.gengage-chat-root--mobile .gengage-chat-header-btn{width:34px;min-width:34px;height:34px;min-height:34px}}.gengage-chat-root--mobile .gengage-chat-attach-btn,.gengage-chat-root--mobile .gengage-chat-mic-btn,.gengage-chat-root--mobile .gengage-chat-send{width:var(--gengage-chat-input-control-size,44px);height:var(--gengage-chat-input-control-size,44px);min-width:var(--gengage-chat-input-control-size,44px);border-radius:var(--gengage-chat-input-control-radius,14px)}.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;line-height:inherit}.gengage-chat-kvkk-banner{color:var(--text-secondary);background:0 0;border:none;padding:14px 32px 10px;font-size:13px;line-height:1.55}.gengage-chat-kvkk-content{min-width:0}.gengage-chat-kvkk-content p{margin:0}.gengage-chat-kvkk-content a{color:inherit;margin-top:8px;text-decoration:underline;display:inline-block}.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 td ul,.gengage-chat-comparison-table td ol{text-align:left;margin:0;padding-left:18px}.gengage-chat-comparison-table td li+li{margin-top:4px}.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-inline-question-btn,.gengage-chat-product-card,.gengage-chat-product-card-cta,.gengage-chat-send,.gengage-chat-launcher-container,.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-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:none}.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,.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-img{object-fit:contain;width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;inset:4px}.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{--_badge-inset-top:12px;--_badge-height:30px;box-sizing:border-box;padding:calc(var(--_badge-inset-top) + var(--_badge-height) + 6px) 12px 12px;border-radius:var(--radius-card);background:var(--surface-card);flex-direction:column;align-items:stretch;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{top:var(--_badge-inset-top,12px);z-index:2;box-sizing:border-box;text-transform:uppercase;letter-spacing:.04em;pointer-events:none;white-space:normal;border-radius:999px;align-items:center;max-width:calc(100% - 28px);margin:0;padding:8px 14px;font-size:11px;font-weight:800;line-height:1.25;display:inline-flex;position:absolute;left:14px}.gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{background:var(--client-primary);color:var(--client-on-primary);box-shadow:0 10px 18px color-mix(in srgb, var(--client-primary) 20%, transparent)}.gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-badge{background:var(--surface-card);color:color-mix(in srgb, var(--client-primary) 72%, var(--text-primary));border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.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:100%;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:8px;max-width:100%;padding:7px 9px;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:64px;height:auto;max-height:26px;display:block}.gengage-chat-campaign-price-badge__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;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:10px;font-weight:700;line-height:1.2}.gengage-chat-campaign-price-badge__sale{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:14px;font-weight:800;line-height:1.15}.gengage-chat-product-card-price-row .gengage-chat-campaign-price-badge__sale{font-size:13px}.gengage-chat-product-summary__price .gengage-chat-campaign-price-badge__sale{font-size:12px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge{border-radius:var(--radius-control,12px);padding:9px 11px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__reason{font-size:11px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__sale{font-size:18px}: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--uniform-mobile{scroll-snap-type:none;flex-direction:column;margin:0;padding:0;overflow-x: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-top-picks-rest--uniform-mobile .gengage-chat-ai-toppick-card--compact{scroll-snap-align:none;flex:none;width:100%;max-width:none}.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--mobile-uniform{margin-top:8px;padding:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-top-row,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;height:100%;padding:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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--mobile-uniform .gengage-chat-ai-toppick-cta{display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--mobile-uniform .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;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;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-product-grid-wrapper--grouped{gap:12px}.gengage-chat-product-grid-sections{flex-direction:column;gap:20px;display:flex}.gengage-chat-product-grid-section{border-top:1px solid color-mix(in srgb, var(--border-default) 70%, transparent);flex-direction:column;gap:10px;padding:14px 0 18px;display:flex}.gengage-chat-product-grid-section:first-child{border-top:0;padding-top:4px}.gengage-chat-product-grid-section:last-child{padding-bottom:4px}.gengage-chat-product-grid-section-head{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;padding:0 2px;display:flex}.gengage-chat-product-grid-section-title{letter-spacing:0;min-width:0;color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-family:inherit;font-size:15px;font-weight:700;line-height:1.25}.gengage-chat-product-grid-section-count{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-card-soft);min-height:22px;color:var(--text-secondary);letter-spacing:0;white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:1px 8px;font-family:inherit;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.gengage-chat-panel .gengage-chat-product-grid--section{padding-top:0;padding-bottom:2px}.gengage-chat-root--mobile .gengage-chat-product-grid-sections{gap:16px}.gengage-chat-root--mobile .gengage-chat-product-grid-section{gap:8px;padding:12px 0 14px}.gengage-chat-root--mobile .gengage-chat-product-grid-section-title{font-size:14px}.gengage-chat-root--mobile .gengage-chat-product-grid-section-count{min-height:20px;padding-inline:8px;font-size:10.5px}.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-btn--loading{border-style:dashed}.gengage-chat-consulting-style-btn--muted{opacity:.78}.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);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;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-style-status{color:var(--text-primary);background:color-mix(in srgb, white 88%, var(--client-primary) 12%);border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;position:absolute;top:10px;right:10px}.gengage-chat-consulting-loading-panel{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:18px;flex-direction:column;gap:12px;padding:16px;display:flex}.gengage-chat-consulting-loading-panel-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:800}.gengage-chat-consulting-loading-panel-copy{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.gengage-chat-consulting-loading-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.gengage-chat-consulting-loading-card{border:1px solid var(--border-default);background:linear-gradient(90deg, color-mix(in srgb, var(--surface-card-soft) 94%, white) 20%, color-mix(in srgb, white 86%, var(--surface-card-soft) 14%) 50%, color-mix(in srgb, var(--surface-card-soft) 94%, white) 80%);background-size:220% 100%;border-radius:18px;min-height:240px;animation:1.2s linear infinite gengage-chat-consulting-loading-shimmer}@keyframes gengage-chat-consulting-loading-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.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(0, 1fr));justify-content:stretch;align-items:stretch;gap:14px;margin-bottom:2px;display:grid}.gengage-chat-consulting-group-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:none;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;min-width:0;padding:14px}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:100%;margin-inline:0}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-img-wrapper{flex-shrink:1;align-self:stretch;min-width:0;max-width:100%}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-body{min-width:0;max-width:100%}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-name,.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-price,.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card .gengage-chat-product-card-price-block{overflow-wrap:anywhere;word-break:break-word}.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-root--mobile .gengage-chat-consulting-loading-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: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-panel.gengage-chat-panel--visible~.gengage-chat-comparison-dock-slot:not(:empty){left:0;right:0;bottom:calc(var(--gengage-chat-input-control-size,44px) + 8px + env(safe-area-inset-bottom,0px));z-index:30;box-sizing:border-box;pointer-events:none;max-width:100%;padding:0 10px;display:block;position:absolute}.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-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:auto;background:var(--surface-card);border:1px solid var(--border-default);z-index:5;opacity:1;border-bottom:none;border-radius:16px 16px 0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;width:auto;max-width:none;margin-left:0;margin-right:0;padding:12px 20px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:-16px;left:-16px;right:-16px;transform:translateY(0);box-shadow:0 -2px 8px #00000014}.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-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:inline-flex}.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:color-mix(in srgb, var(--surface-card-soft) 92%, white);width:40px;height:40px;color:var(--text-muted);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:flex}.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;align-items:center;gap:8px;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-categories-tab-image{object-fit:cover;border:1px solid var(--border-subtle);background:var(--surface-card-muted);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;width:28px;height:28px}.gengage-chat-categories-tab-text{min-width:0}.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-panel{flex-direction:column;gap:12px;display:flex}.gengage-chat-categories-group-summary{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 6%, var(--surface-card));border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.gengage-chat-categories-group-selection{border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 10%, white);max-width:100%;color:var(--client-primary);border-radius:999px;align-self:flex-start;align-items:center;gap:10px;padding:6px 12px 6px 8px;display:inline-flex}.gengage-chat-categories-group-selection-image{object-fit:cover;border:1px solid color-mix(in srgb, white 82%, var(--border-subtle) 18%);background:var(--surface-card-muted);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;width:30px;height:30px}.gengage-chat-categories-group-selection-title{min-width:0;color:inherit;font-size:13px;font-weight:800;line-height:1.25}.gengage-chat-categories-group-chips{flex-wrap:wrap;gap:6px;display:flex}.gengage-chat-categories-group-chip{border:1px solid var(--border-default);background:color-mix(in srgb, white 78%, var(--surface-card-soft));color:var(--text-secondary);border-radius:999px;align-items:center;padding:5px 10px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.gengage-chat-categories-group-chip--accent{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 10%, white);color:var(--client-primary)}.gengage-chat-categories-group-reason{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;display:grid}.gengage-chat-categories-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:none}:is(.gengage-chat-categories .gengage-chat-product-card-img,.gengage-chat-consulting-group-grid .gengage-chat-product-card-img,.gengage-chat-product-grid-wrapper:has(.gengage-chat-consulting-style-picker) .gengage-chat-product-card-img){-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.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-footer-link:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-inline-question-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-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-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-root--mobile-half .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter{box-sizing:border-box;pointer-events:auto;opacity:1;border-radius:14px;grid-template-columns:1fr;gap:10px;width:100%;max-width:100%;max-height:none;margin:0;padding:10px 12px;display:none;position:relative;bottom:auto;left:auto;right:auto;overflow:visible;transform:none}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-panel--visible~.gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter{display:grid}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter-suggestion{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-choice-prompter-cta{width:100%;min-width:0;min-height:44px;padding:0 14px}.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-dropdown--open{z-index:40}.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-product-sort-menu{width:min(224px,100vw - 32px);min-width:196px;max-width:calc(100vw - 32px);top:calc(100% + 6px);left:auto;right:0}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-option{min-height:44px;padding:10px 12px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-option-label{white-space:normal;line-height:1.3}.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-comparison-dock-slot .gengage-chat-choice-prompter-dismiss{width:40px;height:40px}.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}@media (prefers-reduced-motion:reduce){.gengage-chat-consulting-loading-card{animation:none}}.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}.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--neutral{background:var(--surface-shell);color:var(--text-inverse)}.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}', Bo = /* @__PURE__ */ new Set([
|
|
6203
6222
|
"launchSingleProduct",
|
|
6204
6223
|
"launchProductList",
|
|
6205
6224
|
"launchHomepage"
|
|
@@ -6292,7 +6311,7 @@ var Fo = class Me extends Ya {
|
|
|
6292
6311
|
onClick: () => this.open(),
|
|
6293
6312
|
ariaLabel: this._i18n.openButton
|
|
6294
6313
|
};
|
|
6295
|
-
e.launcherImageUrl !== void 0 ? u.imageUrl = e.launcherImageUrl : e.launcherSvg !== void 0 && (u.svgMarkup = e.launcherSvg), e.mobileLauncherImageUrl !== void 0 && (u.mobileImageUrl = e.mobileLauncherImageUrl), e.hideMobileLauncher !== void 0 && (u.hideMobile = e.hideMobileLauncher), e.mobileBreakpoint !== void 0 && (u.mobileBreakpoint = e.mobileBreakpoint), e.launcherTooltip !== void 0 && (u.tooltip = e.launcherTooltip), this._launcher =
|
|
6314
|
+
e.launcherImageUrl !== void 0 ? u.imageUrl = e.launcherImageUrl : e.launcherSvg !== void 0 && (u.svgMarkup = e.launcherSvg), e.mobileLauncherImageUrl !== void 0 && (u.mobileImageUrl = e.mobileLauncherImageUrl), e.hideMobileLauncher !== void 0 && (u.hideMobile = e.hideMobileLauncher), e.mobileBreakpoint !== void 0 && (u.mobileBreakpoint = e.mobileBreakpoint), e.launcherTooltip !== void 0 && (u.tooltip = e.launcherTooltip), this._launcher = Li(u), i.appendChild(this._launcher.container);
|
|
6296
6315
|
}
|
|
6297
6316
|
this._setupLauncherAnchor(e), e.inlineLauncher && this._setupInlineLauncher(e);
|
|
6298
6317
|
}
|
|
@@ -6324,6 +6343,7 @@ var Fo = class Me extends Ya {
|
|
|
6324
6343
|
launcherImageUrl: e.launcherImageUrl,
|
|
6325
6344
|
headerBadge: e.headerBadge,
|
|
6326
6345
|
headerCartUrl: e.headerCartUrl,
|
|
6346
|
+
footerAttribution: e.footerAttribution,
|
|
6327
6347
|
showHeaderFavorites: typeof e.onFavoritesClick == "function" || e.headerFavoritesToggle === !0,
|
|
6328
6348
|
...e.headerCartUrl || e.onCartClick ? { onCartClick: () => {
|
|
6329
6349
|
e.headerCartUrl ? this._saveSessionAndOpenURL(e.headerCartUrl) : e.onCartClick?.();
|
|
@@ -6400,15 +6420,15 @@ var Fo = class Me extends Ya {
|
|
|
6400
6420
|
if (!this._drawerVisible || !this._isMobileViewport) return;
|
|
6401
6421
|
const _ = this._drawer?.getElement();
|
|
6402
6422
|
if (!_) return;
|
|
6403
|
-
const
|
|
6404
|
-
|
|
6423
|
+
const w = window.visualViewport, b = Math.max(0, Math.round(window.innerHeight - (w.height + w.offsetTop))), A = b > 90, T = this._openState === "full" && A ? b : 0;
|
|
6424
|
+
T !== this._lastAppliedKeyboardInset && (this._lastAppliedKeyboardInset = T, _.style.setProperty("--gengage-chat-keyboard-inset", `${T}px`)), this._openState === "full" && (_.style.setProperty("--gengage-chat-visual-vh", `${Math.round(w.height)}px`), _.style.setProperty("--gengage-chat-visual-top", `${Math.round(w.offsetTop)}px`));
|
|
6405
6425
|
};
|
|
6406
6426
|
this._syncVisualVh = () => {
|
|
6407
6427
|
if (!this._isMobileViewport || this._openState !== "full") return;
|
|
6408
6428
|
const _ = this._drawer?.getElement();
|
|
6409
6429
|
if (!_ || !window.visualViewport) return;
|
|
6410
|
-
const
|
|
6411
|
-
_.style.setProperty("--gengage-chat-visual-vh", `${Math.round(
|
|
6430
|
+
const w = window.visualViewport;
|
|
6431
|
+
_.style.setProperty("--gengage-chat-visual-vh", `${Math.round(w.height)}px`), _.style.setProperty("--gengage-chat-visual-top", `${Math.round(w.offsetTop)}px`);
|
|
6412
6432
|
}, window.visualViewport.addEventListener("resize", g), window.visualViewport.addEventListener("scroll", g), this.addCleanup(() => {
|
|
6413
6433
|
window.visualViewport?.removeEventListener("resize", g), window.visualViewport?.removeEventListener("scroll", g);
|
|
6414
6434
|
});
|
|
@@ -6478,28 +6498,28 @@ var Fo = class Me extends Ya {
|
|
|
6478
6498
|
const a = e.launcherAnchor;
|
|
6479
6499
|
if (!a || !a.mobile && !a.desktop) return;
|
|
6480
6500
|
const n = this.root, r = e.mobileBreakpoint ?? 768, i = () => window.innerWidth <= r ? a.mobile : a.desktop, o = () => {
|
|
6481
|
-
const
|
|
6482
|
-
return !!
|
|
6501
|
+
const T = i();
|
|
6502
|
+
return !!T?.dynamicRelocate && !!T.selector;
|
|
6483
6503
|
}, s = "--gengage-chat-launcher-anchor-bottom", c = "--gengage-chat-launcher-anchor-right";
|
|
6484
6504
|
(a.mobile?.dynamicRelocate || a.desktop?.dynamicRelocate) && n.style.setProperty("--gengage-chat-launcher-anchor-transition", "0.35s");
|
|
6485
6505
|
const l = () => {
|
|
6486
|
-
const
|
|
6487
|
-
if (!
|
|
6488
|
-
const k =
|
|
6489
|
-
if (
|
|
6490
|
-
const { offset:
|
|
6491
|
-
if (!
|
|
6492
|
-
else if (
|
|
6493
|
-
const
|
|
6494
|
-
n.style.setProperty(s, `${
|
|
6506
|
+
const T = window.innerWidth <= r ? a.mobile : a.desktop;
|
|
6507
|
+
if (!T) return;
|
|
6508
|
+
const k = T.selector, P = !!k, z = (P ? document.querySelector(k) : null)?.getBoundingClientRect();
|
|
6509
|
+
if (T.bottom !== void 0) {
|
|
6510
|
+
const { offset: U, type: X } = T.bottom;
|
|
6511
|
+
if (!P) n.style.setProperty(s, `${Math.max(0, U)}px`);
|
|
6512
|
+
else if (z) {
|
|
6513
|
+
const E = X === "root" || U === 0 ? z.bottom : z.top, R = Math.max(0, window.innerHeight - E + U);
|
|
6514
|
+
n.style.setProperty(s, `${R}px`);
|
|
6495
6515
|
}
|
|
6496
6516
|
}
|
|
6497
|
-
if (
|
|
6498
|
-
const { offset:
|
|
6499
|
-
if (!
|
|
6500
|
-
else if (
|
|
6501
|
-
const
|
|
6502
|
-
n.style.setProperty(c, `${
|
|
6517
|
+
if (T.right !== void 0) {
|
|
6518
|
+
const { offset: U, type: X } = T.right;
|
|
6519
|
+
if (!P) n.style.setProperty(c, `${Math.max(0, U)}px`);
|
|
6520
|
+
else if (z) {
|
|
6521
|
+
const E = X === "root" || U === 0 ? z.right : z.left, R = Math.max(0, window.innerWidth - E + U);
|
|
6522
|
+
n.style.setProperty(c, `${R}px`);
|
|
6503
6523
|
}
|
|
6504
6524
|
}
|
|
6505
6525
|
}, d = () => {
|
|
@@ -6515,43 +6535,43 @@ var Fo = class Me extends Ya {
|
|
|
6515
6535
|
});
|
|
6516
6536
|
let v = null, u = null;
|
|
6517
6537
|
const g = () => {
|
|
6518
|
-
const
|
|
6519
|
-
return !
|
|
6538
|
+
const T = i()?.selector;
|
|
6539
|
+
return !T || !!document.querySelector(T);
|
|
6520
6540
|
}, _ = () => {
|
|
6521
6541
|
!o() || g() || (u?.disconnect(), u = new MutationObserver(() => {
|
|
6522
|
-
g() && (u?.disconnect(), u = null,
|
|
6542
|
+
g() && (u?.disconnect(), u = null, w());
|
|
6523
6543
|
}), u.observe(document.body, {
|
|
6524
6544
|
childList: !0,
|
|
6525
6545
|
subtree: !0
|
|
6526
6546
|
}));
|
|
6527
|
-
},
|
|
6547
|
+
}, w = () => {
|
|
6528
6548
|
x.disconnect(), v?.disconnect(), v = null, p = !1;
|
|
6529
|
-
const
|
|
6530
|
-
if (!
|
|
6531
|
-
if (!
|
|
6549
|
+
const T = i();
|
|
6550
|
+
if (!T) return;
|
|
6551
|
+
if (!T.selector) {
|
|
6532
6552
|
l();
|
|
6533
6553
|
return;
|
|
6534
6554
|
}
|
|
6535
|
-
const k = document.querySelector(
|
|
6536
|
-
k && (x.observe(k), o() ? (v = new IntersectionObserver((
|
|
6537
|
-
for (const
|
|
6555
|
+
const k = document.querySelector(T.selector);
|
|
6556
|
+
k && (x.observe(k), o() ? (v = new IntersectionObserver((P) => {
|
|
6557
|
+
for (const z of P) z.isIntersecting ? (p = !0, l()) : (p = !1, d(), _());
|
|
6538
6558
|
}, { threshold: 0 }), v.observe(k)) : l());
|
|
6539
6559
|
};
|
|
6540
|
-
|
|
6560
|
+
w();
|
|
6541
6561
|
let b = 0;
|
|
6542
|
-
const
|
|
6562
|
+
const A = () => {
|
|
6543
6563
|
b || (b = requestAnimationFrame(() => {
|
|
6544
|
-
b = 0, p = !1, d(), u?.disconnect(), u = null,
|
|
6564
|
+
b = 0, p = !1, d(), u?.disconnect(), u = null, w(), _(), o() || l();
|
|
6545
6565
|
}));
|
|
6546
6566
|
};
|
|
6547
|
-
window.addEventListener("resize",
|
|
6548
|
-
p = !1, d(), u?.disconnect(), u = null,
|
|
6567
|
+
window.addEventListener("resize", A, { passive: !0 }), window.addEventListener("scroll", m, { passive: !0 }), window.visualViewport?.addEventListener("scroll", m, { passive: !0 }), this._syncLauncherAnchor = () => {
|
|
6568
|
+
p = !1, d(), u?.disconnect(), u = null, w(), _();
|
|
6549
6569
|
}, o() ? _() : (l(), [
|
|
6550
6570
|
100,
|
|
6551
6571
|
400,
|
|
6552
6572
|
1e3
|
|
6553
|
-
].forEach((
|
|
6554
|
-
x.disconnect(), v?.disconnect(), u?.disconnect(), window.removeEventListener("resize",
|
|
6573
|
+
].forEach((T) => window.setTimeout(l, T))), this._launcherAnchorCleanup = () => {
|
|
6574
|
+
x.disconnect(), v?.disconnect(), u?.disconnect(), window.removeEventListener("resize", A), window.removeEventListener("scroll", m), window.visualViewport?.removeEventListener("scroll", m), b && cancelAnimationFrame(b), h && cancelAnimationFrame(h);
|
|
6555
6575
|
};
|
|
6556
6576
|
}
|
|
6557
6577
|
syncLauncherAnchor() {
|
|
@@ -7073,12 +7093,12 @@ var Fo = class Me extends Ya {
|
|
|
7073
7093
|
return;
|
|
7074
7094
|
}
|
|
7075
7095
|
if (this._clearChoicePrompter(), a?.preservePanel || qt(), !a?.preservePanel && this._comparisonSelectMode && e.type !== "getComparisonTable" && (this._comparisonSelectMode = !1, this._comparisonSelectedSkus = []), a?.preservePanel || (this._localPanelHistory = []), this._currentThreadId && this._lastThreadId && this._lastThreadId > this._currentThreadId) {
|
|
7076
|
-
const f = this._currentThreadId, S = this._messages.filter((
|
|
7077
|
-
this._messages = this._messages.filter((
|
|
7078
|
-
for (const
|
|
7079
|
-
this._shadow?.querySelector(`[data-message-id="${he(
|
|
7080
|
-
this._panel?.pruneThreadsAfter(f), this._shadow?.querySelectorAll("[data-thread-id]")?.forEach((
|
|
7081
|
-
|
|
7096
|
+
const f = this._currentThreadId, S = this._messages.filter((L) => L.threadId !== void 0 && L.threadId > f);
|
|
7097
|
+
this._messages = this._messages.filter((L) => !L.threadId || L.threadId <= f);
|
|
7098
|
+
for (const L of S)
|
|
7099
|
+
this._shadow?.querySelector(`[data-message-id="${he(L.id)}"]`)?.remove(), this._panel?.deleteSnapshotForMessage(L.id);
|
|
7100
|
+
this._panel?.pruneThreadsAfter(f), this._shadow?.querySelectorAll("[data-thread-id]")?.forEach((L) => {
|
|
7101
|
+
L instanceof HTMLElement && L.dataset.threadId && L.dataset.threadId > f && L.remove();
|
|
7082
7102
|
});
|
|
7083
7103
|
}
|
|
7084
7104
|
a?.preservePills || this._drawer?.setPills([]), this._drawer?.clearInputAreaChips();
|
|
@@ -7094,9 +7114,9 @@ var Fo = class Me extends Ya {
|
|
|
7094
7114
|
if (o || (this._activeRequestThreadId = i), !a?.silent && !o && this._drawer?.setPresentationFocus(i), !a?.silent) {
|
|
7095
7115
|
const f = typeof e.payload == "string" ? e.payload : typeof e.payload?.text == "string" ? e.payload.text : e.title, S = this._messages.length > 0 ? this._messages[this._messages.length - 1] : void 0;
|
|
7096
7116
|
if (!(S !== void 0 && S.role === "user" && S.content === f)) {
|
|
7097
|
-
(!this._messages.some((
|
|
7098
|
-
const
|
|
7099
|
-
|
|
7117
|
+
(!this._messages.some(($) => $.role === "user") || this._drawer?.isKvkkBannerVisible()) && (ct(this.config.accountId), this._drawer?.hideKvkkBanner());
|
|
7118
|
+
const L = this._createMessage("user", f);
|
|
7119
|
+
L.threadId = i, a?.attachment !== void 0 && (L.attachment = a.attachment), this._drawer?.addMessage(L), a?.attachment !== void 0 && this._modeController.isBeautyConsulting && this._drawer?.setBeautyPhotoStepCard({ visible: !1 }), this._messages.push(L), this._persistHistoryToLocalStorage();
|
|
7100
7120
|
}
|
|
7101
7121
|
}
|
|
7102
7122
|
const d = !a?.silent && this._assistantMode === "shopping" && this._hasUnavailableProductContext() && (e.type === "user_message" || e.type === "inputText");
|
|
@@ -7123,7 +7143,7 @@ var Fo = class Me extends Ya {
|
|
|
7123
7143
|
...this.config.injectorAdapter ? { injectorAdapter: this.config.injectorAdapter } : {}
|
|
7124
7144
|
};
|
|
7125
7145
|
a?.attachment !== void 0 && (_.attachment = a.attachment);
|
|
7126
|
-
const
|
|
7146
|
+
const w = this._getVisibleMessages().filter((f) => !f.frontendOnly && f !== g && (f.content || f.role === "assistant")).slice(-50).map((f) => ({
|
|
7127
7147
|
role: f.role === "user" ? "user" : "model",
|
|
7128
7148
|
content: f.content ?? ""
|
|
7129
7149
|
})), b = {
|
|
@@ -7144,115 +7164,116 @@ var Fo = class Me extends Ya {
|
|
|
7144
7164
|
isMobile: this._isMobileViewport
|
|
7145
7165
|
};
|
|
7146
7166
|
this.config.isDemoWebsite === !0 && (b.openPdpSimilars = !0), this._modeController.isShopping || (b.assistantMode = this._modeController.mode), this.config.session?.viewId !== void 0 && (b.viewId = this.config.session.viewId);
|
|
7147
|
-
const
|
|
7167
|
+
const A = cn(e, {
|
|
7148
7168
|
pageContext: this.config.pageContext,
|
|
7149
7169
|
backendContext: this._lastBackendContext,
|
|
7150
7170
|
isMobile: this._isMobileViewport,
|
|
7151
7171
|
genericNonPdpLaunch: this.config.genericNonPdpLaunch
|
|
7152
|
-
}),
|
|
7172
|
+
}), T = {
|
|
7153
7173
|
account_id: this.config.accountId,
|
|
7154
7174
|
session_id: this.config.session?.sessionId ?? "",
|
|
7155
7175
|
correlation_id: this.config.session?.sessionId ?? "",
|
|
7156
|
-
type:
|
|
7176
|
+
type: A.type,
|
|
7157
7177
|
locale: Ue(this.config.locale),
|
|
7158
7178
|
meta: b,
|
|
7159
7179
|
context: {
|
|
7160
7180
|
...this._lastBackendContext ?? {},
|
|
7161
|
-
messages:
|
|
7181
|
+
messages: w,
|
|
7162
7182
|
session_id: this.config.session?.sessionId ?? ""
|
|
7163
7183
|
}
|
|
7164
7184
|
};
|
|
7165
|
-
this.config.session?.userId !== void 0 && (
|
|
7166
|
-
let k = !1,
|
|
7167
|
-
const
|
|
7168
|
-
let
|
|
7185
|
+
this.config.session?.userId !== void 0 && (T.user_id = this.config.session.userId), this.config.session?.viewId !== void 0 && (T.view_id = this.config.session.viewId), A.payload !== void 0 && (T.payload = A.payload), !d && this.config.pageContext?.sku !== void 0 && (T.sku = this.config.pageContext.sku), !d && this.config.pageContext?.pageType !== void 0 && (T.page_type = this.config.pageContext.pageType);
|
|
7186
|
+
let k = !1, P = !1, z = !1, U = !1, X = !1, E = !1;
|
|
7187
|
+
const R = Un();
|
|
7188
|
+
let F = null, B = null;
|
|
7169
7189
|
const C = () => {
|
|
7170
|
-
if (this._drawer && !
|
|
7171
|
-
if (!
|
|
7190
|
+
if (this._drawer && !U) {
|
|
7191
|
+
if (!z) {
|
|
7172
7192
|
this._drawer.setPanelAiZoneState("hidden");
|
|
7173
7193
|
return;
|
|
7174
7194
|
}
|
|
7175
|
-
|
|
7195
|
+
X ? this._drawer.setPanelAiZoneState("hidden") : this._drawer.setPanelAiZoneState("analyzing", { analyzingLabel: this._i18n.aiAnalysisAnalyzingLabel });
|
|
7176
7196
|
}
|
|
7177
|
-
},
|
|
7178
|
-
if (!
|
|
7197
|
+
}, O = (f) => {
|
|
7198
|
+
if (!F || !this._drawer) return;
|
|
7179
7199
|
const S = this._buildRenderContext();
|
|
7180
7200
|
S.isStreaming = f;
|
|
7181
|
-
const
|
|
7182
|
-
|
|
7183
|
-
},
|
|
7201
|
+
const L = this._renderUISpec(F, S);
|
|
7202
|
+
U = !0, this._drawer.setPanelAiZoneState("results", { resultEl: L }), F = null;
|
|
7203
|
+
}, N = (f, S, L) => {
|
|
7184
7204
|
if (f === "ProductGrid" || f === "CategoriesContainer") {
|
|
7185
|
-
|
|
7205
|
+
z = !0, O(L), C();
|
|
7186
7206
|
return;
|
|
7187
7207
|
}
|
|
7188
|
-
S !== "appendSimilars" && S !== "append" && (
|
|
7189
|
-
},
|
|
7190
|
-
|
|
7191
|
-
}, ne = (f, S,
|
|
7208
|
+
S !== "appendSimilars" && S !== "append" && (z = !1, U = !1, F = null, this._drawer?.setPanelAiZoneState("hidden"));
|
|
7209
|
+
}, q = (f) => (f === "ProductGrid" || f === "CategoriesContainer") && (z || U || F !== null), D = () => {
|
|
7210
|
+
E || (E = !0, this._drawer?.removeTypingIndicator(), r(!1), this._bridge?.send("loadingMessage", { text: null }));
|
|
7211
|
+
}, ne = (f, S, L) => {
|
|
7192
7212
|
if (!this._drawer || !this._panel) return;
|
|
7193
|
-
const
|
|
7194
|
-
if (
|
|
7195
|
-
const I = ft(
|
|
7213
|
+
const $ = f.elements[f.root];
|
|
7214
|
+
if (L === "ProductGrid" && $) {
|
|
7215
|
+
const I = ft($);
|
|
7196
7216
|
if (I.isConsulting) {
|
|
7197
|
-
const
|
|
7198
|
-
if (
|
|
7217
|
+
const j = this._drawer.getPanelContentElement();
|
|
7218
|
+
if (j && Ei(j, I, S)) {
|
|
7199
7219
|
this._comparisonSelectMode = !1, this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, this._drawer.setComparisonDockContent(null), this._currentPanelSource = {
|
|
7200
7220
|
kind: "spec",
|
|
7201
7221
|
spec: f
|
|
7202
|
-
}, this._panel.currentType =
|
|
7222
|
+
}, this._panel.currentType = L, this._drawer.resyncPanelTopBarFromCurrentContent();
|
|
7203
7223
|
return;
|
|
7204
7224
|
}
|
|
7205
7225
|
}
|
|
7206
7226
|
}
|
|
7207
|
-
this._comparisonSelectMode = !1, this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, this._drawer.setComparisonDockContent(null), this._drawer.setPanelContent(this._renderUISpec(f, S), { preserveAiZone:
|
|
7227
|
+
this._comparisonSelectMode = !1, this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, this._drawer.setComparisonDockContent(null), this._drawer.setPanelContent(this._renderUISpec(f, S), { preserveAiZone: q(L) }), this._currentPanelSource = {
|
|
7208
7228
|
kind: "spec",
|
|
7209
7229
|
spec: f
|
|
7210
|
-
}, this._panel.currentType =
|
|
7211
|
-
},
|
|
7230
|
+
}, this._panel.currentType = L;
|
|
7231
|
+
}, W = (f, S, L, $) => {
|
|
7212
7232
|
if (!this._panel) return;
|
|
7213
7233
|
f === "ProductDetailsPanel" && e.type === "launchSingleProduct" && this._clearUnavailableProductContext(), g.threadId && this._panel.threads[this._panel.threads.length - 1] !== g.threadId && this._panel.threads.push(g.threadId), this._isMobileViewport && f === "ProductGrid" && this._ensureMobilePanelOverlayVisible();
|
|
7214
|
-
const I = this._panel.currentType ?? f,
|
|
7215
|
-
this._panel.updateTopBar(I,
|
|
7234
|
+
const I = this._panel.currentType ?? f, j = S?.props?.panelTitle;
|
|
7235
|
+
this._panel.updateTopBar(I, j), this._panel.updateExtendedMode(f), this._isMobileViewport && c && this._drawer?.hideMobilePanel(), N(f, L, $);
|
|
7216
7236
|
};
|
|
7217
|
-
let
|
|
7218
|
-
if (
|
|
7219
|
-
onTextChunk: (f, S,
|
|
7220
|
-
if (!o && i !== this._activeRequestThreadId || (u += f,
|
|
7237
|
+
let K = null;
|
|
7238
|
+
if (K = pn(T, {
|
|
7239
|
+
onTextChunk: (f, S, L) => {
|
|
7240
|
+
if (!o && i !== this._activeRequestThreadId || (u += f, L?.skuToProductItem && (this._skuToProductItem = {
|
|
7221
7241
|
...this._skuToProductItem,
|
|
7222
|
-
...
|
|
7223
|
-
}),
|
|
7224
|
-
let
|
|
7225
|
-
const I =
|
|
7226
|
-
if (I || xt(
|
|
7242
|
+
...L.skuToProductItem
|
|
7243
|
+
}), L?.conversationMode && (this._conversationMode = L.conversationMode), L?.renderHint && (g.renderHint = L.renderHint), !this._drawer)) return;
|
|
7244
|
+
let $ = u;
|
|
7245
|
+
const I = L?.kvkk === !0, j = I ? { fallbackToFirstBlock: !0 } : void 0;
|
|
7246
|
+
if (I || xt($)) {
|
|
7227
7247
|
if (S) {
|
|
7228
|
-
const
|
|
7229
|
-
if (!Kt(
|
|
7230
|
-
const
|
|
7231
|
-
|
|
7248
|
+
const te = this.config.accountId;
|
|
7249
|
+
if (!Kt(te)) {
|
|
7250
|
+
const oe = Ao($, j);
|
|
7251
|
+
oe && this._drawer?.showKvkkBanner(oe), ct(te);
|
|
7232
7252
|
}
|
|
7233
7253
|
}
|
|
7234
|
-
|
|
7254
|
+
$ = To($, j), u = $;
|
|
7235
7255
|
}
|
|
7236
|
-
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
|
|
7256
|
+
Ho($) && D();
|
|
7257
|
+
const Q = this._shadow?.querySelector(`[data-message-id="${g.id}"] .gengage-chat-bubble-text`);
|
|
7258
|
+
if (Q ? Q.innerHTML = be($) : (g.content = $, g.role === "assistant" && g.threadId && !this._threadsWithFirstBot.has(g.threadId) && (this._threadsWithFirstBot.add(g.threadId), this._drawer.markFirstBotMessage(g.id)), this._drawer.addMessage(g)), S)
|
|
7259
|
+
if (g.content = $, g.status = "done", yt(), qn(g))
|
|
7260
|
+
this._drawer?.updateBotMessage(g.id, $, "photo_analysis", g.photoAnalysis), g.threadId && this._focusPresentationThread(g.threadId, "auto");
|
|
7240
7261
|
else {
|
|
7241
|
-
const
|
|
7242
|
-
if (
|
|
7262
|
+
const te = this._shadow?.querySelector(`[data-message-id="${g.id}"] .gengage-chat-bubble-text`);
|
|
7263
|
+
if (te) {
|
|
7243
7264
|
this._activeTypewriter?.cancel();
|
|
7244
|
-
const
|
|
7265
|
+
const oe = L?.productMentions;
|
|
7245
7266
|
this._activeTypewriter = Vi({
|
|
7246
|
-
container:
|
|
7247
|
-
html: be(
|
|
7267
|
+
container: te,
|
|
7268
|
+
html: be($),
|
|
7248
7269
|
onTick: () => this._drawer?.scrollToBottomIfNeeded(),
|
|
7249
7270
|
onComplete: () => {
|
|
7250
|
-
this._activeTypewriter = null,
|
|
7251
|
-
container:
|
|
7252
|
-
mentions:
|
|
7271
|
+
this._activeTypewriter = null, oe && oe.length > 0 && te && Gi({
|
|
7272
|
+
container: te,
|
|
7273
|
+
mentions: oe,
|
|
7253
7274
|
onProductClick: (se) => {
|
|
7254
7275
|
this._sendAction({
|
|
7255
|
-
title:
|
|
7276
|
+
title: oe.find((y) => y.sku === se)?.short_name ?? se,
|
|
7256
7277
|
type: "launchSingleProduct",
|
|
7257
7278
|
payload: { sku: se }
|
|
7258
7279
|
});
|
|
@@ -7263,107 +7284,107 @@ var Fo = class Me extends Ya {
|
|
|
7263
7284
|
}
|
|
7264
7285
|
}
|
|
7265
7286
|
},
|
|
7266
|
-
onUISpec: (f, S,
|
|
7287
|
+
onUISpec: (f, S, L, $) => {
|
|
7267
7288
|
if (!o && i !== this._activeRequestThreadId || S !== "chat") return;
|
|
7268
|
-
|
|
7269
|
-
const I = f.elements[f.root],
|
|
7270
|
-
if (jn(
|
|
7289
|
+
$ && (this._clearAssistantPanelLikeStreamClearPanel(), k = !1, B = null);
|
|
7290
|
+
const I = f.elements[f.root], j = I?.type ?? "unknown";
|
|
7291
|
+
if (jn(j, I?.props ?? {}, R, {
|
|
7271
7292
|
drawer: this._drawer,
|
|
7272
7293
|
ensureRendered: () => this._ensureAssistantMessageRendered(g),
|
|
7273
7294
|
cancelTypewriter: () => {
|
|
7274
7295
|
this._activeTypewriter?.cancel(), this._activeTypewriter = null;
|
|
7275
7296
|
},
|
|
7276
7297
|
sendSkipMessage: () => this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),
|
|
7277
|
-
streamDone:
|
|
7298
|
+
streamDone: X
|
|
7278
7299
|
}, g)) {
|
|
7279
|
-
|
|
7300
|
+
j === "PhotoAnalysisCard" && g.threadId && this._focusPresentationThread(g.threadId, "auto");
|
|
7280
7301
|
return;
|
|
7281
7302
|
}
|
|
7282
|
-
const
|
|
7283
|
-
|
|
7284
|
-
const
|
|
7285
|
-
if (se.isStreaming = !0,
|
|
7286
|
-
const
|
|
7287
|
-
$a(Array.isArray(
|
|
7303
|
+
const Q = gt(I), te = this.config.productDetailsExtended !== !0 && (j === "ProductDetailsPanel" || Q);
|
|
7304
|
+
te && !$ && (this._clearAssistantPanelLikeStreamClearPanel(), k = !1);
|
|
7305
|
+
const oe = j === "ProductDetailsPanel" && L !== "panel" ? "panel" : L, se = this._buildRenderContext();
|
|
7306
|
+
if (se.isStreaming = !0, j === "ComparisonTable") {
|
|
7307
|
+
const G = I?.props?.products;
|
|
7308
|
+
$a(Array.isArray(G) ? G.length : 0);
|
|
7288
7309
|
}
|
|
7289
|
-
if (
|
|
7290
|
-
const
|
|
7291
|
-
Ra(void 0,
|
|
7310
|
+
if (j === "ProductGrid") {
|
|
7311
|
+
const G = I?.children?.length ?? 0;
|
|
7312
|
+
Ra(void 0, G);
|
|
7292
7313
|
}
|
|
7293
|
-
const
|
|
7294
|
-
if (
|
|
7295
|
-
const
|
|
7296
|
-
if (
|
|
7297
|
-
|
|
7314
|
+
const y = oe === "panel" && this._panel ? this._panel.toPanelSpec(f) : f;
|
|
7315
|
+
if (oe === "panel" && this._panel && !te && j === "ProductGrid" && I) {
|
|
7316
|
+
const G = ft(I);
|
|
7317
|
+
if (G.isConsulting && !Si(G)) {
|
|
7318
|
+
B = f;
|
|
7298
7319
|
return;
|
|
7299
7320
|
}
|
|
7300
|
-
|
|
7321
|
+
G.isConsulting && (B = null);
|
|
7301
7322
|
}
|
|
7302
|
-
if (Ro(I) &&
|
|
7303
|
-
const
|
|
7304
|
-
|
|
7305
|
-
const
|
|
7306
|
-
componentType:
|
|
7323
|
+
if (Ro(I) && D(), oe === "panel" && this._panel && !te) {
|
|
7324
|
+
const G = !P;
|
|
7325
|
+
P = !0;
|
|
7326
|
+
const J = I?.props?.replacePanel === !0, re = I?.props?.rankingState, Z = J || re === "pending" || re === "final" ? "replace" : oo({
|
|
7327
|
+
componentType: j,
|
|
7307
7328
|
similarsAppend: I?.props?.similarsAppend === !0,
|
|
7308
7329
|
currentPanelType: this._panel.currentType,
|
|
7309
7330
|
hasPanelContent: this._drawer?.hasPanelContent() ?? !1,
|
|
7310
7331
|
isPanelLoading: this._drawer?.isPanelLoading() ?? !1,
|
|
7311
|
-
isFirstPanelContentInStream:
|
|
7332
|
+
isFirstPanelContentInStream: G
|
|
7312
7333
|
});
|
|
7313
|
-
se.panelProductListHeading = void 0,
|
|
7334
|
+
se.panelProductListHeading = void 0, j === "ProductGrid" && (Z === "appendSimilars" ? se.panelProductListHeading = this._i18n.similarProductsLabel ?? "Similar Products" : this._applyPanelListHeadingToContext(se, {
|
|
7314
7335
|
kind: "spec",
|
|
7315
|
-
spec:
|
|
7316
|
-
})),
|
|
7336
|
+
spec: y
|
|
7337
|
+
})), Z === "appendSimilars" ? this._appendSimilarsToPanel(y, se) : Z === "append" ? (this._drawer?.appendPanelContent(this._renderUISpec(y, se)), this._comparisonSelectMode && this._refreshComparisonUI()) : ne(y, se, j), W(j, I, Z, !0);
|
|
7317
7338
|
}
|
|
7318
|
-
if (
|
|
7319
|
-
const
|
|
7320
|
-
if (
|
|
7321
|
-
c && (l =
|
|
7322
|
-
const
|
|
7339
|
+
if (j === "ProductDetailsPanel" && oe === "panel" && (!g.silent || c)) {
|
|
7340
|
+
const G = I?.props?.product;
|
|
7341
|
+
if (G) {
|
|
7342
|
+
c && (l = G), this._currentInlineProductSummaryRecord = G;
|
|
7343
|
+
const J = {
|
|
7323
7344
|
root: "root",
|
|
7324
7345
|
elements: { root: {
|
|
7325
7346
|
type: "ProductSummaryCard",
|
|
7326
|
-
props: { product:
|
|
7347
|
+
props: { product: G }
|
|
7327
7348
|
} }
|
|
7328
|
-
},
|
|
7329
|
-
if (
|
|
7330
|
-
const
|
|
7331
|
-
g.threadId && (
|
|
7332
|
-
const
|
|
7333
|
-
|
|
7349
|
+
}, re = this._shadow?.querySelector(".gengage-chat-messages");
|
|
7350
|
+
if (re) {
|
|
7351
|
+
const Z = this._renderUISpec(J, se);
|
|
7352
|
+
g.threadId && (Z.dataset.threadId = g.threadId);
|
|
7353
|
+
const le = this._shadow?.querySelector(`[data-message-id="${g.id}"]`);
|
|
7354
|
+
le && le.parentNode === re ? le.after(Z) : re.appendChild(Z), this._scrollInlineIntoView(Z, g.threadId), this._drawer?.refreshPresentationCollapsed(), P = !0;
|
|
7334
7355
|
}
|
|
7335
7356
|
}
|
|
7336
7357
|
}
|
|
7337
|
-
const
|
|
7338
|
-
let
|
|
7339
|
-
if (
|
|
7340
|
-
if (g.threadId && this._rememberPanelAiSpec(g.threadId, f),
|
|
7341
|
-
const
|
|
7342
|
-
|
|
7358
|
+
const Y = j === "AITopPicks" || j === "AIGroupingCards", ce = j === "InlineQuestionButtons", ie = j === "ActionButtons" ? I?.props?.buttons : void 0, M = j === "ActionButtons" && this._modeController.mode !== "shopping" && Array.isArray(ie) && ie.length > 0 && ie.every((G) => G.action?.type === "inputText");
|
|
7359
|
+
let H = !1, ee = !1;
|
|
7360
|
+
if (te && Q && (se.panelProductListHeading = this._i18n.similarProductsLabel ?? "Similar Products"), Y && (!g.silent || s))
|
|
7361
|
+
if (g.threadId && this._rememberPanelAiSpec(g.threadId, f), z) {
|
|
7362
|
+
const G = this._renderUISpec(f, se);
|
|
7363
|
+
U = !0, this._drawer?.setPanelAiZoneState("results", { resultEl: G }), H = !0, F = null;
|
|
7343
7364
|
} else
|
|
7344
|
-
|
|
7345
|
-
|
|
7346
|
-
const
|
|
7347
|
-
if (!
|
|
7348
|
-
const
|
|
7349
|
-
if (
|
|
7350
|
-
const
|
|
7351
|
-
g.threadId && (
|
|
7365
|
+
F = f, ee = !0;
|
|
7366
|
+
ce && (this._drawer?.setInputAreaChips([]), this._drawer?.setPills([]));
|
|
7367
|
+
const pe = s && (j === "GroundingReviewCard" || Y || j === "InlineQuestionButtons");
|
|
7368
|
+
if (!Y && (!g.silent || pe) && (oe !== "panel" || j === "ProductCard" || te && j === "ProductGrid" && !Q) && (j !== "ActionButtons" || M) && !H && !(ee && Y)) {
|
|
7369
|
+
const G = this._shadow?.querySelector(".gengage-chat-messages");
|
|
7370
|
+
if (G) {
|
|
7371
|
+
const J = this._renderUISpec(f, se);
|
|
7372
|
+
g.threadId && (J.dataset.threadId = g.threadId), G.appendChild(J), this._scrollInlineIntoView(J, g.threadId), this._drawer?.refreshPresentationCollapsed(), te && j === "ProductGrid" && (P = !0);
|
|
7352
7373
|
}
|
|
7353
7374
|
}
|
|
7354
|
-
if ((
|
|
7355
|
-
const
|
|
7356
|
-
for (const
|
|
7357
|
-
const
|
|
7358
|
-
|
|
7375
|
+
if ((j === "ProductGrid" || j === "ProductCard") && g.threadId) {
|
|
7376
|
+
const G = I?.children ?? [], J = j === "ProductGrid" ? G.map((re) => f.elements[re]?.props?.product).filter(Boolean) : [I?.props?.product].filter(Boolean);
|
|
7377
|
+
for (const re of J) {
|
|
7378
|
+
const Z = re.sku;
|
|
7379
|
+
Z && this._viewedProductSkus.add(Z);
|
|
7359
7380
|
}
|
|
7360
7381
|
}
|
|
7361
|
-
if (
|
|
7362
|
-
const
|
|
7363
|
-
|
|
7382
|
+
if (j === "ProductGrid" || j === "ProductDetailsPanel") {
|
|
7383
|
+
const G = (j === "ProductGrid" ? (I?.children ?? []).map((J) => f.elements[J]?.props?.product).filter(Boolean) : [I?.props?.product ?? I?.props].filter(Boolean)).map((J) => J.imageUrl).filter((J) => typeof J == "string").slice(0, 5);
|
|
7384
|
+
G.length > 0 && this._bridge?.send("previewImages", { images: G });
|
|
7364
7385
|
}
|
|
7365
|
-
const
|
|
7366
|
-
if (
|
|
7386
|
+
const V = I?.children?.length ?? 0;
|
|
7387
|
+
if (j === "ProductGrid" && oe === "panel" && !te && V > 1 && !this._isMobileViewport && !this._modeController.isChoicePrompterHidden && !this._comparisonSelectMode && !Qi(this._currentThreadId ?? "") && (this._clearChoicePrompter(), this._choicePrompterEl = Xi({
|
|
7367
7388
|
heading: this._i18n.choicePrompterHeading,
|
|
7368
7389
|
suggestion: this._i18n.choicePrompterSuggestion,
|
|
7369
7390
|
ctaLabel: this._i18n.choicePrompterCta,
|
|
@@ -7375,27 +7396,27 @@ var Fo = class Me extends Ya {
|
|
|
7375
7396
|
onDismiss: () => {
|
|
7376
7397
|
this._choicePrompterEl = null;
|
|
7377
7398
|
}
|
|
7378
|
-
}), this._mountChoicePrompter()),
|
|
7379
|
-
const
|
|
7380
|
-
if (
|
|
7381
|
-
const
|
|
7382
|
-
for (const
|
|
7383
|
-
const
|
|
7384
|
-
label:
|
|
7385
|
-
action:
|
|
7399
|
+
}), this._mountChoicePrompter()), j === "ActionButtons") {
|
|
7400
|
+
const G = I?.props?.buttons;
|
|
7401
|
+
if (G && G.length > 0 && !M) {
|
|
7402
|
+
const J = [], re = [];
|
|
7403
|
+
for (const Z of G) if (Yi(Z)) {
|
|
7404
|
+
const le = {
|
|
7405
|
+
label: Z.label,
|
|
7406
|
+
action: Z.action
|
|
7386
7407
|
};
|
|
7387
|
-
|
|
7388
|
-
} else
|
|
7389
|
-
|
|
7390
|
-
label:
|
|
7391
|
-
onAction: () => this._sendAction(
|
|
7392
|
-
...
|
|
7393
|
-
}))),
|
|
7394
|
-
const
|
|
7395
|
-
label:
|
|
7396
|
-
onAction: () => this._sendAction(
|
|
7408
|
+
Z.icon && (le.icon = Z.icon), J.push(le);
|
|
7409
|
+
} else re.push(Z);
|
|
7410
|
+
J.length > 0 && this._drawer?.setInputAreaChips(J.map((Z) => ({
|
|
7411
|
+
label: Z.label,
|
|
7412
|
+
onAction: () => this._sendAction(Z.action),
|
|
7413
|
+
...Z.icon ? { icon: Z.icon } : {}
|
|
7414
|
+
}))), re.length > 0 && this._drawer?.setPills(re.map((Z) => {
|
|
7415
|
+
const le = {
|
|
7416
|
+
label: Z.label,
|
|
7417
|
+
onAction: () => this._sendAction(Z.action)
|
|
7397
7418
|
};
|
|
7398
|
-
return
|
|
7419
|
+
return Z.icon && (le.icon = Z.icon), Z.image && (le.image = Z.image), Z.description && (le.description = Z.description), le;
|
|
7399
7420
|
}));
|
|
7400
7421
|
}
|
|
7401
7422
|
}
|
|
@@ -7406,15 +7427,15 @@ var Fo = class Me extends Ya {
|
|
|
7406
7427
|
const S = {};
|
|
7407
7428
|
this.config.actionHandling?.unknownActionPolicy !== void 0 && (S.unknownActionPolicy = this.config.actionHandling.unknownActionPolicy), this.config.actionHandling?.allowScriptCall !== void 0 && (S.allowScriptCall = this.config.actionHandling.allowScriptCall), Za(f, {
|
|
7408
7429
|
openChat: () => this.open(),
|
|
7409
|
-
navigate: (
|
|
7410
|
-
|
|
7430
|
+
navigate: (L) => {
|
|
7431
|
+
ve(L.url) && (this._bridge?.send("navigate", L), L.newTab ? window.open(L.url, "_blank", "noopener,noreferrer") : window.location.href = L.url);
|
|
7411
7432
|
},
|
|
7412
|
-
saveSession: (
|
|
7413
|
-
addToCart: (
|
|
7414
|
-
this._runChatAddToCartFlow(
|
|
7433
|
+
saveSession: (L) => this.saveSession(L.sessionId, L.sku),
|
|
7434
|
+
addToCart: (L) => {
|
|
7435
|
+
this._runChatAddToCartFlow(L);
|
|
7415
7436
|
},
|
|
7416
|
-
scriptCall: (
|
|
7417
|
-
_e("gengage:chat:script-call",
|
|
7437
|
+
scriptCall: (L) => {
|
|
7438
|
+
_e("gengage:chat:script-call", L), this.config.onScriptCall?.(L);
|
|
7418
7439
|
}
|
|
7419
7440
|
}, S);
|
|
7420
7441
|
}
|
|
@@ -7428,29 +7449,29 @@ var Fo = class Me extends Ya {
|
|
|
7428
7449
|
}
|
|
7429
7450
|
if (f.meta.panelLoading) {
|
|
7430
7451
|
const S = typeof f.meta.panelPendingType == "string" ? f.meta.panelPendingType : void 0;
|
|
7431
|
-
this.config.productDetailsExtended !== !0 && (S === "productDetails" || S === "productDetailsSimilars") || (k = !0,
|
|
7452
|
+
this.config.productDetailsExtended !== !0 && (S === "productDetails" || S === "productDetailsSimilars") || (k = !0, P = !1, x(), this._panel && (this._panel.currentType = null), this._drawer?.showPanelLoading(S), this._isMobileViewport && S === "productList" && this._ensureMobilePanelOverlayVisible(), S && this._panel?.updateTopBarForLoading(S));
|
|
7432
7453
|
}
|
|
7433
7454
|
if (f.meta.voice) {
|
|
7434
7455
|
const S = new CustomEvent("gengage:chat:voice", {
|
|
7435
7456
|
detail: { payload: f.meta.voice },
|
|
7436
7457
|
bubbles: !1,
|
|
7437
7458
|
cancelable: !0
|
|
7438
|
-
}),
|
|
7439
|
-
if (za(),
|
|
7440
|
-
const
|
|
7441
|
-
|
|
7459
|
+
}), L = window.dispatchEvent(S);
|
|
7460
|
+
if (za(), L) {
|
|
7461
|
+
const $ = f.meta.voice;
|
|
7462
|
+
$.audio_base64 && (this._activeTtsHandle?.stop(), this._activeTtsHandle = Oi($.audio_base64, $.content_type ?? "audio/ogg"));
|
|
7442
7463
|
}
|
|
7443
7464
|
}
|
|
7444
7465
|
if ((f.meta.redirectTarget || f.meta.redirect) && (_e("gengage:chat:redirect", {
|
|
7445
7466
|
target: f.meta.redirectTarget ?? null,
|
|
7446
7467
|
payload: f.meta.redirect ?? null
|
|
7447
|
-
}), ze("redirect", "redirect dispatched", { target: f.meta.redirectTarget ?? null }), this._handleRedirectMetadata(f.meta.redirect)), f.meta.analyzeAnimation && this.config.productDetailsExtended === !0 && (k = !0,
|
|
7448
|
-
const S = Array.isArray(f.meta.thinkingMessages) ? f.meta.thinkingMessages.filter((
|
|
7468
|
+
}), ze("redirect", "redirect dispatched", { target: f.meta.redirectTarget ?? null }), this._handleRedirectMetadata(f.meta.redirect)), f.meta.analyzeAnimation && this.config.productDetailsExtended === !0 && (k = !0, P = !1, x(), this._panel && (this._panel.currentType = null), this._drawer?.showPanelLoading(), this._panel?.updateTopBarForLoading("productDetails")), f.meta.loading) {
|
|
7469
|
+
const S = Array.isArray(f.meta.thinkingMessages) ? f.meta.thinkingMessages.filter(($) => typeof $ == "string") : [], L = typeof f.meta.loadingText == "string" ? f.meta.loadingText : void 0;
|
|
7449
7470
|
if (S.length > 0) {
|
|
7450
|
-
const
|
|
7451
|
-
this._drawer?.setThinkingSteps(
|
|
7471
|
+
const $ = L && this._modeController.shouldCondenseThinking() ? [...S.slice(0, 2), L] : S;
|
|
7472
|
+
this._drawer?.setThinkingSteps($);
|
|
7452
7473
|
}
|
|
7453
|
-
typeof
|
|
7474
|
+
typeof L == "string" && L.length > 0 && (this._drawer?.addThinkingStep(L), E || this._bridge?.send("loadingMessage", { text: L }));
|
|
7454
7475
|
}
|
|
7455
7476
|
f.meta.visitorDataResponse && this._bridge?.send("engagingMessage", f.meta.visitorDataResponse), f.meta.formType && this._bridge?.send("glovForm", {
|
|
7456
7477
|
type: f.meta.formType,
|
|
@@ -7459,8 +7480,8 @@ var Fo = class Me extends Ya {
|
|
|
7459
7480
|
}
|
|
7460
7481
|
},
|
|
7461
7482
|
onError: (f) => {
|
|
7462
|
-
if (
|
|
7463
|
-
|
|
7483
|
+
if (K && this._abortControllers.delete(K), !o && i !== this._activeRequestThreadId) return;
|
|
7484
|
+
X = !0, this._activeTypewriter?.cancel(), this._activeTypewriter = null, C(), F = null, B = null, r(!1), this._bridge?.send("loadingMessage", { text: null }), this._drawer?.removeTypingIndicator(), this._drawer?.clearInputAreaChips(), Vn(R, {
|
|
7464
7485
|
drawer: this._drawer,
|
|
7465
7486
|
ensureRendered: () => {
|
|
7466
7487
|
},
|
|
@@ -7469,20 +7490,20 @@ var Fo = class Me extends Ya {
|
|
|
7469
7490
|
sendSkipMessage: () => this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),
|
|
7470
7491
|
streamDone: !0
|
|
7471
7492
|
});
|
|
7472
|
-
const S =
|
|
7473
|
-
k && !
|
|
7474
|
-
const
|
|
7493
|
+
const S = P;
|
|
7494
|
+
k && !P && v(), k = !1, this._maybeHidePreservedMobilePanel(e.type, S), P = !1;
|
|
7495
|
+
const L = g.content != null && g.content.length > 0 || u.length > 0 || S, $ = g.silent || L, I = typeof navigator < "u" && navigator.onLine === !1 && Qt(f), j = () => {
|
|
7475
7496
|
this._shadow?.querySelector(`[data-message-id="${he(g.id)}"]`)?.remove();
|
|
7476
|
-
const
|
|
7477
|
-
|
|
7497
|
+
const oe = this._messages.indexOf(g);
|
|
7498
|
+
oe >= 0 && this._messages.splice(oe, 1);
|
|
7478
7499
|
};
|
|
7479
|
-
let
|
|
7480
|
-
const
|
|
7500
|
+
let Q = !1;
|
|
7501
|
+
const te = () => {
|
|
7481
7502
|
if (I) return;
|
|
7482
7503
|
this.emit("error", f);
|
|
7483
|
-
const
|
|
7484
|
-
|
|
7485
|
-
const se = f.message.trim(),
|
|
7504
|
+
const oe = f.message;
|
|
7505
|
+
oe === this._lastErrorMessage ? this._consecutiveErrorCount++ : (this._consecutiveErrorCount = 1, this._lastErrorMessage = oe);
|
|
7506
|
+
const se = f.message.trim(), y = se.length > 0 ? se : this._i18n.errorMessage, Y = {
|
|
7486
7507
|
onRetry: () => {
|
|
7487
7508
|
this._lastSentAction && this._sendAction(this._lastSentAction.action, this._lastSentAction.options);
|
|
7488
7509
|
},
|
|
@@ -7491,43 +7512,43 @@ var Fo = class Me extends Ya {
|
|
|
7491
7512
|
}
|
|
7492
7513
|
};
|
|
7493
7514
|
if (this._consecutiveErrorCount >= 2) {
|
|
7494
|
-
|
|
7515
|
+
j(), Q = !0, this._drawer?.showErrorWithRecovery(this._i18n.accountInactiveMessage, Y);
|
|
7495
7516
|
return;
|
|
7496
7517
|
}
|
|
7497
|
-
if (Eo(f,
|
|
7498
|
-
|
|
7518
|
+
if (Eo(f, y)) {
|
|
7519
|
+
j(), Q = !0, this._drawer?.showErrorWithRecovery(y, Y);
|
|
7499
7520
|
return;
|
|
7500
7521
|
}
|
|
7501
|
-
g.content =
|
|
7502
|
-
const
|
|
7522
|
+
g.content = y, g.status = "done";
|
|
7523
|
+
const ce = be(y.replace(/\r\n/g, `
|
|
7503
7524
|
`).split(`
|
|
7504
7525
|
`).join("<br />"));
|
|
7505
|
-
this._ensureAssistantMessageRendered(g), this._drawer?.updateBotMessage(g.id,
|
|
7526
|
+
this._ensureAssistantMessageRendered(g), this._drawer?.updateBotMessage(g.id, ce), this._drawer?.showRecoveryPillsOnly(Y);
|
|
7506
7527
|
};
|
|
7507
|
-
if (s && !
|
|
7528
|
+
if (s && !L) if (c || this._hasUnavailableProductContext()) {
|
|
7508
7529
|
this._drawer?.setPills([]);
|
|
7509
|
-
const
|
|
7510
|
-
g.content =
|
|
7530
|
+
const oe = this._i18n.productNotFoundMessage;
|
|
7531
|
+
g.content = oe, g.status = "done", this._ensureAssistantMessageRendered(g), this._drawer?.updateBotMessage(g.id, oe), this._markUnavailableProductContext();
|
|
7511
7532
|
} else g.status = "done";
|
|
7512
|
-
else if (
|
|
7513
|
-
this._drawer?.setPills([]), g.silent ||
|
|
7514
|
-
else if (
|
|
7515
|
-
s && (this._contextPrimingInFlight = !1, this._flushQueuedUserMessages()), !
|
|
7533
|
+
else if ($)
|
|
7534
|
+
this._drawer?.setPills([]), g.silent || te();
|
|
7535
|
+
else if (te(), I) return;
|
|
7536
|
+
s && (this._contextPrimingInFlight = !1, this._flushQueuedUserMessages()), !Q && g.status === "streaming" && (g.status = "error");
|
|
7516
7537
|
},
|
|
7517
7538
|
onDone: () => {
|
|
7518
|
-
if (
|
|
7519
|
-
if (
|
|
7539
|
+
if (K && this._abortControllers.delete(K), !o && i !== this._activeRequestThreadId) return;
|
|
7540
|
+
if (X = !0, B && this._panel && this._drawer) {
|
|
7520
7541
|
const I = this._buildRenderContext();
|
|
7521
7542
|
I.isStreaming = !1;
|
|
7522
|
-
const
|
|
7543
|
+
const j = B.elements[B.root], Q = this._panel.toPanelSpec(B);
|
|
7523
7544
|
this._applyPanelListHeadingToContext(I, {
|
|
7524
7545
|
kind: "spec",
|
|
7525
|
-
spec:
|
|
7546
|
+
spec: Q
|
|
7526
7547
|
});
|
|
7527
|
-
const
|
|
7528
|
-
ne(
|
|
7548
|
+
const te = j?.type ?? "ProductGrid";
|
|
7549
|
+
ne(Q, I, te), W(te, j, "replace", !1), P = !0;
|
|
7529
7550
|
}
|
|
7530
|
-
|
|
7551
|
+
B = null, F && O(!1), C(), !o && i === this._activeRequestThreadId && (this._activeRequestThreadId = null), this._consecutiveErrorCount = 0, this._lastErrorMessage = "", r(!1), this._bridge?.send("loadingMessage", { text: null }), this._drawer?.removeTypingIndicator(), $n(R, {
|
|
7531
7552
|
drawer: this._drawer,
|
|
7532
7553
|
ensureRendered: () => {
|
|
7533
7554
|
},
|
|
@@ -7536,12 +7557,12 @@ var Fo = class Me extends Ya {
|
|
|
7536
7557
|
sendSkipMessage: () => this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),
|
|
7537
7558
|
streamDone: !0
|
|
7538
7559
|
});
|
|
7539
|
-
const f =
|
|
7540
|
-
if (k && !
|
|
7560
|
+
const f = P;
|
|
7561
|
+
if (k && !P && v(), k = !1, this._maybeHidePreservedMobilePanel(e.type, f), c && !u && !f) {
|
|
7541
7562
|
const I = this._i18n.productNotFoundMessage;
|
|
7542
7563
|
g.content = I, this._ensureAssistantMessageRendered(g), this._drawer?.updateBotMessage(g.id, I), this._markUnavailableProductContext();
|
|
7543
7564
|
}
|
|
7544
|
-
if (
|
|
7565
|
+
if (P = !1, s) {
|
|
7545
7566
|
this._contextPrimingInFlight = !1;
|
|
7546
7567
|
const I = this._queuedUserMessages.length > 0;
|
|
7547
7568
|
this._flushQueuedUserMessages(), !I && c && this._ensurePdpPrimeSuggestedUiIfNeeded(l);
|
|
@@ -7549,18 +7570,18 @@ var Fo = class Me extends Ya {
|
|
|
7549
7570
|
g.status === "streaming" && (g.status = "done", yt()), this._presentation.finalizeAssistantGroup(i);
|
|
7550
7571
|
const S = this._shadow?.querySelector(".gengage-chat-comparison-toggle-btn--hidden");
|
|
7551
7572
|
S && (S.classList.remove("gengage-chat-comparison-toggle-btn--hidden"), S.classList.add("gengage-chat-comparison-toggle-btn--reveal")), this.emit("message", g);
|
|
7552
|
-
const
|
|
7553
|
-
this._panel?.snapshotForMessage(g.id,
|
|
7554
|
-
source:
|
|
7573
|
+
const L = this._currentPanelSource, $ = L ? this._clonePanelSourceForHistory(L) : null;
|
|
7574
|
+
this._panel?.snapshotForMessage(g.id, $ ? {
|
|
7575
|
+
source: $,
|
|
7555
7576
|
threadId: g.threadId,
|
|
7556
7577
|
rebuild: () => {
|
|
7557
7578
|
const I = this._buildRenderContext();
|
|
7558
|
-
return this._renderPanelFromSource(
|
|
7579
|
+
return this._renderPanelFromSource($, I);
|
|
7559
7580
|
}
|
|
7560
7581
|
} : void 0), this._maybeAddPanelRestoreMessage(g), this._persistConversationState();
|
|
7561
7582
|
}
|
|
7562
|
-
}, _), this._abortControllers.add(
|
|
7563
|
-
const f =
|
|
7583
|
+
}, _), this._abortControllers.add(K), !a?.silent && !o) {
|
|
7584
|
+
const f = K;
|
|
7564
7585
|
this._drawer?.showStopButton(() => {
|
|
7565
7586
|
f.abort(), this._abortControllers.delete(f), this._drawer?.removeTypingIndicator(), r(!1), this._bridge?.send("loadingMessage", { text: null }), g.status === "streaming" && (g.status = "done");
|
|
7566
7587
|
});
|
|
@@ -8312,7 +8333,7 @@ var Fo = class Me extends Ya {
|
|
|
8312
8333
|
return;
|
|
8313
8334
|
}
|
|
8314
8335
|
const i = a.url.trim();
|
|
8315
|
-
if (!n && this.config.onProductNavigate !== void 0 && i.length > 0 &&
|
|
8336
|
+
if (!n && this.config.onProductNavigate !== void 0 && i.length > 0 && ve(i)) {
|
|
8316
8337
|
at(a.sku), this.config.onProductNavigate(i, a.sku, this.config.session?.sessionId ?? null);
|
|
8317
8338
|
return;
|
|
8318
8339
|
}
|
|
@@ -8656,7 +8677,7 @@ var Fo = class Me extends Ya {
|
|
|
8656
8677
|
};
|
|
8657
8678
|
}
|
|
8658
8679
|
_resolveUISpecRegistry() {
|
|
8659
|
-
return
|
|
8680
|
+
return Ta(Hr(), this.config.renderer?.registry);
|
|
8660
8681
|
}
|
|
8661
8682
|
_renderUISpec(e, a) {
|
|
8662
8683
|
const n = e.elements[e.root];
|