@gengage/assistant-fe 0.3.25 → 0.3.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/types.d.ts +3 -1
- package/dist/{chat-B1bVP6dh.js → chat-DkO7BwYQ.js} +884 -883
- package/dist/chat.iife.js +25 -25
- package/dist/chat.js +1 -1
- package/dist/{common-B-CaKFN9.js → common-B8mn_Ggf.js} +1 -1
- package/dist/common.js +3 -3
- package/dist/index.js +3 -3
- package/dist/{native-webview-Dx5logj9.js → native-webview-Rd6AS50I.js} +1 -1
- package/dist/native.iife.js +22 -22
- package/dist/native.js +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as Zt, _ as Xt, a as he, b as Qt, c as w, d as Jt, l as Be, n as
|
|
1
|
+
import { S as Zt, _ as Xt, a as he, b as Qt, c as w, d as Jt, l as Be, n as Z, o as U, p as ea, r as ke, s as Ce, t as De, u as me, w as ta } from "./schemas-CTbgsvNJ.js";
|
|
2
2
|
import { $ as aa, B as ne, C as Lt, H as na, K as ia, P as le, Q as ra, R as be, U as oa, V as ue, X as sa, Y as ca, Z as la, _ as ga, a as da, b as Se, c as pa, d as st, f as ha, g as ua, h as ma, i as ba, l as fa, m as va, n as xa, o as ya, p as ct, q as wa, r as _a, s as ka, t as Ca, u as Sa, y as Ea, z as ce } from "./ga-datalayer-BwxWX-cr.js";
|
|
3
|
-
import { a as
|
|
3
|
+
import { a as Y, i as Tt, n as It, r as Nt, t as ve } from "./product-utils-Bm3aiAlJ.js";
|
|
4
4
|
function lt() {
|
|
5
5
|
const t = Date.now(), e = new Uint8Array(16);
|
|
6
6
|
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;
|
|
@@ -313,15 +313,15 @@ function qa(t, e, a) {
|
|
|
313
313
|
const r = `[gengage-chat-debug #${n}][${t}] ${e}`;
|
|
314
314
|
a === void 0 ? console.debug(r) : console.debug(r, a);
|
|
315
315
|
}
|
|
316
|
-
var
|
|
316
|
+
var Xe = "gengage-chat-scroll", Le = null;
|
|
317
317
|
function gt(t) {
|
|
318
318
|
Le = t;
|
|
319
319
|
}
|
|
320
320
|
function eo() {
|
|
321
321
|
if (Le && Le.isConnected) return Le;
|
|
322
322
|
Le = null;
|
|
323
|
-
const t = document.getElementById(
|
|
324
|
-
return t || (qa("chat-scroll", "failed to resolve scroll container (not registered)", { id:
|
|
323
|
+
const t = document.getElementById(Xe);
|
|
324
|
+
return t || (qa("chat-scroll", "failed to resolve scroll container (not registered)", { id: Xe }), null);
|
|
325
325
|
}
|
|
326
326
|
function Va() {
|
|
327
327
|
Le = null;
|
|
@@ -392,6 +392,7 @@ var it = {
|
|
|
392
392
|
galleryNextAriaLabel: "Sonraki görsel",
|
|
393
393
|
beautyStylesPreparedTitle: "Sizin için {count} farklı stil hazırladım",
|
|
394
394
|
watchStylesPreparedTitle: "Sizin için {count} farklı stil yönü hazırladım",
|
|
395
|
+
consultingOtherCompatibleProductsLabel: "Diğer Uyumlu Ürünler",
|
|
395
396
|
choicePrompterHeading: "Kararsız mı kaldın?",
|
|
396
397
|
choicePrompterSuggestion: "Ürünleri seçip karşılaştırabilirsin",
|
|
397
398
|
choicePrompterCta: "Seç ve Karşılaştır",
|
|
@@ -526,6 +527,7 @@ var it = {
|
|
|
526
527
|
galleryNextAriaLabel: "Next image",
|
|
527
528
|
beautyStylesPreparedTitle: "Prepared {count} beauty styles for you",
|
|
528
529
|
watchStylesPreparedTitle: "Prepared {count} style directions for you",
|
|
530
|
+
consultingOtherCompatibleProductsLabel: "Other compatible products",
|
|
529
531
|
choicePrompterHeading: "Can't decide?",
|
|
530
532
|
choicePrompterSuggestion: "Select products to compare them",
|
|
531
533
|
choicePrompterCta: "Select & Compare",
|
|
@@ -843,7 +845,7 @@ function zt(t) {
|
|
|
843
845
|
}, o = typeof t.celeb_style == "string" ? t.celeb_style : void 0, l = typeof t.celeb_style_reason == "string" ? t.celeb_style_reason : void 0, g = typeof t.next_question == "string" ? t.next_question : void 0;
|
|
844
846
|
return a.length > 0 && (r.strengths = a), n.length > 0 && (r.focusPoints = n), o && (r.celebStyle = o), l && (r.celebStyleReason = l), g && (r.nextQuestion = g), r;
|
|
845
847
|
}
|
|
846
|
-
function
|
|
848
|
+
function Qe(t) {
|
|
847
849
|
const e = t.details;
|
|
848
850
|
return t.strengths && t.strengths.length > 0 || t.focusPoints && t.focusPoints.length > 0 ? {
|
|
849
851
|
...t,
|
|
@@ -872,7 +874,7 @@ function dt(t, e, a) {
|
|
|
872
874
|
}
|
|
873
875
|
return n.appendChild(i), n.appendChild(r), n;
|
|
874
876
|
}
|
|
875
|
-
function
|
|
877
|
+
function Je(t, e) {
|
|
876
878
|
const a = document.createElement("div");
|
|
877
879
|
a.className = "gengage-chat-photo-analysis-card";
|
|
878
880
|
const n = document.createElement("div");
|
|
@@ -927,23 +929,23 @@ function nn(t) {
|
|
|
927
929
|
};
|
|
928
930
|
}
|
|
929
931
|
function rn(t, e) {
|
|
930
|
-
const a =
|
|
932
|
+
const a = Qe(zt(t.props ?? {}) ?? {
|
|
931
933
|
summary: "",
|
|
932
934
|
details: []
|
|
933
935
|
});
|
|
934
|
-
return
|
|
936
|
+
return Je(nn(e), a);
|
|
935
937
|
}
|
|
936
938
|
function on(t, e, a, n) {
|
|
937
939
|
if (t.innerHTML = "", n) {
|
|
938
|
-
t.appendChild(
|
|
940
|
+
t.appendChild(Je(a, Qe(n)));
|
|
939
941
|
return;
|
|
940
942
|
}
|
|
941
|
-
const i = e.split(/(?<=[.!?])\s+/).map((c) => c.trim()).filter(Boolean), r = i[0] ?? e, o = i.slice(1).filter((c) => !c.includes("?")).slice(0, 4), l = i.find((c) => c.includes("?")), g =
|
|
943
|
+
const i = e.split(/(?<=[.!?])\s+/).map((c) => c.trim()).filter(Boolean), r = i[0] ?? e, o = i.slice(1).filter((c) => !c.includes("?")).slice(0, 4), l = i.find((c) => c.includes("?")), g = Qe({
|
|
942
944
|
summary: r,
|
|
943
945
|
details: o,
|
|
944
946
|
...l ? { nextQuestion: l } : {}
|
|
945
947
|
});
|
|
946
|
-
t.appendChild(
|
|
948
|
+
t.appendChild(Je(a, g));
|
|
947
949
|
}
|
|
948
950
|
var pt = {
|
|
949
951
|
search: '<svg viewBox="0 0 16 16" class="gengage-chat-icon"><circle cx="6.5" cy="6.5" r="5" fill="none" stroke="currentColor" stroke-width="1.5"/><line x1="10" y1="10" x2="15" y2="15" stroke="currentColor" stroke-width="1.5"/></svg>',
|
|
@@ -1009,8 +1011,8 @@ var pn = class {
|
|
|
1009
1011
|
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);
|
|
1010
1012
|
let i = null;
|
|
1011
1013
|
{
|
|
1012
|
-
const
|
|
1013
|
-
|
|
1014
|
+
const S = document.createElement("div");
|
|
1015
|
+
S.className = "gengage-chat-drawer-handle", S.dataset.gengagePart = "chat-drawer-handle", S.setAttribute("aria-hidden", "true"), S.style.pointerEvents = "none", i = S;
|
|
1014
1016
|
}
|
|
1015
1017
|
const r = document.createElement("div");
|
|
1016
1018
|
r.className = "gengage-chat-header gds-shell-header", r.dataset.gengagePart = "chat-header";
|
|
@@ -1018,8 +1020,8 @@ var pn = class {
|
|
|
1018
1020
|
o.className = "gengage-chat-header-left", o.dataset.gengagePart = "chat-header-left";
|
|
1019
1021
|
const l = e.headerAvatarUrl ?? e.launcherImageUrl, g = typeof e.headerAvatarUrl == "string" && e.headerAvatarUrl.length > 0 && e.headerAvatarUrl !== e.launcherImageUrl;
|
|
1020
1022
|
if (l) {
|
|
1021
|
-
const
|
|
1022
|
-
|
|
1023
|
+
const S = document.createElement("img");
|
|
1024
|
+
S.className = "gengage-chat-header-avatar", g && S.classList.add("gengage-chat-header-avatar--logo"), S.dataset.gengagePart = "chat-header-avatar", S.src = l, S.alt = e.headerTitle ?? "Assistant", o.appendChild(S);
|
|
1023
1025
|
}
|
|
1024
1026
|
const c = document.createElement("div");
|
|
1025
1027
|
c.className = "gengage-chat-header-info", c.dataset.gengagePart = "chat-header-info";
|
|
@@ -1027,8 +1029,8 @@ var pn = class {
|
|
|
1027
1029
|
d.className = "gengage-chat-header-title-row", d.dataset.gengagePart = "chat-header-title-row";
|
|
1028
1030
|
const s = document.createElement("span");
|
|
1029
1031
|
if (s.className = "gengage-chat-header-title", s.dataset.gengagePart = "chat-header-title", s.textContent = e.headerTitle ?? this.i18n.headerTitle ?? "Product Expert", d.appendChild(s), e.headerBadge) {
|
|
1030
|
-
const
|
|
1031
|
-
|
|
1032
|
+
const S = document.createElement("span");
|
|
1033
|
+
S.className = "gengage-chat-header-badge gds-badge gds-badge-brand", S.dataset.gengagePart = "chat-header-badge", S.textContent = e.headerBadge, d.appendChild(S);
|
|
1032
1034
|
}
|
|
1033
1035
|
c.appendChild(d);
|
|
1034
1036
|
const p = document.createElement("a");
|
|
@@ -1036,38 +1038,38 @@ var pn = class {
|
|
|
1036
1038
|
const h = document.createElement("div");
|
|
1037
1039
|
h.className = "gengage-chat-header-right", h.dataset.gengagePart = "chat-header-actions";
|
|
1038
1040
|
{
|
|
1039
|
-
const
|
|
1040
|
-
|
|
1041
|
+
const S = document.createElement("button");
|
|
1042
|
+
S.type = "button", S.className = "gengage-chat-header-btn gengage-chat-header-btn--reopen-panel gds-btn gds-btn-ghost gds-icon-btn", S.dataset.gengagePart = "chat-header-reopen-panel", S.setAttribute("aria-label", this.i18n.showPanelAriaLabel), S.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>', S.addEventListener("click", () => this._showMobilePanelFromBtn()), h.appendChild(S), this._reopenPanelBtn = S;
|
|
1041
1043
|
}
|
|
1042
1044
|
{
|
|
1043
|
-
const
|
|
1044
|
-
|
|
1045
|
+
const S = document.createElement("button");
|
|
1046
|
+
S.type = "button", S.className = "gengage-chat-header-btn gds-btn gds-btn-ghost gds-icon-btn", S.dataset.gengagePart = "chat-header-cart", S.setAttribute("aria-label", this.i18n.cartAriaLabel), S.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>', S.addEventListener("click", () => e.onCartClick?.()), h.appendChild(S), this._cartBtn = S;
|
|
1045
1047
|
}
|
|
1046
1048
|
if (e.onNewChat) {
|
|
1047
|
-
const
|
|
1048
|
-
|
|
1049
|
+
const S = document.createElement("button");
|
|
1050
|
+
S.className = "gengage-chat-header-btn gengage-chat-new-chat gds-btn gds-btn-ghost gds-icon-btn", S.dataset.gengagePart = "chat-header-new-chat", S.type = "button", S.setAttribute("aria-label", this.i18n.newChatButton), S.title = this.i18n.newChatButton, S.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>', S.addEventListener("click", () => e.onNewChat?.()), h.appendChild(S);
|
|
1049
1051
|
}
|
|
1050
1052
|
const v = document.createElement("button");
|
|
1051
1053
|
if (v.className = "gengage-chat-close gds-btn gds-btn-ghost gds-icon-btn", v.dataset.gengagePart = "chat-header-close", v.type = "button", v.setAttribute("aria-label", this.i18n.closeButton), v.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>', v.addEventListener("click", e.onClose), e.showHeaderFavorites) {
|
|
1052
|
-
const
|
|
1053
|
-
|
|
1054
|
-
const
|
|
1055
|
-
|
|
1054
|
+
const S = document.createElement("button");
|
|
1055
|
+
S.className = "gengage-chat-header-btn gengage-chat-header-btn--fav gds-btn gds-btn-ghost gds-icon-btn", S.dataset.gengagePart = "chat-header-favorites", S.type = "button", S.setAttribute("aria-label", this.i18n.favoritesAriaLabel), S.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>';
|
|
1056
|
+
const W = document.createElement("span");
|
|
1057
|
+
W.className = "gengage-chat-header-fav-badge", W.dataset.gengagePart = "chat-header-favorites-badge", W.setAttribute("aria-hidden", "true"), W.style.display = "none", S.appendChild(W), this._favBadgeEl = W, S.addEventListener("click", () => {
|
|
1056
1058
|
e.onFavoritesClick?.();
|
|
1057
|
-
}), h.appendChild(
|
|
1059
|
+
}), h.appendChild(S);
|
|
1058
1060
|
}
|
|
1059
1061
|
h.appendChild(v), i && r.insertBefore(i, r.firstChild), r.appendChild(h);
|
|
1060
1062
|
{
|
|
1061
|
-
let
|
|
1063
|
+
let W = 0, J = 0, ae = !1;
|
|
1062
1064
|
const ie = (se) => {
|
|
1063
1065
|
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) || se.target.closest('button, a, input, [role="button"]')) return;
|
|
1064
1066
|
const ge = se.changedTouches?.[0];
|
|
1065
|
-
ge && (
|
|
1067
|
+
ge && (W = ge.clientY, J = 0, ae = !0, this.root.style.transition = "none");
|
|
1066
1068
|
}, xe = (se) => {
|
|
1067
1069
|
if (!ae) return;
|
|
1068
1070
|
const ge = se.changedTouches?.[0];
|
|
1069
1071
|
if (!ge) return;
|
|
1070
|
-
J = ge.clientY -
|
|
1072
|
+
J = ge.clientY - W;
|
|
1071
1073
|
const Kt = (e.getMobileState?.() ?? "full") === "full" ? Math.max(0, J) : J;
|
|
1072
1074
|
se.preventDefault(), this.root.style.transform = `translateY(${Kt}px)`;
|
|
1073
1075
|
}, _e = () => {
|
|
@@ -1098,73 +1100,73 @@ var pn = class {
|
|
|
1098
1100
|
}), this._panelEl.appendChild(this._panelTopBar.getElement());
|
|
1099
1101
|
const f = () => this._updateScrollAffordance();
|
|
1100
1102
|
this._panelEl.addEventListener("scroll", f, { passive: !0 }), this._cleanups.push(() => this._panelEl.removeEventListener("scroll", f)), u.appendChild(this._panelEl), this._dividerEl = document.createElement("div"), this._dividerEl.className = "gengage-chat-panel-divider gengage-chat-panel-divider--hidden", this._dividerEl.dataset.gengagePart = "chat-panel-divider", this._dividerEl.setAttribute("role", "separator"), this._dividerEl.setAttribute("aria-label", this.i18n.togglePanelAriaLabel), this._dividerEl.setAttribute("title", this.i18n.togglePanelAriaLabel), this._dividerPreviewEl = document.createElement("div"), this._dividerPreviewEl.className = "gengage-chat-panel-divider-preview", this._dividerPreviewEl.dataset.gengagePart = "chat-panel-divider-preview", this._dividerPreviewEl.setAttribute("aria-hidden", "true"), this._dividerEl.appendChild(this._dividerPreviewEl);
|
|
1101
|
-
const
|
|
1102
|
-
|
|
1103
|
+
const y = document.createElement("button");
|
|
1104
|
+
y.className = "gengage-chat-panel-divider-toggle gds-btn gds-btn-ghost", y.dataset.gengagePart = "chat-panel-divider-toggle", y.type = "button", y.setAttribute("aria-label", this.i18n.togglePanelAriaLabel), y.setAttribute("title", this.i18n.togglePanelAriaLabel), y.textContent = "»", y.addEventListener("click", () => {
|
|
1103
1105
|
if (this._ignoreNextDividerClick) {
|
|
1104
1106
|
this._ignoreNextDividerClick = !1;
|
|
1105
1107
|
return;
|
|
1106
1108
|
}
|
|
1107
1109
|
this.togglePanel(), this._onPanelToggle?.();
|
|
1108
1110
|
});
|
|
1109
|
-
let
|
|
1110
|
-
const E = 24,
|
|
1111
|
+
let M = null, _ = null;
|
|
1112
|
+
const E = 24, C = (S) => {
|
|
1111
1113
|
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768)) return;
|
|
1112
|
-
const
|
|
1113
|
-
|
|
1114
|
-
},
|
|
1115
|
-
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) ||
|
|
1116
|
-
const
|
|
1117
|
-
if (!
|
|
1118
|
-
const J =
|
|
1119
|
-
if (
|
|
1114
|
+
const W = S.changedTouches?.[0];
|
|
1115
|
+
W && (M = W.clientX, _ = W.clientY);
|
|
1116
|
+
}, L = (S) => {
|
|
1117
|
+
if (!(this._options.getMobileViewport?.() ?? window.innerWidth <= 768) || M === null || _ === null) return;
|
|
1118
|
+
const W = S.changedTouches?.[0];
|
|
1119
|
+
if (!W) return;
|
|
1120
|
+
const J = W.clientX - M, ae = W.clientY - _;
|
|
1121
|
+
if (M = null, _ = null, Math.abs(ae) < E || Math.abs(ae) < Math.abs(J)) return;
|
|
1120
1122
|
const ie = ae < 0;
|
|
1121
1123
|
ie !== this._panelCollapsed && (this._ignoreNextDividerClick = !0, this.setPanelCollapsed(ie), this._onPanelToggle?.());
|
|
1122
1124
|
};
|
|
1123
|
-
this._dividerEl.addEventListener("touchstart",
|
|
1124
|
-
this._dividerEl.removeEventListener("touchstart",
|
|
1125
|
-
}), this._dividerEl.appendChild(
|
|
1126
|
-
const
|
|
1127
|
-
|
|
1128
|
-
const
|
|
1129
|
-
|
|
1130
|
-
const
|
|
1131
|
-
window.addEventListener("offline",
|
|
1132
|
-
window.removeEventListener("offline",
|
|
1133
|
-
}), this._kvkkSlot = document.createElement("div"), this._kvkkSlot.className = "gengage-chat-kvkk-slot", this._kvkkSlot.dataset.gengagePart = "chat-kvkk-slot",
|
|
1134
|
-
const
|
|
1135
|
-
|
|
1125
|
+
this._dividerEl.addEventListener("touchstart", C, { passive: !0 }), this._dividerEl.addEventListener("touchend", L, { passive: !0 }), this._cleanups.push(() => {
|
|
1126
|
+
this._dividerEl.removeEventListener("touchstart", C), this._dividerEl.removeEventListener("touchend", L);
|
|
1127
|
+
}), this._dividerEl.appendChild(y), u.appendChild(this._dividerEl);
|
|
1128
|
+
const I = document.createElement("div");
|
|
1129
|
+
I.className = "gengage-chat-conversation", I.dataset.gengagePart = "chat-conversation", this._conversationEl = I, I.appendChild(r);
|
|
1130
|
+
const N = document.createElement("div");
|
|
1131
|
+
N.className = "gengage-chat-offline-bar gds-evidence-card gds-evidence-card-warning", N.dataset.gengagePart = "chat-offline-bar", N.setAttribute("role", "status"), N.setAttribute("aria-live", "polite"), N.textContent = this.i18n.offlineMessage, typeof navigator < "u" && !navigator.onLine && N.classList.add("gengage-chat-offline-bar--visible"), I.appendChild(N);
|
|
1132
|
+
const j = () => N.classList.add("gengage-chat-offline-bar--visible"), K = () => N.classList.remove("gengage-chat-offline-bar--visible");
|
|
1133
|
+
window.addEventListener("offline", j), window.addEventListener("online", K), this._cleanups.push(() => {
|
|
1134
|
+
window.removeEventListener("offline", j), window.removeEventListener("online", K);
|
|
1135
|
+
}), this._kvkkSlot = document.createElement("div"), this._kvkkSlot.className = "gengage-chat-kvkk-slot", this._kvkkSlot.dataset.gengagePart = "chat-kvkk-slot", I.appendChild(this._kvkkSlot), this.messagesEl = document.createElement("div"), this.messagesEl.id = Xe, 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), gt(this.messagesEl);
|
|
1136
|
+
const G = document.createElement("button");
|
|
1137
|
+
G.type = "button", G.className = "gengage-chat-former-messages-btn gds-chip", G.dataset.gengagePart = "chat-former-messages-button", G.textContent = this.i18n.showFormerMessagesButton, G.setAttribute("aria-label", this.i18n.showFormerMessagesButton), G.style.display = "none", G.addEventListener("click", () => {
|
|
1136
1138
|
this._options.presentation?.onReleasePresentationFocus?.();
|
|
1137
|
-
}), this.messagesEl.appendChild(
|
|
1139
|
+
}), this.messagesEl.appendChild(G), this._formerMessagesBtn = G;
|
|
1138
1140
|
const b = () => {
|
|
1139
1141
|
this._userInteractionUntil = Date.now() + 2e3;
|
|
1140
1142
|
};
|
|
1141
1143
|
let m = !1;
|
|
1142
|
-
const
|
|
1144
|
+
const k = () => this._options.presentation, x = () => {
|
|
1143
1145
|
m || (m = !0, requestAnimationFrame(() => {
|
|
1144
1146
|
m = !1;
|
|
1145
|
-
const { scrollTop:
|
|
1147
|
+
const { scrollTop: S, scrollHeight: W, clientHeight: J } = this.messagesEl, ae = W - S - J;
|
|
1146
1148
|
this._userScrolledUp = ae > 10;
|
|
1147
1149
|
const ie = this._presentationPinned ? ae < 96 : ae < 32, xe = Date.now(), _e = xe < this._programmaticScrollUntil, He = !ie && xe < this._userInteractionUntil, se = _e ? !1 : He;
|
|
1148
|
-
ie !== this._presentationPinned && (this._presentationPinned = ie,
|
|
1150
|
+
ie !== this._presentationPinned && (this._presentationPinned = ie, k()?.onPinnedToBottomChange?.(ie)), se !== this._presentationUserInteracting && (this._presentationUserInteracting = se, k()?.onUserInteractingChange?.(se));
|
|
1149
1151
|
}));
|
|
1150
1152
|
};
|
|
1151
|
-
this.messagesEl.addEventListener("scroll",
|
|
1152
|
-
this.messagesEl.removeEventListener("scroll",
|
|
1153
|
+
this.messagesEl.addEventListener("scroll", x, { passive: !0 }), this._cleanups.push(() => {
|
|
1154
|
+
this.messagesEl.removeEventListener("scroll", x);
|
|
1153
1155
|
});
|
|
1154
|
-
const
|
|
1155
|
-
b(),
|
|
1156
|
+
const P = (S) => {
|
|
1157
|
+
b(), S.deltaY < -6 && this._presentationFocusThreadId && this._options.presentation?.onFormerMessagesHint?.();
|
|
1156
1158
|
};
|
|
1157
|
-
this.messagesEl.addEventListener("wheel",
|
|
1158
|
-
const
|
|
1159
|
-
b(), this._touchStartY =
|
|
1160
|
-
},
|
|
1159
|
+
this.messagesEl.addEventListener("wheel", P, { passive: !0 }), this._cleanups.push(() => this.messagesEl.removeEventListener("wheel", P));
|
|
1160
|
+
const B = (S) => {
|
|
1161
|
+
b(), this._touchStartY = S.touches[0]?.clientY ?? null;
|
|
1162
|
+
}, A = (S) => {
|
|
1161
1163
|
b();
|
|
1162
|
-
const
|
|
1163
|
-
typeof
|
|
1164
|
+
const W = S.touches[0]?.clientY, J = this._touchStartY;
|
|
1165
|
+
typeof W == "number" && typeof J == "number" && W - J > 10 && this._presentationFocusThreadId && this._options.presentation?.onFormerMessagesHint?.();
|
|
1164
1166
|
};
|
|
1165
|
-
this.messagesEl.addEventListener("touchstart",
|
|
1166
|
-
this.messagesEl.removeEventListener("touchstart",
|
|
1167
|
-
}),
|
|
1167
|
+
this.messagesEl.addEventListener("touchstart", B, { passive: !0 }), this.messagesEl.addEventListener("touchmove", A, { passive: !0 }), this._cleanups.push(() => {
|
|
1168
|
+
this.messagesEl.removeEventListener("touchstart", B), this.messagesEl.removeEventListener("touchmove", A);
|
|
1169
|
+
}), I.appendChild(this.messagesEl), this._thumbnailsColumn = new Ja({ onThumbnailClick: (S) => e.onThumbnailClick?.(S) }), this._panelEl.appendChild(this._thumbnailsColumn.getElement()), this._panelFloatingEl = document.createElement("div"), this._panelFloatingEl.className = "gengage-chat-panel-float", this._panelFloatingEl.dataset.gengagePart = "chat-panel-floating-layer", this._panelEl.appendChild(this._panelFloatingEl), this._resetPanelAiZoneElement(), this._pillsEl = document.createElement("div"), this._pillsEl.className = "gengage-chat-pills", this._pillsEl.dataset.gengagePart = "chat-suggestion-pills", this._pillsEl.setAttribute("role", "toolbar"), this._pillsEl.setAttribute("aria-label", this.i18n.suggestionsAriaLabel), this._pillsEl.style.display = "none";
|
|
1168
1170
|
const z = document.createElement("div");
|
|
1169
1171
|
z.className = "gengage-chat-pills-scroll", z.dataset.gengagePart = "chat-suggestion-pills-scroll", this._pillsEl.appendChild(z);
|
|
1170
1172
|
const T = document.createElement("button");
|
|
@@ -1174,32 +1176,32 @@ var pn = class {
|
|
|
1174
1176
|
behavior: "smooth"
|
|
1175
1177
|
});
|
|
1176
1178
|
}), this._pillsEl.appendChild(T);
|
|
1177
|
-
let
|
|
1179
|
+
let q = !1;
|
|
1178
1180
|
const H = () => {
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
const
|
|
1182
|
-
T.style.display =
|
|
1181
|
+
q || (q = !0, requestAnimationFrame(() => {
|
|
1182
|
+
q = !1;
|
|
1183
|
+
const S = z.scrollLeft + z.clientWidth >= z.scrollWidth - 4;
|
|
1184
|
+
T.style.display = S ? "none" : "";
|
|
1183
1185
|
}));
|
|
1184
1186
|
};
|
|
1185
1187
|
z.addEventListener("scroll", H, { passive: !0 }), this._cleanups.push(() => {
|
|
1186
1188
|
z.removeEventListener("scroll", H);
|
|
1187
|
-
}),
|
|
1189
|
+
}), I.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", I.appendChild(this._inputChipsEl);
|
|
1188
1190
|
const $ = document.createElement("div");
|
|
1189
1191
|
$.className = "gengage-chat-input-area", $.dataset.gengagePart = "chat-input-area", this.inputEl = document.createElement("textarea"), this.inputEl.className = "gengage-chat-input", this.inputEl.dataset.gengagePart = "chat-input", this.inputEl.rows = 1, this.inputEl.placeholder = this.i18n.inputPlaceholder, this.inputEl.addEventListener("input", () => {
|
|
1190
1192
|
this._resizeRafId !== null && cancelAnimationFrame(this._resizeRafId), this._resizeRafId = requestAnimationFrame(() => {
|
|
1191
1193
|
this._resizeRafId = null, this.inputEl.style.height = "auto", this.inputEl.style.height = `${Math.min(this.inputEl.scrollHeight, 120)}px`;
|
|
1192
1194
|
}), this._updateSendEnabled();
|
|
1193
|
-
}), this.inputEl.addEventListener("keydown", (
|
|
1194
|
-
|
|
1195
|
-
}), this.inputEl.addEventListener("paste", (
|
|
1196
|
-
const
|
|
1197
|
-
if (!
|
|
1195
|
+
}), this.inputEl.addEventListener("keydown", (S) => {
|
|
1196
|
+
S.key === "Enter" && !S.isComposing && ((this._options.getMobileViewport?.() ?? window.innerWidth <= 768) || !S.shiftKey) && (S.preventDefault(), this._submit());
|
|
1197
|
+
}), this.inputEl.addEventListener("paste", (S) => {
|
|
1198
|
+
const W = S.clipboardData;
|
|
1199
|
+
if (!W) return;
|
|
1198
1200
|
let J = null;
|
|
1199
|
-
const ae =
|
|
1201
|
+
const ae = W.files?.[0];
|
|
1200
1202
|
if (ae && ae.type.startsWith("image/")) J = ae;
|
|
1201
|
-
else if (
|
|
1202
|
-
const xe =
|
|
1203
|
+
else if (W.items?.length) for (let ie = 0; ie < W.items.length; ie++) {
|
|
1204
|
+
const xe = W.items[ie];
|
|
1203
1205
|
if (xe?.kind === "file" && xe.type.startsWith("image/")) {
|
|
1204
1206
|
const _e = xe.getAsFile();
|
|
1205
1207
|
if (_e) {
|
|
@@ -1208,72 +1210,72 @@ var pn = class {
|
|
|
1208
1210
|
}
|
|
1209
1211
|
}
|
|
1210
1212
|
}
|
|
1211
|
-
J && (
|
|
1213
|
+
J && (S.preventDefault(), this._routeAttachmentFile(J));
|
|
1212
1214
|
}), 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", () => {
|
|
1213
|
-
const
|
|
1214
|
-
|
|
1215
|
+
const S = this._fileInput.files?.[0];
|
|
1216
|
+
S && this._routeAttachmentFile(S), this._fileInput.value = "";
|
|
1215
1217
|
});
|
|
1216
1218
|
const te = document.createElement("div");
|
|
1217
1219
|
te.className = "gengage-chat-attach-wrap", te.dataset.gengagePart = "chat-attach-wrap", this._attachWrapEl = te;
|
|
1218
|
-
const
|
|
1219
|
-
this._attachBtn =
|
|
1220
|
-
|
|
1220
|
+
const O = document.createElement("button");
|
|
1221
|
+
this._attachBtn = O, O.className = "gengage-chat-attach-btn gds-btn gds-btn-ghost", O.dataset.gengagePart = "chat-attach-button", O.type = "button", O.setAttribute("aria-label", this.i18n.attachImageButton), O.setAttribute("aria-haspopup", "menu"), O.setAttribute("aria-expanded", "false"), O.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>', O.addEventListener("click", (S) => {
|
|
1222
|
+
S.stopPropagation(), this._toggleAttachMenu();
|
|
1221
1223
|
});
|
|
1222
1224
|
const ee = document.createElement("div");
|
|
1223
1225
|
this._attachMenuEl = ee, ee.className = "gengage-chat-attach-menu gds-menu", ee.dataset.gengagePart = "chat-attach-menu", ee.setAttribute("role", "menu"), ee.setAttribute("hidden", "");
|
|
1224
1226
|
const oe = document.createElement("button");
|
|
1225
|
-
oe.type = "button", oe.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", oe.dataset.gengagePart = "chat-attach-menu-select-photo", oe.setAttribute("role", "menuitem"), oe.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>`, oe.addEventListener("click", (
|
|
1226
|
-
|
|
1227
|
+
oe.type = "button", oe.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", oe.dataset.gengagePart = "chat-attach-menu-select-photo", oe.setAttribute("role", "menuitem"), oe.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>`, oe.addEventListener("click", (S) => {
|
|
1228
|
+
S.stopPropagation(), this._closeAttachMenu(), this._fileInput.click();
|
|
1227
1229
|
});
|
|
1228
|
-
const
|
|
1229
|
-
|
|
1230
|
+
const V = document.createElement("div");
|
|
1231
|
+
V.className = "gengage-chat-attach-menu-sep", V.dataset.gengagePart = "chat-attach-menu-separator", V.setAttribute("aria-hidden", "true");
|
|
1230
1232
|
const F = document.createElement("button");
|
|
1231
|
-
F.type = "button", F.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", F.dataset.gengagePart = "chat-attach-menu-paste", F.setAttribute("role", "menuitem"), F.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>`, F.addEventListener("click", (
|
|
1232
|
-
|
|
1233
|
-
const
|
|
1234
|
-
this._pasteImageFromClipboardMenu(
|
|
1235
|
-
}), ee.appendChild(oe), ee.appendChild(
|
|
1233
|
+
F.type = "button", F.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", F.dataset.gengagePart = "chat-attach-menu-paste", F.setAttribute("role", "menuitem"), F.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>`, F.addEventListener("click", (S) => {
|
|
1234
|
+
S.stopPropagation();
|
|
1235
|
+
const W = typeof navigator.clipboard?.read == "function" ? navigator.clipboard.read() : void 0;
|
|
1236
|
+
this._pasteImageFromClipboardMenu(W);
|
|
1237
|
+
}), ee.appendChild(oe), ee.appendChild(V), ee.appendChild(F), te.appendChild(O), te.appendChild(ee), this._previewStrip = document.createElement("div"), this._previewStrip.className = "gengage-chat-attachment-preview gengage-chat-attachment-preview--hidden gds-card-soft", this._previewStrip.dataset.gengagePart = "chat-attachment-preview";
|
|
1236
1238
|
const R = document.createElement("img");
|
|
1237
1239
|
R.className = "gengage-chat-attachment-preview-thumb", R.dataset.gengagePart = "chat-attachment-preview-thumb", R.alt = "", this._previewName = document.createElement("span"), this._previewName.className = "gengage-chat-attachment-name", this._previewName.dataset.gengagePart = "chat-attachment-preview-name";
|
|
1238
1240
|
const X = document.createElement("button");
|
|
1239
1241
|
X.className = "gengage-chat-attachment-remove gds-btn gds-btn-ghost", X.dataset.gengagePart = "chat-attachment-preview-remove", X.type = "button", X.setAttribute("aria-label", this.i18n.removeAttachmentButton), X.textContent = "×", X.addEventListener("click", () => this.clearAttachment()), this._previewStrip.appendChild(R), this._previewStrip.appendChild(this._previewName), this._previewStrip.appendChild(X), 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", () => {
|
|
1240
1242
|
if (this._sendStopHandler) {
|
|
1241
|
-
const
|
|
1242
|
-
this.hideStopButton(),
|
|
1243
|
+
const S = this._sendStopHandler;
|
|
1244
|
+
this.hideStopButton(), S();
|
|
1243
1245
|
return;
|
|
1244
1246
|
}
|
|
1245
1247
|
this._submit();
|
|
1246
|
-
}), $.addEventListener("dragover", (
|
|
1247
|
-
|
|
1248
|
+
}), $.addEventListener("dragover", (S) => {
|
|
1249
|
+
S.preventDefault(), $.classList.add("gengage-chat-input-area--dragover");
|
|
1248
1250
|
}), $.addEventListener("dragleave", () => {
|
|
1249
1251
|
$.classList.remove("gengage-chat-input-area--dragover");
|
|
1250
|
-
}), $.addEventListener("drop", (
|
|
1251
|
-
|
|
1252
|
-
const
|
|
1253
|
-
|
|
1252
|
+
}), $.addEventListener("drop", (S) => {
|
|
1253
|
+
S.preventDefault(), $.classList.remove("gengage-chat-input-area--dragover");
|
|
1254
|
+
const W = S.dataTransfer?.files[0];
|
|
1255
|
+
W && this._routeAttachmentFile(W);
|
|
1254
1256
|
});
|
|
1255
1257
|
const D = document.createElement("div");
|
|
1256
1258
|
D.className = "gengage-chat-input-pill gds-input-shell", D.dataset.gengagePart = "chat-input-shell", D.appendChild(te), D.appendChild(this.inputEl), this._voiceEnabled && Ya() && (this._micBtn = document.createElement("button"), this._micBtn.className = "gengage-chat-mic-btn gds-btn gds-btn-ghost", this._micBtn.dataset.gengagePart = "chat-mic-button", this._micBtn.type = "button", this._micBtn.setAttribute("aria-label", this.i18n.voiceButton), this._micBtn.innerHTML = '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/><line x1="8" y1="23" x2="16" y2="23"/></svg>', this._micBtn.addEventListener("click", () => this._toggleVoice()), D.appendChild(this._micBtn), this._voiceInput = new Ka({
|
|
1257
|
-
onInterim: (
|
|
1258
|
-
this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this.inputEl.value =
|
|
1259
|
+
onInterim: (S) => {
|
|
1260
|
+
this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this.inputEl.value = S, this.inputEl.style.height = "auto", this.inputEl.style.height = `${Math.min(this.inputEl.scrollHeight, 120)}px`;
|
|
1259
1261
|
},
|
|
1260
|
-
onFinal: (
|
|
1261
|
-
this.inputEl.value =
|
|
1262
|
+
onFinal: (S) => {
|
|
1263
|
+
this.inputEl.value = S;
|
|
1262
1264
|
},
|
|
1263
|
-
onAutoSubmit: (
|
|
1264
|
-
this.inputEl.value =
|
|
1265
|
+
onAutoSubmit: (S) => {
|
|
1266
|
+
this.inputEl.value = S, this._micBtn?.classList.remove("gengage-chat-mic-btn--active"), this._submit();
|
|
1265
1267
|
},
|
|
1266
|
-
onStateChange: (
|
|
1267
|
-
|
|
1268
|
+
onStateChange: (S) => {
|
|
1269
|
+
S === "listening" ? this._micBtn?.classList.add("gengage-chat-mic-btn--active") : this._micBtn?.classList.remove("gengage-chat-mic-btn--active");
|
|
1268
1270
|
},
|
|
1269
|
-
onError: (
|
|
1271
|
+
onError: (S, W) => {
|
|
1270
1272
|
this._micBtn?.classList.remove("gengage-chat-mic-btn--active");
|
|
1271
1273
|
}
|
|
1272
|
-
}, { lang: this._voiceLang })), D.appendChild(this.sendBtn), $.appendChild(this._previewStrip), $.appendChild(this._fileInput), $.appendChild(D),
|
|
1274
|
+
}, { lang: this._voiceLang })), D.appendChild(this.sendBtn), $.appendChild(this._previewStrip), $.appendChild(this._fileInput), $.appendChild(D), I.appendChild($), u.appendChild(I), this._comparisonDockSlotEl = document.createElement("div"), this._comparisonDockSlotEl.className = "gengage-chat-comparison-dock-slot", this._comparisonDockSlotEl.dataset.gengagePart = "comparison-dock-slot", u.appendChild(this._comparisonDockSlotEl), this.root.appendChild(u), this._setupHorizontalSwipe(I), this._setupHorizontalSwipe(this._panelEl);
|
|
1273
1275
|
const Q = document.createElement("div");
|
|
1274
1276
|
Q.className = "gengage-chat-footer", Q.dataset.gengagePart = "chat-footer", Q.textContent = this.i18n.poweredBy, this.root.appendChild(Q);
|
|
1275
|
-
const Re = (
|
|
1276
|
-
|
|
1277
|
+
const Re = (S) => {
|
|
1278
|
+
S.key === "Escape" && e.onClose();
|
|
1277
1279
|
};
|
|
1278
1280
|
this.root.addEventListener("keydown", Re), this._cleanups.push(() => this.root.removeEventListener("keydown", Re)), t.appendChild(this.root);
|
|
1279
1281
|
}
|
|
@@ -1587,9 +1589,9 @@ var pn = class {
|
|
|
1587
1589
|
c.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-img", c.setAttribute("aria-hidden", "true");
|
|
1588
1590
|
const d = document.createElement("div");
|
|
1589
1591
|
d.className = "gengage-chat-comparison-recommended-info";
|
|
1590
|
-
for (let
|
|
1591
|
-
const
|
|
1592
|
-
|
|
1592
|
+
for (let I = 0; I < 2; I++) {
|
|
1593
|
+
const N = document.createElement("div");
|
|
1594
|
+
N.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-title", I === 1 && N.classList.add("gengage-chat-comparison-skeleton-rec-title--short"), d.appendChild(N);
|
|
1593
1595
|
}
|
|
1594
1596
|
const s = document.createElement("div");
|
|
1595
1597
|
s.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-rec-price", d.appendChild(s), g.appendChild(c), g.appendChild(d), o.appendChild(g);
|
|
@@ -1599,53 +1601,53 @@ var pn = class {
|
|
|
1599
1601
|
h.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-label", p.appendChild(h);
|
|
1600
1602
|
const v = document.createElement("ul");
|
|
1601
1603
|
v.className = "gengage-chat-comparison-skeleton-hl-list";
|
|
1602
|
-
for (let
|
|
1603
|
-
const
|
|
1604
|
-
|
|
1604
|
+
for (let I = 0; I < 3; I++) {
|
|
1605
|
+
const N = document.createElement("li"), j = document.createElement("div");
|
|
1606
|
+
j.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-hl-line", I === 1 && j.classList.add("gengage-chat-comparison-skeleton-hl-line--medium"), I === 2 && j.classList.add("gengage-chat-comparison-skeleton-hl-line--short"), N.appendChild(j), v.appendChild(N);
|
|
1605
1607
|
}
|
|
1606
1608
|
p.appendChild(v), o.appendChild(p), r.appendChild(o);
|
|
1607
1609
|
const u = document.createElement("div");
|
|
1608
1610
|
u.className = "gengage-chat-comparison-key-differences";
|
|
1609
1611
|
const f = document.createElement("div");
|
|
1610
1612
|
f.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-heading", u.appendChild(f);
|
|
1611
|
-
const
|
|
1612
|
-
|
|
1613
|
-
for (let
|
|
1614
|
-
const
|
|
1615
|
-
|
|
1613
|
+
const y = document.createElement("div");
|
|
1614
|
+
y.className = "gengage-chat-comparison-key-differences-content";
|
|
1615
|
+
for (let I = 0; I < 4; I++) {
|
|
1616
|
+
const N = document.createElement("div");
|
|
1617
|
+
N.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-kd-line", y.appendChild(N);
|
|
1616
1618
|
}
|
|
1617
|
-
u.appendChild(
|
|
1618
|
-
const
|
|
1619
|
-
|
|
1620
|
-
const
|
|
1621
|
-
|
|
1619
|
+
u.appendChild(y), r.appendChild(u);
|
|
1620
|
+
const M = document.createElement("div");
|
|
1621
|
+
M.className = "gengage-chat-comparison-special gengage-chat-comparison-special--skeleton";
|
|
1622
|
+
const _ = document.createElement("div");
|
|
1623
|
+
_.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-special-line", M.appendChild(_), r.appendChild(M);
|
|
1622
1624
|
const E = document.createElement("div");
|
|
1623
1625
|
E.className = "gengage-chat-comparison-skeleton-table-wrap";
|
|
1624
|
-
const
|
|
1625
|
-
|
|
1626
|
-
const
|
|
1627
|
-
|
|
1628
|
-
for (let
|
|
1629
|
-
const
|
|
1630
|
-
|
|
1631
|
-
const
|
|
1632
|
-
|
|
1633
|
-
const Z = document.createElement("div");
|
|
1634
|
-
Z.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";
|
|
1626
|
+
const C = document.createElement("div");
|
|
1627
|
+
C.className = "gengage-chat-comparison-skeleton-table-head";
|
|
1628
|
+
const L = document.createElement("div");
|
|
1629
|
+
L.className = "gengage-chat-comparison-skeleton-table-corner", C.appendChild(L);
|
|
1630
|
+
for (let I = 0; I < 3; I++) {
|
|
1631
|
+
const N = document.createElement("div");
|
|
1632
|
+
N.className = "gengage-chat-comparison-skeleton-table-col";
|
|
1633
|
+
const j = document.createElement("div");
|
|
1634
|
+
j.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-img";
|
|
1635
1635
|
const K = document.createElement("div");
|
|
1636
|
-
K.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-
|
|
1636
|
+
K.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-name";
|
|
1637
|
+
const G = document.createElement("div");
|
|
1638
|
+
G.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-th-price", N.appendChild(j), N.appendChild(K), N.appendChild(G), C.appendChild(N);
|
|
1637
1639
|
}
|
|
1638
|
-
E.appendChild(
|
|
1639
|
-
for (let
|
|
1640
|
-
const
|
|
1641
|
-
|
|
1642
|
-
const
|
|
1643
|
-
|
|
1644
|
-
for (let
|
|
1645
|
-
const
|
|
1646
|
-
|
|
1640
|
+
E.appendChild(C);
|
|
1641
|
+
for (let I = 0; I < 3; I++) {
|
|
1642
|
+
const N = document.createElement("div");
|
|
1643
|
+
N.className = "gengage-chat-comparison-skeleton-table-row";
|
|
1644
|
+
const j = document.createElement("div");
|
|
1645
|
+
j.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-label", N.appendChild(j);
|
|
1646
|
+
for (let K = 0; K < 3; K++) {
|
|
1647
|
+
const G = document.createElement("div");
|
|
1648
|
+
G.className = "gengage-chat-comparison-skeleton-shimmer gengage-chat-comparison-skeleton-table-cell", N.appendChild(G);
|
|
1647
1649
|
}
|
|
1648
|
-
E.appendChild(
|
|
1650
|
+
E.appendChild(N);
|
|
1649
1651
|
}
|
|
1650
1652
|
r.appendChild(E), e.appendChild(r);
|
|
1651
1653
|
break;
|
|
@@ -2167,7 +2169,7 @@ var Sn = /* @__PURE__ */ new Set([
|
|
|
2167
2169
|
"audio/aac",
|
|
2168
2170
|
"audio/mp4"
|
|
2169
2171
|
]), Ht = /* @__PURE__ */ new Set();
|
|
2170
|
-
function
|
|
2172
|
+
function Ge(t) {
|
|
2171
2173
|
t.pause(), t.removeAttribute("src"), t.load(), Ht.delete(t);
|
|
2172
2174
|
}
|
|
2173
2175
|
function En(t, e = "audio/ogg") {
|
|
@@ -2175,9 +2177,9 @@ function En(t, e = "audio/ogg") {
|
|
|
2175
2177
|
if (!Sn.has(a)) return null;
|
|
2176
2178
|
try {
|
|
2177
2179
|
const n = new Audio(`data:${e};base64,${t}`);
|
|
2178
|
-
return Ht.add(n), n.addEventListener("ended", () =>
|
|
2179
|
-
|
|
2180
|
-
}), { stop: () =>
|
|
2180
|
+
return Ht.add(n), n.addEventListener("ended", () => Ge(n), { once: !0 }), n.play().catch(() => {
|
|
2181
|
+
Ge(n);
|
|
2182
|
+
}), { stop: () => Ge(n) };
|
|
2181
2183
|
} catch {
|
|
2182
2184
|
return null;
|
|
2183
2185
|
}
|
|
@@ -2243,13 +2245,13 @@ function In(t) {
|
|
|
2243
2245
|
s.className = "gengage-chat-comparison-recommended-body", s.classList.add("gds-clickable"), s.tabIndex = 0, s.setAttribute("role", "button"), s.setAttribute("aria-label", e.name);
|
|
2244
2246
|
const p = document.createElement("div");
|
|
2245
2247
|
if (p.className = "gengage-chat-comparison-recommended-media", e.imageUrl && be(e.imageUrl)) {
|
|
2246
|
-
const
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
}, { once: !0 }), p.appendChild(
|
|
2248
|
+
const y = document.createElement("img");
|
|
2249
|
+
y.src = e.imageUrl, y.alt = e.name, y.loading = "lazy", y.addEventListener("error", () => {
|
|
2250
|
+
y.style.display = "none";
|
|
2251
|
+
}, { once: !0 }), p.appendChild(y);
|
|
2250
2252
|
} else {
|
|
2251
|
-
const
|
|
2252
|
-
|
|
2253
|
+
const y = document.createElement("div");
|
|
2254
|
+
y.className = "gengage-chat-comparison-recommended-placeholder", y.setAttribute("aria-hidden", "true"), p.appendChild(y);
|
|
2253
2255
|
}
|
|
2254
2256
|
s.appendChild(p);
|
|
2255
2257
|
const h = document.createElement("div");
|
|
@@ -2258,12 +2260,12 @@ function In(t) {
|
|
|
2258
2260
|
v.className = "gengage-chat-comparison-recommended-title", v.textContent = e.name, h.appendChild(v);
|
|
2259
2261
|
const u = document.createElement("div");
|
|
2260
2262
|
if (u.className = "gengage-chat-comparison-recommended-meta", Ln(e.rating) && u.appendChild(Tn(e.rating)), ht(e.price)) {
|
|
2261
|
-
const
|
|
2262
|
-
|
|
2263
|
+
const y = document.createElement("div");
|
|
2264
|
+
y.className = "gengage-chat-comparison-recommended-price", y.textContent = Y(e.price, t.pricing), u.appendChild(y);
|
|
2263
2265
|
}
|
|
2264
2266
|
if (u.childElementCount > 0 && h.appendChild(u), t.recommendedText) {
|
|
2265
|
-
const
|
|
2266
|
-
|
|
2267
|
+
const y = document.createElement("p");
|
|
2268
|
+
y.className = "gengage-chat-comparison-recommended-text", y.innerHTML = ue(t.recommendedText), h.appendChild(y);
|
|
2267
2269
|
}
|
|
2268
2270
|
s.appendChild(h);
|
|
2269
2271
|
const f = () => {
|
|
@@ -2272,19 +2274,19 @@ function In(t) {
|
|
|
2272
2274
|
name: e.name
|
|
2273
2275
|
});
|
|
2274
2276
|
};
|
|
2275
|
-
if (s.addEventListener("click", f), s.addEventListener("keydown", (
|
|
2276
|
-
|
|
2277
|
+
if (s.addEventListener("click", f), s.addEventListener("keydown", (y) => {
|
|
2278
|
+
y.key !== "Enter" && y.key !== " " || (y.preventDefault(), f());
|
|
2277
2279
|
}), c.appendChild(s), i.length > 0) {
|
|
2278
|
-
const
|
|
2279
|
-
|
|
2280
|
-
const
|
|
2281
|
-
|
|
2282
|
-
const
|
|
2280
|
+
const y = document.createElement("div");
|
|
2281
|
+
y.className = "gengage-chat-comparison-highlights", y.dataset.gengagePart = "comparison-highlights";
|
|
2282
|
+
const M = document.createElement("div");
|
|
2283
|
+
M.className = "gengage-chat-comparison-highlights-label", M.textContent = l?.highlightsLabel ?? "Key Highlights", y.appendChild(M);
|
|
2284
|
+
const _ = document.createElement("ul");
|
|
2283
2285
|
for (const E of i) {
|
|
2284
|
-
const
|
|
2285
|
-
|
|
2286
|
+
const C = document.createElement("li");
|
|
2287
|
+
C.textContent = E, _.appendChild(C);
|
|
2286
2288
|
}
|
|
2287
|
-
|
|
2289
|
+
y.appendChild(_), c.appendChild(y);
|
|
2288
2290
|
}
|
|
2289
2291
|
g.appendChild(c);
|
|
2290
2292
|
}
|
|
@@ -2317,40 +2319,40 @@ function In(t) {
|
|
|
2317
2319
|
for (const u of a) {
|
|
2318
2320
|
const f = document.createElement("th");
|
|
2319
2321
|
u.sku === e?.sku && (f.className = "gengage-chat-comparison-selected gds-comparison-table-winner-cell");
|
|
2320
|
-
const
|
|
2321
|
-
|
|
2322
|
-
const
|
|
2322
|
+
const y = document.createElement("div");
|
|
2323
|
+
y.className = "gengage-chat-comparison-table-header-cell gengage-chat-comparison-table-header-cell--clickable gds-clickable", y.tabIndex = 0, y.setAttribute("role", "button"), y.setAttribute("aria-label", u.name), y.title = u.name;
|
|
2324
|
+
const M = () => {
|
|
2323
2325
|
o({
|
|
2324
2326
|
sku: u.sku,
|
|
2325
2327
|
name: u.name
|
|
2326
2328
|
});
|
|
2327
2329
|
};
|
|
2328
|
-
if (
|
|
2329
|
-
E.key !== "Enter" && E.key !== " " || (E.preventDefault(),
|
|
2330
|
+
if (y.addEventListener("click", M), y.addEventListener("keydown", (E) => {
|
|
2331
|
+
E.key !== "Enter" && E.key !== " " || (E.preventDefault(), M());
|
|
2330
2332
|
}), u.imageUrl && be(u.imageUrl)) {
|
|
2331
2333
|
const E = document.createElement("img");
|
|
2332
2334
|
E.src = u.imageUrl, E.alt = u.name, E.loading = "lazy", E.addEventListener("error", () => {
|
|
2333
2335
|
E.style.display = "none";
|
|
2334
|
-
}, { once: !0 }),
|
|
2336
|
+
}, { once: !0 }), y.appendChild(E);
|
|
2335
2337
|
} else {
|
|
2336
2338
|
const E = document.createElement("div");
|
|
2337
|
-
E.className = "gengage-chat-comparison-table-header-img-placeholder", E.setAttribute("aria-hidden", "true"),
|
|
2339
|
+
E.className = "gengage-chat-comparison-table-header-img-placeholder", E.setAttribute("aria-hidden", "true"), y.appendChild(E);
|
|
2338
2340
|
}
|
|
2339
|
-
const
|
|
2340
|
-
if (
|
|
2341
|
+
const _ = document.createElement("div");
|
|
2342
|
+
if (_.className = "gengage-chat-comparison-table-product-name", _.textContent = u.name, y.appendChild(_), ht(u.price)) {
|
|
2341
2343
|
const E = document.createElement("div");
|
|
2342
|
-
E.className = "gengage-chat-comparison-table-price", E.textContent =
|
|
2344
|
+
E.className = "gengage-chat-comparison-table-price", E.textContent = Y(u.price, t.pricing), y.appendChild(E);
|
|
2343
2345
|
}
|
|
2344
|
-
f.appendChild(
|
|
2346
|
+
f.appendChild(y), s.appendChild(f);
|
|
2345
2347
|
}
|
|
2346
2348
|
d.appendChild(s), c.appendChild(d);
|
|
2347
2349
|
const h = document.createElement("tbody");
|
|
2348
2350
|
for (const u of n) {
|
|
2349
|
-
const f = document.createElement("tr"),
|
|
2350
|
-
|
|
2351
|
-
for (let
|
|
2352
|
-
const
|
|
2353
|
-
a[
|
|
2351
|
+
const f = document.createElement("tr"), y = document.createElement("td");
|
|
2352
|
+
y.className = "gengage-chat-comparison-label", y.textContent = An(u.label, l?.criteriaLabels), f.appendChild(y);
|
|
2353
|
+
for (let M = 0; M < u.values.length; M++) {
|
|
2354
|
+
const _ = document.createElement("td");
|
|
2355
|
+
a[M]?.sku === e?.sku && (_.className = "gengage-chat-comparison-selected gds-comparison-table-winner-cell"), _.textContent = u.values[M] ?? "", f.appendChild(_);
|
|
2354
2356
|
}
|
|
2355
2357
|
h.appendChild(f);
|
|
2356
2358
|
}
|
|
@@ -2400,11 +2402,11 @@ function Me(t, e = 18) {
|
|
|
2400
2402
|
}
|
|
2401
2403
|
return n;
|
|
2402
2404
|
}
|
|
2403
|
-
var
|
|
2405
|
+
var We = "General", ut = 220, zn = 6;
|
|
2404
2406
|
function Rn(t) {
|
|
2405
|
-
if (typeof t != "string") return [
|
|
2407
|
+
if (typeof t != "string") return [We];
|
|
2406
2408
|
const e = t.split(/[,;|/]+/).map((a) => a.trim().replace(/\s+/g, " ")).filter((a) => a.length > 0);
|
|
2407
|
-
return e.length === 0 ? [
|
|
2409
|
+
return e.length === 0 ? [We] : Array.from(new Set(e.map((a) => a.toLocaleLowerCase()))).map((a) => e.find((n) => n.toLocaleLowerCase() === a) ?? We);
|
|
2408
2410
|
}
|
|
2409
2411
|
function Hn(t) {
|
|
2410
2412
|
return t === "positive" || t === "negative" || t === "neutral" ? t : "neutral";
|
|
@@ -2433,24 +2435,24 @@ function On(t, e) {
|
|
|
2433
2435
|
}
|
|
2434
2436
|
const i = n.filter((u) => u !== null && typeof u == "object"), r = /* @__PURE__ */ new Map();
|
|
2435
2437
|
for (const u of i) {
|
|
2436
|
-
const f = Hn(u.review_class),
|
|
2437
|
-
for (const
|
|
2438
|
-
const E =
|
|
2439
|
-
let
|
|
2440
|
-
if (
|
|
2438
|
+
const f = Hn(u.review_class), y = Fn(u.review_text), M = Rn(u.review_tag);
|
|
2439
|
+
for (const _ of M) {
|
|
2440
|
+
const E = _.toLocaleLowerCase();
|
|
2441
|
+
let C = r.get(E);
|
|
2442
|
+
if (C || (C = {
|
|
2441
2443
|
key: E,
|
|
2442
|
-
label:
|
|
2444
|
+
label: _,
|
|
2443
2445
|
mentions: 0,
|
|
2444
2446
|
positive: 0,
|
|
2445
2447
|
negative: 0,
|
|
2446
2448
|
neutral: 0,
|
|
2447
2449
|
snippets: []
|
|
2448
|
-
}, r.set(E,
|
|
2449
|
-
const
|
|
2450
|
-
text:
|
|
2450
|
+
}, r.set(E, C)), C.mentions += 1, f === "positive" ? C.positive += 1 : f === "negative" ? C.negative += 1 : C.neutral += 1, y.length > 0 && C.snippets.length < zn && !C.snippets.some((L) => L.text === y)) {
|
|
2451
|
+
const L = {
|
|
2452
|
+
text: y,
|
|
2451
2453
|
tone: f
|
|
2452
2454
|
};
|
|
2453
|
-
u.review_rating !== void 0 && String(u.review_rating).length > 0 && (
|
|
2455
|
+
u.review_rating !== void 0 && String(u.review_rating).length > 0 && (L.rating = u.review_rating), C.snippets.push(L);
|
|
2454
2456
|
}
|
|
2455
2457
|
}
|
|
2456
2458
|
}
|
|
@@ -2469,33 +2471,33 @@ function On(t, e) {
|
|
|
2469
2471
|
const h = () => {
|
|
2470
2472
|
for (; p.firstChild; ) p.removeChild(p.firstChild);
|
|
2471
2473
|
if (!d) return;
|
|
2472
|
-
const u = o.find((
|
|
2474
|
+
const u = o.find((_) => _.key === d);
|
|
2473
2475
|
if (!u) return;
|
|
2474
2476
|
const f = document.createElement("div");
|
|
2475
2477
|
f.className = "gengage-chat-review-detail-meta";
|
|
2476
|
-
const
|
|
2477
|
-
if (
|
|
2478
|
-
const
|
|
2479
|
-
|
|
2478
|
+
const y = document.createElement("span");
|
|
2479
|
+
if (y.className = "gengage-chat-review-detail-mentions", y.textContent = `${jn(u.mentions, e?.reviewCustomersMentionSingular, e?.reviewCustomersMentionPlural)} "${u.label}"`, f.appendChild(y), u.positive > 0) {
|
|
2480
|
+
const _ = document.createElement("span");
|
|
2481
|
+
_.className = "gengage-chat-review-detail-positive", _.textContent = `${u.positive} ${l}`, f.appendChild(_);
|
|
2480
2482
|
}
|
|
2481
2483
|
if (u.negative > 0) {
|
|
2482
|
-
const
|
|
2483
|
-
|
|
2484
|
+
const _ = document.createElement("span");
|
|
2485
|
+
_.className = "gengage-chat-review-detail-negative", _.textContent = `${u.negative} ${g}`, f.appendChild(_);
|
|
2484
2486
|
}
|
|
2485
2487
|
p.appendChild(f);
|
|
2486
|
-
const
|
|
2487
|
-
|
|
2488
|
-
for (const
|
|
2488
|
+
const M = document.createElement("div");
|
|
2489
|
+
M.className = "gengage-chat-review-snippets";
|
|
2490
|
+
for (const _ of u.snippets) {
|
|
2489
2491
|
const E = document.createElement("article");
|
|
2490
|
-
E.className = "gengage-chat-review-snippet", E.dataset.tone =
|
|
2491
|
-
const
|
|
2492
|
-
if (
|
|
2493
|
-
const
|
|
2494
|
-
|
|
2492
|
+
E.className = "gengage-chat-review-snippet", E.dataset.tone = _.tone;
|
|
2493
|
+
const C = document.createElement("div");
|
|
2494
|
+
if (C.className = "gengage-chat-review-snippet-text", C.textContent = `"${_.text}"`, E.appendChild(C), _.rating !== void 0 && String(_.rating).length > 0) {
|
|
2495
|
+
const L = document.createElement("div");
|
|
2496
|
+
L.className = "gengage-chat-review-snippet-rating", L.textContent = `★ ${String(_.rating)}`, E.appendChild(L);
|
|
2495
2497
|
}
|
|
2496
|
-
|
|
2498
|
+
M.appendChild(E);
|
|
2497
2499
|
}
|
|
2498
|
-
p.appendChild(
|
|
2500
|
+
p.appendChild(M);
|
|
2499
2501
|
}, v = () => {
|
|
2500
2502
|
for (const u of s.querySelectorAll(".gengage-chat-review-subject")) {
|
|
2501
2503
|
const f = u.dataset.subjectKey === d;
|
|
@@ -2503,16 +2505,16 @@ function On(t, e) {
|
|
|
2503
2505
|
}
|
|
2504
2506
|
};
|
|
2505
2507
|
for (const u of o) {
|
|
2506
|
-
const f = Dn(u),
|
|
2507
|
-
|
|
2508
|
-
const
|
|
2509
|
-
|
|
2510
|
-
const
|
|
2511
|
-
|
|
2508
|
+
const f = Dn(u), y = document.createElement("button");
|
|
2509
|
+
y.type = "button", y.className = "gengage-chat-review-subject gds-chip", y.dataset.subjectKey = u.key, y.dataset.tone = f;
|
|
2510
|
+
const M = document.createElement("span");
|
|
2511
|
+
M.className = "gengage-chat-review-subject-icon", M.appendChild(Un(f)), y.appendChild(M);
|
|
2512
|
+
const _ = document.createElement("span");
|
|
2513
|
+
_.className = "gengage-chat-review-subject-label", _.textContent = u.label, y.appendChild(_);
|
|
2512
2514
|
const E = document.createElement("span");
|
|
2513
|
-
E.className = "gengage-chat-review-subject-count", E.textContent = `(${u.mentions})`,
|
|
2515
|
+
E.className = "gengage-chat-review-subject-count", E.textContent = `(${u.mentions})`, y.appendChild(E), y.addEventListener("click", () => {
|
|
2514
2516
|
d = u.key, v(), h();
|
|
2515
|
-
}), s.appendChild(
|
|
2517
|
+
}), s.appendChild(y);
|
|
2516
2518
|
}
|
|
2517
2519
|
return a.appendChild(s), v(), h(), a.appendChild(p), a;
|
|
2518
2520
|
}
|
|
@@ -2533,11 +2535,11 @@ function ze(t, e) {
|
|
|
2533
2535
|
const n = t.productPriceUi?.originalPriceStyle;
|
|
2534
2536
|
return n === "inline" || n === "strikethrough" ? n : "strikethrough";
|
|
2535
2537
|
}
|
|
2536
|
-
function
|
|
2538
|
+
function qe(t) {
|
|
2537
2539
|
const e = document.createElement("div");
|
|
2538
2540
|
return e.className = "gengage-chat-campaign-reason", e.textContent = t, e;
|
|
2539
2541
|
}
|
|
2540
|
-
function
|
|
2542
|
+
function Ve(t, e) {
|
|
2541
2543
|
for (const n of [
|
|
2542
2544
|
"campaignReasonLogoUrl",
|
|
2543
2545
|
"campaign_reason_logo_url",
|
|
@@ -2556,7 +2558,7 @@ function $e(t, e) {
|
|
|
2556
2558
|
if (be(n)) return n;
|
|
2557
2559
|
}
|
|
2558
2560
|
}
|
|
2559
|
-
function
|
|
2561
|
+
function $e(t) {
|
|
2560
2562
|
const e = document.createElement("div");
|
|
2561
2563
|
if (e.className = "gengage-chat-campaign-price-badge", e.dataset.gengagePart = "campaign-price-badge", t.logoUrl) {
|
|
2562
2564
|
const r = document.createElement("div");
|
|
@@ -2635,11 +2637,11 @@ function Gn(t, e, a, n, i) {
|
|
|
2635
2637
|
function Wn(t, e, a) {
|
|
2636
2638
|
const n = t.price, i = t.originalPrice;
|
|
2637
2639
|
if (!n) return;
|
|
2638
|
-
const r = Te(a, t), o = ze(a, t), l = !!(i && i !== n), g = !!(r && l), c =
|
|
2640
|
+
const r = Te(a, t), o = ze(a, t), l = !!(i && i !== n), g = !!(r && l), c = Ve(a, t), d = document.createElement("div");
|
|
2639
2641
|
if (d.className = "gengage-chat-ai-toppick-price", d.dataset.gengagePart = "ai-top-pick-price", g) {
|
|
2640
|
-
const s =
|
|
2642
|
+
const s = $e({
|
|
2641
2643
|
reasonText: r,
|
|
2642
|
-
salePriceFormatted:
|
|
2644
|
+
salePriceFormatted: Y(n, a.pricing),
|
|
2643
2645
|
...c !== void 0 ? { logoUrl: c } : {}
|
|
2644
2646
|
});
|
|
2645
2647
|
if (l && o === "inline") {
|
|
@@ -2647,10 +2649,10 @@ function Wn(t, e, a) {
|
|
|
2647
2649
|
const p = document.createElement("span");
|
|
2648
2650
|
p.className = "gengage-chat-ai-toppick-price-sep", p.setAttribute("aria-hidden", "true");
|
|
2649
2651
|
const h = document.createElement("span");
|
|
2650
|
-
h.className = "gengage-chat-ai-toppick-original-price", h.textContent =
|
|
2652
|
+
h.className = "gengage-chat-ai-toppick-original-price", h.textContent = Y(i, a.pricing), d.appendChild(p), d.appendChild(h);
|
|
2651
2653
|
} else {
|
|
2652
2654
|
const p = document.createElement("span");
|
|
2653
|
-
p.className = "gengage-chat-ai-toppick-original-price", p.textContent =
|
|
2655
|
+
p.className = "gengage-chat-ai-toppick-original-price", p.textContent = Y(i, a.pricing), d.appendChild(p), d.appendChild(document.createTextNode(" ")), d.appendChild(s);
|
|
2654
2656
|
}
|
|
2655
2657
|
e.appendChild(d);
|
|
2656
2658
|
return;
|
|
@@ -2658,23 +2660,23 @@ function Wn(t, e, a) {
|
|
|
2658
2660
|
if (l && o === "inline") {
|
|
2659
2661
|
d.classList.add("gengage-chat-ai-toppick-price--inline");
|
|
2660
2662
|
const s = document.createElement("span");
|
|
2661
|
-
s.className = "gengage-chat-ai-toppick-price-current", s.textContent =
|
|
2663
|
+
s.className = "gengage-chat-ai-toppick-price-current", s.textContent = Y(n, a.pricing);
|
|
2662
2664
|
const p = document.createElement("span");
|
|
2663
2665
|
p.className = "gengage-chat-ai-toppick-price-sep", p.setAttribute("aria-hidden", "true");
|
|
2664
2666
|
const h = document.createElement("span");
|
|
2665
|
-
h.className = "gengage-chat-ai-toppick-original-price", h.textContent =
|
|
2667
|
+
h.className = "gengage-chat-ai-toppick-original-price", h.textContent = Y(i, a.pricing), d.appendChild(s), d.appendChild(p), d.appendChild(h);
|
|
2666
2668
|
} else if (l) {
|
|
2667
2669
|
const s = document.createElement("span");
|
|
2668
|
-
s.className = "gengage-chat-ai-toppick-original-price", s.textContent =
|
|
2670
|
+
s.className = "gengage-chat-ai-toppick-original-price", s.textContent = Y(i, a.pricing), d.appendChild(s), d.appendChild(document.createTextNode(" "));
|
|
2669
2671
|
const p = document.createElement("span");
|
|
2670
|
-
p.className = "gengage-chat-ai-toppick-price-current", p.textContent =
|
|
2672
|
+
p.className = "gengage-chat-ai-toppick-price-current", p.textContent = Y(n, a.pricing), d.appendChild(p);
|
|
2671
2673
|
} else {
|
|
2672
2674
|
const s = document.createElement("span");
|
|
2673
|
-
s.className = "gengage-chat-ai-toppick-price-current", s.textContent =
|
|
2675
|
+
s.className = "gengage-chat-ai-toppick-price-current", s.textContent = Y(n, a.pricing), d.appendChild(s);
|
|
2674
2676
|
}
|
|
2675
2677
|
if (r) {
|
|
2676
2678
|
const s = document.createElement("div");
|
|
2677
|
-
s.className = "gengage-chat-ai-toppick-price-stack", s.appendChild(
|
|
2679
|
+
s.className = "gengage-chat-ai-toppick-price-stack", s.appendChild(qe(r)), s.appendChild(d), e.appendChild(s);
|
|
2678
2680
|
} else e.appendChild(d);
|
|
2679
2681
|
}
|
|
2680
2682
|
function Yn(t, e) {
|
|
@@ -2694,50 +2696,50 @@ function bt(t, e, a) {
|
|
|
2694
2696
|
const n = document.createElement("div");
|
|
2695
2697
|
n.className = a ? "gengage-chat-ai-toppick-card gengage-chat-ai-toppick-card--winner gds-card" : "gengage-chat-ai-toppick-card gengage-chat-ai-toppick-card--compact gds-card", n.dataset.gengagePart = a ? "ai-top-pick-card-winner" : "ai-top-pick-card";
|
|
2696
2698
|
const i = t.product, r = Ft(t), o = i.url ?? "", l = i.cartCode, g = i.inStock, c = !!(r && l && g !== !1), d = t.action;
|
|
2697
|
-
r && e.onProductClick ? (n.classList.add("gds-clickable"), n.addEventListener("click", (
|
|
2698
|
-
|
|
2699
|
+
r && e.onProductClick ? (n.classList.add("gds-clickable"), n.addEventListener("click", (C) => {
|
|
2700
|
+
C.target.closest(".gengage-chat-ai-toppick-cta") || C.target.closest(".gengage-chat-favorite-btn") || C.target.closest(".gengage-chat-find-similar-pill") || e.onProductClick?.({
|
|
2699
2701
|
sku: r,
|
|
2700
2702
|
url: o
|
|
2701
2703
|
});
|
|
2702
|
-
})) : d && (n.classList.add("gds-clickable"), n.addEventListener("click", (
|
|
2703
|
-
|
|
2704
|
+
})) : d && (n.classList.add("gds-clickable"), n.addEventListener("click", (C) => {
|
|
2705
|
+
C.target.closest(".gengage-chat-ai-toppick-cta") || C.target.closest(".gengage-chat-favorite-btn") || C.target.closest(".gengage-chat-find-similar-pill") || e.onAction(d);
|
|
2704
2706
|
}));
|
|
2705
2707
|
const s = i.name || "Product image", p = !a && e.isMobile === !0, h = a ? mt(t.role, e.i18n) ?? e.i18n?.roleWinner ?? "TOP MATCH" : mt(t.role, e.i18n);
|
|
2706
2708
|
if (h && !p) {
|
|
2707
|
-
const
|
|
2708
|
-
|
|
2709
|
+
const C = document.createElement("span");
|
|
2710
|
+
C.className = "gengage-chat-ai-toppick-badge gds-badge", C.dataset.gengagePart = "ai-top-pick-role-badge", C.textContent = h, n.appendChild(C);
|
|
2709
2711
|
}
|
|
2710
2712
|
const v = document.createElement("div");
|
|
2711
2713
|
v.className = "gengage-chat-ai-toppick-top-row", v.dataset.gengagePart = "ai-top-pick-top-row", Gn(t, s, v, e, { skipOverlayActions: p });
|
|
2712
2714
|
const u = document.createElement("div");
|
|
2713
2715
|
if (u.className = "gengage-chat-ai-toppick-body", u.dataset.gengagePart = "ai-top-pick-body", h && p) {
|
|
2714
|
-
const
|
|
2715
|
-
|
|
2716
|
+
const C = document.createElement("div");
|
|
2717
|
+
C.className = "gengage-chat-ai-toppick-role-line", C.dataset.gengagePart = "ai-top-pick-role-line", C.textContent = h, u.appendChild(C);
|
|
2716
2718
|
}
|
|
2717
2719
|
const f = i.name;
|
|
2718
2720
|
if (f) {
|
|
2719
|
-
const
|
|
2720
|
-
|
|
2721
|
+
const C = document.createElement("div");
|
|
2722
|
+
C.className = "gengage-chat-ai-toppick-name", C.dataset.gengagePart = "ai-top-pick-name", C.textContent = f, u.appendChild(C);
|
|
2721
2723
|
}
|
|
2722
|
-
const
|
|
2723
|
-
|
|
2724
|
-
const
|
|
2725
|
-
if (
|
|
2724
|
+
const y = $n(i);
|
|
2725
|
+
y && u.appendChild(y), Wn(i, u, e), t.labels && t.labels.length > 0 && u.appendChild(Zn(t.labels)), v.appendChild(u), n.appendChild(v);
|
|
2726
|
+
const M = document.createElement("div");
|
|
2727
|
+
if (M.className = "gengage-chat-ai-toppick-detail", M.dataset.gengagePart = "ai-top-pick-detail", a) Yn(t, M);
|
|
2726
2728
|
else {
|
|
2727
|
-
const
|
|
2728
|
-
if (
|
|
2729
|
-
const
|
|
2730
|
-
|
|
2729
|
+
const C = typeof t.reason == "string" ? t.reason.trim() : "";
|
|
2730
|
+
if (C) {
|
|
2731
|
+
const L = document.createElement("p");
|
|
2732
|
+
L.className = "gengage-chat-ai-toppick-snippet", L.dataset.gengagePart = "ai-top-pick-snippet", L.textContent = C, M.appendChild(L);
|
|
2731
2733
|
}
|
|
2732
2734
|
}
|
|
2733
|
-
|
|
2734
|
-
const
|
|
2735
|
-
if (
|
|
2736
|
-
const
|
|
2737
|
-
if (
|
|
2738
|
-
const
|
|
2739
|
-
|
|
2740
|
-
if (
|
|
2735
|
+
M.childNodes.length > 0 && n.appendChild(M);
|
|
2736
|
+
const _ = !!(r && e.topPicksLoadingSku === r), E = (c || d) && !p;
|
|
2737
|
+
if (_ || c || d) {
|
|
2738
|
+
const C = document.createElement("div");
|
|
2739
|
+
if (C.className = "gengage-chat-ai-toppick-spinner", C.dataset.gengagePart = "ai-top-pick-spinner", C.style.display = _ ? "" : "none", n.appendChild(C), E) {
|
|
2740
|
+
const L = document.createElement("button");
|
|
2741
|
+
L.className = "gengage-chat-ai-toppick-cta gds-btn gds-btn-primary", L.dataset.gengagePart = "ai-top-pick-cta", L.type = "button", L.textContent = c ? e.i18n?.addToCartButton ?? "Add to Cart" : e.i18n?.viewDetails ?? "View Details", L.addEventListener("click", (I) => {
|
|
2742
|
+
if (I.stopPropagation(), c) {
|
|
2741
2743
|
e.onAction({
|
|
2742
2744
|
title: e.i18n?.addToCartButton ?? "Add to Cart",
|
|
2743
2745
|
type: "addToCart",
|
|
@@ -2759,7 +2761,7 @@ function bt(t, e, a) {
|
|
|
2759
2761
|
}
|
|
2760
2762
|
e.onAction(d);
|
|
2761
2763
|
}
|
|
2762
|
-
}), n.appendChild(
|
|
2764
|
+
}), n.appendChild(L);
|
|
2763
2765
|
}
|
|
2764
2766
|
}
|
|
2765
2767
|
return n;
|
|
@@ -3010,7 +3012,7 @@ function ni(t, e) {
|
|
|
3010
3012
|
const i = document.createElement("div");
|
|
3011
3013
|
if (i.className = "gengage-chat-product-card-name", i.textContent = t.name, n.appendChild(i), t.price) {
|
|
3012
3014
|
const r = document.createElement("div");
|
|
3013
|
-
r.className = "gengage-chat-product-card-price", r.textContent =
|
|
3015
|
+
r.className = "gengage-chat-product-card-price", r.textContent = Y(t.price, e.pricing), n.appendChild(r);
|
|
3014
3016
|
}
|
|
3015
3017
|
return a.appendChild(n), (e.onProductSelect || e.onAction) && (a.classList.add("gds-clickable"), a.addEventListener("click", () => {
|
|
3016
3018
|
if (t.sku) {
|
|
@@ -3073,45 +3075,45 @@ function ri(t, e) {
|
|
|
3073
3075
|
if (d) {
|
|
3074
3076
|
const h = Te(e, a), v = ze(e, a), u = !!(s && s !== d), f = document.createElement("div");
|
|
3075
3077
|
f.className = "gengage-chat-product-summary__price", f.dataset.gengagePart = "product-summary-price";
|
|
3076
|
-
const
|
|
3077
|
-
if (
|
|
3078
|
-
const
|
|
3078
|
+
const y = !!(h && u), M = Ve(e, a);
|
|
3079
|
+
if (y) {
|
|
3080
|
+
const _ = $e({
|
|
3079
3081
|
reasonText: h,
|
|
3080
|
-
salePriceFormatted:
|
|
3081
|
-
...
|
|
3082
|
+
salePriceFormatted: Y(d, e.pricing),
|
|
3083
|
+
...M !== void 0 ? { logoUrl: M } : {}
|
|
3082
3084
|
});
|
|
3083
3085
|
if (u && v === "inline") {
|
|
3084
|
-
f.classList.add("gengage-chat-product-summary__price--inline"), f.appendChild(
|
|
3086
|
+
f.classList.add("gengage-chat-product-summary__price--inline"), f.appendChild(_);
|
|
3085
3087
|
const E = document.createElement("span");
|
|
3086
3088
|
E.className = "gengage-chat-product-summary__price-sep", E.setAttribute("aria-hidden", "true");
|
|
3087
|
-
const
|
|
3088
|
-
|
|
3089
|
+
const C = document.createElement("span");
|
|
3090
|
+
C.className = "gengage-chat-product-summary__price-original", C.textContent = Y(s, e.pricing), f.appendChild(E), f.appendChild(C);
|
|
3089
3091
|
} else {
|
|
3090
3092
|
const E = document.createElement("span");
|
|
3091
|
-
E.className = "gengage-chat-product-summary__price-original", E.textContent =
|
|
3093
|
+
E.className = "gengage-chat-product-summary__price-original", E.textContent = Y(s, e.pricing), f.appendChild(E), f.appendChild(document.createTextNode(" ")), f.appendChild(_);
|
|
3092
3094
|
}
|
|
3093
3095
|
r.appendChild(f);
|
|
3094
3096
|
} else {
|
|
3095
3097
|
if (u && v === "inline") {
|
|
3096
3098
|
f.classList.add("gengage-chat-product-summary__price--inline");
|
|
3097
|
-
const
|
|
3098
|
-
|
|
3099
|
+
const _ = document.createElement("span");
|
|
3100
|
+
_.className = "gengage-chat-product-summary__price-current", _.textContent = Y(d, e.pricing);
|
|
3099
3101
|
const E = document.createElement("span");
|
|
3100
3102
|
E.className = "gengage-chat-product-summary__price-sep", E.setAttribute("aria-hidden", "true");
|
|
3101
|
-
const
|
|
3102
|
-
|
|
3103
|
+
const C = document.createElement("span");
|
|
3104
|
+
C.className = "gengage-chat-product-summary__price-original", C.textContent = Y(s, e.pricing), f.appendChild(_), f.appendChild(E), f.appendChild(C);
|
|
3103
3105
|
} else if (u) {
|
|
3104
|
-
const
|
|
3105
|
-
|
|
3106
|
+
const _ = document.createElement("span");
|
|
3107
|
+
_.className = "gengage-chat-product-summary__price-original", _.textContent = Y(s, e.pricing), f.appendChild(_), f.appendChild(document.createTextNode(" "));
|
|
3106
3108
|
const E = document.createElement("span");
|
|
3107
|
-
E.className = "gengage-chat-product-summary__price-current", E.textContent =
|
|
3109
|
+
E.className = "gengage-chat-product-summary__price-current", E.textContent = Y(d, e.pricing), f.appendChild(E);
|
|
3108
3110
|
} else {
|
|
3109
|
-
const
|
|
3110
|
-
|
|
3111
|
+
const _ = document.createElement("span");
|
|
3112
|
+
_.className = "gengage-chat-product-summary__price-current", _.textContent = Y(d, e.pricing), f.appendChild(_);
|
|
3111
3113
|
}
|
|
3112
3114
|
if (h) {
|
|
3113
|
-
const
|
|
3114
|
-
|
|
3115
|
+
const _ = document.createElement("div");
|
|
3116
|
+
_.className = "gengage-chat-product-summary__price-stack", _.appendChild(qe(h)), _.appendChild(f), r.appendChild(_);
|
|
3115
3117
|
} else r.appendChild(f);
|
|
3116
3118
|
}
|
|
3117
3119
|
}
|
|
@@ -3145,62 +3147,61 @@ function ci(t, e, a, n, i) {
|
|
|
3145
3147
|
l.className = "gengage-chat-consulting-style-grid", r.appendChild(l);
|
|
3146
3148
|
const g = (d) => {
|
|
3147
3149
|
e.innerHTML = "";
|
|
3148
|
-
const s = Array.isArray(d.product_list) ? d.product_list : [], p = Array.isArray(d.recommendation_groups) ? d.recommendation_groups : [];
|
|
3150
|
+
const s = Array.isArray(d.product_list) ? d.product_list : [], p = a === "watch_expert" ? [] : Array.isArray(d.recommendation_groups) ? d.recommendation_groups : [];
|
|
3149
3151
|
if (p.length > 0) {
|
|
3150
3152
|
const h = /* @__PURE__ */ new Map();
|
|
3151
|
-
for (const
|
|
3152
|
-
const
|
|
3153
|
-
|
|
3153
|
+
for (const _ of s) {
|
|
3154
|
+
const E = typeof _?.sku == "string" ? _.sku : void 0;
|
|
3155
|
+
E && h.set(E, _);
|
|
3154
3156
|
}
|
|
3155
|
-
const v =
|
|
3156
|
-
|
|
3157
|
-
const
|
|
3158
|
-
|
|
3159
|
-
const
|
|
3160
|
-
|
|
3161
|
-
const
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
const I = typeof f.label == "string" && f.label.trim().length > 0 ? f.label : "Öneri";
|
|
3166
|
-
if (k.textContent = x.length > 0 ? `${I} (${x.length})` : I, E.appendChild(k), typeof f.reason == "string" && f.reason.trim().length > 0) {
|
|
3167
|
-
const P = document.createElement("p");
|
|
3168
|
-
P.className = "gengage-chat-consulting-group-reason", P.textContent = f.reason, E.appendChild(P);
|
|
3157
|
+
const v = (_, E, C, L) => {
|
|
3158
|
+
if (E.length === 0) return;
|
|
3159
|
+
const I = document.createElement("section");
|
|
3160
|
+
I.className = "gengage-chat-consulting-group";
|
|
3161
|
+
const N = document.createElement("div");
|
|
3162
|
+
N.className = "gengage-chat-consulting-group-header";
|
|
3163
|
+
const j = document.createElement("h4");
|
|
3164
|
+
if (j.className = "gengage-chat-consulting-group-label", j.textContent = `${_} (${E.length})`, N.appendChild(j), typeof L == "string" && L.trim().length > 0) {
|
|
3165
|
+
const G = document.createElement("p");
|
|
3166
|
+
G.className = "gengage-chat-consulting-group-reason", G.textContent = L, N.appendChild(G);
|
|
3169
3167
|
}
|
|
3170
|
-
|
|
3171
|
-
const
|
|
3172
|
-
|
|
3173
|
-
for (const
|
|
3174
|
-
const
|
|
3168
|
+
I.appendChild(N);
|
|
3169
|
+
const K = document.createElement("div");
|
|
3170
|
+
K.className = "gengage-chat-product-grid gengage-chat-consulting-group-grid", C && K.classList.add("gengage-chat-consulting-group-grid--single-group"), K.style.setProperty("--consulting-group-columns", String(Math.max(1, Math.min(4, E.length))));
|
|
3171
|
+
for (const G of E) {
|
|
3172
|
+
const b = tt({
|
|
3175
3173
|
type: "ProductCard",
|
|
3176
|
-
props: { product:
|
|
3174
|
+
props: { product: G }
|
|
3177
3175
|
}, i ?? { onAction: () => {
|
|
3178
3176
|
} });
|
|
3179
|
-
|
|
3177
|
+
K.appendChild(b);
|
|
3180
3178
|
}
|
|
3181
|
-
|
|
3179
|
+
I.appendChild(K), e.appendChild(I);
|
|
3180
|
+
}, u = /* @__PURE__ */ new Set(), f = [];
|
|
3181
|
+
for (const _ of p) {
|
|
3182
|
+
const E = (Array.isArray(_.skus) ? _.skus.filter((I) => typeof I == "string" && I.trim().length > 0) : []).map((I) => (u.add(I), h.get(I))).filter((I) => !!I);
|
|
3183
|
+
if (E.length === 0) continue;
|
|
3184
|
+
const C = typeof _.label == "string" && _.label.trim().length > 0 ? _.label : "Öneri", L = typeof _.reason == "string" ? _.reason : void 0;
|
|
3185
|
+
f.push({
|
|
3186
|
+
labelText: C,
|
|
3187
|
+
products: E,
|
|
3188
|
+
...L !== void 0 ? { reasonText: L } : {}
|
|
3189
|
+
});
|
|
3182
3190
|
}
|
|
3183
|
-
const
|
|
3184
|
-
const
|
|
3185
|
-
return
|
|
3191
|
+
const y = s.filter((_) => {
|
|
3192
|
+
const E = typeof _?.sku == "string" ? _.sku : "";
|
|
3193
|
+
return E.length > 0 && !u.has(E);
|
|
3186
3194
|
});
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
props: { product: x }
|
|
3194
|
-
}, i ?? { onAction: () => {
|
|
3195
|
-
} });
|
|
3196
|
-
f.appendChild(N);
|
|
3197
|
-
}
|
|
3198
|
-
e.appendChild(f);
|
|
3199
|
-
}
|
|
3195
|
+
y.length > 0 && f.push({
|
|
3196
|
+
labelText: i?.i18n?.consultingOtherCompatibleProductsLabel ?? "Other compatible products",
|
|
3197
|
+
products: y
|
|
3198
|
+
});
|
|
3199
|
+
const M = f.length === 1;
|
|
3200
|
+
for (const _ of f) v(_.labelText, _.products, M, _.reasonText);
|
|
3200
3201
|
return;
|
|
3201
3202
|
}
|
|
3202
3203
|
for (const h of s) {
|
|
3203
|
-
const v =
|
|
3204
|
+
const v = tt({
|
|
3204
3205
|
type: "ProductCard",
|
|
3205
3206
|
props: { product: h }
|
|
3206
3207
|
}, i ?? { onAction: () => {
|
|
@@ -3221,7 +3222,7 @@ function ci(t, e, a, n, i) {
|
|
|
3221
3222
|
}
|
|
3222
3223
|
const u = document.createElement("span");
|
|
3223
3224
|
u.className = "gengage-chat-consulting-style-caption", u.textContent = d.style_label ?? `Style ${s + 1}`, h.appendChild(u), p.appendChild(h), p.addEventListener("click", () => {
|
|
3224
|
-
c !== s && (c = s, l.querySelectorAll(".gengage-chat-consulting-style-btn").forEach((f,
|
|
3225
|
+
c !== s && (c = s, l.querySelectorAll(".gengage-chat-consulting-style-btn").forEach((f, y) => f.classList.toggle("gengage-chat-consulting-style-btn--active", y === s)), g(d));
|
|
3225
3226
|
}), l.appendChild(p);
|
|
3226
3227
|
}), t.appendChild(r), g(n[0] ?? {});
|
|
3227
3228
|
}
|
|
@@ -3236,13 +3237,13 @@ function li(t) {
|
|
|
3236
3237
|
function gi(t, e, a, n) {
|
|
3237
3238
|
ci(t, e, a.source, a.styleVariations, n);
|
|
3238
3239
|
}
|
|
3239
|
-
function
|
|
3240
|
+
function et() {
|
|
3240
3241
|
return window.innerWidth < 768;
|
|
3241
3242
|
}
|
|
3242
3243
|
var Ut = {
|
|
3243
3244
|
ActionButtons: ({ element: t, context: e }) => hi(t, e),
|
|
3244
3245
|
ActionButton: ({ element: t, context: e }) => ui(t, e),
|
|
3245
|
-
ProductCard: ({ element: t, context: e }) =>
|
|
3246
|
+
ProductCard: ({ element: t, context: e }) => tt(t, e),
|
|
3246
3247
|
ProductDetailsPanel: ({ element: t, context: e }) => zi(t, e),
|
|
3247
3248
|
ProductGrid: ({ element: t, spec: e, renderElement: a, context: n }) => qi(t, e, a, n),
|
|
3248
3249
|
ReviewHighlights: ({ element: t, context: e }) => On(t, {
|
|
@@ -3305,12 +3306,12 @@ function ui(t, e) {
|
|
|
3305
3306
|
}
|
|
3306
3307
|
function ft(t, e, a, n, i) {
|
|
3307
3308
|
t.replaceChildren();
|
|
3308
|
-
const r = ze(e, a), o = !!(i && n && i !== n), l = Te(e, a), g = !!(l && o), c =
|
|
3309
|
+
const r = ze(e, a), o = !!(i && n && i !== n), l = Te(e, a), g = !!(l && o), c = Ve(e, a);
|
|
3309
3310
|
if (!n || parseFloat(n) <= 0) return;
|
|
3310
3311
|
if (g) {
|
|
3311
|
-
const s =
|
|
3312
|
+
const s = $e({
|
|
3312
3313
|
reasonText: l,
|
|
3313
|
-
salePriceFormatted:
|
|
3314
|
+
salePriceFormatted: Y(n, e.pricing),
|
|
3314
3315
|
...c !== void 0 ? { logoUrl: c } : {}
|
|
3315
3316
|
});
|
|
3316
3317
|
if (o && r === "inline") {
|
|
@@ -3320,13 +3321,13 @@ function ft(t, e, a, n, i) {
|
|
|
3320
3321
|
const h = document.createElement("span");
|
|
3321
3322
|
h.className = "gengage-chat-product-card-price-sep", h.setAttribute("aria-hidden", "true");
|
|
3322
3323
|
const v = document.createElement("span");
|
|
3323
|
-
v.className = "gengage-chat-product-card-original-price", v.textContent =
|
|
3324
|
+
v.className = "gengage-chat-product-card-original-price", v.textContent = Y(i, e.pricing), p.appendChild(h), p.appendChild(v), t.appendChild(p);
|
|
3324
3325
|
return;
|
|
3325
3326
|
}
|
|
3326
3327
|
if (t.classList.remove("gengage-chat-product-card-price-block--inline"), t.appendChild(s), o) {
|
|
3327
3328
|
t.appendChild(document.createTextNode(" "));
|
|
3328
3329
|
const p = document.createElement("span");
|
|
3329
|
-
p.className = "gengage-chat-product-card-original-price", p.textContent =
|
|
3330
|
+
p.className = "gengage-chat-product-card-original-price", p.textContent = Y(i, e.pricing), t.appendChild(p);
|
|
3330
3331
|
}
|
|
3331
3332
|
return;
|
|
3332
3333
|
}
|
|
@@ -3335,28 +3336,28 @@ function ft(t, e, a, n, i) {
|
|
|
3335
3336
|
const s = document.createElement("div");
|
|
3336
3337
|
s.className = "gengage-chat-product-card-price-row";
|
|
3337
3338
|
const p = document.createElement("span");
|
|
3338
|
-
p.className = "gengage-chat-product-card-current-price", p.textContent =
|
|
3339
|
+
p.className = "gengage-chat-product-card-current-price", p.textContent = Y(n, e.pricing);
|
|
3339
3340
|
const h = document.createElement("span");
|
|
3340
3341
|
h.className = "gengage-chat-product-card-price-sep", h.setAttribute("aria-hidden", "true");
|
|
3341
3342
|
const v = document.createElement("span");
|
|
3342
|
-
v.className = "gengage-chat-product-card-original-price", v.textContent =
|
|
3343
|
+
v.className = "gengage-chat-product-card-original-price", v.textContent = Y(i, e.pricing), s.appendChild(p), s.appendChild(h), s.appendChild(v), t.appendChild(s);
|
|
3343
3344
|
return;
|
|
3344
3345
|
}
|
|
3345
3346
|
t.classList.remove("gengage-chat-product-card-price-block--inline");
|
|
3346
3347
|
const d = document.createElement("span");
|
|
3347
|
-
if (d.className = "gengage-chat-product-card-current-price", d.textContent =
|
|
3348
|
+
if (d.className = "gengage-chat-product-card-current-price", d.textContent = Y(n, e.pricing), t.appendChild(d), o) {
|
|
3348
3349
|
t.appendChild(document.createTextNode(" "));
|
|
3349
3350
|
const s = document.createElement("span");
|
|
3350
|
-
s.className = "gengage-chat-product-card-original-price", s.textContent =
|
|
3351
|
+
s.className = "gengage-chat-product-card-original-price", s.textContent = Y(i, e.pricing), t.appendChild(s);
|
|
3351
3352
|
}
|
|
3352
3353
|
}
|
|
3353
3354
|
function vt(t, e, a, n, i, r, o) {
|
|
3354
3355
|
t.classList.remove("gengage-chat-product-details-price--inline"), t.replaceChildren(), t.className = "gengage-chat-product-details-price";
|
|
3355
|
-
const l = Te(e, a), g = !!(l && o), c =
|
|
3356
|
+
const l = Te(e, a), g = !!(l && o), c = Ve(e, a);
|
|
3356
3357
|
if (g) {
|
|
3357
|
-
const s =
|
|
3358
|
+
const s = $e({
|
|
3358
3359
|
reasonText: l,
|
|
3359
|
-
salePriceFormatted:
|
|
3360
|
+
salePriceFormatted: Y(n, e.pricing),
|
|
3360
3361
|
...c !== void 0 ? { logoUrl: c } : {}
|
|
3361
3362
|
});
|
|
3362
3363
|
if (o && r === "inline") {
|
|
@@ -3364,37 +3365,37 @@ function vt(t, e, a, n, i, r, o) {
|
|
|
3364
3365
|
const p = document.createElement("span");
|
|
3365
3366
|
p.className = "gengage-chat-product-details-price-sep", p.setAttribute("aria-hidden", "true");
|
|
3366
3367
|
const h = document.createElement("span");
|
|
3367
|
-
h.className = "gengage-chat-product-details-original-price", h.textContent =
|
|
3368
|
+
h.className = "gengage-chat-product-details-original-price", h.textContent = Y(i, e.pricing), t.appendChild(p), t.appendChild(h);
|
|
3368
3369
|
} else {
|
|
3369
3370
|
if (o) {
|
|
3370
3371
|
const p = document.createElement("span");
|
|
3371
|
-
p.className = "gengage-chat-product-details-original-price", p.textContent =
|
|
3372
|
+
p.className = "gengage-chat-product-details-original-price", p.textContent = Y(i, e.pricing), t.appendChild(p), t.appendChild(document.createTextNode(" "));
|
|
3372
3373
|
}
|
|
3373
3374
|
t.appendChild(s);
|
|
3374
3375
|
}
|
|
3375
3376
|
} else if (o && r === "inline") {
|
|
3376
3377
|
t.classList.add("gengage-chat-product-details-price--inline");
|
|
3377
3378
|
const s = document.createElement("span");
|
|
3378
|
-
s.className = "gengage-chat-product-details-current-price", s.textContent =
|
|
3379
|
+
s.className = "gengage-chat-product-details-current-price", s.textContent = Y(n, e.pricing);
|
|
3379
3380
|
const p = document.createElement("span");
|
|
3380
3381
|
p.className = "gengage-chat-product-details-price-sep", p.setAttribute("aria-hidden", "true");
|
|
3381
3382
|
const h = document.createElement("span");
|
|
3382
|
-
h.className = "gengage-chat-product-details-original-price", h.textContent =
|
|
3383
|
+
h.className = "gengage-chat-product-details-original-price", h.textContent = Y(i, e.pricing), t.appendChild(s), t.appendChild(p), t.appendChild(h);
|
|
3383
3384
|
} else {
|
|
3384
3385
|
if (o) {
|
|
3385
3386
|
const p = document.createElement("span");
|
|
3386
|
-
p.className = "gengage-chat-product-details-original-price", p.textContent =
|
|
3387
|
+
p.className = "gengage-chat-product-details-original-price", p.textContent = Y(i, e.pricing), t.appendChild(p), t.appendChild(document.createTextNode(" "));
|
|
3387
3388
|
}
|
|
3388
3389
|
const s = document.createElement("span");
|
|
3389
|
-
s.className = "gengage-chat-product-details-current-price", s.textContent =
|
|
3390
|
+
s.className = "gengage-chat-product-details-current-price", s.textContent = Y(n, e.pricing), t.appendChild(s);
|
|
3390
3391
|
}
|
|
3391
|
-
const d =
|
|
3392
|
+
const d = Ue(a, "discountPercent", "price_discount_rate");
|
|
3392
3393
|
if (typeof d == "number" && d > 0) {
|
|
3393
3394
|
const s = document.createElement("span");
|
|
3394
3395
|
s.className = "gengage-chat-product-details-discount-badge", s.textContent = `%${It(d)}`, t.appendChild(s);
|
|
3395
3396
|
}
|
|
3396
3397
|
}
|
|
3397
|
-
function
|
|
3398
|
+
function tt(t, e) {
|
|
3398
3399
|
const a = document.createElement("div");
|
|
3399
3400
|
a.className = "gengage-chat-product-card gds-card gds-product-card gds-card-interactive";
|
|
3400
3401
|
const n = t.props?.product ?? t.props;
|
|
@@ -3417,43 +3418,43 @@ function Fe(t, e) {
|
|
|
3417
3418
|
b.className = "gengage-chat-product-card-img-wrapper";
|
|
3418
3419
|
const m = document.createElement("img");
|
|
3419
3420
|
m.className = "gengage-chat-product-card-img", m.loading = "lazy", ne(m, "src", o);
|
|
3420
|
-
const
|
|
3421
|
-
|
|
3422
|
-
const
|
|
3423
|
-
if (typeof
|
|
3421
|
+
const k = n.name;
|
|
3422
|
+
k && (m.alt = k), ve(m), b.appendChild(m);
|
|
3423
|
+
const x = n.discountPercent;
|
|
3424
|
+
if (typeof x == "number" && x > 0) {
|
|
3424
3425
|
const T = document.createElement("span");
|
|
3425
|
-
T.className = "gengage-chat-product-card-discount-badge", T.textContent = `%${It(
|
|
3426
|
+
T.className = "gengage-chat-product-card-discount-badge", T.textContent = `%${It(x)}`, b.appendChild(T);
|
|
3426
3427
|
}
|
|
3427
|
-
const
|
|
3428
|
-
|
|
3429
|
-
const
|
|
3430
|
-
if (
|
|
3428
|
+
const P = document.createElement("div");
|
|
3429
|
+
P.className = "gengage-chat-product-card-img-actions";
|
|
3430
|
+
const B = n.sku;
|
|
3431
|
+
if (B && e.onFavoriteToggle) {
|
|
3431
3432
|
const T = document.createElement("button");
|
|
3432
|
-
T.className = "gengage-chat-favorite-btn", T.type = "button", T.dataset.gengageFavoriteSku =
|
|
3433
|
-
const
|
|
3434
|
-
|
|
3433
|
+
T.className = "gengage-chat-favorite-btn", T.type = "button", T.dataset.gengageFavoriteSku = B, T.setAttribute("aria-label", e.i18n?.addToFavoritesLabel ?? "Add to favorites");
|
|
3434
|
+
const q = e.favoritedSkus?.has(B) ?? !1;
|
|
3435
|
+
q && T.classList.add("gengage-chat-favorite-btn--active"), T.innerHTML = `<svg width="14" height="14" viewBox="0 0 24 24" fill="${q ? "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>`, T.addEventListener("click", (H) => {
|
|
3435
3436
|
H.stopPropagation(), T.classList.toggle("gengage-chat-favorite-btn--active");
|
|
3436
3437
|
const $ = T.querySelector("svg");
|
|
3437
|
-
$ && $.setAttribute("fill", T.classList.contains("gengage-chat-favorite-btn--active") ? "currentColor" : "none"), e.onFavoriteToggle(
|
|
3438
|
-
}),
|
|
3438
|
+
$ && $.setAttribute("fill", T.classList.contains("gengage-chat-favorite-btn--active") ? "currentColor" : "none"), e.onFavoriteToggle(B, n);
|
|
3439
|
+
}), P.appendChild(T);
|
|
3439
3440
|
}
|
|
3440
|
-
const
|
|
3441
|
-
if (
|
|
3441
|
+
const A = n.sku, z = e.i18n?.findSimilarLabel ?? "Find Similar";
|
|
3442
|
+
if (A) {
|
|
3442
3443
|
const T = document.createElement("button");
|
|
3443
3444
|
T.className = "gengage-chat-find-similar-pill", T.type = "button", T.setAttribute("aria-label", z), T.dataset.tooltip = z, T.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>';
|
|
3444
|
-
const
|
|
3445
|
-
|
|
3445
|
+
const q = document.createElement("span");
|
|
3446
|
+
q.className = "gengage-chat-find-similar-pill-text", q.textContent = z, T.appendChild(q), T.addEventListener("click", (H) => {
|
|
3446
3447
|
H.stopPropagation(), e.onAction({
|
|
3447
3448
|
title: z,
|
|
3448
3449
|
type: "findSimilar",
|
|
3449
3450
|
payload: {
|
|
3450
|
-
sku:
|
|
3451
|
+
sku: A,
|
|
3451
3452
|
...o ? { image_url: o } : {}
|
|
3452
3453
|
}
|
|
3453
3454
|
});
|
|
3454
|
-
}),
|
|
3455
|
+
}), P.appendChild(T);
|
|
3455
3456
|
}
|
|
3456
|
-
|
|
3457
|
+
P.childElementCount > 0 && b.appendChild(P), a.appendChild(b);
|
|
3457
3458
|
}
|
|
3458
3459
|
const l = document.createElement("div");
|
|
3459
3460
|
l.className = "gengage-chat-product-card-body";
|
|
@@ -3462,99 +3463,99 @@ function Fe(t, e) {
|
|
|
3462
3463
|
const b = document.createElement("div");
|
|
3463
3464
|
b.className = "gengage-chat-product-card-brand", b.textContent = g, l.appendChild(b);
|
|
3464
3465
|
}
|
|
3465
|
-
const c = n.rating, d = n.reviewCount, s = n.price, p = n.originalPrice, h = n.price_async, v = Te(e, n), u = ze(e, n), f = !!(v || p && s && p !== s && parseFloat(s) > 0 && u === "inline"),
|
|
3466
|
-
|
|
3467
|
-
const
|
|
3468
|
-
|
|
3466
|
+
const c = n.rating, d = n.reviewCount, s = n.price, p = n.originalPrice, h = n.price_async, v = Te(e, n), u = ze(e, n), f = !!(v || p && s && p !== s && parseFloat(s) > 0 && u === "inline"), y = typeof c == "number" && Number.isFinite(c) && c > 0, M = document.createElement("div");
|
|
3467
|
+
M.className = "gengage-chat-product-card-meta-row";
|
|
3468
|
+
const _ = document.createElement("div");
|
|
3469
|
+
_.className = "gengage-chat-product-card-price gengage-chat-product-card-price-block";
|
|
3469
3470
|
const E = f ? (() => {
|
|
3470
3471
|
const b = document.createElement("div");
|
|
3471
|
-
return b.className = "gengage-chat-product-card-price-stack", v && b.appendChild(
|
|
3472
|
-
})() :
|
|
3472
|
+
return b.className = "gengage-chat-product-card-price-stack", v && b.appendChild(qe(v)), b.appendChild(_), b;
|
|
3473
|
+
})() : _;
|
|
3473
3474
|
if (h === !0) {
|
|
3474
3475
|
const b = document.createElement("span");
|
|
3475
|
-
b.className = "gengage-chat-price-skeleton",
|
|
3476
|
-
b.parentElement && (s && parseFloat(s) > 0 ? ft(
|
|
3476
|
+
b.className = "gengage-chat-price-skeleton", _.appendChild(b), setTimeout(() => {
|
|
3477
|
+
b.parentElement && (s && parseFloat(s) > 0 ? ft(_, e, n, s, n.originalPrice) : b.remove());
|
|
3477
3478
|
}, 300);
|
|
3478
|
-
} else s && parseFloat(s) > 0 && ft(
|
|
3479
|
-
if ((
|
|
3479
|
+
} else s && parseFloat(s) > 0 && ft(_, e, n, s, p);
|
|
3480
|
+
if ((_.childElementCount > 0 || h === !0) && M.appendChild(E), y) {
|
|
3480
3481
|
const b = document.createElement("div");
|
|
3481
3482
|
b.className = "gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";
|
|
3482
|
-
const m = Nt(c),
|
|
3483
|
-
typeof d == "number" && Number.isFinite(d) &&
|
|
3484
|
-
const
|
|
3485
|
-
|
|
3486
|
-
const
|
|
3487
|
-
|
|
3483
|
+
const m = Nt(c), k = [`${m.toFixed(1)}`, "out of 5 stars"];
|
|
3484
|
+
typeof d == "number" && Number.isFinite(d) && k.push(`(${d} reviews)`), b.setAttribute("aria-label", k.join(" "));
|
|
3485
|
+
const x = document.createElement("span");
|
|
3486
|
+
x.className = "gengage-chat-product-card-rating-compact-star", x.setAttribute("aria-hidden", "true"), x.innerHTML = '<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z"/></svg>';
|
|
3487
|
+
const P = document.createElement("span");
|
|
3488
|
+
P.className = "gengage-chat-product-card-rating-compact-value", P.textContent = m.toFixed(1), b.appendChild(x), b.appendChild(P), M.appendChild(b);
|
|
3488
3489
|
}
|
|
3489
|
-
|
|
3490
|
-
const
|
|
3491
|
-
if (
|
|
3490
|
+
M.childElementCount === 0 && (M.classList.add("gengage-chat-product-card-meta-row--empty"), M.setAttribute("aria-hidden", "true")), l.appendChild(M);
|
|
3491
|
+
const C = n.name;
|
|
3492
|
+
if (C) {
|
|
3492
3493
|
const b = document.createElement("div");
|
|
3493
|
-
b.className = "gengage-chat-product-card-name", b.textContent =
|
|
3494
|
+
b.className = "gengage-chat-product-card-name", b.textContent = C, b.title = C, l.appendChild(b);
|
|
3494
3495
|
}
|
|
3495
|
-
const
|
|
3496
|
-
if (typeof
|
|
3496
|
+
const L = n.inStock;
|
|
3497
|
+
if (typeof L == "boolean") {
|
|
3497
3498
|
const b = document.createElement("div");
|
|
3498
|
-
b.className = `gengage-chat-product-card-stock ${
|
|
3499
|
+
b.className = `gengage-chat-product-card-stock ${L ? "is-in-stock" : "is-out-of-stock"}`, b.textContent = L ? e.i18n?.inStockLabel ?? "In Stock" : e.i18n?.outOfStockLabel ?? "Out of Stock", l.appendChild(b);
|
|
3499
3500
|
}
|
|
3500
3501
|
a.appendChild(l);
|
|
3501
|
-
const
|
|
3502
|
-
if (
|
|
3502
|
+
const I = n.url, N = n.sku, j = n.cartCode, K = !!(j && N && L !== !1), G = e.i18n?.productCtaLabel ?? "View";
|
|
3503
|
+
if (K) {
|
|
3503
3504
|
const b = document.createElement("div");
|
|
3504
3505
|
b.className = "gengage-chat-product-card-buy-footer";
|
|
3505
3506
|
const m = document.createElement("button");
|
|
3506
|
-
m.type = "button", m.className = "gengage-chat-product-card-buy-trigger", m.textContent =
|
|
3507
|
-
|
|
3508
|
-
title: e.i18n?.addToCartButton ??
|
|
3507
|
+
m.type = "button", m.className = "gengage-chat-product-card-buy-trigger", m.textContent = G, m.addEventListener("click", (k) => {
|
|
3508
|
+
k.stopPropagation(), e.onAction({
|
|
3509
|
+
title: e.i18n?.addToCartButton ?? G,
|
|
3509
3510
|
type: "addToCart",
|
|
3510
3511
|
payload: {
|
|
3511
|
-
sku:
|
|
3512
|
-
cartCode:
|
|
3512
|
+
sku: N,
|
|
3513
|
+
cartCode: j,
|
|
3513
3514
|
quantity: 1
|
|
3514
3515
|
}
|
|
3515
3516
|
});
|
|
3516
3517
|
}), b.appendChild(m), a.appendChild(b);
|
|
3517
3518
|
} else if (r) {
|
|
3518
3519
|
const b = document.createElement("button");
|
|
3519
|
-
b.className = "gengage-chat-product-card-cta", b.type = "button", b.textContent = r.type === "launchSingleProduct" ?
|
|
3520
|
+
b.className = "gengage-chat-product-card-cta", b.type = "button", b.textContent = r.type === "launchSingleProduct" ? G : r.title || G, b.addEventListener("click", (m) => {
|
|
3520
3521
|
if (a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")) {
|
|
3521
3522
|
m.stopPropagation();
|
|
3522
3523
|
return;
|
|
3523
3524
|
}
|
|
3524
3525
|
e.onAction(r);
|
|
3525
3526
|
}), a.appendChild(b);
|
|
3526
|
-
} else if (
|
|
3527
|
+
} else if (I && ce(I)) {
|
|
3527
3528
|
const b = document.createElement("a");
|
|
3528
|
-
b.className = "gengage-chat-product-card-cta", ne(b, "href",
|
|
3529
|
+
b.className = "gengage-chat-product-card-cta", ne(b, "href", I), ne(b, "target", "_blank"), ne(b, "rel", "noopener noreferrer"), b.textContent = G, b.addEventListener("click", (m) => {
|
|
3529
3530
|
if (a.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")) {
|
|
3530
3531
|
m.preventDefault(), m.stopPropagation();
|
|
3531
3532
|
return;
|
|
3532
3533
|
}
|
|
3533
|
-
e.onProductClick &&
|
|
3534
|
-
sku:
|
|
3535
|
-
url:
|
|
3534
|
+
e.onProductClick && N && (m.preventDefault(), e.onProductClick({
|
|
3535
|
+
sku: N,
|
|
3536
|
+
url: I
|
|
3536
3537
|
}));
|
|
3537
3538
|
}), a.appendChild(b);
|
|
3538
3539
|
}
|
|
3539
|
-
if (e.comparisonSelectMode &&
|
|
3540
|
+
if (e.comparisonSelectMode && N && e.onToggleComparisonSku) {
|
|
3540
3541
|
const b = document.createElement("div");
|
|
3541
3542
|
b.className = "gengage-chat-comparison-select-wrapper";
|
|
3542
|
-
const m = e.comparisonSelectedSkus?.includes(
|
|
3543
|
+
const m = e.comparisonSelectedSkus?.includes(N) ?? !1;
|
|
3543
3544
|
m && b.classList.add("gengage-chat-comparison-select-wrapper--selected");
|
|
3544
|
-
const
|
|
3545
|
-
b.setAttribute("role", "group"), b.setAttribute("aria-label", `${String(
|
|
3546
|
-
const
|
|
3547
|
-
|
|
3548
|
-
const
|
|
3549
|
-
|
|
3550
|
-
const
|
|
3551
|
-
|
|
3552
|
-
T.stopPropagation(), e.onToggleComparisonSku?.(
|
|
3545
|
+
const k = n.name ?? N, x = e.i18n?.comparisonSelectCardHint ?? "Tap anywhere on the card to add or remove it from comparison.";
|
|
3546
|
+
b.setAttribute("role", "group"), b.setAttribute("aria-label", `${String(k)}. ${x}`);
|
|
3547
|
+
const P = document.createElement("button");
|
|
3548
|
+
P.type = "button", P.className = "gengage-chat-comparison-checkbox", P.dataset.selected = m ? "true" : "false", P.setAttribute("aria-pressed", m ? "true" : "false");
|
|
3549
|
+
const B = document.createElement("span");
|
|
3550
|
+
B.className = "gengage-chat-comparison-checkbox-icon", B.innerHTML = m ? '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>' : '<span class="gengage-chat-comparison-checkbox-dot"></span>';
|
|
3551
|
+
const A = document.createElement("span");
|
|
3552
|
+
A.className = "gengage-chat-comparison-checkbox-label", A.textContent = m ? e.i18n?.comparisonSelectedLabel ?? "Selected" : e.i18n?.comparisonSelectLabel ?? "Select to compare", P.appendChild(B), P.appendChild(A), P.addEventListener("click", (T) => {
|
|
3553
|
+
T.stopPropagation(), e.onToggleComparisonSku?.(N);
|
|
3553
3554
|
});
|
|
3554
3555
|
const z = document.createElement("div");
|
|
3555
|
-
return z.className = "gengage-chat-comparison-card-hint", z.setAttribute("aria-hidden", "true"), z.textContent =
|
|
3556
|
-
T.target.closest(".gengage-chat-comparison-checkbox") || (T.stopPropagation(), e.onToggleComparisonSku?.(
|
|
3557
|
-
}), b.appendChild(
|
|
3556
|
+
return z.className = "gengage-chat-comparison-card-hint", z.setAttribute("aria-hidden", "true"), z.textContent = x, b.addEventListener("click", (T) => {
|
|
3557
|
+
T.target.closest(".gengage-chat-comparison-checkbox") || (T.stopPropagation(), e.onToggleComparisonSku?.(N));
|
|
3558
|
+
}), b.appendChild(P), b.appendChild(z), b.appendChild(a), b;
|
|
3558
3559
|
}
|
|
3559
3560
|
return a;
|
|
3560
3561
|
}
|
|
@@ -3609,7 +3610,7 @@ function re(t, ...e) {
|
|
|
3609
3610
|
}
|
|
3610
3611
|
}
|
|
3611
3612
|
}
|
|
3612
|
-
function
|
|
3613
|
+
function Ue(t, ...e) {
|
|
3613
3614
|
for (const a of e) {
|
|
3614
3615
|
const n = t[a];
|
|
3615
3616
|
if (typeof n == "number" && Number.isFinite(n)) return n;
|
|
@@ -3619,7 +3620,7 @@ function je(t, ...e) {
|
|
|
3619
3620
|
}
|
|
3620
3621
|
}
|
|
3621
3622
|
}
|
|
3622
|
-
function
|
|
3623
|
+
function Fe(t, ...e) {
|
|
3623
3624
|
for (const a of e) {
|
|
3624
3625
|
const n = t[a];
|
|
3625
3626
|
if (typeof n == "boolean") return n;
|
|
@@ -3653,7 +3654,7 @@ function Ci(t) {
|
|
|
3653
3654
|
const a = re(t, "description");
|
|
3654
3655
|
return a ? { text: a } : void 0;
|
|
3655
3656
|
}
|
|
3656
|
-
function
|
|
3657
|
+
function je(t) {
|
|
3657
3658
|
return Array.isArray(t) ? t.map((e) => {
|
|
3658
3659
|
if (!e || typeof e != "object") return null;
|
|
3659
3660
|
const a = e, n = re(a, "key", "name", "label", "title"), i = a.value, r = typeof i == "string" || typeof i == "number" || typeof i == "boolean" ? String(i).trim() : void 0;
|
|
@@ -3670,20 +3671,20 @@ function Oe(t) {
|
|
|
3670
3671
|
}).filter((e) => e !== null) : [];
|
|
3671
3672
|
}
|
|
3672
3673
|
function qt(t) {
|
|
3673
|
-
const e =
|
|
3674
|
-
return e.length > 0 ? e :
|
|
3674
|
+
const e = je(t.features);
|
|
3675
|
+
return e.length > 0 ? e : je(t.specifications);
|
|
3675
3676
|
}
|
|
3676
3677
|
function Si(t) {
|
|
3677
|
-
const e = t.specifications, a =
|
|
3678
|
+
const e = t.specifications, a = je(e);
|
|
3678
3679
|
if (a.length > 0) return Array.isArray(e) ? a : Object.fromEntries(a.map((i) => [i.key, i.value]));
|
|
3679
|
-
const n =
|
|
3680
|
+
const n = je(t.features);
|
|
3680
3681
|
return n.length > 0 ? n : void 0;
|
|
3681
3682
|
}
|
|
3682
3683
|
function ye(t, ...e) {
|
|
3683
3684
|
return re(t, ...e);
|
|
3684
3685
|
}
|
|
3685
3686
|
function xt(t, ...e) {
|
|
3686
|
-
return
|
|
3687
|
+
return Ue(t, ...e);
|
|
3687
3688
|
}
|
|
3688
3689
|
function Vt(t) {
|
|
3689
3690
|
return ye(t, "value", "option_value", "attribute_value", "label", "title", "name", "variant_name", "sku");
|
|
@@ -3733,7 +3734,7 @@ function Ni(t) {
|
|
|
3733
3734
|
function Mi(t) {
|
|
3734
3735
|
const e = Ni(t);
|
|
3735
3736
|
if (e) return e;
|
|
3736
|
-
const a = re(t, "sku"), n =
|
|
3737
|
+
const a = re(t, "sku"), n = Fe(t, "inStock", "in_stock"), i = [], r = /* @__PURE__ */ new Set(), o = (g, c) => {
|
|
3737
3738
|
if (!Ti(g) || typeof c != "string" && typeof c != "number" && typeof c != "boolean") return;
|
|
3738
3739
|
const d = String(c).trim();
|
|
3739
3740
|
if (!d) return;
|
|
@@ -3758,69 +3759,69 @@ function zi(t, e) {
|
|
|
3758
3759
|
a.className = "gengage-chat-product-details-panel";
|
|
3759
3760
|
const n = t.props?.product ?? t.props;
|
|
3760
3761
|
if (!n) return a;
|
|
3761
|
-
const i = re(n, "name"), r = re(n, "brand"), o = re(n, "sku"), l = re(n, "cartCode", "cart_code"), g = re(n, "price"), c = re(n, "originalPrice", "price_original"), d =
|
|
3762
|
-
if (
|
|
3762
|
+
const i = re(n, "name"), r = re(n, "brand"), o = re(n, "sku"), l = re(n, "cartCode", "cart_code"), g = re(n, "price"), c = re(n, "originalPrice", "price_original"), d = Fe(n, "price_async"), s = Te(e, n), p = ze(e, n), h = !!(c && g && c !== g), v = Fe(n, "inStock", "in_stock"), u = Ue(n, "reviewCount", "review_count"), f = Ue(n, "rating"), y = _i(n), M = qt(n).slice(0, 4);
|
|
3763
|
+
if (y.length > 1) {
|
|
3763
3764
|
const b = document.createElement("div");
|
|
3764
3765
|
b.className = "gengage-chat-product-details-media gengage-chat-product-details-gallery gengage-chat-product-details-img-wrap";
|
|
3765
3766
|
const m = document.createElement("img");
|
|
3766
|
-
m.className = "gengage-chat-product-details-img", ne(m, "src",
|
|
3767
|
-
const
|
|
3768
|
-
|
|
3769
|
-
const
|
|
3770
|
-
let
|
|
3771
|
-
const
|
|
3772
|
-
H.type = "button", H.className = "gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn", H.setAttribute("aria-label", z), H.innerHTML =
|
|
3767
|
+
m.className = "gengage-chat-product-details-img", ne(m, "src", y[0]), m.alt = i ?? "Product image", ve(m), b.appendChild(m);
|
|
3768
|
+
const k = document.createElement("div");
|
|
3769
|
+
k.className = "gengage-chat-product-gallery-thumbs";
|
|
3770
|
+
const x = 6;
|
|
3771
|
+
let P = null, B = 0;
|
|
3772
|
+
const A = e.i18n, z = A?.galleryPrevAriaLabel ?? "Previous image", T = A?.galleryNextAriaLabel ?? "Next image", q = (V) => V === "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>', H = document.createElement("button");
|
|
3773
|
+
H.type = "button", H.className = "gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--prev gds-btn gds-btn-ghost gds-icon-btn", H.setAttribute("aria-label", z), H.innerHTML = q("prev");
|
|
3773
3774
|
const $ = document.createElement("button");
|
|
3774
|
-
$.type = "button", $.className = "gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--next gds-btn gds-btn-ghost gds-icon-btn", $.setAttribute("aria-label", T), $.innerHTML =
|
|
3775
|
+
$.type = "button", $.className = "gengage-chat-product-gallery-nav gengage-chat-product-gallery-nav--next gds-btn gds-btn-ghost gds-icon-btn", $.setAttribute("aria-label", T), $.innerHTML = q("next");
|
|
3775
3776
|
const te = () => {
|
|
3776
|
-
H.disabled =
|
|
3777
|
-
},
|
|
3778
|
-
if (
|
|
3779
|
-
const F =
|
|
3777
|
+
H.disabled = B <= 0, $.disabled = B >= y.length - 1;
|
|
3778
|
+
}, O = (V) => {
|
|
3779
|
+
if (V < 0 || V >= y.length || V === B) return;
|
|
3780
|
+
const F = y[V];
|
|
3780
3781
|
if (!F) return;
|
|
3781
3782
|
ne(m, "src", F);
|
|
3782
|
-
const R =
|
|
3783
|
-
|
|
3783
|
+
const R = k.querySelectorAll(".gengage-chat-product-gallery-thumb");
|
|
3784
|
+
P && P.classList.remove("gengage-chat-product-gallery-thumb--active"), V < x && R[V] ? (R[V].classList.add("gengage-chat-product-gallery-thumb--active"), P = R[V]) : P = null, B = V, te();
|
|
3784
3785
|
};
|
|
3785
|
-
for (let
|
|
3786
|
-
const F =
|
|
3787
|
-
if (
|
|
3786
|
+
for (let V = 0; V < y.length; V++) {
|
|
3787
|
+
const F = y[V];
|
|
3788
|
+
if (V >= x) break;
|
|
3788
3789
|
const R = document.createElement("img");
|
|
3789
|
-
R.className = "gengage-chat-product-gallery-thumb",
|
|
3790
|
-
|
|
3791
|
-
}),
|
|
3792
|
-
}
|
|
3793
|
-
if (
|
|
3794
|
-
const
|
|
3795
|
-
|
|
3796
|
-
}
|
|
3797
|
-
H.addEventListener("click", (
|
|
3798
|
-
|
|
3799
|
-
}), $.addEventListener("click", (
|
|
3800
|
-
|
|
3790
|
+
R.className = "gengage-chat-product-gallery-thumb", V === 0 && (R.classList.add("gengage-chat-product-gallery-thumb--active"), P = R), ne(R, "src", F), R.alt = `${i ?? "Product"} ${V + 1}`, R.width = 48, R.height = 48, ve(R), R.addEventListener("click", () => {
|
|
3791
|
+
O(V);
|
|
3792
|
+
}), k.appendChild(R);
|
|
3793
|
+
}
|
|
3794
|
+
if (y.length > x) {
|
|
3795
|
+
const V = document.createElement("span");
|
|
3796
|
+
V.className = "gengage-chat-product-gallery-thumb-more", V.textContent = `+${y.length - x}`, k.appendChild(V);
|
|
3797
|
+
}
|
|
3798
|
+
H.addEventListener("click", (V) => {
|
|
3799
|
+
V.stopPropagation(), O(B - 1);
|
|
3800
|
+
}), $.addEventListener("click", (V) => {
|
|
3801
|
+
V.stopPropagation(), O(B + 1);
|
|
3801
3802
|
}), te();
|
|
3802
3803
|
let ee = 0;
|
|
3803
3804
|
const oe = 50;
|
|
3804
|
-
m.addEventListener("touchstart", (
|
|
3805
|
-
ee =
|
|
3806
|
-
}, { passive: !0 }), m.addEventListener("touchend", (
|
|
3807
|
-
const F =
|
|
3808
|
-
Math.abs(R) < oe ||
|
|
3809
|
-
}), b.appendChild(H), b.appendChild($), b.appendChild(
|
|
3810
|
-
} else if (
|
|
3805
|
+
m.addEventListener("touchstart", (V) => {
|
|
3806
|
+
ee = V.changedTouches[0].clientX;
|
|
3807
|
+
}, { passive: !0 }), m.addEventListener("touchend", (V) => {
|
|
3808
|
+
const F = V.changedTouches[0].clientX, R = ee - F;
|
|
3809
|
+
Math.abs(R) < oe || O(R > 0 ? Math.min(B + 1, y.length - 1) : Math.max(B - 1, 0));
|
|
3810
|
+
}), b.appendChild(H), b.appendChild($), b.appendChild(k), a.appendChild(b);
|
|
3811
|
+
} else if (y.length === 1) {
|
|
3811
3812
|
const b = document.createElement("div");
|
|
3812
3813
|
b.className = "gengage-chat-product-details-media gengage-chat-product-details-img-wrap";
|
|
3813
3814
|
const m = document.createElement("img");
|
|
3814
|
-
m.className = "gengage-chat-product-details-img", m.loading = "lazy", ne(m, "src",
|
|
3815
|
+
m.className = "gengage-chat-product-details-img", m.loading = "lazy", ne(m, "src", y[0]), ve(m), m.alt = i ?? "Product image", b.appendChild(m), a.appendChild(b);
|
|
3815
3816
|
}
|
|
3816
|
-
const
|
|
3817
|
-
if (
|
|
3817
|
+
const _ = document.createElement("div");
|
|
3818
|
+
if (_.className = "gengage-chat-product-details-content", r && (!i || !i.toLowerCase().startsWith(r.toLowerCase()))) {
|
|
3818
3819
|
const b = document.createElement("div");
|
|
3819
|
-
b.className = "gengage-chat-product-details-brand", b.textContent = r,
|
|
3820
|
+
b.className = "gengage-chat-product-details-brand", b.textContent = r, _.appendChild(b);
|
|
3820
3821
|
}
|
|
3821
3822
|
if (i) {
|
|
3822
3823
|
const b = document.createElement("h3");
|
|
3823
|
-
b.className = "gengage-chat-product-details-title", b.textContent = i, b.title = i,
|
|
3824
|
+
b.className = "gengage-chat-product-details-title", b.textContent = i, b.title = i, _.appendChild(b);
|
|
3824
3825
|
}
|
|
3825
3826
|
if (typeof f == "number" && Number.isFinite(f) && f > 0) {
|
|
3826
3827
|
const b = document.createElement(o ? "button" : "div");
|
|
@@ -3833,38 +3834,38 @@ function zi(t, e) {
|
|
|
3833
3834
|
})), b.appendChild(Tt(f));
|
|
3834
3835
|
const m = document.createElement("span");
|
|
3835
3836
|
if (m.className = "gengage-chat-product-details-rating-value", m.textContent = Nt(f).toFixed(1), b.appendChild(m), typeof u == "number" && Number.isFinite(u)) {
|
|
3836
|
-
const
|
|
3837
|
-
|
|
3837
|
+
const k = document.createElement("span");
|
|
3838
|
+
k.className = "gengage-chat-product-details-review-count", k.textContent = ` (${u})`, b.appendChild(k);
|
|
3838
3839
|
}
|
|
3839
|
-
|
|
3840
|
+
_.appendChild(b);
|
|
3840
3841
|
}
|
|
3841
3842
|
{
|
|
3842
|
-
let b =
|
|
3843
|
+
let b = _;
|
|
3843
3844
|
if (s) {
|
|
3844
|
-
const
|
|
3845
|
-
|
|
3845
|
+
const k = document.createElement("div");
|
|
3846
|
+
k.className = "gengage-chat-product-details-price-stack", k.appendChild(qe(s)), _.appendChild(k), b = k;
|
|
3846
3847
|
}
|
|
3847
3848
|
const m = document.createElement("div");
|
|
3848
3849
|
if (m.className = "gengage-chat-product-details-price", d === !0) {
|
|
3849
|
-
const
|
|
3850
|
-
|
|
3851
|
-
if (
|
|
3850
|
+
const k = document.createElement("span");
|
|
3851
|
+
k.className = "gengage-chat-price-skeleton", m.appendChild(k), b.appendChild(m), setTimeout(() => {
|
|
3852
|
+
if (k.parentElement)
|
|
3852
3853
|
if (g && parseFloat(g) > 0) vt(m, e, n, g, c, p, h);
|
|
3853
3854
|
else {
|
|
3854
|
-
const
|
|
3855
|
-
m.remove(),
|
|
3855
|
+
const x = m.parentElement;
|
|
3856
|
+
m.remove(), x?.classList.contains("gengage-chat-product-details-price-stack") && x.remove();
|
|
3856
3857
|
}
|
|
3857
3858
|
}, 300);
|
|
3858
3859
|
} else if (g && parseFloat(g) > 0)
|
|
3859
3860
|
vt(m, e, n, g, c, p, h), b.appendChild(m);
|
|
3860
3861
|
else if (s) {
|
|
3861
|
-
const
|
|
3862
|
-
|
|
3862
|
+
const k = b;
|
|
3863
|
+
k.classList.contains("gengage-chat-product-details-price-stack") && k.remove();
|
|
3863
3864
|
}
|
|
3864
3865
|
}
|
|
3865
3866
|
if (typeof v == "boolean") {
|
|
3866
3867
|
const b = document.createElement("div");
|
|
3867
|
-
b.className = `gengage-chat-product-details-stock ${v ? "is-in-stock" : "is-out-of-stock"}`, b.textContent = v ? e.i18n?.inStockLabel ?? "In Stock" : e.i18n?.outOfStockLabel ?? "Out of Stock",
|
|
3868
|
+
b.className = `gengage-chat-product-details-stock ${v ? "is-in-stock" : "is-out-of-stock"}`, b.textContent = v ? e.i18n?.inStockLabel ?? "In Stock" : e.i18n?.outOfStockLabel ?? "Out of Stock", _.appendChild(b);
|
|
3868
3869
|
}
|
|
3869
3870
|
const E = n.promotions;
|
|
3870
3871
|
if (E && E.length > 0) {
|
|
@@ -3872,76 +3873,76 @@ function zi(t, e) {
|
|
|
3872
3873
|
b.className = "gengage-chat-product-details-promos";
|
|
3873
3874
|
for (const m of E.slice(0, 3)) {
|
|
3874
3875
|
if (!m || /%(0(\.0+)?)\s/.test(m)) continue;
|
|
3875
|
-
const
|
|
3876
|
-
|
|
3876
|
+
const k = document.createElement("span");
|
|
3877
|
+
k.className = "gengage-chat-product-details-promo-badge", k.textContent = m, k.title = m, b.appendChild(k);
|
|
3877
3878
|
}
|
|
3878
|
-
b.childElementCount > 0 &&
|
|
3879
|
+
b.childElementCount > 0 && _.appendChild(b);
|
|
3879
3880
|
}
|
|
3880
|
-
if (
|
|
3881
|
+
if (M.length > 0) {
|
|
3881
3882
|
const b = document.createElement("dl");
|
|
3882
3883
|
b.className = "gengage-chat-product-details-facts";
|
|
3883
|
-
for (const m of
|
|
3884
|
-
const
|
|
3885
|
-
|
|
3886
|
-
const
|
|
3887
|
-
|
|
3888
|
-
const
|
|
3889
|
-
|
|
3884
|
+
for (const m of M) {
|
|
3885
|
+
const k = document.createElement("div");
|
|
3886
|
+
k.className = "gengage-chat-product-details-fact";
|
|
3887
|
+
const x = document.createElement("dt");
|
|
3888
|
+
x.textContent = m.key;
|
|
3889
|
+
const P = document.createElement("dd");
|
|
3890
|
+
P.textContent = m.value, k.appendChild(x), k.appendChild(P), b.appendChild(k);
|
|
3890
3891
|
}
|
|
3891
|
-
|
|
3892
|
+
_.appendChild(b);
|
|
3892
3893
|
}
|
|
3893
|
-
const
|
|
3894
|
-
if (
|
|
3894
|
+
const C = Mi(n);
|
|
3895
|
+
if (C.length > 0) {
|
|
3895
3896
|
const b = document.createElement("div");
|
|
3896
3897
|
b.className = "gengage-chat-product-variants";
|
|
3897
3898
|
const m = document.createElement("div");
|
|
3898
|
-
m.className = "gengage-chat-product-variants-label", m.textContent = Bi(
|
|
3899
|
-
const
|
|
3900
|
-
|
|
3901
|
-
for (const
|
|
3902
|
-
const
|
|
3903
|
-
if (!
|
|
3904
|
-
const
|
|
3905
|
-
|
|
3906
|
-
const z =
|
|
3907
|
-
|
|
3908
|
-
const T =
|
|
3909
|
-
|
|
3910
|
-
const
|
|
3911
|
-
if (
|
|
3912
|
-
const
|
|
3913
|
-
|
|
3899
|
+
m.className = "gengage-chat-product-variants-label", m.textContent = Bi(C, e), b.appendChild(m);
|
|
3900
|
+
const k = document.createElement("div");
|
|
3901
|
+
k.className = "gengage-chat-product-variants-list";
|
|
3902
|
+
for (const x of C) {
|
|
3903
|
+
const P = Vt(x), B = ye(x, "sku");
|
|
3904
|
+
if (!P && !B) continue;
|
|
3905
|
+
const A = document.createElement("button");
|
|
3906
|
+
A.className = "gengage-chat-product-variant-btn gds-chip", A.type = "button";
|
|
3907
|
+
const z = P ?? B ?? "";
|
|
3908
|
+
A.title = z;
|
|
3909
|
+
const T = Fe(x, "in_stock", "inStock");
|
|
3910
|
+
B && o && B === o ? (A.classList.add("gengage-chat-product-variant-btn--active"), A.setAttribute("aria-pressed", "true")) : A.setAttribute("aria-pressed", "false"), T === !1 && (A.classList.add("gengage-chat-product-variant-btn--out"), A.disabled = !0);
|
|
3911
|
+
const q = Ai(x), H = Pi(x);
|
|
3912
|
+
if (q && ce(q)) {
|
|
3913
|
+
const O = document.createElement("img");
|
|
3914
|
+
O.className = "gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image", ne(O, "src", q), O.alt = "", O.setAttribute("aria-hidden", "true"), ve(O), A.appendChild(O);
|
|
3914
3915
|
} else if (H) {
|
|
3915
|
-
const
|
|
3916
|
-
|
|
3916
|
+
const O = document.createElement("span");
|
|
3917
|
+
O.className = "gengage-chat-product-variant-swatch", O.setAttribute("aria-hidden", "true"), O.style.backgroundColor = H, A.appendChild(O);
|
|
3917
3918
|
}
|
|
3918
3919
|
const $ = document.createElement("span");
|
|
3919
|
-
$.className = "gengage-chat-product-variant-label", $.textContent = z,
|
|
3920
|
-
const te = Li(
|
|
3920
|
+
$.className = "gengage-chat-product-variant-label", $.textContent = z, A.appendChild($);
|
|
3921
|
+
const te = Li(x);
|
|
3921
3922
|
if (te && String(te) !== String(g)) {
|
|
3922
|
-
const
|
|
3923
|
-
|
|
3923
|
+
const O = document.createElement("span");
|
|
3924
|
+
O.className = "gengage-chat-product-variant-price", O.textContent = Y(String(te), e.pricing), A.appendChild(O);
|
|
3924
3925
|
}
|
|
3925
|
-
if (
|
|
3926
|
-
const
|
|
3927
|
-
|
|
3926
|
+
if (B && B !== o) {
|
|
3927
|
+
const O = i ?? "", ee = (typeof x.value == "string" ? x.value.trim() : "") || (typeof x.name == "string" ? x.name.trim() : "") || (typeof x.variant_name == "string" ? x.variant_name.trim() : "") || "", oe = O.length > 0 ? ee.length > 0 && ee !== O ? `${O} (${ee})` : O : z;
|
|
3928
|
+
A.addEventListener("click", () => {
|
|
3928
3929
|
e.onAction({
|
|
3929
3930
|
title: oe,
|
|
3930
3931
|
type: "launchVariant",
|
|
3931
|
-
payload: { sku:
|
|
3932
|
+
payload: { sku: B }
|
|
3932
3933
|
});
|
|
3933
3934
|
});
|
|
3934
3935
|
}
|
|
3935
|
-
|
|
3936
|
+
k.appendChild(A);
|
|
3936
3937
|
}
|
|
3937
|
-
|
|
3938
|
+
k.childElementCount > 0 && (b.appendChild(k), _.appendChild(b));
|
|
3938
3939
|
}
|
|
3939
|
-
const
|
|
3940
|
-
|
|
3941
|
-
const
|
|
3942
|
-
if (
|
|
3940
|
+
const L = document.createElement("div");
|
|
3941
|
+
L.className = "gengage-chat-product-details-actions";
|
|
3942
|
+
const I = t.props?.action;
|
|
3943
|
+
if (I) {
|
|
3943
3944
|
const b = document.createElement("button");
|
|
3944
|
-
b.className = "gengage-chat-product-details-cta gds-btn gds-btn-primary", b.type = "button", b.textContent =
|
|
3945
|
+
b.className = "gengage-chat-product-details-cta gds-btn gds-btn-primary", b.type = "button", b.textContent = I.title || e.i18n?.productCtaLabel || "View", b.addEventListener("click", () => e.onAction(I)), L.appendChild(b);
|
|
3945
3946
|
}
|
|
3946
3947
|
if (l && o && v !== !1) {
|
|
3947
3948
|
const b = document.createElement("button");
|
|
@@ -3955,45 +3956,45 @@ function zi(t, e) {
|
|
|
3955
3956
|
quantity: 1
|
|
3956
3957
|
}
|
|
3957
3958
|
});
|
|
3958
|
-
}),
|
|
3959
|
+
}), L.appendChild(b);
|
|
3959
3960
|
}
|
|
3960
|
-
const
|
|
3961
|
-
if (!
|
|
3961
|
+
const N = re(n, "url");
|
|
3962
|
+
if (!I && N && ce(N)) {
|
|
3962
3963
|
const b = document.createElement("a");
|
|
3963
|
-
b.className = "gengage-chat-product-details-cta gds-btn gds-btn-secondary", ne(b, "href",
|
|
3964
|
+
b.className = "gengage-chat-product-details-cta gds-btn gds-btn-secondary", ne(b, "href", N), ne(b, "target", "_blank"), ne(b, "rel", "noopener noreferrer"), b.textContent = e.i18n?.viewOnSiteLabel ?? e.i18n?.productCtaLabel ?? "View on Site", b.addEventListener("click", (m) => {
|
|
3964
3965
|
e.onProductClick && o && (m.preventDefault(), e.onProductClick({
|
|
3965
3966
|
sku: o,
|
|
3966
|
-
url:
|
|
3967
|
+
url: N
|
|
3967
3968
|
}));
|
|
3968
|
-
}),
|
|
3969
|
-
}
|
|
3970
|
-
const
|
|
3971
|
-
if (
|
|
3972
|
-
let
|
|
3973
|
-
const T = document.createElementNS(
|
|
3974
|
-
T.setAttribute("cx",
|
|
3975
|
-
},
|
|
3976
|
-
const H = document.createElementNS(
|
|
3977
|
-
H.setAttribute("x1",
|
|
3969
|
+
}), L.appendChild(b);
|
|
3970
|
+
}
|
|
3971
|
+
const j = N;
|
|
3972
|
+
if (j && ce(j)) {
|
|
3973
|
+
let P = function(A, z) {
|
|
3974
|
+
const T = document.createElementNS(k, "circle");
|
|
3975
|
+
T.setAttribute("cx", A), T.setAttribute("cy", z), T.setAttribute("r", "3"), x.appendChild(T);
|
|
3976
|
+
}, B = function(A, z, T, q) {
|
|
3977
|
+
const H = document.createElementNS(k, "line");
|
|
3978
|
+
H.setAttribute("x1", A), H.setAttribute("y1", z), H.setAttribute("x2", T), H.setAttribute("y2", q), x.appendChild(H);
|
|
3978
3979
|
};
|
|
3979
3980
|
const b = document.createElement("button");
|
|
3980
3981
|
b.className = "gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn", b.type = "button";
|
|
3981
3982
|
const m = e.i18n?.shareButton ?? "Share";
|
|
3982
3983
|
b.title = m, b.setAttribute("aria-label", m);
|
|
3983
|
-
const
|
|
3984
|
-
|
|
3984
|
+
const k = "http://www.w3.org/2000/svg", x = document.createElementNS(k, "svg");
|
|
3985
|
+
x.setAttribute("width", "18"), x.setAttribute("height", "18"), x.setAttribute("viewBox", "0 0 24 24"), x.setAttribute("fill", "none"), x.setAttribute("stroke", "currentColor"), x.setAttribute("stroke-width", "2"), x.setAttribute("stroke-linecap", "round"), x.setAttribute("stroke-linejoin", "round"), P("18", "5"), P("6", "12"), P("18", "19"), B("8.59", "13.51", "15.42", "17.49"), B("15.41", "6.51", "8.59", "10.49"), b.appendChild(x), b.addEventListener("click", async () => {
|
|
3985
3986
|
try {
|
|
3986
3987
|
navigator.share ? await navigator.share({
|
|
3987
3988
|
title: i ?? "",
|
|
3988
|
-
url:
|
|
3989
|
-
}) : navigator.clipboard && (await navigator.clipboard.writeText(
|
|
3989
|
+
url: j
|
|
3990
|
+
}) : navigator.clipboard && (await navigator.clipboard.writeText(j), b.classList.add("gengage-chat-product-details-share--copied"), setTimeout(() => b.classList.remove("gengage-chat-product-details-share--copied"), 1500));
|
|
3990
3991
|
} catch {
|
|
3991
3992
|
}
|
|
3992
|
-
}),
|
|
3993
|
+
}), L.appendChild(b);
|
|
3993
3994
|
}
|
|
3994
|
-
|
|
3995
|
-
const
|
|
3996
|
-
return (
|
|
3995
|
+
L.childElementCount > 0 && _.appendChild(L), a.appendChild(_);
|
|
3996
|
+
const K = Ci(n), G = Si(n);
|
|
3997
|
+
return (K || G) && a.appendChild(Fi(K, G, e)), a;
|
|
3997
3998
|
}
|
|
3998
3999
|
function at(t) {
|
|
3999
4000
|
if (t.nodeType === Node.TEXT_NODE) return document.createTextNode(t.textContent ?? "");
|
|
@@ -4160,66 +4161,66 @@ function qi(t, e, a, n) {
|
|
|
4160
4161
|
u.className = "gengage-chat-product-sort-dropdown";
|
|
4161
4162
|
const f = document.createElement("button");
|
|
4162
4163
|
f.type = "button", f.className = "gengage-chat-product-sort-trigger gds-btn gds-btn-ghost", f.setAttribute("aria-haspopup", "listbox"), f.setAttribute("aria-expanded", "false");
|
|
4163
|
-
const
|
|
4164
|
-
|
|
4165
|
-
const
|
|
4166
|
-
|
|
4164
|
+
const y = n.i18n?.sortToolbarAriaLabel ?? "Sort products", M = document.createElement("span");
|
|
4165
|
+
M.className = "gengage-chat-product-sort-trigger-icon";
|
|
4166
|
+
const _ = document.createElement("span");
|
|
4167
|
+
_.className = "gengage-chat-product-sort-trigger-label";
|
|
4167
4168
|
const E = (m) => {
|
|
4168
|
-
const
|
|
4169
|
-
|
|
4169
|
+
const k = v.find((x) => _t(x.sortState, m)) ?? v[0];
|
|
4170
|
+
_.textContent = k.label, M.innerHTML = wt(k.icon), u.dataset.sortIcon = k.icon, f.setAttribute("aria-label", `${y}: ${k.label}`), f.title = k.label;
|
|
4170
4171
|
};
|
|
4171
4172
|
E(h);
|
|
4172
|
-
const
|
|
4173
|
-
|
|
4174
|
-
const
|
|
4175
|
-
|
|
4176
|
-
const
|
|
4177
|
-
let
|
|
4178
|
-
const
|
|
4179
|
-
|
|
4180
|
-
}, Z = (m) => {
|
|
4181
|
-
u.classList.contains("gengage-chat-product-sort-dropdown--open") && (u.contains(m.target) || V());
|
|
4173
|
+
const C = document.createElement("span");
|
|
4174
|
+
C.className = "gengage-chat-product-sort-trigger-chevron", C.innerHTML = Di(), f.appendChild(M), f.appendChild(_), f.appendChild(C);
|
|
4175
|
+
const L = document.createElement("div");
|
|
4176
|
+
L.className = "gengage-chat-product-sort-menu gds-menu", L.hidden = !0, L.setAttribute("role", "listbox"), L.setAttribute("aria-label", y);
|
|
4177
|
+
const I = p.ownerDocument;
|
|
4178
|
+
let N = null;
|
|
4179
|
+
const j = () => {
|
|
4180
|
+
L.hidden = !0, u.classList.remove("gengage-chat-product-sort-dropdown--open"), f.setAttribute("aria-expanded", "false"), N?.abort(), N = null;
|
|
4182
4181
|
}, K = (m) => {
|
|
4183
|
-
|
|
4182
|
+
u.classList.contains("gengage-chat-product-sort-dropdown--open") && (u.contains(m.target) || j());
|
|
4183
|
+
}, G = (m) => {
|
|
4184
|
+
m.key === "Escape" && (m.preventDefault(), j());
|
|
4184
4185
|
}, b = () => {
|
|
4185
|
-
|
|
4186
|
-
const { signal: m } =
|
|
4187
|
-
|
|
4186
|
+
L.hidden = !1, u.classList.add("gengage-chat-product-sort-dropdown--open"), f.setAttribute("aria-expanded", "true"), N = new AbortController();
|
|
4187
|
+
const { signal: m } = N;
|
|
4188
|
+
I.addEventListener("click", K, { signal: m }), I.addEventListener("keydown", G, {
|
|
4188
4189
|
capture: !0,
|
|
4189
4190
|
signal: m
|
|
4190
4191
|
});
|
|
4191
4192
|
};
|
|
4192
4193
|
f.addEventListener("click", (m) => {
|
|
4193
|
-
m.stopPropagation(), u.classList.contains("gengage-chat-product-sort-dropdown--open") ?
|
|
4194
|
+
m.stopPropagation(), u.classList.contains("gengage-chat-product-sort-dropdown--open") ? j() : b();
|
|
4194
4195
|
});
|
|
4195
4196
|
for (const m of v) {
|
|
4196
|
-
const
|
|
4197
|
-
|
|
4198
|
-
const
|
|
4199
|
-
|
|
4200
|
-
const
|
|
4201
|
-
|
|
4202
|
-
const
|
|
4203
|
-
|
|
4204
|
-
const
|
|
4205
|
-
|
|
4197
|
+
const k = document.createElement("button");
|
|
4198
|
+
k.type = "button", k.className = "gengage-chat-product-sort-option gds-menu-option", k.setAttribute("role", "option");
|
|
4199
|
+
const x = _t(h, m.sortState);
|
|
4200
|
+
k.setAttribute("aria-selected", x ? "true" : "false"), x && k.classList.add("gengage-chat-product-sort-option--active", "gds-menu-option-active");
|
|
4201
|
+
const P = m.sortState.type === "related" ? "related" : `price-${m.sortState.direction ?? ""}`;
|
|
4202
|
+
k.dataset.sortKey = P;
|
|
4203
|
+
const B = document.createElement("span");
|
|
4204
|
+
B.className = "gengage-chat-product-sort-option-icon", B.innerHTML = wt(m.icon);
|
|
4205
|
+
const A = document.createElement("span");
|
|
4206
|
+
A.className = "gengage-chat-product-sort-option-label", A.textContent = m.label;
|
|
4206
4207
|
const z = document.createElement("span");
|
|
4207
|
-
z.className = "gengage-chat-product-sort-option-check", z.innerHTML = Ui(), z.setAttribute("aria-hidden", "true"),
|
|
4208
|
-
h = m.sortState, n.onSortChange?.(m.sortState), Oi(g, l, e, m.sortState),
|
|
4209
|
-
const
|
|
4210
|
-
|
|
4211
|
-
}), E(m.sortState),
|
|
4212
|
-
}),
|
|
4213
|
-
}
|
|
4214
|
-
if (u.appendChild(f), u.appendChild(
|
|
4208
|
+
z.className = "gengage-chat-product-sort-option-check", z.innerHTML = Ui(), z.setAttribute("aria-hidden", "true"), x || z.classList.add("gengage-chat-product-sort-option-check--hidden"), k.appendChild(B), k.appendChild(A), k.appendChild(z), k.addEventListener("click", () => {
|
|
4209
|
+
h = m.sortState, n.onSortChange?.(m.sortState), Oi(g, l, e, m.sortState), L.querySelectorAll(".gengage-chat-product-sort-option").forEach((T) => {
|
|
4210
|
+
const q = T, H = q.dataset.sortKey === P;
|
|
4211
|
+
q.classList.toggle("gengage-chat-product-sort-option--active", H), q.classList.toggle("gds-menu-option-active", H), q.setAttribute("aria-selected", H ? "true" : "false"), q.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden", !H);
|
|
4212
|
+
}), E(m.sortState), j();
|
|
4213
|
+
}), L.appendChild(k);
|
|
4214
|
+
}
|
|
4215
|
+
if (u.appendChild(f), u.appendChild(L), p.appendChild(u), n.onToggleComparisonSku) {
|
|
4215
4216
|
const m = document.createElement("button");
|
|
4216
4217
|
m.className = "gengage-chat-comparison-toggle-btn gds-btn gds-btn-ghost", m.type = "button", n.comparisonSelectMode && m.classList.add("gengage-chat-comparison-toggle-btn--active"), n.isStreaming && m.classList.add("gengage-chat-comparison-toggle-btn--hidden");
|
|
4217
|
-
const
|
|
4218
|
-
|
|
4219
|
-
const
|
|
4220
|
-
|
|
4221
|
-
const
|
|
4222
|
-
|
|
4218
|
+
const k = document.createElement("span");
|
|
4219
|
+
k.className = "gengage-chat-comparison-toggle-icon", k.innerHTML = ji();
|
|
4220
|
+
const x = document.createElement("span");
|
|
4221
|
+
x.className = "gengage-chat-comparison-toggle-label";
|
|
4222
|
+
const P = n.i18n?.compareSelected ?? "Compare";
|
|
4223
|
+
x.textContent = P, m.setAttribute("aria-label", P), m.title = P, m.appendChild(k), m.appendChild(x), m.addEventListener("click", () => {
|
|
4223
4224
|
n.onToggleComparisonSku?.("");
|
|
4224
4225
|
}), p.appendChild(m);
|
|
4225
4226
|
}
|
|
@@ -4227,10 +4228,10 @@ function qi(t, e, a, n) {
|
|
|
4227
4228
|
p.classList.add("gengage-chat-product-sort-toolbar--inline");
|
|
4228
4229
|
const m = document.createElement("div");
|
|
4229
4230
|
m.className = "gengage-chat-product-grid-head";
|
|
4230
|
-
const
|
|
4231
|
-
|
|
4232
|
-
const
|
|
4233
|
-
|
|
4231
|
+
const k = document.createElement("span");
|
|
4232
|
+
k.className = "gengage-chat-product-grid-head-title", k.textContent = c, m.appendChild(k);
|
|
4233
|
+
const x = document.createElement("div");
|
|
4234
|
+
x.className = "gengage-chat-product-grid-head-actions", x.appendChild(p), m.appendChild(x), i.appendChild(m);
|
|
4234
4235
|
} else i.appendChild(p);
|
|
4235
4236
|
} else if (c) {
|
|
4236
4237
|
const p = document.createElement("div");
|
|
@@ -4247,7 +4248,7 @@ function qi(t, e, a, n) {
|
|
|
4247
4248
|
v && (v.dataset.elementId = h, g.appendChild(v));
|
|
4248
4249
|
}
|
|
4249
4250
|
}
|
|
4250
|
-
(n?.isMobile ??
|
|
4251
|
+
(n?.isMobile ?? et()) && g.classList.add("gengage-chat-product-grid--mobile"), i.appendChild(g);
|
|
4251
4252
|
const d = t.props?.endOfList;
|
|
4252
4253
|
if (!o && d !== !0 && l.length > 0) {
|
|
4253
4254
|
const p = n?.i18n?.viewMoreLabel ?? "Show More", h = document.createElement("button");
|
|
@@ -4259,7 +4260,7 @@ function qi(t, e, a, n) {
|
|
|
4259
4260
|
});
|
|
4260
4261
|
}), i.appendChild(h);
|
|
4261
4262
|
}
|
|
4262
|
-
const s = n?.isMobile ??
|
|
4263
|
+
const s = n?.isMobile ?? et();
|
|
4263
4264
|
if (n?.comparisonSelectMode && n.comparisonSelectedSkus && !s) {
|
|
4264
4265
|
const p = Dt(n.comparisonSelectedSkus, n);
|
|
4265
4266
|
i.appendChild(p);
|
|
@@ -4294,7 +4295,7 @@ function Vi(t, e) {
|
|
|
4294
4295
|
addToCartButton: e.i18n.addToCartButton
|
|
4295
4296
|
});
|
|
4296
4297
|
const h = In(p);
|
|
4297
|
-
return (e.isMobile ??
|
|
4298
|
+
return (e.isMobile ?? et()) && h.classList.add("gengage-chat-comparison--mobile"), h;
|
|
4298
4299
|
}
|
|
4299
4300
|
function $i(t) {
|
|
4300
4301
|
const e = document.createElement("hr");
|
|
@@ -4406,15 +4407,15 @@ function Xi(t) {
|
|
|
4406
4407
|
g = l.nextNode();
|
|
4407
4408
|
continue;
|
|
4408
4409
|
}
|
|
4409
|
-
const v = d.slice(0, s), u = d.slice(s, s + o.short_name.length), f = d.slice(s + o.short_name.length),
|
|
4410
|
-
if (!
|
|
4410
|
+
const v = d.slice(0, s), u = d.slice(s, s + o.short_name.length), f = d.slice(s + o.short_name.length), y = g.parentNode;
|
|
4411
|
+
if (!y) {
|
|
4411
4412
|
g = l.nextNode();
|
|
4412
4413
|
continue;
|
|
4413
4414
|
}
|
|
4414
|
-
const
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
}), v &&
|
|
4415
|
+
const M = document.createElement("a");
|
|
4416
|
+
M.className = "gengage-product-mention", M.textContent = u, M.href = "#", M.addEventListener("click", (_) => {
|
|
4417
|
+
_.preventDefault(), n(o.sku);
|
|
4418
|
+
}), v && y.insertBefore(document.createTextNode(v), g), y.insertBefore(M, g), f && y.insertBefore(document.createTextNode(f), g), y.removeChild(g), c = !0;
|
|
4418
4419
|
}
|
|
4419
4420
|
}
|
|
4420
4421
|
}
|
|
@@ -4433,7 +4434,7 @@ var Qi = /* @__PURE__ */ new Set([
|
|
|
4433
4434
|
function er(t) {
|
|
4434
4435
|
return !!(t.icon && Qi.has(t.icon) || t.action?.type && Ji.has(t.action.type));
|
|
4435
4436
|
}
|
|
4436
|
-
var
|
|
4437
|
+
var Oe = "gengage_choice_prompter_dismissed", tr = "gengage_choice_prompter_dismissed_global";
|
|
4437
4438
|
function ar(t) {
|
|
4438
4439
|
const e = document.createElement("div");
|
|
4439
4440
|
e.className = "gengage-chat-choice-prompter gds-card", e.dataset.gengagePart = "choice-prompter";
|
|
@@ -4454,13 +4455,13 @@ function ar(t) {
|
|
|
4454
4455
|
}
|
|
4455
4456
|
function nr() {
|
|
4456
4457
|
try {
|
|
4457
|
-
sessionStorage.removeItem(
|
|
4458
|
+
sessionStorage.removeItem(Oe), sessionStorage.removeItem(tr);
|
|
4458
4459
|
} catch {
|
|
4459
4460
|
}
|
|
4460
4461
|
}
|
|
4461
4462
|
function ir(t) {
|
|
4462
4463
|
try {
|
|
4463
|
-
const e = sessionStorage.getItem(
|
|
4464
|
+
const e = sessionStorage.getItem(Oe);
|
|
4464
4465
|
return e ? JSON.parse(e).includes(t) : !1;
|
|
4465
4466
|
} catch {
|
|
4466
4467
|
return !1;
|
|
@@ -4468,8 +4469,8 @@ function ir(t) {
|
|
|
4468
4469
|
}
|
|
4469
4470
|
function nt(t) {
|
|
4470
4471
|
try {
|
|
4471
|
-
const e = sessionStorage.getItem(
|
|
4472
|
-
a.includes(t) || a.push(t), sessionStorage.setItem(
|
|
4472
|
+
const e = sessionStorage.getItem(Oe), a = e ? JSON.parse(e) : [];
|
|
4473
|
+
a.includes(t) || a.push(t), sessionStorage.setItem(Oe, JSON.stringify(a));
|
|
4473
4474
|
} catch {
|
|
4474
4475
|
}
|
|
4475
4476
|
}
|
|
@@ -4879,7 +4880,7 @@ var St = class {
|
|
|
4879
4880
|
close() {
|
|
4880
4881
|
this._db?.close(), this._db = null;
|
|
4881
4882
|
}
|
|
4882
|
-
},
|
|
4883
|
+
}, Ye = (t) => `${t}:assistant`, hr = class {
|
|
4883
4884
|
constructor() {
|
|
4884
4885
|
this.groups = {}, this.pinnedToBottom = !0, this.userInteracting = !1, this.focusedThreadId = null, this.shown = !1, this.lastAutoAnchoredGroupId = null, this.scrollRequest = null, this._nextScrollId = 1;
|
|
4885
4886
|
}
|
|
@@ -4890,7 +4891,7 @@ var St = class {
|
|
|
4890
4891
|
this.groups = {}, this.pinnedToBottom = !0, this.userInteracting = !1, this.focusedThreadId = null, this.lastAutoAnchoredGroupId = null, this.scrollRequest = null;
|
|
4891
4892
|
}
|
|
4892
4893
|
registerAssistantActivity(t) {
|
|
4893
|
-
const e =
|
|
4894
|
+
const e = Ye(t), a = this.groups[e], n = this.shown && this.pinnedToBottom && !this.userInteracting ? "active_unread" : "unseen";
|
|
4894
4895
|
this.groups[e] = {
|
|
4895
4896
|
id: e,
|
|
4896
4897
|
threadId: t,
|
|
@@ -4900,7 +4901,7 @@ var St = class {
|
|
|
4900
4901
|
}, a?.readState === "seen" && this.lastAutoAnchoredGroupId === e && (this.lastAutoAnchoredGroupId = null);
|
|
4901
4902
|
}
|
|
4902
4903
|
finalizeAssistantGroup(t) {
|
|
4903
|
-
const e =
|
|
4904
|
+
const e = Ye(t), a = this.groups[e];
|
|
4904
4905
|
a && (a.status = "complete", a.updatedAt = Date.now());
|
|
4905
4906
|
}
|
|
4906
4907
|
setGroupReadStates(t) {
|
|
@@ -4941,7 +4942,7 @@ var St = class {
|
|
|
4941
4942
|
return this.shown && this.userInteracting && !this.pinnedToBottom;
|
|
4942
4943
|
}
|
|
4943
4944
|
getAssistantReadState(t) {
|
|
4944
|
-
return this.groups[
|
|
4945
|
+
return this.groups[Ye(t)]?.readState;
|
|
4945
4946
|
}
|
|
4946
4947
|
};
|
|
4947
4948
|
function ur(t, e) {
|
|
@@ -5032,49 +5033,49 @@ button[data-gengage-part="chat-launcher-button"] img {
|
|
|
5032
5033
|
}
|
|
5033
5034
|
}
|
|
5034
5035
|
`.trim(), f = () => {
|
|
5035
|
-
for (const
|
|
5036
|
-
if (!(
|
|
5037
|
-
const
|
|
5038
|
-
if (
|
|
5039
|
-
return
|
|
5036
|
+
for (const C of document.querySelectorAll("[data-gengage-widget]")) {
|
|
5037
|
+
if (!(C instanceof HTMLElement)) continue;
|
|
5038
|
+
const L = C.shadowRoot;
|
|
5039
|
+
if (L && (L.querySelector('[data-gengage-part="chat-launcher-button"]') || L.querySelector(".gengage-chat-root")))
|
|
5040
|
+
return C;
|
|
5040
5041
|
}
|
|
5041
5042
|
return null;
|
|
5042
|
-
},
|
|
5043
|
-
if (
|
|
5044
|
-
const
|
|
5045
|
-
|
|
5046
|
-
},
|
|
5047
|
-
|
|
5048
|
-
const
|
|
5049
|
-
if (!(
|
|
5050
|
-
const
|
|
5051
|
-
if (
|
|
5052
|
-
const
|
|
5053
|
-
(!
|
|
5054
|
-
}
|
|
5055
|
-
if (
|
|
5056
|
-
|
|
5057
|
-
const
|
|
5058
|
-
return
|
|
5043
|
+
}, y = (C) => {
|
|
5044
|
+
if (C.getElementById(l)) return;
|
|
5045
|
+
const L = document.createElement("style");
|
|
5046
|
+
L.id = l, L.textContent = u, C.appendChild(L);
|
|
5047
|
+
}, M = CSS.escape(o), _ = (C) => {
|
|
5048
|
+
y(C);
|
|
5049
|
+
const L = C.querySelector('[data-gengage-part="chat-launcher-button"]');
|
|
5050
|
+
if (!(L instanceof HTMLButtonElement)) return !1;
|
|
5051
|
+
const I = C.querySelector('[data-gengage-part="chat-header-avatar"]');
|
|
5052
|
+
if (I instanceof HTMLImageElement) {
|
|
5053
|
+
const j = C.querySelector('[data-gengage-part="chat-launcher-button"] img');
|
|
5054
|
+
(!j || I.src === j.src) && I.classList.remove("gengage-chat-header-avatar--logo");
|
|
5055
|
+
}
|
|
5056
|
+
if (L.querySelector(`.${M}`)) return !0;
|
|
5057
|
+
L.setAttribute("aria-label", e);
|
|
5058
|
+
const N = document.createElement("span");
|
|
5059
|
+
return N.className = o, N.textContent = e, L.appendChild(N), !0;
|
|
5059
5060
|
};
|
|
5060
5061
|
return {
|
|
5061
5062
|
launcherImageUrl: a,
|
|
5062
|
-
apply: async (
|
|
5063
|
-
if (
|
|
5064
|
-
|
|
5065
|
-
for (let
|
|
5066
|
-
if (
|
|
5067
|
-
await new Promise((
|
|
5063
|
+
apply: async (C) => {
|
|
5064
|
+
if (C) {
|
|
5065
|
+
y(C), await Promise.resolve();
|
|
5066
|
+
for (let I = 0; I < 90; I++) {
|
|
5067
|
+
if (_(C)) return;
|
|
5068
|
+
await new Promise((N) => requestAnimationFrame(() => N()));
|
|
5068
5069
|
}
|
|
5069
5070
|
return;
|
|
5070
5071
|
}
|
|
5071
|
-
const
|
|
5072
|
-
|
|
5073
|
-
for (let
|
|
5074
|
-
const
|
|
5075
|
-
if (
|
|
5072
|
+
const L = f();
|
|
5073
|
+
L?.shadowRoot && y(L.shadowRoot), await Promise.resolve();
|
|
5074
|
+
for (let I = 0; I < 90; I++) {
|
|
5075
|
+
const N = f()?.shadowRoot ?? null;
|
|
5076
|
+
if (N && (y(N), _(N)))
|
|
5076
5077
|
return;
|
|
5077
|
-
await new Promise((
|
|
5078
|
+
await new Promise((j) => requestAnimationFrame(() => j()));
|
|
5078
5079
|
}
|
|
5079
5080
|
}
|
|
5080
5081
|
};
|
|
@@ -5128,7 +5129,7 @@ function Et(t) {
|
|
|
5128
5129
|
return !1;
|
|
5129
5130
|
}
|
|
5130
5131
|
}
|
|
5131
|
-
function
|
|
5132
|
+
function Ke(t) {
|
|
5132
5133
|
try {
|
|
5133
5134
|
localStorage.setItem(`${Wt}_${t}`, "1");
|
|
5134
5135
|
} catch {
|
|
@@ -5156,8 +5157,8 @@ var Sr = {
|
|
|
5156
5157
|
function Er(t) {
|
|
5157
5158
|
return t ? Sr[t.toLowerCase().slice(0, 2)] ?? "TURKISH" : "TURKISH";
|
|
5158
5159
|
}
|
|
5159
|
-
var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel-container,.gengage-simbut-root){--ds-neutral-0:#fff;--ds-neutral-25:#fcfcfd;--ds-neutral-50:#f6f7fb;--ds-neutral-100:#f3f4f6;--ds-neutral-200:#e5e7eb;--ds-neutral-300:#d0d5dd;--ds-neutral-500:#667085;--ds-neutral-600:#475467;--ds-neutral-700:#344054;--ds-neutral-900:#111827;--ds-radius-2:8px;--ds-radius-3:12px;--ds-radius-4:16px;--ds-radius-5:20px;--ds-radius-6:24px;--ds-radius-pill:999px;--ds-shadow-1:0 1px 2px #1018280a, 0 1px 3px #1018280f;--ds-shadow-2:0 4px 12px #10182814;--ds-shadow-3:0 10px 24px #1018281f;--client-primary:var(--gengage-primary-color,#b7102a);--client-primary-hover:var(--gengage-primary-hover,color-mix(in srgb, var(--client-primary) 88%, black 12%));--client-primary-active:var(--gengage-primary-active,color-mix(in srgb, var(--client-primary) 78%, black 22%));--client-primary-subtle:color-mix(in srgb, var(--client-primary) 12%, white);--client-primary-soft:color-mix(in srgb, var(--client-primary) 20%, white);--client-on-primary:var(--gengage-primary-foreground,#fff);--client-focus-ring:color-mix(in srgb, var(--client-primary) 32%, transparent);--ai-accent-start:#0b24d6;--ai-accent-end:#f768f2;--ai-accent-soft:linear-gradient(135deg, #0b24d614, #f768f214);--surface-page:var(--gengage-page-bg,var(--ds-neutral-50));--surface-shell:var(--gengage-shell-bg,#10131a);--surface-card:var(--gengage-background-color,var(--ds-neutral-0));--surface-card-muted:var(--gengage-surface-soft,#f8fafc);--surface-card-soft:var(--surface-card-muted);--surface-elevated:var(--gengage-surface-elevated,var(--ds-neutral-0));--surface-input:var(--gengage-input-bg,var(--ds-neutral-0));--surface-overlay:var(--gengage-overlay-bg,#10131a85);--text-primary:var(--gengage-foreground-color,var(--ds-neutral-900));--text-secondary:var(--gengage-text-secondary,#4b5563);--text-muted:var(--gengage-text-muted,#6b7280);--text-inverse:var(--gengage-text-inverse,#f9fafb);--border-subtle:var(--gengage-border-subtle,#1118270f);--border-default:var(--gengage-border-color,#1118271a);--border-strong:var(--gengage-border-strong,#1118272e);--shadow-1:var(--gengage-shadow-1,var(--ds-shadow-1));--shadow-2:var(--gengage-shadow-2,var(--ds-shadow-2));--shadow-3:var(--gengage-shadow-3,var(--ds-shadow-3));--radius-control:var(--gengage-control-radius,var(--ds-radius-3));--radius-card:var(--gengage-card-radius,var(--ds-radius-4));--radius-panel:var(--gengage-panel-radius,var(--ds-radius-6));--radius-pill:var(--gengage-pill-radius,var(--ds-radius-pill));--success:var(--gengage-success-color,#16a34a);--warning:var(--gengage-warning-color,#d97706);--error:var(--gengage-error-color,#dc2626);--info:var(--gengage-info-color,#2563eb);--rating:var(--gengage-rating-color,#f5b301);--gengage-primary:var(--client-primary);--gengage-primary-soft:var(--client-primary-soft);--gengage-primary-subtle:var(--client-primary-subtle);--gengage-text-color:var(--text-primary);--gengage-text-secondary:var(--text-secondary);--gengage-hover-color:var(--surface-card-soft);--ds-button-primary-bg:var(--client-primary);--ds-button-primary-bg-hover:var(--client-primary-hover);--ds-button-primary-bg-active:var(--client-primary-active);--ds-button-primary-fg:var(--client-on-primary);--ds-button-primary-border:color-mix(in srgb, var(--client-primary) 82%, black 18%);--ds-button-secondary-bg:var(--surface-card);--ds-button-secondary-bg-hover:var(--client-primary-subtle);--ds-button-secondary-fg:var(--client-primary);--ds-button-secondary-border:color-mix(in srgb, var(--client-primary) 26%, white);--ds-button-ghost-bg:var(--surface-card-muted);--ds-button-ghost-bg-hover:var(--ds-button-ghost-bg);--ds-button-ghost-fg:var(--text-primary);--ds-button-ghost-fg-hover:var(--client-primary);--ds-button-ghost-border:var(--border-default);--ds-button-ghost-border-hover:color-mix(in srgb, var(--client-primary) 18%, white);--ds-panel-bg:var(--surface-card);--ds-panel-border:var(--border-default);--ds-panel-shadow:var(--shadow-1);--ds-panel-radius:var(--radius-panel);--ds-header-bg:var(--surface-card);--ds-header-fg:var(--text-primary);--ds-header-muted:var(--text-muted);--ds-header-border:var(--border-default);--ds-card-bg:var(--surface-card);--ds-card-bg-soft:var(--surface-card-muted);--ds-card-border:var(--border-default);--ds-card-shadow:var(--shadow-1);--ds-card-shadow-hover:var(--shadow-2);--ds-card-radius:var(--radius-card);--ds-card-border-hover:color-mix(in srgb, var(--client-primary) 14%, var(--border-default));--ds-card-bg-hover:color-mix(in srgb, var(--client-primary) 2%, var(--surface-card));--ds-product-card-media-bg:var(--surface-card-muted);--ds-product-card-media-border:var(--border-subtle);--ds-input-bg:var(--surface-input);--ds-input-border:var(--border-default);--ds-input-radius:16px;--ds-input-focus-border:color-mix(in srgb, var(--client-primary) 28%, white);--ds-input-focus-ring:0 0 0 4px var(--client-focus-ring);--ds-input-highlight:inset 0 1px 0 #fff9;--ds-chip-bg:var(--surface-card);--ds-chip-border:var(--border-default);--ds-chip-fg:var(--text-secondary);--ds-chip-bg-hover:var(--surface-card-muted);--ds-chip-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-chip-border-active:color-mix(in srgb, var(--client-primary) 30%, white);--ds-chip-fg-active:var(--client-primary);--ds-tab-bg:var(--surface-card);--ds-tab-bg-hover:var(--surface-card-muted);--ds-tab-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-tab-border:var(--border-default);--ds-tab-border-active:color-mix(in srgb, var(--client-primary) 26%, white);--ds-tab-fg:var(--text-secondary);--ds-tab-fg-active:var(--client-primary);--ds-badge-brand-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-badge-brand-border:color-mix(in srgb, var(--client-primary) 18%, white);--ds-badge-brand-fg:var(--client-primary);--ds-message-user-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-message-user-fg:var(--text-primary);--ds-message-user-border:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));--ds-message-user-shadow:none;--ds-message-assistant-bg:var(--surface-card-soft);--ds-message-assistant-fg:var(--text-primary);--ds-message-assistant-border:var(--border-default);--ds-message-assistant-shadow:none;--ds-message-active-outline:color-mix(in srgb, var(--client-primary) 68%, white);--ds-progress-card-border:var(--border-subtle);--ds-progress-mark-bg:color-mix(in srgb, var(--ai-accent-start) 8%, var(--surface-card));--ds-progress-mark-border:color-mix(in srgb, var(--ai-accent-start) 12%, var(--border-default));--ds-progress-scrollbar-thumb:color-mix(in srgb, var(--text-primary) 18%, transparent);--ds-toast-error-bg:color-mix(in srgb, var(--error) 5%, var(--surface-card));--ds-toast-error-border:color-mix(in srgb, var(--error) 18%, var(--border-default));--ds-toast-error-accent:var(--error);--ds-toast-error-fg:color-mix(in srgb, var(--error) 22%, var(--text-primary));--ds-toast-error-shadow:var(--shadow-3);--ds-comparison-table-bg:var(--surface-card);--ds-comparison-table-border:var(--border-default);--ds-comparison-table-header-bg:var(--surface-card-muted);--ds-comparison-table-header-fg:var(--text-muted);--ds-comparison-table-row-border:var(--border-subtle);--ds-comparison-table-winner-bg:color-mix(in srgb, var(--client-primary) 6%, white);--ds-comparison-table-winner-fg:var(--client-primary)}:where(.gds-panel){background:var(--ds-panel-bg);border:1px solid var(--ds-panel-border);border-radius:var(--ds-panel-radius);box-shadow:var(--ds-panel-shadow)}:where(.gengage-qna-panel,.gengage-chat-panel-topbar,.gengage-chat-chat-header,.gengage-chat-panel-ai-zone>.gengage-chat-ai-top-picks,.gengage-chat-grounding-review){border-color:var(--ds-panel-border)}:where(.gds-btn){border-radius:var(--radius-control);min-height:46px;font:inherit;cursor:pointer;border:0;outline:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;display:inline-flex}:where(.gds-btn:hover){transform:none}:where(.gds-btn:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-btn:disabled){cursor:not-allowed;opacity:.56;box-shadow:none}:where(.gds-btn-primary){background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);border:1px solid var(--ds-button-primary-border)}:where(.gds-btn-primary:hover){background:var(--ds-button-primary-bg-hover)}:where(.gds-btn-secondary){background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg);border:1px solid var(--ds-button-secondary-border)}:where(.gds-btn-secondary:hover){background:var(--ds-button-secondary-bg-hover)}:where(.gds-btn-ghost){background:var(--ds-button-ghost-bg);color:var(--ds-button-ghost-fg);border:1px solid var(--ds-button-ghost-border)}:where(.gds-btn-ghost:hover){background:var(--ds-button-ghost-bg-hover);border-color:var(--ds-button-ghost-border-hover);color:var(--ds-button-ghost-fg-hover)}:where(.gds-chip){border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:var(--ds-chip-bg);color:var(--ds-chip-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}:where(.gds-chip:hover){background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border))}:where(.gds-chip:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-chip-active){border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}:where(.gds-badge){border-radius:var(--radius-pill);letter-spacing:.04em;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}:where(.gds-badge-brand){background:var(--ds-badge-brand-bg);color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border)}:where(.gds-shell-header){background:var(--ds-header-bg);color:var(--ds-header-fg);border-bottom:1px solid var(--ds-header-border);box-shadow:none;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}:where(.gds-shell-header [data-gengage-part=chat-header-powered-by]){color:var(--ds-header-muted)}:where(.gds-icon-btn){border-radius:var(--radius-control);width:42px;min-width:42px;height:42px;min-height:42px;padding:0}:where(.gds-input-shell){border-radius:var(--ds-input-radius);border:1px solid var(--ds-input-border);background:var(--ds-input-bg);min-height:52px;box-shadow:var(--ds-input-highlight);align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}:where(.gds-input-shell:focus-within){border-color:var(--ds-input-focus-border);box-shadow:var(--ds-input-focus-ring)}:where(.gds-tab){border-radius:var(--radius-pill);border:1px solid var(--ds-tab-border);background:var(--ds-tab-bg);color:var(--ds-tab-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}:where(.gds-tab:hover){background:var(--ds-tab-bg-hover)}:where(.gds-tab:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-tab[aria-selected=true],.gds-tab.is-active){color:var(--ds-tab-fg-active);border-color:var(--ds-tab-border-active);background:var(--ds-tab-bg-active)}:where(.gds-toolbar){flex-wrap:wrap;align-items:center;gap:10px;display:flex}:where(.gds-toolbar-compact){gap:8px}:where(.gds-card){background:var(--ds-card-bg);border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);transition:border-color .15s,box-shadow .15s,background-color .15s}:where(.gds-card-interactive),:where(.gds-clickable){cursor:pointer}:where(.gds-card-interactive:hover){background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}:where(.gds-card-soft){background:var(--ds-card-bg-soft)}:where(.gds-product-card){border-radius:16px}:where(.gds-evidence-card){background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);box-shadow:var(--shadow-1)}:where(.gds-evidence-card-success){background:color-mix(in srgb, var(--success) 10%, white);border-color:color-mix(in srgb, var(--success) 22%, var(--border-default))}:where(.gds-evidence-card-danger){background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}:where(.gds-evidence-card-warning){background:color-mix(in srgb, var(--warning) 10%, white);border-color:color-mix(in srgb, var(--warning) 22%, var(--border-default))}:where(.gds-message){border-radius:calc(var(--radius-control) + 4px);word-wrap:break-word;overflow-wrap:break-word;border:1px solid #0000;max-width:85%;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.55;animation:.3s cubic-bezier(.2,.7,.2,1) gengage-chat-msg-in}:where(.gds-message-user){background:var(--ds-message-user-bg);color:var(--ds-message-user-fg);border-color:var(--ds-message-user-border);box-shadow:var(--ds-message-user-shadow);border-bottom-right-radius:6px;align-self:flex-end}:where(.gds-message-assistant){background:var(--ds-message-assistant-bg);color:var(--ds-message-assistant-fg);border-color:var(--ds-message-assistant-border);box-shadow:var(--ds-message-assistant-shadow);border-bottom-left-radius:6px;align-self:flex-start;min-width:120px}:where(.gds-message-active){outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}:where(.gds-ai-card){background:var(--surface-card);border:1px solid var(--ds-progress-card-border);border-radius:20px;gap:16px;padding:18px;display:grid}:where(.gds-ai-mark){background:var(--ds-progress-mark-bg);width:42px;height:42px;color:var(--ai-accent-start);border:1px solid var(--ds-progress-mark-border);border-radius:14px;place-items:center;display:grid}:where(.gds-ai-loader-row){align-items:center;gap:12px;display:flex}:where(.gds-progress-loader){border:1px solid color-mix(in srgb, var(--ai-accent-start) 10%, var(--border-default));background:linear-gradient(110deg, var(--surface-card-soft) 8%, color-mix(in srgb, var(--ai-accent-start) 5%, var(--surface-card)) 18%, var(--surface-card-soft) 33%);width:fit-content;max-width:100%;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;animation:1.8s linear infinite gds-progress-shimmer;display:inline-flex}:where(.gds-progress-loader-chat){box-sizing:border-box;align-self:flex-start;width:100%;min-width:0;max-width:85%;display:flex}:where(.gds-progress-loader-chat) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-loader-panel){box-sizing:border-box;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}:where(.gds-progress-loader-panel) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-label){min-width:0;color:var(--text-secondary);word-break:break-word;font-size:13px;line-height:1.5}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:where(.gds-progress-dot){background:color-mix(in srgb, var(--ai-accent-start) 20%, var(--text-muted));border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-progress-dot:nth-child(2)){animation-delay:.2s}:where(.gds-progress-dot:nth-child(3)){animation-delay:.4s}:where(.gds-ai-status){border-radius:calc(var(--radius-control) + 2px);border:1px solid var(--border-default);background:var(--surface-card-muted);max-width:85%;color:var(--text-secondary);border-bottom-left-radius:6px;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;display:flex}:where(.gds-ai-status-text){color:var(--text-secondary);font-size:13px;font-style:italic}:where(.gds-ai-dot-loader){align-items:center;gap:5px;display:inline-flex}:where(.gds-ai-dot-loader span){background:color-mix(in srgb, var(--ai-accent-start) 38%, var(--text-muted));border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-ai-dot-loader span:nth-child(2)){animation-delay:.2s}:where(.gds-ai-dot-loader span:nth-child(3)){animation-delay:.4s}:where(.gds-ai-spinner){border:2.5px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.72s linear infinite gds-spin}@keyframes gds-spin{to{transform:rotate(360deg)}}@keyframes gds-progress-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes gds-progress-dot-pulse{0%,to{opacity:.45;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:where(.gds-progress-loader){animation:none}:where(.gds-progress-dot){opacity:.85;animation:none;transform:scale(1)}:where(.gds-ai-spinner){animation:none}:where(.gds-ai-dot-loader span){opacity:.85;animation:none}}:where(.gds-menu){border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-elevated);box-shadow:var(--shadow-3);padding:4px}:where(.gds-menu-option){border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background-color .15s,color .15s;display:flex}:where(.gds-menu-option:hover){background:var(--surface-card-muted)}:where(.gds-menu-option:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-menu-option-active){background:var(--client-primary-subtle);color:var(--client-primary);font-weight:600}:where(.gds-comparison-table){border-collapse:separate;border-spacing:0;border:1px solid var(--ds-comparison-table-border);background:var(--ds-comparison-table-bg);border-radius:20px;width:100%;overflow:hidden}:where(.gds-comparison-table th,.gds-comparison-table td){text-align:left;border-bottom:1px solid var(--ds-comparison-table-row-border);padding:14px 16px;font-size:13px}:where(.gds-comparison-table th){background:var(--ds-comparison-table-header-bg);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-comparison-table-header-fg);font-size:11px}:where(.gds-comparison-table tr:last-child td){border-bottom:0}:where(.gds-comparison-table-winner-cell){background:var(--ds-comparison-table-winner-bg);color:var(--ds-comparison-table-winner-fg);font-weight:800}:host{all:initial;font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px)}.gengage-chat-root button,.gengage-chat-root [role=button],.gengage-chat-root a{cursor:pointer}.gengage-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-root{z-index:var(--gengage-z-index,2147480000);--_gengage-chat-offset:var(--gengage-chat-offset,20px);--_gengage-chat-launcher-bottom:var(--gengage-chat-launcher-bottom,20px);--_gengage-chat-launcher-right:var(--gengage-chat-launcher-right,20px);--_gengage-chat-launcher-size:var(--gengage-chat-launcher-size,56px);--_gengage-chat-drawer-width:var(--gengage-chat-width,400px);--_gengage-chat-radius:var(--gengage-chat-shell-radius,1rem);--_gengage-chat-header-height:var(--gengage-chat-header-height,72px);--_gengage-chat-conversation-width:var(--gengage-chat-conversation-width,396px);--_gengage-chat-panel-min-width:var(--gengage-chat-panel-min-width,320px);--_gengage-chat-panel-max-width:var(--gengage-chat-panel-max-width,1200px);--_gengage-chat-input-height:var(--gengage-chat-input-height,48px);--_gengage-chat-shadow:var(--gengage-chat-shadow,var(--shadow-3));--_gengage-border-color:var(--border-default);--_gengage-discount-color:var(--gengage-discount-color,var(--client-primary));--_gengage-campaign-reason-start:var(--gengage-campaign-reason-color,var(--client-primary));--_gengage-campaign-reason-end:var(--gengage-campaign-reason-color-end,var(--gengage-campaign-reason-color,var(--client-primary)));--_gengage-success-color:var(--success);--_gengage-text-primary:var(--text-primary);--_gengage-text-secondary:var(--text-secondary);--_gengage-surface-secondary:var(--surface-card-soft);--_gengage-surface-muted:var(--surface-card-soft);--_gengage-surface-dark:var(--surface-shell);--_gengage-rating-color:var(--rating);--_gengage-error:var(--error);--_gengage-danger-color:var(--error);--_gengage-ghost-border:var(--gengage-ghost-border,color-mix(in srgb, var(--client-primary) 16%, transparent));position:fixed}.gengage-chat-backdrop{z-index:0;pointer-events:none;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}.gengage-chat-root--open:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:none;background:var(--gengage-chat-float-backdrop,transparent);display:block}.gengage-chat-root--open.gengage-chat-root--maximized-host-chrome:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:auto;background:var(--gengage-chat-float-backdrop,color-mix(in srgb, var(--surface-overlay) 72%, transparent))}.gengage-chat-root.gengage-chat--overlay.gengage-chat-root--open .gengage-chat-backdrop{background:var(--gengage-chat-overlay-backdrop,var(--surface-overlay));pointer-events:auto}.gengage-chat-launcher-container{bottom:var(--_gengage-chat-launcher-bottom);right:var(--_gengage-chat-launcher-right);z-index:var(--gengage-z-index,2147480000);flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed}.gengage-chat-launcher-content-area,.gengage-chat-launcher-content-area-bottom{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.gengage-chat-launcher-content-area:empty,.gengage-chat-launcher-content-area-bottom:empty,.gengage-chat-root--open .gengage-chat-launcher-content-area,.gengage-chat-root--open .gengage-chat-launcher-content-area-bottom{display:none}.gengage-chat-root--open .gengage-chat-launcher-container{pointer-events:none;opacity:0;transition:opacity .2s}.gengage-chat-launcher{width:var(--_gengage-chat-launcher-size);height:var(--_gengage-chat-launcher-size);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:var(--shadow-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;display:flex;position:relative}.gengage-chat-launcher:hover{box-shadow:var(--shadow-3);transform:none}.gengage-chat-launcher svg{width:28px;height:28px}.gengage-chat-launcher--image-mode{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;overflow:hidden}.gengage-chat-launcher--image-mode:hover{box-shadow:none}.gengage-chat-launcher--image-mode img{object-fit:contain;width:100%;height:100%}.gengage-chat-launcher--hidden-mobile{display:none!important}.gengage-chat-launcher-tooltip{border-radius:var(--radius-control);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--shadow-2);padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .2s;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)}.gengage-chat-launcher-tooltip:after{content:"";border:5px solid #0000;border-left-color:var(--surface-shell);position:absolute;top:50%;left:100%;transform:translateY(-50%)}.gengage-chat-launcher:hover .gengage-chat-launcher-tooltip{opacity:1}.gengage-chat-root--open .gengage-chat-launcher-tooltip{display:none}.gengage-chat-drawer{width:var(--_gengage-chat-drawer-width);background:var(--surface-elevated,var(--surface-card));border-left:1px solid var(--border-default);max-height:100dvh;box-shadow:var(--_gengage-chat-shadow);z-index:var(--gengage-z-index,2147480000);opacity:1;border-radius:0;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-launcher-container{right:var(--gengage-chat-launcher-mobile-right,16px);bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + env(safe-area-inset-bottom,0px))}.gengage-chat-root--mobile .gengage-chat-drawer{border:1px solid var(--border-default);width:100%;max-width:none;max-height:100dvh;box-shadow:var(--shadow-3);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-elevated,var(--surface-card));border-bottom:none;border-radius:16px 16px 0 0;bottom:0;left:0;right:0}.gengage-chat-drawer-handle{display:none}.gengage-chat-root--mobile .gengage-chat-drawer-handle{pointer-events:none;z-index:1;justify-content:center;align-items:center;height:14px;display:flex;position:absolute;top:6px;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.gengage-chat-root--mobile .gengage-chat-header button,.gengage-chat-root--mobile .gengage-chat-header a{cursor:pointer;touch-action:auto;-webkit-user-select:auto;user-select:auto}.gengage-chat-root--mobile .gengage-chat-drawer-handle:before{content:"";background:var(--border-strong);pointer-events:none;border-radius:999px;width:36px;height:4px}.gengage-chat-root--mobile.gengage-chat-root--mobile-half .gengage-chat-drawer{height:min(72dvh,620px);max-height:min(72dvh,620px);top:auto}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-drawer{border-radius:0;height:100dvh;max-height:100dvh;top:0}.gengage-chat-root--mobile .gengage-chat-input-area{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-default);transform:translateY(calc(-1 * var(--gengage-keyboard-offset,0px)))}.gengage-chat-header{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--gengage-chat-header-bg,var(--ds-header-bg));color:var(--gengage-chat-header-foreground,var(--ds-header-fg));box-shadow:none;border-bottom:1px solid var(--gengage-chat-header-border-bottom,var(--ds-header-border));z-index:2;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:relative}.gengage-chat-header-left{align-items:center;gap:10px;min-width:0;display:flex}.gengage-chat-header-avatar{background:var(--surface-card-soft);border:1px solid var(--border-default);object-fit:contain;border-radius:999px;flex-shrink:0;width:44px;height:44px}.gengage-chat-header-avatar--logo{object-fit:contain;background:0 0;border:none;border-radius:0;width:auto;max-width:92px;height:45px}.gengage-chat-header-info{flex-direction:column;gap:2px;min-width:0;display:flex}.gengage-chat-header-title-row{align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-header-title{letter-spacing:.01em;color:inherit;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;line-height:1.25;display:block;overflow:hidden}.gengage-chat-header-badge{border-radius:var(--radius-pill);background:var(--ds-badge-brand-bg);min-height:26px;color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:0 10px;font-size:10px;font-weight:800;line-height:1.5;display:inline-flex}.gengage-chat-header-powered{color:var(--ds-header-muted);align-items:center;gap:4px;font-size:11px;line-height:1.2;text-decoration:none;transition:color .15s;display:flex}.gengage-chat-header-powered:hover{color:var(--client-primary)}.gengage-chat-header-powered svg{opacity:.6;flex-shrink:0;width:12px;height:12px}.gengage-chat-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.gengage-chat-header-btn{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;line-height:1;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-header-btn:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-header-btn--fav{position:relative}.gengage-chat-header-btn--reopen-panel,.gengage-chat-root--mobile .gengage-chat-new-chat{display:none}.gengage-chat-header-fav-badge{background:var(--error);min-width:16px;height:16px;color:var(--text-inverse);text-align:center;pointer-events:none;border-radius:999px;padding:0 3px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.gengage-chat-close{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-close:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-body{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.gengage-chat-panel{width:0;transition:width .22s cubic-bezier(.2,.72,.2,1);display:none;overflow:hidden}.gengage-chat-panel--visible{box-sizing:border-box;background:var(--gengage-chat-panel-bg,var(--surface-card));border-right:1px solid var(--border-default);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 24%, transparent) transparent;flex-direction:column;width:440px;min-width:440px;padding:16px;display:flex;position:relative;overflow-y:auto}.gengage-chat-panel--visible::-webkit-scrollbar{width:6px}.gengage-chat-panel--visible::-webkit-scrollbar-track{background:0 0}.gengage-chat-panel--visible::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 24%, transparent);border-radius:3px}.gengage-chat-panel--visible::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-panel-ai-zone{box-sizing:border-box;border-bottom:1px solid var(--border-subtle);flex-shrink:0;width:100%;max-height:min(42vh,320px);margin-bottom:4px;padding:8px 0 12px;overflow:auto}.gengage-chat-panel-ai-zone:has(.gengage-chat-grouping-cards){max-height:min(52vh,520px)}.gengage-chat-panel-ai-zone:has(.gengage-chat-ai-top-picks){max-height:none;overflow:visible}.gengage-chat-panel-ai-zone[hidden]{display:none!important}.gengage-chat-panel-ai-zone-inner{align-items:center;gap:10px;display:flex}.gengage-chat-panel-ai-zone-text{color:var(--text-muted);font-size:13px}.gengage-chat-grouping-section-title{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-section-title{width:100%;color:var(--text-primary);letter-spacing:-.01em;flex-shrink:0;align-self:stretch;margin:0 0 10px;font-size:15px;font-weight:700;display:block}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards{flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;max-height:none;display:flex}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-flow:row;align-items:stretch;gap:10px;width:100%;min-width:0;margin:0 -2px;padding:2px 2px 10px;display:flex;overflow:auto hidden}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card{box-sizing:border-box;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);width:136px;min-width:136px;max-width:150px;box-shadow:var(--shadow-1);flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:12px 10px 14px}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-arrow{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-img{object-fit:cover;border-radius:8px;width:100%;min-width:0;max-width:88px;height:72px;min-height:72px;margin:0 auto}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-body{text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-name{font-size:13px;font-weight:700;line-height:1.25}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:11px;line-height:1.3}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-labels{white-space:normal;text-overflow:unset;justify-content:center;margin-top:2px;line-height:1.35;overflow:visible}.gengage-chat-panel-divider{cursor:pointer;background:var(--_gengage-border-color);z-index:2;flex-shrink:0;align-items:center;width:4px;transition:background .15s;display:flex;position:relative}.gengage-chat-panel-divider:hover{background:var(--border-strong)}.gengage-chat-panel-divider--hidden{display:none}.gengage-chat-panel-divider-toggle{border:1px solid var(--_gengage-border-color);background:var(--surface-card);cursor:pointer;width:28px;height:48px;color:var(--text-secondary);box-shadow:var(--shadow-1);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-toggle:hover{background:var(--surface-card-muted);color:var(--client-primary)}.gengage-chat-panel-divider-preview{pointer-events:none;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:38px;height:192px;box-shadow:var(--shadow-2);z-index:1;border-radius:999px;flex-direction:column;gap:2px;padding:6px 4px;display:none;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-preview:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--surface-shell) 10%, transparent));pointer-events:none;position:absolute;inset:0}.gengage-chat-panel-divider-preview-thumb{border-radius:999px;flex:1 1 0;min-height:0;position:relative;overflow:hidden}.gengage-chat-panel-divider-preview-img{object-fit:cover;filter:grayscale(.55)saturate(.8)brightness(.92);opacity:.9;width:100%;height:100%;transform:scale(1.14)}.gengage-chat-panel.gengage-chat-panel--collapsed{border-right:none;flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider .gengage-chat-panel-divider-toggle{left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider.gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-preview{display:flex;left:50%;transform:translate(-50%,-50%)}.gengage-chat-conversation{background:var(--surface-card);z-index:1;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.gengage-chat-drawer--with-panel{width:auto;box-shadow:none;background:0 0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-header{border-radius:0;flex-shrink:0}.gengage-chat-drawer--with-panel .gengage-chat-body{flex:1 1 0;align-items:stretch;gap:0;min-height:0;padding:0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(var(--_gengage-chat-panel-min-width), 56vw, var(--_gengage-chat-panel-max-width));min-width:var(--_gengage-chat-panel-min-width);max-width:var(--_gengage-chat-panel-max-width);background:var(--gengage-chat-panel-bg,var(--surface-card));box-shadow:none;border-right:none;border-radius:0;flex:none;max-height:100dvh;margin:0;padding:0 16px 16px;overflow-y:auto}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle{background:var(--surface-card);width:20px;height:48px;color:var(--client-primary);border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));box-shadow:var(--shadow-1);z-index:10;border-radius:10px;font-size:12px}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle);color:var(--client-primary)}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle)}.gengage-chat-drawer--with-panel .gengage-chat-conversation{flex:0 0 var(--_gengage-chat-conversation-width);width:var(--_gengage-chat-conversation-width);background:var(--surface-card);box-shadow:var(--shadow-2);border-left:none}.gengage-chat-drawer--with-panel .gengage-chat-messages{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 22%, transparent) transparent;padding-right:6px}.gengage-chat-drawer--with-panel .gengage-chat-messages::-webkit-scrollbar{width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel.gengage-chat-panel--collapsed{flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-drawer--with-panel:has(.gengage-chat-panel--collapsed){width:var(--_gengage-chat-conversation-width);background:var(--surface-elevated,var(--surface-card));box-shadow:var(--_gengage-chat-shadow)}.gengage-chat-drawer--with-panel .gengage-chat-footer{display:none}.gengage-chat-messages{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.gengage-chat-messages::-webkit-scrollbar{width:6px}.gengage-chat-messages::-webkit-scrollbar-track{background:0 0}.gengage-chat-messages::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 22%, transparent);border-radius:3px}.gengage-chat-messages::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-bubble--presentation-collapsed{display:none!important}.gengage-chat-former-messages-btn{z-index:2;border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:color-mix(in srgb, var(--surface-card) 96%, transparent);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-1);flex-shrink:0;align-self:center;margin-bottom:4px;padding:8px 14px;font-size:13px;font-weight:600;position:sticky;top:0}.gengage-chat-former-messages-btn:hover{background:var(--surface-card-muted)}.gengage-chat-bubble{position:relative}@keyframes gengage-chat-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-bubble--user{max-width:85%}.gengage-chat-bubble--assistant{max-width:85%;margin-left:2px}.gengage-chat-bubble--active{outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}.gengage-chat-bubble--assistant:empty{display:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a{color:var(--client-primary);text-decoration:underline}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a:hover{text-decoration:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p{margin:0 0 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p:last-child{margin-bottom:0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text ul,.gengage-chat-bubble--assistant .gengage-chat-bubble-text ol{margin:6px 0;padding-left:20px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text li{margin-bottom:6px;line-height:1.5}.gengage-chat-bubble--assistant .gengage-chat-bubble-text code{background:color-mix(in srgb, var(--text-primary) 8%, transparent);border-radius:6px;padding:1px 4px;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text pre{background:color-mix(in srgb, var(--surface-card) 78%, var(--surface-card-soft));border:1px solid var(--border-subtle);border-radius:12px;margin:4px 0;padding:10px 12px;overflow-x:auto}.gengage-chat-bubble--assistant .gengage-chat-bubble-text table{border-collapse:collapse;margin:4px 0;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text th,.gengage-chat-bubble--assistant .gengage-chat-bubble-text td{border:1px solid var(--border-default);padding:4px 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text img{border-radius:12px;max-width:100%;height:auto;margin:4px 0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text h1,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h2,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h3,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h4,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h5,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h6{color:var(--text-primary);margin:8px 0 4px;line-height:1.3}.gengage-chat-bubble--assistant .gengage-chat-bubble-text blockquote{border-left:3px solid var(--border-default);color:var(--text-secondary);margin:4px 0;padding-left:12px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text{overflow-wrap:break-word}.gengage-chat-bubble--photo-analysis{border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card-soft) 80%, white), var(--surface-card))}.gengage-chat-photo-analysis-card{flex-direction:column;gap:10px;display:flex}.gengage-chat-photo-analysis-badge{letter-spacing:.02em;color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 14%, white);border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default));border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:800}.gengage-chat-photo-analysis-body{flex-direction:column;gap:12px;display:flex}.gengage-chat-photo-analysis-summary{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.gengage-chat-photo-analysis-highlights{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-photo-analysis-section{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 78%, white);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.gengage-chat-photo-analysis-section--celeb{gap:6px}.gengage-chat-photo-analysis-section-title{letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:12px;font-weight:800}.gengage-chat-photo-analysis-section-list{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-section-item{margin:0}.gengage-chat-photo-analysis-celeb-name{color:var(--text-primary);margin:0;font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-photo-analysis-celeb-reason{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gengage-chat-photo-analysis-details{border:1px solid color-mix(in srgb, var(--client-primary) 12%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 54%, white);border-radius:12px;overflow:hidden}.gengage-chat-photo-analysis-details-summary{cursor:pointer;color:var(--client-primary);padding:10px 12px;font-size:13px;font-weight:700;list-style:none}.gengage-chat-photo-analysis-details-summary::-webkit-details-marker{display:none}.gengage-chat-photo-analysis-points{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-details .gengage-chat-photo-analysis-points{padding:0 16px 14px 32px}.gengage-chat-photo-analysis-next{background:color-mix(in srgb, var(--client-primary) 9%, white);color:var(--text-primary);border-radius:12px;margin:0;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.45}.gengage-chat-bubble--first{border-left:1px solid var(--ds-message-assistant-border)}.gengage-chat-bubble--first .gengage-chat-bubble-text{font-size:inherit}@media (width<=768px){.gengage-chat-bubble--assistant .gengage-chat-bubble-text{line-height:1.5}.gengage-chat-bubble--user{word-break:break-word;max-width:calc(100% - 16px)}}.gengage-chat-typing{align-self:flex-start;max-width:85%}.gengage-chat-typing-dots{flex-shrink:0}.gengage-chat-typing-text{flex:1;min-width:0}.gengage-chat-panel-loading-status{margin-bottom:16px}.gengage-chat-panel-loading-status.gds-progress-loader-panel{box-sizing:border-box;min-width:0;max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status.gds-progress-loader-panel{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status .gengage-chat-panel-loading-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-offline-bar{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 22%, var(--border-default));align-items:center;gap:6px;padding:6px 12px;font-size:12px;line-height:1.4;display:none}.gengage-chat-offline-bar--visible{display:flex}.gengage-chat-offline-bar:before{content:"";background:var(--_gengage-rating-color);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.gengage-chat-thinking-steps{flex-direction:column;gap:4px;padding:4px 0;display:flex}.gengage-chat-thinking-step{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.gengage-chat-thinking-step-marker{text-align:center;flex-shrink:0;width:16px;font-size:12px}.gengage-chat-thinking-step-marker--done{color:var(--_gengage-success-color)}.gengage-chat-thinking-step-marker--active{color:var(--ai-accent-start);animation:1.5s ease-in-out infinite gengage-thinking-pulse}@keyframes gengage-thinking-pulse{0%,to{opacity:1}50%{opacity:.4}}.gengage-chat-thinking-step-text{line-height:1.4}.gengage-chat-error{border-radius:var(--radius-control);background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));text-align:center;border:1px solid color-mix(in srgb, var(--error) 22%, var(--border-default));justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.gengage-chat-error-retry{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border-default));border-radius:var(--radius-control);background:var(--surface-card);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));cursor:pointer;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s}.gengage-chat-error-retry:hover{background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 32%, var(--border-default))}.gengage-chat-input-area{border-top:1px solid var(--border-subtle);background:var(--surface-card);z-index:2;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:0;padding:10px 12px 12px;display:flex;position:relative}.gengage-chat-input-pill{background:var(--surface-card);border:1px solid var(--border-default);min-width:0;min-height:52px;box-shadow:none;border-radius:16px;flex:1;align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .2s,box-shadow .2s;display:flex;overflow:visible}.gengage-chat-input-pill:focus-within{border-color:color-mix(in srgb, var(--client-primary) 28%, white);box-shadow:0 0 0 4px var(--client-focus-ring)}.gengage-chat-input{min-width:0;min-height:40px;max-height:120px;color:var(--_gengage-text-primary);resize:none;background:0 0;border:none;border-radius:0;outline:none;flex:1;align-content:center;padding:0;font-family:inherit;font-size:14px;line-height:1.4;overflow-y:hidden}.gengage-chat-root--mobile .gengage-chat-input-pill{min-height:52px;padding:6px 6px 6px 14px}.gengage-chat-root--mobile .gengage-chat-input{white-space:nowrap;min-height:44px;max-height:44px;font-size:16px;overflow:hidden}.gengage-chat-input::placeholder{color:var(--text-muted);font-size:14px;line-height:normal}.gengage-chat-send{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);width:40px;min-width:40px;height:40px;color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;font-weight:700;transition:background-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,transform .15s;display:flex;position:relative}.gengage-chat-send:hover{background:var(--ds-button-primary-bg-hover);box-shadow:none;transform:none}.gengage-chat-send:active{box-shadow:none;transform:translateY(0)}.gengage-chat-send svg{width:18px;height:18px}.gengage-chat-send--stop{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--text-primary)}.gengage-chat-send--stop:hover{background:color-mix(in srgb, var(--surface-card-soft) 86%, var(--client-primary-subtle));border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-send-stop-icon{background:currentColor;border-radius:4px;width:12px;height:12px;display:inline-block}.gengage-chat-send--stop:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:600;line-height:1.2;transition:opacity .16s;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.gengage-chat-send--stop:hover:after,.gengage-chat-send--stop:focus-visible:after{opacity:1}}.gengage-chat-send:disabled{background:var(--ds-neutral-200);border-color:var(--ds-neutral-200);opacity:.5;box-shadow:none;cursor:not-allowed}.gengage-chat-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:4px 10px;font-size:10px}.gengage-chat-uispec{width:100%}.gengage-chat-uispec:empty{display:none}.gengage-chat-uispec>*{animation:.16s cubic-bezier(.2,.7,.2,1) both gengage-chat-widget-enter}@keyframes gengage-chat-widget-enter{0%{opacity:0;transform:translateY(5px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.gengage-chat-action-buttons{flex-wrap:wrap;justify-content:flex-start;gap:8px;padding:6px 0 4px;display:flex}.gengage-chat-action-buttons:after{content:"";flex:1 0 auto}.gengage-chat-action-btn{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-pill,999px);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;white-space:nowrap;flex:none;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700;line-height:1.25;transition:filter .15s,transform .1s}.gengage-chat-action-btn:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-action-btn:active{transform:scale(.97)}.gengage-chat-product-card{border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);background:var(--ds-card-bg);width:160px;min-width:160px;max-width:160px;box-shadow:var(--ds-card-shadow);flex-direction:column;transition:transform .1s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.gengage-chat-product-card:hover{box-shadow:var(--ds-card-shadow-hover);transform:translateY(-2px)}.gengage-chat-product-card-img{object-fit:contain;background:var(--surface-card);box-sizing:border-box;width:100%;height:120px;padding:8px;display:block}.gengage-chat-product-card-body{text-align:center;flex-direction:column;flex:1;gap:4px;padding:8px 10px 10px;display:flex}.gengage-chat-product-card-name{color:var(--_gengage-text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;min-height:2.7em;margin-bottom:0;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-card-brand{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-star-half{display:inline-block;position:relative}.gengage-star-half>span{width:.5em;position:absolute;top:0;left:0;overflow:hidden}.gengage-chat-product-card-review-count{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-price,.gengage-chat-product-card-price-block{color:var(--text-primary);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 6px;font-size:16px;font-weight:800;display:flex}.gengage-chat-product-card-current-price{font:inherit;color:var(--gengage-discounted-price-color,var(--text-primary));font-weight:800}.gengage-chat-product-card-original-price{color:var(--_gengage-text-secondary);margin-right:0;font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-campaign-reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0 0 4px;font-size:11px;font-weight:700;line-height:1.25}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.gengage-chat-campaign-reason,.gengage-chat-campaign-price-badge__reason{color:var(--_gengage-campaign-reason-start);background:0 0}}.gengage-chat-product-card-price-stack{flex-direction:column;align-items:flex-start;width:100%;min-width:0;display:flex}.gengage-chat-product-card-price-row{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-card-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.95em;margin:0 1px;display:inline-block}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-original-price{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:16px;font-weight:500;text-decoration:none}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:16px;font-weight:800}.gengage-chat-product-card-meta-row{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:8px;width:100%;min-height:34px;display:flex}.gengage-chat-product-card-meta-row--empty{visibility:hidden}.gengage-chat-product-card-rating-compact{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-product-card-rating-compact-value{font-variant-numeric:tabular-nums;color:var(--text-primary)}.gengage-chat-product-card-img-actions{z-index:4;pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-product-card-img-actions>*{pointer-events:auto}.gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{position:static}.gengage-chat-price-skeleton{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);vertical-align:middle;background-size:200% 100%;border-radius:4px;width:80px;height:16px;animation:1.5s ease-in-out infinite gengage-skeleton-price-pulse;display:inline-block}@keyframes gengage-skeleton-price-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-product-card-cta{text-align:center;color:var(--client-primary);letter-spacing:.01em;border-top:1px solid var(--border-default);cursor:pointer;background:0 0;margin-top:auto;padding:8px 10px;font-size:12px;font-weight:700;text-decoration:none;transition:color .15s,background .15s;display:block}.gengage-chat-product-card-cta:hover{color:var(--client-primary-hover);background:var(--surface-card-soft)}.gengage-chat-product-card-cta:active{background:var(--surface-card-soft)}button.gengage-chat-product-card-cta{appearance:none;font:inherit;box-sizing:border-box;border-bottom:none;border-left:none;border-right:none;width:100%;margin:0}.gengage-chat-product-summary{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0;padding:10px 12px;transition:background .15s,box-shadow .15s,border-color .15s;display:flex}.gengage-chat-product-summary:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-product-summary__image{border-radius:var(--radius-control);border:1px solid var(--border-subtle);background:var(--surface-card-soft);flex-shrink:0;width:64px;height:64px;overflow:hidden}.gengage-chat-product-summary__image img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-product-summary__content{flex-direction:column;flex:180px;gap:2px;min-width:0;display:flex}.gengage-chat-product-summary__name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-product-summary__rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-chat-product-summary__review-count{color:var(--text-secondary);font-size:11px}.gengage-chat-product-summary__price{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:600;line-height:1}.gengage-chat-product-summary__price-original{color:var(--_gengage-text-secondary);font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-product-summary__price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:2px;display:flex}.gengage-chat-product-summary__price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-product-summary__price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-summary__price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.9em;margin:0 1px;display:inline-block}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-original{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:13px;font-weight:500;text-decoration:none}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:13px;font-weight:700}.gengage-chat-product-summary__cta{color:var(--client-primary);border-radius:var(--radius-pill);background:var(--client-primary-subtle);white-space:nowrap;flex-shrink:0;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.gengage-chat-product-summary__cta:hover{background:var(--client-primary-soft)}.gengage-chat-product-summary__cta:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-grid{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;gap:12px;min-height:180px;padding:8px 16px 8px 0;display:flex;overflow-x:auto}.gengage-chat-product-grid>*{scroll-snap-align:start;flex:none}.gengage-chat-product-grid::-webkit-scrollbar{display:none}.gengage-chat-review-highlights{padding:4px 0 8px}.gengage-chat-review-empty{color:var(--_gengage-text-secondary);font-size:12px}.gengage-chat-review-subjects-heading{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:700}.gengage-chat-review-subjects{margin-bottom:12px}.gengage-chat-review-subject{color:var(--text-primary);box-shadow:none;gap:6px;padding:7px 11px;font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-review-subject--active{border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}.gengage-chat-review-subject-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.gengage-chat-review-subject-icon svg{width:14px;height:14px;display:block}.gengage-chat-review-subject[data-tone=positive] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-review-subject[data-tone=negative] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--error) 84%, var(--text-primary))}.gengage-chat-review-subject[data-tone=neutral] .gengage-chat-review-subject-icon{color:var(--text-secondary)}.gengage-chat-review-subject-label{color:inherit}.gengage-chat-review-subject-count{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-review-detail{padding:12px}.gengage-chat-review-detail-meta{flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-bottom:10px;display:flex}.gengage-chat-review-detail-mentions{color:var(--_gengage-text-primary);font-size:13px;font-weight:700}.gengage-chat-review-detail-positive{color:var(--_gengage-success-color);font-size:13px;font-weight:700}.gengage-chat-review-detail-negative{color:var(--error);font-size:13px;font-weight:700}.gengage-chat-review-snippets{gap:10px;display:grid}.gengage-chat-review-snippet{border:1px solid var(--border-subtle);border-left:3px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card-soft);padding:8px 10px}.gengage-chat-review-snippet[data-tone=positive]{border-left-color:color-mix(in srgb, var(--success) 40%, var(--border-default))}.gengage-chat-review-snippet[data-tone=negative]{border-left-color:color-mix(in srgb, var(--error) 40%, var(--border-default))}.gengage-chat-review-snippet-text{color:var(--_gengage-text-primary);font-size:13px;line-height:1.4}.gengage-chat-review-snippet-rating{color:var(--text-secondary);margin-top:4px;font-size:12px;font-weight:700}.gengage-chat-favorites-page{padding:12px}.gengage-chat-favorites-empty{text-align:center;color:var(--_gengage-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.gengage-chat-favorites-empty-icon{opacity:.25;color:var(--error)}.gengage-chat-favorites-empty p{margin:0;font-size:13px;line-height:1.5}.gengage-chat-favorites-list{flex-direction:column;gap:10px;display:flex}.gengage-chat-favorites-card{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-1);align-items:center;gap:12px;padding:10px 12px;transition:opacity .2s,transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative}.gengage-chat-favorites-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-favorites-card--removing{opacity:0;transform:translate(8px)}.gengage-chat-favorites-card__image{border-radius:var(--radius-control);background:var(--surface-card-muted);flex-shrink:0;width:56px;height:56px;overflow:hidden}.gengage-chat-favorites-card__image img{object-fit:contain;width:100%;height:100%}.gengage-chat-favorites-card__info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.gengage-chat-favorites-card__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.gengage-chat-favorites-card__price{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-favorites-remove{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--error);cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,background .15s;display:inline-flex}.gengage-chat-favorites-remove:hover{opacity:1;background:color-mix(in srgb, var(--error) 10%, white)}.gengage-chat-divider{border:none;border-top:1px solid var(--_gengage-border-color);margin:8px 0}.gengage-chat-divider-wrapper{align-items:center;gap:8px;margin:8px 0;display:flex}.gengage-chat-divider-wrapper hr{border:none;border-top:1px solid var(--_gengage-border-color);flex:1;margin:0}.gengage-chat-divider-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.gengage-chat--overlay .gengage-chat-drawer{border-radius:0;width:100%;max-width:480px;max-height:100%;margin:0 auto;animation:.24s cubic-bezier(.2,.72,.2,1) gengage-chat-overlay-in;position:fixed;inset:0}@keyframes gengage-chat-overlay-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-panel-skeleton{box-sizing:border-box;flex-direction:column;gap:14px;min-width:0;max-width:100%;padding:6px 0;display:flex}.gengage-chat-panel-skeleton-block{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;border-radius:10px;height:110px;animation:1.4s infinite gengage-panel-shimmer}@keyframes gengage-panel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-panel-skeleton-block--image{border-radius:8px;height:200px;margin-bottom:12px}.gengage-chat-panel-skeleton-block--text{border-radius:4px;height:16px;margin-bottom:8px}.gengage-chat-panel-skeleton-block--text:nth-child(3){width:80%}.gengage-chat-panel-skeleton-block--text:nth-child(4){width:60%}.gengage-chat-panel-skeleton-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gengage-chat-panel-skeleton-block--card{border-radius:8px;height:120px}.gengage-chat-panel-skeleton--comparison{gap:0;padding:0}.gengage-chat-panel-skeleton--comparison .gengage-chat-panel-loading-status{margin:0;padding:16px 16px 0}.gengage-chat-comparison--skeleton{pointer-events:none;box-sizing:border-box;width:100%}.gengage-chat-comparison-skeleton-shimmer{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;animation:1.4s infinite gengage-panel-shimmer}.gengage-chat-comparison-skeleton-rec-label{border-radius:4px;width:132px;height:12px;margin-bottom:12px}.gengage-chat-comparison-skeleton-rec-img{border-radius:8px;flex-shrink:0;width:80px;height:80px}.gengage-chat-comparison-skeleton-rec-title{border-radius:4px;max-width:100%;height:14px;margin-bottom:6px}.gengage-chat-comparison-skeleton-rec-title--short{width:72%;margin-bottom:8px}.gengage-chat-comparison-skeleton-rec-price{border-radius:4px;width:112px;height:18px}.gengage-chat-comparison-skeleton-hl-label{border-radius:4px;width:96px;height:12px;margin-bottom:6px}.gengage-chat-comparison-skeleton-hl-list{margin:0;padding-left:18px;list-style:none}.gengage-chat-comparison-skeleton-hl-list li{margin-bottom:8px}.gengage-chat-comparison-skeleton-hl-list li:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-hl-line{border-radius:4px;width:100%;height:13px}.gengage-chat-comparison-skeleton-hl-line--medium{width:92%}.gengage-chat-comparison-skeleton-hl-line--short{width:78%}.gengage-chat-comparison-skeleton-kd-heading{border-radius:4px;width:42%;height:14px;margin:0 0 8px}.gengage-chat-comparison-skeleton-kd-line{border-radius:4px;max-width:100%;height:13px;margin-bottom:8px}.gengage-chat-comparison-skeleton-kd-line:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-kd-line:nth-child(odd){width:100%}.gengage-chat-comparison-skeleton-kd-line:nth-child(2n){width:90%}.gengage-chat-comparison-special--skeleton{cursor:default;align-items:center;min-height:44px;display:flex}.gengage-chat-comparison-skeleton-special-line{border-radius:4px;width:56%;max-width:280px;height:14px}.gengage-chat-comparison-skeleton-table-wrap{border:1px solid var(--border-default);background:var(--surface-card);-webkit-overflow-scrolling:touch;border-radius:8px;margin-top:12px;overflow-x:auto}.gengage-chat-comparison-skeleton-table-head,.gengage-chat-comparison-skeleton-table-row{grid-template-columns:72px repeat(3,minmax(0,1fr));align-items:start;gap:8px;padding:10px 12px;display:grid}.gengage-chat-comparison-skeleton-table-head{border-bottom:1px solid var(--_gengage-surface-muted);background:var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-corner{min-height:92px}.gengage-chat-comparison-skeleton-table-col{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-comparison-skeleton-table-th-img{border-radius:6px;flex-shrink:0;width:60px;height:60px}.gengage-chat-comparison-skeleton-table-th-name{border-radius:3px;width:100%;max-width:100%;height:11px}.gengage-chat-comparison-skeleton-table-th-price{border-radius:3px;width:64%;height:13px}.gengage-chat-comparison-skeleton-table-row{border-bottom:1px solid var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-row:last-child{border-bottom:none}.gengage-chat-comparison-skeleton-table-label{border-radius:3px;align-self:center;width:100%;max-width:56px;height:12px}.gengage-chat-comparison-skeleton-table-cell{border-radius:3px;width:100%;height:14px}.gengage-chat-panel-skeleton-block--row{border-radius:4px;height:32px;margin-bottom:4px}.gengage-chat-panel .gengage-chat-product-card{border-radius:var(--radius-card);border:1px solid var(--border-default);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-1);background:var(--surface-card);flex-direction:column;padding:0;display:flex;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-2px)}.gengage-chat-panel .gengage-chat-product-card-img-actions{gap:6px;top:10px;right:10px}.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{border-radius:8px;width:28px;height:28px}.gengage-chat-panel .gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--client-primary);min-width:36px;height:36px;color:var(--client-on-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex;top:10px;left:10px}.gengage-chat-panel .gengage-chat-product-card-brand{display:none}.gengage-chat-panel .gengage-chat-product-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;min-height:auto;padding:4px 0;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:auto;padding:6px 0 10px;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile .gengage-chat-product-card{box-sizing:border-box;width:100%;min-width:0;max-width:none}.gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;background:var(--surface-card-muted);border-radius:var(--radius-card) var(--radius-card) 0 0;flex-shrink:0;width:100%;position:relative;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card-img{border-radius:inherit;object-fit:cover;object-position:center;box-sizing:border-box;background:0 0;width:100%;height:100%;min-height:0;padding:0;display:block}.gengage-chat-panel .gengage-chat-product-card-body{text-align:left;gap:8px;padding:12px 14px 10px}.gengage-chat-panel .gengage-chat-product-card-meta-row{align-items:center;min-height:38px;margin-bottom:0}.gengage-chat-panel .gengage-chat-product-card-price,.gengage-chat-panel .gengage-chat-product-card-price-block{color:var(--text-primary);justify-content:flex-start;font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-original-price{color:var(--text-muted);font-size:12px;font-weight:400}.gengage-chat-panel .gengage-chat-product-card-rating-compact{font-size:11px;font-weight:700}.gengage-chat-panel .gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 58%, var(--text-primary))}.gengage-chat-panel .gengage-chat-product-card-name{min-height:0;color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.35}.gengage-chat-panel .gengage-chat-product-card-buy-footer{flex-shrink:0;min-width:0;margin-top:auto;padding:0 14px 16px;display:flex;position:relative}.gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;border:1.5px solid var(--client-primary);background:var(--surface-card);width:100%;min-width:0;min-height:42px;color:var(--client-primary);white-space:nowrap;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin:0;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;transition:background .15s,box-shadow .15s;display:flex}.gengage-chat-panel .gengage-chat-product-card-buy-trigger:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);box-shadow:var(--shadow-1)}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{border:1.5px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 28px);min-width:0;color:var(--client-primary);box-sizing:border-box;border-radius:12px;justify-content:center;align-items:center;min-height:42px;margin:0 14px 16px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta:hover{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-product-card--selected{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, transparent);box-shadow:0 0 0 1px var(--client-primary)}.gengage-chat-panel--visible{min-height:0}.gengage-chat-panel--visible>*{flex-shrink:0}.gengage-chat-load-more-btn{border:1px solid var(--border-default);color:var(--client-primary);cursor:pointer;background:0 0;border-radius:8px;margin:12px auto;padding:8px 24px;font-size:14px;display:block}.gengage-chat-load-more-btn:hover{background:var(--surface-card-muted)}.gengage-chat-product-details-panel{background:var(--surface-card);border:1px solid var(--border-default);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:12px;width:100%;padding:14px;display:flex}.gengage-chat-product-details-media{border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;flex-direction:column;align-items:center;padding:12px;display:flex}.gengage-chat-product-details-img{object-fit:contain;border-radius:8px;width:100%;height:auto;max-height:300px}.gengage-chat-product-details-content{flex-direction:column;gap:8px;min-width:0;display:flex}.gengage-chat-product-details-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700;line-height:1.3}.gengage-chat-product-details-rating{background:color-mix(in srgb, var(--warning) 10%, white);width:fit-content;color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-product-details-review-count{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));font-weight:600}.gengage-chat-product-details-price{align-items:baseline;gap:6px;display:flex}.gengage-chat-product-details-original-price{color:var(--text-secondary);font-size:14px;text-decoration:line-through}.gengage-chat-product-details-price-stack{flex-direction:column;align-items:flex-start;gap:2px;width:100%;display:flex}.gengage-chat-product-details-price-stack .gengage-chat-campaign-reason{margin-bottom:2px;font-size:13px;font-weight:600}.gengage-chat-product-details-price--inline{flex-wrap:nowrap;align-items:baseline}.gengage-chat-product-details-price--inline .gengage-chat-product-details-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:1em;margin:0 4px;display:inline-block}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{color:var(--text-secondary);order:0;font-size:22px;font-weight:500;text-decoration:none}.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));order:0;font-size:22px;font-weight:800}.gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:22px;font-weight:800;line-height:1.1}.gengage-chat-product-details-stock{border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:700}.gengage-chat-product-details-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-details-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-product-details-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.gengage-chat-product-details-cta{border-radius:var(--radius-control,12px);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;transition:filter .14s,transform .12s;display:inline-flex}.gengage-chat-product-details-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-product-details-cta:active{background:var(--ds-button-primary-bg-active)}.gengage-chat-product-details-atc{border-radius:var(--radius-control);background:var(--_gengage-success-color);color:var(--client-on-primary);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:filter .12s,transform .12s;display:inline-flex}.gengage-chat-product-details-atc:hover{filter:brightness(1.08);transform:translateY(-1px)}.gengage-chat-product-details-atc:active{transform:translateY(1px)}.gengage-chat-product-detail-tabs{border-top:1px solid var(--border-default);margin-top:4px;padding-top:12px}.gengage-chat-product-detail-tab-bar{border-bottom:1px solid var(--border-default);gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.gengage-chat-product-detail-tab{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.gengage-chat-product-detail-tab:hover{color:var(--text-primary);background:color-mix(in srgb, var(--surface-card-soft) 82%, transparent)}.gengage-chat-product-detail-tab--active{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-product-detail-tab-panel{color:var(--text-secondary);font-size:13px;line-height:1.6}.gengage-chat-product-description{color:var(--text-primary);flex-direction:column;gap:10px;display:flex}.gengage-chat-product-description p,.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4,.gengage-chat-product-description ul,.gengage-chat-product-description ol{margin:0}.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4{color:var(--text-primary);font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-product-description ul,.gengage-chat-product-description ol{padding-left:20px}.gengage-chat-product-description li+li{margin-top:6px}.gengage-chat-product-description strong,.gengage-chat-product-description b{font-weight:800}.gengage-chat-product-specs-table{border-collapse:collapse;width:100%;font-size:13px}.gengage-chat-product-specs-table tr:nth-child(2n){background:var(--surface-card-muted)}.gengage-chat-product-specs-key{color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid var(--border-subtle);width:40%;padding:6px 10px;font-weight:600}.gengage-chat-product-specs-value{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:6px 10px}.gengage-chat-product-card-atc{opacity:0;z-index:1;transition:opacity .15s;position:absolute;bottom:42px;right:6px}.gengage-chat-product-card:hover .gengage-chat-product-card-atc{opacity:1}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-atc{opacity:1;width:100%;margin:0;display:flex;position:relative;bottom:auto;right:auto}}.gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translateY(100%)}@media (width<=900px){.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(280px, calc(100vw - var(--_gengage-chat-conversation-width)), 560px);max-width:560px}}.gengage-chat-attachment-preview{background:var(--surface-card-muted);border:1px solid var(--border-default);box-sizing:border-box;border-radius:8px;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.gengage-chat-attachment-preview--hidden{display:none}.gengage-chat-attachment-preview-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:40px;height:40px}.gengage-chat-attachment-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.gengage-chat-attachment-remove{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.gengage-chat-attachment-remove:hover{color:var(--error)}.gengage-chat-attach-btn{background:var(--surface-card-soft);border:1px solid var(--border-default);cursor:pointer;width:40px;height:40px;color:var(--text-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s,border-color .15s;display:flex}.gengage-chat-attach-btn:hover{color:var(--client-primary);background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-attach-btn svg{width:20px;height:20px}.gengage-chat-attach-wrap{flex-shrink:0;align-items:center;display:flex;position:relative}.gengage-chat-attach-menu{z-index:50;background:var(--surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-card);min-width:196px;box-shadow:var(--shadow-3);margin:0;padding:4px 0;list-style:none;position:absolute;bottom:calc(100% + 8px);left:0}.gengage-chat-attach-menu[hidden]{display:none!important}.gengage-chat-attach-menu-item{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;transition:background .12s;display:flex}.gengage-chat-attach-menu-item:hover{background:var(--surface-card-muted)}.gengage-chat-attach-menu-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-attach-menu-label{flex:1;min-width:0}.gengage-chat-attach-menu-sep{background:var(--border-default);height:1px;margin:4px 10px}.gengage-chat-mic-btn{cursor:pointer;border-radius:var(--radius-control);width:32px;height:32px;color:var(--text-secondary);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s;display:flex}.gengage-chat-mic-btn:hover{color:var(--text-primary);background:var(--surface-card-muted);border-color:var(--border-default)}.gengage-chat-mic-btn svg{width:20px;height:20px}.gengage-chat-mic-btn--active{color:var(--error);animation:1.2s ease-in-out infinite gengage-mic-pulse}.gengage-chat-mic-btn--active:hover{color:color-mix(in srgb, var(--error) 84%, black)}@keyframes gengage-mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}.gengage-chat-input-area--dragover{outline:2px dashed var(--client-primary);outline-offset:-2px;background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-attachment-thumb{border-radius:8px;width:120px;max-width:100%;height:auto;margin-bottom:6px;display:block}.gengage-chat-root--mobile .gengage-chat-header-btn,.gengage-chat-root--mobile .gengage-chat-close{border-radius:12px;width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn,.gengage-chat-root--mobile .gengage-chat-mic-btn,.gengage-chat-root--mobile .gengage-chat-send{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn svg,.gengage-chat-root--mobile .gengage-chat-mic-btn svg{width:22px;height:22px}.gengage-chat-root--mobile .gengage-chat-panel-divider{cursor:ns-resize;touch-action:pan-y;background:0 0;justify-content:center;align-items:center;width:100%;height:20px;display:flex;position:relative;overflow:visible}.gengage-chat-root--mobile .gengage-chat-panel-divider--hidden{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel{border-radius:0;width:100%;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-panel{z-index:10;width:100%;min-width:0;max-width:none;max-height:none;box-shadow:none;background:var(--gengage-chat-panel-bg,var(--surface-card));pointer-events:none;border:none;border-radius:0;flex-direction:column;padding:0 12px 16px;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0;overflow-y:auto;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-panel--visible{pointer-events:auto;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-panel-divider,.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-panel-divider{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-body{flex-direction:row}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-conversation{border-left:none;flex:1;width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-cta{box-sizing:border-box;width:100%;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-panel{gap:8px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:0;padding:8px}.gengage-chat-root--mobile .gengage-chat-product-details-content{gap:6px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:14px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-product-details-rating{padding:2px 6px;font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-original-price{font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{gap:6px;margin-top:2px}.gengage-chat-root--mobile .gengage-chat-product-details-cta{min-height:38px;padding:0 14px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-product-grid:not(.gengage-chat-product-grid--mobile){scroll-snap-type:x mandatory}.gengage-chat-root--mobile .gengage-chat-product-grid.gengage-chat-product-grid--mobile{scroll-snap-type:none}.gengage-chat-root--mobile .gengage-chat-product-card{box-sizing:border-box;scroll-snap-align:center;width:280px;min-width:280px;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-grid--mobile .gengage-chat-product-card{scroll-snap-align:start;width:100%;min-width:0;max-width:none}.gengage-chat-root--mobile .gengage-chat-product-card-img-wrapper{justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:180px;display:block}.gengage-chat-root--mobile .gengage-chat-product-card-discount-badge{padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-drawer{border-radius:0;width:100%;max-height:100%;position:fixed;inset:0}.gengage-chat-root--mobile .gengage-chat-bubble{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:min(200px,72%)}.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{flex-shrink:0;width:28px;min-width:28px;height:28px;min-height:28px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-discount-badge{min-width:28px;height:28px;padding:0 6px;font-size:10px;font-weight:700}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer{padding:0 12px 14px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;white-space:normal;text-align:center;-webkit-hyphens:auto;hyphens:auto;min-width:0;max-width:100%;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{box-sizing:border-box;white-space:normal;width:calc(100% - 24px);min-width:0;max-width:calc(100% - 24px);margin-left:12px;margin-right:12px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-rating-compact{gap:3px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-stock{padding:2px 5px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-messages{scrollbar-width:none;padding:12px 16px}.gengage-chat-root--mobile .gengage-chat-messages::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-drawer{border-top:none}.gengage-chat-root--mobile .gengage-chat-header{border-radius:16px 16px 0 0;min-height:72px;padding-top:22px;padding-bottom:8px}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-header{border-radius:0}.gengage-chat-root--mobile .gengage-chat-conversation{-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-product-details-img{object-fit:contain;min-height:0;max-height:200px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{flex-wrap:wrap;gap:8px}.gengage-chat-root--mobile .gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px}.gengage-chat-root--mobile .gengage-chat-input::placeholder{font-size:13px}.gengage-chat-kvkk-banner{background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));align-items:flex-start;gap:8px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.gengage-chat-kvkk-content{flex:1;min-width:0}.gengage-chat-kvkk-content a{color:color-mix(in srgb, var(--warning) 82%, var(--text-primary));text-decoration:underline}.gengage-chat-kvkk-dismiss{width:20px;height:20px;color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}.gengage-chat-comparison{box-sizing:border-box;flex-direction:column;gap:12px;padding:16px;display:flex}.gengage-chat-comparison-heading{letter-spacing:.05em;color:var(--text-primary);margin:0 0 16px;font-size:14px;font-weight:700}.gengage-chat-comparison-recommended{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);padding:16px}.gengage-chat-comparison-recommended-label{color:var(--client-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px;font-weight:700}.gengage-chat-comparison-recommended-body{grid-template-columns:minmax(108px,148px) minmax(0,1fr);align-items:flex-start;gap:16px;display:grid}.gengage-chat-comparison-recommended-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:14px;justify-content:center;align-items:center;display:flex;overflow:hidden}.gengage-chat-comparison-recommended-body img,.gengage-chat-comparison-recommended-placeholder{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:8px}.gengage-chat-comparison-recommended-placeholder{background:var(--surface-card-muted)}.gengage-chat-comparison-recommended-info{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.gengage-chat-comparison-recommended-title{color:var(--text-primary);margin:0;font-size:24px;font-weight:800;line-height:1.2}.gengage-chat-comparison-recommended-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gengage-chat-comparison-recommended-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:color-mix(in srgb, var(--warning) 78%, var(--text-primary));border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-comparison-recommended-rating-value{color:var(--text-primary)}.gengage-chat-comparison-recommended-price{color:var(--text-primary);font-size:20px;font-weight:700}.gengage-chat-comparison-highlights{border-top:1px solid var(--border-subtle);padding-top:12px}.gengage-chat-comparison-highlights-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-comparison-highlights ul{color:var(--text-primary);margin:0;padding-left:18px;font-size:14px;line-height:1.55}.gengage-chat-comparison-special{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));border-radius:var(--radius-card);color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin-bottom:12px;padding:12px 16px;font-size:13px}.gengage-chat-comparison-special summary{cursor:pointer;font-weight:600}.gengage-chat-comparison-special ul{margin:8px 0 0;padding-left:18px;line-height:1.6}.gengage-chat-comparison-table{border-collapse:collapse;background:var(--surface-card);width:100%;font-size:13px}.gengage-chat-comparison-table th,.gengage-chat-comparison-table td{text-align:center;border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:10px 12px}.gengage-chat-comparison-table th{color:var(--text-secondary);font-size:12px;font-weight:600}.gengage-chat-comparison-table thead th:not(:first-child){vertical-align:top}.gengage-chat-comparison-table-header-cell{box-sizing:border-box;grid-template-rows:auto 1fr auto;place-items:start center;gap:6px;height:100%;min-height:0;display:grid}.gengage-chat-comparison-table-header-cell--clickable{cursor:pointer;border-radius:var(--radius-control);padding:6px;transition:background .16s,box-shadow .16s,transform .16s}.gengage-chat-comparison-table-header-cell--clickable:hover{background:var(--surface-card-soft);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-comparison-table-header-cell--clickable:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-comparison-table-header-cell img{object-fit:contain;border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-header-img-placeholder{border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-product-name{width:100%;min-width:0;color:var(--text-secondary);text-align:center;-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;align-self:start;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-comparison-table-price{color:var(--text-primary);text-align:center;width:100%;font-weight:700}.gengage-chat-comparison-label{text-align:left;color:var(--text-secondary);white-space:nowrap;font-weight:600}.gengage-chat-comparison-selected{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-comparison-recommended-text{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.gengage-chat-comparison-key-differences{border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card-muted)}.gengage-chat-comparison-key-differences-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:700;list-style:none;display:flex}.gengage-chat-comparison-key-differences-summary::-webkit-details-marker{display:none}.gengage-chat-comparison-key-differences-summary-label{color:var(--text-primary)}.gengage-chat-comparison-key-differences-summary-meta{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-comparison-key-differences[open] .gengage-chat-comparison-key-differences-summary-meta{opacity:0}.gengage-chat-comparison-key-differences-content{color:var(--text-primary);padding:0 16px 16px;font-size:14px;line-height:1.7}.gengage-chat-comparison-key-differences-content ul,.gengage-chat-comparison-key-differences-content ol{margin:0;padding-left:20px}.gengage-chat-comparison-key-differences-content li+li{margin-top:8px}@media (width<=960px){.gengage-chat-comparison-recommended-body{grid-template-columns:1fr}.gengage-chat-comparison-recommended-title{font-size:20px}}.gengage-chat-pills{border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:8px 12px 6px;position:relative}.gengage-chat-pills-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-right:28px;display:flex;overflow-x:auto}.gengage-chat-pills-scroll::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-pills-scroll{flex-wrap:wrap;gap:6px}.gengage-chat-root--mobile .gengage-chat-pill{white-space:normal;max-width:100%}.gengage-chat-pill{border:1px solid var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.gengage-chat-pill:hover{background:color-mix(in srgb, var(--client-primary) 12%, white);border-color:color-mix(in srgb, var(--client-primary) 36%, white)}.gengage-chat-pill:active{transform:none}.gengage-chat-pill--rich{border-radius:18px;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:flex}.gengage-chat-pill-img{object-fit:cover;background:var(--surface-card);border-radius:12px;flex-shrink:0;width:32px;height:32px}.gengage-chat-pill-text{font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-pill-desc{display:none}.gengage-chat-pill--rich .gengage-chat-pill-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;font-weight:500;display:block;overflow:hidden}.gengage-chat-pills-arrow{border:1px solid var(--border-default);background:var(--surface-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-1);z-index:1;border-radius:12px;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.gengage-chat-pills-arrow:hover{background:var(--surface-card-soft);color:var(--client-primary)}@media (prefers-reduced-motion:reduce){.gengage-chat-uispec>*,.gengage-chat-action-btn,.gengage-chat-product-card,.gengage-chat-product-card-cta,.gengage-chat-send,.gengage-chat-launcher,.gengage-chat-pill,.gengage-chat-drawer,.gengage-chat-typing-dots span,.gengage-chat-thinking-step-marker--active,.gengage-chat-bubble,.gengage-chat-panel-skeleton-block,.gengage-chat-ai-toppick-card,.gengage-chat-mic-btn--active,.gengage-chat-ai-toppick-spinner:after,.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price,.gengage-chat-cart-toast,.gengage-chat-header-btn--cart-flash{transition:none!important;animation:none!important;transform:none!important}}.gengage-chat-bubble--user{position:relative}.gengage-chat-rollback-btn{border-radius:var(--radius-pill);background:var(--surface-card-muted);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;opacity:0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:50%;left:-28px;transform:translateY(-50%)}.gengage-chat-bubble--user:hover .gengage-chat-rollback-btn{opacity:1}.gengage-chat-rollback-btn:hover{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-bubble--hidden{display:none}.gengage-chat-ai-top-picks{flex-direction:column;gap:12px;padding:8px 0;scroll-margin-top:60px;display:flex}.gengage-chat-ai-top-picks-title{color:var(--text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:10px;min-width:0;display:flex}.gengage-chat-ai-top-picks-rest,.gengage-chat-ai-toppick-top-row{display:contents}.gengage-chat-ai-toppick-detail{width:100%;min-width:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks{gap:0;padding-top:4px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-title{flex-shrink:0;width:100%;margin:0 0 10px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,auto);align-items:stretch;gap:12px;margin:0;padding:12px 0;display:grid;overflow:visible}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex:initial;scroll-snap-align:none;width:100%;min-width:0;max-width:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child{grid-column:1/-1;grid-template-rows:auto auto;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:12px 18px;display:grid}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail){grid-template-rows:auto auto auto}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex-direction:column;align-items:stretch}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-media{aspect-ratio:4/3;grid-area:1/1/span 2;max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-media{grid-row:1/span 3}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-detail{grid-area:2/2;min-width:0;padding-top:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;flex-shrink:0;width:100%;height:100%;max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-img{max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-height:0;padding:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-body{grid-area:1/2;padding-top:6px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-cta{grid-row:3}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:calc(100% - 24px);color:var(--ds-button-secondary-fg);align-self:stretch;margin:14px 12px 12px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:auto;min-width:180px;color:var(--ds-button-secondary-fg);grid-area:2/2;place-self:end start;margin:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-secondary-bg-hover);filter:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.gengage-chat-ai-toppick-rating-icon{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-ai-toppick-rating-value{color:var(--text-primary)}.gengage-chat-ai-toppick-media .gengage-chat-ai-toppick-discount-badge{background:var(--client-primary);color:var(--client-on-primary);z-index:1;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:800;line-height:1.2;position:absolute;top:4px;left:4px;right:auto}.gengage-chat-ai-toppick-card--winner,.gengage-chat-ai-toppick-card--compact{box-sizing:border-box;border-radius:var(--radius-card);background:var(--surface-card);flex-direction:column;align-items:stretch;padding:12px;transition:box-shadow .2s,background .15s,transform .15s;display:flex;position:relative;overflow:visible}.gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-ai-toppick-card--winner:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default)}.gengage-chat-ai-toppick-card--compact:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-ai-toppick-badge{z-index:2;box-sizing:border-box;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;white-space:normal;border-radius:999px;max-width:calc(100% - 24px);padding:2px 10px;font-size:10px;font-weight:700;line-height:1.25;position:absolute;top:-10px;left:12px}.gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-badge{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:100%;margin-top:4px;margin-bottom:8px;display:flex;position:relative;overflow:hidden}.gengage-chat-ai-toppick-img{object-fit:contain;box-sizing:border-box;width:auto;max-width:100%;height:auto;max-height:100%;padding:4px}.gengage-chat-ai-toppick-body{flex-direction:column;flex:1;gap:0;min-width:0;padding:0;display:flex}.gengage-chat-ai-toppick-name{color:var(--text-primary);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:14px;font-weight:700;line-height:1.375;display:-webkit-box;overflow:hidden}.gengage-chat-ai-toppick-role{color:var(--client-primary);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.gengage-chat-ai-toppick-labels{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.gengage-chat-ai-toppick-label{border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}.gengage-chat-ai-toppick-label[data-sentiment=positive]{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=negative]{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=neutral]{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-reason{color:var(--text-secondary);margin:10px 0 0;font-size:13px;line-height:1.5}.gengage-chat-ai-toppick-review{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-primary);border-radius:14px;margin-top:10px;padding:10px 12px;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-snippet{color:var(--text-secondary);margin:8px 0 0;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-price{color:var(--text-primary);margin-top:4px;font-size:14px;font-weight:700}.gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-ai-toppick-original-price{color:var(--text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.gengage-chat-ai-toppick-price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px;display:flex}.gengage-chat-ai-toppick-price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-campaign-price-badge{box-sizing:border-box;border-radius:var(--radius-control,10px);background-image:linear-gradient(var(--gengage-campaign-price-badge-fill,#fff) 0 0), linear-gradient(135deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));background-origin:border-box;background-clip:padding-box,border-box;border:1px solid #0000;flex-direction:row;align-items:center;gap:10px;max-width:100%;padding:10px 12px;display:inline-flex}.gengage-chat-campaign-price-badge__logo{flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-campaign-price-badge__logo img{object-fit:contain;width:auto;max-width:72px;height:auto;max-height:32px;display:block}.gengage-chat-campaign-price-badge__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-campaign-price-badge__reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0;font-size:12px;font-weight:700;line-height:1.25}.gengage-chat-campaign-price-badge__sale{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:17px;font-weight:800;line-height:1.15}.gengage-chat-product-card-price-row .gengage-chat-campaign-price-badge__sale{font-size:16px}.gengage-chat-product-summary__price .gengage-chat-campaign-price-badge__sale{font-size:15px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge{border-radius:var(--radius-control,12px);padding:12px 14px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__reason{font-size:13px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__sale{font-size:22px}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge)){align-items:last baseline}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-ai-toppick-price-sep,.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-card-price-sep,.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-summary__price-sep,.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-details-price-sep){align-self:last baseline}.gengage-chat-ai-toppick-price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-ai-toppick-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.85em;margin:0 1px;display:inline-block}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-original-price{font-size:14px;font-weight:500;text-decoration:none}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:14px;font-weight:800}.gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control,12px);background:var(--ds-button-primary-bg);width:calc(100% - 24px);color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;box-sizing:border-box;opacity:0;pointer-events:none;flex-shrink:0;align-self:stretch;margin:14px 12px 12px;padding:8px 0;font-size:13px;font-weight:700;transition:opacity .18s,transform .18s,background .15s;display:block;transform:translateY(6px)}.gengage-chat-ai-toppick-card--winner:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--winner:focus-within .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:focus-within .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;transform:translateY(0)}.gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-ai-toppick-spinner{background:color-mix(in srgb, var(--surface-card) 78%, transparent);z-index:6;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gengage-chat-ai-toppick-spinner:after{content:"";border:3px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite gengage-spin}@keyframes gengage-spin{to{transform:rotate(360deg)}}.gengage-chat-root--mobile .gengage-chat-ai-top-picks{gap:8px;padding:4px 0}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-title{margin:0 0 2px;font-size:14px}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:8px;min-width:0;padding:6px 0 2px;display:flex;overflow:visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child{flex-direction:column;align-items:stretch;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child.gengage-chat-ai-toppick-card--winner{flex-direction:column}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;flex-flow:row;gap:8px;min-width:0;margin:0 -2px;padding:2px 2px 8px;display:flex;overflow:auto visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest::-webkit-scrollbar{width:0;height:0;display:none}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest .gengage-chat-ai-toppick-card--compact{scroll-snap-align:start;flex:0 0 min(82vw,272px);width:min(82vw,272px);min-width:0;max-width:272px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:6px 8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 28%, var(--border-default));margin-bottom:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default);box-shadow:none;flex-direction:column;align-items:stretch}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:10px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:10px;flex:0 0 clamp(96px,30vw,124px);width:clamp(96px,30vw,124px);height:clamp(96px,30vw,124px);max-height:none;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;height:100%;max-height:100%;padding:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body{flex:1;min-width:0;padding-top:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-detail{width:100%;margin-top:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-reason{color:var(--text-primary);margin:0;font-size:12px;line-height:1.45;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-review{color:var(--text-secondary);border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;margin-top:8px;padding:8px 10px;font-size:12px;font-style:italic;line-height:1.4;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:6px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:8px;flex:0 0 64px;width:64px;height:64px;max-height:64px;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;max-height:100%;padding:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-width:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-rating{display:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-detail{width:100%;margin-top:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;font-size:10px;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-role-line{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;font-size:9px;font-weight:600;line-height:1.15}.gengage-chat-root--mobile .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:3px;right:5px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:5px;right:6px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{letter-spacing:.04em;background:var(--client-primary);max-width:calc(100% - 18px);color:var(--client-on-primary);box-shadow:none;border:none;padding:2px 6px;font-size:8px;font-weight:700;line-height:1.15;top:-14px;left:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-name{margin-bottom:1px;font-size:12px;line-height:1.22}.gengage-chat-root--mobile .gengage-chat-ai-toppick-name{margin-bottom:2px;font-size:13px;line-height:1.28}.gengage-chat-root--mobile .gengage-chat-ai-toppick-rating{gap:3px;margin-top:2px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-price{margin-top:1px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-price{margin-top:2px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-original-price{font-size:11px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-labels,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{display:none!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;border:1px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 16px);color:var(--client-primary);box-shadow:none;filter:none;align-self:stretch;margin:8px 8px 6px;padding:6px 0;font-size:12px;font-weight:600;transform:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover{background:color-mix(in srgb, var(--client-primary) 10%, var(--surface-card));color:var(--client-primary);border-color:var(--client-primary);filter:none}.gengage-chat-root--mobile .gengage-chat-rollback-btn{left:-24px}.gengage-chat-grounding-review{align-items:center;gap:12px;padding:12px 16px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-grounding-review:hover{background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}.gengage-chat-grounding-review-icon{background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));width:32px;height:32px;color:var(--client-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gengage-chat-grounding-review-icon svg{width:18px;height:18px;display:block}.gengage-chat-grounding-review-body{flex:1;min-width:0}.gengage-chat-grounding-review-title{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grounding-review-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.gengage-chat-grounding-review-cta{color:var(--client-primary);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.gengage-chat-grounding-review-cta-icon{align-items:center;display:inline-flex}.gengage-chat-grounding-review-cta-icon svg{width:14px;height:14px;display:block}.gengage-chat-grouping-cards{flex-direction:column;gap:6px;display:flex}.gengage-chat-grouping-cards-scroll{flex-direction:column;gap:6px;min-width:0;display:flex}.gengage-chat-grouping-card{background:var(--surface-card-soft);border:1px solid var(--border-default);border-radius:var(--radius-control);align-items:center;gap:10px;padding:8px 12px;transition:background .15s,border-color .15s;display:flex}.gengage-chat-grouping-card:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-grouping-card-arrow{color:var(--client-primary);flex-shrink:0;font-size:14px;display:none}.gengage-chat-grouping-card-img{border-radius:calc(var(--radius-control) - 4px);object-fit:cover;flex-shrink:0;width:48px;min-width:48px;height:48px;min-height:48px}.gengage-chat-grouping-card-body{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-grouping-card-name{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:12px}.gengage-chat-grouping-card-labels{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-grouping-card-label{color:var(--text-secondary);background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-grouping-card-img{display:none}.gengage-chat-root--mobile .gengage-chat-grouping-card-arrow{display:inline}.gengage-chat-suggested-search-cards{flex-direction:column;gap:8px;display:flex}.gengage-chat-suggested-search-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1);align-items:center;gap:14px;padding:14px 16px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.gengage-chat-suggested-search-card:hover{background:var(--surface-card);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-chat-suggested-search-card-img{object-fit:contain;background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:14px;flex-shrink:0;width:64px;height:64px;padding:4px}.gengage-chat-suggested-search-card-body{flex:1;min-width:0}.gengage-chat-suggested-search-card-name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-details-gallery{position:relative}.gengage-chat-product-details-gallery .gengage-chat-product-details-img{touch-action:pan-y}.gengage-chat-product-gallery-nav{z-index:3;border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;background:color-mix(in srgb, var(--surface-card) 92%, transparent);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0;transition:background .15s,opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gengage-chat-product-gallery-nav:hover:not(:disabled){background:var(--surface-card);color:var(--client-primary)}.gengage-chat-product-gallery-nav:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-gallery-nav:disabled{opacity:.35;cursor:not-allowed}.gengage-chat-product-gallery-nav--prev{left:8px}.gengage-chat-product-gallery-nav--next{right:8px}.gengage-chat-product-gallery-thumbs{scrollbar-width:thin;justify-content:center;gap:8px;width:100%;padding:10px 0 4px;display:flex;overflow-x:auto}.gengage-chat-product-gallery-thumb{object-fit:cover;cursor:pointer;background:var(--surface-card);border:2px solid #0000;border-radius:8px;flex-shrink:0;width:56px;height:56px;transition:border-color .15s}.gengage-chat-product-gallery-thumb:hover{border-color:var(--border-strong)}.gengage-chat-product-gallery-thumb--active{border-color:var(--client-primary)}.gengage-chat-product-gallery-thumb-more{background:var(--surface-card-muted);width:56px;height:56px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.gengage-chat-product-variants-label{color:var(--text-muted);text-transform:none;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-product-variants-list{flex-wrap:wrap;gap:6px;display:flex}.gengage-chat-product-variant-btn{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:6px 12px;font-size:12px;transition:background .15s,border-color .15s}.gengage-chat-product-variant-btn:hover{background:var(--surface-card-muted);border-color:color-mix(in srgb, var(--client-primary) 20%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-details-panel{border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);gap:16px;padding:16px}.gengage-chat-product-details-media{border-color:var(--border-default);border-radius:var(--radius-card);background:var(--surface-card-soft);justify-content:center;min-height:320px}.gengage-chat-product-details-img{max-height:420px}.gengage-chat-product-details-content{gap:12px}.gengage-chat-product-details-brand{color:var(--client-primary);font-size:12px;font-weight:800;line-height:1.2}.gengage-chat-product-details-title{font-size:22px;line-height:1.2}.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));background:color-mix(in srgb, var(--warning) 10%, var(--surface-card));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));gap:6px;padding:6px 10px;font-family:inherit}button.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));cursor:pointer}.gengage-chat-product-details-rating--clickable:hover{border-color:color-mix(in srgb, var(--warning) 42%, var(--border-default));background:color-mix(in srgb, var(--warning) 14%, var(--surface-card))}.gengage-chat-product-details-rating .gengage-star-rating{line-height:1}.gengage-chat-product-details-rating-value{color:var(--text-primary)}.gengage-chat-product-details-price{flex-wrap:wrap;gap:10px}.gengage-chat-product-details-original-price{order:2}.gengage-chat-product-details-current-price{order:1;font-size:30px}.gengage-chat-product-details-discount-badge{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--error) 12%, white);min-height:24px;color:color-mix(in srgb, var(--error) 84%, var(--text-primary));order:3;align-items:center;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{order:0;font-size:30px}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{font-weight:500}.gengage-chat-product-details-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.gengage-chat-product-details-fact{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-card-soft);min-width:0;padding:8px 10px}.gengage-chat-product-details-fact dt,.gengage-chat-product-details-fact dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.gengage-chat-product-details-fact dt{color:var(--text-muted);font-size:11px;font-weight:700}.gengage-chat-product-details-fact dd{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:700}.gengage-chat-product-variants{margin-top:4px}.gengage-chat-product-variants-label{color:var(--text-primary);letter-spacing:normal;margin-bottom:8px;font-size:14px;font-weight:800}.gengage-chat-product-variants-list{gap:8px}.gengage-chat-product-variant-btn{border-radius:var(--radius-control);min-height:44px;color:var(--text-primary);gap:8px;padding:7px 10px;font-size:13px;font-weight:700}.gengage-chat-product-variant-btn--active{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--client-primary) 36%, transparent);color:var(--client-primary)}.gengage-chat-product-variant-btn--out{opacity:.48;cursor:not-allowed}.gengage-chat-product-variant-swatch{border:1px solid var(--border-default);background:var(--surface-card-muted);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface-card);border-radius:50%;flex:0 0 22px}.gengage-chat-product-variant-swatch--image{object-fit:cover;box-shadow:none}.gengage-chat-product-variant-label,.gengage-chat-product-variant-price{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gengage-chat-product-variant-price{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-product-details-actions{gap:10px;margin-top:6px}.gengage-chat-product-details-atc,.gengage-chat-product-details-cta{border-radius:var(--radius-control);min-height:44px}.gengage-chat-product-details-atc{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg)}.gengage-chat-product-details-atc:hover{background:var(--ds-button-primary-bg-hover);filter:none}.gengage-chat-product-details-cta.gds-btn-secondary{border-color:var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg)}.gengage-chat-product-details-cta.gds-btn-secondary:hover{background:var(--ds-button-secondary-bg-hover)}@media (width>=960px){.gengage-chat-product-details-panel{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;display:grid}.gengage-chat-product-details-media{position:sticky;top:0}.gengage-chat-product-detail-tabs{grid-column:1/-1}}.gengage-chat-root--mobile .gengage-chat-product-details-panel{box-shadow:none;gap:10px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:220px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price{font-size:24px}.gengage-chat-root--mobile .gengage-chat-product-details-facts{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-product-details-actions{grid-template-columns:1fr 1fr 44px;align-items:stretch;display:grid}.gengage-chat-root--mobile .gengage-chat-product-details-actions>.gengage-chat-product-details-share{width:44px;min-width:44px}.gengage-chat-root--mobile .gengage-chat-product-details-atc,.gengage-chat-root--mobile .gengage-chat-product-details-cta{width:100%;padding-inline:10px}.gengage-chat-product-grid-wrapper{flex-direction:column;gap:6px;display:flex}.gengage-chat-consulting-style-picker{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));background:linear-gradient(160deg, color-mix(in srgb, var(--surface-card) 80%, white), color-mix(in srgb, var(--surface-card-soft) 84%, white));border-radius:20px;padding:12px}.gengage-chat-consulting-style-picker-title{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:800}.gengage-chat-consulting-style-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-consulting-style-btn{border:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;gap:0;padding:6px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-consulting-style-btn:hover{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));transform:translateY(-1px)}.gengage-chat-consulting-style-btn--active{border-color:color-mix(in srgb, var(--client-primary) 40%, var(--border-default));box-shadow:0 0 0 2px color-mix(in srgb, var(--client-primary) 16%, transparent), var(--shadow-1)}.gengage-chat-consulting-style-media{border-radius:12px;position:relative;overflow:hidden}.gengage-chat-consulting-style-image{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;width:100%}.gengage-chat-consulting-style-caption{color:#fff;background:#0000008c;border-radius:12px;padding:8px 10px;font-size:15px;font-weight:800;line-height:1.2;position:absolute;bottom:10px;left:10px;right:10px}.gengage-chat-consulting-group{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:linear-gradient(180deg, var(--surface-card-soft), var(--surface-card));border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.gengage-chat-consulting-group-header{flex-direction:column;gap:4px;min-height:112px;display:flex}.gengage-chat-consulting-group-label{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.5em;margin:0;font-size:16px;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-reason{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-grid{grid-template-columns:repeat(var(--consulting-group-columns,4), minmax(210px, 1fr));justify-content:stretch;align-items:stretch;gap:14px;margin-bottom:2px;display:grid}.gengage-chat-consulting-group-grid .gengage-chat-product-card{height:100%}.gengage-chat-beauty-photo-step{padding:0 12px}.gengage-chat-beauty-photo-step-card{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card) 85%, white), var(--surface-card-soft));box-shadow:var(--shadow-1);border-radius:18px;gap:10px;padding:12px;display:flex}.gengage-chat-beauty-photo-step-icon{background:color-mix(in srgb, var(--client-primary) 16%, white);width:34px;height:34px;color:var(--client-primary);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:inline-flex}.gengage-chat-beauty-photo-step-content{flex:auto;min-width:0}.gengage-chat-beauty-photo-step-title{color:var(--text-primary);font-size:15px;font-weight:800}.gengage-chat-beauty-photo-step-desc{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.45}.gengage-chat-beauty-photo-step-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.gengage-chat-beauty-photo-step-upload{border-radius:999px;min-height:34px;padding-inline:14px;font-size:12px;font-weight:800}.gengage-chat-beauty-photo-step-skip{border-radius:999px;min-height:34px;padding-inline:12px;font-size:12px;font-weight:700}.gengage-chat-panel .gengage-chat-consulting-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gengage-chat-panel .gengage-chat-consulting-style-image{min-height:250px}.gengage-chat-panel .gengage-chat-consulting-style-caption{padding:10px 12px;font-size:16px}.gengage-chat-panel .gengage-chat-consulting-group{border-radius:18px;padding:14px}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card{min-width:0;margin-inline:auto}.gengage-chat-root--mobile .gengage-chat-consulting-style-grid{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-consulting-style-image{min-height:220px}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid{grid-template-columns:1fr}.gengage-chat-product-grid-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.gengage-chat-product-grid-head-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:18px;font-weight:700;line-height:1.2;overflow:hidden}.gengage-chat-product-grid-head-actions{flex-shrink:0;align-items:center;gap:6px;max-width:52%;display:flex}.gengage-chat-product-sort-toolbar{box-shadow:none;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:0;display:flex}.gengage-chat-product-sort-toolbar--inline{flex-wrap:nowrap;justify-content:flex-end}.gengage-chat-product-sort-dropdown{z-index:5;flex:0 auto;width:auto;min-width:0;max-width:200px;position:relative}.gengage-chat-product-sort-toolbar:not(.gengage-chat-product-sort-toolbar--inline) .gengage-chat-product-sort-dropdown{flex:auto;max-width:min(200px,100%)}.gengage-chat-product-sort-dropdown--open{z-index:25}.gengage-chat-product-sort-trigger{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:100%;min-height:32px;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.gengage-chat-product-sort-trigger:hover{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:var(--surface-card-soft)}.gengage-chat-product-sort-trigger:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger{border-color:color-mix(in srgb, var(--client-primary) 32%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-product-sort-trigger-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-product-sort-dropdown[data-sort-icon=related] .gengage-chat-product-sort-trigger-icon{color:var(--client-primary)}.gengage-chat-product-sort-trigger-icon svg{display:block}.gengage-chat-product-sort-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-product-sort-trigger-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s;display:flex}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger-chevron{transform:rotate(180deg)}.gengage-chat-product-sort-menu{width:max-content;min-width:100%;max-width:min(260px,100vw - 48px);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto}.gengage-chat-product-sort-option{border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background .12s;display:flex}.gengage-chat-product-sort-option:hover{background:var(--surface-card-muted)}.gengage-chat-product-sort-option--active{color:var(--client-primary);background:var(--client-primary-subtle);font-weight:600}.gengage-chat-product-sort-option-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-product-sort-option--active .gengage-chat-product-sort-option-icon,.gengage-chat-product-sort-option--active[data-sort-key=related] .gengage-chat-product-sort-option-icon{color:var(--client-primary)}.gengage-chat-product-sort-option-icon svg{display:block}.gengage-chat-product-sort-option-label{flex:auto;min-width:0}.gengage-chat-product-sort-option-check{width:22px;color:var(--client-primary);flex-shrink:0;justify-content:flex-end;display:flex}.gengage-chat-product-sort-option-check--hidden{visibility:hidden}.gengage-chat-product-sort-separator{background:var(--border-default);width:1px;margin:2px}.gengage-chat-comparison-toggle-btn{border:1px solid var(--border-default);border-radius:var(--radius-control,12px);background:var(--surface-card);min-height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gengage-chat-comparison-toggle-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-comparison-toggle-icon svg{display:block}.gengage-chat-comparison-toggle-btn:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, white);color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active{border-color:color-mix(in srgb, var(--client-primary) 26%, white);color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-comparison-toggle-btn--active .gengage-chat-comparison-toggle-icon{color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active:hover{background:var(--client-primary-hover);color:var(--client-on-primary);border-color:var(--client-primary-hover)}.gengage-chat-comparison-toggle-btn--active:hover .gengage-chat-comparison-toggle-icon{color:var(--client-on-primary)}.gengage-chat-comparison-select-wrapper{cursor:pointer;border-radius:var(--radius-control);transition:box-shadow .2s,transform .2s;position:relative}.gengage-chat-comparison-select-wrapper:hover{box-shadow:0 0 0 2px var(--client-focus-ring)}.gengage-chat-comparison-select-wrapper--selected,.gengage-chat-comparison-select-wrapper--selected:hover{box-shadow:none}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-select-wrapper{transition:none}}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card{pointer-events:none;transition:opacity .2s,transform .2s,filter .2s}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-img-actions,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-discount-badge,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-buy-footer,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-cta{opacity:0}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:.82}.gengage-chat-comparison-select-wrapper:hover>.gengage-chat-product-card,.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{opacity:1;transform:translateY(-1px)}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--client-primary) 26%, white), var(--shadow-1);filter:saturate(1.02);border-color:#0000;outline:none}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:1}.gengage-chat-comparison-card-hint{display:none}.gengage-chat-comparison-checkbox{z-index:4;cursor:pointer;pointer-events:auto;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 94%, white);min-height:40px;color:var(--text-primary);box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;bottom:16px;left:16px;right:16px}.gengage-chat-comparison-checkbox[data-selected=true]{background:color-mix(in srgb, var(--client-primary) 10%, white);border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));color:var(--client-primary)}.gengage-chat-comparison-checkbox-icon{background:var(--surface-card-soft);color:currentColor;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.gengage-chat-comparison-checkbox[data-selected=true] .gengage-chat-comparison-checkbox-icon{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-comparison-checkbox-dot{background:color-mix(in srgb, currentColor 75%, white);border-radius:999px;width:8px;height:8px}.gengage-chat-comparison-checkbox-label{font-size:12px;font-weight:700;line-height:1.2}.gengage-chat-comparison-toggle-btn--hidden{opacity:0;pointer-events:none}@keyframes gengage-comparison-fade-in{0%{opacity:0}to{opacity:1}}.gengage-chat-comparison-toggle-btn--reveal{animation:.5s forwards gengage-comparison-fade-in}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-toggle-btn--reveal{opacity:1;animation:none}}.gengage-chat-comparison-floating-btn{border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 92%, white);width:min(100%,520px);color:var(--text-primary);z-index:5;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin:16px auto 0;padding:12px 14px;display:flex;position:sticky;bottom:12px}.gengage-chat-comparison-dock-slot{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot:not(:empty){z-index:30;padding:0 10px max(6px, env(safe-area-inset-bottom,0px));box-sizing:border-box;pointer-events:none;max-width:100%;display:block;position:absolute;bottom:0;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot>*{pointer-events:auto}.gengage-chat-comparison-floating-summary{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.gengage-chat-comparison-floating-count{background:var(--client-primary-subtle);min-width:32px;height:32px;color:var(--client-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.gengage-chat-comparison-floating-copy{min-width:0}.gengage-chat-comparison-floating-title{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.gengage-chat-comparison-floating-warning{color:var(--error);margin-top:4px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-action{flex:none;min-width:132px}.gengage-chat-comparison-floating-close{border-radius:14px;flex:none;width:40px;height:40px;padding:0}.gengage-chat-comparison-floating-action--disabled{opacity:.6}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;margin:0;padding:10px;position:relative;bottom:auto}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-summary{align-items:center;gap:8px;min-height:26px;padding-right:34px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-count{flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-title{margin:0;font-size:13px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-warning{margin-top:2px;font-size:11px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-action{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:42px;padding:0 12px;font-size:13px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close{box-sizing:border-box;align-self:unset;z-index:10;touch-action:manipulation;border-radius:8px;flex:none;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;max-height:26px;padding:0;line-height:0;position:absolute;top:9px;right:9px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close svg{width:11px;height:11px;display:block}.gengage-chat-panel-topbar{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--surface-card);z-index:3;border-bottom:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.gengage-chat-panel-topbar-title-wrap{flex:1 1 0;align-items:center;min-width:0;display:flex}.gengage-chat-panel-topbar-back,.gengage-chat-panel-topbar-forward{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;transition:background .15s,border-color .15s,opacity .15s;display:flex}.gengage-chat-panel-topbar-back[hidden],.gengage-chat-panel-topbar-forward[hidden]{display:none}.gengage-chat-panel-topbar-back:hover:not(:disabled),.gengage-chat-panel-topbar-forward:hover:not(:disabled){background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-panel-topbar-back:disabled,.gengage-chat-panel-topbar-forward:disabled{opacity:.3;cursor:default}.gengage-chat-panel-topbar-title{width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.gengage-chat-panel-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.gengage-chat-panel-topbar-actions:empty{display:none}.gengage-chat-panel-topbar-toolbar-host{justify-content:flex-end;align-items:center;width:100%;display:flex}.gengage-chat-panel-topbar-toolbar-host .gengage-chat-product-sort-toolbar{flex-wrap:nowrap;justify-content:flex-end;gap:8px}.gengage-chat-panel-topbar-close{display:none}@keyframes gengage-typewriter-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-typewriter-block{animation:.15s both gengage-typewriter-fade-in;display:block}@media (prefers-reduced-motion:reduce){.gengage-chat-typewriter-block{animation:none}}.gengage-product-mention{color:var(--client-primary);cursor:pointer;border-bottom:1px dashed var(--client-primary);font-weight:500;text-decoration:none;transition:border-color .15s}.gengage-product-mention:hover{border-bottom-style:solid}@keyframes gengage-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.gengage-chat-panel-skeleton-block{animation:1.5s ease-in-out infinite gengage-skeleton-pulse}@media (prefers-reduced-motion:reduce){.gengage-chat-panel-skeleton-block{animation:none}}.gengage-chat-input-chips{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;padding:4px 12px 2px;display:flex;overflow-x:auto}.gengage-chat-input-chips::-webkit-scrollbar{display:none}.gengage-chat-input-chip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gengage-chat-input-chip:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-icon{flex-shrink:0;width:14px;height:14px}.gengage-chat-input-chip-icon,.gengage-chat-pill-icon{align-items:center;margin-right:4px;display:inline-flex}.gengage-chat-product-card-img-wrapper,.gengage-chat-product-details-img-wrap{position:relative;overflow:hidden}.gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--_gengage-discount-color);color:var(--text-inverse);z-index:1;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;position:absolute;top:8px;left:8px}.gengage-chat-product-card-stock{border-radius:var(--radius-pill);width:fit-content;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:600}.gengage-chat-product-card-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-card-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-find-similar-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:28px;height:28px;color:var(--text-primary);box-shadow:var(--shadow-1);cursor:pointer;z-index:2;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:500;transition:opacity .2s,box-shadow .15s;display:inline-flex;position:relative}.gengage-chat-find-similar-pill:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}@media (hover:hover) and (pointer:fine){.gengage-chat-find-similar-pill:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:opacity .14s;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.gengage-chat-find-similar-pill:hover:after,.gengage-chat-find-similar-pill:focus-visible:after{opacity:1}}.gengage-chat-find-similar-pill-icon{justify-content:center;align-items:center;display:flex}.gengage-chat-find-similar-pill-icon svg{display:block}.gengage-chat-find-similar-pill-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{transition:opacity .2s}@media (hover:hover) and (pointer:fine){.gengage-chat-product-card-img-wrapper:not(:hover) .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:not(:hover) .gengage-chat-product-card-img-actions{opacity:0;pointer-events:none}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:hover .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-shell) 88%, transparent);width:auto;height:auto;color:var(--text-inverse);box-shadow:none;opacity:0;pointer-events:none;padding:4px 10px;position:absolute;top:40px;right:8px}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-icon{display:none}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-text{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-find-similar-pill,.gengage-chat-ai-toppick-media:hover .gengage-chat-find-similar-pill,.gengage-chat-product-details-img-wrap:hover .gengage-chat-find-similar-pill{opacity:1;pointer-events:auto}.gengage-chat-favorite-btn{background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-control);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);box-shadow:var(--shadow-1);z-index:3;justify-content:center;align-items:center;padding:0;transition:color .2s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-favorite-btn:hover{box-shadow:var(--shadow-2);color:var(--error);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}.gengage-chat-favorite-btn--active{color:var(--error)}.gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gengage-chat-product-details-promo-badge{border-radius:var(--radius-pill);background:var(--gengage-chat-promo-bg,color-mix(in srgb, var(--success) 12%, white));color:var(--gengage-chat-promo-text,color-mix(in srgb, var(--success) 82%, var(--text-primary)));white-space:nowrap;box-sizing:border-box;min-height:20px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-block}.gengage-chat-thumbnails-column{pointer-events:none;display:none!important}.gengage-chat-thumbnail-btn{border:2px solid var(--border-default);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s;display:flex;overflow:hidden}.gengage-chat-thumbnail-btn:hover{border-color:var(--client-primary)}.gengage-chat-thumbnail-img{object-fit:cover;width:100%;height:100%}.gengage-chat-panel-float{box-sizing:border-box;pointer-events:none;z-index:10;flex-shrink:0;align-self:stretch;width:100%;height:0;margin-top:auto;position:sticky;bottom:0;overflow:visible}.gengage-chat-choice-prompter{pointer-events:none;background:var(--surface-card);border:1px solid var(--border-default);width:auto;max-width:none;box-shadow:var(--shadow-2);z-index:5;opacity:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-left:0;margin-right:0;padding:12px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:12px;left:16px;right:16px;transform:translateY(12px)}.gengage-chat-panel--scrolled .gengage-chat-choice-prompter{pointer-events:auto;opacity:1;transform:translateY(0)}.gengage-chat-choice-prompter-heading{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:700}.gengage-chat-choice-prompter-suggestion{color:var(--text-secondary);margin-bottom:0;font-size:12px;line-height:1.35}.gengage-chat-choice-prompter-copy{min-width:0}.gengage-chat-choice-prompter-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control);background:var(--ds-button-primary-bg);width:auto;min-width:180px;min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.gengage-chat-choice-prompter-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-choice-prompter-dismiss{border:1px solid var(--border-default);background:var(--surface-card-soft);min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.gengage-chat-choice-prompter-dismiss:hover{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white);background:var(--client-primary-subtle)}@media (prefers-reduced-motion:reduce){.gengage-chat-choice-prompter{animation:none}}.gengage-chat-pros-cons{background:var(--surface-card-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-control);margin:8px 0;padding:12px 14px}.gengage-chat-pros-cons-heading{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.gengage-chat-pros-cons-list{margin:0 0 8px;padding:0;list-style:none}.gengage-chat-pros-cons-list:last-child{margin-bottom:0}.gengage-chat-pros-cons-item{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;line-height:1.5;display:flex}.gengage-chat-pros-cons-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:flex}.gengage-chat-pros-cons-icon--pro{color:var(--success);background:color-mix(in srgb, var(--success) 15%, white)}.gengage-chat-pros-cons-icon--con{color:var(--error);background:color-mix(in srgb, var(--error) 12%, white)}.gengage-chat-categories{flex-direction:column;gap:8px;display:flex}.gengage-chat-categories-tabs{-webkit-overflow-scrolling:touch;gap:4px;padding:4px 0;display:flex;overflow-x:auto}.gengage-chat-categories-tab{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.gengage-chat-categories-tab:hover{background:var(--surface-card-soft);border-color:var(--border-strong)}.gengage-chat-categories-tab--active{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default))}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gengage-chat-categories-filter-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-categories-filter-tag{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.gengage-chat-categories-filter-tag:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-grid-view-more{border:1px solid var(--ds-button-secondary-border);border-radius:var(--radius-control);background:var(--ds-button-secondary-bg);width:100%;color:var(--ds-button-secondary-fg);cursor:pointer;text-align:center;grid-column:1/-1;margin-top:8px;padding:10px;font-size:14px;font-weight:500;transition:background .15s;display:block}.gengage-chat-product-grid-view-more:hover{background:var(--ds-button-secondary-bg-hover)}.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0;display:grid;overflow-x:visible}.gengage-chat-product-grid--mobile .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-comparison--mobile{position:relative;overflow-x:clip}.gengage-chat-comparison--mobile .gengage-chat-comparison-table-wrapper{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.gengage-chat-comparison--mobile .gengage-chat-comparison-table{table-layout:fixed;min-width:480px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table th:first-child,.gengage-chat-comparison--mobile .gengage-chat-comparison-table .gengage-chat-comparison-label{background:var(--surface-card);z-index:1;box-shadow:2px 0 4px color-mix(in srgb, var(--surface-shell) 8%, transparent);position:sticky;left:0}.gengage-chat-comparison--mobile .gengage-chat-comparison-table thead th:first-child{box-sizing:border-box;width:22ch;min-width:0;max-width:22ch;padding:8px 6px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table td.gengage-chat-comparison-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;width:22ch;min-width:0;max-width:22ch;overflow:hidden}.gengage-chat-product-details-similars-heading{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-product-details-similars{margin-top:8px}.gengage-chat-handoff-notice{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border-default));border-radius:var(--radius-control);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:16px;display:flex}.gengage-chat-handoff-notice-icon{font-size:24px}.gengage-chat-handoff-notice-heading{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin:0;font-size:14px;font-weight:600}.gengage-chat-handoff-notice-summary{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));margin:0;font-size:13px;line-height:1.5}.gengage-chat-product-details-share{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background-color .12s;display:inline-flex;position:relative}.gengage-chat-product-details-share:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--client-primary-subtle)}.gengage-chat-product-details-share:before{content:attr(aria-label);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;pointer-events:none;opacity:0;z-index:2;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gengage-chat-product-details-share:hover:before{opacity:1}.gengage-chat-product-details-share--copied:after{content:"✓";background:var(--_gengage-success-color);color:var(--client-on-primary);border-radius:var(--radius-control);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.gengage-chat-product-details-share svg{width:20px;height:20px}.gengage-chat-review-link,.gengage-chat-grounding-link{color:var(--client-primary);text-decoration:underline}@media (width<=768px){.gengage-chat-product-details-promo-badge{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.gengage-chat-launcher:focus-visible,.gengage-chat-close:focus-visible,.gengage-chat-header-btn:focus-visible,.gengage-chat-header-powered:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-pill:focus-visible,.gengage-chat-input-chip:focus-visible,.gengage-chat-pills-arrow:focus-visible,.gengage-chat-error-retry:focus-visible,.gengage-chat-product-card-cta:focus-visible,.gengage-chat-product-details-cta:focus-visible,.gengage-chat-product-details-atc:focus-visible,.gengage-chat-product-detail-tab:focus-visible,.gengage-chat-panel-divider-toggle:focus-visible,.gengage-chat-panel-topbar-back:focus-visible,.gengage-chat-panel-topbar-forward:focus-visible,.gengage-chat-rollback-btn:focus-visible,.gengage-chat-ai-toppick-cta:focus-visible,.gengage-chat-comparison-toggle-btn:focus-visible,.gengage-chat-comparison-floating-btn:focus-visible,.gengage-chat-comparison-checkbox:focus-visible,.gengage-chat-product-sort-trigger:focus-visible,.gengage-chat-product-sort-option:focus-visible,.gengage-chat-product-variant-btn:focus-visible,.gengage-chat-product-gallery-thumb:focus-visible,.gengage-chat-thumbnail-btn:focus-visible,.gengage-chat-find-similar-pill:focus-visible,.gengage-chat-favorite-btn:focus-visible,.gengage-chat-attach-btn:focus-visible,.gengage-chat-attach-menu-item:focus-visible,.gengage-chat-mic-btn:focus-visible,.gengage-chat-attachment-remove:focus-visible,.gengage-chat-kvkk-dismiss:focus-visible,.gengage-chat-choice-prompter-cta:focus-visible,.gengage-chat-choice-prompter-dismiss:focus-visible,.gengage-chat-categories-tab:focus-visible,.gengage-chat-categories-filter-tag:focus-visible,.gengage-chat-product-grid-view-more:focus-visible,.gengage-chat-product-details-share:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-root--mobile .gengage-chat-choice-prompter{width:auto;max-width:none;left:12px;right:12px;bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + var(--gengage-chat-launcher-size,56px) + env(safe-area-inset-bottom,0px) + 12px);grid-template-columns:1fr;max-height:40vh;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta{width:100%}.gengage-chat-root--mobile .gengage-chat-product-sort-trigger,.gengage-chat-root--mobile .gengage-chat-product-sort-option,.gengage-chat-root--mobile .gengage-chat-comparison-toggle-btn{min-height:40px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-label,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-chevron,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-label{display:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-dropdown{flex:none;width:auto;max-width:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger{justify-content:center;gap:0;width:auto;min-width:44px;padding:0 10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-btn{justify-content:center;gap:0;width:44px;min-width:44px;padding:0}.gengage-chat-root--mobile .gengage-chat-input-chip{min-height:40px;padding:8px 12px}.gengage-chat-root--mobile .gengage-chat-choice-prompter-dismiss{width:32px;height:32px}.gengage-chat-root--mobile .gengage-chat-panel-divider-toggle{min-height:44px}.gengage-chat-root--mobile .gengage-chat-product-card-cta,.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta,.gengage-chat-root--mobile .gengage-chat-product-grid-view-more{justify-content:center;align-items:center;min-height:44px;display:flex}.gengage-chat-root--mobile .gengage-chat-panel-topbar-back,.gengage-chat-root--mobile .gengage-chat-panel-topbar-forward,.gengage-chat-root--mobile .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel-topbar-close{display:none}.gengage-skeleton{gap:12px;padding:12px;display:flex}.gengage-skeleton--message{flex-direction:column;gap:8px;padding:16px}.gengage-skeleton-card{flex-direction:column;flex:1;gap:8px;display:flex}.gengage-skeleton-img{border-radius:var(--radius-control);height:120px}.gengage-skeleton-text{border-radius:4px;height:14px}.gengage-skeleton-price{border-radius:4px;width:60%;height:14px}.gengage-skeleton-line{border-radius:4px;height:12px}@media (prefers-reduced-motion:no-preference){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:linear-gradient(90deg, var(--ds-neutral-100) 25%, var(--ds-neutral-200) 50%, var(--ds-neutral-100) 75%);background-size:200% 100%;animation:1.5s infinite gengage-shimmer}@keyframes gengage-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}}@media (prefers-reduced-motion:reduce){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:var(--ds-neutral-100)}}.gengage-chat-panel--has-scroll:after{content:"";background:linear-gradient(transparent, var(--surface-card-soft));pointer-events:none;height:40px;display:block;position:sticky;bottom:0}@media (prefers-reduced-motion:no-preference){.gengage-chat-panel--transitioning{opacity:0;transition:opacity .15s}}.gengage-chat-cart-toast{background:var(--success);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-3);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:72px;left:50%;transform:translate(-50%)translateY(8px)}.gengage-chat-cart-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@keyframes gengage-cart-flash{0%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}to{transform:scale(1)}}.gengage-chat-header-btn--cart-flash{animation:.5s gengage-cart-flash}', Ar = U({
|
|
5160
|
-
role:
|
|
5160
|
+
var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel-container,.gengage-simbut-root){--ds-neutral-0:#fff;--ds-neutral-25:#fcfcfd;--ds-neutral-50:#f6f7fb;--ds-neutral-100:#f3f4f6;--ds-neutral-200:#e5e7eb;--ds-neutral-300:#d0d5dd;--ds-neutral-500:#667085;--ds-neutral-600:#475467;--ds-neutral-700:#344054;--ds-neutral-900:#111827;--ds-radius-2:8px;--ds-radius-3:12px;--ds-radius-4:16px;--ds-radius-5:20px;--ds-radius-6:24px;--ds-radius-pill:999px;--ds-shadow-1:0 1px 2px #1018280a, 0 1px 3px #1018280f;--ds-shadow-2:0 4px 12px #10182814;--ds-shadow-3:0 10px 24px #1018281f;--client-primary:var(--gengage-primary-color,#b7102a);--client-primary-hover:var(--gengage-primary-hover,color-mix(in srgb, var(--client-primary) 88%, black 12%));--client-primary-active:var(--gengage-primary-active,color-mix(in srgb, var(--client-primary) 78%, black 22%));--client-primary-subtle:color-mix(in srgb, var(--client-primary) 12%, white);--client-primary-soft:color-mix(in srgb, var(--client-primary) 20%, white);--client-on-primary:var(--gengage-primary-foreground,#fff);--client-focus-ring:color-mix(in srgb, var(--client-primary) 32%, transparent);--ai-accent-start:#0b24d6;--ai-accent-end:#f768f2;--ai-accent-soft:linear-gradient(135deg, #0b24d614, #f768f214);--surface-page:var(--gengage-page-bg,var(--ds-neutral-50));--surface-shell:var(--gengage-shell-bg,#10131a);--surface-card:var(--gengage-background-color,var(--ds-neutral-0));--surface-card-muted:var(--gengage-surface-soft,#f8fafc);--surface-card-soft:var(--surface-card-muted);--surface-elevated:var(--gengage-surface-elevated,var(--ds-neutral-0));--surface-input:var(--gengage-input-bg,var(--ds-neutral-0));--surface-overlay:var(--gengage-overlay-bg,#10131a85);--text-primary:var(--gengage-foreground-color,var(--ds-neutral-900));--text-secondary:var(--gengage-text-secondary,#4b5563);--text-muted:var(--gengage-text-muted,#6b7280);--text-inverse:var(--gengage-text-inverse,#f9fafb);--border-subtle:var(--gengage-border-subtle,#1118270f);--border-default:var(--gengage-border-color,#1118271a);--border-strong:var(--gengage-border-strong,#1118272e);--shadow-1:var(--gengage-shadow-1,var(--ds-shadow-1));--shadow-2:var(--gengage-shadow-2,var(--ds-shadow-2));--shadow-3:var(--gengage-shadow-3,var(--ds-shadow-3));--radius-control:var(--gengage-control-radius,var(--ds-radius-3));--radius-card:var(--gengage-card-radius,var(--ds-radius-4));--radius-panel:var(--gengage-panel-radius,var(--ds-radius-6));--radius-pill:var(--gengage-pill-radius,var(--ds-radius-pill));--success:var(--gengage-success-color,#16a34a);--warning:var(--gengage-warning-color,#d97706);--error:var(--gengage-error-color,#dc2626);--info:var(--gengage-info-color,#2563eb);--rating:var(--gengage-rating-color,#f5b301);--gengage-primary:var(--client-primary);--gengage-primary-soft:var(--client-primary-soft);--gengage-primary-subtle:var(--client-primary-subtle);--gengage-text-color:var(--text-primary);--gengage-text-secondary:var(--text-secondary);--gengage-hover-color:var(--surface-card-soft);--ds-button-primary-bg:var(--client-primary);--ds-button-primary-bg-hover:var(--client-primary-hover);--ds-button-primary-bg-active:var(--client-primary-active);--ds-button-primary-fg:var(--client-on-primary);--ds-button-primary-border:color-mix(in srgb, var(--client-primary) 82%, black 18%);--ds-button-secondary-bg:var(--surface-card);--ds-button-secondary-bg-hover:var(--client-primary-subtle);--ds-button-secondary-fg:var(--client-primary);--ds-button-secondary-border:color-mix(in srgb, var(--client-primary) 26%, white);--ds-button-ghost-bg:var(--surface-card-muted);--ds-button-ghost-bg-hover:var(--ds-button-ghost-bg);--ds-button-ghost-fg:var(--text-primary);--ds-button-ghost-fg-hover:var(--client-primary);--ds-button-ghost-border:var(--border-default);--ds-button-ghost-border-hover:color-mix(in srgb, var(--client-primary) 18%, white);--ds-panel-bg:var(--surface-card);--ds-panel-border:var(--border-default);--ds-panel-shadow:var(--shadow-1);--ds-panel-radius:var(--radius-panel);--ds-header-bg:var(--surface-card);--ds-header-fg:var(--text-primary);--ds-header-muted:var(--text-muted);--ds-header-border:var(--border-default);--ds-card-bg:var(--surface-card);--ds-card-bg-soft:var(--surface-card-muted);--ds-card-border:var(--border-default);--ds-card-shadow:var(--shadow-1);--ds-card-shadow-hover:var(--shadow-2);--ds-card-radius:var(--radius-card);--ds-card-border-hover:color-mix(in srgb, var(--client-primary) 14%, var(--border-default));--ds-card-bg-hover:color-mix(in srgb, var(--client-primary) 2%, var(--surface-card));--ds-product-card-media-bg:var(--surface-card-muted);--ds-product-card-media-border:var(--border-subtle);--ds-input-bg:var(--surface-input);--ds-input-border:var(--border-default);--ds-input-radius:16px;--ds-input-focus-border:color-mix(in srgb, var(--client-primary) 28%, white);--ds-input-focus-ring:0 0 0 4px var(--client-focus-ring);--ds-input-highlight:inset 0 1px 0 #fff9;--ds-chip-bg:var(--surface-card);--ds-chip-border:var(--border-default);--ds-chip-fg:var(--text-secondary);--ds-chip-bg-hover:var(--surface-card-muted);--ds-chip-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-chip-border-active:color-mix(in srgb, var(--client-primary) 30%, white);--ds-chip-fg-active:var(--client-primary);--ds-tab-bg:var(--surface-card);--ds-tab-bg-hover:var(--surface-card-muted);--ds-tab-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-tab-border:var(--border-default);--ds-tab-border-active:color-mix(in srgb, var(--client-primary) 26%, white);--ds-tab-fg:var(--text-secondary);--ds-tab-fg-active:var(--client-primary);--ds-badge-brand-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-badge-brand-border:color-mix(in srgb, var(--client-primary) 18%, white);--ds-badge-brand-fg:var(--client-primary);--ds-message-user-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-message-user-fg:var(--text-primary);--ds-message-user-border:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));--ds-message-user-shadow:none;--ds-message-assistant-bg:var(--surface-card-soft);--ds-message-assistant-fg:var(--text-primary);--ds-message-assistant-border:var(--border-default);--ds-message-assistant-shadow:none;--ds-message-active-outline:color-mix(in srgb, var(--client-primary) 68%, white);--ds-progress-card-border:var(--border-subtle);--ds-progress-mark-bg:color-mix(in srgb, var(--ai-accent-start) 8%, var(--surface-card));--ds-progress-mark-border:color-mix(in srgb, var(--ai-accent-start) 12%, var(--border-default));--ds-progress-scrollbar-thumb:color-mix(in srgb, var(--text-primary) 18%, transparent);--ds-toast-error-bg:color-mix(in srgb, var(--error) 5%, var(--surface-card));--ds-toast-error-border:color-mix(in srgb, var(--error) 18%, var(--border-default));--ds-toast-error-accent:var(--error);--ds-toast-error-fg:color-mix(in srgb, var(--error) 22%, var(--text-primary));--ds-toast-error-shadow:var(--shadow-3);--ds-comparison-table-bg:var(--surface-card);--ds-comparison-table-border:var(--border-default);--ds-comparison-table-header-bg:var(--surface-card-muted);--ds-comparison-table-header-fg:var(--text-muted);--ds-comparison-table-row-border:var(--border-subtle);--ds-comparison-table-winner-bg:color-mix(in srgb, var(--client-primary) 6%, white);--ds-comparison-table-winner-fg:var(--client-primary)}:where(.gds-panel){background:var(--ds-panel-bg);border:1px solid var(--ds-panel-border);border-radius:var(--ds-panel-radius);box-shadow:var(--ds-panel-shadow)}:where(.gengage-qna-panel,.gengage-chat-panel-topbar,.gengage-chat-chat-header,.gengage-chat-panel-ai-zone>.gengage-chat-ai-top-picks,.gengage-chat-grounding-review){border-color:var(--ds-panel-border)}:where(.gds-btn){border-radius:var(--radius-control);min-height:46px;font:inherit;cursor:pointer;border:0;outline:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;display:inline-flex}:where(.gds-btn:hover){transform:none}:where(.gds-btn:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-btn:disabled){cursor:not-allowed;opacity:.56;box-shadow:none}:where(.gds-btn-primary){background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);border:1px solid var(--ds-button-primary-border)}:where(.gds-btn-primary:hover){background:var(--ds-button-primary-bg-hover)}:where(.gds-btn-secondary){background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg);border:1px solid var(--ds-button-secondary-border)}:where(.gds-btn-secondary:hover){background:var(--ds-button-secondary-bg-hover)}:where(.gds-btn-ghost){background:var(--ds-button-ghost-bg);color:var(--ds-button-ghost-fg);border:1px solid var(--ds-button-ghost-border)}:where(.gds-btn-ghost:hover){background:var(--ds-button-ghost-bg-hover);border-color:var(--ds-button-ghost-border-hover);color:var(--ds-button-ghost-fg-hover)}:where(.gds-chip){border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:var(--ds-chip-bg);color:var(--ds-chip-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}:where(.gds-chip:hover){background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border))}:where(.gds-chip:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-chip-active){border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}:where(.gds-badge){border-radius:var(--radius-pill);letter-spacing:.04em;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}:where(.gds-badge-brand){background:var(--ds-badge-brand-bg);color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border)}:where(.gds-shell-header){background:var(--ds-header-bg);color:var(--ds-header-fg);border-bottom:1px solid var(--ds-header-border);box-shadow:none;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}:where(.gds-shell-header [data-gengage-part=chat-header-powered-by]){color:var(--ds-header-muted)}:where(.gds-icon-btn){border-radius:var(--radius-control);width:42px;min-width:42px;height:42px;min-height:42px;padding:0}:where(.gds-input-shell){border-radius:var(--ds-input-radius);border:1px solid var(--ds-input-border);background:var(--ds-input-bg);min-height:52px;box-shadow:var(--ds-input-highlight);align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}:where(.gds-input-shell:focus-within){border-color:var(--ds-input-focus-border);box-shadow:var(--ds-input-focus-ring)}:where(.gds-tab){border-radius:var(--radius-pill);border:1px solid var(--ds-tab-border);background:var(--ds-tab-bg);color:var(--ds-tab-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}:where(.gds-tab:hover){background:var(--ds-tab-bg-hover)}:where(.gds-tab:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-tab[aria-selected=true],.gds-tab.is-active){color:var(--ds-tab-fg-active);border-color:var(--ds-tab-border-active);background:var(--ds-tab-bg-active)}:where(.gds-toolbar){flex-wrap:wrap;align-items:center;gap:10px;display:flex}:where(.gds-toolbar-compact){gap:8px}:where(.gds-card){background:var(--ds-card-bg);border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);transition:border-color .15s,box-shadow .15s,background-color .15s}:where(.gds-card-interactive),:where(.gds-clickable){cursor:pointer}:where(.gds-card-interactive:hover){background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}:where(.gds-card-soft){background:var(--ds-card-bg-soft)}:where(.gds-product-card){border-radius:16px}:where(.gds-evidence-card){background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);box-shadow:var(--shadow-1)}:where(.gds-evidence-card-success){background:color-mix(in srgb, var(--success) 10%, white);border-color:color-mix(in srgb, var(--success) 22%, var(--border-default))}:where(.gds-evidence-card-danger){background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}:where(.gds-evidence-card-warning){background:color-mix(in srgb, var(--warning) 10%, white);border-color:color-mix(in srgb, var(--warning) 22%, var(--border-default))}:where(.gds-message){border-radius:calc(var(--radius-control) + 4px);word-wrap:break-word;overflow-wrap:break-word;border:1px solid #0000;max-width:85%;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.55;animation:.3s cubic-bezier(.2,.7,.2,1) gengage-chat-msg-in}:where(.gds-message-user){background:var(--ds-message-user-bg);color:var(--ds-message-user-fg);border-color:var(--ds-message-user-border);box-shadow:var(--ds-message-user-shadow);border-bottom-right-radius:6px;align-self:flex-end}:where(.gds-message-assistant){background:var(--ds-message-assistant-bg);color:var(--ds-message-assistant-fg);border-color:var(--ds-message-assistant-border);box-shadow:var(--ds-message-assistant-shadow);border-bottom-left-radius:6px;align-self:flex-start;min-width:120px}:where(.gds-message-active){outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}:where(.gds-ai-card){background:var(--surface-card);border:1px solid var(--ds-progress-card-border);border-radius:20px;gap:16px;padding:18px;display:grid}:where(.gds-ai-mark){background:var(--ds-progress-mark-bg);width:42px;height:42px;color:var(--ai-accent-start);border:1px solid var(--ds-progress-mark-border);border-radius:14px;place-items:center;display:grid}:where(.gds-ai-loader-row){align-items:center;gap:12px;display:flex}:where(.gds-progress-loader){border:1px solid color-mix(in srgb, var(--ai-accent-start) 10%, var(--border-default));background:linear-gradient(110deg, var(--surface-card-soft) 8%, color-mix(in srgb, var(--ai-accent-start) 5%, var(--surface-card)) 18%, var(--surface-card-soft) 33%);width:fit-content;max-width:100%;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;animation:1.8s linear infinite gds-progress-shimmer;display:inline-flex}:where(.gds-progress-loader-chat){box-sizing:border-box;align-self:flex-start;width:100%;min-width:0;max-width:85%;display:flex}:where(.gds-progress-loader-chat) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-loader-panel){box-sizing:border-box;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}:where(.gds-progress-loader-panel) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-label){min-width:0;color:var(--text-secondary);word-break:break-word;font-size:13px;line-height:1.5}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:where(.gds-progress-dot){background:color-mix(in srgb, var(--ai-accent-start) 20%, var(--text-muted));border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-progress-dot:nth-child(2)){animation-delay:.2s}:where(.gds-progress-dot:nth-child(3)){animation-delay:.4s}:where(.gds-ai-status){border-radius:calc(var(--radius-control) + 2px);border:1px solid var(--border-default);background:var(--surface-card-muted);max-width:85%;color:var(--text-secondary);border-bottom-left-radius:6px;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;display:flex}:where(.gds-ai-status-text){color:var(--text-secondary);font-size:13px;font-style:italic}:where(.gds-ai-dot-loader){align-items:center;gap:5px;display:inline-flex}:where(.gds-ai-dot-loader span){background:color-mix(in srgb, var(--ai-accent-start) 38%, var(--text-muted));border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-ai-dot-loader span:nth-child(2)){animation-delay:.2s}:where(.gds-ai-dot-loader span:nth-child(3)){animation-delay:.4s}:where(.gds-ai-spinner){border:2.5px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.72s linear infinite gds-spin}@keyframes gds-spin{to{transform:rotate(360deg)}}@keyframes gds-progress-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes gds-progress-dot-pulse{0%,to{opacity:.45;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:where(.gds-progress-loader){animation:none}:where(.gds-progress-dot){opacity:.85;animation:none;transform:scale(1)}:where(.gds-ai-spinner){animation:none}:where(.gds-ai-dot-loader span){opacity:.85;animation:none}}:where(.gds-menu){border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-elevated);box-shadow:var(--shadow-3);padding:4px}:where(.gds-menu-option){border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background-color .15s,color .15s;display:flex}:where(.gds-menu-option:hover){background:var(--surface-card-muted)}:where(.gds-menu-option:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-menu-option-active){background:var(--client-primary-subtle);color:var(--client-primary);font-weight:600}:where(.gds-comparison-table){border-collapse:separate;border-spacing:0;border:1px solid var(--ds-comparison-table-border);background:var(--ds-comparison-table-bg);border-radius:20px;width:100%;overflow:hidden}:where(.gds-comparison-table th,.gds-comparison-table td){text-align:left;border-bottom:1px solid var(--ds-comparison-table-row-border);padding:14px 16px;font-size:13px}:where(.gds-comparison-table th){background:var(--ds-comparison-table-header-bg);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-comparison-table-header-fg);font-size:11px}:where(.gds-comparison-table tr:last-child td){border-bottom:0}:where(.gds-comparison-table-winner-cell){background:var(--ds-comparison-table-winner-bg);color:var(--ds-comparison-table-winner-fg);font-weight:800}:host{all:initial;font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px)}.gengage-chat-root button,.gengage-chat-root [role=button],.gengage-chat-root a{cursor:pointer}.gengage-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-root{z-index:var(--gengage-z-index,2147480000);--_gengage-chat-offset:var(--gengage-chat-offset,20px);--_gengage-chat-launcher-bottom:var(--gengage-chat-launcher-bottom,20px);--_gengage-chat-launcher-right:var(--gengage-chat-launcher-right,20px);--_gengage-chat-launcher-size:var(--gengage-chat-launcher-size,56px);--_gengage-chat-drawer-width:var(--gengage-chat-width,400px);--_gengage-chat-radius:var(--gengage-chat-shell-radius,1rem);--_gengage-chat-header-height:var(--gengage-chat-header-height,72px);--_gengage-chat-conversation-width:var(--gengage-chat-conversation-width,396px);--_gengage-chat-panel-min-width:var(--gengage-chat-panel-min-width,320px);--_gengage-chat-panel-max-width:var(--gengage-chat-panel-max-width,1200px);--_gengage-chat-input-height:var(--gengage-chat-input-height,48px);--_gengage-chat-shadow:var(--gengage-chat-shadow,var(--shadow-3));--_gengage-border-color:var(--border-default);--_gengage-discount-color:var(--gengage-discount-color,var(--client-primary));--_gengage-campaign-reason-start:var(--gengage-campaign-reason-color,var(--client-primary));--_gengage-campaign-reason-end:var(--gengage-campaign-reason-color-end,var(--gengage-campaign-reason-color,var(--client-primary)));--_gengage-success-color:var(--success);--_gengage-text-primary:var(--text-primary);--_gengage-text-secondary:var(--text-secondary);--_gengage-surface-secondary:var(--surface-card-soft);--_gengage-surface-muted:var(--surface-card-soft);--_gengage-surface-dark:var(--surface-shell);--_gengage-rating-color:var(--rating);--_gengage-error:var(--error);--_gengage-danger-color:var(--error);--_gengage-ghost-border:var(--gengage-ghost-border,color-mix(in srgb, var(--client-primary) 16%, transparent));position:fixed}.gengage-chat-backdrop{z-index:0;pointer-events:none;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}.gengage-chat-root--open:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:none;background:var(--gengage-chat-float-backdrop,transparent);display:block}.gengage-chat-root--open.gengage-chat-root--maximized-host-chrome:not(.gengage-chat--inline) .gengage-chat-backdrop{pointer-events:auto;background:var(--gengage-chat-float-backdrop,color-mix(in srgb, var(--surface-overlay) 72%, transparent))}.gengage-chat-root.gengage-chat--overlay.gengage-chat-root--open .gengage-chat-backdrop{background:var(--gengage-chat-overlay-backdrop,var(--surface-overlay));pointer-events:auto}.gengage-chat-launcher-container{bottom:var(--_gengage-chat-launcher-bottom);right:var(--_gengage-chat-launcher-right);z-index:var(--gengage-z-index,2147480000);flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed}.gengage-chat-launcher-content-area,.gengage-chat-launcher-content-area-bottom{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.gengage-chat-launcher-content-area:empty,.gengage-chat-launcher-content-area-bottom:empty,.gengage-chat-root--open .gengage-chat-launcher-content-area,.gengage-chat-root--open .gengage-chat-launcher-content-area-bottom{display:none}.gengage-chat-root--open .gengage-chat-launcher-container{pointer-events:none;opacity:0;transition:opacity .2s}.gengage-chat-launcher{width:var(--_gengage-chat-launcher-size);height:var(--_gengage-chat-launcher-size);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:var(--shadow-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;display:flex;position:relative}.gengage-chat-launcher:hover{box-shadow:var(--shadow-3);transform:none}.gengage-chat-launcher svg{width:28px;height:28px}.gengage-chat-launcher--image-mode{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;overflow:hidden}.gengage-chat-launcher--image-mode:hover{box-shadow:none}.gengage-chat-launcher--image-mode img{object-fit:contain;width:100%;height:100%}.gengage-chat-launcher--hidden-mobile{display:none!important}.gengage-chat-launcher-tooltip{border-radius:var(--radius-control);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--shadow-2);padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .2s;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)}.gengage-chat-launcher-tooltip:after{content:"";border:5px solid #0000;border-left-color:var(--surface-shell);position:absolute;top:50%;left:100%;transform:translateY(-50%)}.gengage-chat-launcher:hover .gengage-chat-launcher-tooltip{opacity:1}.gengage-chat-root--open .gengage-chat-launcher-tooltip{display:none}.gengage-chat-drawer{width:var(--_gengage-chat-drawer-width);background:var(--surface-elevated,var(--surface-card));border-left:1px solid var(--border-default);max-height:100dvh;box-shadow:var(--_gengage-chat-shadow);z-index:var(--gengage-z-index,2147480000);opacity:1;border-radius:0;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-launcher-container{right:var(--gengage-chat-launcher-mobile-right,16px);bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + env(safe-area-inset-bottom,0px))}.gengage-chat-root--mobile .gengage-chat-drawer{border:1px solid var(--border-default);width:100%;max-width:none;max-height:100dvh;box-shadow:var(--shadow-3);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-elevated,var(--surface-card));border-bottom:none;border-radius:16px 16px 0 0;bottom:0;left:0;right:0}.gengage-chat-drawer-handle{display:none}.gengage-chat-root--mobile .gengage-chat-drawer-handle{pointer-events:none;z-index:1;justify-content:center;align-items:center;height:14px;display:flex;position:absolute;top:6px;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.gengage-chat-root--mobile .gengage-chat-header button,.gengage-chat-root--mobile .gengage-chat-header a{cursor:pointer;touch-action:auto;-webkit-user-select:auto;user-select:auto}.gengage-chat-root--mobile .gengage-chat-drawer-handle:before{content:"";background:var(--border-strong);pointer-events:none;border-radius:999px;width:36px;height:4px}.gengage-chat-root--mobile.gengage-chat-root--mobile-half .gengage-chat-drawer{height:min(72dvh,620px);max-height:min(72dvh,620px);top:auto}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-drawer{border-radius:0;height:100dvh;max-height:100dvh;top:0}.gengage-chat-root--mobile .gengage-chat-input-area{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-default);transform:translateY(calc(-1 * var(--gengage-keyboard-offset,0px)))}.gengage-chat-header{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--gengage-chat-header-bg,var(--ds-header-bg));color:var(--gengage-chat-header-foreground,var(--ds-header-fg));box-shadow:none;border-bottom:1px solid var(--gengage-chat-header-border-bottom,var(--ds-header-border));z-index:2;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:relative}.gengage-chat-header-left{align-items:center;gap:10px;min-width:0;display:flex}.gengage-chat-header-avatar{background:var(--surface-card-soft);border:1px solid var(--border-default);object-fit:contain;border-radius:999px;flex-shrink:0;width:44px;height:44px}.gengage-chat-header-avatar--logo{object-fit:contain;background:0 0;border:none;border-radius:0;width:auto;max-width:92px;height:45px}.gengage-chat-header-info{flex-direction:column;gap:2px;min-width:0;display:flex}.gengage-chat-header-title-row{align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-header-title{letter-spacing:.01em;color:inherit;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;line-height:1.25;display:block;overflow:hidden}.gengage-chat-header-badge{border-radius:var(--radius-pill);background:var(--ds-badge-brand-bg);min-height:26px;color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:0 10px;font-size:10px;font-weight:800;line-height:1.5;display:inline-flex}.gengage-chat-header-powered{color:var(--ds-header-muted);align-items:center;gap:4px;font-size:11px;line-height:1.2;text-decoration:none;transition:color .15s;display:flex}.gengage-chat-header-powered:hover{color:var(--client-primary)}.gengage-chat-header-powered svg{opacity:.6;flex-shrink:0;width:12px;height:12px}.gengage-chat-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.gengage-chat-header-btn{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;line-height:1;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-header-btn:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-header-btn--fav{position:relative}.gengage-chat-header-btn--reopen-panel,.gengage-chat-root--mobile .gengage-chat-new-chat{display:none}.gengage-chat-header-fav-badge{background:var(--error);min-width:16px;height:16px;color:var(--text-inverse);text-align:center;pointer-events:none;border-radius:999px;padding:0 3px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.gengage-chat-close{border-radius:var(--radius-control,12px);background:var(--surface-card-soft);border:1px solid var(--border-default);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.gengage-chat-close:hover{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-body{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.gengage-chat-panel{width:0;transition:width .22s cubic-bezier(.2,.72,.2,1);display:none;overflow:hidden}.gengage-chat-panel--visible{box-sizing:border-box;background:var(--gengage-chat-panel-bg,var(--surface-card));border-right:1px solid var(--border-default);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 24%, transparent) transparent;flex-direction:column;width:440px;min-width:440px;padding:16px;display:flex;position:relative;overflow-y:auto}.gengage-chat-panel--visible::-webkit-scrollbar{width:6px}.gengage-chat-panel--visible::-webkit-scrollbar-track{background:0 0}.gengage-chat-panel--visible::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 24%, transparent);border-radius:3px}.gengage-chat-panel--visible::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-panel-ai-zone{box-sizing:border-box;border-bottom:1px solid var(--border-subtle);flex-shrink:0;width:100%;max-height:min(42vh,320px);margin-bottom:4px;padding:8px 0 12px;overflow:auto}.gengage-chat-panel-ai-zone:has(.gengage-chat-grouping-cards){max-height:min(52vh,520px)}.gengage-chat-panel-ai-zone:has(.gengage-chat-ai-top-picks){max-height:none;overflow:visible}.gengage-chat-panel-ai-zone[hidden]{display:none!important}.gengage-chat-panel-ai-zone-inner{align-items:center;gap:10px;display:flex}.gengage-chat-panel-ai-zone-text{color:var(--text-muted);font-size:13px}.gengage-chat-grouping-section-title{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-section-title{width:100%;color:var(--text-primary);letter-spacing:-.01em;flex-shrink:0;align-self:stretch;margin:0 0 10px;font-size:15px;font-weight:700;display:block}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards{flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;max-height:none;display:flex}.gengage-chat-panel-ai-zone .gengage-chat-grouping-cards-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-flow:row;align-items:stretch;gap:10px;width:100%;min-width:0;margin:0 -2px;padding:2px 2px 10px;display:flex;overflow:auto hidden}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card{box-sizing:border-box;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);width:136px;min-width:136px;max-width:150px;box-shadow:var(--shadow-1);flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:12px 10px 14px}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-arrow{display:none}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-img{object-fit:cover;border-radius:8px;width:100%;min-width:0;max-width:88px;height:72px;min-height:72px;margin:0 auto}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-body{text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-name{font-size:13px;font-weight:700;line-height:1.25}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:11px;line-height:1.3}.gengage-chat-panel-ai-zone .gengage-chat-grouping-card-labels{white-space:normal;text-overflow:unset;justify-content:center;margin-top:2px;line-height:1.35;overflow:visible}.gengage-chat-panel-divider{cursor:pointer;background:var(--_gengage-border-color);z-index:2;flex-shrink:0;align-items:center;width:4px;transition:background .15s;display:flex;position:relative}.gengage-chat-panel-divider:hover{background:var(--border-strong)}.gengage-chat-panel-divider--hidden{display:none}.gengage-chat-panel-divider-toggle{border:1px solid var(--_gengage-border-color);background:var(--surface-card);cursor:pointer;width:28px;height:48px;color:var(--text-secondary);box-shadow:var(--shadow-1);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-toggle:hover{background:var(--surface-card-muted);color:var(--client-primary)}.gengage-chat-panel-divider-preview{pointer-events:none;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:38px;height:192px;box-shadow:var(--shadow-2);z-index:1;border-radius:999px;flex-direction:column;gap:2px;padding:6px 4px;display:none;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.gengage-chat-panel-divider-preview:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--surface-shell) 10%, transparent));pointer-events:none;position:absolute;inset:0}.gengage-chat-panel-divider-preview-thumb{border-radius:999px;flex:1 1 0;min-height:0;position:relative;overflow:hidden}.gengage-chat-panel-divider-preview-img{object-fit:cover;filter:grayscale(.55)saturate(.8)brightness(.92);opacity:.9;width:100%;height:100%;transform:scale(1.14)}.gengage-chat-panel.gengage-chat-panel--collapsed{border-right:none;flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider .gengage-chat-panel-divider-toggle{left:50%;transform:translate(-50%,-50%)}.gengage-chat-panel--collapsed~.gengage-chat-panel-divider.gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-preview{display:flex;left:50%;transform:translate(-50%,-50%)}.gengage-chat-conversation{background:var(--surface-card);z-index:1;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.gengage-chat-drawer--with-panel{width:auto;box-shadow:none;background:0 0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-header{border-radius:0;flex-shrink:0}.gengage-chat-drawer--with-panel .gengage-chat-body{flex:1 1 0;align-items:stretch;gap:0;min-height:0;padding:0;overflow:visible}.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(var(--_gengage-chat-panel-min-width), 56vw, var(--_gengage-chat-panel-max-width));min-width:var(--_gengage-chat-panel-min-width);max-width:var(--_gengage-chat-panel-max-width);background:var(--gengage-chat-panel-bg,var(--surface-card));box-shadow:none;border-right:none;border-radius:0;flex:none;max-height:100dvh;margin:0;padding:0 16px 16px;overflow-y:auto}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider{background:0 0;width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle{background:var(--surface-card);width:20px;height:48px;color:var(--client-primary);border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));box-shadow:var(--shadow-1);z-index:10;border-radius:10px;font-size:12px}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle);color:var(--client-primary)}.gengage-chat-drawer--with-panel .gengage-chat-panel-divider--preview-active .gengage-chat-panel-divider-toggle:hover{background:var(--client-primary-subtle)}.gengage-chat-drawer--with-panel .gengage-chat-conversation{flex:0 0 var(--_gengage-chat-conversation-width);width:var(--_gengage-chat-conversation-width);background:var(--surface-card);box-shadow:var(--shadow-2);border-left:none}.gengage-chat-drawer--with-panel .gengage-chat-messages{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 22%, transparent) transparent;padding-right:6px}.gengage-chat-drawer--with-panel .gengage-chat-messages::-webkit-scrollbar{width:0}.gengage-chat-drawer--with-panel .gengage-chat-panel.gengage-chat-panel--collapsed{flex:0 0 0;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}.gengage-chat-drawer--with-panel:has(.gengage-chat-panel--collapsed){width:var(--_gengage-chat-conversation-width);background:var(--surface-elevated,var(--surface-card));box-shadow:var(--_gengage-chat-shadow)}.gengage-chat-drawer--with-panel .gengage-chat-footer{display:none}.gengage-chat-messages{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.gengage-chat-messages::-webkit-scrollbar{width:6px}.gengage-chat-messages::-webkit-scrollbar-track{background:0 0}.gengage-chat-messages::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-muted) 22%, transparent);border-radius:3px}.gengage-chat-messages::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--text-muted) 36%, transparent)}.gengage-chat-bubble--presentation-collapsed{display:none!important}.gengage-chat-former-messages-btn{z-index:2;border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:color-mix(in srgb, var(--surface-card) 96%, transparent);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-1);flex-shrink:0;align-self:center;margin-bottom:4px;padding:8px 14px;font-size:13px;font-weight:600;position:sticky;top:0}.gengage-chat-former-messages-btn:hover{background:var(--surface-card-muted)}.gengage-chat-bubble{position:relative}@keyframes gengage-chat-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-bubble--user{max-width:85%}.gengage-chat-bubble--assistant{max-width:85%;margin-left:2px}.gengage-chat-bubble--active{outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}.gengage-chat-bubble--assistant:empty{display:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a{color:var(--client-primary);text-decoration:underline}.gengage-chat-bubble--assistant .gengage-chat-bubble-text a:hover{text-decoration:none}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p{margin:0 0 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text p:last-child{margin-bottom:0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text ul,.gengage-chat-bubble--assistant .gengage-chat-bubble-text ol{margin:6px 0;padding-left:20px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text li{margin-bottom:6px;line-height:1.5}.gengage-chat-bubble--assistant .gengage-chat-bubble-text code{background:color-mix(in srgb, var(--text-primary) 8%, transparent);border-radius:6px;padding:1px 4px;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text pre{background:color-mix(in srgb, var(--surface-card) 78%, var(--surface-card-soft));border:1px solid var(--border-subtle);border-radius:12px;margin:4px 0;padding:10px 12px;overflow-x:auto}.gengage-chat-bubble--assistant .gengage-chat-bubble-text table{border-collapse:collapse;margin:4px 0;font-size:.9em}.gengage-chat-bubble--assistant .gengage-chat-bubble-text th,.gengage-chat-bubble--assistant .gengage-chat-bubble-text td{border:1px solid var(--border-default);padding:4px 8px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text img{border-radius:12px;max-width:100%;height:auto;margin:4px 0}.gengage-chat-bubble--assistant .gengage-chat-bubble-text h1,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h2,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h3,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h4,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h5,.gengage-chat-bubble--assistant .gengage-chat-bubble-text h6{color:var(--text-primary);margin:8px 0 4px;line-height:1.3}.gengage-chat-bubble--assistant .gengage-chat-bubble-text blockquote{border-left:3px solid var(--border-default);color:var(--text-secondary);margin:4px 0;padding-left:12px}.gengage-chat-bubble--assistant .gengage-chat-bubble-text{overflow-wrap:break-word}.gengage-chat-bubble--photo-analysis{border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card-soft) 80%, white), var(--surface-card))}.gengage-chat-photo-analysis-card{flex-direction:column;gap:10px;display:flex}.gengage-chat-photo-analysis-badge{letter-spacing:.02em;color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 14%, white);border:1px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default));border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:800}.gengage-chat-photo-analysis-body{flex-direction:column;gap:12px;display:flex}.gengage-chat-photo-analysis-summary{color:var(--text-primary);margin:0;font-size:14px;line-height:1.55}.gengage-chat-photo-analysis-highlights{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-photo-analysis-section{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 78%, white);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.gengage-chat-photo-analysis-section--celeb{gap:6px}.gengage-chat-photo-analysis-section-title{letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:12px;font-weight:800}.gengage-chat-photo-analysis-section-list{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-section-item{margin:0}.gengage-chat-photo-analysis-celeb-name{color:var(--text-primary);margin:0;font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-photo-analysis-celeb-reason{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.gengage-chat-photo-analysis-details{border:1px solid color-mix(in srgb, var(--client-primary) 12%, var(--border-default));background:color-mix(in srgb, var(--surface-card-soft) 54%, white);border-radius:12px;overflow:hidden}.gengage-chat-photo-analysis-details-summary{cursor:pointer;color:var(--client-primary);padding:10px 12px;font-size:13px;font-weight:700;list-style:none}.gengage-chat-photo-analysis-details-summary::-webkit-details-marker{display:none}.gengage-chat-photo-analysis-points{color:var(--text-primary);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:grid}.gengage-chat-photo-analysis-details .gengage-chat-photo-analysis-points{padding:0 16px 14px 32px}.gengage-chat-photo-analysis-next{background:color-mix(in srgb, var(--client-primary) 9%, white);color:var(--text-primary);border-radius:12px;margin:0;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.45}.gengage-chat-bubble--first{border-left:1px solid var(--ds-message-assistant-border)}.gengage-chat-bubble--first .gengage-chat-bubble-text{font-size:inherit}@media (width<=768px){.gengage-chat-bubble--assistant .gengage-chat-bubble-text{line-height:1.5}.gengage-chat-bubble--user{word-break:break-word;max-width:calc(100% - 16px)}}.gengage-chat-typing{align-self:flex-start;max-width:85%}.gengage-chat-typing-dots{flex-shrink:0}.gengage-chat-typing-text{flex:1;min-width:0}.gengage-chat-panel-loading-status{margin-bottom:16px}.gengage-chat-panel-loading-status.gds-progress-loader-panel{box-sizing:border-box;min-width:0;max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status.gds-progress-loader-panel{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel-loading-status .gengage-chat-panel-loading-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-offline-bar{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 22%, var(--border-default));align-items:center;gap:6px;padding:6px 12px;font-size:12px;line-height:1.4;display:none}.gengage-chat-offline-bar--visible{display:flex}.gengage-chat-offline-bar:before{content:"";background:var(--_gengage-rating-color);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.gengage-chat-thinking-steps{flex-direction:column;gap:4px;padding:4px 0;display:flex}.gengage-chat-thinking-step{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.gengage-chat-thinking-step-marker{text-align:center;flex-shrink:0;width:16px;font-size:12px}.gengage-chat-thinking-step-marker--done{color:var(--_gengage-success-color)}.gengage-chat-thinking-step-marker--active{color:var(--ai-accent-start);animation:1.5s ease-in-out infinite gengage-thinking-pulse}@keyframes gengage-thinking-pulse{0%,to{opacity:1}50%{opacity:.4}}.gengage-chat-thinking-step-text{line-height:1.4}.gengage-chat-error{border-radius:var(--radius-control);background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));text-align:center;border:1px solid color-mix(in srgb, var(--error) 22%, var(--border-default));justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.gengage-chat-error-retry{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border-default));border-radius:var(--radius-control);background:var(--surface-card);color:color-mix(in srgb, var(--error) 84%, var(--text-primary));cursor:pointer;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s}.gengage-chat-error-retry:hover{background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 32%, var(--border-default))}.gengage-chat-input-area{border-top:1px solid var(--border-subtle);background:var(--surface-card);z-index:2;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:0;padding:10px 12px 12px;display:flex;position:relative}.gengage-chat-input-pill{background:var(--surface-card);border:1px solid var(--border-default);min-width:0;min-height:52px;box-shadow:none;border-radius:16px;flex:1;align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .2s,box-shadow .2s;display:flex;overflow:visible}.gengage-chat-input-pill:focus-within{border-color:color-mix(in srgb, var(--client-primary) 28%, white);box-shadow:0 0 0 4px var(--client-focus-ring)}.gengage-chat-input{min-width:0;min-height:40px;max-height:120px;color:var(--_gengage-text-primary);resize:none;background:0 0;border:none;border-radius:0;outline:none;flex:1;align-content:center;padding:0;font-family:inherit;font-size:14px;line-height:1.4;overflow-y:hidden}.gengage-chat-root--mobile .gengage-chat-input-pill{min-height:52px;padding:6px 6px 6px 14px}.gengage-chat-root--mobile .gengage-chat-input{white-space:nowrap;min-height:44px;max-height:44px;font-size:16px;overflow:hidden}.gengage-chat-input::placeholder{color:var(--text-muted);font-size:14px;line-height:normal}.gengage-chat-send{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);width:40px;min-width:40px;height:40px;color:var(--ds-button-primary-fg);cursor:pointer;box-shadow:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;font-weight:700;transition:background-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,transform .15s;display:flex;position:relative}.gengage-chat-send:hover{background:var(--ds-button-primary-bg-hover);box-shadow:none;transform:none}.gengage-chat-send:active{box-shadow:none;transform:translateY(0)}.gengage-chat-send svg{width:18px;height:18px}.gengage-chat-send--stop{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--text-primary)}.gengage-chat-send--stop:hover{background:color-mix(in srgb, var(--surface-card-soft) 86%, var(--client-primary-subtle));border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-send-stop-icon{background:currentColor;border-radius:4px;width:12px;height:12px;display:inline-block}.gengage-chat-send--stop:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:600;line-height:1.2;transition:opacity .16s;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.gengage-chat-send--stop:hover:after,.gengage-chat-send--stop:focus-visible:after{opacity:1}}.gengage-chat-send:disabled{background:var(--ds-neutral-200);border-color:var(--ds-neutral-200);opacity:.5;box-shadow:none;cursor:not-allowed}.gengage-chat-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:4px 10px;font-size:10px}.gengage-chat-uispec{width:100%}.gengage-chat-uispec:empty{display:none}.gengage-chat-uispec>*{animation:.16s cubic-bezier(.2,.7,.2,1) both gengage-chat-widget-enter}@keyframes gengage-chat-widget-enter{0%{opacity:0;transform:translateY(5px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.gengage-chat-action-buttons{flex-wrap:wrap;justify-content:flex-start;gap:8px;padding:6px 0 4px;display:flex}.gengage-chat-action-buttons:after{content:"";flex:1 0 auto}.gengage-chat-action-btn{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-pill,999px);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);cursor:pointer;white-space:nowrap;flex:none;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700;line-height:1.25;transition:filter .15s,transform .1s}.gengage-chat-action-btn:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-action-btn:active{transform:scale(.97)}.gengage-chat-product-card{border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);background:var(--ds-card-bg);width:160px;min-width:160px;max-width:160px;box-shadow:var(--ds-card-shadow);flex-direction:column;transition:transform .1s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.gengage-chat-product-card:hover{box-shadow:var(--ds-card-shadow-hover);transform:translateY(-2px)}.gengage-chat-product-card-img{object-fit:contain;background:var(--surface-card);box-sizing:border-box;width:100%;height:120px;padding:8px;display:block}.gengage-chat-product-card-body{text-align:center;flex-direction:column;flex:1;gap:4px;padding:8px 10px 10px;display:flex}.gengage-chat-product-card-name{color:var(--_gengage-text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;min-height:2.7em;margin-bottom:0;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-card-brand{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-star-half{display:inline-block;position:relative}.gengage-star-half>span{width:.5em;position:absolute;top:0;left:0;overflow:hidden}.gengage-chat-product-card-review-count{color:var(--text-secondary);font-size:10px}.gengage-chat-product-card-price,.gengage-chat-product-card-price-block{color:var(--text-primary);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 6px;font-size:16px;font-weight:800;display:flex}.gengage-chat-product-card-current-price{font:inherit;color:var(--gengage-discounted-price-color,var(--text-primary));font-weight:800}.gengage-chat-product-card-original-price{color:var(--_gengage-text-secondary);margin-right:0;font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-campaign-reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0 0 4px;font-size:11px;font-weight:700;line-height:1.25}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.gengage-chat-campaign-reason,.gengage-chat-campaign-price-badge__reason{color:var(--_gengage-campaign-reason-start);background:0 0}}.gengage-chat-product-card-price-stack{flex-direction:column;align-items:flex-start;width:100%;min-width:0;display:flex}.gengage-chat-product-card-price-row{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-card-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.95em;margin:0 1px;display:inline-block}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-original-price{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:16px;font-weight:500;text-decoration:none}.gengage-chat-product-card-price-block--inline .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:16px;font-weight:800}.gengage-chat-product-card-meta-row{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:8px;width:100%;min-height:34px;display:flex}.gengage-chat-product-card-meta-row--empty{visibility:hidden}.gengage-chat-product-card-rating-compact{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-product-card-rating-compact-value{font-variant-numeric:tabular-nums;color:var(--text-primary)}.gengage-chat-product-card-img-actions{z-index:4;pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-product-card-img-actions>*{pointer-events:auto}.gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{position:static}.gengage-chat-price-skeleton{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);vertical-align:middle;background-size:200% 100%;border-radius:4px;width:80px;height:16px;animation:1.5s ease-in-out infinite gengage-skeleton-price-pulse;display:inline-block}@keyframes gengage-skeleton-price-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-product-card-cta{text-align:center;color:var(--client-primary);letter-spacing:.01em;border-top:1px solid var(--border-default);cursor:pointer;background:0 0;margin-top:auto;padding:8px 10px;font-size:12px;font-weight:700;text-decoration:none;transition:color .15s,background .15s;display:block}.gengage-chat-product-card-cta:hover{color:var(--client-primary-hover);background:var(--surface-card-soft)}.gengage-chat-product-card-cta:active{background:var(--surface-card-soft)}button.gengage-chat-product-card-cta{appearance:none;font:inherit;box-sizing:border-box;border-bottom:none;border-left:none;border-right:none;width:100%;margin:0}.gengage-chat-product-summary{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0;padding:10px 12px;transition:background .15s,box-shadow .15s,border-color .15s;display:flex}.gengage-chat-product-summary:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-product-summary__image{border-radius:var(--radius-control);border:1px solid var(--border-subtle);background:var(--surface-card-soft);flex-shrink:0;width:64px;height:64px;overflow:hidden}.gengage-chat-product-summary__image img{object-fit:cover;width:100%;height:100%;display:block}.gengage-chat-product-summary__content{flex-direction:column;flex:180px;gap:2px;min-width:0;display:flex}.gengage-chat-product-summary__name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-product-summary__rating{color:var(--_gengage-rating-color);font-size:11px;line-height:1}.gengage-chat-product-summary__review-count{color:var(--text-secondary);font-size:11px}.gengage-chat-product-summary__price{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:600;line-height:1}.gengage-chat-product-summary__price-original{color:var(--_gengage-text-secondary);font-size:11px;font-weight:400;text-decoration:line-through}.gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-product-summary__price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:2px;display:flex}.gengage-chat-product-summary__price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-product-summary__price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-product-summary__price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.9em;margin:0 1px;display:inline-block}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-original{color:var(--gengage-inline-original-price-color,var(--text-secondary));font-size:13px;font-weight:500;text-decoration:none}.gengage-chat-product-summary__price--inline .gengage-chat-product-summary__price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:13px;font-weight:700}.gengage-chat-product-summary__cta{color:var(--client-primary);border-radius:var(--radius-pill);background:var(--client-primary-subtle);white-space:nowrap;flex-shrink:0;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.gengage-chat-product-summary__cta:hover{background:var(--client-primary-soft)}.gengage-chat-product-summary__cta:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-grid{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;gap:12px;min-height:180px;padding:8px 16px 8px 0;display:flex;overflow-x:auto}.gengage-chat-product-grid>*{scroll-snap-align:start;flex:none}.gengage-chat-product-grid::-webkit-scrollbar{display:none}.gengage-chat-review-highlights{padding:4px 0 8px}.gengage-chat-review-empty{color:var(--_gengage-text-secondary);font-size:12px}.gengage-chat-review-subjects-heading{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:700}.gengage-chat-review-subjects{margin-bottom:12px}.gengage-chat-review-subject{color:var(--text-primary);box-shadow:none;gap:6px;padding:7px 11px;font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-review-subject--active{border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}.gengage-chat-review-subject-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.gengage-chat-review-subject-icon svg{width:14px;height:14px;display:block}.gengage-chat-review-subject[data-tone=positive] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-review-subject[data-tone=negative] .gengage-chat-review-subject-icon{color:color-mix(in srgb, var(--error) 84%, var(--text-primary))}.gengage-chat-review-subject[data-tone=neutral] .gengage-chat-review-subject-icon{color:var(--text-secondary)}.gengage-chat-review-subject-label{color:inherit}.gengage-chat-review-subject-count{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-review-detail{padding:12px}.gengage-chat-review-detail-meta{flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-bottom:10px;display:flex}.gengage-chat-review-detail-mentions{color:var(--_gengage-text-primary);font-size:13px;font-weight:700}.gengage-chat-review-detail-positive{color:var(--_gengage-success-color);font-size:13px;font-weight:700}.gengage-chat-review-detail-negative{color:var(--error);font-size:13px;font-weight:700}.gengage-chat-review-snippets{gap:10px;display:grid}.gengage-chat-review-snippet{border:1px solid var(--border-subtle);border-left:3px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card-soft);padding:8px 10px}.gengage-chat-review-snippet[data-tone=positive]{border-left-color:color-mix(in srgb, var(--success) 40%, var(--border-default))}.gengage-chat-review-snippet[data-tone=negative]{border-left-color:color-mix(in srgb, var(--error) 40%, var(--border-default))}.gengage-chat-review-snippet-text{color:var(--_gengage-text-primary);font-size:13px;line-height:1.4}.gengage-chat-review-snippet-rating{color:var(--text-secondary);margin-top:4px;font-size:12px;font-weight:700}.gengage-chat-favorites-page{padding:12px}.gengage-chat-favorites-empty{text-align:center;color:var(--_gengage-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.gengage-chat-favorites-empty-icon{opacity:.25;color:var(--error)}.gengage-chat-favorites-empty p{margin:0;font-size:13px;line-height:1.5}.gengage-chat-favorites-list{flex-direction:column;gap:10px;display:flex}.gengage-chat-favorites-card{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-1);align-items:center;gap:12px;padding:10px 12px;transition:opacity .2s,transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative}.gengage-chat-favorites-card:hover{border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));box-shadow:var(--shadow-1)}.gengage-chat-favorites-card--removing{opacity:0;transform:translate(8px)}.gengage-chat-favorites-card__image{border-radius:var(--radius-control);background:var(--surface-card-muted);flex-shrink:0;width:56px;height:56px;overflow:hidden}.gengage-chat-favorites-card__image img{object-fit:contain;width:100%;height:100%}.gengage-chat-favorites-card__info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.gengage-chat-favorites-card__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.gengage-chat-favorites-card__price{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-favorites-remove{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--error);cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,background .15s;display:inline-flex}.gengage-chat-favorites-remove:hover{opacity:1;background:color-mix(in srgb, var(--error) 10%, white)}.gengage-chat-divider{border:none;border-top:1px solid var(--_gengage-border-color);margin:8px 0}.gengage-chat-divider-wrapper{align-items:center;gap:8px;margin:8px 0;display:flex}.gengage-chat-divider-wrapper hr{border:none;border-top:1px solid var(--_gengage-border-color);flex:1;margin:0}.gengage-chat-divider-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.gengage-chat--overlay .gengage-chat-drawer{border-radius:0;width:100%;max-width:480px;max-height:100%;margin:0 auto;animation:.24s cubic-bezier(.2,.72,.2,1) gengage-chat-overlay-in;position:fixed;inset:0}@keyframes gengage-chat-overlay-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-panel-skeleton{box-sizing:border-box;flex-direction:column;gap:14px;min-width:0;max-width:100%;padding:6px 0;display:flex}.gengage-chat-panel-skeleton-block{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;border-radius:10px;height:110px;animation:1.4s infinite gengage-panel-shimmer}@keyframes gengage-panel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gengage-chat-panel-skeleton-block--image{border-radius:8px;height:200px;margin-bottom:12px}.gengage-chat-panel-skeleton-block--text{border-radius:4px;height:16px;margin-bottom:8px}.gengage-chat-panel-skeleton-block--text:nth-child(3){width:80%}.gengage-chat-panel-skeleton-block--text:nth-child(4){width:60%}.gengage-chat-panel-skeleton-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gengage-chat-panel-skeleton-block--card{border-radius:8px;height:120px}.gengage-chat-panel-skeleton--comparison{gap:0;padding:0}.gengage-chat-panel-skeleton--comparison .gengage-chat-panel-loading-status{margin:0;padding:16px 16px 0}.gengage-chat-comparison--skeleton{pointer-events:none;box-sizing:border-box;width:100%}.gengage-chat-comparison-skeleton-shimmer{background:linear-gradient(90deg, var(--ds-neutral-200) 25%, var(--ds-neutral-100) 50%, var(--ds-neutral-200) 75%);background-size:200% 100%;animation:1.4s infinite gengage-panel-shimmer}.gengage-chat-comparison-skeleton-rec-label{border-radius:4px;width:132px;height:12px;margin-bottom:12px}.gengage-chat-comparison-skeleton-rec-img{border-radius:8px;flex-shrink:0;width:80px;height:80px}.gengage-chat-comparison-skeleton-rec-title{border-radius:4px;max-width:100%;height:14px;margin-bottom:6px}.gengage-chat-comparison-skeleton-rec-title--short{width:72%;margin-bottom:8px}.gengage-chat-comparison-skeleton-rec-price{border-radius:4px;width:112px;height:18px}.gengage-chat-comparison-skeleton-hl-label{border-radius:4px;width:96px;height:12px;margin-bottom:6px}.gengage-chat-comparison-skeleton-hl-list{margin:0;padding-left:18px;list-style:none}.gengage-chat-comparison-skeleton-hl-list li{margin-bottom:8px}.gengage-chat-comparison-skeleton-hl-list li:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-hl-line{border-radius:4px;width:100%;height:13px}.gengage-chat-comparison-skeleton-hl-line--medium{width:92%}.gengage-chat-comparison-skeleton-hl-line--short{width:78%}.gengage-chat-comparison-skeleton-kd-heading{border-radius:4px;width:42%;height:14px;margin:0 0 8px}.gengage-chat-comparison-skeleton-kd-line{border-radius:4px;max-width:100%;height:13px;margin-bottom:8px}.gengage-chat-comparison-skeleton-kd-line:last-child{margin-bottom:0}.gengage-chat-comparison-skeleton-kd-line:nth-child(odd){width:100%}.gengage-chat-comparison-skeleton-kd-line:nth-child(2n){width:90%}.gengage-chat-comparison-special--skeleton{cursor:default;align-items:center;min-height:44px;display:flex}.gengage-chat-comparison-skeleton-special-line{border-radius:4px;width:56%;max-width:280px;height:14px}.gengage-chat-comparison-skeleton-table-wrap{border:1px solid var(--border-default);background:var(--surface-card);-webkit-overflow-scrolling:touch;border-radius:8px;margin-top:12px;overflow-x:auto}.gengage-chat-comparison-skeleton-table-head,.gengage-chat-comparison-skeleton-table-row{grid-template-columns:72px repeat(3,minmax(0,1fr));align-items:start;gap:8px;padding:10px 12px;display:grid}.gengage-chat-comparison-skeleton-table-head{border-bottom:1px solid var(--_gengage-surface-muted);background:var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-corner{min-height:92px}.gengage-chat-comparison-skeleton-table-col{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.gengage-chat-comparison-skeleton-table-th-img{border-radius:6px;flex-shrink:0;width:60px;height:60px}.gengage-chat-comparison-skeleton-table-th-name{border-radius:3px;width:100%;max-width:100%;height:11px}.gengage-chat-comparison-skeleton-table-th-price{border-radius:3px;width:64%;height:13px}.gengage-chat-comparison-skeleton-table-row{border-bottom:1px solid var(--_gengage-surface-muted)}.gengage-chat-comparison-skeleton-table-row:last-child{border-bottom:none}.gengage-chat-comparison-skeleton-table-label{border-radius:3px;align-self:center;width:100%;max-width:56px;height:12px}.gengage-chat-comparison-skeleton-table-cell{border-radius:3px;width:100%;height:14px}.gengage-chat-panel-skeleton-block--row{border-radius:4px;height:32px;margin-bottom:4px}.gengage-chat-panel .gengage-chat-product-card{border-radius:var(--radius-card);border:1px solid var(--border-default);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-1);background:var(--surface-card);flex-direction:column;padding:0;display:flex;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-2px)}.gengage-chat-panel .gengage-chat-product-card-img-actions{gap:6px;top:10px;right:10px}.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-panel .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{border-radius:8px;width:28px;height:28px}.gengage-chat-panel .gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--client-primary);min-width:36px;height:36px;color:var(--client-on-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex;top:10px;left:10px}.gengage-chat-panel .gengage-chat-product-card-brand{display:none}.gengage-chat-panel .gengage-chat-product-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;min-height:auto;padding:4px 0;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:auto;padding:6px 0 10px;display:grid;overflow-x:visible}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-grid.gengage-chat-product-grid--mobile .gengage-chat-product-card{box-sizing:border-box;width:100%;min-width:0;max-width:none}.gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;background:var(--surface-card-muted);border-radius:var(--radius-card) var(--radius-card) 0 0;flex-shrink:0;width:100%;position:relative;overflow:hidden}.gengage-chat-panel .gengage-chat-product-card-img{border-radius:inherit;object-fit:cover;object-position:center;box-sizing:border-box;background:0 0;width:100%;height:100%;min-height:0;padding:0;display:block}.gengage-chat-panel .gengage-chat-product-card-body{text-align:left;gap:8px;padding:12px 14px 10px}.gengage-chat-panel .gengage-chat-product-card-meta-row{align-items:center;min-height:38px;margin-bottom:0}.gengage-chat-panel .gengage-chat-product-card-price,.gengage-chat-panel .gengage-chat-product-card-price-block{color:var(--text-primary);justify-content:flex-start;font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:15px;font-weight:600}.gengage-chat-panel .gengage-chat-product-card-original-price{color:var(--text-muted);font-size:12px;font-weight:400}.gengage-chat-panel .gengage-chat-product-card-rating-compact{font-size:11px;font-weight:700}.gengage-chat-panel .gengage-chat-product-card-rating-compact-star{color:color-mix(in srgb, var(--warning) 58%, var(--text-primary))}.gengage-chat-panel .gengage-chat-product-card-name{min-height:0;color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.35}.gengage-chat-panel .gengage-chat-product-card-buy-footer{flex-shrink:0;min-width:0;margin-top:auto;padding:0 14px 16px;display:flex;position:relative}.gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;border:1.5px solid var(--client-primary);background:var(--surface-card);width:100%;min-width:0;min-height:42px;color:var(--client-primary);white-space:nowrap;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin:0;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;transition:background .15s,box-shadow .15s;display:flex}.gengage-chat-panel .gengage-chat-product-card-buy-trigger:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);box-shadow:var(--shadow-1)}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{border:1.5px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 28px);min-width:0;color:var(--client-primary);box-sizing:border-box;border-radius:12px;justify-content:center;align-items:center;min-height:42px;margin:0 14px 16px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta:hover{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-product-card--selected{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, transparent);box-shadow:0 0 0 1px var(--client-primary)}.gengage-chat-panel--visible{min-height:0}.gengage-chat-panel--visible>*{flex-shrink:0}.gengage-chat-load-more-btn{border:1px solid var(--border-default);color:var(--client-primary);cursor:pointer;background:0 0;border-radius:8px;margin:12px auto;padding:8px 24px;font-size:14px;display:block}.gengage-chat-load-more-btn:hover{background:var(--surface-card-muted)}.gengage-chat-product-details-panel{background:var(--surface-card);border:1px solid var(--border-default);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:12px;width:100%;padding:14px;display:flex}.gengage-chat-product-details-media{border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;flex-direction:column;align-items:center;padding:12px;display:flex}.gengage-chat-product-details-img{object-fit:contain;border-radius:8px;width:100%;height:auto;max-height:300px}.gengage-chat-product-details-content{flex-direction:column;gap:8px;min-width:0;display:flex}.gengage-chat-product-details-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700;line-height:1.3}.gengage-chat-product-details-rating{background:color-mix(in srgb, var(--warning) 10%, white);width:fit-content;color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-product-details-review-count{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));font-weight:600}.gengage-chat-product-details-price{align-items:baseline;gap:6px;display:flex}.gengage-chat-product-details-original-price{color:var(--text-secondary);font-size:14px;text-decoration:line-through}.gengage-chat-product-details-price-stack{flex-direction:column;align-items:flex-start;gap:2px;width:100%;display:flex}.gengage-chat-product-details-price-stack .gengage-chat-campaign-reason{margin-bottom:2px;font-size:13px;font-weight:600}.gengage-chat-product-details-price--inline{flex-wrap:nowrap;align-items:baseline}.gengage-chat-product-details-price--inline .gengage-chat-product-details-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:1em;margin:0 4px;display:inline-block}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{color:var(--text-secondary);order:0;font-size:22px;font-weight:500;text-decoration:none}.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));order:0;font-size:22px;font-weight:800}.gengage-chat-product-details-current-price{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:22px;font-weight:800;line-height:1.1}.gengage-chat-product-details-stock{border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:700}.gengage-chat-product-details-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-details-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-product-details-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.gengage-chat-product-details-cta{border-radius:var(--radius-control,12px);border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;transition:filter .14s,transform .12s;display:inline-flex}.gengage-chat-product-details-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-product-details-cta:active{background:var(--ds-button-primary-bg-active)}.gengage-chat-product-details-atc{border-radius:var(--radius-control);background:var(--_gengage-success-color);color:var(--client-on-primary);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:700;transition:filter .12s,transform .12s;display:inline-flex}.gengage-chat-product-details-atc:hover{filter:brightness(1.08);transform:translateY(-1px)}.gengage-chat-product-details-atc:active{transform:translateY(1px)}.gengage-chat-product-detail-tabs{border-top:1px solid var(--border-default);margin-top:4px;padding-top:12px}.gengage-chat-product-detail-tab-bar{border-bottom:1px solid var(--border-default);gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.gengage-chat-product-detail-tab{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.gengage-chat-product-detail-tab:hover{color:var(--text-primary);background:color-mix(in srgb, var(--surface-card-soft) 82%, transparent)}.gengage-chat-product-detail-tab--active{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-product-detail-tab-panel{color:var(--text-secondary);font-size:13px;line-height:1.6}.gengage-chat-product-description{color:var(--text-primary);flex-direction:column;gap:10px;display:flex}.gengage-chat-product-description p,.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4,.gengage-chat-product-description ul,.gengage-chat-product-description ol{margin:0}.gengage-chat-product-description h2,.gengage-chat-product-description h3,.gengage-chat-product-description h4{color:var(--text-primary);font-size:15px;font-weight:800;line-height:1.35}.gengage-chat-product-description ul,.gengage-chat-product-description ol{padding-left:20px}.gengage-chat-product-description li+li{margin-top:6px}.gengage-chat-product-description strong,.gengage-chat-product-description b{font-weight:800}.gengage-chat-product-specs-table{border-collapse:collapse;width:100%;font-size:13px}.gengage-chat-product-specs-table tr:nth-child(2n){background:var(--surface-card-muted)}.gengage-chat-product-specs-key{color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid var(--border-subtle);width:40%;padding:6px 10px;font-weight:600}.gengage-chat-product-specs-value{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:6px 10px}.gengage-chat-product-card-atc{opacity:0;z-index:1;transition:opacity .15s;position:absolute;bottom:42px;right:6px}.gengage-chat-product-card:hover .gengage-chat-product-card-atc{opacity:1}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-atc{opacity:1;width:100%;margin:0;display:flex;position:relative;bottom:auto;right:auto}}.gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-drawer.gengage-chat-drawer--hidden{opacity:0;pointer-events:none;box-shadow:none;visibility:hidden;transform:translateY(100%)}@media (width<=900px){.gengage-chat-drawer--with-panel .gengage-chat-panel--visible{width:clamp(280px, calc(100vw - var(--_gengage-chat-conversation-width)), 560px);max-width:560px}}.gengage-chat-attachment-preview{background:var(--surface-card-muted);border:1px solid var(--border-default);box-sizing:border-box;border-radius:8px;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.gengage-chat-attachment-preview--hidden{display:none}.gengage-chat-attachment-preview-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:40px;height:40px}.gengage-chat-attachment-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.gengage-chat-attachment-remove{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.gengage-chat-attachment-remove:hover{color:var(--error)}.gengage-chat-attach-btn{background:var(--surface-card-soft);border:1px solid var(--border-default);cursor:pointer;width:40px;height:40px;color:var(--text-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s,border-color .15s;display:flex}.gengage-chat-attach-btn:hover{color:var(--client-primary);background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, white)}.gengage-chat-attach-btn svg{width:20px;height:20px}.gengage-chat-attach-wrap{flex-shrink:0;align-items:center;display:flex;position:relative}.gengage-chat-attach-menu{z-index:50;background:var(--surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-card);min-width:196px;box-shadow:var(--shadow-3);margin:0;padding:4px 0;list-style:none;position:absolute;bottom:calc(100% + 8px);left:0}.gengage-chat-attach-menu[hidden]{display:none!important}.gengage-chat-attach-menu-item{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;transition:background .12s;display:flex}.gengage-chat-attach-menu-item:hover{background:var(--surface-card-muted)}.gengage-chat-attach-menu-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-attach-menu-label{flex:1;min-width:0}.gengage-chat-attach-menu-sep{background:var(--border-default);height:1px;margin:4px 10px}.gengage-chat-mic-btn{cursor:pointer;border-radius:var(--radius-control);width:32px;height:32px;color:var(--text-secondary);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:color .15s,background .15s;display:flex}.gengage-chat-mic-btn:hover{color:var(--text-primary);background:var(--surface-card-muted);border-color:var(--border-default)}.gengage-chat-mic-btn svg{width:20px;height:20px}.gengage-chat-mic-btn--active{color:var(--error);animation:1.2s ease-in-out infinite gengage-mic-pulse}.gengage-chat-mic-btn--active:hover{color:color-mix(in srgb, var(--error) 84%, black)}@keyframes gengage-mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}.gengage-chat-input-area--dragover{outline:2px dashed var(--client-primary);outline-offset:-2px;background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-attachment-thumb{border-radius:8px;width:120px;max-width:100%;height:auto;margin-bottom:6px;display:block}.gengage-chat-root--mobile .gengage-chat-header-btn,.gengage-chat-root--mobile .gengage-chat-close{border-radius:12px;width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn,.gengage-chat-root--mobile .gengage-chat-mic-btn,.gengage-chat-root--mobile .gengage-chat-send{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-attach-btn svg,.gengage-chat-root--mobile .gengage-chat-mic-btn svg{width:22px;height:22px}.gengage-chat-root--mobile .gengage-chat-panel-divider{cursor:ns-resize;touch-action:pan-y;background:0 0;justify-content:center;align-items:center;width:100%;height:20px;display:flex;position:relative;overflow:visible}.gengage-chat-root--mobile .gengage-chat-panel-divider--hidden{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel{border-radius:0;width:100%;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-panel{z-index:10;width:100%;min-width:0;max-width:none;max-height:none;box-shadow:none;background:var(--gengage-chat-panel-bg,var(--surface-card));pointer-events:none;border:none;border-radius:0;flex-direction:column;padding:0 12px 16px;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0;overflow-y:auto;transform:translate(100%)}.gengage-chat-root--mobile .gengage-chat-panel--visible{pointer-events:auto;transform:translate(0)}.gengage-chat-root--mobile .gengage-chat-panel-divider,.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-panel-divider{display:none}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-body{flex-direction:row}.gengage-chat-root--mobile .gengage-chat-drawer--with-panel .gengage-chat-conversation{border-left:none;flex:1;width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-cta{box-sizing:border-box;width:100%;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-details-panel{gap:8px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:0;padding:8px}.gengage-chat-root--mobile .gengage-chat-product-details-content{gap:6px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:14px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-product-details-rating{padding:2px 6px;font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-original-price{font-size:12px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-root--mobile .gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{gap:6px;margin-top:2px}.gengage-chat-root--mobile .gengage-chat-product-details-cta{min-height:38px;padding:0 14px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-product-grid:not(.gengage-chat-product-grid--mobile){scroll-snap-type:x mandatory}.gengage-chat-root--mobile .gengage-chat-product-grid.gengage-chat-product-grid--mobile{scroll-snap-type:none}.gengage-chat-root--mobile .gengage-chat-product-card{box-sizing:border-box;scroll-snap-align:center;width:280px;min-width:280px;max-width:100%}.gengage-chat-root--mobile .gengage-chat-product-grid--mobile .gengage-chat-product-card{scroll-snap-align:start;width:100%;min-width:0;max-width:none}.gengage-chat-root--mobile .gengage-chat-product-card-img-wrapper{justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:180px;display:block}.gengage-chat-root--mobile .gengage-chat-product-card-discount-badge{padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-drawer{border-radius:0;width:100%;max-height:100%;position:fixed;inset:0}.gengage-chat-root--mobile .gengage-chat-bubble{max-width:100%}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img-wrapper{aspect-ratio:1;justify-content:center;align-items:center;min-height:0;display:flex}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-img{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:min(200px,72%)}.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-card-img-actions .gengage-chat-find-similar-pill{flex-shrink:0;width:28px;min-width:28px;height:28px;min-height:28px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-discount-badge{min-width:28px;height:28px;padding:0 6px;font-size:10px;font-weight:700}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-footer{padding:0 12px 14px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-buy-trigger{box-sizing:border-box;white-space:normal;text-align:center;-webkit-hyphens:auto;hyphens:auto;min-width:0;max-width:100%;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card .gengage-chat-product-card-cta{box-sizing:border-box;white-space:normal;width:calc(100% - 24px);min-width:0;max-width:calc(100% - 24px);margin-left:12px;margin-right:12px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-rating-compact{gap:3px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-card-stock{padding:2px 5px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-messages{scrollbar-width:none;padding:12px 16px}.gengage-chat-root--mobile .gengage-chat-messages::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-drawer{border-top:none}.gengage-chat-root--mobile .gengage-chat-header{border-radius:16px 16px 0 0;min-height:72px;padding-top:22px;padding-bottom:8px}.gengage-chat-root--mobile.gengage-chat-root--mobile-full .gengage-chat-header{border-radius:0}.gengage-chat-root--mobile .gengage-chat-conversation{-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-product-details-img{object-fit:contain;min-height:0;max-height:200px}.gengage-chat-root--mobile .gengage-chat-product-details-actions{flex-wrap:wrap;gap:8px}.gengage-chat-root--mobile .gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px}.gengage-chat-root--mobile .gengage-chat-input::placeholder{font-size:13px}.gengage-chat-kvkk-banner{background:color-mix(in srgb, var(--warning) 10%, white);border-bottom:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));align-items:flex-start;gap:8px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.gengage-chat-kvkk-content{flex:1;min-width:0}.gengage-chat-kvkk-content a{color:color-mix(in srgb, var(--warning) 82%, var(--text-primary));text-decoration:underline}.gengage-chat-kvkk-dismiss{width:20px;height:20px;color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}.gengage-chat-comparison{box-sizing:border-box;flex-direction:column;gap:12px;padding:16px;display:flex}.gengage-chat-comparison-heading{letter-spacing:.05em;color:var(--text-primary);margin:0 0 16px;font-size:14px;font-weight:700}.gengage-chat-comparison-recommended{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);padding:16px}.gengage-chat-comparison-recommended-label{color:var(--client-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px;font-weight:700}.gengage-chat-comparison-recommended-body{grid-template-columns:minmax(108px,148px) minmax(0,1fr);align-items:flex-start;gap:16px;display:grid}.gengage-chat-comparison-recommended-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:14px;justify-content:center;align-items:center;display:flex;overflow:hidden}.gengage-chat-comparison-recommended-body img,.gengage-chat-comparison-recommended-placeholder{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:8px}.gengage-chat-comparison-recommended-placeholder{background:var(--surface-card-muted)}.gengage-chat-comparison-recommended-info{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.gengage-chat-comparison-recommended-title{color:var(--text-primary);margin:0;font-size:24px;font-weight:800;line-height:1.2}.gengage-chat-comparison-recommended-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gengage-chat-comparison-recommended-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:color-mix(in srgb, var(--warning) 78%, var(--text-primary));border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.gengage-chat-comparison-recommended-rating-value{color:var(--text-primary)}.gengage-chat-comparison-recommended-price{color:var(--text-primary);font-size:20px;font-weight:700}.gengage-chat-comparison-highlights{border-top:1px solid var(--border-subtle);padding-top:12px}.gengage-chat-comparison-highlights-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-comparison-highlights ul{color:var(--text-primary);margin:0;padding-left:18px;font-size:14px;line-height:1.55}.gengage-chat-comparison-special{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));border-radius:var(--radius-card);color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin-bottom:12px;padding:12px 16px;font-size:13px}.gengage-chat-comparison-special summary{cursor:pointer;font-weight:600}.gengage-chat-comparison-special ul{margin:8px 0 0;padding-left:18px;line-height:1.6}.gengage-chat-comparison-table{border-collapse:collapse;background:var(--surface-card);width:100%;font-size:13px}.gengage-chat-comparison-table th,.gengage-chat-comparison-table td{text-align:center;border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:10px 12px}.gengage-chat-comparison-table th{color:var(--text-secondary);font-size:12px;font-weight:600}.gengage-chat-comparison-table thead th:not(:first-child){vertical-align:top}.gengage-chat-comparison-table-header-cell{box-sizing:border-box;grid-template-rows:auto 1fr auto;place-items:start center;gap:6px;height:100%;min-height:0;display:grid}.gengage-chat-comparison-table-header-cell--clickable{cursor:pointer;border-radius:var(--radius-control);padding:6px;transition:background .16s,box-shadow .16s,transform .16s}.gengage-chat-comparison-table-header-cell--clickable:hover{background:var(--surface-card-soft);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-comparison-table-header-cell--clickable:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-comparison-table-header-cell img{object-fit:contain;border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-header-img-placeholder{border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card-muted);width:60px;height:60px}.gengage-chat-comparison-table-product-name{width:100%;min-width:0;color:var(--text-secondary);text-align:center;-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;align-self:start;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-comparison-table-price{color:var(--text-primary);text-align:center;width:100%;font-weight:700}.gengage-chat-comparison-label{text-align:left;color:var(--text-secondary);white-space:nowrap;font-weight:600}.gengage-chat-comparison-selected{background:color-mix(in srgb, var(--client-primary) 6%, white)}.gengage-chat-comparison-recommended-text{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.gengage-chat-comparison-key-differences{border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card-muted)}.gengage-chat-comparison-key-differences-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:700;list-style:none;display:flex}.gengage-chat-comparison-key-differences-summary::-webkit-details-marker{display:none}.gengage-chat-comparison-key-differences-summary-label{color:var(--text-primary)}.gengage-chat-comparison-key-differences-summary-meta{color:var(--client-primary);font-size:13px;font-weight:700}.gengage-chat-comparison-key-differences[open] .gengage-chat-comparison-key-differences-summary-meta{opacity:0}.gengage-chat-comparison-key-differences-content{color:var(--text-primary);padding:0 16px 16px;font-size:14px;line-height:1.7}.gengage-chat-comparison-key-differences-content ul,.gengage-chat-comparison-key-differences-content ol{margin:0;padding-left:20px}.gengage-chat-comparison-key-differences-content li+li{margin-top:8px}@media (width<=960px){.gengage-chat-comparison-recommended-body{grid-template-columns:1fr}.gengage-chat-comparison-recommended-title{font-size:20px}}.gengage-chat-pills{border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:8px 12px 6px;position:relative}.gengage-chat-pills-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-right:28px;display:flex;overflow-x:auto}.gengage-chat-pills-scroll::-webkit-scrollbar{display:none}.gengage-chat-root--mobile .gengage-chat-pills-scroll{flex-wrap:wrap;gap:6px}.gengage-chat-root--mobile .gengage-chat-pill{white-space:normal;max-width:100%}.gengage-chat-pill{border:1px solid var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.gengage-chat-pill:hover{background:color-mix(in srgb, var(--client-primary) 12%, white);border-color:color-mix(in srgb, var(--client-primary) 36%, white)}.gengage-chat-pill:active{transform:none}.gengage-chat-pill--rich{border-radius:18px;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:flex}.gengage-chat-pill-img{object-fit:cover;background:var(--surface-card);border-radius:12px;flex-shrink:0;width:32px;height:32px}.gengage-chat-pill-text{font-size:13px;font-weight:600;line-height:1.2}.gengage-chat-pill-desc{display:none}.gengage-chat-pill--rich .gengage-chat-pill-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;font-weight:500;display:block;overflow:hidden}.gengage-chat-pills-arrow{border:1px solid var(--border-default);background:var(--surface-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-1);z-index:1;border-radius:12px;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.gengage-chat-pills-arrow:hover{background:var(--surface-card-soft);color:var(--client-primary)}@media (prefers-reduced-motion:reduce){.gengage-chat-uispec>*,.gengage-chat-action-btn,.gengage-chat-product-card,.gengage-chat-product-card-cta,.gengage-chat-send,.gengage-chat-launcher,.gengage-chat-pill,.gengage-chat-drawer,.gengage-chat-typing-dots span,.gengage-chat-thinking-step-marker--active,.gengage-chat-bubble,.gengage-chat-panel-skeleton-block,.gengage-chat-ai-toppick-card,.gengage-chat-mic-btn--active,.gengage-chat-ai-toppick-spinner:after,.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price,.gengage-chat-cart-toast,.gengage-chat-header-btn--cart-flash{transition:none!important;animation:none!important;transform:none!important}}.gengage-chat-bubble--user{position:relative}.gengage-chat-rollback-btn{border-radius:var(--radius-pill);background:var(--surface-card-muted);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;opacity:0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:50%;left:-28px;transform:translateY(-50%)}.gengage-chat-bubble--user:hover .gengage-chat-rollback-btn{opacity:1}.gengage-chat-rollback-btn:hover{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-bubble--hidden{display:none}.gengage-chat-ai-top-picks{flex-direction:column;gap:12px;padding:8px 0;scroll-margin-top:60px;display:flex}.gengage-chat-ai-top-picks-title{color:var(--text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:10px;min-width:0;display:flex}.gengage-chat-ai-top-picks-rest,.gengage-chat-ai-toppick-top-row{display:contents}.gengage-chat-ai-toppick-detail{width:100%;min-width:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks{gap:0;padding-top:4px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-title{flex-shrink:0;width:100%;margin:0 0 10px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,auto);align-items:stretch;gap:12px;margin:0;padding:12px 0;display:grid;overflow:visible}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex:initial;scroll-snap-align:none;width:100%;min-width:0;max-width:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child{grid-column:1/-1;grid-template-rows:auto auto;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:12px 18px;display:grid}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail){grid-template-rows:auto auto auto}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact{flex-direction:column;align-items:stretch}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-media{aspect-ratio:4/3;grid-area:1/1/span 2;max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-media{grid-row:1/span 3}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-detail{grid-area:2/2;min-width:0;padding-top:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;flex-shrink:0;width:100%;height:100%;max-height:140px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-img{max-height:260px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-height:0;padding:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child .gengage-chat-ai-toppick-body{grid-area:1/2;padding-top:6px}.gengage-chat-panel-ai-zone .gengage-chat-ai-top-picks-scroll>:first-child:has(.gengage-chat-ai-toppick-detail) .gengage-chat-ai-toppick-cta{grid-row:3}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:calc(100% - 24px);color:var(--ds-button-secondary-fg);align-self:stretch;margin:14px 12px 12px}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);width:auto;min-width:180px;color:var(--ds-button-secondary-fg);grid-area:2/2;place-self:end start;margin:0}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover,.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-secondary-bg-hover);filter:none}.gengage-chat-panel-ai-zone .gengage-chat-ai-toppick-card--winner{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-rating{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-secondary);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.gengage-chat-ai-toppick-rating-icon{color:color-mix(in srgb, var(--warning) 60%, var(--text-primary));justify-content:center;align-items:center;line-height:0;display:inline-flex}.gengage-chat-ai-toppick-rating-value{color:var(--text-primary)}.gengage-chat-ai-toppick-media .gengage-chat-ai-toppick-discount-badge{background:var(--client-primary);color:var(--client-on-primary);z-index:1;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:800;line-height:1.2;position:absolute;top:4px;left:4px;right:auto}.gengage-chat-ai-toppick-card--winner,.gengage-chat-ai-toppick-card--compact{box-sizing:border-box;border-radius:var(--radius-card);background:var(--surface-card);flex-direction:column;align-items:stretch;padding:12px;transition:box-shadow .2s,background .15s,transform .15s;display:flex;position:relative;overflow:visible}.gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-ai-toppick-card--winner:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-2)}.gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default)}.gengage-chat-ai-toppick-card--compact:hover{background:var(--surface-card-muted);box-shadow:var(--shadow-1);transform:translateY(-1px)}.gengage-chat-ai-toppick-badge{z-index:2;box-sizing:border-box;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;white-space:normal;border-radius:999px;max-width:calc(100% - 24px);padding:2px 10px;font-size:10px;font-weight:700;line-height:1.25;position:absolute;top:-10px;left:12px}.gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-badge{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-media{aspect-ratio:1;border:1px solid var(--border-subtle);background:var(--surface-card);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:100%;margin-top:4px;margin-bottom:8px;display:flex;position:relative;overflow:hidden}.gengage-chat-ai-toppick-img{object-fit:contain;box-sizing:border-box;width:auto;max-width:100%;height:auto;max-height:100%;padding:4px}.gengage-chat-ai-toppick-body{flex-direction:column;flex:1;gap:0;min-width:0;padding:0;display:flex}.gengage-chat-ai-toppick-name{color:var(--text-primary);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:14px;font-weight:700;line-height:1.375;display:-webkit-box;overflow:hidden}.gengage-chat-ai-toppick-role{color:var(--client-primary);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.gengage-chat-ai-toppick-labels{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.gengage-chat-ai-toppick-label{border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}.gengage-chat-ai-toppick-label[data-sentiment=positive]{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=negative]{background:color-mix(in srgb, var(--error) 10%, white);color:color-mix(in srgb, var(--error) 82%, var(--text-primary))}.gengage-chat-ai-toppick-label[data-sentiment=neutral]{background:var(--surface-card-muted);color:var(--text-secondary)}.gengage-chat-ai-toppick-reason{color:var(--text-secondary);margin:10px 0 0;font-size:13px;line-height:1.5}.gengage-chat-ai-toppick-review{border:1px solid var(--border-subtle);background:var(--surface-card-muted);color:var(--text-primary);border-radius:14px;margin-top:10px;padding:10px 12px;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-snippet{color:var(--text-secondary);margin:8px 0 0;font-size:12px;line-height:1.45}.gengage-chat-ai-toppick-price{color:var(--text-primary);margin-top:4px;font-size:14px;font-weight:700}.gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary))}.gengage-chat-ai-toppick-original-price{color:var(--text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.gengage-chat-ai-toppick-price-stack{flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px;display:flex}.gengage-chat-ai-toppick-price-stack .gengage-chat-campaign-reason{font-size:11px;font-weight:700}.gengage-chat-campaign-price-badge{box-sizing:border-box;border-radius:var(--radius-control,10px);background-image:linear-gradient(var(--gengage-campaign-price-badge-fill,#fff) 0 0), linear-gradient(135deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));background-origin:border-box;background-clip:padding-box,border-box;border:1px solid #0000;flex-direction:row;align-items:center;gap:10px;max-width:100%;padding:10px 12px;display:inline-flex}.gengage-chat-campaign-price-badge__logo{flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-campaign-price-badge__logo img{object-fit:contain;width:auto;max-width:72px;height:auto;max-height:32px;display:block}.gengage-chat-campaign-price-badge__body{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-campaign-price-badge__reason{letter-spacing:.02em;background:linear-gradient(90deg, var(--_gengage-campaign-reason-start), var(--_gengage-campaign-reason-end));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;margin:0;font-size:12px;font-weight:700;line-height:1.25}.gengage-chat-campaign-price-badge__sale{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:17px;font-weight:800;line-height:1.15}.gengage-chat-product-card-price-row .gengage-chat-campaign-price-badge__sale{font-size:16px}.gengage-chat-product-summary__price .gengage-chat-campaign-price-badge__sale{font-size:15px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge{border-radius:var(--radius-control,12px);padding:12px 14px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__reason{font-size:13px}.gengage-chat-product-details-price .gengage-chat-campaign-price-badge__sale{font-size:22px}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge),.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge)){align-items:last baseline}:is(.gengage-chat-ai-toppick-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-ai-toppick-price-sep,.gengage-chat-product-card-price-row:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-card-price-sep,.gengage-chat-product-summary__price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-summary__price-sep,.gengage-chat-product-details-price--inline:has(.gengage-chat-campaign-price-badge) .gengage-chat-product-details-price-sep){align-self:last baseline}.gengage-chat-ai-toppick-price--inline{flex-flow:wrap;align-items:baseline;gap:0 6px;display:flex}.gengage-chat-ai-toppick-price-sep{background:var(--border-subtle);flex-shrink:0;align-self:center;width:1px;height:.85em;margin:0 1px;display:inline-block}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-original-price{font-size:14px;font-weight:500;text-decoration:none}.gengage-chat-ai-toppick-price--inline .gengage-chat-ai-toppick-price-current{color:var(--gengage-discounted-price-color,var(--text-primary));font-size:14px;font-weight:800}.gengage-chat-ai-toppick-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control,12px);background:var(--ds-button-primary-bg);width:calc(100% - 24px);color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;box-sizing:border-box;opacity:0;pointer-events:none;flex-shrink:0;align-self:stretch;margin:14px 12px 12px;padding:8px 0;font-size:13px;font-weight:700;transition:opacity .18s,transform .18s,background .15s;display:block;transform:translateY(6px)}.gengage-chat-ai-toppick-card--winner:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:hover .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--winner:focus-within .gengage-chat-ai-toppick-cta,.gengage-chat-ai-toppick-card--compact:focus-within .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;transform:translateY(0)}.gengage-chat-ai-toppick-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-ai-toppick-spinner{background:color-mix(in srgb, var(--surface-card) 78%, transparent);z-index:6;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gengage-chat-ai-toppick-spinner:after{content:"";border:3px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite gengage-spin}@keyframes gengage-spin{to{transform:rotate(360deg)}}.gengage-chat-root--mobile .gengage-chat-ai-top-picks{gap:8px;padding:4px 0}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-title{margin:0 0 2px;font-size:14px}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll{flex-direction:column;gap:8px;min-width:0;padding:6px 0 2px;display:flex;overflow:visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child{flex-direction:column;align-items:stretch;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-scroll>:first-child.gengage-chat-ai-toppick-card--winner{flex-direction:column}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;flex-flow:row;gap:8px;min-width:0;margin:0 -2px;padding:2px 2px 8px;display:flex;overflow:auto visible}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest::-webkit-scrollbar{width:0;height:0;display:none}.gengage-chat-root--mobile .gengage-chat-ai-top-picks-rest .gengage-chat-ai-toppick-card--compact{scroll-snap-align:start;flex:0 0 min(82vw,272px);width:min(82vw,272px);min-width:0;max-width:272px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{scroll-snap-align:none;flex-shrink:1;width:100%;min-width:0;max-width:none;padding:6px 8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner{border:1.5px solid color-mix(in srgb, var(--client-primary) 28%, var(--border-default));margin-bottom:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact{border:1px solid var(--border-default);box-shadow:none;flex-direction:column;align-items:stretch}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:10px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:10px;flex:0 0 clamp(96px,30vw,124px);width:clamp(96px,30vw,124px);height:clamp(96px,30vw,124px);max-height:none;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;height:100%;max-height:100%;padding:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-body{flex:1;min-width:0;padding-top:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-detail{width:100%;margin-top:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-reason{color:var(--text-primary);margin:0;font-size:12px;line-height:1.45;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-review{color:var(--text-secondary);border:1px solid var(--border-subtle);background:var(--surface-card-muted);border-radius:12px;margin-top:8px;padding:8px 10px;font-size:12px;font-style:italic;line-height:1.4;display:block!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-top-row{flex-direction:row;align-items:flex-start;gap:6px;width:100%;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media{aspect-ratio:1;border-radius:8px;flex:0 0 64px;width:64px;height:64px;max-height:64px;margin:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-img{object-fit:contain;width:100%;max-height:100%;padding:2px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-body{flex:1;min-width:0}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-rating{display:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-detail{width:100%;margin-top:4px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;font-size:10px;line-height:1.3;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-role-line{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;font-size:9px;font-weight:600;line-height:1.15}.gengage-chat-root--mobile .gengage-chat-ai-toppick-snippet{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:3px;right:5px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{gap:5px;top:5px;right:6px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-badge{letter-spacing:.04em;background:var(--client-primary);max-width:calc(100% - 18px);color:var(--client-on-primary);box-shadow:none;border:none;padding:2px 6px;font-size:8px;font-weight:700;line-height:1.15;top:-14px;left:8px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-name{margin-bottom:1px;font-size:12px;line-height:1.22}.gengage-chat-root--mobile .gengage-chat-ai-toppick-name{margin-bottom:2px;font-size:13px;line-height:1.28}.gengage-chat-root--mobile .gengage-chat-ai-toppick-rating{gap:3px;margin-top:2px;padding:2px 6px;font-size:10px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-price{margin-top:1px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-price{margin-top:2px;font-size:13px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-original-price{font-size:11px}.gengage-chat-root--mobile .gengage-chat-ai-toppick-labels,.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--compact .gengage-chat-ai-toppick-cta{display:none!important}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta{opacity:1;pointer-events:auto;border:1px solid var(--client-primary);background:var(--surface-card);width:calc(100% - 16px);color:var(--client-primary);box-shadow:none;filter:none;align-self:stretch;margin:8px 8px 6px;padding:6px 0;font-size:12px;font-weight:600;transform:none}.gengage-chat-root--mobile .gengage-chat-ai-toppick-card--winner .gengage-chat-ai-toppick-cta:hover{background:color-mix(in srgb, var(--client-primary) 10%, var(--surface-card));color:var(--client-primary);border-color:var(--client-primary);filter:none}.gengage-chat-root--mobile .gengage-chat-rollback-btn{left:-24px}.gengage-chat-grounding-review{align-items:center;gap:12px;padding:12px 16px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-grounding-review:hover{background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}.gengage-chat-grounding-review-icon{background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));width:32px;height:32px;color:var(--client-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gengage-chat-grounding-review-icon svg{width:18px;height:18px;display:block}.gengage-chat-grounding-review-body{flex:1;min-width:0}.gengage-chat-grounding-review-title{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grounding-review-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.gengage-chat-grounding-review-cta{color:var(--client-primary);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.gengage-chat-grounding-review-cta-icon{align-items:center;display:inline-flex}.gengage-chat-grounding-review-cta-icon svg{width:14px;height:14px;display:block}.gengage-chat-grouping-cards{flex-direction:column;gap:6px;display:flex}.gengage-chat-grouping-cards-scroll{flex-direction:column;gap:6px;min-width:0;display:flex}.gengage-chat-grouping-card{background:var(--surface-card-soft);border:1px solid var(--border-default);border-radius:var(--radius-control);align-items:center;gap:10px;padding:8px 12px;transition:background .15s,border-color .15s;display:flex}.gengage-chat-grouping-card:hover{background:color-mix(in srgb, var(--client-primary) 6%, white);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default))}.gengage-chat-grouping-card-arrow{color:var(--client-primary);flex-shrink:0;font-size:14px;display:none}.gengage-chat-grouping-card-img{border-radius:calc(var(--radius-control) - 4px);object-fit:cover;flex-shrink:0;width:48px;min-width:48px;height:48px;min-height:48px}.gengage-chat-grouping-card-body{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.gengage-chat-grouping-card-name{color:var(--text-primary);font-size:13px;font-weight:600}.gengage-chat-grouping-card-desc{color:var(--text-muted);font-size:12px}.gengage-chat-grouping-card-labels{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-grouping-card-label{color:var(--text-secondary);background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1.2}.gengage-chat-root--mobile .gengage-chat-grouping-card-img{display:none}.gengage-chat-root--mobile .gengage-chat-grouping-card-arrow{display:inline}.gengage-chat-suggested-search-cards{flex-direction:column;gap:8px;display:flex}.gengage-chat-suggested-search-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-1);align-items:center;gap:14px;padding:14px 16px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.gengage-chat-suggested-search-card:hover{background:var(--surface-card);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-chat-suggested-search-card-img{object-fit:contain;background:var(--surface-card-muted);border:1px solid var(--border-subtle);border-radius:14px;flex-shrink:0;width:64px;height:64px;padding:4px}.gengage-chat-suggested-search-card-body{flex:1;min-width:0}.gengage-chat-suggested-search-card-name{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-chat-product-details-gallery{position:relative}.gengage-chat-product-details-gallery .gengage-chat-product-details-img{touch-action:pan-y}.gengage-chat-product-gallery-nav{z-index:3;border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;background:color-mix(in srgb, var(--surface-card) 92%, transparent);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-primary);box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:0;transition:background .15s,opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gengage-chat-product-gallery-nav:hover:not(:disabled){background:var(--surface-card);color:var(--client-primary)}.gengage-chat-product-gallery-nav:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-gallery-nav:disabled{opacity:.35;cursor:not-allowed}.gengage-chat-product-gallery-nav--prev{left:8px}.gengage-chat-product-gallery-nav--next{right:8px}.gengage-chat-product-gallery-thumbs{scrollbar-width:thin;justify-content:center;gap:8px;width:100%;padding:10px 0 4px;display:flex;overflow-x:auto}.gengage-chat-product-gallery-thumb{object-fit:cover;cursor:pointer;background:var(--surface-card);border:2px solid #0000;border-radius:8px;flex-shrink:0;width:56px;height:56px;transition:border-color .15s}.gengage-chat-product-gallery-thumb:hover{border-color:var(--border-strong)}.gengage-chat-product-gallery-thumb--active{border-color:var(--client-primary)}.gengage-chat-product-gallery-thumb-more{background:var(--surface-card-muted);width:56px;height:56px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.gengage-chat-product-variants-label{color:var(--text-muted);text-transform:none;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.gengage-chat-product-variants-list{flex-wrap:wrap;gap:6px;display:flex}.gengage-chat-product-variant-btn{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:6px 12px;font-size:12px;transition:background .15s,border-color .15s}.gengage-chat-product-variant-btn:hover{background:var(--surface-card-muted);border-color:color-mix(in srgb, var(--client-primary) 20%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-details-panel{border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-1);gap:16px;padding:16px}.gengage-chat-product-details-media{border-color:var(--border-default);border-radius:var(--radius-card);background:var(--surface-card-soft);justify-content:center;min-height:320px}.gengage-chat-product-details-img{max-height:420px}.gengage-chat-product-details-content{gap:12px}.gengage-chat-product-details-brand{color:var(--client-primary);font-size:12px;font-weight:800;line-height:1.2}.gengage-chat-product-details-title{font-size:22px;line-height:1.2}.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));background:color-mix(in srgb, var(--warning) 10%, var(--surface-card));color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));gap:6px;padding:6px 10px;font-family:inherit}button.gengage-chat-product-details-rating{border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border-default));cursor:pointer}.gengage-chat-product-details-rating--clickable:hover{border-color:color-mix(in srgb, var(--warning) 42%, var(--border-default));background:color-mix(in srgb, var(--warning) 14%, var(--surface-card))}.gengage-chat-product-details-rating .gengage-star-rating{line-height:1}.gengage-chat-product-details-rating-value{color:var(--text-primary)}.gengage-chat-product-details-price{flex-wrap:wrap;gap:10px}.gengage-chat-product-details-original-price{order:2}.gengage-chat-product-details-current-price{order:1;font-size:30px}.gengage-chat-product-details-discount-badge{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--error) 12%, white);min-height:24px;color:color-mix(in srgb, var(--error) 84%, var(--text-primary));order:3;align-items:center;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price,.gengage-chat-product-details-price--inline .gengage-chat-product-details-current-price{order:0;font-size:30px}.gengage-chat-product-details-price--inline .gengage-chat-product-details-original-price{font-weight:500}.gengage-chat-product-details-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.gengage-chat-product-details-fact{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-card-soft);min-width:0;padding:8px 10px}.gengage-chat-product-details-fact dt,.gengage-chat-product-details-fact dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.gengage-chat-product-details-fact dt{color:var(--text-muted);font-size:11px;font-weight:700}.gengage-chat-product-details-fact dd{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:700}.gengage-chat-product-variants{margin-top:4px}.gengage-chat-product-variants-label{color:var(--text-primary);letter-spacing:normal;margin-bottom:8px;font-size:14px;font-weight:800}.gengage-chat-product-variants-list{gap:8px}.gengage-chat-product-variant-btn{border-radius:var(--radius-control);min-height:44px;color:var(--text-primary);gap:8px;padding:7px 10px;font-size:13px;font-weight:700}.gengage-chat-product-variant-btn--active{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--client-primary) 36%, transparent);color:var(--client-primary)}.gengage-chat-product-variant-btn--out{opacity:.48;cursor:not-allowed}.gengage-chat-product-variant-swatch{border:1px solid var(--border-default);background:var(--surface-card-muted);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface-card);border-radius:50%;flex:0 0 22px}.gengage-chat-product-variant-swatch--image{object-fit:cover;box-shadow:none}.gengage-chat-product-variant-label,.gengage-chat-product-variant-price{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gengage-chat-product-variant-price{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-product-details-actions{gap:10px;margin-top:6px}.gengage-chat-product-details-atc,.gengage-chat-product-details-cta{border-radius:var(--radius-control);min-height:44px}.gengage-chat-product-details-atc{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg)}.gengage-chat-product-details-atc:hover{background:var(--ds-button-primary-bg-hover);filter:none}.gengage-chat-product-details-cta.gds-btn-secondary{border-color:var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg)}.gengage-chat-product-details-cta.gds-btn-secondary:hover{background:var(--ds-button-secondary-bg-hover)}@media (width>=960px){.gengage-chat-product-details-panel{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;display:grid}.gengage-chat-product-details-media{position:sticky;top:0}.gengage-chat-product-detail-tabs{grid-column:1/-1}}.gengage-chat-root--mobile .gengage-chat-product-details-panel{box-shadow:none;gap:10px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:220px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price{font-size:24px}.gengage-chat-root--mobile .gengage-chat-product-details-facts{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-product-details-actions{grid-template-columns:1fr 1fr 44px;align-items:stretch;display:grid}.gengage-chat-root--mobile .gengage-chat-product-details-actions>.gengage-chat-product-details-share{width:44px;min-width:44px}.gengage-chat-root--mobile .gengage-chat-product-details-atc,.gengage-chat-root--mobile .gengage-chat-product-details-cta{width:100%;padding-inline:10px}.gengage-chat-product-grid-wrapper{flex-direction:column;gap:6px;display:flex}.gengage-chat-consulting-style-picker{border:1px solid color-mix(in srgb, var(--client-primary) 18%, var(--border-default));background:linear-gradient(160deg, color-mix(in srgb, var(--surface-card) 80%, white), color-mix(in srgb, var(--surface-card-soft) 84%, white));border-radius:20px;padding:12px}.gengage-chat-consulting-style-picker-title{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:800}.gengage-chat-consulting-style-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.gengage-chat-consulting-style-btn{border:1px solid var(--border-default);background:var(--surface-card);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;gap:0;padding:6px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.gengage-chat-consulting-style-btn:hover{border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default));transform:translateY(-1px)}.gengage-chat-consulting-style-btn--active{border-color:color-mix(in srgb, var(--client-primary) 40%, var(--border-default));box-shadow:0 0 0 2px color-mix(in srgb, var(--client-primary) 16%, transparent), var(--shadow-1)}.gengage-chat-consulting-style-media{border-radius:12px;position:relative;overflow:hidden}.gengage-chat-consulting-style-image{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border-subtle);border-radius:12px;width:100%}.gengage-chat-consulting-style-caption{color:#fff;background:#0000008c;border-radius:12px;padding:8px 10px;font-size:15px;font-weight:800;line-height:1.2;position:absolute;bottom:10px;left:10px;right:10px}.gengage-chat-consulting-group{border:1px solid color-mix(in srgb, var(--client-primary) 14%, var(--border-default));background:linear-gradient(180deg, var(--surface-card-soft), var(--surface-card));border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.gengage-chat-consulting-group-header{flex-direction:column;gap:4px;min-height:112px;display:flex}.gengage-chat-consulting-group-label{color:var(--text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:2.5em;margin:0;font-size:16px;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-reason{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.gengage-chat-consulting-group-grid{grid-template-columns:repeat(var(--consulting-group-columns,4), minmax(210px, 1fr));justify-content:stretch;align-items:stretch;gap:14px;margin-bottom:2px;display:grid}.gengage-chat-consulting-group-grid .gengage-chat-product-card{height:100%}.gengage-chat-beauty-photo-step{padding:0 12px}.gengage-chat-beauty-photo-step-card{border:1px solid color-mix(in srgb, var(--client-primary) 20%, var(--border-default));background:linear-gradient(165deg, color-mix(in srgb, var(--surface-card) 85%, white), var(--surface-card-soft));box-shadow:var(--shadow-1);border-radius:18px;gap:10px;padding:12px;display:flex}.gengage-chat-beauty-photo-step-icon{background:color-mix(in srgb, var(--client-primary) 16%, white);width:34px;height:34px;color:var(--client-primary);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:inline-flex}.gengage-chat-beauty-photo-step-content{flex:auto;min-width:0}.gengage-chat-beauty-photo-step-title{color:var(--text-primary);font-size:15px;font-weight:800}.gengage-chat-beauty-photo-step-desc{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.45}.gengage-chat-beauty-photo-step-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.gengage-chat-beauty-photo-step-upload{border-radius:999px;min-height:34px;padding-inline:14px;font-size:12px;font-weight:800}.gengage-chat-beauty-photo-step-skip{border-radius:999px;min-height:34px;padding-inline:12px;font-size:12px;font-weight:700}.gengage-chat-panel .gengage-chat-consulting-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gengage-chat-panel .gengage-chat-consulting-style-image{min-height:250px}.gengage-chat-panel .gengage-chat-consulting-style-caption{padding:10px 12px;font-size:16px}.gengage-chat-panel .gengage-chat-consulting-group{border-radius:18px;padding:14px}.gengage-chat-panel .gengage-chat-consulting-group-grid .gengage-chat-product-card{min-width:0;margin-inline:auto}.gengage-chat-root--mobile .gengage-chat-consulting-style-grid{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-consulting-style-image{min-height:220px}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid.gengage-chat-consulting-group-grid--single-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gengage-chat-root--mobile .gengage-chat-consulting-group-grid .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-product-grid-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.gengage-chat-product-grid-head-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:18px;font-weight:700;line-height:1.2;overflow:hidden}.gengage-chat-product-grid-head-actions{flex-shrink:0;align-items:center;gap:6px;max-width:52%;display:flex}.gengage-chat-product-sort-toolbar{box-shadow:none;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:0;display:flex}.gengage-chat-product-sort-toolbar--inline{flex-wrap:nowrap;justify-content:flex-end}.gengage-chat-product-sort-dropdown{z-index:5;flex:0 auto;width:auto;min-width:0;max-width:200px;position:relative}.gengage-chat-product-sort-toolbar:not(.gengage-chat-product-sort-toolbar--inline) .gengage-chat-product-sort-dropdown{flex:auto;max-width:min(200px,100%)}.gengage-chat-product-sort-dropdown--open{z-index:25}.gengage-chat-product-sort-trigger{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:100%;min-height:32px;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.gengage-chat-product-sort-trigger:hover{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:var(--surface-card-soft)}.gengage-chat-product-sort-trigger:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger{border-color:color-mix(in srgb, var(--client-primary) 32%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-product-sort-trigger-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-product-sort-dropdown[data-sort-icon=related] .gengage-chat-product-sort-trigger-icon{color:var(--client-primary)}.gengage-chat-product-sort-trigger-icon svg{display:block}.gengage-chat-product-sort-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-product-sort-trigger-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s;display:flex}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger-chevron{transform:rotate(180deg)}.gengage-chat-product-sort-menu{width:max-content;min-width:100%;max-width:min(260px,100vw - 48px);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto}.gengage-chat-product-sort-option{border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background .12s;display:flex}.gengage-chat-product-sort-option:hover{background:var(--surface-card-muted)}.gengage-chat-product-sort-option--active{color:var(--client-primary);background:var(--client-primary-subtle);font-weight:600}.gengage-chat-product-sort-option-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-product-sort-option--active .gengage-chat-product-sort-option-icon,.gengage-chat-product-sort-option--active[data-sort-key=related] .gengage-chat-product-sort-option-icon{color:var(--client-primary)}.gengage-chat-product-sort-option-icon svg{display:block}.gengage-chat-product-sort-option-label{flex:auto;min-width:0}.gengage-chat-product-sort-option-check{width:22px;color:var(--client-primary);flex-shrink:0;justify-content:flex-end;display:flex}.gengage-chat-product-sort-option-check--hidden{visibility:hidden}.gengage-chat-product-sort-separator{background:var(--border-default);width:1px;margin:2px}.gengage-chat-comparison-toggle-btn{border:1px solid var(--border-default);border-radius:var(--radius-control,12px);background:var(--surface-card);min-height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gengage-chat-comparison-toggle-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-comparison-toggle-icon svg{display:block}.gengage-chat-comparison-toggle-btn:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, white);color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active{border-color:color-mix(in srgb, var(--client-primary) 26%, white);color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-comparison-toggle-btn--active .gengage-chat-comparison-toggle-icon{color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active:hover{background:var(--client-primary-hover);color:var(--client-on-primary);border-color:var(--client-primary-hover)}.gengage-chat-comparison-toggle-btn--active:hover .gengage-chat-comparison-toggle-icon{color:var(--client-on-primary)}.gengage-chat-comparison-select-wrapper{cursor:pointer;border-radius:var(--radius-control);transition:box-shadow .2s,transform .2s;position:relative}.gengage-chat-comparison-select-wrapper:hover{box-shadow:0 0 0 2px var(--client-focus-ring)}.gengage-chat-comparison-select-wrapper--selected,.gengage-chat-comparison-select-wrapper--selected:hover{box-shadow:none}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-select-wrapper{transition:none}}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card{pointer-events:none;transition:opacity .2s,transform .2s,filter .2s}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-img-actions,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-discount-badge,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-buy-footer,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-cta{opacity:0}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:.82}.gengage-chat-comparison-select-wrapper:hover>.gengage-chat-product-card,.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{opacity:1;transform:translateY(-1px)}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--client-primary) 26%, white), var(--shadow-1);filter:saturate(1.02);border-color:#0000;outline:none}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:1}.gengage-chat-comparison-card-hint{display:none}.gengage-chat-comparison-checkbox{z-index:4;cursor:pointer;pointer-events:auto;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 94%, white);min-height:40px;color:var(--text-primary);box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;bottom:16px;left:16px;right:16px}.gengage-chat-comparison-checkbox[data-selected=true]{background:color-mix(in srgb, var(--client-primary) 10%, white);border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));color:var(--client-primary)}.gengage-chat-comparison-checkbox-icon{background:var(--surface-card-soft);color:currentColor;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.gengage-chat-comparison-checkbox[data-selected=true] .gengage-chat-comparison-checkbox-icon{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-comparison-checkbox-dot{background:color-mix(in srgb, currentColor 75%, white);border-radius:999px;width:8px;height:8px}.gengage-chat-comparison-checkbox-label{font-size:12px;font-weight:700;line-height:1.2}.gengage-chat-comparison-toggle-btn--hidden{opacity:0;pointer-events:none}@keyframes gengage-comparison-fade-in{0%{opacity:0}to{opacity:1}}.gengage-chat-comparison-toggle-btn--reveal{animation:.5s forwards gengage-comparison-fade-in}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-toggle-btn--reveal{opacity:1;animation:none}}.gengage-chat-comparison-floating-btn{border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 92%, white);width:min(100%,520px);color:var(--text-primary);z-index:5;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin:16px auto 0;padding:12px 14px;display:flex;position:sticky;bottom:12px}.gengage-chat-comparison-dock-slot{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot:not(:empty){z-index:30;padding:0 10px max(6px, env(safe-area-inset-bottom,0px));box-sizing:border-box;pointer-events:none;max-width:100%;display:block;position:absolute;bottom:0;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot>*{pointer-events:auto}.gengage-chat-comparison-floating-summary{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.gengage-chat-comparison-floating-count{background:var(--client-primary-subtle);min-width:32px;height:32px;color:var(--client-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.gengage-chat-comparison-floating-copy{min-width:0}.gengage-chat-comparison-floating-title{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.gengage-chat-comparison-floating-warning{color:var(--error);margin-top:4px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-action{flex:none;min-width:132px}.gengage-chat-comparison-floating-close{border-radius:14px;flex:none;width:40px;height:40px;padding:0}.gengage-chat-comparison-floating-action--disabled{opacity:.6}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;margin:0;padding:10px;position:relative;bottom:auto}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-summary{align-items:center;gap:8px;min-height:26px;padding-right:34px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-count{flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-title{margin:0;font-size:13px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-warning{margin-top:2px;font-size:11px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-action{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:42px;padding:0 12px;font-size:13px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close{box-sizing:border-box;align-self:unset;z-index:10;touch-action:manipulation;border-radius:8px;flex:none;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;max-height:26px;padding:0;line-height:0;position:absolute;top:9px;right:9px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close svg{width:11px;height:11px;display:block}.gengage-chat-panel-topbar{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--surface-card);z-index:3;border-bottom:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.gengage-chat-panel-topbar-title-wrap{flex:1 1 0;align-items:center;min-width:0;display:flex}.gengage-chat-panel-topbar-back,.gengage-chat-panel-topbar-forward{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;transition:background .15s,border-color .15s,opacity .15s;display:flex}.gengage-chat-panel-topbar-back[hidden],.gengage-chat-panel-topbar-forward[hidden]{display:none}.gengage-chat-panel-topbar-back:hover:not(:disabled),.gengage-chat-panel-topbar-forward:hover:not(:disabled){background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-panel-topbar-back:disabled,.gengage-chat-panel-topbar-forward:disabled{opacity:.3;cursor:default}.gengage-chat-panel-topbar-title{width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.gengage-chat-panel-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.gengage-chat-panel-topbar-actions:empty{display:none}.gengage-chat-panel-topbar-toolbar-host{justify-content:flex-end;align-items:center;width:100%;display:flex}.gengage-chat-panel-topbar-toolbar-host .gengage-chat-product-sort-toolbar{flex-wrap:nowrap;justify-content:flex-end;gap:8px}.gengage-chat-panel-topbar-close{display:none}@keyframes gengage-typewriter-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-typewriter-block{animation:.15s both gengage-typewriter-fade-in;display:block}@media (prefers-reduced-motion:reduce){.gengage-chat-typewriter-block{animation:none}}.gengage-product-mention{color:var(--client-primary);cursor:pointer;border-bottom:1px dashed var(--client-primary);font-weight:500;text-decoration:none;transition:border-color .15s}.gengage-product-mention:hover{border-bottom-style:solid}@keyframes gengage-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.gengage-chat-panel-skeleton-block{animation:1.5s ease-in-out infinite gengage-skeleton-pulse}@media (prefers-reduced-motion:reduce){.gengage-chat-panel-skeleton-block{animation:none}}.gengage-chat-input-chips{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;padding:4px 12px 2px;display:flex;overflow-x:auto}.gengage-chat-input-chips::-webkit-scrollbar{display:none}.gengage-chat-input-chip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gengage-chat-input-chip:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-icon{flex-shrink:0;width:14px;height:14px}.gengage-chat-input-chip-icon,.gengage-chat-pill-icon{align-items:center;margin-right:4px;display:inline-flex}.gengage-chat-product-card-img-wrapper,.gengage-chat-product-details-img-wrap{position:relative;overflow:hidden}.gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--_gengage-discount-color);color:var(--text-inverse);z-index:1;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;position:absolute;top:8px;left:8px}.gengage-chat-product-card-stock{border-radius:var(--radius-pill);width:fit-content;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:600}.gengage-chat-product-card-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-card-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-find-similar-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:28px;height:28px;color:var(--text-primary);box-shadow:var(--shadow-1);cursor:pointer;z-index:2;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:500;transition:opacity .2s,box-shadow .15s;display:inline-flex;position:relative}.gengage-chat-find-similar-pill:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}@media (hover:hover) and (pointer:fine){.gengage-chat-find-similar-pill:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:opacity .14s;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.gengage-chat-find-similar-pill:hover:after,.gengage-chat-find-similar-pill:focus-visible:after{opacity:1}}.gengage-chat-find-similar-pill-icon{justify-content:center;align-items:center;display:flex}.gengage-chat-find-similar-pill-icon svg{display:block}.gengage-chat-find-similar-pill-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{transition:opacity .2s}@media (hover:hover) and (pointer:fine){.gengage-chat-product-card-img-wrapper:not(:hover) .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:not(:hover) .gengage-chat-product-card-img-actions{opacity:0;pointer-events:none}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:hover .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-shell) 88%, transparent);width:auto;height:auto;color:var(--text-inverse);box-shadow:none;opacity:0;pointer-events:none;padding:4px 10px;position:absolute;top:40px;right:8px}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-icon{display:none}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-text{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-find-similar-pill,.gengage-chat-ai-toppick-media:hover .gengage-chat-find-similar-pill,.gengage-chat-product-details-img-wrap:hover .gengage-chat-find-similar-pill{opacity:1;pointer-events:auto}.gengage-chat-favorite-btn{background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-control);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);box-shadow:var(--shadow-1);z-index:3;justify-content:center;align-items:center;padding:0;transition:color .2s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-favorite-btn:hover{box-shadow:var(--shadow-2);color:var(--error);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}.gengage-chat-favorite-btn--active{color:var(--error)}.gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gengage-chat-product-details-promo-badge{border-radius:var(--radius-pill);background:var(--gengage-chat-promo-bg,color-mix(in srgb, var(--success) 12%, white));color:var(--gengage-chat-promo-text,color-mix(in srgb, var(--success) 82%, var(--text-primary)));white-space:nowrap;box-sizing:border-box;min-height:20px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-block}.gengage-chat-thumbnails-column{pointer-events:none;display:none!important}.gengage-chat-thumbnail-btn{border:2px solid var(--border-default);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s;display:flex;overflow:hidden}.gengage-chat-thumbnail-btn:hover{border-color:var(--client-primary)}.gengage-chat-thumbnail-img{object-fit:cover;width:100%;height:100%}.gengage-chat-panel-float{box-sizing:border-box;pointer-events:none;z-index:10;flex-shrink:0;align-self:stretch;width:100%;height:0;margin-top:auto;position:sticky;bottom:0;overflow:visible}.gengage-chat-choice-prompter{pointer-events:none;background:var(--surface-card);border:1px solid var(--border-default);width:auto;max-width:none;box-shadow:var(--shadow-2);z-index:5;opacity:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-left:0;margin-right:0;padding:12px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:12px;left:16px;right:16px;transform:translateY(12px)}.gengage-chat-panel--scrolled .gengage-chat-choice-prompter{pointer-events:auto;opacity:1;transform:translateY(0)}.gengage-chat-choice-prompter-heading{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:700}.gengage-chat-choice-prompter-suggestion{color:var(--text-secondary);margin-bottom:0;font-size:12px;line-height:1.35}.gengage-chat-choice-prompter-copy{min-width:0}.gengage-chat-choice-prompter-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control);background:var(--ds-button-primary-bg);width:auto;min-width:180px;min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.gengage-chat-choice-prompter-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-choice-prompter-dismiss{border:1px solid var(--border-default);background:var(--surface-card-soft);min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.gengage-chat-choice-prompter-dismiss:hover{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white);background:var(--client-primary-subtle)}@media (prefers-reduced-motion:reduce){.gengage-chat-choice-prompter{animation:none}}.gengage-chat-pros-cons{background:var(--surface-card-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-control);margin:8px 0;padding:12px 14px}.gengage-chat-pros-cons-heading{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.gengage-chat-pros-cons-list{margin:0 0 8px;padding:0;list-style:none}.gengage-chat-pros-cons-list:last-child{margin-bottom:0}.gengage-chat-pros-cons-item{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;line-height:1.5;display:flex}.gengage-chat-pros-cons-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:flex}.gengage-chat-pros-cons-icon--pro{color:var(--success);background:color-mix(in srgb, var(--success) 15%, white)}.gengage-chat-pros-cons-icon--con{color:var(--error);background:color-mix(in srgb, var(--error) 12%, white)}.gengage-chat-categories{flex-direction:column;gap:8px;display:flex}.gengage-chat-categories-tabs{-webkit-overflow-scrolling:touch;gap:4px;padding:4px 0;display:flex;overflow-x:auto}.gengage-chat-categories-tab{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.gengage-chat-categories-tab:hover{background:var(--surface-card-soft);border-color:var(--border-strong)}.gengage-chat-categories-tab--active{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default))}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gengage-chat-categories-filter-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-categories-filter-tag{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.gengage-chat-categories-filter-tag:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-grid-view-more{border:1px solid var(--ds-button-secondary-border);border-radius:var(--radius-control);background:var(--ds-button-secondary-bg);width:100%;color:var(--ds-button-secondary-fg);cursor:pointer;text-align:center;grid-column:1/-1;margin-top:8px;padding:10px;font-size:14px;font-weight:500;transition:background .15s;display:block}.gengage-chat-product-grid-view-more:hover{background:var(--ds-button-secondary-bg-hover)}.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0;display:grid;overflow-x:visible}.gengage-chat-product-grid--mobile .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-comparison--mobile{position:relative;overflow-x:clip}.gengage-chat-comparison--mobile .gengage-chat-comparison-table-wrapper{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.gengage-chat-comparison--mobile .gengage-chat-comparison-table{table-layout:fixed;min-width:480px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table th:first-child,.gengage-chat-comparison--mobile .gengage-chat-comparison-table .gengage-chat-comparison-label{background:var(--surface-card);z-index:1;box-shadow:2px 0 4px color-mix(in srgb, var(--surface-shell) 8%, transparent);position:sticky;left:0}.gengage-chat-comparison--mobile .gengage-chat-comparison-table thead th:first-child{box-sizing:border-box;width:22ch;min-width:0;max-width:22ch;padding:8px 6px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table td.gengage-chat-comparison-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;width:22ch;min-width:0;max-width:22ch;overflow:hidden}.gengage-chat-product-details-similars-heading{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-product-details-similars{margin-top:8px}.gengage-chat-handoff-notice{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border-default));border-radius:var(--radius-control);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:16px;display:flex}.gengage-chat-handoff-notice-icon{font-size:24px}.gengage-chat-handoff-notice-heading{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin:0;font-size:14px;font-weight:600}.gengage-chat-handoff-notice-summary{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));margin:0;font-size:13px;line-height:1.5}.gengage-chat-product-details-share{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background-color .12s;display:inline-flex;position:relative}.gengage-chat-product-details-share:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--client-primary-subtle)}.gengage-chat-product-details-share:before{content:attr(aria-label);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;pointer-events:none;opacity:0;z-index:2;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gengage-chat-product-details-share:hover:before{opacity:1}.gengage-chat-product-details-share--copied:after{content:"✓";background:var(--_gengage-success-color);color:var(--client-on-primary);border-radius:var(--radius-control);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.gengage-chat-product-details-share svg{width:20px;height:20px}.gengage-chat-review-link,.gengage-chat-grounding-link{color:var(--client-primary);text-decoration:underline}@media (width<=768px){.gengage-chat-product-details-promo-badge{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.gengage-chat-launcher:focus-visible,.gengage-chat-close:focus-visible,.gengage-chat-header-btn:focus-visible,.gengage-chat-header-powered:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-pill:focus-visible,.gengage-chat-input-chip:focus-visible,.gengage-chat-pills-arrow:focus-visible,.gengage-chat-error-retry:focus-visible,.gengage-chat-product-card-cta:focus-visible,.gengage-chat-product-details-cta:focus-visible,.gengage-chat-product-details-atc:focus-visible,.gengage-chat-product-detail-tab:focus-visible,.gengage-chat-panel-divider-toggle:focus-visible,.gengage-chat-panel-topbar-back:focus-visible,.gengage-chat-panel-topbar-forward:focus-visible,.gengage-chat-rollback-btn:focus-visible,.gengage-chat-ai-toppick-cta:focus-visible,.gengage-chat-comparison-toggle-btn:focus-visible,.gengage-chat-comparison-floating-btn:focus-visible,.gengage-chat-comparison-checkbox:focus-visible,.gengage-chat-product-sort-trigger:focus-visible,.gengage-chat-product-sort-option:focus-visible,.gengage-chat-product-variant-btn:focus-visible,.gengage-chat-product-gallery-thumb:focus-visible,.gengage-chat-thumbnail-btn:focus-visible,.gengage-chat-find-similar-pill:focus-visible,.gengage-chat-favorite-btn:focus-visible,.gengage-chat-attach-btn:focus-visible,.gengage-chat-attach-menu-item:focus-visible,.gengage-chat-mic-btn:focus-visible,.gengage-chat-attachment-remove:focus-visible,.gengage-chat-kvkk-dismiss:focus-visible,.gengage-chat-choice-prompter-cta:focus-visible,.gengage-chat-choice-prompter-dismiss:focus-visible,.gengage-chat-categories-tab:focus-visible,.gengage-chat-categories-filter-tag:focus-visible,.gengage-chat-product-grid-view-more:focus-visible,.gengage-chat-product-details-share:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-root--mobile .gengage-chat-choice-prompter{width:auto;max-width:none;left:12px;right:12px;bottom:calc(var(--gengage-chat-launcher-mobile-bottom,16px) + var(--gengage-chat-launcher-size,56px) + env(safe-area-inset-bottom,0px) + 12px);grid-template-columns:1fr;max-height:40vh;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta{width:100%}.gengage-chat-root--mobile .gengage-chat-product-sort-trigger,.gengage-chat-root--mobile .gengage-chat-product-sort-option,.gengage-chat-root--mobile .gengage-chat-comparison-toggle-btn{min-height:40px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-label,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-chevron,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-label{display:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-dropdown{flex:none;width:auto;max-width:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger{justify-content:center;gap:0;width:auto;min-width:44px;padding:0 10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-btn{justify-content:center;gap:0;width:44px;min-width:44px;padding:0}.gengage-chat-root--mobile .gengage-chat-input-chip{min-height:40px;padding:8px 12px}.gengage-chat-root--mobile .gengage-chat-choice-prompter-dismiss{width:32px;height:32px}.gengage-chat-root--mobile .gengage-chat-panel-divider-toggle{min-height:44px}.gengage-chat-root--mobile .gengage-chat-product-card-cta,.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta,.gengage-chat-root--mobile .gengage-chat-product-grid-view-more{justify-content:center;align-items:center;min-height:44px;display:flex}.gengage-chat-root--mobile .gengage-chat-panel-topbar-back,.gengage-chat-root--mobile .gengage-chat-panel-topbar-forward,.gengage-chat-root--mobile .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel-topbar-close{display:none}.gengage-skeleton{gap:12px;padding:12px;display:flex}.gengage-skeleton--message{flex-direction:column;gap:8px;padding:16px}.gengage-skeleton-card{flex-direction:column;flex:1;gap:8px;display:flex}.gengage-skeleton-img{border-radius:var(--radius-control);height:120px}.gengage-skeleton-text{border-radius:4px;height:14px}.gengage-skeleton-price{border-radius:4px;width:60%;height:14px}.gengage-skeleton-line{border-radius:4px;height:12px}@media (prefers-reduced-motion:no-preference){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:linear-gradient(90deg, var(--ds-neutral-100) 25%, var(--ds-neutral-200) 50%, var(--ds-neutral-100) 75%);background-size:200% 100%;animation:1.5s infinite gengage-shimmer}@keyframes gengage-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}}@media (prefers-reduced-motion:reduce){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:var(--ds-neutral-100)}}.gengage-chat-panel--has-scroll:after{content:"";background:linear-gradient(transparent, var(--surface-card-soft));pointer-events:none;height:40px;display:block;position:sticky;bottom:0}@media (prefers-reduced-motion:no-preference){.gengage-chat-panel--transitioning{opacity:0;transition:opacity .15s}}.gengage-chat-cart-toast{background:var(--success);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-3);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:72px;left:50%;transform:translate(-50%)translateY(8px)}.gengage-chat-cart-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@keyframes gengage-cart-flash{0%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}to{transform:scale(1)}}.gengage-chat-header-btn--cart-flash{animation:.5s gengage-cart-flash}', Ar = U({
|
|
5161
|
+
role: De(["user", "assistant"]),
|
|
5161
5162
|
content: w(),
|
|
5162
5163
|
timestamp: he().optional()
|
|
5163
5164
|
}), Lr = U({
|
|
@@ -5168,7 +5169,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5168
5169
|
originalPrice: w().optional(),
|
|
5169
5170
|
url: w().url(),
|
|
5170
5171
|
ctaLabel: w().optional()
|
|
5171
|
-
}), Tr = U({ buttons:
|
|
5172
|
+
}), Tr = U({ buttons: Z(U({
|
|
5172
5173
|
label: w(),
|
|
5173
5174
|
action: U({
|
|
5174
5175
|
title: w(),
|
|
@@ -5184,17 +5185,17 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5184
5185
|
reviewCount: he().optional()
|
|
5185
5186
|
}), Mr = U({
|
|
5186
5187
|
recommended: Pt,
|
|
5187
|
-
products:
|
|
5188
|
-
attributes:
|
|
5188
|
+
products: Z(Pt),
|
|
5189
|
+
attributes: Z(U({
|
|
5189
5190
|
label: w(),
|
|
5190
|
-
values:
|
|
5191
|
+
values: Z(w())
|
|
5191
5192
|
})),
|
|
5192
|
-
highlights:
|
|
5193
|
-
specialCases:
|
|
5193
|
+
highlights: Z(w()),
|
|
5194
|
+
specialCases: Z(w()).optional(),
|
|
5194
5195
|
recommendedText: w().optional(),
|
|
5195
5196
|
winnerHits: Ce(w(), U({
|
|
5196
|
-
positive:
|
|
5197
|
-
negative:
|
|
5197
|
+
positive: Z(w()).optional(),
|
|
5198
|
+
negative: Z(w()).optional()
|
|
5198
5199
|
})).optional(),
|
|
5199
5200
|
productActions: Ce(w(), U({
|
|
5200
5201
|
title: w(),
|
|
@@ -5203,7 +5204,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5203
5204
|
})).optional()
|
|
5204
5205
|
}), Br = U({
|
|
5205
5206
|
label: w(),
|
|
5206
|
-
sentiment:
|
|
5207
|
+
sentiment: De([
|
|
5207
5208
|
"positive",
|
|
5208
5209
|
"negative",
|
|
5209
5210
|
"neutral"
|
|
@@ -5212,7 +5213,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5212
5213
|
product: Ce(w(), me()),
|
|
5213
5214
|
role: w().optional(),
|
|
5214
5215
|
reason: w().optional(),
|
|
5215
|
-
labels:
|
|
5216
|
+
labels: Z(Br).optional(),
|
|
5216
5217
|
expertQualityScore: he().optional(),
|
|
5217
5218
|
reviewHighlight: w().optional(),
|
|
5218
5219
|
action: U({
|
|
@@ -5220,7 +5221,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5220
5221
|
type: w(),
|
|
5221
5222
|
payload: me().optional()
|
|
5222
5223
|
}).optional()
|
|
5223
|
-
}), Rr = U({ suggestions:
|
|
5224
|
+
}), Rr = U({ suggestions: Z(zr) }), Hr = U({
|
|
5224
5225
|
title: w().optional(),
|
|
5225
5226
|
text: w().optional(),
|
|
5226
5227
|
reviewCount: w().optional(),
|
|
@@ -5229,7 +5230,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5229
5230
|
type: w(),
|
|
5230
5231
|
payload: me().optional()
|
|
5231
5232
|
})
|
|
5232
|
-
}), Fr = U({ entries:
|
|
5233
|
+
}), Fr = U({ entries: Z(U({
|
|
5233
5234
|
name: w(),
|
|
5234
5235
|
image: w().optional(),
|
|
5235
5236
|
description: w().optional(),
|
|
@@ -5238,7 +5239,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5238
5239
|
type: w(),
|
|
5239
5240
|
payload: me().optional()
|
|
5240
5241
|
})
|
|
5241
|
-
})) }), Dr = U({ entries:
|
|
5242
|
+
})) }), Dr = U({ entries: Z(U({
|
|
5242
5243
|
shortName: w(),
|
|
5243
5244
|
detailedMessage: w().optional(),
|
|
5244
5245
|
whyDifferent: w().optional(),
|
|
@@ -5280,7 +5281,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5280
5281
|
product: U({
|
|
5281
5282
|
sku: w().optional(),
|
|
5282
5283
|
name: w().optional(),
|
|
5283
|
-
images:
|
|
5284
|
+
images: Z(w()).optional(),
|
|
5284
5285
|
imageUrl: w().optional(),
|
|
5285
5286
|
rating: he().optional(),
|
|
5286
5287
|
reviewCount: he().optional(),
|
|
@@ -5290,17 +5291,17 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5290
5291
|
discount_reason: w().optional(),
|
|
5291
5292
|
campaignReason: w().optional(),
|
|
5292
5293
|
campaign_reason: w().optional(),
|
|
5293
|
-
originalPriceStyle:
|
|
5294
|
-
price_original_style:
|
|
5294
|
+
originalPriceStyle: De(["strikethrough", "inline"]).optional(),
|
|
5295
|
+
price_original_style: De(["strikethrough", "inline"]).optional(),
|
|
5295
5296
|
price_discount_rate: he().optional(),
|
|
5296
5297
|
price_async: ke().optional(),
|
|
5297
5298
|
inStock: ke().optional(),
|
|
5298
|
-
promotions:
|
|
5299
|
-
variants:
|
|
5300
|
-
variantOptions:
|
|
5301
|
-
variant_options:
|
|
5302
|
-
productVariants:
|
|
5303
|
-
product_variants:
|
|
5299
|
+
promotions: Z(w()).optional(),
|
|
5300
|
+
variants: Z(Ne).optional(),
|
|
5301
|
+
variantOptions: Z(Ne).optional(),
|
|
5302
|
+
variant_options: Z(Ne).optional(),
|
|
5303
|
+
productVariants: Z(Ne).optional(),
|
|
5304
|
+
product_variants: Z(Ne).optional(),
|
|
5304
5305
|
url: w().optional(),
|
|
5305
5306
|
cartCode: w().optional(),
|
|
5306
5307
|
description: w().optional(),
|
|
@@ -5308,7 +5309,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5308
5309
|
descriptionHtml: w().optional(),
|
|
5309
5310
|
facet_hits: Ce(w(), me()).optional(),
|
|
5310
5311
|
facetHits: Ce(w(), me()).optional(),
|
|
5311
|
-
features:
|
|
5312
|
+
features: Z(U({
|
|
5312
5313
|
name: w().optional(),
|
|
5313
5314
|
key: w().optional(),
|
|
5314
5315
|
label: w().optional(),
|
|
@@ -5318,7 +5319,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5318
5319
|
ke()
|
|
5319
5320
|
]).optional()
|
|
5320
5321
|
})).optional(),
|
|
5321
|
-
specifications: Be([Ce(w(), w()),
|
|
5322
|
+
specifications: Be([Ce(w(), w()), Z(U({
|
|
5322
5323
|
key: w(),
|
|
5323
5324
|
value: w()
|
|
5324
5325
|
}))]).optional()
|
|
@@ -5329,32 +5330,32 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5329
5330
|
review_text: w().optional(),
|
|
5330
5331
|
review_rating: Be([w(), he()]).optional(),
|
|
5331
5332
|
review_tag: w().optional()
|
|
5332
|
-
}), qr = U({ reviews:
|
|
5333
|
+
}), qr = U({ reviews: Z(Or).optional() }), Vr = U({
|
|
5333
5334
|
productName: w().optional(),
|
|
5334
|
-
pros:
|
|
5335
|
-
cons:
|
|
5335
|
+
pros: Z(w()).optional(),
|
|
5336
|
+
cons: Z(w()).optional()
|
|
5336
5337
|
}), $r = U({
|
|
5337
|
-
groups:
|
|
5338
|
+
groups: Z(U({
|
|
5338
5339
|
groupName: w(),
|
|
5339
|
-
products:
|
|
5340
|
+
products: Z(Ce(w(), me())).optional()
|
|
5340
5341
|
})).optional(),
|
|
5341
|
-
filterTags:
|
|
5342
|
+
filterTags: Z(U({
|
|
5342
5343
|
title: w(),
|
|
5343
5344
|
action: Yt.optional()
|
|
5344
5345
|
})).optional()
|
|
5345
5346
|
}), Gr = U({
|
|
5346
5347
|
summary: w().optional(),
|
|
5347
|
-
products_discussed:
|
|
5348
|
+
products_discussed: Z(w()).optional(),
|
|
5348
5349
|
user_sentiment: w().optional()
|
|
5349
5350
|
}), Wr = U({
|
|
5350
5351
|
summary: w(),
|
|
5351
|
-
strengths:
|
|
5352
|
-
focus_points:
|
|
5352
|
+
strengths: Z(w()).optional(),
|
|
5353
|
+
focus_points: Z(w()).optional(),
|
|
5353
5354
|
celeb_style: w().optional(),
|
|
5354
5355
|
celeb_style_reason: w().optional(),
|
|
5355
|
-
details:
|
|
5356
|
+
details: Z(w()),
|
|
5356
5357
|
next_question: w().optional(),
|
|
5357
|
-
style_images:
|
|
5358
|
+
style_images: Z(w()).optional()
|
|
5358
5359
|
}), Yr = U({
|
|
5359
5360
|
processing: ke().optional(),
|
|
5360
5361
|
title: w().optional(),
|
|
@@ -5438,7 +5439,7 @@ var Pr = ':where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
|
|
|
5438
5439
|
function At(t) {
|
|
5439
5440
|
return t.length > 120 ? !1 : /^[a-zA-Z0-9#(),.\s%/\-]+$/.test(t);
|
|
5440
5441
|
}
|
|
5441
|
-
function
|
|
5442
|
+
function Ze(t) {
|
|
5442
5443
|
return typeof t == "object" && t !== null && typeof t.type == "string";
|
|
5443
5444
|
}
|
|
5444
5445
|
var Kr = class Ae extends Ea {
|
|
@@ -5589,8 +5590,8 @@ var Kr = class Ae extends Ea {
|
|
|
5589
5590
|
if (!this._drawerVisible || !this._isMobileViewport) return;
|
|
5590
5591
|
const f = this._drawer?.getElement();
|
|
5591
5592
|
if (!f) return;
|
|
5592
|
-
const
|
|
5593
|
-
f.style.setProperty("--gengage-keyboard-offset", `${Math.max(0,
|
|
5593
|
+
const y = window.innerHeight - (window.visualViewport?.height ?? window.innerHeight);
|
|
5594
|
+
f.style.setProperty("--gengage-keyboard-offset", `${Math.max(0, y)}px`);
|
|
5594
5595
|
};
|
|
5595
5596
|
window.visualViewport.addEventListener("resize", u), this.addCleanup(() => window.visualViewport?.removeEventListener("resize", u));
|
|
5596
5597
|
}
|
|
@@ -5722,7 +5723,7 @@ var Kr = class Ae extends Ea {
|
|
|
5722
5723
|
this.close();
|
|
5723
5724
|
break;
|
|
5724
5725
|
case "startNewChatWithLauncherAction": {
|
|
5725
|
-
const a = e.payload, n = a?.action, i =
|
|
5726
|
+
const a = e.payload, n = a?.action, i = Ze(n) ? n : Ze(a) ? a : null;
|
|
5726
5727
|
i && this._sendAction(i, { silent: !0 }), this.open();
|
|
5727
5728
|
break;
|
|
5728
5729
|
}
|
|
@@ -5731,7 +5732,7 @@ var Kr = class Ae extends Ea {
|
|
|
5731
5732
|
if (a && typeof a == "object") {
|
|
5732
5733
|
this._bridgeContext = a;
|
|
5733
5734
|
const n = a.sku;
|
|
5734
|
-
if (n && this.update({ sku: n }),
|
|
5735
|
+
if (n && this.update({ sku: n }), Ze(a.action)) {
|
|
5735
5736
|
this._pdpLaunched = !0, this.open(), this._sendAction(a.action);
|
|
5736
5737
|
break;
|
|
5737
5738
|
}
|
|
@@ -5985,7 +5986,7 @@ var Kr = class Ae extends Ea {
|
|
|
5985
5986
|
this._drawer?.stageAttachment(e);
|
|
5986
5987
|
}
|
|
5987
5988
|
_sendMessage(e, a) {
|
|
5988
|
-
this._pdpPrimingInFlight && (this._abortAllActiveRequests(), this._pdpPrimingInFlight = !1, this._queuedUserMessages = []), (!this._messages.some((i) => i.role === "user") || this._drawer?.isKvkkBannerVisible()) && (
|
|
5989
|
+
this._pdpPrimingInFlight && (this._abortAllActiveRequests(), this._pdpPrimingInFlight = !1, this._queuedUserMessages = []), (!this._messages.some((i) => i.role === "user") || this._drawer?.isKvkkBannerVisible()) && (Ke(this.config.accountId), this._drawer?.hideKvkkBanner()), ha(), this._messages.some((i) => i.role === "user") || ya(), Se("chat", "sendMessage", {
|
|
5989
5990
|
mode: this._assistantMode,
|
|
5990
5991
|
hasAttachment: a !== void 0,
|
|
5991
5992
|
textLength: e.length
|
|
@@ -6027,12 +6028,12 @@ var Kr = class Ae extends Ea {
|
|
|
6027
6028
|
return;
|
|
6028
6029
|
}
|
|
6029
6030
|
if (this._choicePrompterEl?.remove(), this._choicePrompterEl = null, a?.preservePanel || nr(), !a?.preservePanel && this._comparisonSelectMode && e.type !== "getComparisonTable" && (this._comparisonSelectMode = !1, this._comparisonSelectedSkus = []), a?.preservePanel || (this._localPanelHistory = []), this._currentThreadId && this._lastThreadId && this._lastThreadId > this._currentThreadId) {
|
|
6030
|
-
const m = this._currentThreadId,
|
|
6031
|
-
this._messages = this._messages.filter((
|
|
6032
|
-
for (const
|
|
6033
|
-
this._shadow?.querySelector(`[data-message-id="${CSS.escape(
|
|
6034
|
-
this._shadow?.querySelectorAll("[data-thread-id]")?.forEach((
|
|
6035
|
-
|
|
6031
|
+
const m = this._currentThreadId, k = this._messages.filter((x) => x.threadId !== void 0 && x.threadId > m);
|
|
6032
|
+
this._messages = this._messages.filter((x) => !x.threadId || x.threadId <= m);
|
|
6033
|
+
for (const x of k)
|
|
6034
|
+
this._shadow?.querySelector(`[data-message-id="${CSS.escape(x.id)}"]`)?.remove(), this._panel.snapshots.delete(x.id), this._panel.snapshotTypes.delete(x.id);
|
|
6035
|
+
this._shadow?.querySelectorAll("[data-thread-id]")?.forEach((x) => {
|
|
6036
|
+
x instanceof HTMLElement && x.dataset.threadId && x.dataset.threadId > m && x.remove();
|
|
6036
6037
|
});
|
|
6037
6038
|
}
|
|
6038
6039
|
a?.preservePills || this._drawer?.setPills([]), this._drawer?.clearInputAreaChips(), this._bridge?.send("isResponding", !0);
|
|
@@ -6040,15 +6041,15 @@ var Kr = class Ae extends Ea {
|
|
|
6040
6041
|
this._currentThreadId = n, this._lastThreadId = n, this._panel && e.type !== "launchSingleProduct" && (this._panel.lastActionType = e.type);
|
|
6041
6042
|
const i = a?.preservePanel === !0, r = e.type === "launchSingleProduct" && a?.silent === !0 && a?.isPdpPrime === !0;
|
|
6042
6043
|
if (i || (this._activeRequestThreadId = n), !a?.silent && !i && this._drawer?.setPresentationFocus(n), !a?.silent) {
|
|
6043
|
-
const m = typeof e.payload == "string" ? e.payload : typeof e.payload?.text == "string" ? e.payload.text : e.title,
|
|
6044
|
-
if (!(
|
|
6045
|
-
const
|
|
6046
|
-
|
|
6044
|
+
const m = typeof e.payload == "string" ? e.payload : typeof e.payload?.text == "string" ? e.payload.text : e.title, k = this._messages.length > 0 ? this._messages[this._messages.length - 1] : void 0;
|
|
6045
|
+
if (!(k !== void 0 && k.role === "user" && k.content === m)) {
|
|
6046
|
+
const x = this._createMessage("user", m);
|
|
6047
|
+
x.threadId = n, a?.attachment !== void 0 && (x.attachment = a.attachment), this._drawer?.addMessage(x), this._messages.push(x);
|
|
6047
6048
|
}
|
|
6048
6049
|
}
|
|
6049
6050
|
if (!a?.silent && this._assistantMode === "shopping" && this._hasUnavailableProductContext() && (e.type === "user_message" || e.type === "inputText")) {
|
|
6050
|
-
const m = this._i18n.productNotFoundMessage,
|
|
6051
|
-
|
|
6051
|
+
const m = this._i18n.productNotFoundMessage, k = this._createMessage("assistant", m);
|
|
6052
|
+
k.threadId = n, k.status = "done", this._messages.push(k), this._ensureAssistantMessageRendered(k), this._drawer?.updateBotMessage(k.id, m), this._drawer?.setPresentationFocus(n), this._bridge?.send("isResponding", !1), this.emit("message", k), this._persistToIndexedDB().catch(() => {
|
|
6052
6053
|
});
|
|
6053
6054
|
return;
|
|
6054
6055
|
}
|
|
@@ -6058,8 +6059,8 @@ var Kr = class Ae extends Ea {
|
|
|
6058
6059
|
}, c = () => {
|
|
6059
6060
|
if (this._drawer?.isPanelLoading()) {
|
|
6060
6061
|
if (o) {
|
|
6061
|
-
const m = this._buildRenderContext(),
|
|
6062
|
-
this._drawer.setPanelContent(
|
|
6062
|
+
const m = this._buildRenderContext(), k = this._renderPanelFromSource(o, m);
|
|
6063
|
+
this._drawer.setPanelContent(k), this._drawer.setDividerPreviewEnabled(this._shouldUseDividerPreviewForSource(o)), this._currentPanelSource = o;
|
|
6063
6064
|
} else
|
|
6064
6065
|
this._drawer.clearPanel(), this._currentPanelSource = null;
|
|
6065
6066
|
o = null;
|
|
@@ -6113,68 +6114,68 @@ var Kr = class Ae extends Ea {
|
|
|
6113
6114
|
}
|
|
6114
6115
|
};
|
|
6115
6116
|
this.config.session?.userId !== void 0 && (f.user_id = this.config.session.userId), this.config.session?.viewId !== void 0 && (f.view_id = this.config.session.viewId), u.payload !== void 0 && (f.payload = u.payload), this.config.pageContext?.sku !== void 0 && (f.sku = this.config.pageContext.sku), this.config.pageContext?.pageType !== void 0 && (f.page_type = this.config.pageContext.pageType);
|
|
6116
|
-
const
|
|
6117
|
-
let
|
|
6118
|
-
const
|
|
6119
|
-
let
|
|
6120
|
-
const
|
|
6117
|
+
const y = crypto.randomUUID(), M = Date.now();
|
|
6118
|
+
let _ = 0, E = !1, C = !1, L = !1, I = !1, N = !1;
|
|
6119
|
+
const j = vn();
|
|
6120
|
+
let K = null;
|
|
6121
|
+
const G = () => {
|
|
6121
6122
|
if (this._drawer) {
|
|
6122
|
-
if (this._isMobileViewport || !
|
|
6123
|
+
if (this._isMobileViewport || !L) {
|
|
6123
6124
|
this._drawer.setPanelAiZoneState("hidden");
|
|
6124
6125
|
return;
|
|
6125
6126
|
}
|
|
6126
|
-
|
|
6127
|
+
I || (N ? this._drawer.setPanelAiZoneState("hidden") : this._drawer.setPanelAiZoneState("analyzing", { analyzingLabel: this._i18n.aiAnalysisAnalyzingLabel }));
|
|
6127
6128
|
}
|
|
6128
6129
|
};
|
|
6129
6130
|
this.track(ra(this.analyticsContext(), {
|
|
6130
6131
|
endpoint: "process_action",
|
|
6131
|
-
request_id:
|
|
6132
|
+
request_id: y,
|
|
6132
6133
|
widget: "chat"
|
|
6133
6134
|
}));
|
|
6134
6135
|
let b = null;
|
|
6135
6136
|
if (b = Da(f, {
|
|
6136
|
-
onTextChunk: (m,
|
|
6137
|
-
if (!i && n !== this._activeRequestThreadId || (d += m, this._drawer?.removeTypingIndicator(),
|
|
6137
|
+
onTextChunk: (m, k, x) => {
|
|
6138
|
+
if (!i && n !== this._activeRequestThreadId || (d += m, this._drawer?.removeTypingIndicator(), x?.skuToProductItem && (this._skuToProductItem = {
|
|
6138
6139
|
...this._skuToProductItem,
|
|
6139
|
-
...
|
|
6140
|
-
}),
|
|
6141
|
-
request_id:
|
|
6142
|
-
chunk_index:
|
|
6140
|
+
...x.skuToProductItem
|
|
6141
|
+
}), x?.conversationMode && (this._conversationMode = x.conversationMode), x?.renderHint && (s.renderHint = x.renderHint), this.track(ca(this.analyticsContext(), {
|
|
6142
|
+
request_id: y,
|
|
6143
|
+
chunk_index: _++,
|
|
6143
6144
|
widget: "chat"
|
|
6144
6145
|
})), !this._drawer)) return;
|
|
6145
|
-
let
|
|
6146
|
-
const
|
|
6147
|
-
if (
|
|
6146
|
+
let P = d;
|
|
6147
|
+
const B = x?.kvkk === !0 || r && ot(P);
|
|
6148
|
+
if (k && B) {
|
|
6148
6149
|
const z = this.config.accountId;
|
|
6149
6150
|
if (!Et(z)) {
|
|
6150
|
-
const T = Cr(
|
|
6151
|
+
const T = Cr(P);
|
|
6151
6152
|
T ? this._drawer?.showKvkkBanner(T, () => {
|
|
6152
|
-
this._drawer?.hideKvkkBanner(),
|
|
6153
|
-
}) :
|
|
6153
|
+
this._drawer?.hideKvkkBanner(), Ke(z);
|
|
6154
|
+
}) : Ke(z);
|
|
6154
6155
|
}
|
|
6155
|
-
|
|
6156
|
+
P = kr(P);
|
|
6156
6157
|
}
|
|
6157
|
-
const
|
|
6158
|
-
if (
|
|
6159
|
-
if (s.content =
|
|
6158
|
+
const A = this._shadow?.querySelector(`[data-message-id="${s.id}"] .gengage-chat-bubble-text`);
|
|
6159
|
+
if (A ? A.innerHTML = ue(P) : (s.content = P, s.role === "assistant" && s.threadId && !this._threadsWithFirstBot.has(s.threadId) && (this._threadsWithFirstBot.add(s.threadId), this._drawer.markFirstBotMessage(s.id)), this._drawer.addMessage(s)), k)
|
|
6160
|
+
if (s.content = P, s.status = "done", st(), yn(s)) this._drawer?.updateBotMessage(s.id, P, "photo_analysis", s.photoAnalysis);
|
|
6160
6161
|
else {
|
|
6161
6162
|
const z = this._shadow?.querySelector(`[data-message-id="${s.id}"] .gengage-chat-bubble-text`);
|
|
6162
6163
|
if (z) {
|
|
6163
6164
|
this._activeTypewriter?.cancel();
|
|
6164
|
-
const T =
|
|
6165
|
+
const T = x?.productMentions;
|
|
6165
6166
|
this._activeTypewriter = Zi({
|
|
6166
6167
|
container: z,
|
|
6167
|
-
html: ue(
|
|
6168
|
+
html: ue(P),
|
|
6168
6169
|
onTick: () => this._drawer?.scrollToBottomIfNeeded(),
|
|
6169
6170
|
onComplete: () => {
|
|
6170
6171
|
this._activeTypewriter = null, T && T.length > 0 && z && Xi({
|
|
6171
6172
|
container: z,
|
|
6172
6173
|
mentions: T,
|
|
6173
|
-
onProductClick: (
|
|
6174
|
+
onProductClick: (q) => {
|
|
6174
6175
|
this._sendAction({
|
|
6175
|
-
title: T.find((H) => H.sku ===
|
|
6176
|
+
title: T.find((H) => H.sku === q)?.short_name ?? q,
|
|
6176
6177
|
type: "launchSingleProduct",
|
|
6177
|
-
payload: { sku:
|
|
6178
|
+
payload: { sku: q }
|
|
6178
6179
|
});
|
|
6179
6180
|
}
|
|
6180
6181
|
});
|
|
@@ -6183,68 +6184,68 @@ var Kr = class Ae extends Ea {
|
|
|
6183
6184
|
}
|
|
6184
6185
|
}
|
|
6185
6186
|
},
|
|
6186
|
-
onUISpec: (m,
|
|
6187
|
-
if (!i && n !== this._activeRequestThreadId ||
|
|
6188
|
-
|
|
6189
|
-
const
|
|
6190
|
-
if (xn(
|
|
6187
|
+
onUISpec: (m, k, x, P) => {
|
|
6188
|
+
if (!i && n !== this._activeRequestThreadId || k !== "chat") return;
|
|
6189
|
+
P && (this._clearAssistantPanelLikeStreamClearPanel(), E = !1);
|
|
6190
|
+
const B = m.elements[m.root], A = B?.type ?? "unknown";
|
|
6191
|
+
if (xn(A, B?.props ?? {}, j, {
|
|
6191
6192
|
drawer: this._drawer,
|
|
6192
6193
|
ensureRendered: () => this._ensureAssistantMessageRendered(s),
|
|
6193
6194
|
cancelTypewriter: () => {
|
|
6194
6195
|
this._activeTypewriter?.cancel(), this._activeTypewriter = null;
|
|
6195
6196
|
},
|
|
6196
6197
|
sendSkipMessage: () => this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),
|
|
6197
|
-
streamDone:
|
|
6198
|
+
streamDone: N
|
|
6198
6199
|
}, s)) return;
|
|
6199
|
-
const z =
|
|
6200
|
-
T && !
|
|
6201
|
-
const
|
|
6200
|
+
const z = A === "ProductGrid" && B?.props?.similarsAppend === !0, T = this.config.productDetailsExtended !== !0 && (A === "ProductDetailsPanel" || z);
|
|
6201
|
+
T && !P && (this._clearAssistantPanelLikeStreamClearPanel(), E = !1);
|
|
6202
|
+
const q = A === "ProductDetailsPanel" && x !== "panel" ? "panel" : x;
|
|
6202
6203
|
this.track(aa(this.analyticsContext(), {
|
|
6203
|
-
request_id:
|
|
6204
|
-
chunk_index:
|
|
6205
|
-
component_type:
|
|
6204
|
+
request_id: y,
|
|
6205
|
+
chunk_index: _,
|
|
6206
|
+
component_type: A,
|
|
6206
6207
|
widget: "chat"
|
|
6207
6208
|
}));
|
|
6208
6209
|
const H = this._buildRenderContext();
|
|
6209
|
-
if (H.isStreaming = !0,
|
|
6210
|
-
const F =
|
|
6210
|
+
if (H.isStreaming = !0, A === "ComparisonTable") {
|
|
6211
|
+
const F = B?.props?.products;
|
|
6211
6212
|
ba(Array.isArray(F) ? F.length : 0);
|
|
6212
6213
|
}
|
|
6213
|
-
if (
|
|
6214
|
-
const F =
|
|
6214
|
+
if (A === "ProductGrid") {
|
|
6215
|
+
const F = B?.children?.length ?? 0;
|
|
6215
6216
|
va(void 0, F);
|
|
6216
6217
|
}
|
|
6217
|
-
const $ =
|
|
6218
|
-
if (
|
|
6219
|
-
const F = !
|
|
6220
|
-
|
|
6218
|
+
const $ = q === "panel" && this._panel ? this._panel.toPanelSpec(m) : m;
|
|
6219
|
+
if (q === "panel" && this._panel && !T) {
|
|
6220
|
+
const F = !C;
|
|
6221
|
+
C = !0;
|
|
6221
6222
|
const R = pr({
|
|
6222
|
-
componentType:
|
|
6223
|
-
similarsAppend:
|
|
6223
|
+
componentType: A,
|
|
6224
|
+
similarsAppend: B?.props?.similarsAppend === !0,
|
|
6224
6225
|
currentPanelType: this._panel.currentType,
|
|
6225
6226
|
hasPanelContent: this._drawer?.hasPanelContent() ?? !1,
|
|
6226
6227
|
isPanelLoading: this._drawer?.isPanelLoading() ?? !1,
|
|
6227
6228
|
isFirstPanelContentInStream: F
|
|
6228
6229
|
});
|
|
6229
|
-
H.panelProductListHeading = void 0,
|
|
6230
|
+
H.panelProductListHeading = void 0, A === "ProductGrid" && (R === "appendSimilars" ? H.panelProductListHeading = this._i18n.similarProductsLabel ?? "Similar Products" : this._applyPanelListHeadingToContext(H, {
|
|
6230
6231
|
kind: "spec",
|
|
6231
6232
|
spec: $
|
|
6232
6233
|
})), R === "appendSimilars" ? this._appendSimilarsToPanel($, H) : R === "append" ? (this._drawer?.appendPanelContent(this._renderUISpec($, H)), this._comparisonSelectMode && this._refreshComparisonUI()) : (this._comparisonSelectMode = !1, this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, this._drawer?.setComparisonDockContent(null), this._drawer?.setPanelContent(this._renderUISpec($, H)), this._currentPanelSource = {
|
|
6233
6234
|
kind: "spec",
|
|
6234
6235
|
spec: $
|
|
6235
|
-
}, this._panel.currentType =
|
|
6236
|
-
const X = this._panel.currentType ??
|
|
6237
|
-
if (this._panel.updateTopBar(X, D), this._panel.updateExtendedMode(
|
|
6238
|
-
if (
|
|
6236
|
+
}, this._panel.currentType = A), this._drawer?.setDividerPreviewEnabled((this._panel.currentType ?? A) === "ProductGrid"), A === "ProductDetailsPanel" && e.type === "launchSingleProduct" && this._clearUnavailableProductContext(), s.threadId && !this._panel.threads.includes(s.threadId) && this._panel.threads.push(s.threadId);
|
|
6237
|
+
const X = this._panel.currentType ?? A, D = B?.props?.panelTitle;
|
|
6238
|
+
if (this._panel.updateTopBar(X, D), this._panel.updateExtendedMode(A), this._isMobileViewport && r && this._drawer?.hideMobilePanel(), A === "ProductGrid" || A === "CategoriesContainer") {
|
|
6239
|
+
if (L = !this._isMobileViewport, K) {
|
|
6239
6240
|
const Q = this._buildRenderContext();
|
|
6240
6241
|
Q.isStreaming = !0;
|
|
6241
|
-
const Re = this._renderUISpec(
|
|
6242
|
-
|
|
6242
|
+
const Re = this._renderUISpec(K, Q);
|
|
6243
|
+
I = !0, this._drawer?.setPanelAiZoneState("results", { resultEl: Re }), K = null;
|
|
6243
6244
|
}
|
|
6244
|
-
} else R !== "appendSimilars" && R !== "append" && (
|
|
6245
|
+
} else R !== "appendSimilars" && R !== "append" && (L = !1, K = null, this._drawer?.setPanelAiZoneState("hidden"));
|
|
6245
6246
|
}
|
|
6246
|
-
if (
|
|
6247
|
-
const F =
|
|
6247
|
+
if (A === "ProductDetailsPanel" && q === "panel" && (!s.silent || r)) {
|
|
6248
|
+
const F = B?.props?.product;
|
|
6248
6249
|
if (F) {
|
|
6249
6250
|
const R = {
|
|
6250
6251
|
root: "root",
|
|
@@ -6260,30 +6261,30 @@ var Kr = class Ae extends Ea {
|
|
|
6260
6261
|
Q && Q.parentNode === X ? Q.after(D) : X.appendChild(D), D.scrollIntoView({
|
|
6261
6262
|
behavior: "auto",
|
|
6262
6263
|
block: "end"
|
|
6263
|
-
}), this._drawer?.refreshPresentationCollapsed(),
|
|
6264
|
+
}), this._drawer?.refreshPresentationCollapsed(), C = !0;
|
|
6264
6265
|
}
|
|
6265
6266
|
}
|
|
6266
6267
|
}
|
|
6267
|
-
const te =
|
|
6268
|
-
let
|
|
6269
|
-
if (T && z && (H.panelProductListHeading = this._i18n.similarProductsLabel ?? "Similar Products"), te && !this._isMobileViewport && !s.silent) if (
|
|
6268
|
+
const te = A === "AITopPicks" || A === "AIGroupingCards";
|
|
6269
|
+
let O = !1, ee = !1;
|
|
6270
|
+
if (T && z && (H.panelProductListHeading = this._i18n.similarProductsLabel ?? "Similar Products"), te && !this._isMobileViewport && !s.silent) if (L) {
|
|
6270
6271
|
const F = this._renderUISpec(m, H);
|
|
6271
|
-
|
|
6272
|
+
I = !0, this._drawer?.setPanelAiZoneState("results", { resultEl: F }), O = !0, K = null;
|
|
6272
6273
|
} else
|
|
6273
|
-
|
|
6274
|
-
const oe = r &&
|
|
6275
|
-
if ((!s.silent || oe) && (
|
|
6274
|
+
K = m, ee = !0;
|
|
6275
|
+
const oe = r && A === "GroundingReviewCard";
|
|
6276
|
+
if ((!s.silent || oe) && (q !== "panel" || A === "ProductCard" || T && A === "ProductGrid" && (!z || this._isMobileViewport)) && A !== "ActionButtons" && !O && !(ee && te)) {
|
|
6276
6277
|
const F = this._shadow?.querySelector(".gengage-chat-messages");
|
|
6277
6278
|
if (F) {
|
|
6278
6279
|
const R = this._renderUISpec(m, H);
|
|
6279
6280
|
s.threadId && (R.dataset.threadId = s.threadId), F.appendChild(R), R.scrollIntoView({
|
|
6280
6281
|
behavior: "auto",
|
|
6281
6282
|
block: "end"
|
|
6282
|
-
}), this._drawer?.refreshPresentationCollapsed(), T &&
|
|
6283
|
+
}), this._drawer?.refreshPresentationCollapsed(), T && A === "ProductGrid" && (C = !0);
|
|
6283
6284
|
}
|
|
6284
6285
|
}
|
|
6285
|
-
if ((
|
|
6286
|
-
const F =
|
|
6286
|
+
if ((A === "ProductGrid" || A === "ProductCard") && s.threadId) {
|
|
6287
|
+
const F = B?.children ?? [], R = A === "ProductGrid" ? F.map((X) => m.elements[X]?.props?.product).filter(Boolean) : [B?.props?.product].filter(Boolean);
|
|
6287
6288
|
for (const X of R) {
|
|
6288
6289
|
const D = X.sku, Q = X.imageUrl;
|
|
6289
6290
|
D && Q && this._thumbnailEntries.push({
|
|
@@ -6294,12 +6295,12 @@ var Kr = class Ae extends Ea {
|
|
|
6294
6295
|
}
|
|
6295
6296
|
this._drawer?.setThumbnails(this._thumbnailEntries);
|
|
6296
6297
|
}
|
|
6297
|
-
if (
|
|
6298
|
-
const F = (
|
|
6298
|
+
if (A === "ProductGrid" || A === "ProductDetailsPanel") {
|
|
6299
|
+
const F = (A === "ProductGrid" ? (B?.children ?? []).map((R) => m.elements[R]?.props?.product).filter(Boolean) : [B?.props?.product ?? B?.props].filter(Boolean)).map((R) => R.imageUrl).filter((R) => typeof R == "string").slice(0, 5);
|
|
6299
6300
|
F.length > 0 && this._bridge?.send("previewImages", { images: F });
|
|
6300
6301
|
}
|
|
6301
|
-
const
|
|
6302
|
-
if (
|
|
6302
|
+
const V = B?.children?.length ?? 0;
|
|
6303
|
+
if (A === "ProductGrid" && q === "panel" && !T && V > 1 && !this._modeController.isChoicePrompterHidden && !this._comparisonSelectMode && !ir(this._currentThreadId ?? "")) {
|
|
6303
6304
|
this._choicePrompterEl?.remove(), this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach((R) => R.remove()), this._choicePrompterEl = ar({
|
|
6304
6305
|
heading: this._i18n.choicePrompterHeading,
|
|
6305
6306
|
suggestion: this._i18n.choicePrompterSuggestion,
|
|
@@ -6323,8 +6324,8 @@ var Kr = class Ae extends Ea {
|
|
|
6323
6324
|
}
|
|
6324
6325
|
} else this._choicePrompterEl = null;
|
|
6325
6326
|
}
|
|
6326
|
-
if (
|
|
6327
|
-
const F =
|
|
6327
|
+
if (A === "ActionButtons") {
|
|
6328
|
+
const F = B?.props?.buttons;
|
|
6328
6329
|
if (F && F.length > 0) {
|
|
6329
6330
|
const R = [], X = [];
|
|
6330
6331
|
for (const D of F) if (er(D)) {
|
|
@@ -6347,75 +6348,75 @@ var Kr = class Ae extends Ea {
|
|
|
6347
6348
|
}));
|
|
6348
6349
|
}
|
|
6349
6350
|
}
|
|
6350
|
-
|
|
6351
|
+
G(), s.uiSpec = m;
|
|
6351
6352
|
},
|
|
6352
6353
|
onAction: (m) => {
|
|
6353
6354
|
if (!(!i && n !== this._activeRequestThreadId) && m.type === "action") {
|
|
6354
|
-
const
|
|
6355
|
-
this.config.actionHandling?.unknownActionPolicy !== void 0 && (
|
|
6355
|
+
const k = {};
|
|
6356
|
+
this.config.actionHandling?.unknownActionPolicy !== void 0 && (k.unknownActionPolicy = this.config.actionHandling.unknownActionPolicy), this.config.actionHandling?.allowScriptCall !== void 0 && (k.allowScriptCall = this.config.actionHandling.allowScriptCall), Ia(m, {
|
|
6356
6357
|
openChat: () => this.open(),
|
|
6357
|
-
navigate: (
|
|
6358
|
-
ce(
|
|
6358
|
+
navigate: (x) => {
|
|
6359
|
+
ce(x.url) && (this._bridge?.send("navigate", x), x.newTab ? window.open(x.url, "_blank", "noopener,noreferrer") : window.location.href = x.url);
|
|
6359
6360
|
},
|
|
6360
|
-
saveSession: (
|
|
6361
|
-
addToCart: (
|
|
6362
|
-
le("gengage:similar:add-to-cart",
|
|
6361
|
+
saveSession: (x) => this.saveSession(x.sessionId, x.sku),
|
|
6362
|
+
addToCart: (x) => {
|
|
6363
|
+
le("gengage:similar:add-to-cart", x);
|
|
6363
6364
|
},
|
|
6364
|
-
scriptCall: (
|
|
6365
|
-
le("gengage:chat:script-call",
|
|
6365
|
+
scriptCall: (x) => {
|
|
6366
|
+
le("gengage:chat:script-call", x), this.config.onScriptCall?.(x);
|
|
6366
6367
|
}
|
|
6367
|
-
},
|
|
6368
|
+
}, k);
|
|
6368
6369
|
}
|
|
6369
6370
|
},
|
|
6370
6371
|
onMetadata: (m) => {
|
|
6371
6372
|
if (!(!i && n !== this._activeRequestThreadId) && m.type === "metadata" && m.meta) {
|
|
6372
6373
|
if (m.meta.panel !== void 0 || m.meta.messages !== void 0 || m.meta.message_id !== void 0) {
|
|
6373
6374
|
this._lastBackendContext = m.meta;
|
|
6374
|
-
const
|
|
6375
|
-
|
|
6375
|
+
const x = rt(m.meta.panel);
|
|
6376
|
+
x && (this._modeController.updateFromContext(x), this._applyUiHints());
|
|
6376
6377
|
}
|
|
6377
6378
|
if (m.meta.panelLoading) {
|
|
6378
|
-
const
|
|
6379
|
-
this.config.productDetailsExtended !== !0 && (
|
|
6379
|
+
const x = typeof m.meta.panelPendingType == "string" ? m.meta.panelPendingType : void 0;
|
|
6380
|
+
this.config.productDetailsExtended !== !0 && (x === "productDetails" || x === "productDetailsSimilars") || (E = !0, C = !1, g(), this._panel && (this._panel.currentType = null), this._drawer?.showPanelLoading(x), x && this._panel?.updateTopBarForLoading(x));
|
|
6380
6381
|
}
|
|
6381
6382
|
if (m.meta.voice) {
|
|
6382
|
-
const
|
|
6383
|
+
const x = new CustomEvent("gengage:chat:voice", {
|
|
6383
6384
|
detail: { payload: m.meta.voice },
|
|
6384
6385
|
bubbles: !1,
|
|
6385
6386
|
cancelable: !0
|
|
6386
|
-
}),
|
|
6387
|
-
if (ga(),
|
|
6388
|
-
const
|
|
6389
|
-
|
|
6387
|
+
}), P = window.dispatchEvent(x);
|
|
6388
|
+
if (ga(), P) {
|
|
6389
|
+
const B = m.meta.voice;
|
|
6390
|
+
B.audio_base64 && (this._activeTtsHandle?.stop(), this._activeTtsHandle = En(B.audio_base64, B.content_type ?? "audio/ogg"));
|
|
6390
6391
|
}
|
|
6391
6392
|
}
|
|
6392
6393
|
if ((m.meta.redirectTarget || m.meta.redirect) && (le("gengage:chat:redirect", {
|
|
6393
6394
|
target: m.meta.redirectTarget ?? null,
|
|
6394
6395
|
payload: m.meta.redirect ?? null
|
|
6395
|
-
}), Se("redirect", "redirect dispatched", { target: m.meta.redirectTarget ?? null }), this._handleRedirectMetadata(m.meta.redirect)), m.meta.analyzeAnimation && this.config.productDetailsExtended === !0 && (E = !0,
|
|
6396
|
-
const
|
|
6397
|
-
if (
|
|
6398
|
-
const
|
|
6399
|
-
this._drawer?.setThinkingSteps(
|
|
6396
|
+
}), Se("redirect", "redirect dispatched", { target: m.meta.redirectTarget ?? null }), this._handleRedirectMetadata(m.meta.redirect)), m.meta.analyzeAnimation && this.config.productDetailsExtended === !0 && (E = !0, C = !1, g(), this._panel && (this._panel.currentType = null), this._drawer?.showPanelLoading(), this._panel?.updateTopBarForLoading("productDetails")), m.meta.loading) {
|
|
6397
|
+
const x = Array.isArray(m.meta.thinkingMessages) ? m.meta.thinkingMessages.filter((B) => typeof B == "string") : [], P = typeof m.meta.loadingText == "string" ? m.meta.loadingText : void 0;
|
|
6398
|
+
if (x.length > 0) {
|
|
6399
|
+
const B = P && this._modeController.shouldCondenseThinking() ? [...x.slice(0, 2), P] : x;
|
|
6400
|
+
this._drawer?.setThinkingSteps(B);
|
|
6400
6401
|
}
|
|
6401
|
-
typeof
|
|
6402
|
+
typeof P == "string" && P.length > 0 && (this._drawer?.addThinkingStep(P), this._bridge?.send("loadingMessage", { text: P }));
|
|
6402
6403
|
}
|
|
6403
6404
|
m.meta.visitorDataResponse && this._bridge?.send("engagingMessage", m.meta.visitorDataResponse), m.meta.formType && this._bridge?.send("glovOtokoc", {
|
|
6404
6405
|
type: m.meta.formType,
|
|
6405
6406
|
data: m.meta.formPayload
|
|
6406
6407
|
}), m.meta.launcherContent && this._bridge?.send("launcherContent", m.meta.launcherContent), le("gengage:chat:metadata", { payload: m.meta });
|
|
6407
|
-
const
|
|
6408
|
-
typeof
|
|
6408
|
+
const k = m.meta;
|
|
6409
|
+
typeof k.prompt_tokens == "number" && typeof k.completion_tokens == "number" && this.track(ia(this.analyticsContext(), {
|
|
6409
6410
|
model: m.model ?? "unknown",
|
|
6410
|
-
prompt_tokens:
|
|
6411
|
-
completion_tokens:
|
|
6412
|
-
total_tokens:
|
|
6411
|
+
prompt_tokens: k.prompt_tokens,
|
|
6412
|
+
completion_tokens: k.completion_tokens,
|
|
6413
|
+
total_tokens: k.total_tokens ?? k.prompt_tokens + k.completion_tokens
|
|
6413
6414
|
}));
|
|
6414
6415
|
}
|
|
6415
6416
|
},
|
|
6416
6417
|
onError: (m) => {
|
|
6417
6418
|
if (b && this._abortControllers.delete(b), !i && n !== this._activeRequestThreadId) return;
|
|
6418
|
-
|
|
6419
|
+
N = !0, this._activeTypewriter?.cancel(), this._activeTypewriter = null, G(), K = null, this._bridge?.send("isResponding", !1), this._bridge?.send("loadingMessage", { text: null }), this._drawer?.removeTypingIndicator(), this._drawer?.clearInputAreaChips(), _n(j, {
|
|
6419
6420
|
drawer: this._drawer,
|
|
6420
6421
|
ensureRendered: () => {
|
|
6421
6422
|
},
|
|
@@ -6424,20 +6425,20 @@ var Kr = class Ae extends Ea {
|
|
|
6424
6425
|
sendSkipMessage: () => this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),
|
|
6425
6426
|
streamDone: !0
|
|
6426
6427
|
});
|
|
6427
|
-
const
|
|
6428
|
-
E && !
|
|
6429
|
-
const
|
|
6428
|
+
const k = C;
|
|
6429
|
+
E && !C && c(), E = !1, C = !1;
|
|
6430
|
+
const x = s.silent || s.content != null && s.content.length > 0 || d.length > 0 || k, P = typeof navigator < "u" && navigator.onLine === !1 && Lt(m), B = () => {
|
|
6430
6431
|
this._shadow?.querySelector(`[data-message-id="${CSS.escape(s.id)}"]`)?.remove();
|
|
6431
6432
|
const T = this._messages.indexOf(s);
|
|
6432
6433
|
T >= 0 && this._messages.splice(T, 1);
|
|
6433
6434
|
};
|
|
6434
|
-
let
|
|
6435
|
+
let A = !1;
|
|
6435
6436
|
const z = () => {
|
|
6436
|
-
if (
|
|
6437
|
+
if (P) return;
|
|
6437
6438
|
this.emit("error", m);
|
|
6438
6439
|
const T = m.message;
|
|
6439
6440
|
T === this._lastErrorMessage ? this._consecutiveErrorCount++ : (this._consecutiveErrorCount = 1, this._lastErrorMessage = T);
|
|
6440
|
-
const
|
|
6441
|
+
const q = m.message.trim(), H = q.length > 0 ? q : this._i18n.errorMessage, $ = {
|
|
6441
6442
|
onRetry: () => {
|
|
6442
6443
|
this._lastSentAction && this._sendAction(this._lastSentAction.action, this._lastSentAction.options);
|
|
6443
6444
|
},
|
|
@@ -6446,11 +6447,11 @@ var Kr = class Ae extends Ea {
|
|
|
6446
6447
|
}
|
|
6447
6448
|
};
|
|
6448
6449
|
if (this._consecutiveErrorCount >= 2) {
|
|
6449
|
-
|
|
6450
|
+
B(), A = !0, this._drawer?.showErrorWithRecovery(this._i18n.accountInactiveMessage, $);
|
|
6450
6451
|
return;
|
|
6451
6452
|
}
|
|
6452
6453
|
if (yr(m, H)) {
|
|
6453
|
-
|
|
6454
|
+
B(), A = !0, this._drawer?.showErrorWithRecovery(H, $);
|
|
6454
6455
|
return;
|
|
6455
6456
|
}
|
|
6456
6457
|
s.content = H, s.status = "done";
|
|
@@ -6459,14 +6460,14 @@ var Kr = class Ae extends Ea {
|
|
|
6459
6460
|
`).join("<br />"));
|
|
6460
6461
|
this._ensureAssistantMessageRendered(s), this._drawer?.updateBotMessage(s.id, te), this._drawer?.showRecoveryPillsOnly($);
|
|
6461
6462
|
};
|
|
6462
|
-
if (
|
|
6463
|
+
if (x) this._drawer?.setPills([]), s.silent || z();
|
|
6463
6464
|
else if (r || this._hasUnavailableProductContext()) {
|
|
6464
6465
|
this._drawer?.setPills([]);
|
|
6465
6466
|
const T = this._i18n.productNotFoundMessage;
|
|
6466
6467
|
s.content = T, s.status = "done", this._ensureAssistantMessageRendered(s), this._drawer?.updateBotMessage(s.id, T), this._markUnavailableProductContext();
|
|
6467
|
-
} else if (z(),
|
|
6468
|
-
r && (this._pdpPrimingInFlight = !1, this._flushQueuedUserMessages()), !
|
|
6469
|
-
request_id:
|
|
6468
|
+
} else if (z(), P) return;
|
|
6469
|
+
r && (this._pdpPrimingInFlight = !1, this._flushQueuedUserMessages()), !A && s.status === "streaming" && (s.status = "error"), P || this.track(la(this.analyticsContext(), {
|
|
6470
|
+
request_id: y,
|
|
6470
6471
|
error_code: "STREAM_ERROR",
|
|
6471
6472
|
error_message: m.message,
|
|
6472
6473
|
widget: "chat"
|
|
@@ -6474,20 +6475,20 @@ var Kr = class Ae extends Ea {
|
|
|
6474
6475
|
},
|
|
6475
6476
|
onDone: () => {
|
|
6476
6477
|
if (b && this._abortControllers.delete(b), !i && n !== this._activeRequestThreadId) return;
|
|
6477
|
-
if (
|
|
6478
|
-
const
|
|
6479
|
-
|
|
6480
|
-
const
|
|
6481
|
-
if (
|
|
6482
|
-
const
|
|
6483
|
-
s.threadId && (
|
|
6478
|
+
if (N = !0, G(), K) {
|
|
6479
|
+
const P = this._buildRenderContext();
|
|
6480
|
+
P.isStreaming = !1;
|
|
6481
|
+
const B = this._shadow?.querySelector(".gengage-chat-messages");
|
|
6482
|
+
if (B) {
|
|
6483
|
+
const A = this._renderUISpec(K, P);
|
|
6484
|
+
s.threadId && (A.dataset.threadId = s.threadId), B.appendChild(A), A.scrollIntoView({
|
|
6484
6485
|
behavior: "auto",
|
|
6485
6486
|
block: "end"
|
|
6486
6487
|
}), this._drawer?.refreshPresentationCollapsed();
|
|
6487
6488
|
}
|
|
6488
|
-
|
|
6489
|
+
K = null;
|
|
6489
6490
|
}
|
|
6490
|
-
this._activeRequestThreadId = null, this._consecutiveErrorCount = 0, this._lastErrorMessage = "", this._bridge?.send("isResponding", !1), this._bridge?.send("loadingMessage", { text: null }), this._drawer?.removeTypingIndicator(), wn(
|
|
6491
|
+
this._activeRequestThreadId = null, this._consecutiveErrorCount = 0, this._lastErrorMessage = "", this._bridge?.send("isResponding", !1), this._bridge?.send("loadingMessage", { text: null }), this._drawer?.removeTypingIndicator(), wn(j, {
|
|
6491
6492
|
drawer: this._drawer,
|
|
6492
6493
|
ensureRendered: () => {
|
|
6493
6494
|
},
|
|
@@ -6496,27 +6497,27 @@ var Kr = class Ae extends Ea {
|
|
|
6496
6497
|
sendSkipMessage: () => this._sendMessage(this._i18n.beautyPhotoStepSkipMessage),
|
|
6497
6498
|
streamDone: !0
|
|
6498
6499
|
});
|
|
6499
|
-
const m =
|
|
6500
|
-
if (E && !
|
|
6501
|
-
const
|
|
6502
|
-
s.content =
|
|
6500
|
+
const m = C;
|
|
6501
|
+
if (E && !C && c(), E = !1, r && !d && !m) {
|
|
6502
|
+
const P = this._i18n.productNotFoundMessage;
|
|
6503
|
+
s.content = P, this._ensureAssistantMessageRendered(s), this._drawer?.updateBotMessage(s.id, P), this._markUnavailableProductContext();
|
|
6503
6504
|
}
|
|
6504
|
-
if (
|
|
6505
|
+
if (C = !1, r) {
|
|
6505
6506
|
this._pdpPrimingInFlight = !1;
|
|
6506
|
-
const
|
|
6507
|
-
this._flushQueuedUserMessages(),
|
|
6507
|
+
const P = this._queuedUserMessages.length > 0;
|
|
6508
|
+
this._flushQueuedUserMessages(), P || this._ensurePdpPrimeSuggestedUiIfNeeded();
|
|
6508
6509
|
}
|
|
6509
6510
|
s.status === "streaming" && (s.status = "done", st()), this._presentation.finalizeAssistantGroup(n);
|
|
6510
|
-
const
|
|
6511
|
-
|
|
6512
|
-
const
|
|
6513
|
-
this._panel?.snapshotForMessage(s.id,
|
|
6514
|
-
const
|
|
6515
|
-
return this._renderPanelFromSource(
|
|
6511
|
+
const k = this._shadow?.querySelector(".gengage-chat-comparison-toggle-btn--hidden");
|
|
6512
|
+
k && (k.classList.remove("gengage-chat-comparison-toggle-btn--hidden"), k.classList.add("gengage-chat-comparison-toggle-btn--reveal")), this.emit("message", s);
|
|
6513
|
+
const x = this._currentPanelSource;
|
|
6514
|
+
this._panel?.snapshotForMessage(s.id, x ? () => {
|
|
6515
|
+
const P = this._buildRenderContext();
|
|
6516
|
+
return this._renderPanelFromSource(x, P);
|
|
6516
6517
|
} : void 0), this.track(sa(this.analyticsContext(), {
|
|
6517
|
-
request_id:
|
|
6518
|
-
latency_ms: Date.now() -
|
|
6519
|
-
chunk_count:
|
|
6518
|
+
request_id: y,
|
|
6519
|
+
latency_ms: Date.now() - M,
|
|
6520
|
+
chunk_count: _,
|
|
6520
6521
|
widget: "chat"
|
|
6521
6522
|
})), this.track(wa(this.analyticsContext(), {
|
|
6522
6523
|
meter_key: "chat_request",
|
|
@@ -6812,8 +6813,8 @@ var Kr = class Ae extends Ea {
|
|
|
6812
6813
|
const u = h.querySelector(".gengage-chat-comparison-checkbox");
|
|
6813
6814
|
if (u) {
|
|
6814
6815
|
u.dataset.selected = v ? "true" : "false", u.setAttribute("aria-pressed", v ? "true" : "false");
|
|
6815
|
-
const f = u.querySelector(".gengage-chat-comparison-checkbox-icon"),
|
|
6816
|
-
f && (f.innerHTML = v ? '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>' : '<span class="gengage-chat-comparison-checkbox-dot"></span>'),
|
|
6816
|
+
const f = u.querySelector(".gengage-chat-comparison-checkbox-icon"), y = u.querySelector(".gengage-chat-comparison-checkbox-label");
|
|
6817
|
+
f && (f.innerHTML = v ? '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>' : '<span class="gengage-chat-comparison-checkbox-dot"></span>'), y && (y.textContent = v ? this._i18n.comparisonSelectedLabel ?? "Selected" : this._i18n.comparisonSelectLabel ?? "Select to compare");
|
|
6817
6818
|
}
|
|
6818
6819
|
continue;
|
|
6819
6820
|
}
|
|
@@ -7164,7 +7165,7 @@ function ao() {
|
|
|
7164
7165
|
export {
|
|
7165
7166
|
hr as a,
|
|
7166
7167
|
pi as c,
|
|
7167
|
-
|
|
7168
|
+
Xe as d,
|
|
7168
7169
|
eo as f,
|
|
7169
7170
|
mr as i,
|
|
7170
7171
|
Ka as l,
|