@gengage/assistant-fe 0.4.6 → 0.4.7

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 (48) hide show
  1. package/README.md +21 -1
  2. package/dist/{api-paths-C4GDpeTf.js → api-paths-DR5bPNhi.js} +2 -3
  3. package/dist/assistant-fe.css +1 -1
  4. package/dist/chat-runtime.js +1 -1
  5. package/dist/chat.iife.js +2 -2
  6. package/dist/chat.js +1 -1
  7. package/dist/common/overlay.d.ts +4 -0
  8. package/dist/common/protocol-adapter.d.ts +1 -1
  9. package/dist/common/safe-html.d.ts +1 -1
  10. package/dist/{common-CEN5OW7E.js → common-c-awF96O.js} +3 -3
  11. package/dist/common.js +8 -8
  12. package/dist/{connection-warning-B6oIU-9s.js → connection-warning-ecZqpczd.js} +1 -1
  13. package/dist/{context-VIG4SVcS.js → context-DGz5F81j.js} +82 -79
  14. package/dist/index.d.ts +4 -4
  15. package/dist/index.js +44 -42
  16. package/dist/{native-webview-DudQ7nHe.js → native-webview-C_PmKnzm.js} +1 -1
  17. package/dist/native.iife.js +7 -7
  18. package/dist/native.js +1 -1
  19. package/dist/{overlay-1EO41ZC7.js → overlay-DJ1ZRMfI.js} +75 -75
  20. package/dist/overlay.js +2 -2
  21. package/dist/{pill-launcher-57nrdLRr.js → pill-launcher-DSEeJT9h.js} +2 -2
  22. package/dist/qna/runtime.d.ts +2 -1
  23. package/dist/qna/types.d.ts +14 -0
  24. package/dist/qna-runtime.js +1 -1
  25. package/dist/qna.css +1 -1
  26. package/dist/qna.iife.js +21 -21
  27. package/dist/qna.js +1 -1
  28. package/dist/{runtime-BdwZZIrO.js → runtime-BsZZ8zTg.js} +5 -4
  29. package/dist/{runtime-C0qZk0y7.js → runtime-DNbjpTCh.js} +4 -4
  30. package/dist/runtime-SKDvc0Xc.js +660 -0
  31. package/dist/simbut/index.d.ts +3 -1
  32. package/dist/simbut/types.d.ts +11 -0
  33. package/dist/simbut-Bw3vBFtW.js +109 -0
  34. package/dist/simbut.css +1 -1
  35. package/dist/simbut.iife.js +10 -10
  36. package/dist/simbut.js +1 -1
  37. package/dist/simrel/index.d.ts +2 -0
  38. package/dist/simrel/renderers/default.d.ts +40 -0
  39. package/dist/simrel-DJZ983BF.js +513 -0
  40. package/dist/simrel-runtime.js +1 -1
  41. package/dist/simrel.css +3 -0
  42. package/dist/simrel.iife.js +38 -38
  43. package/dist/simrel.js +4 -3
  44. package/dist/{widget-base-TgwiA8cD.js → widget-base-2-B1Ch5I.js} +1 -1
  45. package/package.json +6 -1
  46. package/dist/runtime-DDu8Wk0z.js +0 -629
  47. package/dist/simbut-BMWC6x_t.js +0 -81
  48. package/dist/simrel-ohfkluhp.js +0 -55
