@nyris/nyris-webapp 0.3.98 → 0.4.0

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 (97) hide show
  1. package/build/asset-manifest.json +7 -6
  2. package/build/index.html +1 -1
  3. package/build/js/settings.example.js +42 -0
  4. package/build/static/css/main.a7ff7a7f.css +4 -0
  5. package/build/static/css/main.a7ff7a7f.css.map +1 -0
  6. package/build/static/js/main.916c157c.js +3 -0
  7. package/build/static/js/{main.93fdbd6e.js.map → main.916c157c.js.map} +1 -1
  8. package/build/static/media/plate_info.6beaea36d35053be3a45.png +0 -0
  9. package/package.json +3 -3
  10. package/public/js/settings.example.js +42 -0
  11. package/src/common/assets/images/plate_info.png +0 -0
  12. package/src/components/Cart.tsx +41 -0
  13. package/src/components/ChatAssistant/ChatAssistant.test.tsx +213 -0
  14. package/src/components/ChatAssistant/ChatAssistant.tsx +18 -1
  15. package/src/components/ChatAssistant/MobileChatAssistant.tsx +18 -1
  16. package/src/components/ChatAssistant/OptionChip.tsx +23 -1
  17. package/src/components/ChatAssistant/useChatAssistantLogic.ts +35 -14
  18. package/src/components/GoBackButton.tsx +29 -2
  19. package/src/components/Header.tsx +3 -0
  20. package/src/components/HitsPerPage.tsx +55 -18
  21. package/src/components/ImagePreview.tsx +31 -1
  22. package/src/components/ImageUpload.tsx +12 -1
  23. package/src/components/Inquiry/InquiryModal.tsx +61 -26
  24. package/src/components/Pagination.tsx +33 -6
  25. package/src/components/PostFilter/PostFilter.tsx +8 -1
  26. package/src/components/PostFilter/PostFilterFindApi.test.tsx +249 -0
  27. package/src/components/PostFilter/PostFilterFindApi.tsx +128 -52
  28. package/src/components/PreFilter/PreFilter.tsx +10 -2
  29. package/src/components/Product/Product.tsx +60 -10
  30. package/src/components/Product/ProductDetailView.tsx +23 -1
  31. package/src/components/Product/ProductDetailViewModal.tsx +5 -1
  32. package/src/components/Product/ProductList.tsx +51 -18
  33. package/src/components/Rfq/RfqModal.tsx +3 -0
  34. package/src/components/ScopeSelect/ScopeSelectForm.tsx +514 -0
  35. package/src/components/ScopeSelect/ScopeSelectImageActions.tsx +62 -0
  36. package/src/components/ScopeSelect/ScopeSelectImagePreview.tsx +141 -0
  37. package/src/components/ScopeSelect/ScopeSelectInfo.tsx +68 -0
  38. package/src/components/ScopeSelect/ScopeSelectInput.tsx +123 -0
  39. package/src/components/ScopeSelect/ScopeSelectModal.tsx +310 -0
  40. package/src/components/ScopeSelect/identifyTypePlateImage.test.ts +129 -0
  41. package/src/components/ScopeSelect/identifyTypePlateImage.ts +83 -0
  42. package/src/components/ScopeSelect/parseScopeIdResponse.test.ts +103 -0
  43. package/src/components/ScopeSelect/parseScopeIdResponse.ts +72 -0
  44. package/src/components/ScopeSelect/scopeSelectHelpers.ts +54 -0
  45. package/src/components/SidePanel.tsx +33 -0
  46. package/src/components/TextSearch.tsx +77 -11
  47. package/src/components/Tooltip/TooltipComponent.tsx +12 -4
  48. package/src/components/TypePlateUpload.tsx +132 -0
  49. package/src/hooks/chatProductMetadata.test.ts +307 -0
  50. package/src/hooks/useBadResultsRecovery.ts +26 -49
  51. package/src/hooks/useEffectiveGroundingResults.ts +8 -6
  52. package/src/hooks/useGoodResultsChat.ts +28 -39
  53. package/src/hooks/useImageSearch.ts +290 -12
  54. package/src/hooks/useMachinePartsListingPagination.ts +95 -0
  55. package/src/hooks/useResultEvaluator.ts +63 -73
  56. package/src/index.css +1 -1
  57. package/src/layouts/AppLayout.tsx +43 -3
  58. package/src/pages/Home.tsx +60 -14
  59. package/src/pages/Result.tsx +194 -14
  60. package/src/services/Feedback.ts +225 -34
  61. package/src/services/feedbackSubtypes.ts +63 -0
  62. package/src/services/filter.ts +1 -1
  63. package/src/services/initialMachinePartsText.payload.test.ts +61 -0
  64. package/src/services/initialMachinePartsText.test.ts +33 -0
  65. package/src/services/initialMachinePartsText.ts +11 -0
  66. package/src/services/machinePartsPage.test.ts +74 -0
  67. package/src/services/machinePartsPage.ts +120 -0
  68. package/src/services/normalizeChatResponse.ts +26 -0
  69. package/src/services/scopeLookup.test.ts +67 -0
  70. package/src/services/scopeLookup.ts +39 -0
  71. package/src/services/visualSearch.listingOptions.test.ts +79 -0
  72. package/src/services/visualSearch.ts +71 -3
  73. package/src/services/vizo.ts +4 -3
  74. package/src/stores/chat/conversationStore.test.ts +133 -0
  75. package/src/stores/chat/conversationStore.ts +55 -14
  76. package/src/stores/machinePartsListing/machinePartsListingStore.ts +35 -0
  77. package/src/stores/request/filter/filter.initialState.ts +1 -0
  78. package/src/stores/request/filter/filter.slice.ts +2 -0
  79. package/src/stores/result/prodcuts/products.initialState.ts +1 -0
  80. package/src/stores/result/prodcuts/products.slice.ts +4 -0
  81. package/src/stores/scope/scopeStore.ts +67 -4
  82. package/src/stores/types.ts +19 -14
  83. package/src/translations.ts +213 -0
  84. package/src/types.ts +41 -0
  85. package/src/utils/chatProductMetadata.test.ts +130 -0
  86. package/src/utils/chatProductMetadata.ts +93 -0
  87. package/src/utils/compressImage.ts +3 -3
  88. package/src/utils/fetchProductImage.ts +1 -0
  89. package/src/utils/normalizeChatAssistantResponse.ts +227 -0
  90. package/src/utils/productCardImageUrl.test.ts +41 -0
  91. package/src/utils/productCardImageUrl.ts +49 -0
  92. package/src/utils/textSearchFilter.test.ts +41 -0
  93. package/src/utils/textSearchFilter.ts +13 -6
  94. package/build/static/css/main.81216c5d.css +0 -4
  95. package/build/static/css/main.81216c5d.css.map +0 -1
  96. package/build/static/js/main.93fdbd6e.js +0 -3
  97. /package/build/static/js/{main.93fdbd6e.js.LICENSE.txt → main.916c157c.js.LICENSE.txt} +0 -0
