@gengage/assistant-fe 0.3.14 → 0.3.16

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.
Files changed (96) hide show
  1. package/dist/assistant-fe.css +1 -1
  2. package/dist/chat/components/ChatDrawer.d.ts +2 -0
  3. package/dist/chat/components/ChatDrawer.d.ts.map +1 -1
  4. package/dist/chat/index.d.ts +3 -0
  5. package/dist/chat/index.d.ts.map +1 -1
  6. package/dist/chat/panel-manager.d.ts +0 -5
  7. package/dist/chat/panel-manager.d.ts.map +1 -1
  8. package/dist/chat/types.d.ts +8 -0
  9. package/dist/chat/types.d.ts.map +1 -1
  10. package/dist/chat-CRGCgvrz.cjs +94 -0
  11. package/dist/chat-CRGCgvrz.cjs.map +1 -0
  12. package/dist/{chat-D7c9emMm.js → chat-D60Ci1vQ.js} +681 -547
  13. package/dist/chat-D60Ci1vQ.js.map +1 -0
  14. package/dist/chat.cjs +1 -1
  15. package/dist/chat.iife.js +86 -7
  16. package/dist/chat.iife.js.map +1 -1
  17. package/dist/chat.js +2 -2
  18. package/dist/common/index.d.ts +2 -0
  19. package/dist/common/index.d.ts.map +1 -1
  20. package/dist/common/overlay.d.ts +10 -0
  21. package/dist/common/overlay.d.ts.map +1 -1
  22. package/dist/common/pill-launcher.d.ts +52 -0
  23. package/dist/common/pill-launcher.d.ts.map +1 -0
  24. package/dist/common/ui-theme.d.ts.map +1 -1
  25. package/dist/{common-Dtx5Bgu_.js → common-CjkWpalm.js} +3 -3
  26. package/dist/{common-Dtx5Bgu_.js.map → common-CjkWpalm.js.map} +1 -1
  27. package/dist/{common-C0QxGDX5.cjs → common-DX6rwrsr.cjs} +2 -2
  28. package/dist/{common-C0QxGDX5.cjs.map → common-DX6rwrsr.cjs.map} +1 -1
  29. package/dist/common.cjs +1 -1
  30. package/dist/common.js +7 -7
  31. package/dist/{connection-warning-COW6YXlM.js → connection-warning-BF8r3_5W.js} +2 -2
  32. package/dist/{connection-warning-COW6YXlM.js.map → connection-warning-BF8r3_5W.js.map} +1 -1
  33. package/dist/{connection-warning-fwHynNgu.cjs → connection-warning-Dlirb_Pi.cjs} +2 -2
  34. package/dist/{connection-warning-fwHynNgu.cjs.map → connection-warning-Dlirb_Pi.cjs.map} +1 -1
  35. package/dist/{ga-datalayer-D3upAPs9.cjs → ga-datalayer-DSVuycfp.cjs} +2 -2
  36. package/dist/ga-datalayer-DSVuycfp.cjs.map +1 -0
  37. package/dist/{ga-datalayer-DdTUkXC3.js → ga-datalayer-DygUbUWr.js} +2 -2
  38. package/dist/ga-datalayer-DygUbUWr.js.map +1 -0
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.d.ts +2 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +10 -10
  43. package/dist/native-webview-Bm-pIU6O.cjs +2 -0
  44. package/dist/native-webview-Bm-pIU6O.cjs.map +1 -0
  45. package/dist/{native-webview-CRFBySOa.js → native-webview-qAXppESm.js} +11 -9
  46. package/dist/native-webview-qAXppESm.js.map +1 -0
  47. package/dist/native.cjs +1 -1
  48. package/dist/native.iife.js +86 -7
  49. package/dist/native.iife.js.map +1 -1
  50. package/dist/native.js +1 -1
  51. package/dist/qna/components/renderUISpec.d.ts.map +1 -1
  52. package/dist/qna/index.d.ts +7 -0
  53. package/dist/qna/index.d.ts.map +1 -1
  54. package/dist/qna/types.d.ts +12 -0
  55. package/dist/qna/types.d.ts.map +1 -1
  56. package/dist/{qna-c7t5suwI.js → qna-J0v3olA2.js} +52 -24
  57. package/dist/qna-J0v3olA2.js.map +1 -0
  58. package/dist/qna-T6ACPKRB.cjs +2 -0
  59. package/dist/qna-T6ACPKRB.cjs.map +1 -0
  60. package/dist/qna.cjs +1 -1
  61. package/dist/qna.css +1 -1
  62. package/dist/qna.iife.js +3 -3
  63. package/dist/qna.iife.js.map +1 -1
  64. package/dist/qna.js +1 -1
  65. package/dist/{schemas-C-giAkv4.cjs → schemas-B3zzmCPF.cjs} +2 -2
  66. package/dist/{schemas-C-giAkv4.cjs.map → schemas-B3zzmCPF.cjs.map} +1 -1
  67. package/dist/{schemas-DUid6HBM.js → schemas-DRZ9l0Z4.js} +2 -2
  68. package/dist/{schemas-DUid6HBM.js.map → schemas-DRZ9l0Z4.js.map} +1 -1
  69. package/dist/{simbut-Bk7shcTX.js → simbut-DG48EcoU.js} +2 -2
  70. package/dist/{simbut-Bk7shcTX.js.map → simbut-DG48EcoU.js.map} +1 -1
  71. package/dist/{simbut-C8KPNxO1.cjs → simbut-DHZFpGIA.cjs} +2 -2
  72. package/dist/{simbut-C8KPNxO1.cjs.map → simbut-DHZFpGIA.cjs.map} +1 -1
  73. package/dist/simbut.cjs +1 -1
  74. package/dist/simbut.iife.js +1 -1
  75. package/dist/simbut.iife.js.map +1 -1
  76. package/dist/simbut.js +1 -1
  77. package/dist/{simrel-CT26hFlJ.cjs → simrel-B3wJOMlY.cjs} +2 -2
  78. package/dist/{simrel-CT26hFlJ.cjs.map → simrel-B3wJOMlY.cjs.map} +1 -1
  79. package/dist/{simrel-1J9Ph5k5.js → simrel-CGT83sSF.js} +4 -4
  80. package/dist/{simrel-1J9Ph5k5.js.map → simrel-CGT83sSF.js.map} +1 -1
  81. package/dist/simrel.cjs +1 -1
  82. package/dist/simrel.iife.js +1 -1
  83. package/dist/simrel.iife.js.map +1 -1
  84. package/dist/simrel.js +1 -1
  85. package/package.json +2 -2
  86. package/dist/chat-CET9ibDo.cjs +0 -15
  87. package/dist/chat-CET9ibDo.cjs.map +0 -1
  88. package/dist/chat-D7c9emMm.js.map +0 -1
  89. package/dist/ga-datalayer-D3upAPs9.cjs.map +0 -1
  90. package/dist/ga-datalayer-DdTUkXC3.js.map +0 -1
  91. package/dist/native-webview-BlmrmhV_.cjs +0 -2
  92. package/dist/native-webview-BlmrmhV_.cjs.map +0 -1
  93. package/dist/native-webview-CRFBySOa.js.map +0 -1
  94. package/dist/qna-DvgpFom7.cjs +0 -2
  95. package/dist/qna-DvgpFom7.cjs.map +0 -1
  96. package/dist/qna-c7t5suwI.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { C as e, a as t, c as n, d as r, l as i, n as a, o, p as s, r as c, s as l, t as u, u as d, x as f, y as p } from "./schemas-DUid6HBM.js";
2
- import { $ as m, B as h, C as g, H as _, K as v, P as y, Q as b, R as x, U as S, V as C, X as w, Y as T, Z as E, _ as ee, a as te, b as D, c as O, d as ne, f as k, g as A, h as j, i as M, l as N, m as re, n as P, o as F, p as I, q as L, r as R, s as z, t as B, u as ie, y as V, z as H } from "./ga-datalayer-DdTUkXC3.js";
3
- import { a as U, i as ae, n as oe, r as se, t as W } from "./product-utils-BUalkWz3.js";
1
+ import { C as e, a as t, c as n, d as r, l as i, n as a, o, p as s, r as c, s as l, t as u, u as d, x as f, y as p } from "./schemas-DRZ9l0Z4.js";
2
+ import { $ as m, B as h, C as g, H as _, K as v, P as y, Q as b, R as x, U as S, V as C, X as w, Y as T, Z as E, _ as ee, a as te, b as D, c as O, d as ne, f as k, g as A, h as j, i as M, l as N, m as re, n as P, o as F, p as I, q as L, r as R, s as ie, t as z, u as ae, y as B, z as V } from "./ga-datalayer-DygUbUWr.js";
3
+ import { a as H, i as oe, n as se, r as ce, t as U } from "./product-utils-BUalkWz3.js";
4
4
  //#region src/common/uuidv7.ts