@@ -0,0 +1,513 @@
1
+ import { A, j as S } from "./context-DGz5F81j.js";
2
+ import { n as $, t as _ } from "./price-formatter-xI3g9Cd4.js";
3
+ import { a as C, c as f, n as q, o as h, t as k, u as H } from "./schemas-CLo8wCjs.js";
4
+ import { o as j } from "./runtime-BsZZ8zTg.js";
5
+ var V = {
6
+ images: [
7
+ "images",
8
+ "extras.images",
9
+ "imageUrl"
10
+ ],
11
+ subtitle: [
12
+ "categoryNames",
13
+ "category_names",
14
+ "extras.categoryNames",
15
+ "extras.category_names",
16
+ "description"
17
+ ],
18
+ promotions: ["promotions", "extras.promotions"],
19
+ warranties: ["warranties", "extras.warranties"],
20
+ productInfoUrl: [
21
+ "productInfoFormUrl",
22
+ "extras.productInfoFormUrl",
23
+ "documents.0.url",
24
+ "extras.documents.0.url"
25
+ ],
26
+ discountReason: [
27
+ "discountReason",
28
+ "discount_reason",
29
+ "extras.discountReason",
30
+ "extras.discount_reason"
31
+ ],
32
+ specialPrice: ["isSpecialPrice", "extras.isSpecialPrice"],
33
+ customBadgeFacets: [
34
+ "customBadgeFacets",
35
+ "custom_badge_facets",
36
+ "extras.customBadgeFacets",
37
+ "extras.custom_badge_facets",
38
+ "facetHits",
39
+ "facet_hits",
40
+ "extras.facetHits",
41
+ "extras.facet_hits"
42
+ ],
43
+ customBadgeText: [
44
+ "customBadgeText",
45
+ "custom_badge_text",
46
+ "customBadge",
47
+ "custom_badge",
48
+ "customLabel",
49
+ "custom_label",
50
+ "bottomLabel",
51
+ "bottom_label",
52
+ "cornerBadge",
53
+ "corner_badge",
54
+ "extras.customBadgeText",
55
+ "extras.custom_badge_text",
56
+ "extras.customBadge",
57
+ "extras.custom_badge",
58
+ "extras.customLabel",
59
+ "extras.custom_label",
60
+ "extras.bottomLabel",
61
+ "extras.bottom_label",
62
+ "extras.cornerBadge",
63
+ "extras.corner_badge"
64
+ ],
65
+ customBadgeImageUrl: [
66
+ "customBadgeImageUrl",
67
+ "custom_badge_image_url",
68
+ "customLabelImageUrl",
69
+ "custom_label_image_url",
70
+ "bottomLabelImageUrl",
71
+ "bottom_label_image_url",
72
+ "cornerBadgeImageUrl",
73
+ "corner_badge_image_url",
74
+ "extras.customBadgeImageUrl",
75
+ "extras.custom_badge_image_url",
76
+ "extras.customLabelImageUrl",
77
+ "extras.custom_label_image_url",
78
+ "extras.bottomLabelImageUrl",
79
+ "extras.bottom_label_image_url",
80
+ "extras.cornerBadgeImageUrl",
81
+ "extras.corner_badge_image_url"
82
+ ]
83
+ };
84
+ function E(e) {
85
+ return !e || typeof e != "object" || Array.isArray(e) ? null : e;
86
+ }
87
+ function p(e) {
88
+ if (typeof e != "string") return;
89
+ const t = e.trim();
90
+ return t.length > 0 ? t : void 0;
91
+ }
92
+ function F(e) {
93
+ if (Array.isArray(e)) return e.map((r) => p(r)).filter((r) => !!r);
94
+ const t = p(e);
95
+ return t ? [t] : [];
96
+ }
97
+ function T(e) {
98
+ if (typeof e == "number" && Number.isFinite(e)) return e;
99
+ if (typeof e == "string") {
100
+ const t = Number.parseFloat(e);
101
+ if (Number.isFinite(t)) return t;
102
+ }
103
+ }
104
+ function O(e) {
105
+ if (typeof e == "boolean") return e;
106
+ if (typeof e == "number" && Number.isFinite(e)) {
107
+ if (e === 1) return !0;
108
+ if (e === 0) return !1;
109
+ }
110
+ if (typeof e == "string") {
111
+ const t = e.trim().toLowerCase();
112
+ if (t === "true") return !0;
113
+ if (t === "false") return !1;
114
+ if (t === "1") return !0;
115
+ if (t === "0") return !1;
116
+ }
117
+ }
118
+ function U(...e) {
119
+ for (const t of e) {
120
+ const r = p(t);
121
+ if (r) return r;
122
+ }
123
+ }
124
+ function D(e) {
125
+ const t = E(e);
126
+ if (!t) return null;
127
+ const r = p(t.sku), a = p(t.name), n = p(t.url);
128
+ if (!r || !a || !n) return null;
129
+ const o = {
130
+ sku: r,
131
+ name: a,
132
+ url: n
133
+ };
134
+ for (const [i, l] of Object.entries(t)) l !== void 0 && (o[i] = l);
135
+ return o;
136
+ }
137
+ function z(e) {
138
+ const t = E(e);
139
+ if (!t) return null;
140
+ const r = p(t.name);
141
+ if (!r) return null;
142
+ const a = [];
143
+ if (Array.isArray(t.products)) for (const i of t.products) {
144
+ const l = D(i);
145
+ l && a.push(l);
146
+ }
147
+ const n = {
148
+ name: r,
149
+ products: a
150
+ }, o = p(t.highlight);
151
+ return o && (n.highlight = o), n;
152
+ }
153
+ function w(e, t) {
154
+ const r = typeof t == "string" ? t.split(".") : [...t];
155
+ let a = e;
156
+ for (const n of r) {
157
+ if (a == null) return;
158
+ if (Array.isArray(a)) {
159
+ const i = Number.parseInt(n, 10);
160
+ if (!Number.isInteger(i)) return;
161
+ a = a[i];
162
+ continue;
163
+ }
164
+ const o = E(a);
165
+ if (!o) return;
166
+ a = o[n];
167
+ }
168
+ return a;
169
+ }
170
+ function Q(e, t) {
171
+ for (const r of t) {
172
+ const a = w(e, r);
173
+ if (a != null) return a;
174
+ }
175
+ }
176
+ function L(e, t) {
177
+ for (const r of t) {
178
+ const a = F(w(e, r));
179
+ if (a.length > 0) return a;
180
+ }
181
+ return [];
182
+ }
183
+ function y(e, t) {
184
+ for (const r of t) {
185
+ const a = w(e, r), n = p(a);
186
+ if (n) return n;
187
+ const o = F(a);
188
+ if (o.length > 0) return o[0];
189
+ }
190
+ }
191
+ function W(e, t) {
192
+ for (const r of t) {
193
+ const a = E(w(e, r));
194
+ if (a) return a;
195
+ }
196
+ return null;
197
+ }
198
+ function R(e, t) {
199
+ return {
200
+ labels: {
201
+ customBadgeAlt: e.labels?.customBadgeAlt ?? "Product badge",
202
+ imageDot: e.labels?.imageDot ?? ((r) => `Show product image ${r + 1}`),
203
+ previousPromotion: e.labels?.previousPromotion ?? "Previous promotion",
204
+ nextPromotion: e.labels?.nextPromotion ?? "Next promotion"
205
+ },
206
+ ctaLabel: e.labels?.cta ?? t.i18n.ctaLabel,
207
+ productInfoLabel: e.labels?.productInfo,
208
+ reviewLabel: e.labels?.review ?? ((r) => `${r} reviews`),
209
+ specialPriceBadgeAlt: e.labels?.specialPriceBadgeAlt ?? "",
210
+ fields: {
211
+ ...V,
212
+ ...e.fields
213
+ },
214
+ media: e.media ?? {},
215
+ warrantyPromotionPattern: e.warrantyPromotionPattern ?? /warranty/i,
216
+ specialPricePattern: e.specialPricePattern ?? /special/i,
217
+ pricing: e.pricing ?? t.pricing
218
+ };
219
+ }
220
+ function X(e, t, r) {
221
+ return r.media.imageUrlTransform?.(e, t) ?? e;
222
+ }
223
+ function J(e, t) {
224
+ const r = e.trim(), a = t.trim();
225
+ if (!r || !a) return r;
226
+ const n = r.toLocaleLowerCase().indexOf(a.toLocaleLowerCase());
227
+ return n === -1 ? r : `${r.slice(0, n).trim()} ${r.slice(n + a.length).trim()}`.replace(/\s{2,}/g, " ").replace(/(\s[-|/,:]){2,}/g, "$1").replace(/^\s*[-|/,:]\s*/, "").replace(/\s*[-|/,:]\s*$/, "").trim() || r;
228
+ }
229
+ function K(e, t) {
230
+ const r = y(e, t.fields.customBadgeImageUrl);
231
+ if (r) return {
232
+ imageUrl: r,
233
+ labelText: null
234
+ };
235
+ const a = y(e, t.fields.customBadgeText);
236
+ if (a) return {
237
+ imageUrl: t.media.customBadgeImageUrl?.(e, a) ?? null,
238
+ labelText: a
239
+ };
240
+ const n = W(e, t.fields.customBadgeFacets);
241
+ if (!n) return {
242
+ imageUrl: null,
243
+ labelText: null
244
+ };
245
+ const o = U(n["Custom Badge Image"], n["Custom Label Image"], n["Bottom Label Image"], n["Corner Badge Image"], n.custom_badge_image, n.custom_label_image, n.bottom_label_image, n.corner_badge_image, n.customBadgeImage, n.customLabelImage, n.bottomLabelImage, n.cornerBadgeImage);
246
+ if (o) return {
247
+ imageUrl: o,
248
+ labelText: null
249
+ };
250
+ const i = U(n["Custom Badge"], n["Custom Label"], n["Bottom Label"], n["Corner Badge"], n.custom_badge, n.custom_label, n.bottom_label, n.corner_badge, n.customBadge, n.customLabel, n.bottomLabel, n.cornerBadge);
251
+ return i ? {
252
+ imageUrl: t.media.customBadgeImageUrl?.(e, i) ?? null,
253
+ labelText: i
254
+ } : {
255
+ imageUrl: null,
256
+ labelText: null
257
+ };
258
+ }
259
+ function x(e, t, r) {
260
+ const a = document.createElement(e);
261
+ return a.className = t, a.textContent = r, a;
262
+ }
263
+ function Y(e, t, r) {
264
+ const a = document.createElement("div");
265
+ a.className = "gengage-simrel-default-card-image";
266
+ let n = null;
267
+ return r.length > 0 && (n = document.createElement("img"), n.src = r[0], n.alt = t, n.loading = "lazy", $(n), a.appendChild(n)), r.length > 1 && n && (a.addEventListener("mousemove", (o) => {
268
+ const i = a.getBoundingClientRect(), l = Math.min(Math.floor((o.clientX - i.left) / i.width * r.length), r.length - 1);
269
+ n?.dataset.hoverIdx !== String(l) && (n.dataset.hoverIdx = String(l), n.src = r[l], e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c, s) => c.classList.toggle("is-active", s === l)));
270
+ }), a.addEventListener("mouseleave", () => {
271
+ n && (delete n.dataset.hoverIdx, n.src = r[0], e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((o, i) => o.classList.toggle("is-active", i === 0)));
272
+ })), a;
273
+ }
274
+ function Z(e, t) {
275
+ if (!e.imageUrl && !e.labelText) return null;
276
+ const r = document.createElement("div");
277
+ if (r.className = "gengage-simrel-default-card-custom-badge", e.imageUrl && A(e.imageUrl)) {
278
+ const a = document.createElement("img");
279
+ return a.src = e.imageUrl, a.className = "gengage-simrel-default-card-custom-badge-icon", a.alt = t, e.labelText && a.addEventListener("error", () => {
280
+ r.innerHTML = "", r.appendChild(x("span", "gengage-simrel-default-card-custom-badge-text", e.labelText));
281
+ }, { once: !0 }), r.appendChild(a), r;
282
+ }
283
+ return e.labelText && r.appendChild(x("span", "gengage-simrel-default-card-custom-badge-text", e.labelText)), r;
284
+ }
285
+ function ee(e, t, r) {
286
+ if (e.length <= 1 || !t) return null;
287
+ const a = document.createElement("div");
288
+ return a.className = "gengage-simrel-default-card-image-dots", e.forEach((n, o) => {
289
+ const i = document.createElement("button");
290
+ i.className = `gengage-simrel-default-card-image-dot${o === 0 ? " is-active" : ""}`, i.type = "button", i.setAttribute("aria-label", r.labels.imageDot(o)), i.addEventListener("click", (l) => {
291
+ l.preventDefault(), l.stopPropagation(), t.dataset.hoverIdx = String(o), t.style.opacity = "0", window.setTimeout(() => {
292
+ t.src = n, t.style.opacity = "1";
293
+ }, 50), a.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c, s) => c.classList.toggle("is-active", s === o));
294
+ }), a.appendChild(i);
295
+ }), a;
296
+ }
297
+ function te(e, t, r, a) {
298
+ const n = e.reviewCount ?? 0, o = e.rating ?? 0, i = document.createElement("div");
299
+ i.className = "gengage-simrel-default-card-rating", n <= 0 && !r.productInfoLabel && i.classList.add("is-placeholder");
300
+ const l = document.createElement("div");
301
+ l.className = "gengage-simrel-default-card-rating-left";
302
+ const c = document.createElement("div");
303
+ c.className = "gengage-simrel-default-card-stars";
304
+ const s = Math.max(0, Math.min(5, Math.round(o)));
305
+ for (let m = 1; m <= 5; m += 1) {
306
+ const u = document.createElement("span");
307
+ u.className = `gengage-simrel-default-card-star${m <= s ? " is-filled" : ""}`, u.textContent = "★", c.appendChild(u);
308
+ }
309
+ l.appendChild(c);
310
+ const d = document.createElement("button");
311
+ if (d.className = "gengage-simrel-default-card-review-link", d.type = "button", d.textContent = r.reviewLabel(n), d.addEventListener("click", (m) => {
312
+ m.preventDefault(), m.stopPropagation(), a(e);
313
+ }), l.appendChild(d), i.appendChild(l), r.productInfoLabel) {
314
+ const m = document.createElement(t && S(t) ? "a" : "span");
315
+ m.className = "gengage-simrel-default-card-product-info-link", m.textContent = r.productInfoLabel, m instanceof HTMLAnchorElement && (m.href = t, m.target = "_blank", m.rel = "noopener noreferrer", m.addEventListener("click", (u) => u.stopPropagation())), i.appendChild(m);
316
+ }
317
+ return i;
318
+ }
319
+ function re(e) {
320
+ const t = document.createElement("div");
321
+ t.className = "gengage-simrel-default-card-warranty-row";
322
+ const r = e.length > 0 ? e : [""];
323
+ for (const a of r) {
324
+ const n = document.createElement("div");
325
+ n.className = `gengage-simrel-default-card-warranty-badge${a ? "" : " is-placeholder"}`, a || n.setAttribute("aria-hidden", "true"), n.textContent = a, t.appendChild(n);
326
+ }
327
+ return t;
328
+ }
329
+ function ae(e, t) {
330
+ const r = document.createElement("div");
331
+ r.className = "gengage-simrel-default-card-feature-slot";
332
+ const a = document.createElement("div");
333
+ if (a.className = "gengage-simrel-default-card-feature-swiper", e.length === 0 && a.classList.add("is-placeholder"), a.dataset.current = "0", e.length > 0) {
334
+ if (t.media.promotionIconUrl && S(t.media.promotionIconUrl)) {
335
+ const i = document.createElement("img");
336
+ i.src = t.media.promotionIconUrl, i.className = "gengage-simrel-default-card-feature-icon", i.alt = "", a.appendChild(i);
337
+ }
338
+ const n = document.createElement("div");
339
+ n.className = "gengage-simrel-default-card-feature-content";
340
+ const o = x("span", "gengage-simrel-default-card-feature-text", e[0]);
341
+ if (n.appendChild(o), a.appendChild(n), e.length > 1) {
342
+ const i = document.createElement("div");
343
+ i.className = "gengage-simrel-default-card-feature-arrows";
344
+ const l = (d, m) => {
345
+ const u = m === "next" ? "slide-out-left" : "slide-out-right", v = m === "next" ? "prepare-from-right" : "prepare-from-left";
346
+ o.classList.add(u), window.setTimeout(() => {
347
+ o.classList.remove(u), o.classList.add(v), o.textContent = e[d] ?? "", a.dataset.current = String(d), requestAnimationFrame(() => requestAnimationFrame(() => o.classList.remove(v)));
348
+ }, 250);
349
+ }, c = document.createElement("button");
350
+ c.className = "gengage-simrel-default-card-feature-prev", c.type = "button", c.textContent = "‹", c.setAttribute("aria-label", t.labels.previousPromotion), c.addEventListener("click", (d) => {
351
+ d.preventDefault(), d.stopPropagation(), l((Number.parseInt(a.dataset.current ?? "0", 10) - 1 + e.length) % e.length, "prev");
352
+ });
353
+ const s = document.createElement("button");
354
+ s.className = "gengage-simrel-default-card-feature-next", s.type = "button", s.textContent = "›", s.setAttribute("aria-label", t.labels.nextPromotion), s.addEventListener("click", (d) => {
355
+ d.preventDefault(), d.stopPropagation(), l((Number.parseInt(a.dataset.current ?? "0", 10) + 1) % e.length, "next");
356
+ }), i.appendChild(c), i.appendChild(s), a.appendChild(i);
357
+ }
358
+ }
359
+ return r.appendChild(a), r;
360
+ }
361
+ function ne(e, t, r, a) {
362
+ const n = T(e.originalPrice), o = T(e.price), i = o !== void 0 && n !== void 0 && o > 0 && n > 0 && o < n, l = document.createElement("div");
363
+ l.className = "gengage-simrel-default-card-price-action";
364
+ const c = document.createElement("div");
365
+ if (c.className = "gengage-simrel-default-card-price", i) {
366
+ c.appendChild(x("span", "gengage-simrel-default-card-price-old", _(String(n), r.pricing)));
367
+ const s = document.createElement("div");
368
+ if (s.className = "gengage-simrel-default-card-price-current-row", s.appendChild(x("span", "gengage-simrel-default-card-price-current", _(String(o), r.pricing))), t && r.media.specialPriceBadgeUrl && A(r.media.specialPriceBadgeUrl)) {
369
+ const d = document.createElement("img");
370
+ d.src = r.media.specialPriceBadgeUrl, d.className = "gengage-simrel-default-card-special-price-badge", d.alt = r.specialPriceBadgeAlt, s.appendChild(d);
371
+ }
372
+ c.appendChild(s);
373
+ } else {
374
+ const s = n ?? o;
375
+ c.appendChild(x("span", "gengage-simrel-default-card-price-current", s !== void 0 ? _(String(s), r.pricing) : ""));
376
+ }
377
+ if (l.appendChild(c), r.ctaLabel) {
378
+ const s = document.createElement("button");
379
+ s.className = "gengage-simrel-default-card-cta", s.dataset.gengagePart = "simrel-product-card-cta", s.type = "button", s.dataset.sku = e.sku, s.textContent = r.ctaLabel, s.addEventListener("click", (d) => {
380
+ d.preventDefault(), d.stopPropagation(), a(e);
381
+ }), l.appendChild(s);
382
+ }
383
+ return l;
384
+ }
385
+ function M(e) {
386
+ const { product: t, config: r } = e, a = L(t, r.fields.images).map((g) => X(g, t, r)).filter(A), n = L(t, r.fields.promotions), o = n.filter((g) => r.warrantyPromotionPattern.test(g)), i = n.filter((g) => !r.warrantyPromotionPattern.test(g)), l = y(t, r.fields.subtitle) ?? "", c = y(t, r.fields.discountReason) ?? "", s = O(Q(t, r.fields.specialPrice)) === !0 || r.specialPricePattern.test(c), d = t.brand ?? "", m = J(d && t.name.startsWith(`${d} `) ? t.name.slice(d.length + 1) : t.name, l), u = document.createElement("article");
387
+ u.className = "gengage-simrel-default-card gengage-simrel-default-scope gengage-simrel-card gds-card gds-product-card gds-card-interactive", u.dataset.gengagePart = "simrel-product-card", u.setAttribute("role", "listitem"), u.setAttribute("tabindex", "0"), u.setAttribute("aria-label", m), u.dataset.sku = t.sku, u.dataset.index = String(e.index);
388
+ const v = Y(u, m, a);
389
+ u.appendChild(v);
390
+ const G = v.querySelector("img"), P = document.createElement("div");
391
+ P.className = "gengage-simrel-default-card-meta-row";
392
+ const N = Z(K(t, r), r.labels.customBadgeAlt);
393
+ N && P.appendChild(N);
394
+ const I = ee(a, G, r);
395
+ I && P.appendChild(I), u.appendChild(P);
396
+ const b = document.createElement("div");
397
+ return b.className = "gengage-simrel-default-card-info", b.dataset.gengagePart = "simrel-product-card-body", b.appendChild(x("h3", "gengage-simrel-default-card-title", m)), l && b.appendChild(x("p", "gengage-simrel-default-card-subtitle", l)), b.appendChild(te(t, y(t, r.fields.productInfoUrl), r, e.context.onClick)), b.appendChild(re([...L(t, r.fields.warranties), ...o])), b.appendChild(ae(i, r)), u.appendChild(b), u.appendChild(ne(t, s, r, e.context.onClick)), u.addEventListener("click", (g) => {
398
+ (g.target instanceof HTMLElement ? g.target : null)?.closest("button, a") || e.context.onClick(t);
399
+ }), u.addEventListener("keydown", (g) => {
400
+ if (g.key !== "Enter" && g.key !== " ") return;
401
+ const B = g.target instanceof HTMLElement ? g.target : null;
402
+ B && B !== u || (g.preventDefault(), e.context.onClick(t));
403
+ }), u;
404
+ }
405
+ function oe(e, t) {
406
+ const r = D(e.element.props?.product ?? e.element.props);
407
+ if (!r) return null;
408
+ const a = e.element.props?.index;
409
+ return M({
410
+ product: r,
411
+ index: typeof a == "number" && Number.isFinite(a) ? a : 0,
412
+ context: e.context,
413
+ config: R(t, e.context)
414
+ });
415
+ }
416
+ function ie(e) {
417
+ const t = document.createElement("div");
418
+ t.className = "gengage-simrel-grid gengage-simrel-default-grid gengage-simrel-default-scope", t.setAttribute("role", "list");
419
+ const r = e.element.props?.columns;
420
+ let a;
421
+ typeof r == "number" && Number.isFinite(r) && r > 0 ? a = Math.floor(r) : typeof e.context.gridColumns == "number" && Number.isFinite(e.context.gridColumns) && e.context.gridColumns > 0 && (a = Math.floor(e.context.gridColumns)), a !== void 0 && t.style.setProperty("--gengage-simrel-columns", String(a));
422
+ for (const n of e.element.children ?? []) {
423
+ const o = e.renderElement(n);
424
+ o && t.appendChild(o);
425
+ }
426
+ if (t.children.length === 0) {
427
+ const n = document.createElement("div");
428
+ n.className = "gengage-simrel-empty", n.textContent = e.context.i18n.emptyStateMessage, t.appendChild(n);
429
+ }
430
+ return t;
431
+ }
432
+ function le(e, t) {
433
+ const r = e.element.props?.groups;
434
+ if (!Array.isArray(r)) return null;
435
+ const a = r.map(z).filter((c) => !!c), n = e.element.props?.columns, o = R(t, e.context), i = (c, s) => M({
436
+ product: c,
437
+ index: s,
438
+ context: e.context,
439
+ config: o
440
+ }), l = j({
441
+ groups: a,
442
+ onClick: e.context.onClick,
443
+ onAddToCart: e.context.onAddToCart,
444
+ renderCardElement: i,
445
+ i18n: e.context.i18n,
446
+ ...e.context.discountType !== void 0 ? { discountType: e.context.discountType } : {},
447
+ ...e.context.onGroupingActivate !== void 0 ? { onGroupingActivate: e.context.onGroupingActivate } : {},
448
+ ...typeof n == "number" && Number.isFinite(n) && n > 0 ? { columns: Math.floor(n) } : e.context.gridColumns !== void 0 ? { columns: e.context.gridColumns } : {}
449
+ });
450
+ return l.classList.add("gengage-simrel-default-groups", "gengage-simrel-default-scope"), l;
451
+ }
452
+ function xe(e = {}) {
453
+ return { registry: {
454
+ ProductGrid: (t) => ie(t),
455
+ ProductCard: (t) => oe(t, e),
456
+ GroupTabs: (t) => le(t, e)
457
+ } };
458
+ }
459
+ var se = h({
460
+ sku: f(),
461
+ name: f(),
462
+ imageUrl: f().url().optional(),
463
+ price: f().optional(),
464
+ originalPrice: f().optional(),
465
+ discountPercent: C().optional(),
466
+ url: f().url(),
467
+ brand: f().optional(),
468
+ rating: C().min(0).max(5).optional(),
469
+ reviewCount: C().int().nonnegative().optional()
470
+ }), ce = h({
471
+ layout: k(["grid", "carousel"]).optional(),
472
+ columns: C().int().positive().optional()
473
+ }), de = h({
474
+ product: se,
475
+ index: C().int().nonnegative(),
476
+ discountType: k(["strike-through", "badge"]).optional()
477
+ }), ue = h({
478
+ sku: f(),
479
+ label: f().optional(),
480
+ cartCode: f()
481
+ }), me = h({ actions: q(h({
482
+ label: f(),
483
+ action: h({
484
+ title: f(),
485
+ type: f(),
486
+ payload: H().optional()
487
+ })
488
+ })) }), ge = h({ message: f().optional() }), ve = { components: {
489
+ ProductGrid: {
490
+ schema: ce,
491
+ description: "Outer grid or carousel container for similar products."
492
+ },
493
+ ProductCard: {
494
+ schema: de,
495
+ description: "A single product card with image, title, price, and actions."
496
+ },
497
+ AddToCartButton: {
498
+ schema: ue,
499
+ description: "Add-to-cart CTA rendered inside or below a product card."
500
+ },
501
+ QuickActions: {
502
+ schema: me,
503
+ description: "A row of quick-action buttons below product info."
504
+ },
505
+ EmptyState: {
506
+ schema: ge,
507
+ description: "Empty state shown when no similar products are available."
508
+ }
509
+ } };
510
+ export {
511
+ xe as n,
512
+ ve as t
513
+ };
@@ -1,4 +1,4 @@
1
- import { a, i as r, n as i, r as t, t as S } from "./runtime-BdwZZIrO.js";
1
+ import { a, i as r, n as i, r as t, t as S } from "./runtime-BsZZ8zTg.js";
2
2
  export {
3
3
  S as GengageSimRel,
4
4
  t as createDefaultSimRelUISpecRegistry,
package/dist/simrel.css CHANGED
@@ -1 +1,4 @@
1
1
  :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}.gengage-simrel-container{font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px);color:var(--text-primary);--_gengage-border-color:var(--border-default);--_gengage-discount-color:var(--gengage-discount-color,var(--client-primary));--_gengage-text-primary:var(--text-primary);--_gengage-text-secondary:var(--text-secondary);--_gengage-surface-base:var(--surface-card);--_gengage-surface-muted:var(--surface-card-muted);--_gengage-surface-secondary:var(--surface-card-soft);--_gengage-rating-color:var(--rating);--_gengage-scrollbar-thumb:var(--ds-progress-scrollbar-thumb)}.gengage-simrel-uispec>*{animation:.2s cubic-bezier(.2,.72,.2,1) both gengage-simrel-enter}@keyframes gengage-simrel-enter{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.gengage-simrel-grid{grid-template-columns:repeat(var(--gengage-simrel-columns,4), minmax(0, 1fr));gap:12px;padding:8px 0 72px;display:grid;overflow-x:visible}.gengage-simrel-grid>*{min-width:0}.gengage-simrel-grid .gengage-simrel-empty{grid-column:1/-1}.gengage-simrel-card{border:1px solid var(--_gengage-border-color);border-radius:var(--gengage-simrel-card-radius,var(--ds-card-radius));background:var(--ds-card-bg);cursor:pointer;box-shadow:var(--ds-card-shadow);flex-direction:column;width:100%;min-width:0;max-width:none;transition:box-shadow .2s,transform .1s;display:flex;position:relative;overflow:hidden}.gengage-simrel-card:hover{box-shadow:var(--ds-card-shadow-hover);transform:translateY(-2px)}.gengage-simrel-card-image{background:var(--_gengage-surface-base);position:relative;overflow:hidden}.gengage-simrel-card-image img{object-fit:contain;box-sizing:border-box;width:100%;height:120px;padding:8px;display:block}.gengage-simrel-badge{background:var(--_gengage-discount-color);color:var(--client-on-primary);border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;position:absolute;top:8px;left:8px}.gengage-simrel-card-info{text-align:center;flex-direction:column;gap:4px;padding:8px 10px 10px;display:flex}.gengage-simrel-card-brand{color:var(--_gengage-text-secondary);font-size:10px}.gengage-simrel-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;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gengage-simrel-card-rating{color:var(--_gengage-rating-color);font-size:12px}.gengage-simrel-card-rating .gengage-star-half{display:inline-block;position:relative}.gengage-simrel-card-rating .gengage-star-half>span{width:.5em;position:absolute;top:0;left:0;overflow:hidden}.gengage-simrel-card-review-count{color:var(--_gengage-text-secondary)}.gengage-simrel-card-price{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 4px;padding-top:4px;display:flex}.gengage-simrel-card-price-original{color:var(--_gengage-text-secondary);font-size:12px;font-weight:400;text-decoration:line-through}.gengage-simrel-card-price-current{color:var(--_gengage-text-primary);font-size:16px;font-weight:800}.gengage-simrel-card-cta{text-align:center;border:none;border-top:1px solid var(--_gengage-surface-muted);width:100%;color:var(--client-primary);letter-spacing:.01em;cursor:pointer;background:0 0;border-radius:0;margin-top:auto;padding:8px 10px;font-family:inherit;font-size:12px;font-weight:700;transition:color .15s,background .15s;display:block}.gengage-simrel-card-cta:hover{color:var(--client-primary-hover);background:var(--surface-card-soft)}.gengage-simrel-atc{border:1px solid var(--_gengage-border-color);border-radius:var(--radius-control,12px)}.gengage-simrel-atc-button{border:1.5px solid var(--client-primary);border-radius:var(--radius-control,12px);background:var(--surface-card);width:calc(100% - 20px);min-height:44px;color:var(--client-primary);letter-spacing:.01em;justify-content:center;align-items:center;margin:0 10px 10px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.gengage-simrel-atc-button:hover{background:var(--surface-card-soft);color:var(--client-primary-hover)}.gengage-simrel-card .gengage-simrel-atc{border-top:1px solid var(--_gengage-border-color);background:0 0;border-bottom:none;border-left:none;border-right:none;border-radius:0;justify-content:center;align-items:center;width:100%;margin:0;display:flex}.gengage-simrel-card-oos{text-align:center;border-top:1px solid var(--_gengage-surface-muted);width:100%;color:var(--_gengage-text-secondary);letter-spacing:.01em;padding:8px 10px;font-size:12px;font-weight:600}.gengage-simrel-card--out-of-stock{opacity:.55}.gengage-simrel-card--out-of-stock .gengage-simrel-card-image img{filter:grayscale(40%)}.gengage-simrel-quick-actions{flex-wrap:wrap;gap:8px;padding:6px 12px 12px;display:flex}.gengage-simrel-quick-action{border:1px solid var(--_gengage-border-color);background:var(--_gengage-surface-muted);color:var(--_gengage-text-primary);cursor:pointer;border-radius:999px;min-height:40px;padding:8px 10px;font-size:12px;font-weight:600;transition:transform .12s,box-shadow .12s,border-color .12s}.gengage-simrel-quick-action:hover{border-color:var(--client-primary);color:var(--client-primary);box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-simrel-empty{text-align:center;width:100%;color:var(--_gengage-text-secondary);padding:40px 20px}.gengage-simrel-error{text-align:center;color:var(--_gengage-text-secondary);padding:24px 16px;font-size:13px;line-height:1.5}.gengage-simrel-retry{border:1px solid var(--_gengage-border-color);background:var(--_gengage-surface-base);cursor:pointer;color:var(--_gengage-text-primary);border-radius:6px;margin-top:8px;padding:6px 16px;font-size:13px;transition:background .15s;display:inline-block}.gengage-simrel-retry:hover{background:var(--_gengage-surface-secondary)}.gengage-simrel-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--_gengage-scrollbar-thumb) transparent;border-bottom:none;gap:10px;margin-bottom:0;padding-left:0;padding-right:24px;transition:padding .15s;display:flex;overflow-x:auto}.gengage-simrel-tabs.gengage-simrel-tabs--peek-right{padding-right:6px}.gengage-simrel-tabs.gengage-simrel-tabs--peek-left{padding-left:6px}.gengage-simrel-tabs::-webkit-scrollbar{height:3px}.gengage-simrel-tabs::-webkit-scrollbar-thumb{background:var(--_gengage-scrollbar-thumb);border-radius:3px}.gengage-simrel-tab{border:1px solid var(--_gengage-border-color);background:var(--_gengage-surface-muted);min-height:40px;color:var(--_gengage-text-secondary);opacity:1;font-size:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-1);border-radius:999px;margin-bottom:0;padding:8px 14px;font-family:inherit;transition:color .2s,border-color .2s,background .2s,box-shadow .2s}.gengage-simrel-tab:hover{color:var(--client-primary);border-color:var(--client-primary);background:var(--_gengage-surface-secondary)}.gengage-simrel-tab--active{color:var(--client-primary);border-color:var(--client-primary);background:var(--_gengage-surface-secondary);box-shadow:var(--shadow-2);font-weight:600}.gengage-simrel-tabs-wrapper{border-bottom:1px solid var(--_gengage-border-color);align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex;position:relative}.gengage-simrel-tabs-wrapper .gengage-simrel-tabs{flex:1;min-width:0}.gengage-simrel-tabs-arrow{background:var(--_gengage-surface-base);width:28px;height:40px;color:var(--_gengage-text-secondary);cursor:pointer;border:none;border-radius:4px;flex:none;justify-content:center;align-self:center;align-items:center;padding:0;transition:color .15s,background .15s;display:flex}.gengage-simrel-tabs-arrow:hover{color:var(--client-primary);background:var(--_gengage-surface-secondary)}.gengage-simrel-tabs-arrow--left{margin-right:4px}.gengage-simrel-tabs-arrow--right{margin-left:4px}.gengage-simrel-loading{justify-content:center;padding:40px;display:flex}.gengage-simrel-spinner{border:3px solid var(--_gengage-border-color);border-top-color:var(--client-primary);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite gengage-simrel-spin}@keyframes gengage-simrel-spin{to{transform:rotate(360deg)}}@media (width<=768px){.gengage-simrel-grid{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x mandatory;gap:10px;padding-top:8px;display:flex;overflow-x:auto}.gengage-simrel-grid::-webkit-scrollbar{display:none}.gengage-simrel-grid>*{scroll-snap-align:center;min-width:unset;flex:none}.gengage-simrel-card{width:200px;min-width:200px;max-width:200px}.gengage-simrel-grid .gengage-simrel-empty{flex:1 0 100%;min-width:100%}.gengage-simrel-card-image img{height:140px}.gengage-simrel-card-cta,.gengage-simrel-quick-action,.gengage-simrel-tab{min-height:44px}.gengage-simrel-card{border:1px solid var(--_gengage-border-color)}.gengage-simrel-card-price-current{font-size:14px}}.gengage-simrel-card:focus-visible,.gengage-simrel-tab:focus-visible,.gengage-simrel-quick-action:focus-visible,.gengage-simrel-atc-button:focus-visible{outline:2px solid var(--client-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){.gengage-simrel-uispec>*,.gengage-simrel-card,.gengage-simrel-card-image img,.gengage-simrel-quick-action,.gengage-simrel-spinner,.gengage-simrel-tabs-arrow{transition:none!important;animation:none!important;transform:none!important}}
2
+
3
+ :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}.gengage-simrel-default-scope{--gengage-simrel-card-accent-resolved:var(--gengage-simrel-card-accent,var(--color-client-primary,var(--client-primary-color,#2563eb)));--gengage-simrel-card-font-family-resolved:var(--gengage-simrel-card-font-family,var(--gengage-font-family,inherit));--gengage-font-size:.875rem}.gengage-simrel-default-grid,.gengage-simrel-default-groups{margin:var(--gengage-simrel-card-container-margin,24px 0 40px)}.gengage-simrel-default-groups .gengage-simrel-tabs-wrapper{margin-bottom:14px}.gengage-simrel-default-groups .gengage-simrel-tabs{background:#f7f7f7;border:1px solid #ececec;border-radius:999px;gap:8px;padding:4px}.gengage-simrel-default-groups .gengage-simrel-tab{background:0 0;border:1px solid #0000;border-radius:999px;padding:8px 14px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s}.gengage-simrel-default-groups .gengage-simrel-tab:hover{background:#fff}.gengage-simrel-default-groups .gengage-simrel-tab:hover,.gengage-simrel-default-groups .gengage-simrel-tab--active{border-color:var(--gengage-simrel-card-accent-resolved);color:var(--gengage-simrel-card-accent-resolved)}.gengage-simrel-default-groups .gengage-simrel-tab--active{background:#fff;box-shadow:0 2px 8px #11182714}.gengage-simrel-default-scope .gengage-simrel-spinner{border-top-color:var(--gengage-simrel-card-accent-resolved)}.gengage-simrel-default-card:focus-visible,.gengage-simrel-default-groups .gengage-simrel-tab:focus-visible{outline-color:var(--gengage-simrel-card-accent-resolved)}.gengage-simrel-default-grid,.gengage-simrel-default-groups .gengage-simrel-grid{grid-template-columns:repeat(var(--gengage-simrel-columns,4), minmax(0, 1fr));gap:16px;margin:0 -8px 16px;display:grid;overflow-x:visible}.gengage-simrel-default-grid>*,.gengage-simrel-default-groups .gengage-simrel-grid>*{min-width:0}.gengage-simrel-default-card{color:#222;width:100%;min-width:0;font-family:var(--gengage-simrel-card-font-family-resolved);cursor:pointer;box-shadow:none;background:#f6f6f6;border:none;border-radius:5px;flex-direction:column;transition:box-shadow .16s,transform .12s;display:flex;position:relative;overflow:hidden}.gengage-simrel-default-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px #11182714}.gengage-simrel-default-card-image{background:#f6f6f6;width:100%;height:260px;position:relative;overflow:hidden}.gengage-simrel-default-card-image>img{box-sizing:border-box;object-fit:contain;width:100%;height:100%;padding:8px;transition:opacity 50ms;position:absolute;inset:0}.gengage-simrel-default-card-meta-row{background:#f6f6f6;justify-content:center;align-items:center;min-height:32px;margin-top:8px;padding:8px 12px;display:flex;position:relative}.gengage-simrel-default-card-custom-badge{align-items:center;display:flex;position:absolute;left:12px}.gengage-simrel-default-card-custom-badge-icon{object-fit:contain;width:auto;height:24px}.gengage-simrel-default-card-custom-badge-text{color:#2e6f23;background:#ebf6e8;border:1px solid #3a7f2f;border-radius:4px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 7px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.gengage-simrel-default-card-image-dots{align-items:center;gap:8px;display:flex}.gengage-simrel-default-card-image-dot{cursor:pointer;background:#ccc;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background-color .16s,transform .16s}.gengage-simrel-default-card-image-dot.is-active{background:#222}.gengage-simrel-default-card-info{font-family:var(--gengage-simrel-card-font-family-resolved);background:#f6f6f6;flex-direction:column;flex:1;gap:2px;padding:16px;display:flex;position:relative}.gengage-simrel-default-card-title{color:#222;font-family:var(--gengage-simrel-card-font-family-resolved);letter-spacing:0;margin:0;font-size:16px;font-weight:900;line-height:1.3}.gengage-simrel-default-card-subtitle{color:#222;font-family:var(--gengage-simrel-card-font-family-resolved);letter-spacing:0;margin:0;font-size:14px;font-weight:400;line-height:1.4}.gengage-simrel-default-card-rating{justify-content:space-between;align-items:center;min-height:22px;margin-top:6px;display:flex}.gengage-simrel-default-card-rating.is-placeholder{visibility:hidden}.gengage-simrel-default-card-rating-left{align-items:center;gap:8px;min-width:0;display:flex}.gengage-simrel-default-card-stars{gap:2px;display:flex}.gengage-simrel-default-card-star{color:#ddd;font-size:12px;line-height:1}.gengage-simrel-default-card-star.is-filled{color:#222}.gengage-simrel-default-card-review-link,.gengage-simrel-default-card-product-info-link{color:#222;font-family:var(--gengage-simrel-card-font-family-resolved);white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.gengage-simrel-default-card-review-link{font-size:13px}.gengage-simrel-default-card-product-info-link:hover,.gengage-simrel-default-card-review-link:hover{color:#000}.gengage-simrel-default-card-warranty-row{flex-wrap:wrap;align-items:center;gap:6px;min-height:26px;margin-top:6px;display:flex}.gengage-simrel-default-card-warranty-badge{min-width:86px;height:26px;color:var(--gengage-simrel-card-accent-resolved);background:#fff;border-radius:5px;justify-content:center;align-items:center;padding:3px 6px;font-size:8px;font-weight:600;display:inline-flex}.gengage-simrel-default-card-warranty-badge.is-placeholder{visibility:hidden}.gengage-simrel-default-card-feature-slot{min-height:40px}.gengage-simrel-default-card-feature-swiper{box-sizing:border-box;width:max-content;max-width:100%;height:40px;font-family:var(--gengage-simrel-card-font-family-resolved);background:#fff;border:1px solid #d1d1d1;border-radius:5px;align-self:flex-start;align-items:center;gap:10px;margin-top:6px;padding:0 8px;display:inline-flex}.gengage-simrel-default-card-feature-swiper.is-placeholder{visibility:hidden}.gengage-simrel-default-card-feature-icon{object-fit:contain;flex-shrink:0;width:18px;height:18px}.gengage-simrel-default-card-feature-content{flex:0 auto;min-width:0;overflow:hidden}.gengage-simrel-default-card-feature-text{color:#222;font-family:var(--gengage-simrel-card-font-family-resolved);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:500;transition:transform .25s ease-out,opacity .25s ease-out;display:block;overflow:hidden}.gengage-simrel-default-card-feature-text.slide-out-left{opacity:0;transform:translate(-100%)}.gengage-simrel-default-card-feature-text.slide-out-right{opacity:0;transform:translate(100%)}.gengage-simrel-default-card-feature-text.prepare-from-right{opacity:0;transition:none;transform:translate(100%)}.gengage-simrel-default-card-feature-text.prepare-from-left{opacity:0;transition:none;transform:translate(-100%)}.gengage-simrel-default-card-feature-arrows{flex-shrink:0;align-items:center;margin-left:auto;margin-right:-4px;display:flex}.gengage-simrel-default-card-feature-prev,.gengage-simrel-default-card-feature-next{color:#666;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:18px;transition:color .2s;display:flex}.gengage-simrel-default-card-feature-prev:hover,.gengage-simrel-default-card-feature-next:hover{color:#222}.gengage-simrel-default-card-price-action{background:#e5e5e5;border-radius:0 0 5px 5px;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding:16px;display:flex}.gengage-simrel-default-card-price{min-width:0;font-family:var(--gengage-simrel-card-font-family-resolved);flex-direction:column;flex:1;align-items:flex-start;gap:2px;display:flex}.gengage-simrel-default-card-price-old,.gengage-simrel-default-card-price-current{color:#222;font-family:var(--gengage-simrel-card-font-family-resolved);font-size:14px;font-weight:900;line-height:1}.gengage-simrel-default-card-price-old{text-decoration:line-through}.gengage-simrel-default-card-price-current-row{align-items:center;gap:8px;display:flex}.gengage-simrel-default-card-special-price-badge{object-fit:contain;flex-shrink:0;width:auto;height:14px}.gengage-simrel-default-card-cta{border:1px solid var(--gengage-simrel-card-accent-resolved);color:#222;height:36px;font-family:var(--gengage-simrel-card-font-family-resolved);letter-spacing:0;white-space:nowrap;cursor:pointer;background:0 0;border-radius:18px;flex-shrink:0;padding:0 30px;font-size:12px;font-weight:900;transition:background-color .2s,color .2s}.gengage-simrel-default-card-cta:hover{background:var(--gengage-simrel-card-accent-resolved);color:#fff}.gengage-simrel-default-card-cta:focus-visible,.gengage-simrel-default-card-image-dot:focus-visible,.gengage-simrel-default-card-feature-prev:focus-visible,.gengage-simrel-default-card-feature-next:focus-visible,.gengage-simrel-default-card-review-link:focus-visible{outline:2px solid var(--gengage-simrel-card-accent-resolved);outline-offset:2px}.gengage-simrel-default-compact .gengage-simrel-default-card-price-current,.gengage-simrel-default-compact .gengage-simrel-default-card-price-old{font-size:10px}.gengage-simrel-default-compact .gengage-simrel-default-card-cta{height:24px;padding:0 10px;font-size:10px}.gengage-simrel-default-compact .gengage-simrel-default-grid,.gengage-simrel-default-compact .gengage-simrel-default-groups .gengage-simrel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=1024px){.gengage-simrel-default-grid,.gengage-simrel-default-groups .gengage-simrel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.gengage-simrel-default-grid,.gengage-simrel-default-groups .gengage-simrel-grid{scroll-snap-type:x mandatory;gap:10px;padding-bottom:8px;display:flex;overflow-x:auto}.gengage-simrel-default-card{scroll-snap-align:start;flex-shrink:0;width:220px;min-width:220px;max-width:220px}.gengage-simrel-default-card-image{height:160px}.gengage-simrel-default-card-info{min-height:unset;padding:12px}.gengage-simrel-default-card-title{font-size:16px}.gengage-simrel-default-card-subtitle{font-size:13px}.gengage-simrel-default-card-price-action{padding:12px}.gengage-simrel-default-card-cta{height:36px;padding:0 24px;font-size:13px}}@media (prefers-reduced-motion:reduce){.gengage-simrel-default-card,.gengage-simrel-default-card-feature-text,.gengage-simrel-default-card-cta,.gengage-simrel-default-card-image-dot,.gengage-simrel-default-groups .gengage-simrel-tab{transition:none!important;transform:none!important}}
4
+ /*$vite$:1*/