@@ -0,0 +1,227 @@
1
+ import { ActionType, QuickReplyOption } from 'stores/chat/conversationStore';
2
+
3
+ export interface P3Response {
4
+ message: string;
5
+ action: {
6
+ type: ActionType;
7
+ key?: string;
8
+ value?: string;
9
+ matched_ids?: string[];
10
+ matched_indices?: number[];
11
+ };
12
+ options: QuickReplyOption[];
13
+ }
14
+
15
+ const EMPTY_RESPONSE: P3Response = {
16
+ message: '',
17
+ action: {
18
+ type: 'none',
19
+ matched_ids: [],
20
+ },
21
+ options: [],
22
+ };
23
+
24
+ /** Fresh empty P3Response — never share nested refs with prior responses. */
25
+ function createEmptyResponse(): P3Response {
26
+ return {
27
+ message: EMPTY_RESPONSE.message,
28
+ action: {
29
+ type: EMPTY_RESPONSE.action.type,
30
+ matched_ids: [],
31
+ },
32
+ options: [],
33
+ };
34
+ }
35
+
36
+ /** Generic helper preambles that are clearly separate from the answer. */
37
+ const GENERIC_PREAMBLE_PATTERN = /^I can help you[^.]*\.\s+/i;
38
+
39
+ function isCompatibleP3Response(value: unknown): value is P3Response {
40
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
41
+ return false;
42
+ }
43
+
44
+ const candidate = value as Record<string, unknown>;
45
+ return typeof candidate.message === 'string';
46
+ }
47
+
48
+ /**
49
+ * Finds the first balanced JSON object in `text` that parses and looks like
50
+ * a P3Response. Respects nested braces and braces inside quoted strings.
51
+ */
52
+ function extractCompatibleJsonObject(text: string): P3Response | null {
53
+ for (let start = 0; start < text.length; start += 1) {
54
+ if (text[start] !== '{') {
55
+ continue;
56
+ }
57
+
58
+ let depth = 0;
59
+ let inString = false;
60
+ let isEscaped = false;
61
+
62
+ for (let end = start; end < text.length; end += 1) {
63
+ const char = text[end];
64
+
65
+ if (inString) {
66
+ if (isEscaped) {
67
+ isEscaped = false;
68
+ } else if (char === '\\') {
69
+ isEscaped = true;
70
+ } else if (char === '"') {
71
+ inString = false;
72
+ }
73
+ continue;
74
+ }
75
+
76
+ if (char === '"') {
77
+ inString = true;
78
+ continue;
79
+ }
80
+
81
+ if (char === '{') {
82
+ depth += 1;
83
+ continue;
84
+ }
85
+
86
+ if (char === '}') {
87
+ depth -= 1;
88
+ if (depth !== 0) {
89
+ continue;
90
+ }
91
+
92
+ const candidate = text.slice(start, end + 1);
93
+ try {
94
+ const parsed: unknown = JSON.parse(candidate);
95
+ if (isCompatibleP3Response(parsed)) {
96
+ return parsed;
97
+ }
98
+ } catch {
99
+ // Not valid JSON for this brace pair; try the next `{`.
100
+ }
101
+ break;
102
+ }
103
+ }
104
+ }
105
+
106
+ return null;
107
+ }
108
+
109
+ /**
110
+ * Locates a `matched_ids: [...]` fragment, parses the array, and returns
111
+ * the ids plus the text with that fragment removed.
112
+ */
113
+ function extractMatchedIdsFromPlainText(text: string): {
114
+ matchedIds: string[];
115
+ message: string;
116
+ } {
117
+ const markerMatch = /matched_ids\s*:\s*/i.exec(text);
118
+ if (!markerMatch || markerMatch.index === undefined) {
119
+ return { matchedIds: [], message: text };
120
+ }
121
+
122
+ const arrayStart = markerMatch.index + markerMatch[0].length;
123
+ if (text[arrayStart] !== '[') {
124
+ return { matchedIds: [], message: text };
125
+ }
126
+
127
+ let depth = 0;
128
+ let inString = false;
129
+ let isEscaped = false;
130
+
131
+ for (let index = arrayStart; index < text.length; index += 1) {
132
+ const char = text[index];
133
+
134
+ if (inString) {
135
+ if (isEscaped) {
136
+ isEscaped = false;
137
+ } else if (char === '\\') {
138
+ isEscaped = true;
139
+ } else if (char === '"') {
140
+ inString = false;
141
+ }
142
+ continue;
143
+ }
144
+
145
+ if (char === '"') {
146
+ inString = true;
147
+ continue;
148
+ }
149
+
150
+ if (char === '[') {
151
+ depth += 1;
152
+ continue;
153
+ }
154
+
155
+ if (char === ']') {
156
+ depth -= 1;
157
+ if (depth !== 0) {
158
+ continue;
159
+ }
160
+
161
+ const arrayLiteral = text.slice(arrayStart, index + 1);
162
+ try {
163
+ const parsed: unknown = JSON.parse(arrayLiteral);
164
+ if (
165
+ Array.isArray(parsed) &&
166
+ parsed.every((item): item is string => typeof item === 'string')
167
+ ) {
168
+ const before = text.slice(0, markerMatch.index).trimEnd();
169
+ const after = text.slice(index + 1).trimStart();
170
+ const message = [before, after].filter(Boolean).join(' ').trim();
171
+
172
+ return { matchedIds: parsed, message };
173
+ }
174
+ } catch {
175
+ // Fall through to return the original text unchanged.
176
+ }
177
+
178
+ return { matchedIds: [], message: text };
179
+ }
180
+ }
181
+
182
+ return { matchedIds: [], message: text };
183
+ }
184
+
185
+ function normalizePlainText(text: string): P3Response {
186
+ const { matchedIds, message: withoutIds } =
187
+ extractMatchedIdsFromPlainText(text);
188
+ const message = withoutIds.replace(GENERIC_PREAMBLE_PATTERN, '').trim();
189
+
190
+ return {
191
+ message,
192
+ action: {
193
+ type: 'none',
194
+ matched_ids: matchedIds,
195
+ },
196
+ options: [],
197
+ };
198
+ }
199
+
200
+ /**
201
+ * Normalizes chat_assistant_prompt output into a P3Response.
202
+ * Handles object responses, JSON embedded in prose, and plain-text fallbacks.
203
+ * Never throws — always returns a safe P3Response.
204
+ */
205
+ export function normalizeChatAssistantResponse(
206
+ response: P3Response | string | unknown,
207
+ ): P3Response {
208
+ if (isCompatibleP3Response(response)) {
209
+ return response;
210
+ }
211
+
212
+ if (typeof response !== 'string') {
213
+ return createEmptyResponse();
214
+ }
215
+
216
+ const trimmed = response.trim();
217
+ if (!trimmed) {
218
+ return createEmptyResponse();
219
+ }
220
+
221
+ const fromJson = extractCompatibleJsonObject(trimmed);
222
+ if (fromJson) {
223
+ return fromJson;
224
+ }
225
+
226
+ return normalizePlainText(trimmed);
227
+ }
@@ -0,0 +1,41 @@
1
+ import {
2
+ productCardImageResizeValue,
3
+ withImageResizeParam,
4
+ } from './productCardImageUrl';
5
+
6
+ describe('productCardImageUrl', () => {
7
+ it('sizes the request to the 188x168 image box and at most 2x', () => {
8
+ expect(productCardImageResizeValue(1)).toBe('188x168');
9
+ expect(productCardImageResizeValue(2)).toBe('376x336');
10
+ expect(productCardImageResizeValue(3)).toBe('376x336');
11
+ });
12
+
13
+ it('appends r and keeps existing query parameters', () => {
14
+ expect(
15
+ withImageResizeParam('https://example.com/product.jpg', '380x336'),
16
+ ).toBe('https://example.com/product.jpg?r=380x336');
17
+ expect(
18
+ withImageResizeParam('https://example.com/product.jpg?foo=bar', '380x336'),
19
+ ).toBe('https://example.com/product.jpg?foo=bar&r=380x336');
20
+ });
21
+
22
+ it('replaces an existing r parameter', () => {
23
+ const original = 'https://example.com/product.jpg?foo=bar&r=1200x1200';
24
+ const resized = withImageResizeParam(original, '380x336');
25
+ expect(resized).toBe('https://example.com/product.jpg?foo=bar&r=380x336');
26
+ expect(resized.split('r=').length - 1).toBe(1);
27
+ expect(original).toBe('https://example.com/product.jpg?foo=bar&r=1200x1200');
28
+ });
29
+
30
+ it('leaves unsupported schemes and relative urls unchanged', () => {
31
+ expect(withImageResizeParam('/relative.jpg', '380x336')).toBe(
32
+ '/relative.jpg',
33
+ );
34
+ expect(withImageResizeParam('data:image/png;base64,abc', '380x336')).toBe(
35
+ 'data:image/png;base64,abc',
36
+ );
37
+ expect(withImageResizeParam('blob:http://localhost/abc', '380x336')).toBe(
38
+ 'blob:http://localhost/abc',
39
+ );
40
+ });
41
+ });
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Rendered image box. The card is 190px wide with a 1px border on each side,
3
+ * so the image content is 188px wide and 168px tall.
4
+ */
5
+ export const PRODUCT_CARD_IMAGE_WIDTH_PX = 188;
6
+ export const PRODUCT_CARD_IMAGE_HEIGHT_PX = 168;
7
+
8
+ /** Cap retina requests so 3× screens do not download an oversized thumbnail. */
9
+ export const PRODUCT_CARD_IMAGE_MAX_DPR = 2;
10
+
11
+ /**
12
+ * img.nyris.io only accepts `r=<width>x<height>` and fits the image inside
13
+ * that box, keeping the aspect ratio. A bare number such as `r=380` errors.
14
+ */
15
+ export function productCardImageResizeValue(
16
+ devicePixelRatio = typeof window === 'undefined'
17
+ ? 1
18
+ : window.devicePixelRatio || 1,
19
+ ): string {
20
+ const cappedDpr = Math.min(
21
+ Math.max(devicePixelRatio, 1),
22
+ PRODUCT_CARD_IMAGE_MAX_DPR,
23
+ );
24
+ const width = Math.round(PRODUCT_CARD_IMAGE_WIDTH_PX * cappedDpr);
25
+ const height = Math.round(PRODUCT_CARD_IMAGE_HEIGHT_PX * cappedDpr);
26
+ return `${width}x${height}`;
27
+ }
28
+
29
+ /**
30
+ * Request a resized image via the `r` parameter.
31
+ * Existing query parameters are kept. An existing `r` is replaced.
32
+ * The input string is not changed.
33
+ */
34
+ export function withImageResizeParam(imageUrl: string, size: string): string {
35
+ try {
36
+ const url = new URL(imageUrl);
37
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
38
+ return imageUrl;
39
+ }
40
+ url.searchParams.set('r', size);
41
+ return url.toString();
42
+ } catch {
43
+ return imageUrl;
44
+ }
45
+ }
46
+
47
+ export function productCardImageUrl(imageUrl: string): string {
48
+ return withImageResizeParam(imageUrl, productCardImageResizeValue());
49
+ }
@@ -0,0 +1,41 @@
1
+ import { filterProductsByText } from './textSearchFilter';
2
+
3
+ const products = [
4
+ { sku: '60557802', title: 'BOLLSIDAN', brand: 'IKEA' },
5
+ { sku: '99326170', title: 'RODULF', brand: 'IKEA' },
6
+ { sku: '89282242', title: 'BEKANT', brand: 'IKEA' },
7
+ ];
8
+
9
+ describe('filterProductsByText', () => {
10
+ beforeEach(() => {
11
+ // Match settings.example.js title scoring: exact + partial, no startsWith.
12
+ window.settings = {
13
+ ...window.settings,
14
+ textSearchScoring: {
15
+ sku: { exactMatch: 50, startsWith: 30 },
16
+ title: { exactMatch: 25, partial: 10 },
17
+ brand: { exactMatch: 15, startsWith: 6, partial: 2 },
18
+ otherFields: { exactMatch: 8, startsWith: 6, partial: 2 },
19
+ },
20
+ } as typeof window.settings;
21
+ });
22
+
23
+ it('keeps BOLLSIDAN for a full title match', () => {
24
+ const result = filterProductsByText('BOLLSIDAN', products);
25
+ expect(result.map(p => p.title)).toEqual(['BOLLSIDAN']);
26
+ });
27
+
28
+ it('keeps BOLLSIDAN for a title prefix like BOLL (partial when startsWith unset)', () => {
29
+ const result = filterProductsByText('BOLL', products);
30
+ expect(result.map(p => p.title)).toEqual(['BOLLSIDAN']);
31
+ });
32
+
33
+ it('keeps BOLLSIDAN for a mid-string query', () => {
34
+ const result = filterProductsByText('SIDAN', products);
35
+ expect(result.map(p => p.title)).toEqual(['BOLLSIDAN']);
36
+ });
37
+
38
+ it('returns no products when nothing matches', () => {
39
+ expect(filterProductsByText('XYZ', products)).toEqual([]);
40
+ });
41
+ });
@@ -137,12 +137,19 @@ const scoreFieldValues = (
137
137
  continue;
138
138
  }