5
- function ce() {
5
+ function le() {
6
6
  let e = Date.now(), t = new Uint8Array(16);
7
7
  crypto.getRandomValues(t), t[0] = e / 2 ** 40 & 255, t[1] = e / 2 ** 32 & 255, t[2] = e / 2 ** 24 & 255, t[3] = e / 2 ** 16 & 255, t[4] = e / 2 ** 8 & 255, t[5] = e & 255, t[6] = t[6] & 15 | 112, t[8] = t[8] & 63 | 128;
8
8
  let n = Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
@@ -10,9 +10,9 @@ function ce() {
10
10
  }
11
11
  //#endregion
12
12
  //#region src/common/communication-bridge.ts
13
- var le = class {
13
+ var ue = class {
14
14
  constructor(e) {
15
- this._handlers = /* @__PURE__ */ new Map(), this._destroyed = !1, this._namespace = e.namespace, this._allowedOrigins = e.allowedOrigins ?? [location.origin], this._onMessage = e.onMessage, this._allowedOrigins.includes("*") && de() && console.warn("[gengage] postMessage bridge using wildcard origin. Set allowedOrigins for production security."), this._messageListener = (e) => this._handlePostMessage(e), window.addEventListener("message", this._messageListener);
15
+ this._handlers = /* @__PURE__ */ new Map(), this._destroyed = !1, this._namespace = e.namespace, this._allowedOrigins = e.allowedOrigins ?? [location.origin], this._onMessage = e.onMessage, this._allowedOrigins.includes("*") && fe() && console.warn("[gengage] postMessage bridge using wildcard origin. Set allowedOrigins for production security."), this._messageListener = (e) => this._handlePostMessage(e), window.addEventListener("message", this._messageListener);
16
16
  }
17
17
  send(e, t) {
18
18
  if (this._destroyed) return;
@@ -38,7 +38,7 @@ var le = class {
38
38
  _handlePostMessage(e) {
39
39
  if (this._destroyed || !this._isOriginAllowed(e.origin)) return;
40
40
  let t = e.data;
41
- if (!ue(t) || t.gengage !== this._namespace) return;
41
+ if (!de(t) || t.gengage !== this._namespace) return;
42
42
  let n = { type: t.type };
43
43
  t.payload !== void 0 && (n.payload = t.payload), this._onMessage?.(n);
44
44
  let r = this._handlers.get(n.type);
@@ -48,12 +48,12 @@ var le = class {
48
48
  return this._allowedOrigins.includes("*") ? !0 : this._allowedOrigins.includes(e);
49
49
  }
50
50
  };
51
- function ue(e) {
51
+ function de(e) {
52
52
  if (typeof e != "object" || !e) return !1;
53
53
  let t = e;
54
54
  return typeof t.gengage == "string" && typeof t.type == "string";
55
55
  }
56
- function de() {
56
+ function fe() {
57
57
  try {
58
58
  return typeof process < "u" && process.env.NODE_ENV !== "production";
59
59
  } catch {
@@ -62,19 +62,19 @@ function de() {
62
62
  }
63
63
  //#endregion
64
64
  //#region src/common/action-router.ts
65
- var fe = console;
66
- function pe(e, t, n = {}) {
67
- let r = e.action, i = n.logger ?? fe;
65
+ var pe = console;
66
+ function me(e, t, n = {}) {
67
+ let r = e.action, i = n.logger ?? pe;
68
68
  switch (D("action", `routing action: ${r.kind}`, r), r.kind) {
69
69
  case "open_chat":
70
70
  t.openChat?.(r.payload);
71
71
  return;
72
72
  case "navigate": {
73
73
  if (typeof r.url != "string") {
74
- G(r, t, n, i);
74
+ W(r, t, n, i);
75
75
  return;
76
76
  }
77
- if (!H(r.url)) {
77
+ if (!V(r.url)) {
78
78
  i.warn("[gengage] Blocked navigation to unsafe URL:", r.url);
79
79
  return;
80
80
  }
@@ -86,12 +86,12 @@ function pe(e, t, n = {}) {
86
86
  });
87
87
  return;
88
88
  }
89
- me(r.url, e);
89
+ he(r.url, e);
90
90
  return;
91
91
  }
92
92
  case "save_session":
93
93
  if (typeof r.sessionId != "string" || typeof r.sku != "string") {
94
- G(r, t, n, i);
94
+ W(r, t, n, i);
95
95
  return;
96
96
  }
97
97
  t.saveSession?.({
@@ -101,7 +101,7 @@ function pe(e, t, n = {}) {
101
101
  return;
102
102
  case "add_to_cart":
103
103
  if (typeof r.sku != "string" || typeof r.quantity != "number" || typeof r.cartCode != "string") {
104
- G(r, t, n, i);
104
+ W(r, t, n, i);
105
105
  return;
106
106
  }
107
107
  t.addToCart?.({
@@ -112,24 +112,24 @@ function pe(e, t, n = {}) {
112
112
  return;
113
113
  case "script_call": {
114
114
  if (n.allowScriptCall === !1) {
115
- G(r, t, n, i);
115
+ W(r, t, n, i);
116
116
  return;
117
117
  }
118
118
  if (typeof r.name != "string") {
119
- G(r, t, n, i);
119
+ W(r, t, n, i);
120
120
  return;
121
121
  }
122
- let e = he(r.payload) ? r.payload : void 0;
122
+ let e = ge(r.payload) ? r.payload : void 0;
123
123
  t.scriptCall?.({
124
124
  name: r.name,
125
125
  ...e !== void 0 && { payload: e }
126
126
  });
127
127
  return;
128
128
  }
129
- default: G(r, t, n, i);
129
+ default: W(r, t, n, i);
130
130
  }
131
131
  }
132
- function G(e, t, n, r) {
132
+ function W(e, t, n, r) {
133
133
  let i = n.unknownActionPolicy ?? "log-and-ignore";
134
134
  if (i === "delegate") {
135
135
  t.unknown?.(e), t.unknown || r.warn("[gengage] Unknown action received without delegate handler", e);
@@ -138,9 +138,9 @@ function G(e, t, n, r) {
138
138
  if (i === "throw") throw Error(`[gengage] Unknown action kind: ${e.kind}`);
139
139
  r.warn("[gengage] Unknown action ignored", e);
140
140
  }
141
- function me(e, t) {
141
+ function he(e, t) {
142
142
  if (!(typeof window > "u")) {
143
- if (!H(e)) {
143
+ if (!V(e)) {
144
144
  console.warn("[gengage] Blocked navigation to unsafe URL:", e);
145
145
  return;
146
146
  }
@@ -151,18 +151,18 @@ function me(e, t) {
151
151
  window.location.href = e;
152
152
  }
153
153
  }
154
- function he(e) {
154
+ function ge(e) {
155
155
  return typeof e == "object" && !!e && !Array.isArray(e);
156
156
  }
157
157
  //#endregion
158
158
  //#region src/chat/attachment-utils.ts
159
- var ge = [
159
+ var _e = [
160
160
  "image/jpeg",
161
161
  "image/png",
162
162
  "image/webp"
163
163
  ];
164
- function _e(e) {
165
- return ge.includes(e.type) ? e.size > 5242880 ? {
164
+ function ve(e) {
165
+ return _e.includes(e.type) ? e.size > 5242880 ? {
166
166
  ok: !1,
167
167
  reason: "too_large"
168
168
  } : { ok: !0 } : {
@@ -172,7 +172,7 @@ function _e(e) {
172
172
  }
173
173
  //#endregion
174
174
  //#region src/chat/api.ts
175
- function ve(e, t) {
175
+ function ye(e, t) {
176
176
  let n = e.type, r = e.payload != null && typeof e.payload == "object" && !Array.isArray(e.payload) ? e.payload : {}, i = (e) => {
177
177
  let t = { ...r };
178
178
  for (let [n, r] of Object.entries(e)) n in t || (t[n] = r);
@@ -211,19 +211,19 @@ function ve(e, t) {
211
211
  default: return e;
212
212
  }
213
213
  }
214
- var ye = { user_message: "inputText" };
215
- function be(e) {
216
- let { action: t, type: n, payload: r, ...i } = e, a = n ?? t?.type ?? "inputText", o = r ?? t?.payload, s = ye[a] ?? a, c = {
214
+ var be = { user_message: "inputText" };
215
+ function xe(e) {
216
+ let { action: t, type: n, payload: r, ...i } = e, a = n ?? t?.type ?? "inputText", o = r ?? t?.payload, s = be[a] ?? a, c = {
217
217
  ...i,
218
218
  type: s
219
219
  };
220
220
  return o !== void 0 && (c.payload = typeof o == "string" ? { text: o } : o), JSON.stringify(c);
221
221
  }
222
- function xe(e, t, n) {
222
+ function Se(e, t, n) {
223
223
  let i = r("process_action", n), a = new AbortController();
224
224
  return (async () => {
225
225
  try {
226
- let r = be(e), o = n.attachment !== void 0, c;
226
+ let r = xe(e), o = n.attachment !== void 0, c;
227
227
  if (o) {
228
228
  let e = new FormData();
229
229
  e.append("request", r), n.attachment !== void 0 && e.append("attachment", n.attachment), c = {
@@ -289,19 +289,19 @@ function xe(e, t, n) {
289
289
  }
290
290
  //#endregion
291
291
  //#region src/chat/utils/chat-presentation-debug.ts
292
- var Se = ["chat_debug", "presentation_debug"], Ce = ["gengage_chat_debug", "gengage_presentation_debug"];
293
- function we() {
292
+ var Ce = ["chat_debug", "presentation_debug"], we = ["gengage_chat_debug", "gengage_presentation_debug"];
293
+ function Te() {
294
294
  if (typeof window > "u") return !1;
295
295
  let e = new URLSearchParams(window.location.search);
296
- if (Se.some((t) => e.get(t) === "1")) return !0;
296
+ if (Ce.some((t) => e.get(t) === "1")) return !0;
297
297
  try {
298
- return Ce.some((e) => window.localStorage.getItem(e) === "1");
298
+ return we.some((e) => window.localStorage.getItem(e) === "1");
299
299
  } catch {
300
300
  return !1;
301
301
  }
302
302
  }
303
- function Te(e, t, n) {
304
- if (!we()) return;
303
+ function Ee(e, t, n) {
304
+ if (!Te()) return;
305
305
  let r = (window.__gengageChatPresentationDebugSeq ?? 0) + 1;
306
306
  window.__gengageChatPresentationDebugSeq = r;
307
307
  let i = {
@@ -317,19 +317,19 @@ function Te(e, t, n) {
317
317
  }
318
318
  //#endregion
319
319
  //#region src/chat/utils/get-chat-scroll-element.ts
320
- var Ee = "gengage-chat-scroll", K = null;
321
- function De(e) {
322
- K = e;
323
- }
324
- function Oe() {
325
- return K && K.isConnected ? K : (K = null, document.getElementById(Ee) || (Te("chat-scroll", "failed to resolve scroll container (not registered)", { id: Ee }), null));
320
+ var De = "gengage-chat-scroll", G = null;
321
+ function Oe(e) {
322
+ G = e;
326
323
  }
327
324
  function ke() {
328
- K = null;
325
+ return G && G.isConnected ? G : (G = null, document.getElementById(De) || (Ee("chat-scroll", "failed to resolve scroll container (not registered)", { id: De }), null));
326
+ }
327
+ function Ae() {
328
+ G = null;
329
329
  }
330
330
  //#endregion
331
331
  //#region src/chat/locales/tr.ts
332
- var Ae = {
332
+ var je = {
333
333
  headerTitle: "Ürün Uzmanı",
334
334
  inputPlaceholder: "Ürün ara, soru sor",
335
335
  sendButton: "Gönder",
@@ -450,7 +450,7 @@ var Ae = {
450
450
  showFormerMessagesButton: "↑ Önceki mesajları göster",
451
451
  aiAnalysisAnalyzingLabel: "Ürünler analiz ediliyor...",
452
452
  aiBrowseCategoriesTitle: "Kategorilere Göz At"
453
- }, je = {
453
+ }, Me = {
454
454
  headerTitle: "Product Expert",
455
455
  inputPlaceholder: "Search products, ask questions",
456
456
  sendButton: "Send",
@@ -574,25 +574,25 @@ var Ae = {
574
574
  };
575
575
  //#endregion
576
576
  //#region src/chat/locales/index.ts
577
- function Me(e) {
577
+ function Ne(e) {
578
578
  return e ? e.toLowerCase().split("-")[0] ?? "tr" : "tr";
579
579
  }
580
- function Ne(e) {
581
- switch (Me(e)) {
582
- case "en": return je;
583
- default: return Ae;
580
+ function Pe(e) {
581
+ switch (Ne(e)) {
582
+ case "en": return Me;
583
+ default: return je;
584
584
  }
585
585
  }
586
586
  //#endregion
587
587
  //#region src/common/voice-input.ts
588
- function Pe() {
589
- return Fe() !== null;
590
- }
591
588
  function Fe() {
589
+ return Ie() !== null;
590
+ }
591
+ function Ie() {
592
592
  let e = globalThis;
593
593
  return e.SpeechRecognition ?? e.webkitSpeechRecognition ?? null;
594
594
  }
595
- var Ie = class {
595
+ var Le = class {
596
596
  constructor(e, t) {
597
597
  this.recognition = null, this._state = "idle", this.silenceTimer = null, this.accumulatedTranscript = "", this.intentionalStop = !1, this._lastRestartAt = 0, this.callbacks = e, this.lang = t?.lang ?? "tr-TR", this.silenceTimeoutMs = t?.silenceTimeoutMs ?? 1500, this.autoSubmit = t?.autoSubmit ?? !0;
598
598
  }
@@ -601,7 +601,7 @@ var Ie = class {
601
601
  }
602
602
  start() {
603
603
  if (this._state === "listening") return;
604
- let e = Fe();
604
+ let e = Ie();
605
605
  if (!e) {
606
606
  this.setState("error"), this.callbacks.onError?.("not-supported", "Web Speech API is not supported in this browser.");
607
607
  return;
@@ -625,7 +625,7 @@ var Ie = class {
625
625
  }
626
626
  n && (this.accumulatedTranscript += n, this.callbacks.onFinal?.(this.accumulatedTranscript)), t && this.callbacks.onInterim?.(this.accumulatedTranscript + t), this.autoSubmit && this.accumulatedTranscript && this.startSilenceTimer();
627
627
  }, t.onerror = (e) => {
628
- let t = Le(e.error);
628
+ let t = Re(e.error);
629
629
  this.intentionalStop && (e.error === "no-speech" || e.error === "aborted") || (this.setState("error"), this.callbacks.onError?.(t, e.message || e.error));
630
630
  }, t.onend = () => {
631
631
  if (this.clearSilenceTimer(), this._state === "listening" && !this.intentionalStop) {
@@ -684,7 +684,7 @@ var Ie = class {
684
684
  this.silenceTimer !== null && (clearTimeout(this.silenceTimer), this.silenceTimer = null);
685
685
  }
686
686
  };
687
- function Le(e) {
687
+ function Re(e) {
688
688
  switch (e) {
689
689
  case "not-allowed": return "not-allowed";
690
690
  case "no-speech": return "no-speech";
@@ -696,7 +696,7 @@ function Le(e) {
696
696
  }
697
697
  //#endregion
698
698
  //#region src/chat/components/KvkkBanner.ts
699
- function Re(e) {
699
+ function ze(e) {
700
700
  let t = document.createElement("div");
701
701
  t.className = "gengage-chat-kvkk-banner gds-evidence-card gds-evidence-card-warning", t.dataset.gengagePart = "kvkk-banner", t.setAttribute("role", "alert");
702
702
  let n = document.createElement("div");
@@ -706,7 +706,7 @@ function Re(e) {
706
706
  }
707
707
  //#endregion
708
708
  //#region src/chat/components/PanelTopBar.ts
709
- var ze = class {
709
+ var Be = class {
710
710
  constructor(e) {
711
711
  this._el = document.createElement("div"), this._el.className = "gengage-chat-panel-topbar gds-toolbar", this._el.dataset.gengagePart = "panel-topbar", this._backBtn = document.createElement("button"), this._backBtn.className = "gengage-chat-panel-topbar-back gds-btn gds-btn-ghost gds-icon-btn", this._backBtn.dataset.gengagePart = "panel-topbar-back", this._backBtn.type = "button", this._backBtn.disabled = !0, this._backBtn.setAttribute("aria-label", e.backAriaLabel ?? "Back"), this._backBtn.title = e.backAriaLabel ?? "Back", this._backBtn.innerHTML = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"/><path d=\"M21 12H9\"/></svg>", this._backBtn.addEventListener("click", () => e.onBack());
712
712
  let t = document.createElement("div");
@@ -727,7 +727,7 @@ var ze = class {
727
727
  getTitle() {
728
728
  return this._titleEl.textContent ?? "";
729
729
  }
730
- }, Be = class {
730
+ }, Ve = class {
731
731
  constructor(e) {
732
732
  this._onThumbnailClick = e.onThumbnailClick, this._el = document.createElement("div"), this._el.className = "gengage-chat-thumbnails-column", this._el.style.display = "none";
733
733
  }
@@ -755,13 +755,13 @@ var ze = class {
755
755
  hide() {
756
756
  this._el.style.display = "none";
757
757
  }
758
- }, Ve = {
758
+ }, He = {
759
759
  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>",
760
760
  review: "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><polygon points=\"8,1 10,6 15,6 11,9 12.5,14 8,11 3.5,14 5,9 1,6 6,6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>",
761
761
  info: "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><circle cx=\"8\" cy=\"8\" r=\"7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/><line x1=\"8\" y1=\"7\" x2=\"8\" y2=\"12\" stroke=\"currentColor\" stroke-width=\"1.5\"/><circle cx=\"8\" cy=\"4.5\" r=\"0.8\" fill=\"currentColor\"/></svg>",
762
762
  similar: "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><rect x=\"1\" y=\"3\" width=\"6\" height=\"6\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/><rect x=\"9\" y=\"3\" width=\"6\" height=\"6\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>"
763
- }, He = Ae, Ue = 1400, We = /data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;
764
- async function Ge(e) {
763
+ }, Ue = je, We = 1400, Ge = /data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+/gi;
764
+ async function Ke(e) {
765
765
  for (let t of e) for (let e of t.types) if (e.startsWith("image/")) try {
766
766
  let n = await t.getType(e);
767
767
  if (!n || n.size === 0) continue;
@@ -771,7 +771,7 @@ async function Ge(e) {
771
771
  continue;
772
772
  }
773
773
  for (let t of e) if (t.types.includes("text/html")) try {
774
- let e = (await (await t.getType("text/html")).text()).match(We)?.[0];
774
+ let e = (await (await t.getType("text/html")).text()).match(Ge)?.[0];
775
775
  if (!e || e.length > 5e6) continue;
776
776
  let n = await (await fetch(e)).blob();
777
777
  if (!n || n.size === 0) continue;
@@ -788,17 +788,17 @@ async function Ge(e) {
788
788
  }
789
789
  return null;
790
790
  }
791
- async function Ke(e) {
791
+ async function qe(e) {
792
792
  try {
793
793
  let t = e ?? (typeof navigator.clipboard?.read == "function" ? navigator.clipboard.read() : null);
794
- return t ? Ge(await t) : null;
794
+ return t ? Ke(await t) : null;
795
795
  } catch {}
796
796
  return null;
797
797
  }
798
- var qe = class {
798
+ var Je = class {
799
799
  constructor(e, t) {
800
800
  this._sendStopHandler = null, this._panelVisible = !1, this._panelCollapsed = !1, this._dividerPreviewEnabled = !1, this._onPanelToggle = void 0, this._onHostShellSync = void 0, this._pendingAttachment = null, this._onAttachment = void 0, this._onRollback = void 0, this._onLinkClick = void 0, this._userScrolledUp = !1, this._scrollLockedUntil = 0, this._favBadgeEl = null, this._thinkingSteps = [], this._firstBotMessageIds = /* @__PURE__ */ new Set(), this._voiceInput = null, this._micBtn = null, this._voiceEnabled = !1, this._voiceLang = "tr-TR", this._ignoreNextDividerClick = !1, this._panelListScrollAnimToken = 0, this._cleanups = [], this._focusTrapHandler = null, this._previouslyFocusedElement = null, this._conversationEl = null, this._reopenPanelBtn = null, this._presentationFocusThreadId = null, this._formerMessagesBtn = null, this._programmaticScrollUntil = 0, this._userInteractionUntil = 0, this._touchStartY = null, this._presentationPinned = !0, this._presentationUserInteracting = !1, this._resizeRafId = null, this._cartBtn = null, this._attachWrapEl = null, this._attachMenuEl = null, this._attachBtn = null, this._attachMenuCleanup = null, this._attachMenuClickTimerId = null, this._typingLoadingBinding = null, this._panelLoadingBinding = null, this._panelAiZoneLoadingBinding = null, this._options = t, this.i18n = {
801
- ...He,
801
+ ...Ue,
802
802
  ...t.i18n
803
803
  }, this.onSend = t.onSend, t.onPanelToggle !== void 0 && (this._onPanelToggle = t.onPanelToggle), t.onHostShellSync !== void 0 && (this._onHostShellSync = t.onHostShellSync), t.onAttachment !== void 0 && (this._onAttachment = t.onAttachment), t.onRollback !== void 0 && (this._onRollback = t.onRollback), t.onLinkClick !== void 0 && (this._onLinkClick = t.onLinkClick), t.voiceEnabled && (this._voiceEnabled = !0), t.voiceLang !== void 0 && (this._voiceLang = t.voiceLang), this.root = document.createElement("div"), this.root.className = "gengage-chat-drawer gds-panel", this.root.dataset.gengagePart = "chat-drawer", this.root.setAttribute("role", "dialog"), this.root.setAttribute("aria-label", this.i18n.headerTitle ?? "Chat"), this.root.setAttribute("aria-modal", "true");
804
804
  let n = "gengage-chat-dialog-desc", r = document.createElement("span");
@@ -880,7 +880,7 @@ var qe = class {
880
880
  });
881
881
  }
882
882
  let h = document.createElement("div");
883
- h.className = "gengage-chat-body", h.dataset.gengagePart = "chat-body", this._panelEl = document.createElement("div"), this._panelEl.className = "gengage-chat-panel gds-panel", this._panelEl.dataset.gengagePart = "chat-panel", this._panelTopBar = new ze({
883
+ h.className = "gengage-chat-body", h.dataset.gengagePart = "chat-body", this._panelEl = document.createElement("div"), this._panelEl.className = "gengage-chat-panel gds-panel", this._panelEl.dataset.gengagePart = "chat-panel", this._panelTopBar = new Be({
884
884
  onBack: () => t.onPanelBack?.(),
885
885
  onForward: () => t.onPanelForward?.(),
886
886
  onClose: () => {
@@ -923,7 +923,7 @@ var qe = class {
923
923
  let w = () => C.classList.add("gengage-chat-offline-bar--visible"), T = () => C.classList.remove("gengage-chat-offline-bar--visible");
924
924
  window.addEventListener("offline", w), window.addEventListener("online", T), this._cleanups.push(() => {
925
925
  window.removeEventListener("offline", w), window.removeEventListener("online", T);
926
- }), this._kvkkSlot = document.createElement("div"), this._kvkkSlot.className = "gengage-chat-kvkk-slot", this._kvkkSlot.dataset.gengagePart = "chat-kvkk-slot", S.appendChild(this._kvkkSlot), this.messagesEl = document.createElement("div"), this.messagesEl.id = Ee, 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), De(this.messagesEl);
926
+ }), this._kvkkSlot = document.createElement("div"), this._kvkkSlot.className = "gengage-chat-kvkk-slot", this._kvkkSlot.dataset.gengagePart = "chat-kvkk-slot", S.appendChild(this._kvkkSlot), this.messagesEl = document.createElement("div"), this.messagesEl.id = De, 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), Oe(this.messagesEl);
927
927
  let E = document.createElement("button");
928
928
  E.type = "button", E.className = "gengage-chat-former-messages-btn gds-chip", E.dataset.gengagePart = "chat-former-messages-button", E.textContent = this.i18n.showFormerMessagesButton, E.setAttribute("aria-label", this.i18n.showFormerMessagesButton), E.style.display = "none", E.addEventListener("click", () => {
929
929
  this._options.presentation?.onReleasePresentationFocus?.();
@@ -955,7 +955,7 @@ var qe = class {
955
955
  };
956
956
  this.messagesEl.addEventListener("touchstart", k, { passive: !0 }), this.messagesEl.addEventListener("touchmove", A, { passive: !0 }), this._cleanups.push(() => {
957
957
  this.messagesEl.removeEventListener("touchstart", k), this.messagesEl.removeEventListener("touchmove", A);
958
- }), S.appendChild(this.messagesEl), this._thumbnailsColumn = new Be({ onThumbnailClick: (e) => t.onThumbnailClick?.(e) }), 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";
958
+ }), S.appendChild(this.messagesEl), this._thumbnailsColumn = new Ve({ onThumbnailClick: (e) => t.onThumbnailClick?.(e) }), 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";
959
959
  let j = document.createElement("div");
960
960
  j.className = "gengage-chat-pills-scroll", j.dataset.gengagePart = "chat-suggestion-pills-scroll", this._pillsEl.appendChild(j);
961
961
  let M = document.createElement("button");
@@ -1014,18 +1014,18 @@ var qe = class {
1014
1014
  R.type = "button", R.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", R.dataset.gengagePart = "chat-attach-menu-select-photo", R.setAttribute("role", "menuitem"), R.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>`, R.addEventListener("click", (e) => {
1015
1015
  e.stopPropagation(), this._closeAttachMenu(), this._fileInput.click();
1016
1016
  });
1017
- let z = document.createElement("div");
1018
- z.className = "gengage-chat-attach-menu-sep", z.dataset.gengagePart = "chat-attach-menu-separator", z.setAttribute("aria-hidden", "true");
1019
- let B = document.createElement("button");
1020
- B.type = "button", B.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", B.dataset.gengagePart = "chat-attach-menu-paste", B.setAttribute("role", "menuitem"), B.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>`, B.addEventListener("click", (e) => {
1017
+ let ie = document.createElement("div");
1018
+ ie.className = "gengage-chat-attach-menu-sep", ie.dataset.gengagePart = "chat-attach-menu-separator", ie.setAttribute("aria-hidden", "true");
1019
+ let z = document.createElement("button");
1020
+ z.type = "button", z.className = "gengage-chat-attach-menu-item gds-btn gds-btn-ghost", z.dataset.gengagePart = "chat-attach-menu-paste", z.setAttribute("role", "menuitem"), z.innerHTML = `<span class="gengage-chat-attach-menu-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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>`, z.addEventListener("click", (e) => {
1021
1021
  e.stopPropagation();
1022
1022
  let t = typeof navigator.clipboard?.read == "function" ? navigator.clipboard.read() : void 0;
1023
1023
  this._pasteImageFromClipboardMenu(t);
1024
- }), L.appendChild(R), L.appendChild(z), L.appendChild(B), F.appendChild(I), F.appendChild(L), 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";
1025
- let ie = document.createElement("img");
1026
- ie.className = "gengage-chat-attachment-preview-thumb", ie.dataset.gengagePart = "chat-attachment-preview-thumb", ie.alt = "", this._previewName = document.createElement("span"), this._previewName.className = "gengage-chat-attachment-name", this._previewName.dataset.gengagePart = "chat-attachment-preview-name";
1027
- let V = document.createElement("button");
1028
- V.className = "gengage-chat-attachment-remove gds-btn gds-btn-ghost", V.dataset.gengagePart = "chat-attachment-preview-remove", V.type = "button", V.setAttribute("aria-label", this.i18n.removeAttachmentButton), V.textContent = "×", V.addEventListener("click", () => this.clearAttachment()), this._previewStrip.appendChild(ie), this._previewStrip.appendChild(this._previewName), this._previewStrip.appendChild(V), 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", () => {
1024
+ }), L.appendChild(R), L.appendChild(ie), L.appendChild(z), F.appendChild(I), F.appendChild(L), 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";
1025
+ let ae = document.createElement("img");
1026
+ ae.className = "gengage-chat-attachment-preview-thumb", ae.dataset.gengagePart = "chat-attachment-preview-thumb", ae.alt = "", this._previewName = document.createElement("span"), this._previewName.className = "gengage-chat-attachment-name", this._previewName.dataset.gengagePart = "chat-attachment-preview-name";
1027
+ let B = document.createElement("button");
1028
+ B.className = "gengage-chat-attachment-remove gds-btn gds-btn-ghost", B.dataset.gengagePart = "chat-attachment-preview-remove", B.type = "button", B.setAttribute("aria-label", this.i18n.removeAttachmentButton), B.textContent = "×", B.addEventListener("click", () => this.clearAttachment()), this._previewStrip.appendChild(ae), this._previewStrip.appendChild(this._previewName), this._previewStrip.appendChild(B), 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", () => {
1029
1029
  if (this._sendStopHandler) {
1030
1030
  let e = this._sendStopHandler;
1031
1031
  this.hideStopButton(), e();
@@ -1041,8 +1041,8 @@ var qe = class {
1041
1041
  let t = e.dataTransfer?.files[0];
1042
1042
  t && this._routeAttachmentFile(t);
1043
1043
  });
1044
- let H = document.createElement("div");
1045
- H.className = "gengage-chat-input-pill gds-input-shell", H.dataset.gengagePart = "chat-input-shell", H.appendChild(F), H.appendChild(this.inputEl), this._voiceEnabled && Pe() && (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()), H.appendChild(this._micBtn), this._voiceInput = new Ie({
1044
+ let V = document.createElement("div");
1045
+ V.className = "gengage-chat-input-pill gds-input-shell", V.dataset.gengagePart = "chat-input-shell", V.appendChild(F), V.appendChild(this.inputEl), this._voiceEnabled && Fe() && (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()), V.appendChild(this._micBtn), this._voiceInput = new Le({
1046
1046
  onInterim: (e) => {
1047
1047
  this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this.inputEl.value = e, this.inputEl.style.height = "auto", this.inputEl.style.height = `${Math.min(this.inputEl.scrollHeight, 120)}px`;
1048
1048
  },
@@ -1058,13 +1058,13 @@ var qe = class {
1058
1058
  onError: (e, t) => {
1059
1059
  this._micBtn?.classList.remove("gengage-chat-mic-btn--active");
1060
1060
  }
1061
- }, { lang: this._voiceLang })), H.appendChild(this.sendBtn), P.appendChild(this._previewStrip), P.appendChild(this._fileInput), P.appendChild(H), S.appendChild(P), h.appendChild(S), this._comparisonDockSlotEl = document.createElement("div"), this._comparisonDockSlotEl.className = "gengage-chat-comparison-dock-slot", this._comparisonDockSlotEl.dataset.gengagePart = "comparison-dock-slot", h.appendChild(this._comparisonDockSlotEl), this.root.appendChild(h), this._setupHorizontalSwipe(S), this._setupHorizontalSwipe(this._panelEl);
1062
- let U = document.createElement("div");
1063
- U.className = "gengage-chat-footer", U.dataset.gengagePart = "chat-footer", U.textContent = this.i18n.poweredBy, this.root.appendChild(U);
1064
- let ae = (e) => {
1061
+ }, { lang: this._voiceLang })), V.appendChild(this.sendBtn), P.appendChild(this._previewStrip), P.appendChild(this._fileInput), P.appendChild(V), S.appendChild(P), h.appendChild(S), this._comparisonDockSlotEl = document.createElement("div"), this._comparisonDockSlotEl.className = "gengage-chat-comparison-dock-slot", this._comparisonDockSlotEl.dataset.gengagePart = "comparison-dock-slot", h.appendChild(this._comparisonDockSlotEl), this.root.appendChild(h), this._setupHorizontalSwipe(S), this._setupHorizontalSwipe(this._panelEl);
1062
+ let H = document.createElement("div");
1063
+ H.className = "gengage-chat-footer", H.dataset.gengagePart = "chat-footer", H.textContent = this.i18n.poweredBy, this.root.appendChild(H);
1064
+ let oe = (e) => {
1065
1065
  e.key === "Escape" && t.onClose();
1066
1066
  };
1067
- this.root.addEventListener("keydown", ae), this._cleanups.push(() => this.root.removeEventListener("keydown", ae)), e.appendChild(this.root);
1067
+ this.root.addEventListener("keydown", oe), this._cleanups.push(() => this.root.removeEventListener("keydown", oe)), e.appendChild(this.root);
1068
1068
  }
1069
1069
  addMessage(e) {
1070
1070
  let t = document.createElement("div");
@@ -1164,7 +1164,7 @@ var qe = class {
1164
1164
  for (let n of e) {
1165
1165
  let e = document.createElement("button");
1166
1166
  if (e.className = n.image ? "gengage-chat-pill gds-chip gds-chip-active gengage-chat-pill--rich" : "gengage-chat-pill gds-chip gds-chip-active", e.type = "button", n.icon) {
1167
- let t = Ve[n.icon] ?? "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><path d=\"M3 8h10M9 4l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", r = document.createElement("span");
1167
+ let t = He[n.icon] ?? "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><path d=\"M3 8h10M9 4l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", r = document.createElement("span");
1168
1168
  r.className = "gengage-chat-pill-icon", r.innerHTML = t, e.appendChild(r);
1169
1169
  }
1170
1170
  if (n.image && x(n.image)) {
@@ -1190,7 +1190,7 @@ var qe = class {
1190
1190
  }
1191
1191
  showKvkkBanner(e, t) {
1192
1192
  this._kvkkSlot.innerHTML = "";
1193
- let n = Re({
1193
+ let n = ze({
1194
1194
  htmlContent: e,
1195
1195
  onDismiss: t,
1196
1196
  closeAriaLabel: this.i18n.closeAriaLabel
@@ -1200,6 +1200,9 @@ var qe = class {
1200
1200
  hideKvkkBanner() {
1201
1201
  this._kvkkSlot.innerHTML = "";
1202
1202
  }
1203
+ isKvkkBannerVisible() {
1204
+ return this._kvkkSlot.childNodes.length > 0;
1205
+ }
1203
1206
  getElement() {
1204
1207
  return this.root;
1205
1208
  }
@@ -1241,7 +1244,7 @@ var qe = class {
1241
1244
  this._attachMenuEl && (this._attachMenuEl.hasAttribute("hidden") ? this._openAttachMenu() : this._closeAttachMenu());
1242
1245
  }
1243
1246
  async _pasteImageFromClipboardMenu(e) {
1244
- let t = await Ke(e);
1247
+ let t = await qe(e);
1245
1248
  if (t) {
1246
1249
  this._routeAttachmentFile(t), this._closeAttachMenu();
1247
1250
  return;
@@ -1566,7 +1569,7 @@ var qe = class {
1566
1569
  return;
1567
1570
  }
1568
1571
  e.index += 1, e.labelEl.textContent = e.steps[e.index], e.index >= e.steps.length - 1 && this._clearLoadingBindingInterval(e);
1569
- }, Ue));
1572
+ }, We));
1570
1573
  }
1571
1574
  _clearLoadingBindingInterval(e) {
1572
1575
  e?.intervalId && (clearInterval(e.intervalId), e.intervalId = null);
@@ -1696,7 +1699,7 @@ var qe = class {
1696
1699
  for (let t of e) {
1697
1700
  let e = document.createElement("button");
1698
1701
  if (e.className = "gengage-chat-input-chip gds-chip", e.type = "button", t.icon) {
1699
- let n = Ve[t.icon] ?? "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><path d=\"M3 8h10M9 4l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", r = document.createElement("span");
1702
+ let n = He[t.icon] ?? "<svg viewBox=\"0 0 16 16\" class=\"gengage-chat-icon\"><path d=\"M3 8h10M9 4l4 4-4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", r = document.createElement("span");
1700
1703
  r.className = "gengage-chat-input-chip-icon", r.innerHTML = n, e.appendChild(r);
1701
1704
  }
1702
1705
  let n = document.createElement("span");
@@ -1763,12 +1766,12 @@ var qe = class {
1763
1766
  }, 2500);
1764
1767
  }
1765
1768
  destroy() {
1766
- De(null), this.releaseFocus(), this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this._destroyLoadingBinding(this._typingLoadingBinding), this._typingLoadingBinding = null, this._destroyLoadingBinding(this._panelLoadingBinding), this._panelLoadingBinding = null, this._destroyLoadingBinding(this._panelAiZoneLoadingBinding), this._panelAiZoneLoadingBinding = null, this._closeAttachMenu();
1769
+ Oe(null), this.releaseFocus(), this._resizeRafId !== null && (cancelAnimationFrame(this._resizeRafId), this._resizeRafId = null), this._destroyLoadingBinding(this._typingLoadingBinding), this._typingLoadingBinding = null, this._destroyLoadingBinding(this._panelLoadingBinding), this._panelLoadingBinding = null, this._destroyLoadingBinding(this._panelAiZoneLoadingBinding), this._panelAiZoneLoadingBinding = null, this._closeAttachMenu();
1767
1770
  for (let e of this._cleanups) e();
1768
1771
  this._cleanups.length = 0, this._voiceInput?.destroy(), this._voiceInput = null;
1769
1772
  }
1770
- }, Je = "<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"3\" fill=\"currentColor\" opacity=\"0.15\"/>\n <rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\"/>\n <circle cx=\"9\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"15\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <path d=\"M9.5 17C10.3 17.6 11.1 18 12 18C12.9 18 13.7 17.6 14.5 17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M12 7V4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <circle cx=\"12\" cy=\"3\" r=\"1\" fill=\"currentColor\"/>\n <path d=\"M1 12V14\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M23 12V14\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>";
1771
- function Ye(e) {
1773
+ }, Ye = "<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"3\" fill=\"currentColor\" opacity=\"0.15\"/>\n <rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\"/>\n <circle cx=\"9\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"15\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <path d=\"M9.5 17C10.3 17.6 11.1 18 12 18C12.9 18 13.7 17.6 14.5 17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M12 7V4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <circle cx=\"12\" cy=\"3\" r=\"1\" fill=\"currentColor\"/>\n <path d=\"M1 12V14\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M23 12V14\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>";
1774
+ function Xe(e) {
1772
1775
  let t = document.createElement("div");
1773
1776
  t.className = "gengage-chat-launcher-container", t.dataset.gengagePart = "chat-launcher-container";
1774
1777
  let n = document.createElement("div");
@@ -1778,7 +1781,7 @@ function Ye(e) {
1778
1781
  r.className = "gengage-chat-launcher gengage-chat-launcher--image-mode";
1779
1782
  let t = document.createElement("img");
1780
1783
  t.src = e.imageUrl, t.alt = "", t.draggable = !1, r.appendChild(t);
1781
- } else r.className = "gengage-chat-launcher", r.innerHTML = e.svgMarkup ?? Je;
1784
+ } else r.className = "gengage-chat-launcher", r.innerHTML = e.svgMarkup ?? Ye;
1782
1785
  if (r.dataset.gengagePart = "chat-launcher-button", e.tooltip !== void 0) {
1783
1786
  let t = document.createElement("span");
1784
1787
  t.className = "gengage-chat-launcher-tooltip", t.dataset.gengagePart = "chat-launcher-tooltip", t.textContent = e.tooltip, r.appendChild(t);
@@ -1794,7 +1797,7 @@ function Ye(e) {
1794
1797
  }
1795
1798
  //#endregion
1796
1799
  //#region src/common/tts-player.ts
1797
- var Xe = new Set([
1800
+ var Ze = new Set([
1798
1801
  "audio/ogg",
1799
1802
  "audio/mpeg",
1800
1803
  "audio/mp3",
@@ -1802,25 +1805,25 @@ var Xe = new Set([
1802
1805
  "audio/webm",
1803
1806
  "audio/aac",
1804
1807
  "audio/mp4"
1805
- ]), Ze = /* @__PURE__ */ new Set();
1806
- function Qe(e) {
1807
- e.pause(), e.removeAttribute("src"), e.load(), Ze.delete(e);
1808
+ ]), Qe = /* @__PURE__ */ new Set();
1809
+ function $e(e) {
1810
+ e.pause(), e.removeAttribute("src"), e.load(), Qe.delete(e);
1808
1811
  }
1809
- function $e(e, t = "audio/ogg") {
1812
+ function et(e, t = "audio/ogg") {
1810
1813
  let n = t.split(";")[0].trim();
1811
- if (!Xe.has(n)) return null;
1814
+ if (!Ze.has(n)) return null;
1812
1815
  try {
1813
1816
  let n = new Audio(`data:${t};base64,${e}`);
1814
- return Ze.add(n), n.addEventListener("ended", () => Qe(n), { once: !0 }), n.play().catch(() => {
1815
- Qe(n);
1816
- }), { stop: () => Qe(n) };
1817
+ return Qe.add(n), n.addEventListener("ended", () => $e(n), { once: !0 }), n.play().catch(() => {
1818
+ $e(n);
1819
+ }), { stop: () => $e(n) };
1817
1820
  } catch {
1818
1821
  return null;
1819
1822
  }
1820
1823
  }
1821
1824
  //#endregion
1822
1825
  //#region src/chat/components/ComparisonTable.ts
1823
- var et = {
1826
+ var tt = {
1824
1827
  screen_size: "Screen Size",
1825
1828
  weight: "Weight",
1826
1829
  battery_capacity: "Battery Capacity",
@@ -1852,25 +1855,25 @@ var et = {
1852
1855
  height: "Height",
1853
1856
  depth: "Depth"
1854
1857
  };
1855
- function tt(e, t) {
1856
- return t?.[e] ?? et[e] ?? e.replace(/_/g, " ").replace(/^\w/, (e) => e.toUpperCase());
1858
+ function nt(e, t) {
1859
+ return t?.[e] ?? tt[e] ?? e.replace(/_/g, " ").replace(/^\w/, (e) => e.toUpperCase());
1857
1860
  }
1858
- function nt(e) {
1861
+ function rt(e) {
1859
1862
  if (typeof e != "string") return !1;
1860
1863
  let t = Number(e);
1861
1864
  return Number.isFinite(t) && t > 0;
1862
1865
  }
1863
- function rt(e) {
1866
+ function it(e) {
1864
1867
  let t = typeof e == "number" ? e : typeof e == "string" ? Number(e) : NaN;
1865
1868
  return Number.isFinite(t) && t > 0;
1866
1869
  }
1867
- function it(e) {
1870
+ function at(e) {
1868
1871
  let t = typeof e == "number" ? e : Number(e), n = document.createElement("div");
1869
1872
  n.className = "gengage-chat-comparison-recommended-rating", n.innerHTML = "<span class=\"gengage-chat-comparison-recommended-rating-icon\" aria-hidden=\"true\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z\"/></svg></span>";
1870
1873
  let r = document.createElement("span");
1871
1874
  return r.className = "gengage-chat-comparison-recommended-rating-value", r.textContent = t.toFixed(1), n.appendChild(r), n;
1872
1875
  }
1873
- function at(e) {
1876
+ function ot(e) {
1874
1877
  let { recommended: t, products: n, attributes: r, highlights: i, specialCases: a, onProductClick: o, i18n: s } = e, c = document.createElement("div");
1875
1878
  if (c.className = "gengage-chat-comparison", c.dataset.gengagePart = "comparison-dialog", c.setAttribute("role", "dialog"), c.setAttribute("aria-label", s?.comparisonHeading ?? "Comparison Results"), t) {
1876
1879
  let n = document.createElement("article");
@@ -1895,9 +1898,9 @@ function at(e) {
1895
1898
  let d = document.createElement("div");
1896
1899
  d.className = "gengage-chat-comparison-recommended-title", d.textContent = t.name, u.appendChild(d);
1897
1900
  let f = document.createElement("div");
1898
- if (f.className = "gengage-chat-comparison-recommended-meta", rt(t.rating) && f.appendChild(it(t.rating)), nt(t.price)) {
1901
+ if (f.className = "gengage-chat-comparison-recommended-meta", it(t.rating) && f.appendChild(at(t.rating)), rt(t.price)) {
1899
1902
  let n = document.createElement("div");
1900
- n.className = "gengage-chat-comparison-recommended-price", n.textContent = U(t.price, e.pricing), f.appendChild(n);
1903
+ n.className = "gengage-chat-comparison-recommended-price", n.textContent = H(t.price, e.pricing), f.appendChild(n);
1901
1904
  }
1902
1905
  if (f.childElementCount > 0 && u.appendChild(f), e.recommendedText) {
1903
1906
  let t = document.createElement("p");
@@ -1936,7 +1939,7 @@ function at(e) {
1936
1939
  let i = document.createElement("span");
1937
1940
  i.className = "gengage-chat-comparison-key-differences-summary-meta", i.textContent = s?.viewMoreLabel ?? "Show More", n.appendChild(r), n.appendChild(i), t.appendChild(n);
1938
1941
  let a = document.createElement("div");
1939
- a.className = "gengage-chat-comparison-key-differences-content", a.innerHTML = C(ot(e.keyDifferencesHtml)), t.appendChild(a), c.appendChild(t);
1942
+ a.className = "gengage-chat-comparison-key-differences-content", a.innerHTML = C(st(e.keyDifferencesHtml)), t.appendChild(a), c.appendChild(t);
1940
1943
  }
1941
1944
  if (a && a.length > 0) {
1942
1945
  let e = document.createElement("details");
@@ -1944,7 +1947,7 @@ function at(e) {
1944
1947
  let t = document.createElement("summary");
1945
1948
  t.textContent = s?.specialCasesLabel ?? "For Special Cases", e.appendChild(t);
1946
1949
  let n = document.createElement("ul");
1947
- for (let e of a) st(n, e);
1950
+ for (let e of a) ct(n, e);
1948
1951
  n.childElementCount > 0 && e.appendChild(n), c.appendChild(e);
1949
1952
  }
1950
1953
  if (n.length > 0 && r.length > 0) {
@@ -1975,9 +1978,9 @@ function at(e) {
1975
1978
  e.className = "gengage-chat-comparison-table-header-img-placeholder", e.setAttribute("aria-hidden", "true"), i.appendChild(e);
1976
1979
  }
1977
1980
  let s = document.createElement("div");
1978
- if (s.className = "gengage-chat-comparison-table-product-name", s.textContent = r.name, i.appendChild(s), nt(r.price)) {
1981
+ if (s.className = "gengage-chat-comparison-table-product-name", s.textContent = r.name, i.appendChild(s), rt(r.price)) {
1979
1982
  let t = document.createElement("div");
1980
- t.className = "gengage-chat-comparison-table-price", t.textContent = U(r.price, e.pricing), i.appendChild(t);
1983
+ t.className = "gengage-chat-comparison-table-price", t.textContent = H(r.price, e.pricing), i.appendChild(t);
1981
1984
  }
1982
1985
  n.appendChild(i), l.appendChild(n);
1983
1986
  }
@@ -1985,7 +1988,7 @@ function at(e) {
1985
1988
  let d = document.createElement("tbody");
1986
1989
  for (let e of r) {
1987
1990
  let r = document.createElement("tr"), i = document.createElement("td");
1988
- i.className = "gengage-chat-comparison-label", i.textContent = tt(e.label, s?.criteriaLabels), r.appendChild(i);
1991
+ i.className = "gengage-chat-comparison-label", i.textContent = nt(e.label, s?.criteriaLabels), r.appendChild(i);
1989
1992
  for (let i = 0; i < e.values.length; i++) {
1990
1993
  let a = document.createElement("td");
1991
1994
  n[i]?.sku === t?.sku && (a.className = "gengage-chat-comparison-selected gds-comparison-table-winner-cell"), a.textContent = e.values[i] ?? "", r.appendChild(a);
@@ -2004,12 +2007,12 @@ function at(e) {
2004
2007
  e.shiftKey && document.activeElement === n ? (e.preventDefault(), r.focus()) : !e.shiftKey && document.activeElement === r && (e.preventDefault(), n.focus());
2005
2008
  }), c;
2006
2009
  }
2007
- function ot(e) {
2010
+ function st(e) {
2008
2011
  if (/<[uo]l[\s>]/i.test(e) || /<li[\s>]/i.test(e)) return e;
2009
2012
  let t = e.split("\n").filter((e) => e.trim());
2010
2013
  return t.length <= 1 ? e : "<ul>" + t.map((e) => `<li>${e.trim()}</li>`).join("") + "</ul>";
2011
2014
  }
2012
- function st(e, t) {
2015
+ function ct(e, t) {
2013
2016
  let n = C(t);
2014
2017
  if (!n) return;
2015
2018
  let r = document.createElement("template");
@@ -2023,14 +2026,14 @@ function st(e, t) {
2023
2026
  return;
2024
2027
  }
2025
2028
  let a = document.createElement("li");
2026
- ct(t) ? a.innerHTML = n : a.textContent = t, e.appendChild(a);
2029
+ lt(t) ? a.innerHTML = n : a.textContent = t, e.appendChild(a);
2027
2030
  }
2028
- function ct(e) {
2031
+ function lt(e) {
2029
2032
  return /<\/?[a-z][\s\S]*>/i.test(e);
2030
2033
  }
2031
2034
  //#endregion
2032
2035
  //#region src/chat/utils/ui.ts
2033
- function lt(e, t = 18) {
2036
+ function ut(e, t = 18) {
2034
2037
  let n = "http://www.w3.org/2000/svg", r = document.createElementNS(n, "svg");
2035
2038
  r.setAttribute("width", String(t)), r.setAttribute("height", String(t)), r.setAttribute("viewBox", "0 0 24 24"), r.setAttribute("fill", "none"), r.setAttribute("stroke", "currentColor"), r.setAttribute("stroke-width", "2"), r.setAttribute("stroke-linecap", "round"), r.setAttribute("stroke-linejoin", "round"), r.setAttribute("aria-hidden", "true");
2036
2039
  for (let t of e) {
@@ -2041,30 +2044,30 @@ function lt(e, t = 18) {
2041
2044
  }
2042
2045
  //#endregion
2043
2046
  //#region src/chat/components/ReviewHighlights.ts
2044
- var ut = "General", dt = 220, ft = 6;
2045
- function pt(e) {
2046
- if (typeof e != "string") return [ut];
2047
+ var dt = "General", ft = 220, pt = 6;
2048
+ function mt(e) {
2049
+ if (typeof e != "string") return [dt];
2047
2050
  let t = e.split(/[,;|/]+/).map((e) => e.trim().replace(/\s+/g, " ")).filter((e) => e.length > 0);
2048
- return t.length === 0 ? [ut] : Array.from(new Set(t.map((e) => e.toLocaleLowerCase()))).map((e) => t.find((t) => t.toLocaleLowerCase() === e) ?? ut);
2051
+ return t.length === 0 ? [dt] : Array.from(new Set(t.map((e) => e.toLocaleLowerCase()))).map((e) => t.find((t) => t.toLocaleLowerCase() === e) ?? dt);
2049
2052
  }
2050
- function mt(e) {
2053
+ function ht(e) {
2051
2054
  return e === "positive" || e === "negative" || e === "neutral" ? e : "neutral";
2052
2055
  }
2053
- function ht(e) {
2056
+ function gt(e) {
2054
2057
  if (typeof e != "string") return "";
2055
2058
  let t = e.trim().replace(/\s+/g, " ");
2056
- return t.length <= dt ? t : `${t.slice(0, dt - 3).trimEnd()}...`;
2059
+ return t.length <= ft ? t : `${t.slice(0, ft - 3).trimEnd()}...`;
2057
2060
  }
2058
- function gt(e) {
2061
+ function _t(e) {
2059
2062
  return e.positive > e.negative ? "positive" : e.negative > e.positive ? "negative" : "neutral";
2060
2063
  }
2061
- function _t(e) {
2062
- return lt(e === "positive" ? ["M7 17 17 7", "M7 7h10v10"] : e === "negative" ? ["M7 7 17 17", "M17 7v10H7"] : ["M5 12h14"], 14);
2064
+ function vt(e) {
2065
+ return ut(e === "positive" ? ["M7 17 17 7", "M7 7h10v10"] : e === "negative" ? ["M7 7 17 17", "M17 7v10H7"] : ["M5 12h14"], 14);
2063
2066
  }
2064
- function vt(e, t = "1 customer mentions", n = "customers mention") {
2067
+ function yt(e, t = "1 customer mentions", n = "customers mention") {
2065
2068
  return e === 1 ? t : `${e} ${n}`;
2066
2069
  }
2067
- function yt(e, t) {
2070
+ function bt(e, t) {
2068
2071
  let n = document.createElement("div");
2069
2072
  n.className = "gengage-chat-review-highlights";
2070
2073
  let r = e.props?.reviews;
@@ -2074,7 +2077,7 @@ function yt(e, t) {
2074
2077
  }
2075
2078
  let i = r.filter((e) => typeof e == "object" && !!e), a = /* @__PURE__ */ new Map();
2076
2079
  for (let e of i) {
2077
- let t = mt(e.review_class), n = ht(e.review_text), r = pt(e.review_tag);
2080
+ let t = ht(e.review_class), n = gt(e.review_text), r = mt(e.review_tag);
2078
2081
  for (let i of r) {
2079
2082
  let r = i.toLocaleLowerCase(), o = a.get(r);
2080
2083
  if (o || (o = {
@@ -2085,7 +2088,7 @@ function yt(e, t) {
2085
2088
  negative: 0,
2086
2089
  neutral: 0,
2087
2090
  snippets: []
2088
- }, a.set(r, o)), o.mentions += 1, t === "positive" ? o.positive += 1 : t === "negative" ? o.negative += 1 : o.neutral += 1, n.length > 0 && o.snippets.length < ft && !o.snippets.some((e) => e.text === n)) {
2091
+ }, a.set(r, o)), o.mentions += 1, t === "positive" ? o.positive += 1 : t === "negative" ? o.negative += 1 : o.neutral += 1, n.length > 0 && o.snippets.length < pt && !o.snippets.some((e) => e.text === n)) {
2089
2092
  let r = {
2090
2093
  text: n,
2091
2094
  tone: t
@@ -2113,7 +2116,7 @@ function yt(e, t) {
2113
2116
  let n = document.createElement("div");
2114
2117
  n.className = "gengage-chat-review-detail-meta";
2115
2118
  let r = document.createElement("span");
2116
- if (r.className = "gengage-chat-review-detail-mentions", r.textContent = `${vt(e.mentions, t?.reviewCustomersMentionSingular, t?.reviewCustomersMentionPlural)} "${e.label}"`, n.appendChild(r), e.positive > 0) {
2119
+ if (r.className = "gengage-chat-review-detail-mentions", r.textContent = `${yt(e.mentions, t?.reviewCustomersMentionSingular, t?.reviewCustomersMentionPlural)} "${e.label}"`, n.appendChild(r), e.positive > 0) {
2117
2120
  let t = document.createElement("span");
2118
2121
  t.className = "gengage-chat-review-detail-positive", t.textContent = `${e.positive} ${s}`, n.appendChild(t);
2119
2122
  }
@@ -2142,10 +2145,10 @@ function yt(e, t) {
2142
2145
  }
2143
2146
  };
2144
2147
  for (let e of o) {
2145
- let t = gt(e), n = document.createElement("button");
2148
+ let t = _t(e), n = document.createElement("button");
2146
2149
  n.type = "button", n.className = "gengage-chat-review-subject gds-chip", n.dataset.subjectKey = e.key, n.dataset.tone = t;
2147
2150
  let r = document.createElement("span");
2148
- r.className = "gengage-chat-review-subject-icon", r.appendChild(_t(t)), n.appendChild(r);
2151
+ r.className = "gengage-chat-review-subject-icon", r.appendChild(vt(t)), n.appendChild(r);
2149
2152
  let i = document.createElement("span");
2150
2153
  i.className = "gengage-chat-review-subject-label", i.textContent = e.label, n.appendChild(i);
2151
2154
  let a = document.createElement("span");
@@ -2157,23 +2160,23 @@ function yt(e, t) {
2157
2160
  }
2158
2161
  //#endregion
2159
2162
  //#region src/chat/components/AITopPicks.ts
2160
- function bt(e) {
2163
+ function xt(e) {
2161
2164
  let t = e.product.sku;
2162
2165
  if (typeof t == "string" && t.length > 0) return t;
2163
2166
  let n = e.action?.payload;
2164
2167
  return n && typeof n == "object" && "sku" in n && typeof n.sku == "string" ? n.sku : null;
2165
2168
  }
2166
- var xt = {
2169
+ var St = {
2167
2170
  winner: "roleWinner",
2168
2171
  best_value: "roleBestValue",
2169
2172
  best_alternative: "roleBestAlternative"
2170
2173
  };
2171
- function St(e, t) {
2174
+ function Ct(e, t) {
2172
2175
  if (!e || !t) return null;
2173
- let n = xt[e];
2176
+ let n = St[e];
2174
2177
  return n ? t[n] ?? e : e;
2175
2178
  }
2176
- function Ct(e) {
2179
+ function wt(e) {
2177
2180
  let t = e.rating, n = typeof t == "number" ? t : typeof t == "string" ? parseFloat(t) : NaN;
2178
2181
  if (Number.isNaN(n) || n <= 0) return null;
2179
2182
  let r = document.createElement("div");
@@ -2183,15 +2186,15 @@ function Ct(e) {
2183
2186
  let a = document.createElement("span");
2184
2187
  return a.className = "gengage-chat-ai-toppick-rating-value", a.textContent = n.toFixed(1), r.appendChild(i), r.appendChild(a), r;
2185
2188
  }
2186
- function wt(e, t, n, r, i) {
2189
+ function Tt(e, t, n, r, i) {
2187
2190
  let a = document.createElement("div");
2188
2191
  a.className = "gengage-chat-ai-toppick-media", a.dataset.gengagePart = "ai-top-pick-media";
2189
2192
  let o = e.product, s = o.imageUrl;
2190
2193
  if (s && x(s)) {
2191
2194
  let e = document.createElement("img");
2192
- e.className = "gengage-chat-ai-toppick-img", e.dataset.gengagePart = "ai-top-pick-image", h(e, "src", s), e.loading = "lazy", e.alt = t, W(e), a.appendChild(e);
2195
+ e.className = "gengage-chat-ai-toppick-img", e.dataset.gengagePart = "ai-top-pick-image", h(e, "src", s), e.loading = "lazy", e.alt = t, U(e), a.appendChild(e);
2193
2196
  }
2194
- let c = bt(e);
2197
+ let c = xt(e);
2195
2198
  if (c && !i?.skipOverlayActions) {
2196
2199
  let e = document.createElement("div");
2197
2200
  if (e.className = "gengage-chat-product-card-img-actions", r.onFavoriteToggle) {
@@ -2218,18 +2221,18 @@ function wt(e, t, n, r, i) {
2218
2221
  }
2219
2222
  n.appendChild(a);
2220
2223
  }
2221
- function Tt(e, t, n) {
2224
+ function Et(e, t, n) {
2222
2225
  let r = e.price, i = e.originalPrice;
2223
2226
  if (!r) return;
2224
2227
  let a = document.createElement("div");
2225
2228
  if (a.className = "gengage-chat-ai-toppick-price", a.dataset.gengagePart = "ai-top-pick-price", i && i !== r) {
2226
2229
  let e = document.createElement("span");
2227
- e.className = "gengage-chat-ai-toppick-original-price", e.textContent = U(i, n.pricing), a.appendChild(e), a.appendChild(document.createTextNode(" "));
2230
+ e.className = "gengage-chat-ai-toppick-original-price", e.textContent = H(i, n.pricing), a.appendChild(e), a.appendChild(document.createTextNode(" "));
2228
2231
  }
2229
2232
  let o = document.createElement("span");
2230
- o.textContent = U(r, n.pricing), a.appendChild(o), t.appendChild(a);
2233
+ o.textContent = H(r, n.pricing), a.appendChild(o), t.appendChild(a);
2231
2234
  }
2232
- function Et(e, t) {
2235
+ function Dt(e, t) {
2233
2236
  let n = typeof e.reason == "string" ? e.reason.trim() : "", r = typeof e.reviewHighlight == "string" ? e.reviewHighlight.trim() : "";
2234
2237
  if (!(!n && !r)) {
2235
2238
  if (n) {
@@ -2242,10 +2245,10 @@ function Et(e, t) {
2242
2245
  }
2243
2246
  }
2244
2247
  }
2245
- function Dt(e, t, n) {
2248
+ function Ot(e, t, n) {
2246
2249
  let r = document.createElement("div");
2247
2250
  r.className = n ? "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", r.dataset.gengagePart = n ? "ai-top-pick-card-winner" : "ai-top-pick-card";
2248
- let i = e.product, a = bt(e), o = i.url ?? "", s = i.cartCode, c = i.inStock, l = !!(a && s && c !== !1), u = e.action;
2251
+ let i = e.product, a = xt(e), o = i.url ?? "", s = i.cartCode, c = i.inStock, l = !!(a && s && c !== !1), u = e.action;
2249
2252
  a && t.onProductClick ? (r.classList.add("gds-clickable"), r.addEventListener("click", (e) => {
2250
2253
  e.target.closest(".gengage-chat-ai-toppick-cta") || e.target.closest(".gengage-chat-favorite-btn") || e.target.closest(".gengage-chat-find-similar-pill") || t.onProductClick?.({
2251
2254
  sku: a,
@@ -2254,13 +2257,13 @@ function Dt(e, t, n) {
2254
2257
  })) : u && (r.classList.add("gds-clickable"), r.addEventListener("click", (e) => {
2255
2258
  e.target.closest(".gengage-chat-ai-toppick-cta") || e.target.closest(".gengage-chat-favorite-btn") || e.target.closest(".gengage-chat-find-similar-pill") || t.onAction(u);
2256
2259
  }));
2257
- let d = i.name || "Product image", f = !n && t.isMobile === !0, p = n ? St(e.role, t.i18n) ?? t.i18n?.roleWinner ?? "TOP MATCH" : St(e.role, t.i18n);
2260
+ let d = i.name || "Product image", f = !n && t.isMobile === !0, p = n ? Ct(e.role, t.i18n) ?? t.i18n?.roleWinner ?? "TOP MATCH" : Ct(e.role, t.i18n);
2258
2261
  if (p && !f) {
2259
2262
  let e = document.createElement("span");
2260
2263
  e.className = "gengage-chat-ai-toppick-badge gds-badge", e.dataset.gengagePart = "ai-top-pick-role-badge", e.textContent = p, r.appendChild(e);
2261
2264
  }
2262
2265
  let m = document.createElement("div");
2263
- m.className = "gengage-chat-ai-toppick-top-row", m.dataset.gengagePart = "ai-top-pick-top-row", wt(e, d, m, t, { skipOverlayActions: f });
2266
+ m.className = "gengage-chat-ai-toppick-top-row", m.dataset.gengagePart = "ai-top-pick-top-row", Tt(e, d, m, t, { skipOverlayActions: f });
2264
2267
  let h = document.createElement("div");
2265
2268
  if (h.className = "gengage-chat-ai-toppick-body", h.dataset.gengagePart = "ai-top-pick-body", p && f) {
2266
2269
  let e = document.createElement("div");
@@ -2271,10 +2274,10 @@ function Dt(e, t, n) {
2271
2274
  let e = document.createElement("div");
2272
2275
  e.className = "gengage-chat-ai-toppick-name", e.dataset.gengagePart = "ai-top-pick-name", e.textContent = g, h.appendChild(e);
2273
2276
  }
2274
- let _ = Ct(i);
2275
- _ && h.appendChild(_), Tt(i, h, t), e.labels && e.labels.length > 0 && h.appendChild(kt(e.labels)), m.appendChild(h), r.appendChild(m);
2277
+ let _ = wt(i);
2278
+ _ && h.appendChild(_), Et(i, h, t), e.labels && e.labels.length > 0 && h.appendChild(At(e.labels)), m.appendChild(h), r.appendChild(m);
2276
2279
  let v = document.createElement("div");
2277
- if (v.className = "gengage-chat-ai-toppick-detail", v.dataset.gengagePart = "ai-top-pick-detail", n) Et(e, v);
2280
+ if (v.className = "gengage-chat-ai-toppick-detail", v.dataset.gengagePart = "ai-top-pick-detail", n) Dt(e, v);
2278
2281
  else {
2279
2282
  let t = typeof e.reason == "string" ? e.reason.trim() : "";
2280
2283
  if (t) {
@@ -2316,7 +2319,7 @@ function Dt(e, t, n) {
2316
2319
  }
2317
2320
  return r;
2318
2321
  }
2319
- function Ot(e, t) {
2322
+ function kt(e, t) {
2320
2323
  let n = document.createElement("div");
2321
2324
  n.className = "gengage-chat-ai-top-picks", n.dataset.gengagePart = "ai-top-picks";
2322
2325
  let r = e.props?.suggestions ?? [];
@@ -2326,18 +2329,18 @@ function Ot(e, t) {
2326
2329
  let a = document.createElement("div");
2327
2330
  a.className = "gengage-chat-ai-top-picks-scroll", a.dataset.gengagePart = "ai-top-picks-scroll";
2328
2331
  let o = r[0];
2329
- if (a.appendChild(Dt(o, t, !0)), r.length > 1) {
2332
+ if (a.appendChild(Ot(o, t, !0)), r.length > 1) {
2330
2333
  let e = document.createElement("div");
2331
2334
  e.className = "gengage-chat-ai-top-picks-rest", e.dataset.gengagePart = "ai-top-picks-rest";
2332
2335
  for (let n = 1; n < r.length; n++) {
2333
2336
  let i = r[n], a = i.role === "winner";
2334
- e.appendChild(Dt(i, t, a));
2337
+ e.appendChild(Ot(i, t, a));
2335
2338
  }
2336
2339
  a.appendChild(e);
2337
2340
  }
2338
2341
  return n.appendChild(a), n;
2339
2342
  }
2340
- function kt(e) {
2343
+ function At(e) {
2341
2344
  let t = document.createElement("div");
2342
2345
  t.className = "gengage-chat-ai-toppick-labels", t.dataset.gengagePart = "ai-top-pick-labels";
2343
2346
  for (let n of e) {
@@ -2348,11 +2351,11 @@ function kt(e) {
2348
2351
  }
2349
2352
  //#endregion
2350
2353
  //#region src/chat/components/GroundingReviewCard.ts
2351
- function At(e, t) {
2354
+ function jt(e, t) {
2352
2355
  let n = document.createElement("div");
2353
2356
  n.className = "gengage-chat-grounding-review gds-evidence-card", n.dataset.gengagePart = "grounding-review-card";
2354
2357
  let r = e.props ?? {}, i = r.title, a = r.reviewCount, o = r.action, s = t.i18n?.groundingReviewCta ?? "Read Reviews", c = document.createElement("span");
2355
- c.className = "gengage-chat-grounding-review-icon", c.appendChild(lt([
2358
+ c.className = "gengage-chat-grounding-review-icon", c.appendChild(ut([
2356
2359
  "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",
2357
2360
  "M8 9h8",
2358
2361
  "M8 13h6"
@@ -2370,13 +2373,13 @@ function At(e, t) {
2370
2373
  let f = document.createElement("span");
2371
2374
  f.textContent = s, d.appendChild(f);
2372
2375
  let p = document.createElement("span");
2373
- return p.className = "gengage-chat-grounding-review-cta-icon", p.appendChild(lt(["M5 12h14", "M15 8l4 4-4 4"], 14)), d.appendChild(p), n.appendChild(d), o && (n.classList.add("gds-clickable"), n.setAttribute("role", "button"), n.setAttribute("tabindex", "0"), n.addEventListener("click", () => t.onAction(o)), n.addEventListener("keydown", (e) => {
2376
+ return p.className = "gengage-chat-grounding-review-cta-icon", p.appendChild(ut(["M5 12h14", "M15 8l4 4-4 4"], 14)), d.appendChild(p), n.appendChild(d), o && (n.classList.add("gds-clickable"), n.setAttribute("role", "button"), n.setAttribute("tabindex", "0"), n.addEventListener("click", () => t.onAction(o)), n.addEventListener("keydown", (e) => {
2374
2377
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), t.onAction(o));
2375
2378
  })), n;
2376
2379
  }
2377
2380
  //#endregion
2378
2381
  //#region src/chat/components/AIGroupingCards.ts
2379
- function jt(e) {
2382
+ function Mt(e) {
2380
2383
  if (e.action.type !== "findSimilar") return e.action;
2381
2384
  let t = e.action.payload && typeof e.action.payload == "object" ? e.action.payload : null, n = typeof t?.input == "string" && t.input.trim() || typeof t?.text == "string" && t.text.trim() || e.name.trim();
2382
2385
  if (!n) return e.action;
@@ -2394,7 +2397,7 @@ function jt(e) {
2394
2397
  payload: r
2395
2398
  };
2396
2399
  }
2397
- function Mt(e, t) {
2400
+ function Nt(e, t) {
2398
2401
  let n = document.createElement("div");
2399
2402
  n.className = "gengage-chat-grouping-cards", n.dataset.gengagePart = "ai-grouping-cards";
2400
2403
  let r = e.props?.entries ?? [];
@@ -2408,7 +2411,7 @@ function Mt(e, t) {
2408
2411
  o.className = "gengage-chat-grouping-cards-scroll", o.dataset.gengagePart = "ai-grouping-cards-scroll";
2409
2412
  for (let e of r) {
2410
2413
  let n = document.createElement("div");
2411
- if (n.className = "gengage-chat-grouping-card gds-card", n.dataset.gengagePart = "ai-grouping-card", n.classList.add("gds-clickable"), n.addEventListener("click", () => t.onAction(jt(e))), e.image && x(e.image)) {
2414
+ if (n.className = "gengage-chat-grouping-card gds-card", n.dataset.gengagePart = "ai-grouping-card", n.classList.add("gds-clickable"), n.addEventListener("click", () => t.onAction(Mt(e))), e.image && x(e.image)) {
2412
2415
  let t = document.createElement("img");
2413
2416
  t.className = "gengage-chat-grouping-card-img", t.dataset.gengagePart = "ai-grouping-card-image", t.src = e.image, t.alt = e.name, t.width = 64, t.height = 64, n.appendChild(t);
2414
2417
  }
@@ -2432,7 +2435,7 @@ function Mt(e, t) {
2432
2435
  }
2433
2436
  //#endregion
2434
2437
  //#region src/chat/components/AISuggestedSearchCards.ts
2435
- function Nt(e, t) {
2438
+ function Pt(e, t) {
2436
2439
  let n = document.createElement("div");
2437
2440
  n.className = "gengage-chat-suggested-search-cards", n.dataset.gengagePart = "ai-suggested-search-cards";
2438
2441
  let r = e.props?.entries ?? [];
@@ -2452,7 +2455,7 @@ function Nt(e, t) {
2452
2455
  }
2453
2456
  //#endregion
2454
2457
  //#region src/chat/components/FloatingComparisonButton.ts
2455
- function Pt(e, t) {
2458
+ function Ft(e, t) {
2456
2459
  let n = e.length >= 2, r = t.i18n?.compareSelected ?? "Compare", i = t.comparisonSelectionWarning, a = document.createElement("div");
2457
2460
  a.className = "gengage-chat-comparison-floating-btn", a.dataset.gengagePart = "comparison-dock";
2458
2461
  let o = document.createElement("div");
@@ -2484,7 +2487,7 @@ function Pt(e, t) {
2484
2487
  }
2485
2488
  //#endregion
2486
2489
  //#region src/chat/components/ProsAndCons.ts
2487
- function Ft(e) {
2490
+ function It(e) {
2488
2491
  let t = document.createElement("div");
2489
2492
  t.className = "gengage-chat-pros-cons gds-card-soft", t.dataset.gengagePart = "pros-cons";
2490
2493
  let n = e.props?.productName;
@@ -2523,7 +2526,7 @@ function Ft(e) {
2523
2526
  }
2524
2527
  //#endregion
2525
2528
  //#region src/chat/components/CategoriesContainer.ts
2526
- function It(e, t) {
2529
+ function Lt(e, t) {
2527
2530
  let n = e.props?.groups ?? [], r = e.props?.filterTags ?? [], i = document.createElement("div");
2528
2531
  if (i.className = "gengage-chat-categories", i.dataset.gengagePart = "categories-container", n.length === 0) return i;
2529
2532
  let a = document.createElement("div");
@@ -2543,7 +2546,7 @@ function It(e, t) {
2543
2546
  let d = document.createElement("div");
2544
2547
  d.className = "gengage-chat-categories-grid", d.dataset.gengagePart = "categories-panel", d.id = l, d.setAttribute("role", "tabpanel"), d.setAttribute("aria-labelledby", i), e !== 0 && (d.style.display = "none");
2545
2548
  for (let e of r.products) {
2546
- let n = Lt(e, t);
2549
+ let n = Rt(e, t);
2547
2550
  d.appendChild(n);
2548
2551
  }
2549
2552
  s.push(d);
@@ -2563,18 +2566,18 @@ function It(e, t) {
2563
2566
  }
2564
2567
  return i;
2565
2568
  }
2566
- function Lt(e, t) {
2569
+ function Rt(e, t) {
2567
2570
  let n = document.createElement("div");
2568
2571
  if (n.className = "gengage-chat-product-card gds-card gds-product-card gds-card-interactive", n.dataset.gengagePart = "categories-product-card", e.imageUrl && x(e.imageUrl)) {
2569
2572
  let t = document.createElement("img");
2570
- t.className = "gengage-chat-product-card-img", t.src = e.imageUrl, t.alt = e.name, t.loading = "lazy", W(t), n.appendChild(t);
2573
+ t.className = "gengage-chat-product-card-img", t.src = e.imageUrl, t.alt = e.name, t.loading = "lazy", U(t), n.appendChild(t);
2571
2574
  }
2572
2575
  let r = document.createElement("div");
2573
2576
  r.className = "gengage-chat-product-card-body";
2574
2577
  let i = document.createElement("div");
2575
2578
  if (i.className = "gengage-chat-product-card-name", i.textContent = e.name, r.appendChild(i), e.price) {
2576
2579
  let n = document.createElement("div");
2577
- n.className = "gengage-chat-product-card-price", n.textContent = U(e.price, t.pricing), r.appendChild(n);
2580
+ n.className = "gengage-chat-product-card-price", n.textContent = H(e.price, t.pricing), r.appendChild(n);
2578
2581
  }
2579
2582
  return n.appendChild(r), (t.onProductSelect || t.onAction) && (n.classList.add("gds-clickable"), n.addEventListener("click", () => {
2580
2583
  if (e.sku) {
@@ -2590,7 +2593,7 @@ function Lt(e, t) {
2590
2593
  }
2591
2594
  //#endregion
2592
2595
  //#region src/chat/components/HandoffNotice.ts
2593
- function Rt(e, t) {
2596
+ function zt(e, t) {
2594
2597
  let n = document.createElement("div");
2595
2598
  n.className = "gengage-chat-handoff-notice gds-evidence-card gds-evidence-card-warning", n.dataset.gengagePart = "handoff-notice", n.setAttribute("role", "alert");
2596
2599
  let r = document.createElement("span");
@@ -2606,18 +2609,18 @@ function Rt(e, t) {
2606
2609
  }
2607
2610
  //#endregion
2608
2611
  //#region src/chat/components/ProductSummaryCard.ts
2609
- function zt(e, t) {
2612
+ function Bt(e, t) {
2610
2613
  let n = e.props?.product ?? e.props, r = document.createElement("div");
2611
2614
  if (r.className = "gengage-chat-product-summary gds-card", r.dataset.gengagePart = "product-summary-card", !n) return r;
2612
2615
  r.classList.add("gds-clickable"), r.addEventListener("click", (e) => {
2613
2616
  e.target.closest("a") || t.onProductSelect?.(n);
2614
2617
  });
2615
2618
  let i = n.imageUrl;
2616
- if (i && H(i)) {
2619
+ if (i && V(i)) {
2617
2620
  let e = document.createElement("div");
2618
2621
  e.className = "gengage-chat-product-summary__image", e.dataset.gengagePart = "product-summary-image";
2619
2622
  let t = document.createElement("img");
2620
- t.loading = "lazy", h(t, "src", i), t.alt = n.name || "Product image", W(t), e.appendChild(t), r.appendChild(e);
2623
+ t.loading = "lazy", h(t, "src", i), t.alt = n.name || "Product image", U(t), e.appendChild(t), r.appendChild(e);
2621
2624
  }
2622
2625
  let a = document.createElement("div");
2623
2626
  a.className = "gengage-chat-product-summary__content", a.dataset.gengagePart = "product-summary-content";
@@ -2631,7 +2634,7 @@ function zt(e, t) {
2631
2634
  let c = n.rating, l = n.reviewCount;
2632
2635
  if (typeof c == "number" && Number.isFinite(c) && c > 0) {
2633
2636
  let e = document.createElement("div");
2634
- if (e.className = "gengage-chat-product-summary__rating", e.dataset.gengagePart = "product-summary-rating", e.appendChild(ae(c)), typeof l == "number" && Number.isFinite(l)) {
2637
+ if (e.className = "gengage-chat-product-summary__rating", e.dataset.gengagePart = "product-summary-rating", e.appendChild(oe(c)), typeof l == "number" && Number.isFinite(l)) {
2635
2638
  let t = document.createElement("span");
2636
2639
  t.className = "gengage-chat-product-summary__review-count", t.textContent = ` (${l})`, e.appendChild(t);
2637
2640
  }
@@ -2642,14 +2645,14 @@ function zt(e, t) {
2642
2645
  let e = document.createElement("div");
2643
2646
  if (e.className = "gengage-chat-product-summary__price", e.dataset.gengagePart = "product-summary-price", d && d !== u) {
2644
2647
  let n = document.createElement("span");
2645
- n.className = "gengage-chat-product-summary__price-original", n.textContent = U(d, t.pricing), e.appendChild(n), e.appendChild(document.createTextNode(" "));
2648
+ n.className = "gengage-chat-product-summary__price-original", n.textContent = H(d, t.pricing), e.appendChild(n), e.appendChild(document.createTextNode(" "));
2646
2649
  }
2647
2650
  let n = document.createElement("span");
2648
- n.className = "gengage-chat-product-summary__price-current", n.textContent = U(u, t.pricing), e.appendChild(n), a.appendChild(e);
2651
+ n.className = "gengage-chat-product-summary__price-current", n.textContent = H(u, t.pricing), e.appendChild(n), a.appendChild(e);
2649
2652
  }
2650
2653
  r.appendChild(a);
2651
2654
  let f = n.url;
2652
- if (f && H(f)) {
2655
+ if (f && V(f)) {
2653
2656
  let e = document.createElement("a");
2654
2657
  e.className = "gengage-chat-product-summary__cta gds-chip gds-chip-active", e.dataset.gengagePart = "product-summary-cta", h(e, "href", f), h(e, "target", "_blank"), h(e, "rel", "noopener noreferrer"), e.textContent = t.i18n?.productCtaLabel ?? "View", r.appendChild(e);
2655
2658
  }
@@ -2657,16 +2660,16 @@ function zt(e, t) {
2657
2660
  }
2658
2661
  //#endregion
2659
2662
  //#region src/chat/components/renderUISpec.ts
2660
- function Bt() {
2663
+ function Vt() {
2661
2664
  return window.innerWidth < 768;
2662
2665
  }
2663
- var Vt = {
2664
- ActionButtons: ({ element: e, context: t }) => Gt(e, t),
2665
- ActionButton: ({ element: e, context: t }) => Kt(e, t),
2666
- ProductCard: ({ element: e, context: t }) => qt(e, t),
2667
- ProductDetailsPanel: ({ element: e, context: t }) => wn(e, t),
2668
- ProductGrid: ({ element: e, spec: t, renderElement: n, context: r }) => In(e, t, n, r),
2669
- ReviewHighlights: ({ element: e, context: t }) => yt(e, {
2666
+ var Ht = {
2667
+ ActionButtons: ({ element: e, context: t }) => Kt(e, t),
2668
+ ActionButton: ({ element: e, context: t }) => qt(e, t),
2669
+ ProductCard: ({ element: e, context: t }) => Jt(e, t),
2670
+ ProductDetailsPanel: ({ element: e, context: t }) => Tn(e, t),
2671
+ ProductGrid: ({ element: e, spec: t, renderElement: n, context: r }) => Ln(e, t, n, r),
2672
+ ReviewHighlights: ({ element: e, context: t }) => bt(e, {
2670
2673
  emptyReviewsMessage: t.i18n?.emptyReviewsMessage,
2671
2674
  reviewFilterPositive: t.i18n?.reviewFilterPositive,
2672
2675
  reviewFilterNegative: t.i18n?.reviewFilterNegative,
@@ -2674,17 +2677,17 @@ var Vt = {
2674
2677
  reviewCustomersMentionPlural: t.i18n?.reviewCustomersMentionPlural,
2675
2678
  reviewSubjectsHeading: t.i18n?.reviewSubjectsHeading
2676
2679
  }),
2677
- ComparisonTable: ({ element: e, context: t }) => Ln(e, t),
2678
- AITopPicks: ({ element: e, context: t }) => Ot(e, t),
2679
- GroundingReviewCard: ({ element: e, context: t }) => At(e, t),
2680
- AIGroupingCards: ({ element: e, context: t }) => Mt(e, t),
2681
- AISuggestedSearchCards: ({ element: e, context: t }) => Nt(e, t),
2682
- ProsAndCons: ({ element: e }) => Ft(e),
2683
- CategoriesContainer: ({ element: e, context: t }) => It(e, t),
2684
- HandoffNotice: ({ element: e, context: t }) => Rt(e, t),
2685
- ProductSummaryCard: ({ element: e, context: t }) => zt(e, t),
2686
- Divider: ({ element: e }) => Rn(e)
2687
- }, Ht = ({ element: e, renderElement: t }) => {
2680
+ ComparisonTable: ({ element: e, context: t }) => Rn(e, t),
2681
+ AITopPicks: ({ element: e, context: t }) => kt(e, t),
2682
+ GroundingReviewCard: ({ element: e, context: t }) => jt(e, t),
2683
+ AIGroupingCards: ({ element: e, context: t }) => Nt(e, t),
2684
+ AISuggestedSearchCards: ({ element: e, context: t }) => Pt(e, t),
2685
+ ProsAndCons: ({ element: e }) => It(e),
2686
+ CategoriesContainer: ({ element: e, context: t }) => Lt(e, t),
2687
+ HandoffNotice: ({ element: e, context: t }) => zt(e, t),
2688
+ ProductSummaryCard: ({ element: e, context: t }) => Bt(e, t),
2689
+ Divider: ({ element: e }) => zn(e)
2690
+ }, Ut = ({ element: e, renderElement: t }) => {
2688
2691
  if (!e.children || e.children.length === 0) return null;
2689
2692
  let n = document.createElement("div");
2690
2693
  for (let r of e.children) {
@@ -2693,10 +2696,10 @@ var Vt = {
2693
2696
  }
2694
2697
  return n;
2695
2698
  };
2696
- function Ut() {
2697
- return { ...Vt };
2699
+ function Wt() {
2700
+ return { ...Ht };
2698
2701
  }
2699
- function Wt(t, n, r = Vt, i = Ht) {
2702
+ function Gt(t, n, r = Ht, i = Ut) {
2700
2703
  return e({
2701
2704
  spec: t,
2702
2705
  context: n,
@@ -2705,7 +2708,7 @@ function Wt(t, n, r = Vt, i = Ht) {
2705
2708
  unknownRenderer: i
2706
2709
  });
2707
2710
  }
2708
- function Gt(e, t) {
2711
+ function Kt(e, t) {
2709
2712
  let n = document.createElement("div");
2710
2713
  n.className = "gengage-chat-action-buttons";
2711
2714
  let r = e.props?.buttons;
@@ -2715,7 +2718,7 @@ function Gt(e, t) {
2715
2718
  }
2716
2719
  return n;
2717
2720
  }
2718
- function Kt(e, t) {
2721
+ function qt(e, t) {
2719
2722
  let n = document.createElement("button");
2720
2723
  n.className = "gengage-chat-action-btn";
2721
2724
  let r = e.props?.label;
@@ -2723,7 +2726,7 @@ function Kt(e, t) {
2723
2726
  let i = e.props?.action;
2724
2727
  return i && n.addEventListener("click", () => t.onAction(i)), n;
2725
2728
  }
2726
- function qt(e, t) {
2729
+ function Jt(e, t) {
2727
2730
  let n = document.createElement("div");
2728
2731
  n.className = "gengage-chat-product-card gds-card gds-product-card gds-card-interactive";
2729
2732
  let r = e.props?.product ?? e.props;
@@ -2741,17 +2744,17 @@ function qt(e, t) {
2741
2744
  }
2742
2745
  }));
2743
2746
  let o = r.imageUrl;
2744
- if (o && H(o)) {
2747
+ if (o && V(o)) {
2745
2748
  let e = document.createElement("div");
2746
2749
  e.className = "gengage-chat-product-card-img-wrapper";
2747
2750
  let i = document.createElement("img");
2748
2751
  i.className = "gengage-chat-product-card-img", i.loading = "lazy", h(i, "src", o);
2749
2752
  let a = r.name;
2750
- a && (i.alt = a), W(i), e.appendChild(i);
2753
+ a && (i.alt = a), U(i), e.appendChild(i);
2751
2754
  let s = r.discountPercent;
2752
2755
  if (typeof s == "number" && s > 0) {
2753
2756
  let t = document.createElement("span");
2754
- t.className = "gengage-chat-product-card-discount-badge", t.textContent = `%${oe(s)}`, e.appendChild(t);
2757
+ t.className = "gengage-chat-product-card-discount-badge", t.textContent = `%${se(s)}`, e.appendChild(t);
2755
2758
  }
2756
2759
  let c = document.createElement("div");
2757
2760
  c.className = "gengage-chat-product-card-img-actions";
@@ -2801,29 +2804,29 @@ function qt(e, t) {
2801
2804
  let n = r.originalPrice;
2802
2805
  if (n && n !== d) {
2803
2806
  let r = document.createElement("span");
2804
- r.className = "gengage-chat-product-card-current-price", r.textContent = U(d, t.pricing);
2807
+ r.className = "gengage-chat-product-card-current-price", r.textContent = H(d, t.pricing);
2805
2808
  let i = document.createElement("span");
2806
- i.className = "gengage-chat-product-card-original-price", i.textContent = U(n, t.pricing);
2809
+ i.className = "gengage-chat-product-card-original-price", i.textContent = H(n, t.pricing);
2807
2810
  let a = document.createDocumentFragment();
2808
2811
  a.appendChild(r), a.appendChild(document.createTextNode(" ")), a.appendChild(i), e.replaceWith(a);
2809
2812
  } else {
2810
2813
  let n = document.createElement("span");
2811
- n.className = "gengage-chat-product-card-current-price", n.textContent = U(d, t.pricing), e.replaceWith(n);
2814
+ n.className = "gengage-chat-product-card-current-price", n.textContent = H(d, t.pricing), e.replaceWith(n);
2812
2815
  }
2813
2816
  } else e.remove();
2814
2817
  }, 300);
2815
2818
  } else if (d && parseFloat(d) > 0) {
2816
2819
  let e = document.createElement("span");
2817
- if (e.className = "gengage-chat-product-card-current-price", e.textContent = U(d, t.pricing), _.appendChild(e), f && f !== d) {
2820
+ if (e.className = "gengage-chat-product-card-current-price", e.textContent = H(d, t.pricing), _.appendChild(e), f && f !== d) {
2818
2821
  _.appendChild(document.createTextNode(" "));
2819
2822
  let e = document.createElement("span");
2820
- e.className = "gengage-chat-product-card-original-price", e.textContent = U(f, t.pricing), _.appendChild(e);
2823
+ e.className = "gengage-chat-product-card-original-price", e.textContent = H(f, t.pricing), _.appendChild(e);
2821
2824
  }
2822
2825
  }
2823
2826
  if ((_.childElementCount > 0 || p === !0) && g.appendChild(_), m) {
2824
2827
  let e = document.createElement("div");
2825
2828
  e.className = "gengage-chat-product-card-rating gengage-chat-product-card-rating-compact";
2826
- let t = se(l), n = [`${t.toFixed(1)}`, "out of 5 stars"];
2829
+ let t = ce(l), n = [`${t.toFixed(1)}`, "out of 5 stars"];
2827
2830
  typeof u == "number" && Number.isFinite(u) && n.push(`(${u} reviews)`), e.setAttribute("aria-label", n.join(" "));
2828
2831
  let r = document.createElement("span");
2829
2832
  r.className = "gengage-chat-product-card-rating-compact-star", r.setAttribute("aria-hidden", "true"), r.innerHTML = "<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3.6l2.58 5.23 5.77.84-4.17 4.07.98 5.75L12 16.78l-5.16 2.71.99-5.75L3.66 9.67l5.76-.84L12 3.6z\"/></svg>";
@@ -2867,7 +2870,7 @@ function qt(e, t) {
2867
2870
  }
2868
2871
  t.onAction(a);
2869
2872
  }), n.appendChild(e);
2870
- } else if (b && H(b)) {
2873
+ } else if (b && V(b)) {
2871
2874
  let e = document.createElement("a");
2872
2875
  e.className = "gengage-chat-product-card-cta", h(e, "href", b), h(e, "target", "_blank"), h(e, "rel", "noopener noreferrer"), e.textContent = w, e.addEventListener("click", (e) => {
2873
2876
  if (n.parentElement?.classList.contains("gengage-chat-comparison-select-wrapper")) {
@@ -2902,28 +2905,28 @@ function qt(e, t) {
2902
2905
  }
2903
2906
  return n;
2904
2907
  }
2905
- var Jt = new Set([
2908
+ var Yt = new Set([
2906
2909
  "color",
2907
2910
  "colour",
2908
2911
  "renk",
2909
2912
  "renk kodu",
2910
2913
  "color code"
2911
- ]), Yt = new Set([
2914
+ ]), Xt = new Set([
2912
2915
  "size",
2913
2916
  "beden",
2914
2917
  "boyut"
2915
- ]), Xt = new Set([
2918
+ ]), Zt = new Set([
2916
2919
  "finish",
2917
2920
  "bitiş",
2918
2921
  "bitişi"
2919
- ]), Zt = [
2922
+ ]), Qt = [
2920
2923
  "variants",
2921
2924
  "variantOptions",
2922
2925
  "variant_options",
2923
2926
  "productVariants",
2924
2927
  "product_variants",
2925
2928
  "options"
2926
- ], Qt = new Set([
2929
+ ], $t = new Set([
2927
2930
  "H2",
2928
2931
  "H3",
2929
2932
  "H4",
@@ -2936,7 +2939,7 @@ var Jt = new Set([
2936
2939
  "B",
2937
2940
  "EM",
2938
2941
  "I"
2939
- ]), $t = new Set([
2942
+ ]), en = new Set([
2940
2943
  "SCRIPT",
2941
2944
  "STYLE",
2942
2945
  "NOSCRIPT",
@@ -2944,7 +2947,7 @@ var Jt = new Set([
2944
2947
  "OBJECT",
2945
2948
  "EMBED"
2946
2949
  ]);
2947
- function q(e, ...t) {
2950
+ function K(e, ...t) {
2948
2951
  for (let n of t) {
2949
2952
  let t = e[n];
2950
2953
  if (typeof t == "string") {
@@ -2953,7 +2956,7 @@ function q(e, ...t) {
2953
2956
  }
2954
2957
  }
2955
2958
  }
2956
- function en(e, ...t) {
2959
+ function tn(e, ...t) {
2957
2960
  for (let n of t) {
2958
2961
  let t = e[n];
2959
2962
  if (typeof t == "number" && Number.isFinite(t)) return t;
@@ -2963,44 +2966,44 @@ function en(e, ...t) {
2963
2966
  }
2964
2967
  }
2965
2968
  }
2966
- function tn(e, ...t) {
2969
+ function nn(e, ...t) {
2967
2970
  for (let n of t) {
2968
2971
  let t = e[n];
2969
2972
  if (typeof t == "boolean") return t;
2970
2973
  }
2971
2974
  }
2972
- function nn(e, ...t) {
2975
+ function rn(e, ...t) {
2973
2976
  for (let n of t) {
2974
2977
  let t = e[n];
2975
2978
  if (t && typeof t == "object" && !Array.isArray(t)) return t;
2976
2979
  }
2977
2980
  }
2978
- function rn(e) {
2981
+ function an(e) {
2979
2982
  return Array.isArray(e) ? e.filter((e) => typeof e == "string" && e.trim().length > 0) : [];
2980
2983
  }
2981
- function an(e) {
2982
- let t = [...rn(e.images), q(e, "imageUrl", "image_url", "image")].filter((e) => !!e && H(e));
2984
+ function on(e) {
2985
+ let t = [...an(e.images), K(e, "imageUrl", "image_url", "image")].filter((e) => !!e && V(e));
2983
2986
  return Array.from(new Set(t));
2984
2987
  }
2985
- function on(e) {
2988
+ function sn(e) {
2986
2989
  return typeof DOMParser < "u" ? (new DOMParser().parseFromString(e, "text/html").body.textContent ?? "").replace(/\s+/g, " ").trim() : e.replace(/<[^>]*>/g, " ").replace(/\s+/g, " ").trim();
2987
2990
  }
2988
- function sn(e) {
2989
- let t = q(e, "description_html", "descriptionHtml");
2991
+ function cn(e) {
2992
+ let t = K(e, "description_html", "descriptionHtml");
2990
2993
  if (t) {
2991
- let e = on(t);
2994
+ let e = sn(t);
2992
2995
  if (e) return {
2993
2996
  text: e,
2994
2997
  html: t
2995
2998
  };
2996
2999
  }
2997
- let n = q(e, "description");
3000
+ let n = K(e, "description");
2998
3001
  return n ? { text: n } : void 0;
2999
3002
  }
3000
- function cn(e) {
3003
+ function ln(e) {
3001
3004
  return Array.isArray(e) ? e.map((e) => {
3002
3005
  if (!e || typeof e != "object") return null;
3003
- let t = e, n = q(t, "key", "name", "label", "title"), r = t.value, i = typeof r == "string" || typeof r == "number" || typeof r == "boolean" ? String(r).trim() : void 0;
3006
+ let t = e, n = K(t, "key", "name", "label", "title"), r = t.value, i = typeof r == "string" || typeof r == "number" || typeof r == "boolean" ? String(r).trim() : void 0;
3004
3007
  return !n || !i ? null : {
3005
3008
  key: n,
3006
3009
  value: i
@@ -3013,98 +3016,98 @@ function cn(e) {
3013
3016
  };
3014
3017
  }).filter((e) => e !== null) : [];
3015
3018
  }
3016
- function ln(e) {
3017
- let t = cn(e.features);
3018
- return t.length > 0 ? t : cn(e.specifications);
3019
- }
3020
3019
  function un(e) {
3021
- let t = e.specifications, n = cn(t);
3020
+ let t = ln(e.features);
3021
+ return t.length > 0 ? t : ln(e.specifications);
3022
+ }
3023
+ function dn(e) {
3024
+ let t = e.specifications, n = ln(t);
3022
3025
  if (n.length > 0) return Array.isArray(t) ? n : Object.fromEntries(n.map((e) => [e.key, e.value]));
3023
- let r = cn(e.features);
3026
+ let r = ln(e.features);
3024
3027
  return r.length > 0 ? r : void 0;
3025
3028
  }
3026
- function J(e, ...t) {
3027
- return q(e, ...t);
3028
- }
3029
- function dn(e, ...t) {
3030
- return en(e, ...t);
3029
+ function q(e, ...t) {
3030
+ return K(e, ...t);
3031
3031
  }
3032
- function fn(e) {
3033
- return J(e, "value", "option_value", "attribute_value", "label", "title", "name", "variant_name", "sku");
3032
+ function fn(e, ...t) {
3033
+ return tn(e, ...t);
3034
3034
  }
3035
3035
  function pn(e) {
3036
- return J(e, "type", "attribute", "option_name", "attribute_name") || (J(e, "value") ? J(e, "name", "variant_name") : void 0);
3036
+ return q(e, "value", "option_value", "attribute_value", "label", "title", "name", "variant_name", "sku");
3037
3037
  }
3038
3038
  function mn(e) {
3039
- let t = pn(e)?.toLowerCase();
3040
- return !!(q(e, "color", "colour", "color_hex", "hex", "swatch", "swatchColor") || t && Jt.has(t));
3039
+ return q(e, "type", "attribute", "option_name", "attribute_name") || (q(e, "value") ? q(e, "name", "variant_name") : void 0);
3041
3040
  }
3042
3041
  function hn(e) {
3042
+ let t = mn(e)?.toLowerCase();
3043
+ return !!(K(e, "color", "colour", "color_hex", "hex", "swatch", "swatchColor") || t && Yt.has(t));
3044
+ }
3045
+ function gn(e) {
3043
3046
  if (!e) return;
3044
3047
  let t = e.trim();
3045
3048
  if (!(!t || t.includes(";")) && (typeof CSS < "u" && CSS.supports?.("color", t) || /^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(t))) return t;
3046
3049
  }
3047
- function gn(e) {
3048
- let t = hn(J(e, "swatchColor", "swatch", "color_hex", "hex", "color", "colour"));
3049
- if (t) return t;
3050
- if (mn(e)) return hn(fn(e));
3051
- }
3052
3050
  function _n(e) {
3053
- return J(e, "image", "imageUrl", "image_url", "swatchImage", "swatch_image");
3051
+ let t = gn(q(e, "swatchColor", "swatch", "color_hex", "hex", "color", "colour"));
3052
+ if (t) return t;
3053
+ if (hn(e)) return gn(pn(e));
3054
3054
  }
3055
3055
  function vn(e) {
3056
- return dn(e, "price_discounted", "priceDiscounted") ?? J(e, "price_discounted", "priceDiscounted") ?? dn(e, "price") ?? J(e, "price");
3056
+ return q(e, "image", "imageUrl", "image_url", "swatchImage", "swatch_image");
3057
3057
  }
3058
3058
  function yn(e) {
3059
- let t = e.trim().toLowerCase();
3060
- return Jt.has(t) || Yt.has(t) || Xt.has(t);
3059
+ return fn(e, "price_discounted", "priceDiscounted") ?? q(e, "price_discounted", "priceDiscounted") ?? fn(e, "price") ?? q(e, "price");
3061
3060
  }
3062
3061
  function bn(e) {
3063
3062
  let t = e.trim().toLowerCase();
3064
- return t === "renk kodu" ? "Renk" : t === "color code" ? "Color" : e.trim();
3063
+ return Yt.has(t) || Xt.has(t) || Zt.has(t);
3065
3064
  }
3066
3065
  function xn(e) {
3067
- for (let t of Zt) {
3066
+ let t = e.trim().toLowerCase();
3067
+ return t === "renk kodu" ? "Renk" : t === "color code" ? "Color" : e.trim();
3068
+ }
3069
+ function Sn(e) {
3070
+ for (let t of Qt) {
3068
3071
  let n = e[t];
3069
3072
  if (!Array.isArray(n)) continue;
3070
3073
  let r = n.filter((e) => !!e && typeof e == "object" && !Array.isArray(e));
3071
3074
  if (r.length > 0) return r;
3072
3075
  }
3073
3076
  }
3074
- function Sn(e) {
3075
- let t = xn(e);
3077
+ function Cn(e) {
3078
+ let t = Sn(e);
3076
3079
  if (t) return t;
3077
- let n = q(e, "sku"), r = tn(e, "inStock", "in_stock"), i = [], a = /* @__PURE__ */ new Set(), o = (e, t) => {
3078
- if (!yn(e) || typeof t != "string" && typeof t != "number" && typeof t != "boolean") return;
3080
+ let n = K(e, "sku"), r = nn(e, "inStock", "in_stock"), i = [], a = /* @__PURE__ */ new Set(), o = (e, t) => {
3081
+ if (!bn(e) || typeof t != "string" && typeof t != "number" && typeof t != "boolean") return;
3079
3082
  let o = String(t).trim();
3080
3083
  if (!o) return;
3081
- let s = bn(e), c = `${s.toLowerCase()}:${o.toLowerCase()}`;
3084
+ let s = xn(e), c = `${s.toLowerCase()}:${o.toLowerCase()}`;
3082
3085
  a.has(c) || (a.add(c), i.push({
3083
3086
  name: s,
3084
3087
  value: o,
3085
3088
  sku: n,
3086
3089
  inStock: r
3087
3090
  }));
3088
- }, s = nn(e, "facetHits", "facet_hits");
3091
+ }, s = rn(e, "facetHits", "facet_hits");
3089
3092
  if (s) for (let [e, t] of Object.entries(s)) o(e, t);
3090
- for (let t of ln(e)) o(t.key, t.value);
3093
+ for (let t of un(e)) o(t.key, t.value);
3091
3094
  return i;
3092
3095
  }
3093
- function Cn(e, t) {
3094
- let n = Array.from(new Set(e.map(pn).filter((e) => !!e)));
3096
+ function wn(e, t) {
3097
+ let n = Array.from(new Set(e.map(mn).filter((e) => !!e)));
3095
3098
  return n.length === 1 ? `${e.length} ${n[0]}` : t.i18n?.variantsLabel ?? "Variants";
3096
3099
  }
3097
- function wn(e, t) {
3100
+ function Tn(e, t) {
3098
3101
  let n = document.createElement("article");
3099
3102
  n.className = "gengage-chat-product-details-panel";
3100
3103
  let r = e.props?.product ?? e.props;
3101
3104
  if (!r) return n;
3102
- let i = q(r, "name"), a = q(r, "brand"), o = q(r, "sku"), s = q(r, "cartCode", "cart_code"), c = q(r, "price"), l = q(r, "originalPrice", "price_original"), u = tn(r, "price_async"), d = tn(r, "inStock", "in_stock"), f = en(r, "reviewCount", "review_count"), p = en(r, "rating"), m = an(r), g = ln(r).slice(0, 4);
3105
+ let i = K(r, "name"), a = K(r, "brand"), o = K(r, "sku"), s = K(r, "cartCode", "cart_code"), c = K(r, "price"), l = K(r, "originalPrice", "price_original"), u = nn(r, "price_async"), d = nn(r, "inStock", "in_stock"), f = tn(r, "reviewCount", "review_count"), p = tn(r, "rating"), m = on(r), g = un(r).slice(0, 4);
3103
3106
  if (m.length > 1) {
3104
3107
  let e = document.createElement("div");
3105
3108
  e.className = "gengage-chat-product-details-media gengage-chat-product-details-gallery gengage-chat-product-details-img-wrap";
3106
3109
  let r = document.createElement("img");
3107
- r.className = "gengage-chat-product-details-img", h(r, "src", m[0]), r.alt = i ?? "Product image", W(r), e.appendChild(r);
3110
+ r.className = "gengage-chat-product-details-img", h(r, "src", m[0]), r.alt = i ?? "Product image", U(r), e.appendChild(r);
3108
3111
  let a = document.createElement("div");
3109
3112
  a.className = "gengage-chat-product-gallery-thumbs";
3110
3113
  let o = null, s = 0, c = t.i18n, l = c?.galleryPrevAriaLabel ?? "Previous image", u = c?.galleryNextAriaLabel ?? "Next image", d = (e) => e === "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>", f = document.createElement("button");
@@ -3125,7 +3128,7 @@ function wn(e, t) {
3125
3128
  let t = m[e];
3126
3129
  if (e >= 6) break;
3127
3130
  let n = document.createElement("img");
3128
- n.className = "gengage-chat-product-gallery-thumb", e === 0 && (n.classList.add("gengage-chat-product-gallery-thumb--active"), o = n), h(n, "src", t), n.alt = `${i ?? "Product"} ${e + 1}`, n.width = 48, n.height = 48, W(n), n.addEventListener("click", () => {
3131
+ n.className = "gengage-chat-product-gallery-thumb", e === 0 && (n.classList.add("gengage-chat-product-gallery-thumb--active"), o = n), h(n, "src", t), n.alt = `${i ?? "Product"} ${e + 1}`, n.width = 48, n.height = 48, U(n), n.addEventListener("click", () => {
3129
3132
  _(e);
3130
3133
  }), a.appendChild(n);
3131
3134
  }
@@ -3149,7 +3152,7 @@ function wn(e, t) {
3149
3152
  let e = document.createElement("div");
3150
3153
  e.className = "gengage-chat-product-details-media gengage-chat-product-details-img-wrap";
3151
3154
  let t = document.createElement("img");
3152
- t.className = "gengage-chat-product-details-img", t.loading = "lazy", h(t, "src", m[0]), W(t), t.alt = i ?? "Product image", e.appendChild(t), n.appendChild(e);
3155
+ t.className = "gengage-chat-product-details-img", t.loading = "lazy", h(t, "src", m[0]), U(t), t.alt = i ?? "Product image", e.appendChild(t), n.appendChild(e);
3153
3156
  }
3154
3157
  let _ = document.createElement("div");
3155
3158
  if (_.className = "gengage-chat-product-details-content", a && (!i || !i.toLowerCase().startsWith(a.toLowerCase()))) {
@@ -3168,9 +3171,9 @@ function wn(e, t) {
3168
3171
  type: "reviewSummary",
3169
3172
  payload: { sku: o }
3170
3173
  });
3171
- })), e.appendChild(ae(p));
3174
+ })), e.appendChild(oe(p));
3172
3175
  let n = document.createElement("span");
3173
- if (n.className = "gengage-chat-product-details-rating-value", n.textContent = se(p).toFixed(1), e.appendChild(n), typeof f == "number" && Number.isFinite(f)) {
3176
+ if (n.className = "gengage-chat-product-details-rating-value", n.textContent = ce(p).toFixed(1), e.appendChild(n), typeof f == "number" && Number.isFinite(f)) {
3174
3177
  let t = document.createElement("span");
3175
3178
  t.className = "gengage-chat-product-details-review-count", t.textContent = ` (${f})`, e.appendChild(t);
3176
3179
  }
@@ -3183,21 +3186,21 @@ function wn(e, t) {
3183
3186
  n.className = "gengage-chat-price-skeleton", e.appendChild(n), _.appendChild(e), setTimeout(() => {
3184
3187
  if (n.parentElement) if (c && parseFloat(c) > 0) {
3185
3188
  let e = document.createElement("span");
3186
- e.className = "gengage-chat-product-details-current-price", e.textContent = U(c, t.pricing), n.replaceWith(e);
3189
+ e.className = "gengage-chat-product-details-current-price", e.textContent = H(c, t.pricing), n.replaceWith(e);
3187
3190
  } else n.remove();
3188
3191
  }, 300);
3189
3192
  } else if (c && parseFloat(c) > 0) {
3190
3193
  let e = document.createElement("div");
3191
3194
  if (e.className = "gengage-chat-product-details-price", l && l !== c) {
3192
3195
  let n = document.createElement("span");
3193
- n.className = "gengage-chat-product-details-original-price", n.textContent = U(l, t.pricing), e.appendChild(n), e.appendChild(document.createTextNode(" "));
3196
+ n.className = "gengage-chat-product-details-original-price", n.textContent = H(l, t.pricing), e.appendChild(n), e.appendChild(document.createTextNode(" "));
3194
3197
  }
3195
3198
  let n = document.createElement("span");
3196
- n.className = "gengage-chat-product-details-current-price", n.textContent = U(c, t.pricing), e.appendChild(n);
3197
- let i = en(r, "discountPercent", "price_discount_rate");
3199
+ n.className = "gengage-chat-product-details-current-price", n.textContent = H(c, t.pricing), e.appendChild(n);
3200
+ let i = tn(r, "discountPercent", "price_discount_rate");
3198
3201
  if (typeof i == "number" && i > 0) {
3199
3202
  let t = document.createElement("span");
3200
- t.className = "gengage-chat-product-details-discount-badge", t.textContent = `%${oe(i)}`, e.appendChild(t);
3203
+ t.className = "gengage-chat-product-details-discount-badge", t.textContent = `%${se(i)}`, e.appendChild(t);
3201
3204
  }
3202
3205
  _.appendChild(e);
3203
3206
  }
@@ -3229,37 +3232,37 @@ function wn(e, t) {
3229
3232
  }
3230
3233
  _.appendChild(e);
3231
3234
  }
3232
- let y = Sn(r);
3235
+ let y = Cn(r);
3233
3236
  if (y.length > 0) {
3234
3237
  let e = document.createElement("div");
3235
3238
  e.className = "gengage-chat-product-variants";
3236
3239
  let n = document.createElement("div");
3237
- n.className = "gengage-chat-product-variants-label", n.textContent = Cn(y, t), e.appendChild(n);
3240
+ n.className = "gengage-chat-product-variants-label", n.textContent = wn(y, t), e.appendChild(n);
3238
3241
  let r = document.createElement("div");
3239
3242
  r.className = "gengage-chat-product-variants-list";
3240
3243
  for (let e of y) {
3241
- let n = fn(e), a = J(e, "sku");
3244
+ let n = pn(e), a = q(e, "sku");
3242
3245
  if (!n && !a) continue;
3243
3246
  let s = document.createElement("button");
3244
3247
  s.className = "gengage-chat-product-variant-btn gds-chip", s.type = "button";
3245
3248
  let l = n ?? a ?? "";
3246
3249
  s.title = l;
3247
- let u = tn(e, "in_stock", "inStock");
3250
+ let u = nn(e, "in_stock", "inStock");
3248
3251
  a && o && a === o ? (s.classList.add("gengage-chat-product-variant-btn--active"), s.setAttribute("aria-pressed", "true")) : s.setAttribute("aria-pressed", "false"), u === !1 && (s.classList.add("gengage-chat-product-variant-btn--out"), s.disabled = !0);
3249
- let d = _n(e), f = gn(e);
3250
- if (d && H(d)) {
3252
+ let d = vn(e), f = _n(e);
3253
+ if (d && V(d)) {
3251
3254
  let e = document.createElement("img");
3252
- e.className = "gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image", h(e, "src", d), e.alt = "", e.setAttribute("aria-hidden", "true"), W(e), s.appendChild(e);
3255
+ e.className = "gengage-chat-product-variant-swatch gengage-chat-product-variant-swatch--image", h(e, "src", d), e.alt = "", e.setAttribute("aria-hidden", "true"), U(e), s.appendChild(e);
3253
3256
  } else if (f) {
3254
3257
  let e = document.createElement("span");
3255
3258
  e.className = "gengage-chat-product-variant-swatch", e.setAttribute("aria-hidden", "true"), e.style.backgroundColor = f, s.appendChild(e);
3256
3259
  }
3257
3260
  let p = document.createElement("span");
3258
3261
  p.className = "gengage-chat-product-variant-label", p.textContent = l, s.appendChild(p);
3259
- let m = vn(e);
3262
+ let m = yn(e);
3260
3263
  if (m && String(m) !== String(c)) {
3261
3264
  let e = document.createElement("span");
3262
- e.className = "gengage-chat-product-variant-price", e.textContent = U(String(m), t.pricing), s.appendChild(e);
3265
+ e.className = "gengage-chat-product-variant-price", e.textContent = H(String(m), t.pricing), s.appendChild(e);
3263
3266
  }
3264
3267
  if (a && a !== o) {
3265
3268
  let n = i ?? "", r = (typeof e.value == "string" ? e.value.trim() : "") || (typeof e.name == "string" ? e.name.trim() : "") || (typeof e.variant_name == "string" ? e.variant_name.trim() : "") || "", o = n.length > 0 ? r.length > 0 && r !== n ? `${n} (${r})` : n : l;
@@ -3296,8 +3299,8 @@ function wn(e, t) {
3296
3299
  });
3297
3300
  }), b.appendChild(e);
3298
3301
  }
3299
- let S = q(r, "url");
3300
- if (!x && S && H(S)) {
3302
+ let S = K(r, "url");
3303
+ if (!x && S && V(S)) {
3301
3304
  let e = document.createElement("a");
3302
3305
  e.className = "gengage-chat-product-details-cta gds-btn gds-btn-secondary", h(e, "href", S), h(e, "target", "_blank"), h(e, "rel", "noopener noreferrer"), e.textContent = t.i18n?.viewOnSiteLabel ?? t.i18n?.productCtaLabel ?? "View on Site", e.addEventListener("click", (e) => {
3303
3306
  t.onProductClick && o && (e.preventDefault(), t.onProductClick({
@@ -3307,7 +3310,7 @@ function wn(e, t) {
3307
3310
  }), b.appendChild(e);
3308
3311
  }
3309
3312
  let C = S;
3310
- if (C && H(C)) {
3313
+ if (C && V(C)) {
3311
3314
  let e = document.createElement("button");
3312
3315
  e.className = "gengage-chat-product-details-share gds-btn gds-btn-ghost gds-icon-btn", e.type = "button";
3313
3316
  let n = t.i18n?.shareButton ?? "Share";
@@ -3332,47 +3335,47 @@ function wn(e, t) {
3332
3335
  }), b.appendChild(e);
3333
3336
  }
3334
3337
  b.childElementCount > 0 && _.appendChild(b), n.appendChild(_);
3335
- let w = sn(r), T = un(r);
3336
- return (w || T) && n.appendChild(On(w, T, t)), n;
3338
+ let w = cn(r), T = dn(r);
3339
+ return (w || T) && n.appendChild(kn(w, T, t)), n;
3337
3340
  }
3338
- function Tn(e) {
3341
+ function En(e) {
3339
3342
  if (e.nodeType === Node.TEXT_NODE) return document.createTextNode(e.textContent ?? "");
3340
3343
  if (e.nodeType !== Node.ELEMENT_NODE) return null;
3341
3344
  let t = e, n = t.tagName.toUpperCase();
3342
- if ($t.has(n)) return null;
3343
- if (!Qt.has(n)) {
3345
+ if (en.has(n)) return null;
3346
+ if (!$t.has(n)) {
3344
3347
  let e = document.createDocumentFragment();
3345
3348
  for (let n of Array.from(t.childNodes)) {
3346
- let t = Tn(n);
3349
+ let t = En(n);
3347
3350
  t && e.appendChild(t);
3348
3351
  }
3349
3352
  return e;
3350
3353
  }
3351
3354
  let r = document.createElement(n.toLowerCase());
3352
3355
  for (let e of Array.from(t.childNodes)) {
3353
- let t = Tn(e);
3356
+ let t = En(e);
3354
3357
  t && r.appendChild(t);
3355
3358
  }
3356
3359
  return r;
3357
3360
  }
3358
- function En(e, t) {
3361
+ function Dn(e, t) {
3359
3362
  let n = t.split(/\n{2,}/).map((e) => e.replace(/\s+/g, " ").trim()).filter(Boolean);
3360
3363
  if (n.length !== 0) for (let t of n) {
3361
3364
  let n = document.createElement("p");
3362
3365
  n.textContent = t, e.appendChild(n);
3363
3366
  }
3364
3367
  }
3365
- function Dn(e, t) {
3368
+ function On(e, t) {
3366
3369
  if (e.classList.add("gengage-chat-product-description"), t.html && typeof DOMParser < "u") {
3367
- let n = new DOMParser().parseFromString(t.html, "text/html"), r = Array.from(n.body.childNodes).map((e) => Tn(e)).filter((e) => !!e && (e.nodeType === Node.ELEMENT_NODE || !!e.textContent?.trim()));
3370
+ let n = new DOMParser().parseFromString(t.html, "text/html"), r = Array.from(n.body.childNodes).map((e) => En(e)).filter((e) => !!e && (e.nodeType === Node.ELEMENT_NODE || !!e.textContent?.trim()));
3368
3371
  if (r.length > 0) {
3369
3372
  for (let t of r) e.appendChild(t);
3370
3373
  return;
3371
3374
  }
3372
3375
  }
3373
- En(e, t.text);
3376
+ Dn(e, t.text);
3374
3377
  }
3375
- function On(e, t, n) {
3378
+ function kn(e, t, n) {
3376
3379
  let r = document.createElement("div");
3377
3380
  r.className = "gengage-chat-product-detail-tabs";
3378
3381
  let i = document.createElement("div");
@@ -3382,7 +3385,7 @@ function On(e, t, n) {
3382
3385
  let t = document.createElement("button");
3383
3386
  t.className = "gengage-chat-product-detail-tab gds-tab gengage-chat-product-detail-tab--active is-active", t.type = "button", t.setAttribute("aria-selected", "true"), t.textContent = n.i18n?.productInfoTab ?? "Product Info", i.appendChild(t);
3384
3387
  let r = document.createElement("div");
3385
- r.className = "gengage-chat-product-detail-tab-panel", Dn(r, e), a.push(r);
3388
+ r.className = "gengage-chat-product-detail-tab-panel", On(r, e), a.push(r);
3386
3389
  }
3387
3390
  if (t) {
3388
3391
  let r = document.createElement("button");
@@ -3416,7 +3419,7 @@ function On(e, t, n) {
3416
3419
  for (let e of a) r.appendChild(e);
3417
3420
  return r;
3418
3421
  }
3419
- function kn(e) {
3422
+ function An(e) {
3420
3423
  let t = "width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"";
3421
3424
  switch (e) {
3422
3425
  case "related": return `<svg ${t} aria-hidden="true"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg>`;
@@ -3425,19 +3428,19 @@ function kn(e) {
3425
3428
  default: return "";
3426
3429
  }
3427
3430
  }
3428
- function An() {
3431
+ function jn() {
3429
3432
  return "<svg class=\"gengage-chat-product-sort-chevron\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"/></svg>";
3430
3433
  }
3431
- function jn() {
3434
+ function Mn() {
3432
3435
  return "<svg class=\"gengage-chat-product-sort-check\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"/></svg>";
3433
3436
  }
3434
- function Mn() {
3437
+ function Nn() {
3435
3438
  return "<svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M8 3 4 7l4 4\"/><path d=\"M16 21l4-4-4-4\"/><path d=\"M4 7h16\"/><path d=\"M20 17H4\"/></svg>";
3436
3439
  }
3437
- function Nn(e, t) {
3440
+ function Pn(e, t) {
3438
3441
  return e.type === t.type && e.direction === t.direction;
3439
3442
  }
3440
- function Pn(e, t, n) {
3443
+ function Fn(e, t, n) {
3441
3444
  if (!n || n.type === "related") return e;
3442
3445
  let r = e.map((e) => {
3443
3446
  let n = t.elements[e]?.props?.product, r = n ? Number(n.price) : NaN;
@@ -3448,8 +3451,8 @@ function Pn(e, t, n) {
3448
3451
  });
3449
3452
  return r.sort((e, t) => e.price === Infinity && t.price === Infinity ? 0 : e.price === Infinity ? 1 : t.price === Infinity ? -1 : n.direction === "desc" ? t.price - e.price : e.price - t.price), r.map((e) => e.id);
3450
3453
  }
3451
- function Fn(e, t, n, r) {
3452
- let i = Pn(t, n, r), a = /* @__PURE__ */ new Map();
3454
+ function In(e, t, n, r) {
3455
+ let i = Fn(t, n, r), a = /* @__PURE__ */ new Map();
3453
3456
  for (let t of Array.from(e.children)) {
3454
3457
  let e = t.dataset.elementId;
3455
3458
  e && a.set(e, t);
@@ -3459,7 +3462,7 @@ function Fn(e, t, n, r) {
3459
3462
  n && e.appendChild(n);
3460
3463
  }
3461
3464
  }
3462
- function In(e, t, n, r) {
3465
+ function Ln(e, t, n, r) {
3463
3466
  let i = document.createElement("div");
3464
3467
  i.className = "gengage-chat-product-grid-wrapper";
3465
3468
  let a = e.children ?? [], o = document.createElement("div");
@@ -3499,12 +3502,12 @@ function In(e, t, n, r) {
3499
3502
  let p = document.createElement("span");
3500
3503
  p.className = "gengage-chat-product-sort-trigger-label";
3501
3504
  let m = (e) => {
3502
- let t = c.find((t) => Nn(t.sortState, e)) ?? c[0];
3503
- p.textContent = t.label, f.innerHTML = kn(t.icon), l.dataset.sortIcon = t.icon, u.setAttribute("aria-label", `${d}: ${t.label}`), u.title = t.label;
3505
+ let t = c.find((t) => Pn(t.sortState, e)) ?? c[0];
3506
+ p.textContent = t.label, f.innerHTML = An(t.icon), l.dataset.sortIcon = t.icon, u.setAttribute("aria-label", `${d}: ${t.label}`), u.title = t.label;
3504
3507
  };
3505
3508
  m(n);
3506
3509
  let h = document.createElement("span");
3507
- h.className = "gengage-chat-product-sort-trigger-chevron", h.innerHTML = An(), u.appendChild(f), u.appendChild(p), u.appendChild(h);
3510
+ h.className = "gengage-chat-product-sort-trigger-chevron", h.innerHTML = jn(), u.appendChild(f), u.appendChild(p), u.appendChild(h);
3508
3511
  let g = document.createElement("div");
3509
3512
  g.className = "gengage-chat-product-sort-menu gds-menu", g.hidden = !0, g.setAttribute("role", "listbox"), g.setAttribute("aria-label", d);
3510
3513
  let _ = e.ownerDocument, v = null, y = () => {
@@ -3527,17 +3530,17 @@ function In(e, t, n, r) {
3527
3530
  for (let e of c) {
3528
3531
  let i = document.createElement("button");
3529
3532
  i.type = "button", i.className = "gengage-chat-product-sort-option gds-menu-option", i.setAttribute("role", "option");
3530
- let s = Nn(n, e.sortState);
3533
+ let s = Pn(n, e.sortState);
3531
3534
  i.setAttribute("aria-selected", s ? "true" : "false"), s && i.classList.add("gengage-chat-product-sort-option--active", "gds-menu-option-active");
3532
3535
  let c = e.sortState.type === "related" ? "related" : `price-${e.sortState.direction ?? ""}`;
3533
3536
  i.dataset.sortKey = c;
3534
3537
  let l = document.createElement("span");
3535
- l.className = "gengage-chat-product-sort-option-icon", l.innerHTML = kn(e.icon);
3538
+ l.className = "gengage-chat-product-sort-option-icon", l.innerHTML = An(e.icon);
3536
3539
  let u = document.createElement("span");
3537
3540
  u.className = "gengage-chat-product-sort-option-label", u.textContent = e.label;
3538
3541
  let d = document.createElement("span");
3539
- d.className = "gengage-chat-product-sort-option-check", d.innerHTML = jn(), d.setAttribute("aria-hidden", "true"), s || d.classList.add("gengage-chat-product-sort-option-check--hidden"), i.appendChild(l), i.appendChild(u), i.appendChild(d), i.addEventListener("click", () => {
3540
- n = e.sortState, r.onSortChange?.(e.sortState), Fn(o, a, t, e.sortState), g.querySelectorAll(".gengage-chat-product-sort-option").forEach((e) => {
3542
+ d.className = "gengage-chat-product-sort-option-check", d.innerHTML = Mn(), d.setAttribute("aria-hidden", "true"), s || d.classList.add("gengage-chat-product-sort-option-check--hidden"), i.appendChild(l), i.appendChild(u), i.appendChild(d), i.addEventListener("click", () => {
3543
+ n = e.sortState, r.onSortChange?.(e.sortState), In(o, a, t, e.sortState), g.querySelectorAll(".gengage-chat-product-sort-option").forEach((e) => {
3541
3544
  let t = e, n = t.dataset.sortKey === c;
3542
3545
  t.classList.toggle("gengage-chat-product-sort-option--active", n), t.classList.toggle("gds-menu-option-active", n), t.setAttribute("aria-selected", n ? "true" : "false"), t.querySelector(".gengage-chat-product-sort-option-check")?.classList.toggle("gengage-chat-product-sort-option-check--hidden", !n);
3543
3546
  }), m(e.sortState), y();
@@ -3547,7 +3550,7 @@ function In(e, t, n, r) {
3547
3550
  let t = document.createElement("button");
3548
3551
  t.className = "gengage-chat-comparison-toggle-btn gds-btn gds-btn-ghost", t.type = "button", r.comparisonSelectMode && t.classList.add("gengage-chat-comparison-toggle-btn--active"), r.isStreaming && t.classList.add("gengage-chat-comparison-toggle-btn--hidden");
3549
3552
  let n = document.createElement("span");
3550
- n.className = "gengage-chat-comparison-toggle-icon", n.innerHTML = Mn();
3553
+ n.className = "gengage-chat-comparison-toggle-icon", n.innerHTML = Nn();
3551
3554
  let i = document.createElement("span");
3552
3555
  i.className = "gengage-chat-comparison-toggle-label";
3553
3556
  let a = r.i18n?.compareSelected ?? "Compare";
@@ -3570,13 +3573,13 @@ function In(e, t, n, r) {
3570
3573
  let t = document.createElement("span");
3571
3574
  t.className = "gengage-chat-product-grid-head-title", t.textContent = s, e.appendChild(t), i.appendChild(e);
3572
3575
  }
3573
- let c = Pn(a, t, r?.productSort);
3576
+ let c = Fn(a, t, r?.productSort);
3574
3577
  for (let e of c) {
3575
3578
  if (!t.elements[e]) continue;
3576
3579
  let r = n(e);
3577
3580
  r && (r.dataset.elementId = e, o.appendChild(r));
3578
3581
  }
3579
- if ((r?.isMobile ?? Bt()) && o.classList.add("gengage-chat-product-grid--mobile"), i.appendChild(o), e.props?.endOfList !== !0 && a.length > 0) {
3582
+ if ((r?.isMobile ?? Vt()) && o.classList.add("gengage-chat-product-grid--mobile"), i.appendChild(o), e.props?.endOfList !== !0 && a.length > 0) {
3580
3583
  let e = r?.i18n?.viewMoreLabel ?? "Show More", t = document.createElement("button");
3581
3584
  t.className = "gengage-chat-product-grid-view-more", t.type = "button", t.textContent = e, t.addEventListener("click", () => {
3582
3585
  r?.onAction({
@@ -3586,14 +3589,14 @@ function In(e, t, n, r) {
3586
3589
  });
3587
3590
  }), i.appendChild(t);
3588
3591
  }
3589
- let l = r?.isMobile ?? Bt();
3592
+ let l = r?.isMobile ?? Vt();
3590
3593
  if (r?.comparisonSelectMode && r.comparisonSelectedSkus && !l) {
3591
- let e = Pt(r.comparisonSelectedSkus, r);
3594
+ let e = Ft(r.comparisonSelectedSkus, r);
3592
3595
  i.appendChild(e);
3593
3596
  }
3594
3597
  return i;
3595
3598
  }
3596
- function Ln(e, t) {
3599
+ function Rn(e, t) {
3597
3600
  let n = e.props ?? {}, r = n.keyDifferencesHtml, i = n.recommended, a = n.products ?? [], o = n.attributes ?? [], s = n.highlights ?? [], c = n.specialCases, l = n.recommendedText, u = n.winnerHits, d = n.productActions;
3598
3601
  if (!i) return document.createElement("div");
3599
3602
  let f = {
@@ -3620,10 +3623,10 @@ function Ln(e, t) {
3620
3623
  specialCasesLabel: t.i18n.specialCasesLabel,
3621
3624
  addToCartButton: t.i18n.addToCartButton
3622
3625
  });
3623
- let p = at(f);
3624
- return (t.isMobile ?? Bt()) && p.classList.add("gengage-chat-comparison--mobile"), p;
3626
+ let p = ot(f);
3627
+ return (t.isMobile ?? Vt()) && p.classList.add("gengage-chat-comparison--mobile"), p;
3625
3628
  }
3626
- function Rn(e) {
3629
+ function zn(e) {
3627
3630
  let t = document.createElement("hr");
3628
3631
  t.className = "gengage-chat-divider";
3629
3632
  let n = e.props?.label;
@@ -3639,7 +3642,7 @@ function Rn(e) {
3639
3642
  }
3640
3643
  //#endregion
3641
3644
  //#region src/chat/components/typewriter.ts
3642
- var zn = new Set([
3645
+ var Bn = new Set([
3643
3646
  "P",
3644
3647
  "DIV",
3645
3648
  "H1",
@@ -3662,23 +3665,23 @@ var zn = new Set([
3662
3665
  "DT",
3663
3666
  "DD"
3664
3667
  ]);
3665
- function Bn(e) {
3668
+ function Vn(e) {
3666
3669
  let t = [], n = [];
3667
- for (let r of e) r.nodeType === Node.ELEMENT_NODE && zn.has(r.tagName) ? (n.length > 0 && (t.push(n), n = []), t.push([r])) : n.push(r);
3670
+ for (let r of e) r.nodeType === Node.ELEMENT_NODE && Bn.has(r.tagName) ? (n.length > 0 && (t.push(n), n = []), t.push([r])) : n.push(r);
3668
3671
  return n.length > 0 && t.push(n), t;
3669
3672
  }
3670
- function Vn(e) {
3673
+ function Hn(e) {
3671
3674
  for (let t of e) for (let e of t) if (e.nodeType === Node.ELEMENT_NODE && (e.tagName === "TABLE" || e.querySelector?.("table"))) return !0;
3672
3675
  return !1;
3673
3676
  }
3674
- function Hn() {
3677
+ function Un() {
3675
3678
  return typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
3676
3679
  }
3677
- function Un(e) {
3680
+ function Wn(e) {
3678
3681
  let { container: t, html: n, delayMs: r = 30, onTick: i, onComplete: a } = e, o = document.createElement("template");
3679
3682
  o.innerHTML = n;
3680
- let s = Bn(o.content.childNodes);
3681
- if (Hn() || s.length <= 1 || Vn(s)) return t.innerHTML = n, a?.(), {
3683
+ let s = Vn(o.content.childNodes);
3684
+ if (Un() || s.length <= 1 || Hn(s)) return t.innerHTML = n, a?.(), {
3682
3685
  complete() {},
3683
3686
  cancel() {},
3684
3687
  isRunning: !1
@@ -3709,10 +3712,10 @@ function Un(e) {
3709
3712
  }
3710
3713
  //#endregion
3711
3714
  //#region src/chat/components/productMentionLinker.ts
3712
- function Wn(e) {
3715
+ function Gn(e) {
3713
3716
  return e !== void 0 && /[\p{L}\p{N}_]/u.test(e);
3714
3717
  }
3715
- function Gn(e) {
3718
+ function Kn(e) {
3716
3719
  let { container: t, mentions: n, onProductClick: r } = e;
3717
3720
  if (n.length === 0) return;
3718
3721
  let i = /* @__PURE__ */ new Map();
@@ -3726,7 +3729,7 @@ function Gn(e) {
3726
3729
  continue;
3727
3730
  }
3728
3731
  let c = s > 0 ? t[s - 1] : void 0, l = t[s + n.short_name.length];
3729
- if (Wn(c) || Wn(l)) {
3732
+ if (Gn(c) || Gn(l)) {
3730
3733
  a = i.nextNode();
3731
3734
  continue;
3732
3735
  }
@@ -3744,25 +3747,25 @@ function Gn(e) {
3744
3747
  }
3745
3748
  //#endregion
3746
3749
  //#region src/chat/components/actionClassifier.ts
3747
- var Kn = new Set([
3750
+ var qn = new Set([
3748
3751
  "search",
3749
3752
  "info",
3750
3753
  "review",
3751
3754
  "similar"
3752
- ]), qn = new Set([
3755
+ ]), Jn = new Set([
3753
3756
  "quickAnswer",
3754
3757
  "reviewSummary",
3755
3758
  "searchDiscovery",
3756
3759
  "launchDiscovery",
3757
3760
  "exploreTogetherV2"
3758
3761
  ]);
3759
- function Jn(e) {
3760
- return !!(e.icon && Kn.has(e.icon) || e.action?.type && qn.has(e.action.type));
3762
+ function Yn(e) {
3763
+ return !!(e.icon && qn.has(e.icon) || e.action?.type && Jn.has(e.action.type));
3761
3764
  }
3762
3765
  //#endregion
3763
3766
  //#region src/chat/components/ChoicePrompter.ts
3764
- var Yn = "gengage_choice_prompter_dismissed", Xn = "gengage_choice_prompter_dismissed_global";
3765
- function Zn(e) {
3767
+ var Xn = "gengage_choice_prompter_dismissed", Zn = "gengage_choice_prompter_dismissed_global";
3768
+ function Qn(e) {
3766
3769
  let t = document.createElement("div");
3767
3770
  t.className = "gengage-chat-choice-prompter gds-card", t.dataset.gengagePart = "choice-prompter";
3768
3771
  let n = document.createElement("div");
@@ -3773,50 +3776,50 @@ function Zn(e) {
3773
3776
  i.className = "gengage-chat-choice-prompter-suggestion", i.textContent = e.suggestion, n.appendChild(i), t.appendChild(n);
3774
3777
  let a = document.createElement("button");
3775
3778
  a.type = "button", a.className = "gengage-chat-choice-prompter-cta gds-btn gds-btn-primary", a.dataset.gengagePart = "choice-prompter-cta", a.textContent = e.ctaLabel, a.addEventListener("click", () => {
3776
- er(e.threadId), t.remove(), e.onCtaClick();
3779
+ tr(e.threadId), t.remove(), e.onCtaClick();
3777
3780
  }), t.appendChild(a);
3778
3781
  let o = document.createElement("button");
3779
3782
  return o.type = "button", o.className = "gengage-chat-choice-prompter-dismiss", o.dataset.gengagePart = "choice-prompter-dismiss", o.textContent = "×", o.setAttribute("aria-label", e.dismissAriaLabel ?? "Dismiss"), o.addEventListener("click", () => {
3780
- er(e.threadId), t.remove(), e.onDismiss?.();
3783
+ tr(e.threadId), t.remove(), e.onDismiss?.();
3781
3784
  }), t.appendChild(o), t;
3782
3785
  }
3783
- function Qn() {
3786
+ function $n() {
3784
3787
  try {
3785
- sessionStorage.removeItem(Yn), sessionStorage.removeItem(Xn);
3788
+ sessionStorage.removeItem(Xn), sessionStorage.removeItem(Zn);
3786
3789
  } catch {}
3787
3790
  }
3788
- function $n(e) {
3791
+ function er(e) {
3789
3792
  try {
3790
- let t = sessionStorage.getItem(Yn);
3793
+ let t = sessionStorage.getItem(Xn);
3791
3794
  return t ? JSON.parse(t).includes(e) : !1;
3792
3795
  } catch {
3793
3796
  return !1;
3794
3797
  }
3795
3798
  }
3796
- function er(e) {
3799
+ function tr(e) {
3797
3800
  try {
3798
- let t = sessionStorage.getItem(Yn), n = t ? JSON.parse(t) : [];
3799
- n.includes(e) || n.push(e), sessionStorage.setItem(Yn, JSON.stringify(n));
3801
+ let t = sessionStorage.getItem(Xn), n = t ? JSON.parse(t) : [];
3802
+ n.includes(e) || n.push(e), sessionStorage.setItem(Xn, JSON.stringify(n));
3800
3803
  } catch {}
3801
3804
  }
3802
- function tr(e) {
3803
- e && er(e);
3805
+ function nr(e) {
3806
+ e && tr(e);
3804
3807
  }
3805
3808
  //#endregion
3806
3809
  //#region src/common/indexed-db.ts
3807
- var nr = "gengage_assistant", rr = 3, Y = "sessions", X = "context", Z = "payload", Q = "favorites";
3808
- function ir(e) {
3810
+ var rr = "gengage_assistant", ir = 3, J = "sessions", Y = "context", X = "payload", Z = "favorites";
3811
+ function ar(e) {
3809
3812
  return new Promise((t, n) => {
3810
3813
  e.onsuccess = () => t(e.result), e.onerror = () => n(e.error);
3811
3814
  });
3812
3815
  }
3813
- function $(e) {
3816
+ function Q(e) {
3814
3817
  return new Promise((t, n) => {
3815
3818
  e.oncomplete = () => t(), e.onerror = () => n(e.error), e.onabort = () => n(e.error ?? new DOMException("Transaction aborted"));
3816
3819
  });
3817
3820
  }
3818
- var ar = class {
3819
- constructor(e = nr, t = rr) {
3821
+ var or = class {
3822
+ constructor(e = rr, t = ir) {
3820
3823
  this._db = null, this._dbName = e, this._version = t;
3821
3824
  }
3822
3825
  async open() {
@@ -3824,19 +3827,19 @@ var ar = class {
3824
3827
  let n = indexedDB.open(this._dbName, this._version);
3825
3828
  n.onupgradeneeded = (e) => {
3826
3829
  let t = n.result, r = e.oldVersion;
3827
- r < 1 && (t.createObjectStore(Y, { keyPath: [
3830
+ r < 1 && (t.createObjectStore(J, { keyPath: [
3828
3831
  "userId",
3829
3832
  "appId",
3830
3833
  "sessionId"
3831
- ] }), t.createObjectStore(X, { keyPath: ["sessionId", "threadId"] }), t.createObjectStore(Z, { keyPath: ["threadId", "messageId"] }).createIndex("threadId", "threadId", { unique: !1 }), t.createObjectStore(Q, { keyPath: [
3834
+ ] }), t.createObjectStore(Y, { keyPath: ["sessionId", "threadId"] }), t.createObjectStore(X, { keyPath: ["threadId", "messageId"] }).createIndex("threadId", "threadId", { unique: !1 }), t.createObjectStore(Z, { keyPath: [
3832
3835
  "userId",
3833
3836
  "appId",
3834
3837
  "sku"
3835
- ] })), r >= 1 && r < 2 && (t.objectStoreNames.contains(Y) && t.deleteObjectStore(Y), t.objectStoreNames.contains(Z) && t.deleteObjectStore(Z), t.createObjectStore(Y, { keyPath: [
3838
+ ] })), r >= 1 && r < 2 && (t.objectStoreNames.contains(J) && t.deleteObjectStore(J), t.objectStoreNames.contains(X) && t.deleteObjectStore(X), t.createObjectStore(J, { keyPath: [
3836
3839
  "userId",
3837
3840
  "appId",
3838
3841
  "sessionId"
3839
- ] }), t.createObjectStore(Z, { keyPath: ["threadId", "messageId"] }).createIndex("threadId", "threadId", { unique: !1 }), t.objectStoreNames.contains(X) || t.createObjectStore(X, { keyPath: ["sessionId", "threadId"] })), r < 3 && (t.objectStoreNames.contains(Q) || t.createObjectStore(Q, { keyPath: [
3842
+ ] }), t.createObjectStore(X, { keyPath: ["threadId", "messageId"] }).createIndex("threadId", "threadId", { unique: !1 }), t.objectStoreNames.contains(Y) || t.createObjectStore(Y, { keyPath: ["sessionId", "threadId"] })), r < 3 && (t.objectStoreNames.contains(Z) || t.createObjectStore(Z, { keyPath: [
3840
3843
  "userId",
3841
3844
  "appId",
3842
3845
  "sku"
@@ -3850,25 +3853,25 @@ var ar = class {
3850
3853
  this._db?.close(), this._db = null;
3851
3854
  }
3852
3855
  async saveSession(e) {
3853
- let t = this._requireDb().transaction(Y, "readwrite");
3854
- t.objectStore(Y).put(e), await $(t);
3856
+ let t = this._requireDb().transaction(J, "readwrite");
3857
+ t.objectStore(J).put(e), await Q(t);
3855
3858
  }
3856
3859
  async loadSession(e, t, n) {
3857
- return await ir(this._requireDb().transaction(Y, "readonly").objectStore(Y).get([
3860
+ return await ar(this._requireDb().transaction(J, "readonly").objectStore(J).get([
3858
3861
  e,
3859
3862
  t,
3860
3863
  n
3861
3864
  ])) ?? null;
3862
3865
  }
3863
3866
  async saveContext(e) {
3864
- let t = this._requireDb().transaction(X, "readwrite");
3865
- t.objectStore(X).put(e), await $(t);
3867
+ let t = this._requireDb().transaction(Y, "readwrite");
3868
+ t.objectStore(Y).put(e), await Q(t);
3866
3869
  }
3867
3870
  async loadContext(e, t) {
3868
- return await ir(this._requireDb().transaction(X, "readonly").objectStore(X).get([e, t])) ?? null;
3871
+ return await ar(this._requireDb().transaction(Y, "readonly").objectStore(Y).get([e, t])) ?? null;
3869
3872
  }
3870
3873
  async deleteContextsAfterThread(e, t) {
3871
- let n = this._requireDb().transaction(X, "readwrite"), r = n.objectStore(X).openCursor();
3874
+ let n = this._requireDb().transaction(Y, "readwrite"), r = n.objectStore(Y).openCursor();
3872
3875
  await new Promise((n, i) => {
3873
3876
  r.onsuccess = () => {
3874
3877
  let i = r.result;
@@ -3882,10 +3885,10 @@ var ar = class {
3882
3885
  } catch {}
3883
3886
  i.continue();
3884
3887
  }, r.onerror = () => i(r.error);
3885
- }), await $(n);
3888
+ }), await Q(n);
3886
3889
  }
3887
3890
  async loadLatestContext(e) {
3888
- let t = this._requireDb().transaction(X, "readonly").objectStore(X), n = IDBKeyRange.bound([e, ""], [e, "￿"]);
3891
+ let t = this._requireDb().transaction(Y, "readonly").objectStore(Y), n = IDBKeyRange.bound([e, ""], [e, "￿"]);
3889
3892
  return new Promise((e, r) => {
3890
3893
  let i = t.openCursor(n, "prev");
3891
3894
  i.onsuccess = () => {
@@ -3895,14 +3898,14 @@ var ar = class {
3895
3898
  });
3896
3899
  }
3897
3900
  async savePayload(e) {
3898
- let t = this._requireDb().transaction(Z, "readwrite");
3899
- t.objectStore(Z).put(e), await $(t);
3901
+ let t = this._requireDb().transaction(X, "readwrite");
3902
+ t.objectStore(X).put(e), await Q(t);
3900
3903
  }
3901
3904
  async loadPayload(e, t) {
3902
- return await ir(this._requireDb().transaction(Z, "readonly").objectStore(Z).get([e, t])) ?? null;
3905
+ return await ar(this._requireDb().transaction(X, "readonly").objectStore(X).get([e, t])) ?? null;
3903
3906
  }
3904
3907
  async loadPayloadsByThread(e) {
3905
- let t = this._requireDb().transaction(Z, "readonly").objectStore(Z).index("threadId"), n = [];
3908
+ let t = this._requireDb().transaction(X, "readonly").objectStore(X).index("threadId"), n = [];
3906
3909
  return new Promise((r, i) => {
3907
3910
  let a = t.openCursor(IDBKeyRange.only(e));
3908
3911
  a.onsuccess = () => {
@@ -3916,22 +3919,22 @@ var ar = class {
3916
3919
  });
3917
3920
  }
3918
3921
  async saveFavorite(e) {
3919
- let t = this._requireDb().transaction(Q, "readwrite");
3920
- t.objectStore(Q).put(e), await $(t);
3922
+ let t = this._requireDb().transaction(Z, "readwrite");
3923
+ t.objectStore(Z).put(e), await Q(t);
3921
3924
  }
3922
3925
  async removeFavorite(e, t, n) {
3923
- let r = this._requireDb().transaction(Q, "readwrite");
3924
- r.objectStore(Q).delete([
3926
+ let r = this._requireDb().transaction(Z, "readwrite");
3927
+ r.objectStore(Z).delete([
3925
3928
  e,
3926
3929
  t,
3927
3930
  n
3928
- ]), await $(r);
3931
+ ]), await Q(r);
3929
3932
  }
3930
3933
  async loadFavorites(e, t) {
3931
- return (await ir(this._requireDb().transaction(Q, "readonly").objectStore(Q).getAll())).filter((n) => n.userId === e && n.appId === t);
3934
+ return (await ar(this._requireDb().transaction(Z, "readonly").objectStore(Z).getAll())).filter((n) => n.userId === e && n.appId === t);
3932
3935
  }
3933
3936
  async isFavorite(e, t, n) {
3934
- return await ir(this._requireDb().transaction(Q, "readonly").objectStore(Q).get([
3937
+ return await ar(this._requireDb().transaction(Z, "readonly").objectStore(Z).get([
3935
3938
  e,
3936
3939
  t,
3937
3940
  n
@@ -3941,15 +3944,15 @@ var ar = class {
3941
3944
  if (!this._db) throw Error("GengageIndexedDB: database not open. Call open() first.");
3942
3945
  return this._db;
3943
3946
  }
3944
- }, or = [
3947
+ }, sr = [
3945
3948
  "comparisonTable",
3946
3949
  "groupList",
3947
3950
  "productDetailsSimilars",
3948
3951
  "productList"
3949
- ], sr = class {
3952
+ ], cr = class {
3950
3953
  constructor(e) {
3951
3954
  this._lockCount = 1, this._hiddenByUser = !1, this._lastPanelContentType = null, this._chatShown = !1, this._isFavoritesMode = !1, this._lastExtended = !1, this._onChange = e.onChange;
3952
- let t = new Set(or);
3955
+ let t = new Set(sr);
3953
3956
  e.productDetailsInPanel && t.add("productDetails"), this._panelContentTypes = t;
3954
3957
  }
3955
3958
  get isExtended() {
@@ -3977,7 +3980,7 @@ var ar = class {
3977
3980
  let e = this.isExtended;
3978
3981
  e !== this._lastExtended && (this._lastExtended = e, this._onChange(e));
3979
3982
  }
3980
- }, cr = class {
3983
+ }, lr = class {
3981
3984
  constructor(e) {
3982
3985
  this.deps = e, this.snapshots = /* @__PURE__ */ new Map(), this._snapshotRebuilders = /* @__PURE__ */ new Map(), this.snapshotTypes = /* @__PURE__ */ new Map(), this.activePanelMessageId = null, this.currentType = null, this.threads = [], this.lastActionType = null;
3983
3986
  }
@@ -3989,10 +3992,6 @@ var ar = class {
3989
3992
  let i = r.cloneNode(!0);
3990
3993
  this.snapshots.set(e, i), t && this._snapshotRebuilders.set(e, t), this.currentType && this.snapshotTypes.set(e, this.currentType);
3991
3994
  }
3992
- attachClickHandler(e) {
3993
- let t = this.deps.shadow()?.querySelector(`[data-message-id="${CSS.escape(e)}"]`);
3994
- t && (t.classList.add("gds-clickable"), t.addEventListener("click", () => this.restoreForMessage(e)));
3995
- }
3996
3995
  restoreForMessage(e) {
3997
3996
  let t = this._snapshotRebuilders.get(e), n = this.snapshots.get(e);
3998
3997
  if (!t && !n) return !1;
@@ -4019,7 +4018,7 @@ var ar = class {
4019
4018
  let n = this.deps.i18n();
4020
4019
  switch (e) {
4021
4020
  case "ProductDetailsPanel": return n.panelTitleProductDetails;
4022
- case "ProductGrid": return lr(this.lastActionType) ? n.panelTitleSearchResults : n.panelTitleSimilarProducts;
4021
+ case "ProductGrid": return ur(this.lastActionType) ? n.panelTitleSearchResults : n.panelTitleSimilarProducts;
4023
4022
  case "ComparisonTable": return n.panelTitleComparisonResults;
4024
4023
  case "AIGroupingCards": return n.panelTitleCategories;
4025
4024
  default: return "";
@@ -4034,7 +4033,7 @@ var ar = class {
4034
4033
  updateTopBarForLoading(e) {
4035
4034
  let t = this.deps.i18n(), n = {
4036
4035
  productDetails: t.panelTitleProductDetails,
4037
- productList: lr(this.lastActionType) ? t.panelTitleSearchResults : t.panelTitleSimilarProducts,
4036
+ productList: ur(this.lastActionType) ? t.panelTitleSearchResults : t.panelTitleSimilarProducts,
4038
4037
  comparisonTable: t.panelTitleComparisonResults,
4039
4038
  groupList: t.panelTitleCategories
4040
4039
  }[e] ?? "";
@@ -4089,15 +4088,15 @@ var ar = class {
4089
4088
  this.snapshots.clear(), this._snapshotRebuilders.clear(), this.snapshotTypes.clear(), this.activePanelMessageId = null, this.currentType = null, this.threads = [];
4090
4089
  }
4091
4090
  };
4092
- function lr(e) {
4091
+ function ur(e) {
4093
4092
  return e === "user_message" || e === "inputText";
4094
4093
  }
4095
- function ur(e) {
4094
+ function dr(e) {
4096
4095
  return e.similarsAppend && e.currentPanelType === "ProductDetailsPanel" && e.hasPanelContent && !e.isPanelLoading ? "appendSimilars" : e.componentType === "ProductGrid" && !e.isFirstPanelContentInStream && e.hasPanelContent && !e.isPanelLoading ? "append" : "replace";
4097
4096
  }
4098
4097
  //#endregion
4099
4098
  //#region src/chat/session-persistence.ts
4100
- var dr = class {
4099
+ var fr = class {
4101
4100
  constructor(e) {
4102
4101
  this.favoritedSkus = /* @__PURE__ */ new Set(), this._favoritesCache = /* @__PURE__ */ new Map(), this._persistLock = Promise.resolve(), this._db = e;
4103
4102
  }
@@ -4158,7 +4157,7 @@ var dr = class {
4158
4157
  try {
4159
4158
  await t();
4160
4159
  } catch {}
4161
- n?.send("openURLInNewTab", { url: e }), H(e) && (window.location.href = e);
4160
+ n?.send("openURLInNewTab", { url: e }), V(e) && (window.location.href = e);
4162
4161
  }
4163
4162
  async loadPayload(e, t) {
4164
4163
  if (!this._db) return null;
@@ -4198,7 +4197,7 @@ var dr = class {
4198
4197
  close() {
4199
4198
  this._db?.close(), this._db = null;
4200
4199
  }
4201
- }, fr = (e) => `${e}:assistant`, pr = class {
4200
+ }, pr = (e) => `${e}:assistant`, mr = class {
4202
4201
  constructor() {
4203
4202
  this.groups = {}, this.pinnedToBottom = !0, this.userInteracting = !1, this.focusedThreadId = null, this.shown = !1, this.lastAutoAnchoredGroupId = null, this.scrollRequest = null, this._nextScrollId = 1;
4204
4203
  }
@@ -4209,7 +4208,7 @@ var dr = class {
4209
4208
  this.groups = {}, this.pinnedToBottom = !0, this.userInteracting = !1, this.focusedThreadId = null, this.lastAutoAnchoredGroupId = null, this.scrollRequest = null;
4210
4209
  }
4211
4210
  registerAssistantActivity(e) {
4212
- let t = fr(e), n = this.groups[t], r = this.shown && this.pinnedToBottom && !this.userInteracting ? "active_unread" : "unseen";
4211
+ let t = pr(e), n = this.groups[t], r = this.shown && this.pinnedToBottom && !this.userInteracting ? "active_unread" : "unseen";
4213
4212
  this.groups[t] = {
4214
4213
  id: t,
4215
4214
  threadId: e,
@@ -4219,7 +4218,7 @@ var dr = class {
4219
4218
  }, n?.readState === "seen" && this.lastAutoAnchoredGroupId === t && (this.lastAutoAnchoredGroupId = null);
4220
4219
  }
4221
4220
  finalizeAssistantGroup(e) {
4222
- let t = fr(e), n = this.groups[t];
4221
+ let t = pr(e), n = this.groups[t];
4223
4222
  n && (n.status = "complete", n.updatedAt = Date.now());
4224
4223
  }
4225
4224
  setGroupReadStates(e) {
@@ -4260,10 +4259,10 @@ var dr = class {
4260
4259
  return this.shown && this.userInteracting && !this.pinnedToBottom;
4261
4260
  }
4262
4261
  getAssistantReadState(e) {
4263
- return this.groups[fr(e)]?.readState;
4262
+ return this.groups[pr(e)]?.readState;
4264
4263
  }
4265
4264
  };
4266
- function mr(e, t) {
4265
+ function hr(e, t) {
4267
4266
  for (let n = e.length - 1; n >= 0; n--) {
4268
4267
  let r = e[n], i = t.getAssistantReadState(r);
4269
4268
  if (i !== void 0 && i !== "seen") return r;
@@ -4271,8 +4270,136 @@ function mr(e, t) {
4271
4270
  return null;
4272
4271
  }
4273
4272
  //#endregion
4273
+ //#region src/common/pill-launcher.ts
4274
+ function gr(e) {
4275
+ let { label: t, avatarUrl: n, primaryColor: r, secondaryColor: i = "#111827", fontFamily: a = "inherit", labelClassName: o = "gengage-pill-launcher-label", styleId: s = "gengage-pill-launcher-style", mobileBreakpoint: c = 768, desktopWidth: l = "188px", desktopHeight: u = "60px", iconSize: d = "46px" } = e, f = `${parseInt(l, 10) - 14}px`, p = `${parseInt(u, 10) - 4}px`, m = `${parseInt(d, 10) - 4}px`, h = `
4276
+ :host {
4277
+ --pill-primary: ${r};
4278
+ --pill-secondary: ${i};
4279
+ --pill-font: ${a};
4280
+ }
4281
+
4282
+ button[data-gengage-part="chat-launcher-button"] {
4283
+ box-sizing: border-box;
4284
+ width: ${l} !important;
4285
+ min-width: ${l} !important;
4286
+ max-width: ${l} !important;
4287
+ height: ${u} !important;
4288
+ min-height: ${u} !important;
4289
+ padding: 6px 7px 6px 22px !important;
4290
+ display: inline-flex !important;
4291
+ flex-direction: row-reverse !important;
4292
+ align-items: center !important;
4293
+ justify-content: space-between !important;
4294
+ gap: 12px !important;
4295
+ border-radius: 999px !important;
4296
+ border: 1px solid color-mix(in srgb, var(--pill-primary) 18%, white) !important;
4297
+ background: #ffffff !important;
4298
+ color: var(--pill-secondary) !important;
4299
+ box-shadow:
4300
+ 0 18px 46px color-mix(in srgb, var(--pill-primary) 18%, transparent),
4301
+ 0 4px 14px color-mix(in srgb, var(--pill-secondary) 8%, transparent) !important;
4302
+ overflow: visible !important;
4303
+ }
4304
+
4305
+ button[data-gengage-part="chat-launcher-button"]:hover {
4306
+ transform: translateY(-1px) !important;
4307
+ box-shadow:
4308
+ 0 22px 52px color-mix(in srgb, var(--pill-primary) 24%, transparent),
4309
+ 0 6px 18px color-mix(in srgb, var(--pill-secondary) 12%, transparent) !important;
4310
+ }
4311
+
4312
+ .${o} {
4313
+ color: var(--pill-secondary);
4314
+ font: 500 15px/1.05 var(--pill-font);
4315
+ letter-spacing: -0.02em;
4316
+ white-space: nowrap;
4317
+ flex: 0 0 auto;
4318
+ pointer-events: none;
4319
+ }
4320
+
4321
+ button[data-gengage-part="chat-launcher-button"] img {
4322
+ width: ${d} !important;
4323
+ height: ${d} !important;
4324
+ flex: 0 0 ${d} !important;
4325
+ border-radius: 999px;
4326
+ object-fit: cover;
4327
+ object-position: center;
4328
+ background: transparent;
4329
+ border: 0 !important;
4330
+ box-shadow: none !important;
4331
+ }
4332
+
4333
+ @media (max-width: ${c}px) {
4334
+ button[data-gengage-part="chat-launcher-button"] {
4335
+ width: ${f} !important;
4336
+ min-width: ${f} !important;
4337
+ max-width: ${f} !important;
4338
+ height: ${p} !important;
4339
+ min-height: ${p} !important;
4340
+ padding-left: 20px !important;
4341
+ padding-right: 7px !important;
4342
+ }
4343
+
4344
+ .${o} {
4345
+ font-size: 14px;
4346
+ }
4347
+
4348
+ button[data-gengage-part="chat-launcher-button"] img {
4349
+ width: ${m} !important;
4350
+ height: ${m} !important;
4351
+ flex-basis: ${m} !important;
4352
+ }
4353
+ }
4354
+ `.trim(), g = () => {
4355
+ for (let e of document.querySelectorAll("[data-gengage-widget]")) {
4356
+ if (!(e instanceof HTMLElement)) continue;
4357
+ let t = e.shadowRoot;
4358
+ if (t && (t.querySelector("[data-gengage-part=\"chat-launcher-button\"]") || t.querySelector(".gengage-chat-root"))) return e;
4359
+ }
4360
+ return null;
4361
+ }, _ = (e) => {
4362
+ if (e.getElementById(s)) return;
4363
+ let t = document.createElement("style");
4364
+ t.id = s, t.textContent = h, e.appendChild(t);
4365
+ }, v = CSS.escape(o), y = (e) => {
4366
+ _(e);
4367
+ let n = e.querySelector("[data-gengage-part=\"chat-launcher-button\"]");
4368
+ if (!(n instanceof HTMLButtonElement)) return !1;
4369
+ let r = e.querySelector("[data-gengage-part=\"chat-header-avatar\"]");
4370
+ if (r instanceof HTMLImageElement) {
4371
+ let t = e.querySelector("[data-gengage-part=\"chat-launcher-button\"] img");
4372
+ (!t || r.src === t.src) && r.classList.remove("gengage-chat-header-avatar--logo");
4373
+ }
4374
+ if (n.querySelector(`.${v}`)) return !0;
4375
+ n.setAttribute("aria-label", t);
4376
+ let i = document.createElement("span");
4377
+ return i.className = o, i.textContent = t, n.appendChild(i), !0;
4378
+ };
4379
+ return {
4380
+ launcherImageUrl: n,
4381
+ apply: async (e) => {
4382
+ if (e) {
4383
+ _(e), await Promise.resolve();
4384
+ for (let t = 0; t < 90; t++) {
4385
+ if (y(e)) return;
4386
+ await new Promise((e) => requestAnimationFrame(() => e()));
4387
+ }
4388
+ return;
4389
+ }
4390
+ let t = g();
4391
+ t?.shadowRoot && _(t.shadowRoot), await Promise.resolve();
4392
+ for (let e = 0; e < 90; e++) {
4393
+ let e = g()?.shadowRoot ?? null;
4394
+ if (e && (_(e), y(e))) return;
4395
+ await new Promise((e) => requestAnimationFrame(() => e()));
4396
+ }
4397
+ }
4398
+ };
4399
+ }
4400
+ //#endregion
4274
4401
  //#region src/chat/stream-error-display.ts
4275
- var hr = /^HTTP\s+\d{3}\b/i, gr = [
4402
+ var _r = /^HTTP\s+\d{3}\b/i, vr = [
4276
4403
  /response body is null/i,
4277
4404
  /streaming not supported/i,
4278
4405
  /ECONNREFUSED/i,
@@ -4283,7 +4410,7 @@ var hr = /^HTTP\s+\d{3}\b/i, gr = [
4283
4410
  /502\s+bad gateway/i,
4284
4411
  /503\s+service unavailable/i,
4285
4412
  /504\s+gateway timeout/i
4286
- ], _r = [
4413
+ ], yr = [
4287
4414
  /Traceback\s*\(/i,
4288
4415
  /\bSyntaxError\b/,
4289
4416
  /\bReferenceError\b/,
@@ -4295,68 +4422,68 @@ var hr = /^HTTP\s+\d{3}\b/i, gr = [
4295
4422
  /<anonymous>/i,
4296
4423
  /ChunkLoadError/i,
4297
4424
  /UnhandledPromiseRejection/i
4298
- ], vr = 720;
4299
- function yr(e, t) {
4425
+ ], br = 720;
4426
+ function xr(e, t) {
4300
4427
  if (g(e)) return !0;
4301
4428
  let n = e.message.trim();
4302
- if (hr.test(n) || gr.some((e) => e.test(n))) return !0;
4429
+ if (_r.test(n) || vr.some((e) => e.test(n))) return !0;
4303
4430
  let r = t.trim();
4304
- if (r.length > vr) return !0;
4431
+ if (r.length > br) return !0;
4305
4432
  let i = r.split(/\n/).length;
4306
- return !!(i >= 6 || _r.some((e) => e.test(r)) || i >= 3 && /\bat\s+/.test(r));
4433
+ return !!(i >= 6 || yr.some((e) => e.test(r)) || i >= 3 && /\bat\s+/.test(r));
4307
4434
  }
4308
4435
  //#endregion
4309
4436
  //#region src/chat/kvkk.ts
4310
- var br = "gengage_kvkk_shown", xr = [
4437
+ var Sr = "gengage_kvkk_shown", Cr = [
4311
4438
  "kvkk",
4312
4439
  "kişisel veri",
4313
4440
  "kisisel veri"
4314
- ], Sr = /\b6698\b/;
4315
- function Cr(e) {
4441
+ ], wr = /\b6698\b/;
4442
+ function Tr(e) {
4316
4443
  let t = e.toLowerCase();
4317
- return xr.some((e) => t.includes(e)) || Sr.test(t);
4444
+ return Cr.some((e) => t.includes(e)) || wr.test(t);
4318
4445
  }
4319
- function wr(e) {
4446
+ function Er(e) {
4320
4447
  try {
4321
- return localStorage.getItem(`${br}_${e}`) === "1";
4448
+ return localStorage.getItem(`${Sr}_${e}`) === "1";
4322
4449
  } catch {
4323
4450
  return !1;
4324
4451
  }
4325
4452
  }
4326
- function Tr(e) {
4453
+ function Dr(e) {
4327
4454
  try {
4328
- localStorage.setItem(`${br}_${e}`, "1");
4455
+ localStorage.setItem(`${Sr}_${e}`, "1");
4329
4456
  } catch {}
4330
4457
  }
4331
- function Er(e) {
4458
+ function Or(e) {
4332
4459
  let t = new DOMParser().parseFromString(e, "text/html").body, n = Array.from(t.children);
4333
- for (let e of n) if (Cr(e.textContent ?? "")) {
4460
+ for (let e of n) if (Tr(e.textContent ?? "")) {
4334
4461
  e.remove();
4335
4462
  break;
4336
4463
  }
4337
4464
  return t.innerHTML.trim();
4338
4465
  }
4339
- function Dr(e) {
4466
+ function kr(e) {
4340
4467
  let t = new DOMParser().parseFromString(e, "text/html");
4341
- for (let e of Array.from(t.body.children)) if (Cr(e.textContent ?? "")) return e.outerHTML;
4468
+ for (let e of Array.from(t.body.children)) if (Tr(e.textContent ?? "")) return e.outerHTML;
4342
4469
  return null;
4343
4470
  }
4344
- var Or = {
4471
+ var Ar = {
4345
4472
  tr: "TURKISH",
4346
4473
  en: "ENGLISH",
4347
4474
  de: "GERMAN",
4348
4475
  fr: "FRENCH"
4349
4476
  };
4350
- function kr(e) {
4351
- return e ? Or[e.toLowerCase().slice(0, 2)] ?? "TURKISH" : "TURKISH";
4477
+ function jr(e) {
4478
+ return e ? Ar[e.toLowerCase().slice(0, 2)] ?? "TURKISH" : "TURKISH";
4352
4479
  }
4353
4480
  //#endregion
4354
4481
  //#region src/chat/components/chat.css?inline
4355
- var Ar = ":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-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--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:inherit;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-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(--client-primary)}.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(--client-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-current-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-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-original-price{color:var(--text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.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-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.gengage-chat-product-details-fact{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-card-soft);min-width:0;padding:8px 10px}.gengage-chat-product-details-fact dt,.gengage-chat-product-details-fact dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.gengage-chat-product-details-fact dt{color:var(--text-muted);font-size:11px;font-weight:700}.gengage-chat-product-details-fact dd{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:700}.gengage-chat-product-variants{margin-top:4px}.gengage-chat-product-variants-label{color:var(--text-primary);letter-spacing:normal;margin-bottom:8px;font-size:14px;font-weight:800}.gengage-chat-product-variants-list{gap:8px}.gengage-chat-product-variant-btn{border-radius:var(--radius-control);min-height:44px;color:var(--text-primary);gap:8px;padding:7px 10px;font-size:13px;font-weight:700}.gengage-chat-product-variant-btn--active{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--client-primary) 36%, transparent);color:var(--client-primary)}.gengage-chat-product-variant-btn--out{opacity:.48;cursor:not-allowed}.gengage-chat-product-variant-swatch{border:1px solid var(--border-default);background:var(--surface-card-muted);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface-card);border-radius:50%;flex:0 0 22px}.gengage-chat-product-variant-swatch--image{object-fit:cover;box-shadow:none}.gengage-chat-product-variant-label,.gengage-chat-product-variant-price{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gengage-chat-product-variant-price{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-product-details-actions{gap:10px;margin-top:6px}.gengage-chat-product-details-atc,.gengage-chat-product-details-cta{border-radius:var(--radius-control);min-height:44px}.gengage-chat-product-details-atc{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg)}.gengage-chat-product-details-atc:hover{background:var(--ds-button-primary-bg-hover);filter:none}.gengage-chat-product-details-cta.gds-btn-secondary{border-color:var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg)}.gengage-chat-product-details-cta.gds-btn-secondary:hover{background:var(--ds-button-secondary-bg-hover)}@media (width>=960px){.gengage-chat-product-details-panel{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;display:grid}.gengage-chat-product-details-media{position:sticky;top:0}.gengage-chat-product-detail-tabs{grid-column:1/-1}}.gengage-chat-root--mobile .gengage-chat-product-details-panel{box-shadow:none;gap:10px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:220px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price{font-size:24px}.gengage-chat-root--mobile .gengage-chat-product-details-facts{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-product-details-actions{grid-template-columns:1fr 1fr 44px;align-items:stretch;display:grid}.gengage-chat-root--mobile .gengage-chat-product-details-actions>.gengage-chat-product-details-share{width:44px;min-width:44px}.gengage-chat-root--mobile .gengage-chat-product-details-atc,.gengage-chat-root--mobile .gengage-chat-product-details-cta{width:100%;padding-inline:10px}.gengage-chat-product-grid-wrapper{flex-direction:column;gap:6px;display:flex}.gengage-chat-product-grid-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.gengage-chat-product-grid-head-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:18px;font-weight:700;line-height:1.2;overflow:hidden}.gengage-chat-product-grid-head-actions{flex-shrink:0;align-items:center;gap:6px;max-width:52%;display:flex}.gengage-chat-product-sort-toolbar{box-shadow:none;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:0;display:flex}.gengage-chat-product-sort-toolbar--inline{flex-wrap:nowrap;justify-content:flex-end}.gengage-chat-product-sort-dropdown{z-index:5;flex:0 auto;width:auto;min-width:0;max-width:200px;position:relative}.gengage-chat-product-sort-toolbar:not(.gengage-chat-product-sort-toolbar--inline) .gengage-chat-product-sort-dropdown{flex:auto;max-width:min(200px,100%)}.gengage-chat-product-sort-dropdown--open{z-index:25}.gengage-chat-product-sort-trigger{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:100%;min-height:32px;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.gengage-chat-product-sort-trigger:hover{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:var(--surface-card-soft)}.gengage-chat-product-sort-trigger:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger{border-color:color-mix(in srgb, var(--client-primary) 32%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-product-sort-trigger-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-product-sort-dropdown[data-sort-icon=related] .gengage-chat-product-sort-trigger-icon{color:var(--client-primary)}.gengage-chat-product-sort-trigger-icon svg{display:block}.gengage-chat-product-sort-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-product-sort-trigger-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s;display:flex}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger-chevron{transform:rotate(180deg)}.gengage-chat-product-sort-menu{width:max-content;min-width:100%;max-width:min(260px,100vw - 48px);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto}.gengage-chat-product-sort-option{border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background .12s;display:flex}.gengage-chat-product-sort-option:hover{background:var(--surface-card-muted)}.gengage-chat-product-sort-option--active{color:var(--client-primary);background:var(--client-primary-subtle);font-weight:600}.gengage-chat-product-sort-option-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-product-sort-option--active .gengage-chat-product-sort-option-icon,.gengage-chat-product-sort-option--active[data-sort-key=related] .gengage-chat-product-sort-option-icon{color:var(--client-primary)}.gengage-chat-product-sort-option-icon svg{display:block}.gengage-chat-product-sort-option-label{flex:auto;min-width:0}.gengage-chat-product-sort-option-check{width:22px;color:var(--client-primary);flex-shrink:0;justify-content:flex-end;display:flex}.gengage-chat-product-sort-option-check--hidden{visibility:hidden}.gengage-chat-product-sort-separator{background:var(--border-default);width:1px;margin:2px}.gengage-chat-comparison-toggle-btn{border:1px solid var(--border-default);border-radius:var(--radius-control,12px);background:var(--surface-card);min-height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gengage-chat-comparison-toggle-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-comparison-toggle-icon svg{display:block}.gengage-chat-comparison-toggle-btn:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, white);color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active{border-color:color-mix(in srgb, var(--client-primary) 26%, white);color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-comparison-toggle-btn--active .gengage-chat-comparison-toggle-icon{color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active:hover{background:var(--client-primary-hover);color:var(--client-on-primary);border-color:var(--client-primary-hover)}.gengage-chat-comparison-toggle-btn--active:hover .gengage-chat-comparison-toggle-icon{color:var(--client-on-primary)}.gengage-chat-comparison-select-wrapper{cursor:pointer;border-radius:var(--radius-control);transition:box-shadow .2s,transform .2s;position:relative}.gengage-chat-comparison-select-wrapper:hover{box-shadow:0 0 0 2px var(--client-focus-ring)}.gengage-chat-comparison-select-wrapper--selected,.gengage-chat-comparison-select-wrapper--selected:hover{box-shadow:none}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-select-wrapper{transition:none}}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card{pointer-events:none;transition:opacity .2s,transform .2s,filter .2s}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-img-actions,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-discount-badge,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-buy-footer,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-cta{opacity:0}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:.82}.gengage-chat-comparison-select-wrapper:hover>.gengage-chat-product-card,.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{opacity:1;transform:translateY(-1px)}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--client-primary) 26%, white), var(--shadow-1);filter:saturate(1.02);border-color:#0000;outline:none}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:1}.gengage-chat-comparison-card-hint{display:none}.gengage-chat-comparison-checkbox{z-index:4;cursor:pointer;pointer-events:auto;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 94%, white);min-height:40px;color:var(--text-primary);box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;bottom:16px;left:16px;right:16px}.gengage-chat-comparison-checkbox[data-selected=true]{background:color-mix(in srgb, var(--client-primary) 10%, white);border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));color:var(--client-primary)}.gengage-chat-comparison-checkbox-icon{background:var(--surface-card-soft);color:currentColor;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.gengage-chat-comparison-checkbox[data-selected=true] .gengage-chat-comparison-checkbox-icon{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-comparison-checkbox-dot{background:color-mix(in srgb, currentColor 75%, white);border-radius:999px;width:8px;height:8px}.gengage-chat-comparison-checkbox-label{font-size:12px;font-weight:700;line-height:1.2}.gengage-chat-comparison-toggle-btn--hidden{opacity:0;pointer-events:none}@keyframes gengage-comparison-fade-in{0%{opacity:0}to{opacity:1}}.gengage-chat-comparison-toggle-btn--reveal{animation:.5s forwards gengage-comparison-fade-in}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-toggle-btn--reveal{opacity:1;animation:none}}.gengage-chat-comparison-floating-btn{border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 92%, white);width:min(100%,520px);color:var(--text-primary);z-index:5;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin:16px auto 0;padding:12px 14px;display:flex;position:sticky;bottom:12px}.gengage-chat-comparison-dock-slot{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot:not(:empty){z-index:30;padding:0 10px max(6px, env(safe-area-inset-bottom,0px));box-sizing:border-box;pointer-events:none;max-width:100%;display:block;position:absolute;bottom:0;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot>*{pointer-events:auto}.gengage-chat-comparison-floating-summary{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.gengage-chat-comparison-floating-count{background:var(--client-primary-subtle);min-width:32px;height:32px;color:var(--client-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.gengage-chat-comparison-floating-copy{min-width:0}.gengage-chat-comparison-floating-title{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.gengage-chat-comparison-floating-warning{color:var(--error);margin-top:4px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-action{flex:none;min-width:132px}.gengage-chat-comparison-floating-close{border-radius:14px;flex:none;width:40px;height:40px;padding:0}.gengage-chat-comparison-floating-action--disabled{opacity:.6}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;margin:0;padding:10px;position:relative;bottom:auto}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-summary{align-items:center;gap:8px;min-height:26px;padding-right:34px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-count{flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-title{margin:0;font-size:13px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-warning{margin-top:2px;font-size:11px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-action{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:42px;padding:0 12px;font-size:13px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close{box-sizing:border-box;align-self:unset;z-index:10;touch-action:manipulation;border-radius:8px;flex:none;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;max-height:26px;padding:0;line-height:0;position:absolute;top:9px;right:9px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close svg{width:11px;height:11px;display:block}.gengage-chat-panel-topbar{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--surface-card);z-index:3;border-bottom:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.gengage-chat-panel-topbar-title-wrap{flex:1 1 0;align-items:center;min-width:0;display:flex}.gengage-chat-panel-topbar-back,.gengage-chat-panel-topbar-forward{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;transition:background .15s,border-color .15s,opacity .15s;display:flex}.gengage-chat-panel-topbar-back[hidden],.gengage-chat-panel-topbar-forward[hidden]{display:none}.gengage-chat-panel-topbar-back:hover:not(:disabled),.gengage-chat-panel-topbar-forward:hover:not(:disabled){background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-panel-topbar-back:disabled,.gengage-chat-panel-topbar-forward:disabled{opacity:.3;cursor:default}.gengage-chat-panel-topbar-title{width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.gengage-chat-panel-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.gengage-chat-panel-topbar-actions:empty{display:none}.gengage-chat-panel-topbar-toolbar-host{justify-content:flex-end;align-items:center;width:100%;display:flex}.gengage-chat-panel-topbar-toolbar-host .gengage-chat-product-sort-toolbar{flex-wrap:nowrap;justify-content:flex-end;gap:8px}.gengage-chat-panel-topbar-close{display:none}@keyframes gengage-typewriter-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-typewriter-block{animation:.15s both gengage-typewriter-fade-in;display:block}@media (prefers-reduced-motion:reduce){.gengage-chat-typewriter-block{animation:none}}.gengage-product-mention{color:var(--client-primary);cursor:pointer;border-bottom:1px dashed var(--client-primary);font-weight:500;text-decoration:none;transition:border-color .15s}.gengage-product-mention:hover{border-bottom-style:solid}@keyframes gengage-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.gengage-chat-panel-skeleton-block{animation:1.5s ease-in-out infinite gengage-skeleton-pulse}@media (prefers-reduced-motion:reduce){.gengage-chat-panel-skeleton-block{animation:none}}.gengage-chat-input-chips{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;padding:4px 12px 2px;display:flex;overflow-x:auto}.gengage-chat-input-chips::-webkit-scrollbar{display:none}.gengage-chat-input-chip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gengage-chat-input-chip:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-icon{flex-shrink:0;width:14px;height:14px}.gengage-chat-input-chip-icon,.gengage-chat-pill-icon{align-items:center;margin-right:4px;display:inline-flex}.gengage-chat-product-card-img-wrapper,.gengage-chat-product-details-img-wrap{position:relative;overflow:hidden}.gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--_gengage-discount-color);color:var(--text-inverse);z-index:1;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;position:absolute;top:8px;left:8px}.gengage-chat-product-card-stock{border-radius:var(--radius-pill);width:fit-content;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:600}.gengage-chat-product-card-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-card-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-find-similar-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:28px;height:28px;color:var(--text-primary);box-shadow:var(--shadow-1);cursor:pointer;z-index:2;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:500;transition:opacity .2s,box-shadow .15s;display:inline-flex;position:relative}.gengage-chat-find-similar-pill:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}@media (hover:hover) and (pointer:fine){.gengage-chat-find-similar-pill:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:opacity .14s;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.gengage-chat-find-similar-pill:hover:after,.gengage-chat-find-similar-pill:focus-visible:after{opacity:1}}.gengage-chat-find-similar-pill-icon{justify-content:center;align-items:center;display:flex}.gengage-chat-find-similar-pill-icon svg{display:block}.gengage-chat-find-similar-pill-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{transition:opacity .2s}@media (hover:hover) and (pointer:fine){.gengage-chat-product-card-img-wrapper:not(:hover) .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:not(:hover) .gengage-chat-product-card-img-actions{opacity:0;pointer-events:none}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:hover .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-shell) 88%, transparent);width:auto;height:auto;color:var(--text-inverse);box-shadow:none;opacity:0;pointer-events:none;padding:4px 10px;position:absolute;top:40px;right:8px}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-icon{display:none}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-text{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-find-similar-pill,.gengage-chat-ai-toppick-media:hover .gengage-chat-find-similar-pill,.gengage-chat-product-details-img-wrap:hover .gengage-chat-find-similar-pill{opacity:1;pointer-events:auto}.gengage-chat-favorite-btn{background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-control);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);box-shadow:var(--shadow-1);z-index:3;justify-content:center;align-items:center;padding:0;transition:color .2s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-favorite-btn:hover{box-shadow:var(--shadow-2);color:var(--error);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}.gengage-chat-favorite-btn--active{color:var(--error)}.gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gengage-chat-product-details-promo-badge{border-radius:var(--radius-pill);background:var(--gengage-chat-promo-bg,color-mix(in srgb, var(--success) 12%, white));color:var(--gengage-chat-promo-text,color-mix(in srgb, var(--success) 82%, var(--text-primary)));white-space:nowrap;box-sizing:border-box;min-height:20px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-block}.gengage-chat-thumbnails-column{pointer-events:none;display:none!important}.gengage-chat-thumbnail-btn{border:2px solid var(--border-default);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s;display:flex;overflow:hidden}.gengage-chat-thumbnail-btn:hover{border-color:var(--client-primary)}.gengage-chat-thumbnail-img{object-fit:cover;width:100%;height:100%}.gengage-chat-panel-float{box-sizing:border-box;pointer-events:none;z-index:10;flex-shrink:0;align-self:stretch;width:100%;height:0;margin-top:auto;position:sticky;bottom:0;overflow:visible}.gengage-chat-choice-prompter{pointer-events:none;background:var(--surface-card);border:1px solid var(--border-default);width:auto;max-width:none;box-shadow:var(--shadow-2);z-index:5;opacity:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-left:0;margin-right:0;padding:12px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:12px;left:16px;right:16px;transform:translateY(12px)}.gengage-chat-panel--scrolled .gengage-chat-choice-prompter{pointer-events:auto;opacity:1;transform:translateY(0)}.gengage-chat-choice-prompter-heading{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:700}.gengage-chat-choice-prompter-suggestion{color:var(--text-secondary);margin-bottom:0;font-size:12px;line-height:1.35}.gengage-chat-choice-prompter-copy{min-width:0}.gengage-chat-choice-prompter-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control);background:var(--ds-button-primary-bg);width:auto;min-width:180px;min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.gengage-chat-choice-prompter-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-choice-prompter-dismiss{border:1px solid var(--border-default);background:var(--surface-card-soft);min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.gengage-chat-choice-prompter-dismiss:hover{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white);background:var(--client-primary-subtle)}@media (prefers-reduced-motion:reduce){.gengage-chat-choice-prompter{animation:none}}.gengage-chat-pros-cons{background:var(--surface-card-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-control);margin:8px 0;padding:12px 14px}.gengage-chat-pros-cons-heading{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.gengage-chat-pros-cons-list{margin:0 0 8px;padding:0;list-style:none}.gengage-chat-pros-cons-list:last-child{margin-bottom:0}.gengage-chat-pros-cons-item{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;line-height:1.5;display:flex}.gengage-chat-pros-cons-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:flex}.gengage-chat-pros-cons-icon--pro{color:var(--success);background:color-mix(in srgb, var(--success) 15%, white)}.gengage-chat-pros-cons-icon--con{color:var(--error);background:color-mix(in srgb, var(--error) 12%, white)}.gengage-chat-categories{flex-direction:column;gap:8px;display:flex}.gengage-chat-categories-tabs{-webkit-overflow-scrolling:touch;gap:4px;padding:4px 0;display:flex;overflow-x:auto}.gengage-chat-categories-tab{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.gengage-chat-categories-tab:hover{background:var(--surface-card-soft);border-color:var(--border-strong)}.gengage-chat-categories-tab--active{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default))}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gengage-chat-categories-filter-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-categories-filter-tag{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.gengage-chat-categories-filter-tag:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-grid-view-more{border:1px solid var(--ds-button-secondary-border);border-radius:var(--radius-control);background:var(--ds-button-secondary-bg);width:100%;color:var(--ds-button-secondary-fg);cursor:pointer;text-align:center;grid-column:1/-1;margin-top:8px;padding:10px;font-size:14px;font-weight:500;transition:background .15s;display:block}.gengage-chat-product-grid-view-more:hover{background:var(--ds-button-secondary-bg-hover)}.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0;display:grid;overflow-x:visible}.gengage-chat-product-grid--mobile .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-comparison--mobile{position:relative;overflow-x:clip}.gengage-chat-comparison--mobile .gengage-chat-comparison-table-wrapper{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.gengage-chat-comparison--mobile .gengage-chat-comparison-table{table-layout:fixed;min-width:480px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table th:first-child,.gengage-chat-comparison--mobile .gengage-chat-comparison-table .gengage-chat-comparison-label{background:var(--surface-card);z-index:1;box-shadow:2px 0 4px color-mix(in srgb, var(--surface-shell) 8%, transparent);position:sticky;left:0}.gengage-chat-comparison--mobile .gengage-chat-comparison-table thead th:first-child{box-sizing:border-box;width:22ch;min-width:0;max-width:22ch;padding:8px 6px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table td.gengage-chat-comparison-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;width:22ch;min-width:0;max-width:22ch;overflow:hidden}.gengage-chat-product-details-similars-heading{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-product-details-similars{margin-top:8px}.gengage-chat-handoff-notice{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border-default));border-radius:var(--radius-control);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:16px;display:flex}.gengage-chat-handoff-notice-icon{font-size:24px}.gengage-chat-handoff-notice-heading{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin:0;font-size:14px;font-weight:600}.gengage-chat-handoff-notice-summary{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));margin:0;font-size:13px;line-height:1.5}.gengage-chat-product-details-share{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background-color .12s;display:inline-flex;position:relative}.gengage-chat-product-details-share:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--client-primary-subtle)}.gengage-chat-product-details-share:before{content:attr(aria-label);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;pointer-events:none;opacity:0;z-index:2;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gengage-chat-product-details-share:hover:before{opacity:1}.gengage-chat-product-details-share--copied:after{content:\"✓\";background:var(--_gengage-success-color);color:var(--client-on-primary);border-radius:var(--radius-control);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.gengage-chat-product-details-share svg{width:20px;height:20px}.gengage-chat-review-link,.gengage-chat-grounding-link{color:var(--client-primary);text-decoration:underline}@media (width<=768px){.gengage-chat-product-details-promo-badge{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.gengage-chat-launcher:focus-visible,.gengage-chat-close:focus-visible,.gengage-chat-header-btn:focus-visible,.gengage-chat-header-powered:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-pill:focus-visible,.gengage-chat-input-chip:focus-visible,.gengage-chat-pills-arrow:focus-visible,.gengage-chat-error-retry:focus-visible,.gengage-chat-product-card-cta:focus-visible,.gengage-chat-product-details-cta:focus-visible,.gengage-chat-product-details-atc:focus-visible,.gengage-chat-product-detail-tab:focus-visible,.gengage-chat-panel-divider-toggle:focus-visible,.gengage-chat-panel-topbar-back:focus-visible,.gengage-chat-panel-topbar-forward:focus-visible,.gengage-chat-rollback-btn:focus-visible,.gengage-chat-ai-toppick-cta:focus-visible,.gengage-chat-comparison-toggle-btn:focus-visible,.gengage-chat-comparison-floating-btn:focus-visible,.gengage-chat-comparison-checkbox:focus-visible,.gengage-chat-product-sort-trigger:focus-visible,.gengage-chat-product-sort-option:focus-visible,.gengage-chat-product-variant-btn:focus-visible,.gengage-chat-product-gallery-thumb:focus-visible,.gengage-chat-thumbnail-btn:focus-visible,.gengage-chat-find-similar-pill:focus-visible,.gengage-chat-favorite-btn:focus-visible,.gengage-chat-attach-btn:focus-visible,.gengage-chat-attach-menu-item:focus-visible,.gengage-chat-mic-btn:focus-visible,.gengage-chat-attachment-remove:focus-visible,.gengage-chat-kvkk-dismiss:focus-visible,.gengage-chat-choice-prompter-cta:focus-visible,.gengage-chat-choice-prompter-dismiss:focus-visible,.gengage-chat-categories-tab:focus-visible,.gengage-chat-categories-filter-tag:focus-visible,.gengage-chat-product-grid-view-more:focus-visible,.gengage-chat-product-details-share:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-root--mobile .gengage-chat-choice-prompter{grid-template-columns:1fr;width:auto;max-width:none;max-height:40vh;bottom:12px;left:12px;right:12px;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta{width:100%}.gengage-chat-root--mobile .gengage-chat-product-sort-trigger,.gengage-chat-root--mobile .gengage-chat-product-sort-option,.gengage-chat-root--mobile .gengage-chat-comparison-toggle-btn{min-height:40px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-label,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-chevron,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-label{display:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-dropdown{flex:none;width:auto;max-width:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger{justify-content:center;gap:0;width:auto;min-width:44px;padding:0 10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-btn{justify-content:center;gap:0;width:44px;min-width:44px;padding:0}.gengage-chat-root--mobile .gengage-chat-input-chip{min-height:40px;padding:8px 12px}.gengage-chat-root--mobile .gengage-chat-choice-prompter-dismiss{width:32px;height:32px}.gengage-chat-root--mobile .gengage-chat-panel-divider-toggle{min-height:44px}.gengage-chat-root--mobile .gengage-chat-product-card-cta,.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta,.gengage-chat-root--mobile .gengage-chat-product-grid-view-more{justify-content:center;align-items:center;min-height:44px;display:flex}.gengage-chat-root--mobile .gengage-chat-panel-topbar-back,.gengage-chat-root--mobile .gengage-chat-panel-topbar-forward,.gengage-chat-root--mobile .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel-topbar-close{display:none}.gengage-skeleton{gap:12px;padding:12px;display:flex}.gengage-skeleton--message{flex-direction:column;gap:8px;padding:16px}.gengage-skeleton-card{flex-direction:column;flex:1;gap:8px;display:flex}.gengage-skeleton-img{border-radius:var(--radius-control);height:120px}.gengage-skeleton-text{border-radius:4px;height:14px}.gengage-skeleton-price{border-radius:4px;width:60%;height:14px}.gengage-skeleton-line{border-radius:4px;height:12px}@media (prefers-reduced-motion:no-preference){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:linear-gradient(90deg, var(--ds-neutral-100) 25%, var(--ds-neutral-200) 50%, var(--ds-neutral-100) 75%);background-size:200% 100%;animation:1.5s infinite gengage-shimmer}@keyframes gengage-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}}@media (prefers-reduced-motion:reduce){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:var(--ds-neutral-100)}}.gengage-chat-panel--has-scroll:after{content:\"\";background:linear-gradient(transparent, var(--surface-card-soft));pointer-events:none;height:40px;display:block;position:sticky;bottom:0}@media (prefers-reduced-motion:no-preference){.gengage-chat-panel--transitioning{opacity:0;transition:opacity .15s}}.gengage-chat-cart-toast{background:var(--success);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-3);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:72px;left:50%;transform:translate(-50%)translateY(8px)}.gengage-chat-cart-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@keyframes gengage-cart-flash{0%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}to{transform:scale(1)}}.gengage-chat-header-btn--cart-flash{animation:.5s gengage-cart-flash}", jr = o({
4482
+ var Mr = ":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-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--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:inherit;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-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(--client-primary)}.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(--client-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-current-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-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-original-price{color:var(--text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.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-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.gengage-chat-product-details-fact{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-card-soft);min-width:0;padding:8px 10px}.gengage-chat-product-details-fact dt,.gengage-chat-product-details-fact dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.gengage-chat-product-details-fact dt{color:var(--text-muted);font-size:11px;font-weight:700}.gengage-chat-product-details-fact dd{color:var(--text-primary);margin-top:2px;font-size:13px;font-weight:700}.gengage-chat-product-variants{margin-top:4px}.gengage-chat-product-variants-label{color:var(--text-primary);letter-spacing:normal;margin-bottom:8px;font-size:14px;font-weight:800}.gengage-chat-product-variants-list{gap:8px}.gengage-chat-product-variant-btn{border-radius:var(--radius-control);min-height:44px;color:var(--text-primary);gap:8px;padding:7px 10px;font-size:13px;font-weight:700}.gengage-chat-product-variant-btn--active{border-color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, var(--surface-card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--client-primary) 36%, transparent);color:var(--client-primary)}.gengage-chat-product-variant-btn--out{opacity:.48;cursor:not-allowed}.gengage-chat-product-variant-swatch{border:1px solid var(--border-default);background:var(--surface-card-muted);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface-card);border-radius:50%;flex:0 0 22px}.gengage-chat-product-variant-swatch--image{object-fit:cover;box-shadow:none}.gengage-chat-product-variant-label,.gengage-chat-product-variant-price{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gengage-chat-product-variant-price{color:var(--text-secondary);font-size:12px;font-weight:700}.gengage-chat-product-details-actions{gap:10px;margin-top:6px}.gengage-chat-product-details-atc,.gengage-chat-product-details-cta{border-radius:var(--radius-control);min-height:44px}.gengage-chat-product-details-atc{border:1px solid var(--ds-button-primary-border);background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg)}.gengage-chat-product-details-atc:hover{background:var(--ds-button-primary-bg-hover);filter:none}.gengage-chat-product-details-cta.gds-btn-secondary{border-color:var(--ds-button-secondary-border);background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg)}.gengage-chat-product-details-cta.gds-btn-secondary:hover{background:var(--ds-button-secondary-bg-hover)}@media (width>=960px){.gengage-chat-product-details-panel{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;display:grid}.gengage-chat-product-details-media{position:sticky;top:0}.gengage-chat-product-detail-tabs{grid-column:1/-1}}.gengage-chat-root--mobile .gengage-chat-product-details-panel{box-shadow:none;gap:10px;padding:10px}.gengage-chat-root--mobile .gengage-chat-product-details-media{min-height:220px}.gengage-chat-root--mobile .gengage-chat-product-details-title{font-size:18px}.gengage-chat-root--mobile .gengage-chat-product-details-current-price{font-size:24px}.gengage-chat-root--mobile .gengage-chat-product-details-facts{grid-template-columns:1fr}.gengage-chat-root--mobile .gengage-chat-product-details-actions{grid-template-columns:1fr 1fr 44px;align-items:stretch;display:grid}.gengage-chat-root--mobile .gengage-chat-product-details-actions>.gengage-chat-product-details-share{width:44px;min-width:44px}.gengage-chat-root--mobile .gengage-chat-product-details-atc,.gengage-chat-root--mobile .gengage-chat-product-details-cta{width:100%;padding-inline:10px}.gengage-chat-product-grid-wrapper{flex-direction:column;gap:6px;display:flex}.gengage-chat-product-grid-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.gengage-chat-product-grid-head-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:18px;font-weight:700;line-height:1.2;overflow:hidden}.gengage-chat-product-grid-head-actions{flex-shrink:0;align-items:center;gap:6px;max-width:52%;display:flex}.gengage-chat-product-sort-toolbar{box-shadow:none;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;padding:0;display:flex}.gengage-chat-product-sort-toolbar--inline{flex-wrap:nowrap;justify-content:flex-end}.gengage-chat-product-sort-dropdown{z-index:5;flex:0 auto;width:auto;min-width:0;max-width:200px;position:relative}.gengage-chat-product-sort-toolbar:not(.gengage-chat-product-sort-toolbar--inline) .gengage-chat-product-sort-dropdown{flex:auto;max-width:min(200px,100%)}.gengage-chat-product-sort-dropdown--open{z-index:25}.gengage-chat-product-sort-trigger{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:100%;min-height:32px;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.gengage-chat-product-sort-trigger:hover{border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));background:var(--surface-card-soft)}.gengage-chat-product-sort-trigger:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger{border-color:color-mix(in srgb, var(--client-primary) 32%, var(--border-default));box-shadow:var(--shadow-2)}.gengage-chat-product-sort-trigger-icon{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gengage-chat-product-sort-dropdown[data-sort-icon=related] .gengage-chat-product-sort-trigger-icon{color:var(--client-primary)}.gengage-chat-product-sort-trigger-icon svg{display:block}.gengage-chat-product-sort-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gengage-chat-product-sort-trigger-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s;display:flex}.gengage-chat-product-sort-dropdown--open .gengage-chat-product-sort-trigger-chevron{transform:rotate(180deg)}.gengage-chat-product-sort-menu{width:max-content;min-width:100%;max-width:min(260px,100vw - 48px);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:auto}.gengage-chat-product-sort-option{border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background .12s;display:flex}.gengage-chat-product-sort-option:hover{background:var(--surface-card-muted)}.gengage-chat-product-sort-option--active{color:var(--client-primary);background:var(--client-primary-subtle);font-weight:600}.gengage-chat-product-sort-option-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-product-sort-option--active .gengage-chat-product-sort-option-icon,.gengage-chat-product-sort-option--active[data-sort-key=related] .gengage-chat-product-sort-option-icon{color:var(--client-primary)}.gengage-chat-product-sort-option-icon svg{display:block}.gengage-chat-product-sort-option-label{flex:auto;min-width:0}.gengage-chat-product-sort-option-check{width:22px;color:var(--client-primary);flex-shrink:0;justify-content:flex-end;display:flex}.gengage-chat-product-sort-option-check--hidden{visibility:hidden}.gengage-chat-product-sort-separator{background:var(--border-default);width:1px;margin:2px}.gengage-chat-comparison-toggle-btn{border:1px solid var(--border-default);border-radius:var(--radius-control,12px);background:var(--surface-card);min-height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gengage-chat-comparison-toggle-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.gengage-chat-comparison-toggle-icon svg{display:block}.gengage-chat-comparison-toggle-btn:hover{background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, white);color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active{border-color:color-mix(in srgb, var(--client-primary) 26%, white);color:var(--client-primary);background:color-mix(in srgb, var(--client-primary) 8%, white)}.gengage-chat-comparison-toggle-btn--active .gengage-chat-comparison-toggle-icon{color:var(--client-primary)}.gengage-chat-comparison-toggle-btn--active:hover{background:var(--client-primary-hover);color:var(--client-on-primary);border-color:var(--client-primary-hover)}.gengage-chat-comparison-toggle-btn--active:hover .gengage-chat-comparison-toggle-icon{color:var(--client-on-primary)}.gengage-chat-comparison-select-wrapper{cursor:pointer;border-radius:var(--radius-control);transition:box-shadow .2s,transform .2s;position:relative}.gengage-chat-comparison-select-wrapper:hover{box-shadow:0 0 0 2px var(--client-focus-ring)}.gengage-chat-comparison-select-wrapper--selected,.gengage-chat-comparison-select-wrapper--selected:hover{box-shadow:none}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-select-wrapper{transition:none}}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card{pointer-events:none;transition:opacity .2s,transform .2s,filter .2s}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-img-actions,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-discount-badge,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-buy-footer,.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-cta{opacity:0}.gengage-chat-comparison-select-wrapper>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:.82}.gengage-chat-comparison-select-wrapper:hover>.gengage-chat-product-card,.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{opacity:1;transform:translateY(-1px)}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--client-primary) 26%, white), var(--shadow-1);filter:saturate(1.02);border-color:#0000;outline:none}.gengage-chat-comparison-select-wrapper--selected>.gengage-chat-product-card .gengage-chat-product-card-body{opacity:1}.gengage-chat-comparison-card-hint{display:none}.gengage-chat-comparison-checkbox{z-index:4;cursor:pointer;pointer-events:auto;border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 94%, white);min-height:40px;color:var(--text-primary);box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;bottom:16px;left:16px;right:16px}.gengage-chat-comparison-checkbox[data-selected=true]{background:color-mix(in srgb, var(--client-primary) 10%, white);border-color:color-mix(in srgb, var(--client-primary) 22%, var(--border-default));color:var(--client-primary)}.gengage-chat-comparison-checkbox-icon{background:var(--surface-card-soft);color:currentColor;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.gengage-chat-comparison-checkbox[data-selected=true] .gengage-chat-comparison-checkbox-icon{background:var(--client-primary);color:var(--client-on-primary)}.gengage-chat-comparison-checkbox-dot{background:color-mix(in srgb, currentColor 75%, white);border-radius:999px;width:8px;height:8px}.gengage-chat-comparison-checkbox-label{font-size:12px;font-weight:700;line-height:1.2}.gengage-chat-comparison-toggle-btn--hidden{opacity:0;pointer-events:none}@keyframes gengage-comparison-fade-in{0%{opacity:0}to{opacity:1}}.gengage-chat-comparison-toggle-btn--reveal{animation:.5s forwards gengage-comparison-fade-in}@media (prefers-reduced-motion:reduce){.gengage-chat-comparison-toggle-btn--reveal{opacity:1;animation:none}}.gengage-chat-comparison-floating-btn{border:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-card) 92%, white);width:min(100%,520px);color:var(--text-primary);z-index:5;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin:16px auto 0;padding:12px 14px;display:flex;position:sticky;bottom:12px}.gengage-chat-comparison-dock-slot{display:none}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot:not(:empty){z-index:30;padding:0 10px max(6px, env(safe-area-inset-bottom,0px));box-sizing:border-box;pointer-events:none;max-width:100%;display:block;position:absolute;bottom:0;left:0;right:0}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot>*{pointer-events:auto}.gengage-chat-comparison-floating-summary{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.gengage-chat-comparison-floating-count{background:var(--client-primary-subtle);min-width:32px;height:32px;color:var(--client-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.gengage-chat-comparison-floating-copy{min-width:0}.gengage-chat-comparison-floating-title{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.2}.gengage-chat-comparison-floating-warning{color:var(--error);margin-top:4px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.35}.gengage-chat-comparison-floating-action{flex:none;min-width:132px}.gengage-chat-comparison-floating-close{border-radius:14px;flex:none;width:40px;height:40px;padding:0}.gengage-chat-comparison-floating-action--disabled{opacity:.6}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px;margin:0;padding:10px;position:relative;bottom:auto}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-summary{align-items:center;gap:8px;min-height:26px;padding-right:34px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-count{flex-shrink:0;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-title{margin:0;font-size:13px;line-height:1.25}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-warning{margin-top:2px;font-size:11px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-action{box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-width:0;max-width:100%;min-height:42px;padding:0 12px;font-size:13px;display:flex}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close{box-sizing:border-box;align-self:unset;z-index:10;touch-action:manipulation;border-radius:8px;flex:none;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;max-height:26px;padding:0;line-height:0;position:absolute;top:9px;right:9px}.gengage-chat-root--mobile .gengage-chat-comparison-dock-slot .gengage-chat-comparison-floating-close svg{width:11px;height:11px;display:block}.gengage-chat-panel-topbar{box-sizing:border-box;height:var(--_gengage-chat-header-height);background:var(--surface-card);z-index:3;border-bottom:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.gengage-chat-panel-topbar-title-wrap{flex:1 1 0;align-items:center;min-width:0;display:flex}.gengage-chat-panel-topbar-back,.gengage-chat-panel-topbar-forward{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:0;transition:background .15s,border-color .15s,opacity .15s;display:flex}.gengage-chat-panel-topbar-back[hidden],.gengage-chat-panel-topbar-forward[hidden]{display:none}.gengage-chat-panel-topbar-back:hover:not(:disabled),.gengage-chat-panel-topbar-forward:hover:not(:disabled){background:var(--surface-card-soft);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}.gengage-chat-panel-topbar-back:disabled,.gengage-chat-panel-topbar-forward:disabled{opacity:.3;cursor:default}.gengage-chat-panel-topbar-title{width:100%;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2;display:block;overflow:hidden}.gengage-chat-panel-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.gengage-chat-panel-topbar-actions:empty{display:none}.gengage-chat-panel-topbar-toolbar-host{justify-content:flex-end;align-items:center;width:100%;display:flex}.gengage-chat-panel-topbar-toolbar-host .gengage-chat-product-sort-toolbar{flex-wrap:nowrap;justify-content:flex-end;gap:8px}.gengage-chat-panel-topbar-close{display:none}@keyframes gengage-typewriter-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gengage-chat-typewriter-block{animation:.15s both gengage-typewriter-fade-in;display:block}@media (prefers-reduced-motion:reduce){.gengage-chat-typewriter-block{animation:none}}.gengage-product-mention{color:var(--client-primary);cursor:pointer;border-bottom:1px dashed var(--client-primary);font-weight:500;text-decoration:none;transition:border-color .15s}.gengage-product-mention:hover{border-bottom-style:solid}@keyframes gengage-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.gengage-chat-panel-skeleton-block{animation:1.5s ease-in-out infinite gengage-skeleton-pulse}@media (prefers-reduced-motion:reduce){.gengage-chat-panel-skeleton-block{animation:none}}.gengage-chat-input-chips{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:6px;padding:4px 12px 2px;display:flex;overflow-x:auto}.gengage-chat-input-chips::-webkit-scrollbar{display:none}.gengage-chat-input-chip{border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gengage-chat-input-chip:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 24%, var(--border-default));color:var(--client-primary)}.gengage-chat-icon{flex-shrink:0;width:14px;height:14px}.gengage-chat-input-chip-icon,.gengage-chat-pill-icon{align-items:center;margin-right:4px;display:inline-flex}.gengage-chat-product-card-img-wrapper,.gengage-chat-product-details-img-wrap{position:relative;overflow:hidden}.gengage-chat-product-card-discount-badge{border-radius:var(--radius-pill);background:var(--_gengage-discount-color);color:var(--text-inverse);z-index:1;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;position:absolute;top:8px;left:8px}.gengage-chat-product-card-stock{border-radius:var(--radius-pill);width:fit-content;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:600}.gengage-chat-product-card-stock.is-in-stock{background:color-mix(in srgb, var(--success) 12%, white);color:color-mix(in srgb, var(--success) 82%, var(--text-primary))}.gengage-chat-product-card-stock.is-out-of-stock{background:color-mix(in srgb, var(--error) 10%, white);color:var(--error)}.gengage-chat-find-similar-pill{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);width:28px;height:28px;color:var(--text-primary);box-shadow:var(--shadow-1);cursor:pointer;z-index:2;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:500;transition:opacity .2s,box-shadow .15s;display:inline-flex;position:relative}.gengage-chat-find-similar-pill:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default))}@media (hover:hover) and (pointer:fine){.gengage-chat-find-similar-pill:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface-shell) 98%, black);border:1px solid color-mix(in srgb, var(--surface-shell) 60%, white);box-shadow:var(--shadow-2);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;z-index:12;border-radius:10px;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.2;transition:opacity .14s;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.gengage-chat-find-similar-pill:hover:after,.gengage-chat-find-similar-pill:focus-visible:after{opacity:1}}.gengage-chat-find-similar-pill-icon{justify-content:center;align-items:center;display:flex}.gengage-chat-find-similar-pill-icon svg{display:block}.gengage-chat-find-similar-pill-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{transition:opacity .2s}@media (hover:hover) and (pointer:fine){.gengage-chat-product-card-img-wrapper:not(:hover) .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:not(:hover) .gengage-chat-product-card-img-actions{opacity:0;pointer-events:none}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media:hover .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.gengage-chat-product-card-img-wrapper .gengage-chat-product-card-img-actions,.gengage-chat-ai-toppick-media .gengage-chat-product-card-img-actions{opacity:1;pointer-events:auto}}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-shell) 88%, transparent);width:auto;height:auto;color:var(--text-inverse);box-shadow:none;opacity:0;pointer-events:none;padding:4px 10px;position:absolute;top:40px;right:8px}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-icon{display:none}.gengage-chat-product-details-img-wrap .gengage-chat-find-similar-pill-text{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}.gengage-chat-product-card-img-wrapper:hover .gengage-chat-find-similar-pill,.gengage-chat-ai-toppick-media:hover .gengage-chat-find-similar-pill,.gengage-chat-product-details-img-wrap:hover .gengage-chat-find-similar-pill{opacity:1;pointer-events:auto}.gengage-chat-favorite-btn{background:color-mix(in srgb, var(--surface-elevated) 96%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-control);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);box-shadow:var(--shadow-1);z-index:3;justify-content:center;align-items:center;padding:0;transition:color .2s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px}.gengage-chat-favorite-btn:hover{box-shadow:var(--shadow-2);color:var(--error);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}.gengage-chat-favorite-btn--active{color:var(--error)}.gengage-chat-product-details-promos{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.gengage-chat-product-details-promo-badge{border-radius:var(--radius-pill);background:var(--gengage-chat-promo-bg,color-mix(in srgb, var(--success) 12%, white));color:var(--gengage-chat-promo-text,color-mix(in srgb, var(--success) 82%, var(--text-primary)));white-space:nowrap;box-sizing:border-box;min-height:20px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-block}.gengage-chat-thumbnails-column{pointer-events:none;display:none!important}.gengage-chat-thumbnail-btn{border:2px solid var(--border-default);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-card);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .15s;display:flex;overflow:hidden}.gengage-chat-thumbnail-btn:hover{border-color:var(--client-primary)}.gengage-chat-thumbnail-img{object-fit:cover;width:100%;height:100%}.gengage-chat-panel-float{box-sizing:border-box;pointer-events:none;z-index:10;flex-shrink:0;align-self:stretch;width:100%;height:0;margin-top:auto;position:sticky;bottom:0;overflow:visible}.gengage-chat-choice-prompter{pointer-events:none;background:var(--surface-card);border:1px solid var(--border-default);width:auto;max-width:none;box-shadow:var(--shadow-2);z-index:5;opacity:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-left:0;margin-right:0;padding:12px 14px;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:12px;left:16px;right:16px;transform:translateY(12px)}.gengage-chat-panel--scrolled .gengage-chat-choice-prompter{pointer-events:auto;opacity:1;transform:translateY(0)}.gengage-chat-choice-prompter-heading{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:700}.gengage-chat-choice-prompter-suggestion{color:var(--text-secondary);margin-bottom:0;font-size:12px;line-height:1.35}.gengage-chat-choice-prompter-copy{min-width:0}.gengage-chat-choice-prompter-cta{border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-control);background:var(--ds-button-primary-bg);width:auto;min-width:180px;min-height:40px;color:var(--ds-button-primary-fg);cursor:pointer;text-align:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.gengage-chat-choice-prompter-cta:hover{background:var(--ds-button-primary-bg-hover)}.gengage-chat-choice-prompter-dismiss{border:1px solid var(--border-default);background:var(--surface-card-soft);min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.gengage-chat-choice-prompter-dismiss:hover{color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 18%, white);background:var(--client-primary-subtle)}@media (prefers-reduced-motion:reduce){.gengage-chat-choice-prompter{animation:none}}.gengage-chat-pros-cons{background:var(--surface-card-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-control);margin:8px 0;padding:12px 14px}.gengage-chat-pros-cons-heading{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.gengage-chat-pros-cons-list{margin:0 0 8px;padding:0;list-style:none}.gengage-chat-pros-cons-list:last-child{margin-bottom:0}.gengage-chat-pros-cons-item{color:var(--text-secondary);align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;line-height:1.5;display:flex}.gengage-chat-pros-cons-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:flex}.gengage-chat-pros-cons-icon--pro{color:var(--success);background:color-mix(in srgb, var(--success) 15%, white)}.gengage-chat-pros-cons-icon--con{color:var(--error);background:color-mix(in srgb, var(--error) 12%, white)}.gengage-chat-categories{flex-direction:column;gap:8px;display:flex}.gengage-chat-categories-tabs{-webkit-overflow-scrolling:touch;gap:4px;padding:4px 0;display:flex;overflow-x:auto}.gengage-chat-categories-tab{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.gengage-chat-categories-tab:hover{background:var(--surface-card-soft);border-color:var(--border-strong)}.gengage-chat-categories-tab--active{background:var(--client-primary-subtle);color:var(--client-primary);border-color:color-mix(in srgb, var(--client-primary) 26%, var(--border-default))}.gengage-chat-categories-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gengage-chat-categories-filter-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.gengage-chat-categories-filter-tag{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.gengage-chat-categories-filter-tag:hover{background:var(--client-primary-subtle);border-color:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));color:var(--client-primary)}.gengage-chat-product-grid-view-more{border:1px solid var(--ds-button-secondary-border);border-radius:var(--radius-control);background:var(--ds-button-secondary-bg);width:100%;color:var(--ds-button-secondary-fg);cursor:pointer;text-align:center;grid-column:1/-1;margin-top:8px;padding:10px;font-size:14px;font-weight:500;transition:background .15s;display:block}.gengage-chat-product-grid-view-more:hover{background:var(--ds-button-secondary-bg-hover)}.gengage-chat-product-grid--mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0;display:grid;overflow-x:visible}.gengage-chat-product-grid--mobile .gengage-chat-product-card{width:100%;min-width:0;max-width:none}.gengage-chat-comparison--mobile{position:relative;overflow-x:clip}.gengage-chat-comparison--mobile .gengage-chat-comparison-table-wrapper{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.gengage-chat-comparison--mobile .gengage-chat-comparison-table{table-layout:fixed;min-width:480px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table th:first-child,.gengage-chat-comparison--mobile .gengage-chat-comparison-table .gengage-chat-comparison-label{background:var(--surface-card);z-index:1;box-shadow:2px 0 4px color-mix(in srgb, var(--surface-shell) 8%, transparent);position:sticky;left:0}.gengage-chat-comparison--mobile .gengage-chat-comparison-table thead th:first-child{box-sizing:border-box;width:22ch;min-width:0;max-width:22ch;padding:8px 6px}.gengage-chat-comparison--mobile .gengage-chat-comparison-table td.gengage-chat-comparison-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;width:22ch;min-width:0;max-width:22ch;overflow:hidden}.gengage-chat-product-details-similars-heading{color:var(--text-primary);margin:16px 0 8px;font-size:18px;font-weight:700;line-height:1.2}.gengage-chat-product-details-similars{margin-top:8px}.gengage-chat-handoff-notice{background:color-mix(in srgb, var(--warning) 10%, white);border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border-default));border-radius:var(--radius-control);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:16px;display:flex}.gengage-chat-handoff-notice-icon{font-size:24px}.gengage-chat-handoff-notice-heading{color:color-mix(in srgb, var(--warning) 72%, var(--text-primary));margin:0;font-size:14px;font-weight:600}.gengage-chat-handoff-notice-summary{color:color-mix(in srgb, var(--warning) 84%, var(--text-primary));margin:0;font-size:13px;line-height:1.5}.gengage-chat-product-details-share{border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);width:36px;height:36px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,border-color .12s,background-color .12s;display:inline-flex;position:relative}.gengage-chat-product-details-share:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--client-primary-subtle)}.gengage-chat-product-details-share:before{content:attr(aria-label);border-radius:calc(var(--radius-control) - 4px);background:var(--surface-shell);color:var(--text-inverse);white-space:nowrap;pointer-events:none;opacity:0;z-index:2;padding:4px 8px;font-size:11px;font-weight:500;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gengage-chat-product-details-share:hover:before{opacity:1}.gengage-chat-product-details-share--copied:after{content:\"✓\";background:var(--_gengage-success-color);color:var(--client-on-primary);border-radius:var(--radius-control);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;position:absolute;inset:0}.gengage-chat-product-details-share svg{width:20px;height:20px}.gengage-chat-review-link,.gengage-chat-grounding-link{color:var(--client-primary);text-decoration:underline}@media (width<=768px){.gengage-chat-product-details-promo-badge{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.gengage-chat-launcher:focus-visible,.gengage-chat-close:focus-visible,.gengage-chat-header-btn:focus-visible,.gengage-chat-header-powered:focus-visible,.gengage-chat-send:focus-visible,.gengage-chat-action-btn:focus-visible,.gengage-chat-pill:focus-visible,.gengage-chat-input-chip:focus-visible,.gengage-chat-pills-arrow:focus-visible,.gengage-chat-error-retry:focus-visible,.gengage-chat-product-card-cta:focus-visible,.gengage-chat-product-details-cta:focus-visible,.gengage-chat-product-details-atc:focus-visible,.gengage-chat-product-detail-tab:focus-visible,.gengage-chat-panel-divider-toggle:focus-visible,.gengage-chat-panel-topbar-back:focus-visible,.gengage-chat-panel-topbar-forward:focus-visible,.gengage-chat-rollback-btn:focus-visible,.gengage-chat-ai-toppick-cta:focus-visible,.gengage-chat-comparison-toggle-btn:focus-visible,.gengage-chat-comparison-floating-btn:focus-visible,.gengage-chat-comparison-checkbox:focus-visible,.gengage-chat-product-sort-trigger:focus-visible,.gengage-chat-product-sort-option:focus-visible,.gengage-chat-product-variant-btn:focus-visible,.gengage-chat-product-gallery-thumb:focus-visible,.gengage-chat-thumbnail-btn:focus-visible,.gengage-chat-find-similar-pill:focus-visible,.gengage-chat-favorite-btn:focus-visible,.gengage-chat-attach-btn:focus-visible,.gengage-chat-attach-menu-item:focus-visible,.gengage-chat-mic-btn:focus-visible,.gengage-chat-attachment-remove:focus-visible,.gengage-chat-kvkk-dismiss:focus-visible,.gengage-chat-choice-prompter-cta:focus-visible,.gengage-chat-choice-prompter-dismiss:focus-visible,.gengage-chat-categories-tab:focus-visible,.gengage-chat-categories-filter-tag:focus-visible,.gengage-chat-product-grid-view-more:focus-visible,.gengage-chat-product-details-share:focus-visible{outline:2px solid var(--client-focus-ring);outline-offset:2px}.gengage-chat-root--mobile .gengage-chat-choice-prompter{grid-template-columns:1fr;width:auto;max-width:none;max-height:40vh;bottom:12px;left:12px;right:12px;overflow-y:auto}.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta{width:100%}.gengage-chat-root--mobile .gengage-chat-product-sort-trigger,.gengage-chat-root--mobile .gengage-chat-product-sort-option,.gengage-chat-root--mobile .gengage-chat-comparison-toggle-btn{min-height:40px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-label,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger-chevron,.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-label{display:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-dropdown{flex:none;width:auto;max-width:none}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-product-sort-trigger{justify-content:center;gap:0;width:auto;min-width:44px;padding:0 10px}.gengage-chat-root--mobile .gengage-chat-panel .gengage-chat-comparison-toggle-btn{justify-content:center;gap:0;width:44px;min-width:44px;padding:0}.gengage-chat-root--mobile .gengage-chat-input-chip{min-height:40px;padding:8px 12px}.gengage-chat-root--mobile .gengage-chat-choice-prompter-dismiss{width:32px;height:32px}.gengage-chat-root--mobile .gengage-chat-panel-divider-toggle{min-height:44px}.gengage-chat-root--mobile .gengage-chat-product-card-cta,.gengage-chat-root--mobile .gengage-chat-choice-prompter-cta,.gengage-chat-root--mobile .gengage-chat-product-grid-view-more{justify-content:center;align-items:center;min-height:44px;display:flex}.gengage-chat-root--mobile .gengage-chat-panel-topbar-back,.gengage-chat-root--mobile .gengage-chat-panel-topbar-forward,.gengage-chat-root--mobile .gengage-chat-favorite-btn,.gengage-chat-root--mobile .gengage-chat-product-details-share{width:44px;min-width:44px;height:44px}.gengage-chat-root--mobile .gengage-chat-panel-topbar-close{display:none}.gengage-skeleton{gap:12px;padding:12px;display:flex}.gengage-skeleton--message{flex-direction:column;gap:8px;padding:16px}.gengage-skeleton-card{flex-direction:column;flex:1;gap:8px;display:flex}.gengage-skeleton-img{border-radius:var(--radius-control);height:120px}.gengage-skeleton-text{border-radius:4px;height:14px}.gengage-skeleton-price{border-radius:4px;width:60%;height:14px}.gengage-skeleton-line{border-radius:4px;height:12px}@media (prefers-reduced-motion:no-preference){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:linear-gradient(90deg, var(--ds-neutral-100) 25%, var(--ds-neutral-200) 50%, var(--ds-neutral-100) 75%);background-size:200% 100%;animation:1.5s infinite gengage-shimmer}@keyframes gengage-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}}@media (prefers-reduced-motion:reduce){.gengage-skeleton-card,.gengage-skeleton-line,.gengage-skeleton-img,.gengage-skeleton-text,.gengage-skeleton-price{background:var(--ds-neutral-100)}}.gengage-chat-panel--has-scroll:after{content:\"\";background:linear-gradient(transparent, var(--surface-card-soft));pointer-events:none;height:40px;display:block;position:sticky;bottom:0}@media (prefers-reduced-motion:no-preference){.gengage-chat-panel--transitioning{opacity:0;transition:opacity .15s}}.gengage-chat-cart-toast{background:var(--success);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-3);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:72px;left:50%;transform:translate(-50%)translateY(8px)}.gengage-chat-cart-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@keyframes gengage-cart-flash{0%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}to{transform:scale(1)}}.gengage-chat-header-btn--cart-flash{animation:.5s gengage-cart-flash}", Nr = o({
4356
4483
  role: u(["user", "assistant"]),
4357
4484
  content: n(),
4358
4485
  timestamp: t().optional()
4359
- }), Mr = o({
4486
+ }), Pr = o({
4360
4487
  sku: n(),
4361
4488
  name: n(),
4362
4489
  imageUrl: n().url().optional(),
@@ -4364,23 +4491,23 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4364
4491
  originalPrice: n().optional(),
4365
4492
  url: n().url(),
4366
4493
  ctaLabel: n().optional()
4367
- }), Nr = o({ buttons: a(o({
4494
+ }), Fr = o({ buttons: a(o({
4368
4495
  label: n(),
4369
4496
  action: o({
4370
4497
  title: n(),
4371
4498
  type: n(),
4372
4499
  payload: d().optional()
4373
4500
  })
4374
- })) }), Pr = o({}), Fr = o({ label: n().optional() }), Ir = o({
4501
+ })) }), Ir = o({}), Lr = o({ label: n().optional() }), Rr = o({
4375
4502
  sku: n(),
4376
4503
  name: n(),
4377
4504
  price: n(),
4378
4505
  imageUrl: n().optional(),
4379
4506
  rating: t().optional(),
4380
4507
  reviewCount: t().optional()
4381
- }), Lr = o({
4382
- recommended: Ir,
4383
- products: a(Ir),
4508
+ }), zr = o({
4509
+ recommended: Rr,
4510
+ products: a(Rr),
4384
4511
  attributes: a(o({
4385
4512
  label: n(),
4386
4513
  values: a(n())
@@ -4397,18 +4524,18 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4397
4524
  type: n(),
4398
4525
  payload: d().optional()
4399
4526
  })).optional()
4400
- }), Rr = o({
4527
+ }), Br = o({
4401
4528
  label: n(),
4402
4529
  sentiment: u([
4403
4530
  "positive",
4404
4531
  "negative",
4405
4532
  "neutral"
4406
4533
  ]).optional()
4407
- }), zr = o({ suggestions: a(o({
4534
+ }), Vr = o({ suggestions: a(o({
4408
4535
  product: l(n(), d()),
4409
4536
  role: n().optional(),
4410
4537
  reason: n().optional(),
4411
- labels: a(Rr).optional(),
4538
+ labels: a(Br).optional(),
4412
4539
  expertQualityScore: t().optional(),
4413
4540
  reviewHighlight: n().optional(),
4414
4541
  action: o({
@@ -4416,7 +4543,7 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4416
4543
  type: n(),
4417
4544
  payload: d().optional()
4418
4545
  }).optional()
4419
- })) }), Br = o({
4546
+ })) }), Hr = o({
4420
4547
  title: n().optional(),
4421
4548
  text: n().optional(),
4422
4549
  reviewCount: n().optional(),
@@ -4425,7 +4552,7 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4425
4552
  type: n(),
4426
4553
  payload: d().optional()
4427
4554
  })
4428
- }), Vr = o({ entries: a(o({
4555
+ }), Ur = o({ entries: a(o({
4429
4556
  name: n(),
4430
4557
  image: n().optional(),
4431
4558
  description: n().optional(),
@@ -4434,7 +4561,7 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4434
4561
  type: n(),
4435
4562
  payload: d().optional()
4436
4563
  })
4437
- })) }), Hr = o({ entries: a(o({
4564
+ })) }), Wr = o({ entries: a(o({
4438
4565
  shortName: n(),
4439
4566
  detailedMessage: n().optional(),
4440
4567
  whyDifferent: n().optional(),
@@ -4444,11 +4571,11 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4444
4571
  type: n(),
4445
4572
  payload: d().optional()
4446
4573
  })
4447
- })) }), Ur = o({
4574
+ })) }), Gr = o({
4448
4575
  title: n(),
4449
4576
  type: n(),
4450
4577
  payload: d().optional()
4451
- }), Wr = o({
4578
+ }), $ = o({
4452
4579
  name: n().optional(),
4453
4580
  value: n().optional(),
4454
4581
  option_value: n().optional(),
@@ -4472,7 +4599,7 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4472
4599
  swatchColor: n().optional(),
4473
4600
  in_stock: c().optional(),
4474
4601
  inStock: c().optional()
4475
- }), Gr = o({
4602
+ }), Kr = o({
4476
4603
  product: o({
4477
4604
  sku: n().optional(),
4478
4605
  name: n().optional(),
@@ -4486,11 +4613,11 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4486
4613
  price_async: c().optional(),
4487
4614
  inStock: c().optional(),
4488
4615
  promotions: a(n()).optional(),
4489
- variants: a(Wr).optional(),
4490
- variantOptions: a(Wr).optional(),
4491
- variant_options: a(Wr).optional(),
4492
- productVariants: a(Wr).optional(),
4493
- product_variants: a(Wr).optional(),
4616
+ variants: a($).optional(),
4617
+ variantOptions: a($).optional(),
4618
+ variant_options: a($).optional(),
4619
+ productVariants: a($).optional(),
4620
+ product_variants: a($).optional(),
4494
4621
  url: n().optional(),
4495
4622
  cartCode: n().optional(),
4496
4623
  description: n().optional(),
@@ -4513,110 +4640,110 @@ var Ar = ":where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel
4513
4640
  value: n()
4514
4641
  }))]).optional()
4515
4642
  }).optional(),
4516
- action: Ur.optional()
4517
- }), Kr = o({ endOfList: c().optional() }), qr = o({ reviews: a(o({
4643
+ action: Gr.optional()
4644
+ }), qr = o({ endOfList: c().optional() }), Jr = o({ reviews: a(o({
4518
4645
  review_class: n().optional(),
4519
4646
  review_text: n().optional(),
4520
4647
  review_rating: i([n(), t()]).optional(),
4521
4648
  review_tag: n().optional()
4522
- })).optional() }), Jr = o({
4649
+ })).optional() }), Yr = o({
4523
4650
  productName: n().optional(),
4524
4651
  pros: a(n()).optional(),
4525
4652
  cons: a(n()).optional()
4526
- }), Yr = o({
4653
+ }), Xr = o({
4527
4654
  groups: a(o({
4528
4655
  groupName: n(),
4529
4656
  products: a(l(n(), d())).optional()
4530
4657
  })).optional(),
4531
4658
  filterTags: a(o({
4532
4659
  title: n(),
4533
- action: Ur.optional()
4660
+ action: Gr.optional()
4534
4661
  })).optional()
4535
- }), Xr = o({
4662
+ }), Zr = o({
4536
4663
  summary: n().optional(),
4537
4664
  products_discussed: a(n()).optional(),
4538
4665
  user_sentiment: n().optional()
4539
- }), Zr = { components: {
4666
+ }), Qr = { components: {
4540
4667
  MessageBubble: {
4541
- schema: jr,
4668
+ schema: Nr,
4542
4669
  description: "A single chat message bubble for user or assistant turns."
4543
4670
  },
4544
4671
  ProductCard: {
4545
- schema: Mr,
4672
+ schema: Pr,
4546
4673
  description: "A product card rendered inline in the chat stream."
4547
4674
  },
4548
4675
  ActionButtons: {
4549
- schema: Nr,
4676
+ schema: Fr,
4550
4677
  description: "A horizontal row of quick-reply action buttons."
4551
4678
  },
4552
4679
  TypingIndicator: {
4553
- schema: Pr,
4680
+ schema: Ir,
4554
4681
  description: "An animated indicator shown while the assistant is typing."
4555
4682
  },
4556
4683
  Divider: {
4557
- schema: Fr,
4684
+ schema: Lr,
4558
4685
  description: "A horizontal rule with an optional label."
4559
4686
  },
4560
4687
  ComparisonTable: {
4561
- schema: Lr,
4688
+ schema: zr,
4562
4689
  description: "A product comparison table with recommended pick, attribute rows, and highlights."
4563
4690
  },
4564
4691
  AITopPicks: {
4565
- schema: zr,
4692
+ schema: Vr,
4566
4693
  description: "Rich AI-curated product suggestion cards with roles, sentiment labels, scores, and review quotes."
4567
4694
  },
4568
4695
  GroundingReviewCard: {
4569
- schema: Br,
4696
+ schema: Hr,
4570
4697
  description: "A card showing review grounding data with review count and CTA."
4571
4698
  },
4572
4699
  AIGroupingCards: {
4573
- schema: Vr,
4700
+ schema: Ur,
4574
4701
  description: "Category grouping cards with images and labels for product discovery."
4575
4702
  },
4576
4703
  AISuggestedSearchCards: {
4577
- schema: Hr,
4704
+ schema: Wr,
4578
4705
  description: "Suggested search cards with images, descriptions, and differentiation."
4579
4706
  },
4580
4707
  ProductDetailsPanel: {
4581
- schema: Gr,
4708
+ schema: Kr,
4582
4709
  description: "Full product detail view with images, specs, variants, and purchase actions."
4583
4710
  },
4584
4711
  ProductGrid: {
4585
- schema: Kr,
4712
+ schema: qr,
4586
4713
  description: "A scrollable grid of ProductCard children with optional \"more\" pagination."
4587
4714
  },
4588
4715
  ReviewHighlights: {
4589
- schema: qr,
4716
+ schema: Jr,
4590
4717
  description: "A list of highlighted customer reviews with sentiment and ratings."
4591
4718
  },
4592
4719
  ProsAndCons: {
4593
- schema: Jr,
4720
+ schema: Yr,
4594
4721
  description: "A pros and cons list for a product."
4595
4722
  },
4596
4723
  CategoriesContainer: {
4597
- schema: Yr,
4724
+ schema: Xr,
4598
4725
  description: "Tabbed product groups with optional filter tag buttons."
4599
4726
  },
4600
4727
  HandoffNotice: {
4601
- schema: Xr,
4728
+ schema: Zr,
4602
4729
  description: "A notice shown when the conversation is escalated to a human agent."
4603
4730
  }
4604
4731
  } };
4605
4732
  //#endregion
4606
4733
  //#region src/chat/index.ts
4607
- function Qr(e) {
4734
+ function $r(e) {
4608
4735
  return e.length > 120 ? !1 : /^[a-zA-Z0-9#(),.\s%/\-]+$/.test(e);
4609
4736
  }
4610
- function $r(e) {
4737
+ function ei(e) {
4611
4738
  return typeof e == "object" && !!e && typeof e.type == "string";
4612
4739
  }
4613
- var ei = class e extends V {
4740
+ var ti = class e extends B {
4614
4741
  constructor(...e) {
4615
- super(...e), this._shadow = null, this._rootEl = null, this._backdropEl = null, this._launcher = null, this._drawer = null, this._bridge = null, this._drawerVisible = !1, this._hostScrollLockActive = !1, this._preventHostDocumentTouchMove = (e) => {
4742
+ super(...e), this._shadow = null, this._rootEl = null, this._backdropEl = null, this._launcher = null, this._drawer = null, this._bridge = null, this._drawerVisible = !1, this._pillLauncherApply = null, this._hostScrollLockActive = !1, this._preventHostDocumentTouchMove = (e) => {
4616
4743
  this._hostScrollLockActive && (this._hostScrollEventShouldReachChatScroller(e) || e.preventDefault());
4617
4744
  }, this._preventHostDocumentWheel = (e) => {
4618
4745
  this._hostScrollLockActive && (this._hostScrollEventShouldReachChatScroller(e) || e.preventDefault());
4619
- }, this._messages = [], this._currentMessageId = 0, this._abortControllers = /* @__PURE__ */ new Set(), this._currentThreadId = null, this._lastThreadId = null, this._chatCreatedAt = "", this._lastBackendContext = null, this._productSort = { type: "related" }, this._comparisonSelectMode = !1, this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, this._comparisonRefreshRafId = null, this._viewedProductSkus = /* @__PURE__ */ new Set(), this._thumbnailEntries = [], this._choicePrompterEl = null, this._openState = "full", this._mobileBreakpoint = 768, this._isMobileViewport = !1, this._pdpLaunched = !1, this._entryContextPrimed = !1, this._pdpPrimingInFlight = !1, this._queuedUserMessages = [], this._productContextUnavailableSku = null, this._i18n = Ae, this._extendedModeManager = null, this._activeTypewriter = null, this._activeTtsHandle = null, this._activeRequestThreadId = null, this._skuToProductItem = {}, this._conversationMode = null, this._initComplete = !1, this._pendingActions = [], this._bridgeContext = null, this._cartQuantity = null, this._threadsWithFirstBot = /* @__PURE__ */ new Set(), this._panel = null, this._localPanelHistory = [], this._currentPanelSource = null, this._session = null, this._presentation = new pr(), this._eventCallbacks = /* @__PURE__ */ new Map(), this._lastSentAction = null, this._consecutiveErrorCount = 0, this._lastErrorMessage = "";
4746
+ }, this._messages = [], this._currentMessageId = 0, this._abortControllers = /* @__PURE__ */ new Set(), this._currentThreadId = null, this._lastThreadId = null, this._chatCreatedAt = "", this._lastBackendContext = null, this._productSort = { type: "related" }, this._comparisonSelectMode = !1, this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, this._comparisonRefreshRafId = null, this._viewedProductSkus = /* @__PURE__ */ new Set(), this._thumbnailEntries = [], this._choicePrompterEl = null, this._openState = "full", this._mobileBreakpoint = 768, this._isMobileViewport = !1, this._pdpLaunched = !1, this._entryContextPrimed = !1, this._pdpPrimingInFlight = !1, this._queuedUserMessages = [], this._productContextUnavailableSku = null, this._i18n = je, this._extendedModeManager = null, this._activeTypewriter = null, this._activeTtsHandle = null, this._activeRequestThreadId = null, this._skuToProductItem = {}, this._conversationMode = null, this._initComplete = !1, this._pendingActions = [], this._bridgeContext = null, this._cartQuantity = null, this._threadsWithFirstBot = /* @__PURE__ */ new Set(), this._panel = null, this._localPanelHistory = [], this._currentPanelSource = null, this._session = null, this._presentation = new mr(), this._eventCallbacks = /* @__PURE__ */ new Map(), this._lastSentAction = null, this._consecutiveErrorCount = 0, this._lastErrorMessage = "";
4620
4747
  }
4621
4748
  static {
4622
4749
  this._MAX_COMPARISON_SELECTION = 5;
@@ -4625,11 +4752,15 @@ var ei = class e extends V {
4625
4752
  this._MAX_PANEL_HISTORY = 10;
4626
4753
  }
4627
4754
  async onInit(e) {
4628
- this._i18n = this._resolveI18n(e), this._chatCreatedAt = (/* @__PURE__ */ new Date()).toISOString(), this._shadow = this.root.attachShadow({ mode: "open" });
4755
+ if (this._i18n = this._resolveI18n(e), this._chatCreatedAt = (/* @__PURE__ */ new Date()).toISOString(), e.pillLauncher) {
4756
+ let t = gr(e.pillLauncher);
4757
+ e.launcherImageUrl = t.launcherImageUrl, e.headerAvatarUrl === void 0 && (e.headerAvatarUrl = e.pillLauncher.avatarUrl), this._pillLauncherApply = () => t.apply(this._shadow ?? void 0);
4758
+ }
4759
+ this._shadow = this.root.attachShadow({ mode: "open" });
4629
4760
  let t = document.createElement("style");
4630
- t.textContent = Ar, this._shadow.appendChild(t);
4761
+ t.textContent = Mr, this._shadow.appendChild(t);
4631
4762
  let n = this.root, r = (e, t) => {
4632
- t && Qr(t) && n.style.setProperty(e, t);
4763
+ t && $r(t) && n.style.setProperty(e, t);
4633
4764
  };
4634
4765
  if (r("--gengage-chat-header-bg", e.headerBg), r("--gengage-chat-header-foreground", e.headerForeground), e.theme) for (let [t, n] of Object.entries(e.theme)) t.startsWith("--") && typeof n == "string" && r(t, n);
4635
4766
  let i = document.createElement("div");
@@ -4646,11 +4777,11 @@ var ei = class e extends V {
4646
4777
  onClick: () => this.open(),
4647
4778
  ariaLabel: this._i18n.openButton
4648
4779
  };
4649
- e.launcherImageUrl === void 0 ? e.launcherSvg !== void 0 && (t.svgMarkup = e.launcherSvg) : t.imageUrl = e.launcherImageUrl, e.hideMobileLauncher !== void 0 && (t.hideMobile = e.hideMobileLauncher), e.mobileBreakpoint !== void 0 && (t.mobileBreakpoint = e.mobileBreakpoint), e.launcherTooltip !== void 0 && (t.tooltip = e.launcherTooltip), this._launcher = Ye(t), i.appendChild(this._launcher.container);
4780
+ e.launcherImageUrl === void 0 ? e.launcherSvg !== void 0 && (t.svgMarkup = e.launcherSvg) : t.imageUrl = e.launcherImageUrl, e.hideMobileLauncher !== void 0 && (t.hideMobile = e.hideMobileLauncher), e.mobileBreakpoint !== void 0 && (t.mobileBreakpoint = e.mobileBreakpoint), e.launcherTooltip !== void 0 && (t.tooltip = e.launcherTooltip), this._launcher = Xe(t), i.appendChild(this._launcher.container);
4650
4781
  }
4651
4782
  a === "overlay" && i.classList.add("gengage-chat--overlay");
4652
4783
  let o = document.createElement("div");
4653
- i.appendChild(o), this._drawer = new qe(o, {
4784
+ i.appendChild(o), this._drawer = new Je(o, {
4654
4785
  i18n: this._i18n,
4655
4786
  onSend: (e, t) => this._sendMessage(e, t),
4656
4787
  onClose: () => this.close(),
@@ -4711,10 +4842,10 @@ var ei = class e extends V {
4711
4842
  shouldBlockSoftAutoScroll: () => this._presentation.shouldBlockStreamAutoScroll(),
4712
4843
  onReleasePresentationFocus: () => this._releasePresentationFocus()
4713
4844
  }
4714
- }), this._extendedModeManager = new sr({
4845
+ }), this._extendedModeManager = new cr({
4715
4846
  onChange: (e) => this._panel?.notifyExtension(e),
4716
4847
  productDetailsInPanel: (e.isDemoWebsite ?? !1) && (e.productDetailsExtended ?? !1)
4717
- }), this._panel = new cr({
4848
+ }), this._panel = new lr({
4718
4849
  drawer: () => this._drawer,
4719
4850
  shadow: () => this._shadow,
4720
4851
  currentThreadId: () => this._currentThreadId,
@@ -4728,10 +4859,10 @@ var ei = class e extends V {
4728
4859
  let c = sessionStorage.getItem("gengage_restore_session_id"), l = sessionStorage.getItem("gengage_restore_sku"), u = !!(c && l);
4729
4860
  u && (sessionStorage.removeItem("gengage_restore_session_id"), sessionStorage.removeItem("gengage_restore_sku"));
4730
4861
  try {
4731
- let e = new ar();
4732
- await e.open(), this._session = new dr(e), await this._restoreFromIndexedDB(u);
4862
+ let e = new or();
4863
+ await e.open(), this._session = new fr(e), await this._restoreFromIndexedDB(u);
4733
4864
  } catch {
4734
- this._session = new dr(null);
4865
+ this._session = new fr(null);
4735
4866
  }
4736
4867
  this._registerPublicAPI(), e.mobileInitialState !== void 0 && (this._openState = e.mobileInitialState), this._mobileBreakpoint = e.mobileBreakpoint ?? 768, this._syncViewportState();
4737
4868
  let d = () => this._syncViewportState();
@@ -4750,9 +4881,9 @@ var ei = class e extends V {
4750
4881
  namespace: "chat",
4751
4882
  onMessage: (e) => this._handleBridgeMessage(e)
4752
4883
  };
4753
- e.allowedOrigins !== void 0 && (f.allowedOrigins = e.allowedOrigins), this._bridge = new le(f), this._lastSku = this.config.pageContext?.sku, this._initComplete = !0;
4884
+ e.allowedOrigins !== void 0 && (f.allowedOrigins = e.allowedOrigins), this._bridge = new ue(f), this._lastSku = this.config.pageContext?.sku, this._initComplete = !0;
4754
4885
  for (let e of this._pendingActions) this._sendAction(e.action, e.options);
4755
- this._pendingActions = [], y("gengage:chat:ready", {}), O("chat"), e.onReady?.();
4886
+ this._pendingActions = [], this._pillLauncherApply && a === "floating" && (await this._pillLauncherApply(), this._pillLauncherApply = null), y("gengage:chat:ready", {}), O("chat"), e.onReady?.();
4756
4887
  }
4757
4888
  onUpdate(e) {
4758
4889
  e.sku !== void 0 && e.sku !== this._lastSku && (this._lastSku = e.sku, this._resetForNewPage());
@@ -4776,7 +4907,7 @@ var ei = class e extends V {
4776
4907
  (this.config.variant ?? "floating") === "floating" && (this.root.style.display = ""), this._hideDrawer(), this.emit("close"), y("gengage:chat:close", {}), this.config.onClose?.();
4777
4908
  }
4778
4909
  onDestroy() {
4779
- this._releaseHostDocumentScrollLock(), this._abortAllActiveRequests(), this._activeTypewriter?.cancel(), this._activeTypewriter = null, this._activeTtsHandle?.stop(), this._activeTtsHandle = null, this._comparisonRefreshRafId !== null && (cancelAnimationFrame(this._comparisonRefreshRafId), this._comparisonRefreshRafId = null), this._drawer?.destroy(), ke(), this._drawer = null, this._bridge?.destroy(), this._bridge = null, this._extendedModeManager = null, this._panel?.destroy(), this._panel = null, this._session?.close(), this._session = null, this._localPanelHistory = [], this._currentPanelSource = null, window.gengage && delete window.gengage.chat, this._shadow &&= (this._shadow.innerHTML = "", null), this._rootEl = null;
4910
+ this._releaseHostDocumentScrollLock(), this._abortAllActiveRequests(), this._activeTypewriter?.cancel(), this._activeTypewriter = null, this._activeTtsHandle?.stop(), this._activeTtsHandle = null, this._comparisonRefreshRafId !== null && (cancelAnimationFrame(this._comparisonRefreshRafId), this._comparisonRefreshRafId = null), this._drawer?.destroy(), Ae(), this._drawer = null, this._bridge?.destroy(), this._bridge = null, this._extendedModeManager = null, this._panel?.destroy(), this._panel = null, this._session?.close(), this._session = null, this._localPanelHistory = [], this._currentPanelSource = null, window.gengage && delete window.gengage.chat, this._shadow &&= (this._shadow.innerHTML = "", null), this._rootEl = null;
4780
4911
  }
4781
4912
  open(e) {
4782
4913
  e?.state !== void 0 && (this._openState = e.state, this._drawerVisible && this._applyOpenStateClasses()), this.show(), e?.initialMessage !== void 0 && this._sendMessage(e.initialMessage);
@@ -4854,7 +4985,7 @@ var ei = class e extends V {
4854
4985
  if (!this._drawer || !this._presentation.shown) return;
4855
4986
  let e = this._orderedThreadIds();
4856
4987
  if (e.length === 0) return;
4857
- let t = mr(e, this._presentation);
4988
+ let t = hr(e, this._presentation);
4858
4989
  if (!t) return;
4859
4990
  let n = `${t}:assistant`;
4860
4991
  this._presentation.lastAutoAnchoredGroupId !== n && (this._presentation.userInteracting && !this._presentation.pinnedToBottom || this._drawer.scrollThreadIntoView(t, "smooth") && this._presentation.markGroupAutoAnchored(n));
@@ -4868,7 +4999,7 @@ var ei = class e extends V {
4868
4999
  this.close();
4869
5000
  break;
4870
5001
  case "startNewChatWithLauncherAction": {
4871
- let t = e.payload, n = t?.action, r = $r(n) ? n : $r(t) ? t : null;
5002
+ let t = e.payload, n = t?.action, r = ei(n) ? n : ei(t) ? t : null;
4872
5003
  r && this._sendAction(r, { silent: !0 }), this.open();
4873
5004
  break;
4874
5005
  }
@@ -4877,7 +5008,7 @@ var ei = class e extends V {
4877
5008
  if (t && typeof t == "object") {
4878
5009
  this._bridgeContext = t;
4879
5010
  let e = t.sku;
4880
- if (e && this.update({ sku: e }), $r(t.action)) {
5011
+ if (e && this.update({ sku: e }), ei(t.action)) {
4881
5012
  this._pdpLaunched = !0, this.open(), this._sendAction(t.action);
4882
5013
  break;
4883
5014
  }
@@ -4911,7 +5042,7 @@ var ei = class e extends V {
4911
5042
  break;
4912
5043
  case "bgColorChange": {
4913
5044
  let t = e.payload?.color;
4914
- typeof t == "string" && Qr(t) && this._shadow && this._shadow.host.style.setProperty("--gengage-chat-bg", t);
5045
+ typeof t == "string" && $r(t) && this._shadow && this._shadow.host.style.setProperty("--gengage-chat-bg", t);
4915
5046
  break;
4916
5047
  }
4917
5048
  default: break;
@@ -4950,7 +5081,7 @@ var ei = class e extends V {
4950
5081
  let n = this._resolveContextualOpeningMessage(e);
4951
5082
  if (!n) return;
4952
5083
  let r = {
4953
- id: ce(),
5084
+ id: le(),
4954
5085
  role: "assistant",
4955
5086
  content: n,
4956
5087
  timestamp: Date.now(),
@@ -5115,7 +5246,7 @@ var ei = class e extends V {
5115
5246
  typeof document > "u" || !this._hostScrollLockActive || (document.removeEventListener("touchmove", this._preventHostDocumentTouchMove, { capture: !0 }), document.removeEventListener("wheel", this._preventHostDocumentWheel, { capture: !0 }), this._hostScrollLockActive = !1);
5116
5247
  }
5117
5248
  _handleAttachment(e) {
5118
- let t = _e(e);
5249
+ let t = ve(e);
5119
5250
  if (!t.ok) {
5120
5251
  y("gengage:global:error", {
5121
5252
  message: t.reason === "invalid_type" ? this._i18n.invalidFileType : this._i18n.fileTooLarge,
@@ -5133,7 +5264,7 @@ var ei = class e extends V {
5133
5264
  });
5134
5265
  return;
5135
5266
  }
5136
- k(), this._messages.some((e) => e.role === "user") || F();
5267
+ (!this._messages.some((e) => e.role === "user") || this._drawer?.isKvkkBannerVisible()) && (Dr(this.config.accountId), this._drawer?.hideKvkkBanner()), k(), this._messages.some((e) => e.role === "user") || F();
5137
5268
  let n = t === void 0 ? {
5138
5269
  title: e,
5139
5270
  type: "user_message",
@@ -5162,7 +5293,7 @@ var ei = class e extends V {
5162
5293
  });
5163
5294
  return;
5164
5295
  }
5165
- if (this._choicePrompterEl?.remove(), this._choicePrompterEl = null, t?.preservePanel || Qn(), !t?.preservePanel && this._comparisonSelectMode && e.type !== "getComparisonTable" && (this._comparisonSelectMode = !1, this._comparisonSelectedSkus = []), t?.preservePanel || (this._localPanelHistory = []), this._currentThreadId && this._lastThreadId && this._lastThreadId > this._currentThreadId) {
5296
+ if (this._choicePrompterEl?.remove(), this._choicePrompterEl = null, t?.preservePanel || $n(), !t?.preservePanel && this._comparisonSelectMode && e.type !== "getComparisonTable" && (this._comparisonSelectMode = !1, this._comparisonSelectedSkus = []), t?.preservePanel || (this._localPanelHistory = []), this._currentThreadId && this._lastThreadId && this._lastThreadId > this._currentThreadId) {
5166
5297
  let e = this._currentThreadId, t = this._messages.filter((t) => t.threadId !== void 0 && t.threadId > e);
5167
5298
  this._messages = this._messages.filter((t) => !t.threadId || t.threadId <= e);
5168
5299
  for (let e of t) this._shadow?.querySelector(`[data-message-id="${CSS.escape(e.id)}"]`)?.remove(), this._panel.snapshots.delete(e.id), this._panel.snapshotTypes.delete(e.id);
@@ -5171,7 +5302,7 @@ var ei = class e extends V {
5171
5302
  });
5172
5303
  }
5173
5304
  t?.preservePills || this._drawer?.setPills([]), this._drawer?.clearInputAreaChips(), this._bridge?.send("isResponding", !0);
5174
- let n = ce();
5305
+ let n = le();
5175
5306
  this._currentThreadId = n, this._lastThreadId = n, this._panel && e.type !== "launchSingleProduct" && (this._panel.lastActionType = e.type);
5176
5307
  let r = t?.preservePanel === !0, i = e.type === "launchSingleProduct" && t?.silent === !0 && t?.isPdpPrime === !0;
5177
5308
  if (r || (this._activeRequestThreadId = n), !t?.silent && !r && this._drawer?.setPresentationFocus(n), !t?.silent) {
@@ -5209,7 +5340,7 @@ var ei = class e extends V {
5209
5340
  role: e.role === "user" ? "user" : "model",
5210
5341
  content: e.content ?? ""
5211
5342
  })), p = {
5212
- outputLanguage: kr(this.config.locale),
5343
+ outputLanguage: jr(this.config.locale),
5213
5344
  parentUrl: window.location.href,
5214
5345
  windowWidth: String(window.innerWidth),
5215
5346
  windowHeight: String(window.innerHeight),
@@ -5219,14 +5350,14 @@ var ei = class e extends V {
5219
5350
  appId: this.config.accountId,
5220
5351
  threads: [],
5221
5352
  createdAt: this._chatCreatedAt,
5222
- kvkkApproved: wr(this.config.accountId),
5353
+ kvkkApproved: Er(this.config.accountId),
5223
5354
  voiceEnabled: this.config.voiceEnabled ?? !1,
5224
5355
  threadId: n,
5225
5356
  isControlGroup: this.config.session?.abTestVariant === "control",
5226
5357
  isMobile: this._isMobileViewport
5227
5358
  };
5228
5359
  this.config.session?.viewId !== void 0 && (p.viewId = this.config.session.viewId);
5229
- let h = ve(e, {
5360
+ let h = ye(e, {
5230
5361
  pageContext: this.config.pageContext,
5231
5362
  backendContext: this._lastBackendContext,
5232
5363
  isMobile: this._isMobileViewport
@@ -5259,7 +5390,7 @@ var ei = class e extends V {
5259
5390
  widget: "chat"
5260
5391
  }));
5261
5392
  let I = null;
5262
- if (I = xe(_, {
5393
+ if (I = Se(_, {
5263
5394
  onTextChunk: (e, t, i) => {
5264
5395
  if (!r && n !== this._activeRequestThreadId || (l += e, this._drawer?.removeTypingIndicator(), i?.skuToProductItem && (this._skuToProductItem = {
5265
5396
  ...this._skuToProductItem,
@@ -5270,15 +5401,15 @@ var ei = class e extends V {
5270
5401
  widget: "chat"
5271
5402
  })), !this._drawer)) return;
5272
5403
  let a = l;
5273
- if (t && Cr(a)) {
5404
+ if (t && Tr(a)) {
5274
5405
  let e = this.config.accountId;
5275
- if (!wr(e)) {
5276
- let t = Dr(a);
5406
+ if (!Er(e)) {
5407
+ let t = kr(a);
5277
5408
  t ? this._drawer?.showKvkkBanner(t, () => {
5278
- this._drawer?.hideKvkkBanner(), Tr(e);
5279
- }) : Tr(e);
5409
+ this._drawer?.hideKvkkBanner(), Dr(e);
5410
+ }) : Dr(e);
5280
5411
  }
5281
- a = Er(a);
5412
+ a = Or(a);
5282
5413
  }
5283
5414
  let o = this._shadow?.querySelector(`[data-message-id="${u.id}"] .gengage-chat-bubble-text`);
5284
5415
  if (o ? o.innerHTML = C(a) : (u.content = a, u.role === "assistant" && u.threadId && !this._threadsWithFirstBot.has(u.threadId) && (this._threadsWithFirstBot.add(u.threadId), this._drawer.markFirstBotMessage(u.id)), this._drawer.addMessage(u)), t) {
@@ -5287,12 +5418,12 @@ var ei = class e extends V {
5287
5418
  if (e) {
5288
5419
  this._activeTypewriter?.cancel();
5289
5420
  let t = i?.productMentions;
5290
- this._activeTypewriter = Un({
5421
+ this._activeTypewriter = Wn({
5291
5422
  container: e,
5292
5423
  html: C(a),
5293
5424
  onTick: () => this._drawer?.scrollToBottomIfNeeded(),
5294
5425
  onComplete: () => {
5295
- this._activeTypewriter = null, t && t.length > 0 && e && Gn({
5426
+ this._activeTypewriter = null, t && t.length > 0 && e && Kn({
5296
5427
  container: e,
5297
5428
  mentions: t,
5298
5429
  onProductClick: (e) => {
@@ -5330,7 +5461,7 @@ var ei = class e extends V {
5330
5461
  if (p === "panel" && this._panel && !f) {
5331
5462
  let t = !k;
5332
5463
  k = !0;
5333
- let n = ur({
5464
+ let n = dr({
5334
5465
  componentType: l,
5335
5466
  similarsAppend: c?.props?.similarsAppend === !0,
5336
5467
  currentPanelType: this._panel.currentType,
@@ -5409,8 +5540,8 @@ var ei = class e extends V {
5409
5540
  e.length > 0 && this._bridge?.send("previewImages", { images: e });
5410
5541
  }
5411
5542
  let S = c?.children?.length ?? 0;
5412
- if (l === "ProductGrid" && p === "panel" && !f && S > 1 && !this._comparisonSelectMode && !$n(this._currentThreadId ?? "")) {
5413
- this._choicePrompterEl?.remove(), this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach((e) => e.remove()), this._choicePrompterEl = Zn({
5543
+ if (l === "ProductGrid" && p === "panel" && !f && S > 1 && !this._comparisonSelectMode && !er(this._currentThreadId ?? "")) {
5544
+ this._choicePrompterEl?.remove(), this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach((e) => e.remove()), this._choicePrompterEl = Qn({
5414
5545
  heading: this._i18n.choicePrompterHeading,
5415
5546
  suggestion: this._i18n.choicePrompterSuggestion,
5416
5547
  ctaLabel: this._i18n.choicePrompterCta,
@@ -5437,7 +5568,7 @@ var ei = class e extends V {
5437
5568
  let e = c?.props?.buttons;
5438
5569
  if (e && e.length > 0) {
5439
5570
  let t = [], n = [];
5440
- for (let r of e) if (Jn(r)) {
5571
+ for (let r of e) if (Yn(r)) {
5441
5572
  let e = {
5442
5573
  label: r.label,
5443
5574
  action: r.action
@@ -5462,10 +5593,10 @@ var ei = class e extends V {
5462
5593
  onAction: (e) => {
5463
5594
  if (!(!r && n !== this._activeRequestThreadId) && e.type === "action") {
5464
5595
  let t = {};
5465
- this.config.actionHandling?.unknownActionPolicy !== void 0 && (t.unknownActionPolicy = this.config.actionHandling.unknownActionPolicy), this.config.actionHandling?.allowScriptCall !== void 0 && (t.allowScriptCall = this.config.actionHandling.allowScriptCall), pe(e, {
5596
+ this.config.actionHandling?.unknownActionPolicy !== void 0 && (t.unknownActionPolicy = this.config.actionHandling.unknownActionPolicy), this.config.actionHandling?.allowScriptCall !== void 0 && (t.allowScriptCall = this.config.actionHandling.allowScriptCall), me(e, {
5466
5597
  openChat: () => this.open(),
5467
5598
  navigate: (e) => {
5468
- H(e.url) && (this._bridge?.send("navigate", e), e.newTab ? window.open(e.url, "_blank", "noopener,noreferrer") : window.location.href = e.url);
5599
+ V(e.url) && (this._bridge?.send("navigate", e), e.newTab ? window.open(e.url, "_blank", "noopener,noreferrer") : window.location.href = e.url);
5469
5600
  },
5470
5601
  saveSession: (e) => this.saveSession(e.sessionId, e.sku),
5471
5602
  addToCart: (e) => {
@@ -5491,7 +5622,7 @@ var ei = class e extends V {
5491
5622
  }), n = window.dispatchEvent(t);
5492
5623
  if (ee(), n) {
5493
5624
  let t = e.meta.voice;
5494
- t.audio_base64 && (this._activeTtsHandle?.stop(), this._activeTtsHandle = $e(t.audio_base64, t.content_type ?? "audio/ogg"));
5625
+ t.audio_base64 && (this._activeTtsHandle?.stop(), this._activeTtsHandle = et(t.audio_base64, t.content_type ?? "audio/ogg"));
5495
5626
  }
5496
5627
  }
5497
5628
  if ((e.meta.redirectTarget || e.meta.redirect) && y("gengage:chat:redirect", {
@@ -5540,7 +5671,7 @@ var ei = class e extends V {
5540
5671
  s(), d = !0, this._drawer?.showErrorWithRecovery(this._i18n.accountInactiveMessage, i);
5541
5672
  return;
5542
5673
  }
5543
- if (yr(e, r)) {
5674
+ if (xr(e, r)) {
5544
5675
  s(), d = !0, this._drawer?.showErrorWithRecovery(r, i);
5545
5676
  return;
5546
5677
  }
@@ -5592,7 +5723,7 @@ var ei = class e extends V {
5592
5723
  this._panel?.snapshotForMessage(u.id, t ? () => {
5593
5724
  let e = this._buildRenderContext();
5594
5725
  return this._renderPanelFromSource(t, e);
5595
- } : void 0), this._panel?.attachClickHandler(u.id), this.track(w(this.analyticsContext(), {
5726
+ } : void 0), this.track(w(this.analyticsContext(), {
5596
5727
  request_id: x,
5597
5728
  latency_ms: Date.now() - te,
5598
5729
  chunk_count: D,
@@ -5793,7 +5924,7 @@ var ei = class e extends V {
5793
5924
  let n = parseInt(e.id.replace("msg-", ""), 10);
5794
5925
  if (!isNaN(n) && n > o && (o = n), t.role === "assistant" && t.threadId) {
5795
5926
  let e = await this._loadPayload(t.threadId, t.id);
5796
- e && (t.uiSpec = e, this._restoreInlineUISpec(t), this._panel?.attachClickHandler(t.id), delete t.uiSpec);
5927
+ e && (t.uiSpec = e, this._restoreInlineUISpec(t), delete t.uiSpec);
5797
5928
  }
5798
5929
  }
5799
5930
  if (o > this._currentMessageId && (this._currentMessageId = o), this._currentThreadId) {
@@ -5850,7 +5981,7 @@ var ei = class e extends V {
5850
5981
  return e?.kind === "spec" ? this._shouldUseDividerPreviewForSpec(e.spec) : !1;
5851
5982
  }
5852
5983
  _toggleComparisonSku(t) {
5853
- if (t === "") this._comparisonSelectMode = !this._comparisonSelectMode, this._comparisonSelectionWarning = null, this._comparisonSelectMode && (tr(this._currentThreadId ?? ""), this._choicePrompterEl?.remove(), this._choicePrompterEl = null, this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach((e) => e.remove())), this._comparisonSelectMode || (this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, P());
5984
+ if (t === "") this._comparisonSelectMode = !this._comparisonSelectMode, this._comparisonSelectionWarning = null, this._comparisonSelectMode && (nr(this._currentThreadId ?? ""), this._choicePrompterEl?.remove(), this._choicePrompterEl = null, this._shadow?.querySelectorAll(".gengage-chat-choice-prompter").forEach((e) => e.remove())), this._comparisonSelectMode || (this._comparisonSelectedSkus = [], this._comparisonSelectionWarning = null, P());
5854
5985
  else if (this._comparisonSelectedSkus.indexOf(t) >= 0) this._comparisonSelectedSkus = this._comparisonSelectedSkus.filter((e) => e !== t), this._comparisonSelectionWarning = null;
5855
5986
  else {
5856
5987
  if (this._comparisonSelectedSkus.length >= e._MAX_COMPARISON_SELECTION) {
@@ -5914,19 +6045,22 @@ var ei = class e extends V {
5914
6045
  }
5915
6046
  }
5916
6047
  if (t.querySelector(".gengage-chat-comparison-floating-btn")?.remove(), this._comparisonSelectMode) {
5917
- let e = Pt(this._comparisonSelectedSkus, this._buildRenderContext());
6048
+ let e = Ft(this._comparisonSelectedSkus, this._buildRenderContext());
5918
6049
  this._isMobileViewport ? this._drawer?.setComparisonDockContent(e) : (this._drawer?.setComparisonDockContent(null), t.appendChild(e));
5919
6050
  } else this._drawer?.setComparisonDockContent(null);
5920
6051
  }
5921
6052
  _parseAddToCartActionPayload(e) {
5922
6053
  if (typeof e != "object" || !e) return null;
5923
- let t = e, n = typeof t.sku == "string" ? t.sku : "", r = typeof t.cart_code == "string" ? t.cart_code : "", i = 1;
6054
+ let t = e, n = this._coerceAddToCartString(t.sku), r = this._coerceAddToCartString(t.cartCode ?? t.cart_code), i = 1;
5924
6055
  return typeof t.quantity == "number" && Number.isFinite(t.quantity) && t.quantity > 0 && (i = Math.max(1, Math.floor(t.quantity))), !n || !r ? null : {
5925
6056
  sku: n,
5926
6057
  cartCode: r,
5927
6058
  quantity: i
5928
6059
  };
5929
6060
  }
6061
+ _coerceAddToCartString(e) {
6062
+ return typeof e == "string" && e.length > 0 ? e : typeof e == "number" && Number.isFinite(e) ? String(e) : "";
6063
+ }
5930
6064
  _runChatAddToCartFlow(e) {
5931
6065
  if (this.config.onAddToCart !== void 0) try {
5932
6066
  let t = this.config.onAddToCart(e);
@@ -5934,7 +6068,7 @@ var ei = class e extends V {
5934
6068
  } catch (e) {
5935
6069
  console.error("[gengage] onAddToCart", e);
5936
6070
  }
5937
- B(e.sku, e.quantity);
6071
+ z(e.sku, e.quantity);
5938
6072
  let t = {
5939
6073
  ...e,
5940
6074
  sessionId: this.config.session?.sessionId ?? null
@@ -5973,7 +6107,7 @@ var ei = class e extends V {
5973
6107
  let t = typeof e.payload == "object" && e.payload !== null && "sku" in e.payload ? String(e.payload.sku) : "";
5974
6108
  t && I(t, e.title);
5975
6109
  }
5976
- e.type === "findSimilar" && z(typeof e.payload == "object" && e.payload !== null && "sku" in e.payload ? String(e.payload.sku) : ""), e.type === "getComparisonTable" && te(this._comparisonSelectedSkus);
6110
+ e.type === "findSimilar" && ie(typeof e.payload == "object" && e.payload !== null && "sku" in e.payload ? String(e.payload.sku) : ""), e.type === "getComparisonTable" && te(this._comparisonSelectedSkus);
5977
6111
  let t = e.type === "addToCart" || e.type === "like";
5978
6112
  this._sendAction(e, t ? { preservePanel: !0 } : void 0);
5979
6113
  },
@@ -6092,7 +6226,7 @@ var ei = class e extends V {
6092
6226
  return;
6093
6227
  }
6094
6228
  if (await this._toggleFavorite(e, t), n) {
6095
- ie(e);
6229
+ ae(e);
6096
6230
  let n = t.name ?? e;
6097
6231
  this._sendAction({
6098
6232
  title: n,
@@ -6204,15 +6338,15 @@ var ei = class e extends V {
6204
6338
  }
6205
6339
  _resolveI18n(e) {
6206
6340
  return {
6207
- ...Ne(e.locale),
6341
+ ...Pe(e.locale),
6208
6342
  ...e.i18n
6209
6343
  };
6210
6344
  }
6211
6345
  _resolveUISpecRegistry() {
6212
- return f(Ut(), this.config.renderer?.registry);
6346
+ return f(Wt(), this.config.renderer?.registry);
6213
6347
  }
6214
6348
  _renderUISpec(e, t) {
6215
- let n = this._resolveUISpecRegistry(), r = this.config.renderer?.unknownRenderer ?? Ht, i = (e, t) => Wt(e, t, n, r), a = this.config.renderer?.renderUISpec;
6349
+ let n = this._resolveUISpecRegistry(), r = this.config.renderer?.unknownRenderer ?? Ut, i = (e, t) => Gt(e, t, n, r), a = this.config.renderer?.renderUISpec;
6216
6350
  return a ? a(e, t, {
6217
6351
  registry: n,
6218
6352
  unknownRenderer: r,
@@ -6220,10 +6354,10 @@ var ei = class e extends V {
6220
6354
  }) : i(e, t);
6221
6355
  }
6222
6356
  };
6223
- function ti() {
6224
- return new ei();
6357
+ function ni() {
6358
+ return new ti();
6225
6359
  }
6226
6360
  //#endregion
6227
- export { Ut as a, Ie as c, Oe as d, ke as f, pr as i, Pe as l, ti as n, Ht as o, pe as p, Zr as r, Wt as s, ei as t, Ee as u };
6361
+ export { mr as a, Gt as c, De as d, ke as f, gr as i, Le as l, me as m, ni as n, Wt as o, Ae as p, Qr as r, Ut as s, ti as t, Fe as u };
6228
6362
 
6229
- //# sourceMappingURL=chat-D7c9emMm.js.map
6363
+ //# sourceMappingURL=chat-D60Ci1vQ.js.map