@nyris/nyris-webapp 0.3.92 → 0.3.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/asset-manifest.json +6 -6
- package/build/index.html +1 -1
- package/build/js/settings.example.js +1 -0
- package/build/static/css/main.5fff4ca0.css +4 -0
- package/build/static/css/main.5fff4ca0.css.map +1 -0
- package/build/static/js/{main.36b77705.js → main.09201b03.js} +3 -3
- package/build/static/js/{main.36b77705.js.map → main.09201b03.js.map} +1 -1
- package/package.json +3 -3
- package/public/js/settings.example.js +1 -0
- package/src/components/ChatAssistant/useChatAssistantLogic.ts +1 -1
- package/src/components/CustomCameraDrawer.tsx +5 -5
- package/src/components/DragDropFile.tsx +4 -4
- package/src/components/ExperienceVisualSearch/ExperienceVisualSearchModal.tsx +1 -1
- package/src/components/ExperienceVisualSearch/ExperienceVisualSearchTrigger.tsx +1 -1
- package/src/components/IdentifiedAttributes.tsx +159 -0
- package/src/components/ImagePreview.tsx +4 -4
- package/src/components/ImageUpload.tsx +5 -5
- package/src/components/MobileCameraCTA.tsx +1 -1
- package/src/components/Rfq/RfqBanner.tsx +3 -4
- package/src/components/SidePanel.tsx +55 -10
- package/src/components/SmartFilter.tsx +70 -42
- package/src/hooks/useGoodResultsChat.ts +1 -1
- package/src/hooks/useImageSearch.ts +8 -12
- package/src/hooks/useResultEvaluator.ts +5 -4
- package/src/pages/Home.tsx +2 -2
- package/src/pages/Result.tsx +58 -5
- package/src/services/vizo.ts +0 -6
- package/src/styles/common.scss +1 -0
- package/src/styles/experienceVisualSearch.scss +2 -0
- package/src/types.ts +2 -1
- package/build/static/css/main.5ea01690.css +0 -4
- package/build/static/css/main.5ea01690.css.map +0 -1
- /package/build/static/js/{main.36b77705.js.LICENSE.txt → main.09201b03.js.LICENSE.txt} +0 -0
|
@@ -3,6 +3,7 @@ import ItemSpecification from './ItemSpecification';
|
|
|
3
3
|
import { Icon } from '@nyris/nyris-react-components';
|
|
4
4
|
import useRequestStore from 'stores/request/requestStore';
|
|
5
5
|
import useResultStore from 'stores/result/resultStore';
|
|
6
|
+
import useUiStore from 'stores/ui/uiStore';
|
|
6
7
|
import { rerankSmartFilters, SmartFilterRerankItem } from 'services/vizo';
|
|
7
8
|
|
|
8
9
|
function SmartFilter({
|
|
@@ -25,6 +26,7 @@ function SmartFilter({
|
|
|
25
26
|
const setAlgoliaProducts = useResultStore(state => state.setAlgoliaProducts);
|
|
26
27
|
const requestImages = useRequestStore(state => state.requestImages);
|
|
27
28
|
const setAlgoliaFilter = useRequestStore(state => state.setAlgoliaFilter);
|
|
29
|
+
const setIsFindApiLoading = useUiStore(state => state.setIsFindApiLoading);
|
|
28
30
|
const isAlgoliaEnabled = !!window.settings?.algolia?.enabled;
|
|
29
31
|
|
|
30
32
|
const activeProducts =
|
|
@@ -32,10 +34,20 @@ function SmartFilter({
|
|
|
32
34
|
? productsFromAlgolia
|
|
33
35
|
: productsFromFindApi;
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
// Always rerank against the original, unfiltered result set. Reranking
|
|
38
|
+
// mutates `productsFromFindApi`/`productsFromAlgolia`, so deriving items
|
|
39
|
+
// from those would shrink the payload on every subsequent rerank.
|
|
40
|
+
const originalResults = useMemo(
|
|
41
|
+
() =>
|
|
42
|
+
firstSearchResults && firstSearchResults.length > 0
|
|
43
|
+
? firstSearchResults
|
|
44
|
+
: activeProducts || [],
|
|
45
|
+
[firstSearchResults, activeProducts],
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
const rerankItems: any[] = useMemo(() => {
|
|
49
|
+
return originalResults
|
|
50
|
+
.map((product: any): any | null => {
|
|
39
51
|
const sku = product?.sku || product?.objectID;
|
|
40
52
|
const imageUrl =
|
|
41
53
|
product?.matches?.[0]?.url ||
|
|
@@ -49,31 +61,39 @@ function SmartFilter({
|
|
|
49
61
|
}
|
|
50
62
|
|
|
51
63
|
return {
|
|
52
|
-
|
|
64
|
+
...product,
|
|
53
65
|
imageUrl: String(imageUrl),
|
|
54
|
-
metadata: {
|
|
55
|
-
title: product?.title || product?.name || product?.Bezeichnung || '',
|
|
56
|
-
description:
|
|
57
|
-
product?.description ||
|
|
58
|
-
product?.VK_Text_Englisch ||
|
|
59
|
-
product?.VK_Text_Deutsch ||
|
|
60
|
-
'',
|
|
61
|
-
language: window.settings.language || 'en',
|
|
62
|
-
sku: String(sku),
|
|
63
|
-
score:
|
|
64
|
-
typeof (product?.score ?? product?.similarity) === 'number'
|
|
65
|
-
? Number(product?.score ?? product?.similarity)
|
|
66
|
-
: null,
|
|
67
|
-
},
|
|
68
66
|
};
|
|
69
67
|
})
|
|
70
68
|
.filter((item): item is SmartFilterRerankItem => item !== null);
|
|
71
|
-
}, [
|
|
69
|
+
}, [originalResults]);
|
|
70
|
+
|
|
71
|
+
const buildAlgoliaSkuFilter = (skus: string[]) => {
|
|
72
|
+
const nonEmptyFilter: string[] = ['sku:DOES_NOT_EXIST<score=1> '];
|
|
73
|
+
const rankedFilters = skus
|
|
74
|
+
.slice()
|
|
75
|
+
.reverse()
|
|
76
|
+
.map((sku, i) => `sku:'${sku}'<score=${i}> `);
|
|
77
|
+
return [...nonEmptyFilter, ...rankedFilters].join('OR ');
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const restoreOriginalResults = () => {
|
|
81
|
+
if (originalResults.length === 0) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
setFindApiProducts(originalResults);
|
|
85
|
+
if (isAlgoliaEnabled) {
|
|
86
|
+
setAlgoliaProducts(originalResults);
|
|
87
|
+
const skus = originalResults
|
|
88
|
+
.map((p: any) => String(p?.sku || p?.objectID || '').trim())
|
|
89
|
+
.filter(Boolean);
|
|
90
|
+
setAlgoliaFilter(buildAlgoliaSkuFilter(skus));
|
|
91
|
+
}
|
|
92
|
+
};
|
|
72
93
|
|
|
73
94
|
const applySkuOrderingToCurrentResults = (orderedSkus: string[]) => {
|
|
74
|
-
const sourceResults = activeProducts || [];
|
|
75
95
|
const map = new Map<string, any>(
|
|
76
|
-
|
|
96
|
+
originalResults.map((item: any) => [
|
|
77
97
|
String(item?.sku || item?.objectID || '').trim(),
|
|
78
98
|
item,
|
|
79
99
|
]),
|
|
@@ -90,12 +110,7 @@ function SmartFilter({
|
|
|
90
110
|
setFindApiProducts(reordered);
|
|
91
111
|
if (isAlgoliaEnabled) {
|
|
92
112
|
setAlgoliaProducts(reordered);
|
|
93
|
-
|
|
94
|
-
const rankedFilters = orderedSkus
|
|
95
|
-
.slice()
|
|
96
|
-
.reverse()
|
|
97
|
-
.map((sku, i) => `sku:'${sku}'<score=${i}> `);
|
|
98
|
-
setAlgoliaFilter([...nonEmptyFilter, ...rankedFilters].join('OR '));
|
|
113
|
+
setAlgoliaFilter(buildAlgoliaSkuFilter(orderedSkus));
|
|
99
114
|
}
|
|
100
115
|
return true;
|
|
101
116
|
};
|
|
@@ -112,12 +127,11 @@ function SmartFilter({
|
|
|
112
127
|
...smartFilters,
|
|
113
128
|
selectedFilterKey: null,
|
|
114
129
|
selectedFilterValue: null,
|
|
130
|
+
rerankedSkus: [],
|
|
115
131
|
rerankStatus: 'idle',
|
|
116
132
|
errorMessage: null,
|
|
117
133
|
});
|
|
118
|
-
|
|
119
|
-
setFindApiProducts(firstSearchResults);
|
|
120
|
-
}
|
|
134
|
+
restoreOriginalResults();
|
|
121
135
|
return;
|
|
122
136
|
}
|
|
123
137
|
|
|
@@ -139,6 +153,7 @@ function SmartFilter({
|
|
|
139
153
|
rerankStatus: 'loading',
|
|
140
154
|
errorMessage: null,
|
|
141
155
|
});
|
|
156
|
+
setIsFindApiLoading(true);
|
|
142
157
|
|
|
143
158
|
try {
|
|
144
159
|
const rerankResponse = await rerankSmartFilters({
|
|
@@ -209,6 +224,8 @@ function SmartFilter({
|
|
|
209
224
|
? 'Smart filters are unavailable right now.'
|
|
210
225
|
: 'Could not rerank results.',
|
|
211
226
|
});
|
|
227
|
+
} finally {
|
|
228
|
+
setIsFindApiLoading(false);
|
|
212
229
|
}
|
|
213
230
|
};
|
|
214
231
|
|
|
@@ -224,7 +241,7 @@ function SmartFilter({
|
|
|
224
241
|
</div>
|
|
225
242
|
<Icon name="smart_filter_indication" className="mt-1" />
|
|
226
243
|
</div>
|
|
227
|
-
<div className=
|
|
244
|
+
<div className={`flex flex-wrap mx-4 gap-2 ${imageAnalysis?.specification ? 'mt-4' : ''}`}>
|
|
228
245
|
{Object.keys(imageAnalysis?.specification || {})
|
|
229
246
|
.filter(key => key !== 'is_nameplate' && key !== 'prefilter_value')
|
|
230
247
|
.map(key => {
|
|
@@ -244,23 +261,20 @@ function SmartFilter({
|
|
|
244
261
|
})}
|
|
245
262
|
</div>
|
|
246
263
|
{smartFilters.status === 'loading' && (
|
|
247
|
-
<div className="
|
|
264
|
+
<div className="ml-[30px] mt-3 text-xs text-[#3E36DC]">
|
|
248
265
|
Loading smart filters...
|
|
249
266
|
</div>
|
|
250
267
|
)}
|
|
251
268
|
{smartFilters.status === 'error' && (
|
|
252
|
-
<div className="
|
|
269
|
+
<div className="ml-[30px] mt-3 text-xs text-[#D14343]">
|
|
253
270
|
{smartFilters.errorMessage || 'Could not generate smart filters.'}
|
|
254
271
|
</div>
|
|
255
272
|
)}
|
|
256
273
|
{smartFilters.status === 'success' && smartFilters.filters.length === 0 && (
|
|
257
|
-
<div className="
|
|
274
|
+
<div className="ml-[30px] mt-3 text-xs text-[#767A9F]">
|
|
258
275
|
No smart filters available for this image.
|
|
259
276
|
</div>
|
|
260
277
|
)}
|
|
261
|
-
{smartFilters.rerankStatus === 'loading' && (
|
|
262
|
-
<div className="mx-4 mt-1 text-xs text-[#3E36DC]">Applying rerank...</div>
|
|
263
|
-
)}
|
|
264
278
|
<div
|
|
265
279
|
className={
|
|
266
280
|
variant === 'results'
|
|
@@ -290,24 +304,38 @@ function SmartFilter({
|
|
|
290
304
|
const isSelected =
|
|
291
305
|
smartFilters.selectedFilterKey === filter.key &&
|
|
292
306
|
smartFilters.selectedFilterValue === filter.value;
|
|
307
|
+
const hasSelection =
|
|
308
|
+
!!smartFilters.selectedFilterKey &&
|
|
309
|
+
!!smartFilters.selectedFilterValue;
|
|
310
|
+
const isRerankLoading = smartFilters.rerankStatus === 'loading';
|
|
311
|
+
const isDisabled = !isSelected && (hasSelection || isRerankLoading);
|
|
293
312
|
return (
|
|
294
313
|
<button
|
|
295
314
|
key={`${filter.key}-${filter.value}-${index}`}
|
|
315
|
+
type="button"
|
|
316
|
+
disabled={isDisabled}
|
|
317
|
+
aria-pressed={isSelected}
|
|
296
318
|
style={variant === 'results' ? { flex: '0 0 auto' } : undefined}
|
|
297
|
-
className={`px-3.5 py-2 rounded-lg border text-sm ${
|
|
319
|
+
className={`px-3.5 py-2 rounded-lg border text-sm inline-flex items-center gap-1.5 ${
|
|
298
320
|
isSelected
|
|
299
321
|
? 'bg-[#545987] text-white border-[#545987]'
|
|
300
322
|
: 'bg-[#E7E8F1] text-[#767A9F] border-transparent'
|
|
301
|
-
}`}
|
|
323
|
+
} ${isDisabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}`}
|
|
302
324
|
onClick={() => {
|
|
303
|
-
if (
|
|
325
|
+
if (isRerankLoading) return;
|
|
304
326
|
void onFilterClick({
|
|
305
327
|
key: filter.key,
|
|
306
328
|
value: filter.value,
|
|
307
329
|
});
|
|
308
330
|
}}
|
|
309
331
|
>
|
|
310
|
-
{filter.
|
|
332
|
+
<span>{filter.value}</span>
|
|
333
|
+
{isSelected && (
|
|
334
|
+
<Icon
|
|
335
|
+
name="close"
|
|
336
|
+
className="w-3 h-3 text-white"
|
|
337
|
+
/>
|
|
338
|
+
)}
|
|
311
339
|
</button>
|
|
312
340
|
);
|
|
313
341
|
})}
|
|
@@ -592,7 +592,7 @@ Respond to the user's message with an appropriate action and follow-up options.`
|
|
|
592
592
|
finalOptions = [
|
|
593
593
|
...finalOptions,
|
|
594
594
|
{
|
|
595
|
-
label: `Find parts related to ${imageAnalysis
|
|
595
|
+
label: `Find parts related to ${imageAnalysis?.specification?.product_category || 'request image'}`,
|
|
596
596
|
action_type: 'find_related_parts' as const,
|
|
597
597
|
key: 'find_related',
|
|
598
598
|
value: 'find_related_parts',
|
|
@@ -18,9 +18,7 @@ import useResultEvaluator from './useResultEvaluator';
|
|
|
18
18
|
import useConversationStore from 'stores/chat/conversationStore';
|
|
19
19
|
import { useGroundedSearch } from './useGroundedSearch';
|
|
20
20
|
import { generateSmartFilters } from '../services/vizo';
|
|
21
|
-
|
|
22
|
-
const DEFAULT_SMART_FILTER_PROMPT =
|
|
23
|
-
'Extract at most 4 relevant product intent filters from the request image. Return strict JSON only.';
|
|
21
|
+
import { cropImage } from 'utils/cropImageToBase64';
|
|
24
22
|
|
|
25
23
|
export const useImageSearch = () => {
|
|
26
24
|
const setRegions = useRequestStore(state => state.setRegions);
|
|
@@ -195,7 +193,7 @@ export const useImageSearch = () => {
|
|
|
195
193
|
];
|
|
196
194
|
|
|
197
195
|
let smartFilterPromise: Promise<void> | null = null;
|
|
198
|
-
if (isSmartFiltersEnabled && requestImage && newSearch) {
|
|
196
|
+
if (isSmartFiltersEnabled && requestImage && (newSearch || imageRegion)) {
|
|
199
197
|
setSmartFilters({
|
|
200
198
|
status: 'loading',
|
|
201
199
|
filters: [],
|
|
@@ -206,10 +204,8 @@ export const useImageSearch = () => {
|
|
|
206
204
|
errorMessage: null,
|
|
207
205
|
});
|
|
208
206
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
prompt: DEFAULT_SMART_FILTER_PROMPT,
|
|
212
|
-
})
|
|
207
|
+
const smartFilterImage = cropImage(requestImage, region);
|
|
208
|
+
smartFilterPromise = generateSmartFilters({ image: smartFilterImage })
|
|
213
209
|
.then(response => {
|
|
214
210
|
const rawFilters = response?.filters;
|
|
215
211
|
if (!rawFilters || typeof rawFilters !== 'object') {
|
|
@@ -244,9 +240,9 @@ export const useImageSearch = () => {
|
|
|
244
240
|
response?.rerankedSkus ||
|
|
245
241
|
response?.filtered_items?.map(item => String(item.sku)) ||
|
|
246
242
|
[];
|
|
247
|
-
const rerankingApplied =
|
|
248
|
-
|
|
249
|
-
|
|
243
|
+
// const rerankingApplied =
|
|
244
|
+
// response?.rerankingApplied ??
|
|
245
|
+
// (rerankedSkus.length > 0 ? true : false);
|
|
250
246
|
|
|
251
247
|
setSmartFilters({
|
|
252
248
|
status: 'success',
|
|
@@ -323,7 +319,7 @@ export const useImageSearch = () => {
|
|
|
323
319
|
region,
|
|
324
320
|
);
|
|
325
321
|
}
|
|
326
|
-
if (window.settings.vizo
|
|
322
|
+
if (window.settings.vizo?.chat) {
|
|
327
323
|
evaluateResults({
|
|
328
324
|
activeProducts: res?.results || [],
|
|
329
325
|
imageAnalysis: res?.image_analysis,
|
|
@@ -219,7 +219,8 @@ ${resultsSummary
|
|
|
219
219
|
.map(
|
|
220
220
|
r =>
|
|
221
221
|
`${r.rank}. ${r.title}${r.description ? ` - ${r.description}` : ''} (Score: ${r.score})${r.metadata ? `\n Metadata: ${JSON.stringify(r.metadata)}` : ''}`,
|
|
222
|
-
)
|
|
222
|
+
)
|
|
223
|
+
.join('\n')}
|
|
223
224
|
|
|
224
225
|
COMMON ATTRIBUTES FOUND IN RESULTS (for filter suggestions):
|
|
225
226
|
${JSON.stringify(attributeFrequency, null, 2)}
|
|
@@ -316,7 +317,7 @@ Evaluate if these results match the image. If they do (same type of product), ro
|
|
|
316
317
|
|
|
317
318
|
const tableSuggestions = lookupRelatedParts(
|
|
318
319
|
table,
|
|
319
|
-
imageAnalysis
|
|
320
|
+
imageAnalysis?.specification?.product_category || '',
|
|
320
321
|
);
|
|
321
322
|
const hasTableSuggestions =
|
|
322
323
|
!!tableSuggestions && tableSuggestions.length > 0;
|
|
@@ -329,7 +330,7 @@ Evaluate if these results match the image. If they do (same type of product), ro
|
|
|
329
330
|
!relatedPartsUsed
|
|
330
331
|
) {
|
|
331
332
|
mappedOptions.push({
|
|
332
|
-
label: `Find parts related to ${imageAnalysis
|
|
333
|
+
label: `Find parts related to ${imageAnalysis?.specification?.product_category || 'request image'}`,
|
|
333
334
|
action_type: 'find_related_parts',
|
|
334
335
|
key: 'find_related',
|
|
335
336
|
value: 'find_related_parts',
|
|
@@ -353,7 +354,7 @@ Evaluate if these results match the image. If they do (same type of product), ro
|
|
|
353
354
|
!relatedPartsUsed
|
|
354
355
|
) {
|
|
355
356
|
mappedOptions.push({
|
|
356
|
-
label: `Find parts related to ${imageAnalysis
|
|
357
|
+
label: `Find parts related to ${imageAnalysis?.specification?.product_category || 'request image'}`,
|
|
357
358
|
action_type: 'find_related_parts',
|
|
358
359
|
key: 'find_related',
|
|
359
360
|
value: 'find_related_parts',
|
package/src/pages/Home.tsx
CHANGED
|
@@ -84,7 +84,7 @@ function Home() {
|
|
|
84
84
|
'items-center',
|
|
85
85
|
'justify-center',
|
|
86
86
|
'h-auto',
|
|
87
|
-
'mt-[calc(50vh-110px)]',
|
|
87
|
+
!window.settings.experienceVisualSearch ? 'mt-[calc(50vh-110px)]' : 'mt-[calc(50vh-156px)]',
|
|
88
88
|
])}
|
|
89
89
|
>
|
|
90
90
|
{geoLocation && <LocationInfoPopup />}
|
|
@@ -122,7 +122,7 @@ function Home() {
|
|
|
122
122
|
</div>
|
|
123
123
|
</div>
|
|
124
124
|
|
|
125
|
-
<div className="flex flex-col desktop:hidden justify-center items-center w-full h-full ">
|
|
125
|
+
<div className="flex flex-col desktop:hidden justify-center items-center w-full h-full overflow-y-auto">
|
|
126
126
|
<MobileCameraCTA setOpenModalCamera={setOpenModalCamera} />
|
|
127
127
|
<div className="box-screenshot-camera">
|
|
128
128
|
<CustomCamera
|
package/src/pages/Result.tsx
CHANGED
|
@@ -30,6 +30,7 @@ import MatchNotificationBanner from 'components/MatchNotificationBanner';
|
|
|
30
30
|
import ImageUpload from 'components/ImageUpload';
|
|
31
31
|
import SmartFilter from 'components/SmartFilter';
|
|
32
32
|
import { ChatAssistant, MobileChatAssistant } from 'components/ChatAssistant';
|
|
33
|
+
import IdentifiedAttributes from 'components/IdentifiedAttributes';
|
|
33
34
|
|
|
34
35
|
function Results() {
|
|
35
36
|
const settings = window.settings;
|
|
@@ -222,11 +223,7 @@ function Results() {
|
|
|
222
223
|
>
|
|
223
224
|
<div className="block desktop:hidden desktop:mb-0 mx-2">
|
|
224
225
|
{requestImages[0] && <ImagePreview />}
|
|
225
|
-
{isSmartFiltersEnabled &&
|
|
226
|
-
window.settings.showImageDetails &&
|
|
227
|
-
(imageAnalysis?.imageDescription ||
|
|
228
|
-
Object.keys(imageAnalysis?.specification || {}).length >
|
|
229
|
-
0) && (
|
|
226
|
+
{isSmartFiltersEnabled && (
|
|
230
227
|
<div className="my-4">
|
|
231
228
|
<SmartFilter
|
|
232
229
|
imageAnalysis={imageAnalysis}
|
|
@@ -234,6 +231,62 @@ function Results() {
|
|
|
234
231
|
/>
|
|
235
232
|
</div>
|
|
236
233
|
)}
|
|
234
|
+
{window.settings.showImageDetails &&
|
|
235
|
+
(imageAnalysis?.imageDescription ||
|
|
236
|
+
Object.keys(imageAnalysis?.specification || {}).length >
|
|
237
|
+
0) && (
|
|
238
|
+
<div className="p-2">
|
|
239
|
+
<div className="self-stretch p-4 bg-[#e9e9ef] rounded-[32px] flex justify-start flex-col items-start gap-2 flex-wrap content-start w-full">
|
|
240
|
+
{imageAnalysis?.imageDescription !==
|
|
241
|
+
'No description available' && (
|
|
242
|
+
<div className="self-stretch flex flex-col justify-start items-start">
|
|
243
|
+
<div className="justify-start text-black text-base font-semibold">
|
|
244
|
+
Image description
|
|
245
|
+
</div>
|
|
246
|
+
<div className="self-stretch justify-start text-black text-sm font-normal">
|
|
247
|
+
{imageAnalysis?.imageDescription || ''}
|
|
248
|
+
</div>
|
|
249
|
+
</div>
|
|
250
|
+
)}
|
|
251
|
+
|
|
252
|
+
{Object.keys(imageAnalysis?.specification || {})
|
|
253
|
+
.filter(
|
|
254
|
+
key =>
|
|
255
|
+
key !== 'is_nameplate' &&
|
|
256
|
+
key !== 'prefilter_value',
|
|
257
|
+
)
|
|
258
|
+
.some(
|
|
259
|
+
key => !!imageAnalysis?.specification[key],
|
|
260
|
+
) && (
|
|
261
|
+
<div className="justify-start text-[#2b2c46] text-base font-semibold mt-1">
|
|
262
|
+
Identified Attributes
|
|
263
|
+
</div>
|
|
264
|
+
)}
|
|
265
|
+
<div className="flex justify-start items-start gap-4 flex-wrap content-start">
|
|
266
|
+
{Object.keys(imageAnalysis?.specification || {})
|
|
267
|
+
.filter(
|
|
268
|
+
key =>
|
|
269
|
+
key !== 'is_nameplate' &&
|
|
270
|
+
key !== 'prefilter_value',
|
|
271
|
+
)
|
|
272
|
+
.map(key => {
|
|
273
|
+
const value = imageAnalysis?.specification[key];
|
|
274
|
+
if (!value) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
return (
|
|
278
|
+
<IdentifiedAttributes
|
|
279
|
+
attr={key}
|
|
280
|
+
value={value}
|
|
281
|
+
specificationFilter={specificationFilter}
|
|
282
|
+
imageAnalysis={imageAnalysis}
|
|
283
|
+
/>
|
|
284
|
+
);
|
|
285
|
+
})}
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
)}
|
|
237
290
|
</div>
|
|
238
291
|
<div
|
|
239
292
|
className={twMerge([
|
package/src/services/vizo.ts
CHANGED
|
@@ -71,10 +71,6 @@ export interface SmartFilterRerankResponse {
|
|
|
71
71
|
|
|
72
72
|
export interface SmartFilterGenerateParams {
|
|
73
73
|
image: File | HTMLCanvasElement;
|
|
74
|
-
prompt: string;
|
|
75
|
-
model?: string;
|
|
76
|
-
timeoutMs?: number;
|
|
77
|
-
apiKey?: string;
|
|
78
74
|
}
|
|
79
75
|
|
|
80
76
|
export interface SmartFilterGenerateResponse {
|
|
@@ -135,7 +131,6 @@ export async function rerankSmartFilters({
|
|
|
135
131
|
|
|
136
132
|
export async function generateSmartFilters({
|
|
137
133
|
image,
|
|
138
|
-
prompt,
|
|
139
134
|
}: SmartFilterGenerateParams): Promise<SmartFilterGenerateResponse> {
|
|
140
135
|
const settings = window.settings;
|
|
141
136
|
const isSmartFiltersEnabled = !!settings.useSmartFilters;
|
|
@@ -154,7 +149,6 @@ export async function generateSmartFilters({
|
|
|
154
149
|
} else {
|
|
155
150
|
formData.append('image', image);
|
|
156
151
|
}
|
|
157
|
-
formData.append('prompt', prompt);
|
|
158
152
|
|
|
159
153
|
try {
|
|
160
154
|
const response = await axios.post<SmartFilterGenerateResponse>(
|
package/src/styles/common.scss
CHANGED
|
@@ -65,6 +65,7 @@ body.overflow-hidden {
|
|
|
65
65
|
display: flex;
|
|
66
66
|
flex-direction: row;
|
|
67
67
|
flex-wrap: wrap;
|
|
68
|
+
justify-content: center;
|
|
68
69
|
gap: 16px;
|
|
69
70
|
width: 376px;
|
|
70
71
|
.experience-visual-search-image-container {
|
|
@@ -166,6 +167,7 @@ body.overflow-hidden {
|
|
|
166
167
|
padding: 32px 8px;
|
|
167
168
|
&-content {
|
|
168
169
|
&.experience-visual-search-images {
|
|
170
|
+
max-width: calc(100vw - 32px);
|
|
169
171
|
width: 300px;
|
|
170
172
|
gap: 8px;
|
|
171
173
|
.experience-visual-search-image-container {
|
package/src/types.ts
CHANGED
|
@@ -86,7 +86,7 @@ export interface AppSettings extends NyrisAPISettings {
|
|
|
86
86
|
experienceVisualSearchImages?: string[];
|
|
87
87
|
geoLocation?: boolean;
|
|
88
88
|
geoLocationMessage?: string;
|
|
89
|
-
vizo
|
|
89
|
+
vizo?: {
|
|
90
90
|
enabled?: boolean;
|
|
91
91
|
groundingEnabled?: boolean;
|
|
92
92
|
fallbackToElasticSearch?: boolean;
|
|
@@ -126,6 +126,7 @@ export interface AppSettings extends NyrisAPISettings {
|
|
|
126
126
|
textSearchScoring?: Record<string, Record<string, number>>;
|
|
127
127
|
theme: SearchSuiteSettings;
|
|
128
128
|
visualSearchFilterKey?: string;
|
|
129
|
+
supportButtonLabel?: string;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
export interface SearchSuiteSettings {
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
|
|
2
|
-
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
|
|
3
|
-
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:400px){.\!container{max-width:400px!important}.container{max-width:400px}}@media (min-width:777px){.\!container{max-width:777px!important}.container{max-width:777px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-1{right:-.25rem}.-right-2{right:-.5rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-3\.5{top:-.875rem}.-top-4{top:-1rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-12{bottom:3rem}.bottom-2{bottom:.5rem}.bottom-24{bottom:6rem}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.bottom-\[49px\]{bottom:49px}.left-0{left:0}.left-1{left:.25rem}.left-2{left:.5rem}.left-4{left:1rem}.left-8{left:2rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.right-7{right:1.75rem}.top-0{top:0}.top-1{top:.25rem}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-7{top:1.75rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[50\]{z-index:50}.z-\[51\]{z-index:51}.z-\[9999\]{z-index:9999}.col-span-full{grid-column:1/-1}.m-0{margin:0}.m-4{margin:1rem}.m-auto{margin:auto}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-bottom:1rem;margin-top:1rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[30px\]{margin-left:30px}.ml-auto{margin-left:auto}.mr-16{margin-right:4rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-4{margin-right:1rem}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-\[6px\]{margin-top:6px}.mt-\[calc\(50vh-110px\)\]{margin-top:calc(50vh - 110px)}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-36{height:9rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[10px\]{height:10px}.h-\[12px\]{height:12px}.h-\[168px\]{height:168px}.h-\[22px\]{height:22px}.h-\[368px\]{height:368px}.h-\[48px\]{height:48px}.h-\[50px\]{height:50px}.h-\[52px\]{height:52px}.h-\[56px\]{height:56px}.h-\[60px\]{height:60px}.h-\[70px\]{height:70px}.h-\[72px\]{height:72px}.h-\[80\%\]{height:80%}.h-\[8px\]{height:8px}.h-auto{height:auto}.h-fit{height:-webkit-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[100px\]{max-height:100px}.max-h-\[368px\]{max-height:368px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[90svh\]{max-height:90svh}.max-h-\[95vh\]{max-height:95vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-5{min-height:1.25rem}.min-h-8{min-height:2rem}.min-h-\[106px\]{min-height:106px}.min-h-\[120px\]{min-height:120px}.min-h-\[268px\]{min-height:268px}.min-h-\[56px\]{min-height:56px}.min-h-\[60px\]{min-height:60px}.min-h-full{min-height:100%}.w-0{width:0}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[10px\]{width:10px}.w-\[110px\]{width:110px}.w-\[12px\]{width:12px}.w-\[180px\]{width:180px}.w-\[215px\]{width:215px}.w-\[22px\]{width:22px}.w-\[295px\]{width:295px}.w-\[325px\]{width:325px}.w-\[334px\]{width:334px}.w-\[360px\]{width:360px}.w-\[410px\]{width:410px}.w-\[48px\]{width:48px}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[636px\]{width:636px}.w-\[70px\]{width:70px}.w-\[8px\]{width:8px}.w-\[90\%\]{width:90%}.w-fit{width:-webkit-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-webkit-max-content;width:max-content}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-14{min-width:3.5rem}.min-w-4{min-width:1rem}.min-w-6{min-width:1.5rem}.min-w-\[268px\]{min-width:268px}.min-w-\[325px\]{min-width:325px}.min-w-\[334px\]{min-width:334px}.min-w-\[56px\]{min-width:56px}.min-w-\[90px\]{min-width:90px}.max-w-0{max-width:0}.max-w-\[100\%\]{max-width:100%}.max-w-\[1500px\]{max-width:1500px}.max-w-\[175px\]{max-width:175px}.max-w-\[190px\]{max-width:190px}.max-w-\[200px\]{max-width:200px}.max-w-\[325px\]{max-width:325px}.max-w-\[350px\]{max-width:350px}.max-w-\[360px\]{max-width:360px}.max-w-\[531px\]{max-width:531px}.max-w-\[532px\]{max-width:532px}.max-w-\[840px\]{max-width:840px}.max-w-\[85\%\]{max-width:85%}.max-w-fit{max-width:-webkit-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.flex-1{flex:1 1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.scroll-pt-5{scroll-padding-top:1.25rem}.grid-cols-\[repeat\(auto-fit\2c _minmax\(180px\2c _0px\)\)\]{grid-template-columns:repeat(auto-fit,minmax(180px,0))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-end{align-content:flex-end}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-\[11px\]{gap:11px}.gap-x-1{column-gap:.25rem}.gap-x-2{column-gap:.5rem}.gap-x-5{column-gap:1.25rem}.gap-x-8{column-gap:2rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[12px\]{border-radius:12px}.rounded-\[16px\]{border-radius:16px}.rounded-\[1px\]{border-radius:1px}.rounded-\[21px\]{border-radius:21px}.rounded-\[24px\]{border-radius:24px}.rounded-\[32px\]{border-radius:32px}.rounded-\[4px\]{border-radius:4px}.rounded-\[50\%\]{border-radius:50%}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-\[24px\]{border-top-left-radius:24px;border-top-right-radius:24px}.rounded-bl-\[16px\]{border-bottom-left-radius:16px}.rounded-bl-sm{border-bottom-left-radius:.125rem}.rounded-br-\[16px\]{border-bottom-right-radius:16px}.rounded-tl-\[16px\]{border-top-left-radius:16px}.rounded-tr-\[8px\]{border-top-right-radius:8px}.border{border-width:1px}.border-2,.border-\[2px\]{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#3E36DC\]{--tw-border-opacity:1;border-color:#3e36dc;border-color:rgb(62 54 220/var(--tw-border-opacity,1))}.border-\[\#545987\]{--tw-border-opacity:1;border-color:#545987;border-color:rgb(84 89 135/var(--tw-border-opacity,1))}.border-\[\#655EE3\]{--tw-border-opacity:1;border-color:#655ee3;border-color:rgb(101 94 227/var(--tw-border-opacity,1))}.border-\[\#AAABB5\]{--tw-border-opacity:1;border-color:#aaabb5;border-color:rgb(170 171 181/var(--tw-border-opacity,1))}.border-\[\#BBBDCF\]{--tw-border-opacity:1;border-color:#bbbdcf;border-color:rgb(187 189 207/var(--tw-border-opacity,1))}.border-\[\#C7D2FE\]{--tw-border-opacity:1;border-color:#c7d2fe;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-\[\#DDDEE7\]{--tw-border-opacity:1;border-color:#dddee7;border-color:rgb(221 222 231/var(--tw-border-opacity,1))}.border-\[\#E0E0E0\]{--tw-border-opacity:1;border-color:#e0e0e0;border-color:rgb(224 224 224/var(--tw-border-opacity,1))}.border-\[\#E31B5D\]{--tw-border-opacity:1;border-color:#e31b5d;border-color:rgb(227 27 93/var(--tw-border-opacity,1))}.border-\[\#E67E22\]{--tw-border-opacity:1;border-color:#e67e22;border-color:rgb(230 126 34/var(--tw-border-opacity,1))}.border-\[\#E7E8F1\]{--tw-border-opacity:1;border-color:#e7e8f1;border-color:rgb(231 232 241/var(--tw-border-opacity,1))}.border-\[\#e0e0e0\]{--tw-border-opacity:1;border-color:#e0e0e0;border-color:rgb(224 224 224/var(--tw-border-opacity,1))}.border-\[\#e4e3ff\]{--tw-border-opacity:1;border-color:#e4e3ff;border-color:rgb(228 227 255/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:#fecaca;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:#fff;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.\!bg-\[\#2B2C46\]{--tw-bg-opacity:1!important;background-color:#2b2c46!important;background-color:rgb(43 44 70/var(--tw-bg-opacity,1))!important}.\!bg-\[\#55566B\]{--tw-bg-opacity:1!important;background-color:#55566b!important;background-color:rgb(85 86 107/var(--tw-bg-opacity,1))!important}.bg-\[\#00000080\]{background-color:#00000080}.bg-\[\#10b981\]{--tw-bg-opacity:1;background-color:#10b981;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-\[\#2B2C46\]{--tw-bg-opacity:1;background-color:#2b2c46;background-color:rgb(43 44 70/var(--tw-bg-opacity,1))}.bg-\[\#373b53\]{--tw-bg-opacity:1;background-color:#373b53;background-color:rgb(55 59 83/var(--tw-bg-opacity,1))}.bg-\[\#3B3E5F\]{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.bg-\[\#3E36DC\]{--tw-bg-opacity:1;background-color:#3e36dc;background-color:rgb(62 54 220/var(--tw-bg-opacity,1))}.bg-\[\#545987\]{--tw-bg-opacity:1;background-color:#545987;background-color:rgb(84 89 135/var(--tw-bg-opacity,1))}.bg-\[\#55566B\]{--tw-bg-opacity:1;background-color:#55566b;background-color:rgb(85 86 107/var(--tw-bg-opacity,1))}.bg-\[\#615e669f\]{background-color:#615e669f}.bg-\[\#E0E0E0\]{--tw-bg-opacity:1;background-color:#e0e0e0;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))}.bg-\[\#E31B5D\]{--tw-bg-opacity:1;background-color:#e31b5d;background-color:rgb(227 27 93/var(--tw-bg-opacity,1))}.bg-\[\#E7E8F1\]{--tw-bg-opacity:1;background-color:#e7e8f1;background-color:rgb(231 232 241/var(--tw-bg-opacity,1))}.bg-\[\#E9E9EC\]{--tw-bg-opacity:1;background-color:#e9e9ec;background-color:rgb(233 233 236/var(--tw-bg-opacity,1))}.bg-\[\#EEF2FF\]{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-\[\#F0EFFF\]{--tw-bg-opacity:1;background-color:#f0efff;background-color:rgb(240 239 255/var(--tw-bg-opacity,1))}.bg-\[\#F2FBF3\]{--tw-bg-opacity:1;background-color:#f2fbf3;background-color:rgb(242 251 243/var(--tw-bg-opacity,1))}.bg-\[\#F3F3F5\]{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.bg-\[\#F3F4F8\]{--tw-bg-opacity:1;background-color:#f3f4f8;background-color:rgb(243 244 248/var(--tw-bg-opacity,1))}.bg-\[\#F8F8FF\]{--tw-bg-opacity:1;background-color:#f8f8ff;background-color:rgb(248 248 255/var(--tw-bg-opacity,1))}.bg-\[\#FAFAFA\]{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-\[\#FFE5EF4D\]{background-color:#ffe5ef4d}.bg-\[\#FFE5EF\]{--tw-bg-opacity:1;background-color:#ffe5ef;background-color:rgb(255 229 239/var(--tw-bg-opacity,1))}.bg-\[\#FFF8F0\]{--tw-bg-opacity:1;background-color:#fff8f0;background-color:rgb(255 248 240/var(--tw-bg-opacity,1))}.bg-\[\#FFF8FB\]{--tw-bg-opacity:1;background-color:#fff8fb;background-color:rgb(255 248 251/var(--tw-bg-opacity,1))}.bg-\[\#FFFFFF\]{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-\[\#e0e0e0\]{--tw-bg-opacity:1;background-color:#e0e0e0;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))}.bg-\[\#e4e3ff\]{--tw-bg-opacity:1;background-color:#e4e3ff;background-color:rgb(228 227 255/var(--tw-bg-opacity,1))}.bg-\[\#e9e9ec\]{--tw-bg-opacity:1;background-color:#e9e9ec;background-color:rgb(233 233 236/var(--tw-bg-opacity,1))}.bg-\[\#f3f3f5\]{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.bg-\[\#fafafa\]{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-\[rgba\(243\2c 243\2c 245\2c 0\.4\)\]{background-color:hsla(240,9%,96%,.4)}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:#22c55e;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.bg-primary\/10{background-color:rgba(59,62,95,.1)}.bg-red-50{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-white\/50{background-color:hsla(0,0%,100%,.5)}.bg-white\/60{background-color:hsla(0,0%,100%,.6)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-\[radial-gradient\(ellipse_at_70\%_7\%\2c _\#F3F4F8_50\%\2c _\#E4E3FF_100\%\)\]{background-image:radial-gradient(ellipse at 70% 7%,#f3f4f8 50%,#e4e3ff 100%)}.fill-\[\#2B2C46\]{fill:#2b2c46}.fill-\[\#3B3E5F\]{fill:#3b3e5f}.fill-\[\#55566B\]{fill:#55566b}.fill-\[\#989BB7\]{fill:#989bb7}.fill-\[\#BBBDCF\]{fill:#bbbdcf}.fill-theme-primary{fill:var(--primary-color)}.fill-white{fill:#fff}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-\[3px\]{padding-bottom:3px;padding-top:3px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-14{padding-right:3.5rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-\[15px\]{padding-top:15px}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[25px\]{font-size:25px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.normal-case{text-transform:none}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-\[18px\]{line-height:18px}.leading-\[22\.78px\]{line-height:22.78px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-\[0\.16px\]{letter-spacing:.16px}.tracking-tight{letter-spacing:-.025em}.text-\[\#22C55E\]{--tw-text-opacity:1;color:#22c55e;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-\[\#2B2C46\],.text-\[\#2b2c46\]{--tw-text-opacity:1;color:#2b2c46;color:rgb(43 44 70/var(--tw-text-opacity,1))}.text-\[\#3B3E5F\]{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.text-\[\#3E36DC\]{--tw-text-opacity:1;color:#3e36dc;color:rgb(62 54 220/var(--tw-text-opacity,1))}.text-\[\#4a5568\]{--tw-text-opacity:1;color:#4a5568;color:rgb(74 85 104/var(--tw-text-opacity,1))}.text-\[\#655EE3\]{--tw-text-opacity:1;color:#655ee3;color:rgb(101 94 227/var(--tw-text-opacity,1))}.text-\[\#666\]{--tw-text-opacity:1;color:#666;color:rgb(102 102 102/var(--tw-text-opacity,1))}.text-\[\#767A9F\]{--tw-text-opacity:1;color:#767a9f;color:rgb(118 122 159/var(--tw-text-opacity,1))}.text-\[\#989BB7\]{--tw-text-opacity:1;color:#989bb7;color:rgb(152 155 183/var(--tw-text-opacity,1))}.text-\[\#999\]{--tw-text-opacity:1;color:#999;color:rgb(153 153 153/var(--tw-text-opacity,1))}.text-\[\#AAABB5\]{--tw-text-opacity:1;color:#aaabb5;color:rgb(170 171 181/var(--tw-text-opacity,1))}.text-\[\#BBBDCF\]{--tw-text-opacity:1;color:#bbbdcf;color:rgb(187 189 207/var(--tw-text-opacity,1))}.text-\[\#CACAD1\]{--tw-text-opacity:1;color:#cacad1;color:rgb(202 202 209/var(--tw-text-opacity,1))}.text-\[\#D14343\]{--tw-text-opacity:1;color:#d14343;color:rgb(209 67 67/var(--tw-text-opacity,1))}.text-\[\#E0E0E0\]{--tw-text-opacity:1;color:#e0e0e0;color:rgb(224 224 224/var(--tw-text-opacity,1))}.text-\[\#E31B5D\]{--tw-text-opacity:1;color:#e31b5d;color:rgb(227 27 93/var(--tw-text-opacity,1))}.text-\[\#E67E22\]{--tw-text-opacity:1;color:#e67e22;color:rgb(230 126 34/var(--tw-text-opacity,1))}.text-\[\#e31b5d\]{--tw-text-opacity:1;color:#e31b5d;color:rgb(227 27 93/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:#000;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:#4f46e5;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:#b91c1c;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:#0f172a;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-\[\#989BB7\]::placeholder{--tw-placeholder-opacity:1;color:#989bb7;color:rgb(152 155 183/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[0px_0px_32px_0px_rgba\(152\2c 155\2c 183\2c 1\)\]{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0px_0px_32px_0px_rgba\(152\2c 155\2c 183\2c 1\)\]{--tw-shadow:0px 0px 32px 0px #989bb7;--tw-shadow-colored:0px 0px 32px 0px var(--tw-shadow-color)}.shadow-ds-1{--tw-shadow:0 0 16px 0 rgba(221,222,231,.5);--tw-shadow-colored:0 0 16px 0 var(--tw-shadow-color)}.shadow-ds-1,.shadow-ds-2{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-ds-2{--tw-shadow:0 0 20px 0 rgba(221,222,231,.5);--tw-shadow-colored:0 0 20px 0 var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-outer{--tw-shadow:0 0 16px 0 hsla(240,7%,81%,.5);--tw-shadow-colored:0 0 16px 0 var(--tw-shadow-color)}.shadow-outer,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[8px\]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-150{transition-delay:.15s}.delay-300{transition-delay:.3s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#3b3e5f;font-family:-apple-system,BlinkMacSystemFont,Source Sans\ 3,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:normal;font-weight:300;src:url(/static/media/SourceSans3-Light.37264fa35ee0d5f209ea.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:normal;font-weight:400;src:url(/static/media/SourceSans3-Regular.c69f9658f16351f79f33.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:medium;font-weight:500;src:url(/static/media/SourceSans3-Medium.c82b4c53fc5d38ef5784.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:medium;font-weight:600;src:url(/static/media/SourceSans3-SemiBold.5ad6683a8a06e3ccea94.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:medium;font-weight:700;src:url(/static/media/SourceSans3-Bold.17e068739e42bdb30d1c.ttf)}*,body{margin:0}*{font-family:Source Sans\ 3,sans-serif!important;padding:0}.sidepanel-scroll{-webkit-clip-path:inset(0 round 1px);clip-path:inset(0 round 1px);position:relative;scrollbar-color:transparent transparent;scrollbar-gutter:stable;scrollbar-width:thin}.sidepanel-scroll:hover{scrollbar-color:#c3c6cf transparent}.sidepanel-scroll::-webkit-scrollbar,.sidepanel-scroll:hover::-webkit-scrollbar{width:8px}.sidepanel-scroll::-webkit-scrollbar-track{background:transparent;margin:16px 0}.sidepanel-scroll::-webkit-scrollbar-thumb{background:transparent;background-clip:padding-box;border:2px solid transparent;border-radius:999px}.sidepanel-scroll:hover::-webkit-scrollbar-thumb{background:#c3c6cf}.sidepanel-scroll:after,.sidepanel-scroll:before{background:#fff;content:"";height:16px;pointer-events:none;position:absolute;right:0;width:8px;z-index:1}.sidepanel-scroll:before{border-top-right-radius:32px;top:0}.sidepanel-scroll:after{border-bottom-right-radius:32px;bottom:0}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;margin:0;padding:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body,button,input,select,textarea{-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2b2c46;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:17px;font-weight:400;line-height:1.5;text-rendering:optimizeLegibility}a,b,h1,h2,h3,h4,h5,h6,strong{font-weight:700}body{background:#fafafa}h1,h2,h3,h4,h5,h6{line-height:1}h1,h2{color:#031f2b;line-height:1.618}h1{font-size:25px;margin:0 auto 25px}h1.entry-title a{color:#031f2b;font-size:25px}h2{font-size:16px;margin:15px auto 25px}h2.entry-title a{color:#031f2b;font-size:25px}h1 p,h2 p{margin-bottom:0}@media only screen and (min-width:530px) and (max-width:750px){h1 br,h2 br{display:none}}h3{color:#031f2b;font-size:17px;line-height:1.5;margin:22px auto 16px}h4{font-size:15px;margin:22px auto 12px}h5{font-size:13px;margin:22px auto 10px}h6{font-size:11px;margin:22px auto 8px}p a{text-decoration:underline}em{font-style:italic}iframe,img{height:auto;max-width:100%}a{color:rgba(3,31,43,.54);text-decoration:none}a:hover{color:rgba(3,31,43,.7);cursor:pointer}ol,ul{list-style:none;padding-left:20px}ol li,ul li{list-style:disc;margin-bottom:10px;padding-left:10px}.d-flex{display:flex!important}.justify-center{justify-content:center}.flex-end{align-items:flex-end}.flex-center{align-items:center}.hover\:w-\[215px\]:hover{width:215px}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:gap-2:hover{gap:.5rem}.hover\:border-\[\#DDDEE7\]:hover{--tw-border-opacity:1;border-color:#dddee7;border-color:rgb(221 222 231/var(--tw-border-opacity,1))}.hover\:border-\[\#E7E8F1\]:hover{--tw-border-opacity:1;border-color:#e7e8f1;border-color:rgb(231 232 241/var(--tw-border-opacity,1))}.hover\:bg-\[\#2d3145\]:hover{--tw-bg-opacity:1;background-color:#2d3145;background-color:rgb(45 49 69/var(--tw-bg-opacity,1))}.hover\:bg-\[\#333653\]:hover{--tw-bg-opacity:1;background-color:#333653;background-color:rgb(51 54 83/var(--tw-bg-opacity,1))}.hover\:bg-\[\#3B3E5F\]:hover{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.hover\:bg-\[\#545987\]:hover{--tw-bg-opacity:1;background-color:#545987;background-color:rgb(84 89 135/var(--tw-bg-opacity,1))}.hover\:bg-\[\#E0E7FF\]:hover{--tw-bg-opacity:1;background-color:#e0e7ff;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:bg-\[\#E67E22\]:hover{--tw-bg-opacity:1;background-color:#e67e22;background-color:rgb(230 126 34/var(--tw-bg-opacity,1))}.hover\:bg-\[\#E9E9EC\]:hover{--tw-bg-opacity:1;background-color:#e9e9ec;background-color:rgb(233 233 236/var(--tw-bg-opacity,1))}.hover\:bg-\[\#F3F3F5\]:hover{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.hover\:bg-\[\#F3F4F8\]:hover{--tw-bg-opacity:1;background-color:#f3f4f8;background-color:rgb(243 244 248/var(--tw-bg-opacity,1))}.hover\:bg-blue-100\/40:hover{background-color:rgba(219,234,254,.4)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-gradient-to-r:hover{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.hover\:from-white:hover{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-\[\#E4E3FF\]:hover{--tw-gradient-to:#e4e3ff var(--tw-gradient-to-position)}.hover\:fill-\[url\(\#powered_by_nyris_colored_svg__gradient\)\]:hover{fill:url(#powered_by_nyris_colored_svg__gradient)}.hover\:px-0\.5:hover{padding-left:.125rem;padding-right:.125rem}.hover\:font-semibold:hover{font-weight:600}.hover\:text-\[\#2F29B7\]:hover{--tw-text-opacity:1;color:#2f29b7;color:rgb(47 41 183/var(--tw-text-opacity,1))}.hover\:text-\[\#3B3E5F\]:hover{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.hover\:text-\[\#F3F4F8\]:hover{--tw-text-opacity:1;color:#f3f4f8;color:rgb(243 244 248/var(--tw-text-opacity,1))}.hover\:text-primary:hover{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_6px_0_\#DDDEE7\]:hover{--tw-shadow:0 0 6px 0 #dddee7;--tw-shadow-colored:0 0 6px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:bg-\[\#FFFFFF\]:focus{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:max-w-fit{max-width:-webkit-fit-content;max-width:fit-content}.group:hover .group-hover\:flex-grow{flex-grow:1}.group:hover .group-hover\:fill-\[url\(\#powered_by_nyris_colored_svg__gradient\)\]{fill:url(#powered_by_nyris_colored_svg__gradient)}.group:hover .group-hover\:text-\[\#5a5b61\]{--tw-text-opacity:1;color:#5a5b61;color:rgb(90 91 97/var(--tw-text-opacity,1))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.group[data-state=closed] .group-data-\[state\=closed\]\:hidden,.group[data-state=open] .group-data-\[state\=open\]\:hidden{display:none}@media (min-width:400px){.mobile-md\:mx-2{margin-left:.5rem;margin-right:.5rem}}@media (min-width:777px){.desktop\:left-8{left:2rem}.desktop\:left-\[26px\]{left:26px}.desktop\:top-\[1px\]{top:1px}.desktop\:m-auto{margin:auto}.desktop\:mx-4{margin-left:1rem;margin-right:1rem}.desktop\:-mb-2{margin-bottom:-.5rem}.desktop\:mb-0{margin-bottom:0}.desktop\:mb-2{margin-bottom:.5rem}.desktop\:mb-8{margin-bottom:2rem}.desktop\:mt-0{margin-top:0}.desktop\:mt-4{margin-top:1rem}.desktop\:mt-6{margin-top:1.5rem}.desktop\:block{display:block}.desktop\:flex{display:flex}.desktop\:inline-flex{display:inline-flex}.desktop\:hidden{display:none}.desktop\:h-0{height:0}.desktop\:h-12{height:3rem}.desktop\:h-8{height:2rem}.desktop\:h-\[100\%\]{height:100%}.desktop\:h-\[18px\]{height:18px}.desktop\:h-\[456px\]{height:456px}.desktop\:h-\[52px\]{height:52px}.desktop\:h-\[68px\]{height:68px}.desktop\:h-\[8px\]{height:8px}.desktop\:h-full{height:100%}.desktop\:max-h-\[100\%\]{max-height:100%}.desktop\:max-h-\[456px\]{max-height:456px}.desktop\:min-h-0{min-height:0}.desktop\:min-h-10{min-height:2.5rem}.desktop\:min-h-\[468px\]{min-height:468px}.desktop\:min-h-\[68px\]{min-height:68px}.desktop\:w-0{width:0}.desktop\:w-8{width:2rem}.desktop\:w-\[18px\]{width:18px}.desktop\:w-\[190px\]{width:190px}.desktop\:w-\[378px\]{width:378px}.desktop\:w-\[500px\]{width:500px}.desktop\:w-\[600px\]{width:600px}.desktop\:w-\[8px\]{width:8px}.desktop\:w-fit{width:-webkit-fit-content;width:fit-content}.desktop\:min-w-10{min-width:2.5rem}.desktop\:min-w-\[18px\]{min-width:18px}.desktop\:min-w-\[68px\]{min-width:68px}.desktop\:max-w-\[600px\]{max-width:600px}.desktop\:grid-cols-\[repeat\(auto-fit\2c _minmax\(190px\2c _0px\)\)\]{grid-template-columns:repeat(auto-fit,minmax(190px,0))}.desktop\:flex-row{flex-direction:row}.desktop\:items-start{align-items:flex-start}.desktop\:gap-1\.5{gap:.375rem}.desktop\:gap-6{gap:1.5rem}.desktop\:overflow-hidden{overflow:hidden}.desktop\:overflow-y-auto{overflow-y:auto}.desktop\:bg-\[\#E7E8F1\]{--tw-bg-opacity:1;background-color:#e7e8f1;background-color:rgb(231 232 241/var(--tw-bg-opacity,1))}.desktop\:bg-\[\#FAFAFA\]{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.desktop\:bg-theme-primary{background-color:var(--primary-color)}.desktop\:bg-transparent{background-color:transparent}.desktop\:fill-\[\#3B3E5F\]{fill:#3b3e5f}.desktop\:p-3{padding:.75rem}.desktop\:p-6{padding:1.5rem}.desktop\:px-4{padding-left:1rem;padding-right:1rem}.desktop\:px-5{padding-left:1.25rem;padding-right:1.25rem}.desktop\:py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.desktop\:pb-0{padding-bottom:0}.desktop\:pl-1\.5{padding-left:.375rem}.desktop\:pl-16{padding-left:4rem}.desktop\:pt-0{padding-top:0}.desktop\:pt-4{padding-top:1rem}.desktop\:pt-8{padding-top:2rem}.desktop\:text-\[10px\]{font-size:10px}.desktop\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.desktop\:hover\:bg-\[\#FAFAFA\]:hover{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.desktop\:has-\[input\:focus\]\:bg-\[\#FFFFFF\]:has(input:focus){--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.desktop\:has-\[input\:focus\]\:shadow-ds-2:has(input:focus){--tw-shadow:0 0 20px 0 rgba(221,222,231,.5);--tw-shadow-colored:0 0 20px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}.take-photo{padding:3px}.take-photo,.take-photo .take-photo-wrapper{border-radius:100%}.take-photo .take-photo-wrapper .outer{border-radius:100%;box-shadow:0 0 40px 0 #dddee7;display:block}.take-photo .take-photo-wrapper .inner{align-items:center;background:linear-gradient(180deg,#fff 30.73%,#dddee7);border-radius:100%;display:flex;height:260px;justify-content:center;width:260px}body.overflow-hidden{overflow:hidden}.experience-visual-button{align-items:center;background-color:#3e36dc;border-radius:25px;cursor:pointer;display:flex;flex-direction:row;height:40px;justify-content:center;margin:32px auto 0;width:40px}.experience-visual-button.hover,.experience-visual-button:hover{border-radius:25px;transition:.5s;width:197px}.experience-visual-button.hover span,.experience-visual-button:hover span{display:inline;font-family:Source Sans\ 3,sans-serif;font-size:14px;font-weight:600;line-height:16px;margin-right:8px;overflow:hidden;text-align:center;white-space:nowrap;width:149px}.experience-visual-button.hover span:before,.experience-visual-button:hover span:before{color:#fff;content:"Experience Visual Search"}.custom-modal-body{background-color:#f3f3f5;height:100%;padding:32px 16px;position:relative;width:100%}.custom-modal-body .close-icon{position:absolute;right:8px;top:8px}.custom-modal-body-title{font-family:Source Sans\ 3,sans-serif;font-size:20px;font-weight:700;line-height:24px;text-align:left}.custom-modal-body-content.experience-visual-search-images{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;height:auto;margin:32px auto;width:376px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container{border-radius:4px;cursor:pointer;height:180px;overflow:hidden;position:relative;width:180px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .experience-visual-search-image{background-position:50%;background-size:cover;height:180px;transform:scale(1);width:180px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .experience-visual-search-image:hover{transform:scale(1.1);transition:all .3s}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .box-icon-modal{align-items:center;background-color:#f3f3f5;border-radius:100%;bottom:6px;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;position:absolute;right:6px;width:32px;z-index:11}@media only screen and (min-width:900px){.custom-modal-body{border-radius:4px;height:380px;max-width:900px;width:900px}.custom-modal-body-subtitle,.custom-modal-body-title{margin-left:24px}.custom-modal-body-content.experience-visual-search-images{width:770px}}@media only screen and (min-width:776px)and (max-width:899px){.custom-modal-body{border-radius:4px;height:600px;max-width:600px;padding:32px;width:600px}}@media only screen and (max-width:776px){.experience-visual-button{width:197px}.experience-visual-button span{display:inline;font-family:Source Sans\ 3,sans-serif;font-size:14px;font-weight:600;line-height:16px;margin-right:8px;overflow:hidden;text-align:center;white-space:nowrap;width:149px}.experience-visual-button span:before{color:#fff;content:"Experience Visual Search"}}@media only screen and (max-width:408px){.custom-modal-body{padding:32px 8px}.custom-modal-body-content.experience-visual-search-images{gap:8px;width:300px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container,.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .experience-visual-search-image{height:145px;width:145px}}.wrap-main-item-result{display:flex;flex-direction:column;overflow:hidden}@media screen and (max-width:776px){.wrap-main-item-result .wrap-main-item-result{max-width:180px!important;width:180px}.wrap-main-item-result .wrap-main-item-result:first-child{margin-top:0!important}}.box-icon-modal{right:6px}.box-icon-modal,.box-icon-modal-3d{align-items:center;background-color:#f3f3f5;border-radius:100%;bottom:6px;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;position:absolute;width:32px;z-index:11}.box-icon-modal-3d{left:6px}.attribute-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;width:100%}.attribute-container .item-attribute{width:calc(50% - 4px)}.attribute-container .item-attribute:nth-child(odd):last-child{width:100%}.info-container{padding:16px 0 0}.info-container .info-sku{font-size:18px;font-weight:700;line-height:25.63px;padding-left:4px}.info-container .info-marking{background:#e0e0e0;border-radius:2px;font-size:16px;font-weight:400;letter-spacing:.2285714447px;line-height:12px;padding:4px;text-align:left;width:-webkit-max-content;width:max-content;word-break:break-all}.info-container .info-description{font-size:16px;font-weight:400;letter-spacing:.2285714447px;line-height:22.78px;padding:8px 0 0 4px}.info-container-card{background-color:#f3f3f5;display:flex;flex-direction:column;flex-grow:1;height:140px;padding:8px;z-index:40}.info-container-card.w-cta{height:168px}.info-container-card .info-sku{font-size:16px;font-weight:700;letter-spacing:.2285714447px;line-height:22.78px;padding-left:4px}.info-container-card .info-marking{-webkit-line-clamp:2;line-clamp:2;background:#e0e0e0;border-radius:2px;line-height:14px;max-width:-webkit-max-content;max-width:max-content;padding:2px 4px}.info-container-card .info-description,.info-container-card .info-marking{-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:400;letter-spacing:.2285714447px;overflow:hidden;word-break:break-all}.info-container-card .info-description{-webkit-line-clamp:3;line-clamp:2;line-height:19.94px;margin-top:8px;padding-left:4px}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:flex;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.splide__track.splide__track--slide{margin:0 46px}.splide__arrow{background:transparent}.splide__arrow svg{fill:#a3a3a3}.splide__track--nav>.splide__list>.splide__slide.is-active{border:2px solid #e0e0e0;border-radius:2px}.img-container,.thumbs-list{display:flex;justify-content:center}.img-container img{max-height:400px}.box-carosel .splide.splide--slide{align-items:center;display:flex;height:calc(100% - 48px);justify-content:center}.box-carosel .splide.splide--slide .splide__track{height:100%;padding-bottom:8px}.feedback-floating{display:flex;height:-webkit-fit-content;height:fit-content;justify-content:flex-end;position:absolute;right:0;z-index:42}.feedback-floating .feedback-section{border-radius:26px;bottom:40px;min-height:48px;min-width:332px;position:fixed}@media screen and (max-width:776px){.feedback-floating .feedback-section{bottom:80px;display:flex;height:-webkit-fit-content!important;height:fit-content!important;justify-content:center;left:50%;margin-left:0;min-height:40px;min-width:300px;transform:translateX(-50%)}.feedback-floating{left:0;margin-left:auto;margin-right:auto;right:0;width:77%}}.feedback-backdrop-blur{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.feedback-wrapper{align-items:center;border-radius:24px;color:#2b2c46;column-gap:22px;display:flex;flex-shrink:0;height:-webkit-fit-content;height:fit-content;justify-content:center;mix-blend-mode:multiply;padding:8px 8px 8px 24px;width:-webkit-fit-content;width:fit-content}@media screen and (max-width:776px){.feedback-wrapper{padding-left:16px;padding-right:6px;padding-top:6px}}.feedback-wrapper p{font-size:14px;font-weight:600}@media screen and (max-width:776px){.feedback-wrapper p{font-size:12px}}.feedback-wrapper .feedback-icon-wrapper{align-items:center;border-radius:100%;display:flex;justify-content:center;min-height:32px;min-width:32px}@media screen and (max-width:776px){.feedback-wrapper .feedback-icon-wrapper{min-height:28px;min-width:28px}}.feedback-wrapper .feedback-icon-wrapper-close{align-items:center;border-radius:100%;display:flex;justify-content:center;min-height:32px;min-width:32px}@media screen and (max-width:776px){.feedback-wrapper .feedback-icon-wrapper-close{min-height:28px;min-width:28px}}.feedback-wrapper .feedback-icon-wrapper-close:hover{background-color:#d3d1ff;cursor:pointer}.feedback-wrapper .feedback-icon-wrapper:hover{background-color:#fff;box-shadow:0 0 7.04px 0 rgba(0,0,0,.1);cursor:pointer}.feedback-wrapper .feedback-icon-wrapper svg{height:16px;width:16px}@media screen and (max-width:776px){.feedback-wrapper .feedback-icon-wrapper svg{height:14px;width:14px}.feedback-wrapper .feedback-icon-wrapper{height:25px;width:25px}}.feedback-success{align-items:center;background-color:#2b2c46;border-radius:26px;color:#fff;display:flex;font-size:14px;font-weight:600;justify-content:center;min-height:48px;text-align:center;width:100%}@media screen and (max-width:776px){.feedback-success{font-size:12px;min-height:42px}}.full-height{height:100dvh}.max-line-1{-webkit-line-clamp:1;max-height:33px}.max-line-1,.max-line-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.max-line-2{-webkit-line-clamp:2;max-height:66px}.box-wrap-loading{background:rgba(0,0,0,.459);height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.loadingSpinCT{border-radius:100%;height:104px;left:0;margin:auto;position:absolute;right:0;width:104px;z-index:111}.loading-spinner{animation:spin 3s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.rfq-box{padding:24px 40px}@media screen and (max-width:776px){.rfq-box{padding:16px}}@media screen and (max-width:820px){.rfq-box{padding:16px}}.rfq-box .support-button-wrapper{flex-wrap:nowrap}@media screen and (max-width:820px){.rfq-box .support-button-wrapper{gap:8px}}.psol-comp-webviewer3d-container{border-radius:12px!important}.psol-comp-viewbase-iconbutton-44{height:32px!important;width:32px!important}.psol-comp-viewbase-iconbutton-44 .psol-comp-viewbase-svgicon{height:16px!important;width:16px!important}.psol-comp-webviewer3d-copyright-container a{color:#55566b!important;font-size:10px!important}.psol-comp-webviewer3d-copyright-container{margin-bottom:-2px!important}.ComponentCustomizeWebViewer3DFavoriteButtonsBarContainer{padding-bottom:6px!important}.psol-comp-viewbase-svgcontainer{display:none!important}.drag-n-drop-label{background-color:transparent;padding:24px}.drag-n-drop-label:hover{background-color:#fff;border-radius:24px;box-shadow:0 4px 12px rgba(0,0,0,.2)}.drag-n-drop-label:hover .drag-n-drop-inner{background-color:#f0efff;border-color:#e0e0e0;color:#2b2c46}.custom-modal{align-items:center;background-color:hsla(0,0%,9%,.502);bottom:0;display:flex;height:100vh;justify-content:center;left:0;position:absolute;right:0;top:0;width:100vw;z-index:99999}.custom-modal-body{background:#f3f3f5;padding:32px}.custom-modal-body.geolocation{align-items:flex-start;display:flex;flex-direction:column;font-size:14px;font-weight:400;height:200px;justify-content:space-between;letter-spacing:.16px;line-height:16px;width:400px}.custom-modal-body.geolocation .geolocation-title{font-size:20px;font-weight:700;letter-spacing:0;line-height:24px}.custom-modal-body.geolocation button{align-self:flex-end;border:2px solid #3e36dc;border-radius:4px;font-size:16px;font-weight:600;letter-spacing:.16px;line-height:18px;padding:8px 32px}
|
|
4
|
-
/*# sourceMappingURL=main.5ea01690.css.map*/
|