139
139
 
140
- if (normalizedValue === normalizedQuery) {
141
- score += fieldScoring?.exactMatch ?? 0;
142
- } else if (normalizedValue.startsWith(normalizedQuery)) {
143
- score += fieldScoring?.startsWith ?? 0;
144
- } else if (normalizedValue.includes(normalizedQuery)) {
145
- score += fieldScoring?.partial ?? 0;
140
+ // Only use a match tier when its weight is configured. Otherwise fall
141
+ // through — e.g. title has partial but no startsWith; "BOLL" must still
142
+ // match "BOLLSIDAN" via partial instead of scoring 0 on startsWith.
143
+ const exactMatch = fieldScoring?.exactMatch ?? 0;
144
+ const startsWith = fieldScoring?.startsWith ?? 0;
145
+ const partial = fieldScoring?.partial ?? 0;
146
+
147
+ if (exactMatch > 0 && normalizedValue === normalizedQuery) {
148
+ score += exactMatch;
149
+ } else if (startsWith > 0 && normalizedValue.startsWith(normalizedQuery)) {
150
+ score += startsWith;
151
+ } else if (partial > 0 && normalizedValue.includes(normalizedQuery)) {
152
+ score += partial;
146
153
  }
147
154
  }
148
155
 
@@ -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-2{right:.5rem}.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}.mb-\[80px\]{margin-bottom:80px}.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-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-\[180px\]{margin-top:180px}.mt-\[6px\]{margin-top:6px}.mt-\[calc\(50vh-110px\)\]{margin-top:calc(50vh - 110px)}.mt-\[calc\(50vh-156px\)\]{margin-top:calc(50vh - 156px)}.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%}.max-w-md{max-width:28rem}.flex-1{flex:1 1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.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-start{align-content:flex-start}.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-\[\#CACAD1\]{--tw-border-opacity:1;border-color:#cacad1;border-color:rgb(202 202 209/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-\[\#e9e9ef\]{--tw-bg-opacity:1;background-color:#e9e9ef;background-color:rgb(233 233 239/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-red-500{--tw-bg-opacity:1;background-color:#ef4444;background-color:rgb(239 68 68/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{padding-left:.25rem}.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-12{padding-right:3rem}.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\],.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-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/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-\[\#3E36DC\]:hover{--tw-border-opacity:1;border-color:#3e36dc;border-color:rgb(62 54 220/var(--tw-border-opacity,1))}.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:hover{padding-left:0;padding-right:0}.hover\:px-0\.5:hover{padding-left:.125rem;padding-right:.125rem}.hover\:font-bold:hover{font-weight:700}.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-\[\#3E36DC\]:hover{--tw-text-opacity:1;color:#3e36dc;color:rgb(62 54 220/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\:border-\[\#3e36dc\]:focus{--tw-border-opacity:1;border-color:#3e36dc;border-color:rgb(62 54 220/var(--tw-border-opacity,1))}.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-\[\#2B2C46\]{fill:#2b2c46}.desktop\:fill-white{fill:#fff}.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;justify-content:center;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;max-width:calc(100vw - 32px);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;overflow-y:auto;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.81216c5d.css.map*/