@blotoutio/providers-shop-gpt-sdk 1.36.2 → 1.37.2
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/index.cjs.js +610 -198
- package/index.js +610 -198
- package/index.mjs +610 -198
- package/package.json +1 -1
package/index.cjs.js
CHANGED
|
@@ -7,6 +7,55 @@ const WELCOME_PROMPT_ICON_MAPPING = {
|
|
|
7
7
|
promotion: 'handHeart',
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
+
const DEFAULT_COLOR_CONFIG = {
|
|
11
|
+
chatbotIcon: {
|
|
12
|
+
backgroundColor: '#444',
|
|
13
|
+
iconColor: '#ffffff',
|
|
14
|
+
},
|
|
15
|
+
welcomeScreen: {
|
|
16
|
+
navbar: {
|
|
17
|
+
backgroundColor: '#000000',
|
|
18
|
+
fontColor: '#ffffff',
|
|
19
|
+
},
|
|
20
|
+
welcomePrompts: {
|
|
21
|
+
backgroundColor: '#ffffff',
|
|
22
|
+
fontColor: '#18181b',
|
|
23
|
+
},
|
|
24
|
+
previousThread: {
|
|
25
|
+
backgroundColor: '#ce9e44',
|
|
26
|
+
fontColor: '#ffffff',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
chatMessages: {
|
|
30
|
+
bot: {
|
|
31
|
+
backgroundColor: '#ffffff',
|
|
32
|
+
fontColor: '#000000',
|
|
33
|
+
},
|
|
34
|
+
user: {
|
|
35
|
+
backgroundColor: '#ce9e44',
|
|
36
|
+
fontColor: '#fafafa',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
customPrompts: {
|
|
40
|
+
backgroundColor: '#ffffff',
|
|
41
|
+
fontColor: '#18181b',
|
|
42
|
+
borderColor: '#d1d5db',
|
|
43
|
+
},
|
|
44
|
+
productTiles: {
|
|
45
|
+
backgroundColor: '#ffffff',
|
|
46
|
+
borderColor: '#cbd5e1',
|
|
47
|
+
imageBackground: '#ffffff',
|
|
48
|
+
viewButton: {
|
|
49
|
+
backgroundColor: '#18181b',
|
|
50
|
+
fontColor: '#fafafa',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
chatNudge: {
|
|
54
|
+
backgroundColor: '#ffffff',
|
|
55
|
+
fontColor: '#020617',
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
|
|
10
59
|
const expand = (str) => str.split(',').flatMap((entry) => {
|
|
11
60
|
if (!entry.includes('-')) {
|
|
12
61
|
return entry;
|
|
@@ -1209,6 +1258,116 @@ const getUIVersion = (config) => {
|
|
|
1209
1258
|
return version;
|
|
1210
1259
|
};
|
|
1211
1260
|
|
|
1261
|
+
/**
|
|
1262
|
+
* Checks if a single rule matches the current context
|
|
1263
|
+
*/
|
|
1264
|
+
function doesRuleMatch(rule, context) {
|
|
1265
|
+
switch (rule.type) {
|
|
1266
|
+
case 'device': {
|
|
1267
|
+
const deviceMatches = (context.isMobile && rule.value === 'mobile') ||
|
|
1268
|
+
(!context.isMobile && rule.value === 'desktop');
|
|
1269
|
+
return deviceMatches;
|
|
1270
|
+
}
|
|
1271
|
+
case 'userType': {
|
|
1272
|
+
return context.userType === rule.value;
|
|
1273
|
+
}
|
|
1274
|
+
case 'userStatus': {
|
|
1275
|
+
// Map 'notOpened' to !hasBotOpened and 'opened' to hasBotOpened
|
|
1276
|
+
if (rule.value === 'notOpened') {
|
|
1277
|
+
return !context.hasBotOpened;
|
|
1278
|
+
}
|
|
1279
|
+
else if (rule.value === 'opened') {
|
|
1280
|
+
return context.hasBotOpened;
|
|
1281
|
+
}
|
|
1282
|
+
return false;
|
|
1283
|
+
}
|
|
1284
|
+
case 'urlParam': {
|
|
1285
|
+
const keys = rule.key.split(',').map((k) => k.trim());
|
|
1286
|
+
return keys.some((key) => context.urlParams.has(key));
|
|
1287
|
+
}
|
|
1288
|
+
default:
|
|
1289
|
+
return false;
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
/**
|
|
1293
|
+
* Checks if all rules in a rule group match based on the operator
|
|
1294
|
+
*/
|
|
1295
|
+
function doesRuleGroupMatch(group, context) {
|
|
1296
|
+
if (group.rules.length === 0) {
|
|
1297
|
+
return false;
|
|
1298
|
+
}
|
|
1299
|
+
if (group.operator === 'AND') {
|
|
1300
|
+
return group.rules.every((rule) => doesRuleMatch(rule, context));
|
|
1301
|
+
}
|
|
1302
|
+
else if (group.operator === 'OR') {
|
|
1303
|
+
return group.rules.some((rule) => doesRuleMatch(rule, context));
|
|
1304
|
+
}
|
|
1305
|
+
return false;
|
|
1306
|
+
}
|
|
1307
|
+
/**
|
|
1308
|
+
* Processes rule groups and returns the processed rules
|
|
1309
|
+
* Last-match-per-action-type strategy: later matching rules override earlier ones
|
|
1310
|
+
*/
|
|
1311
|
+
function processRules(ruleGroups, options) {
|
|
1312
|
+
var _a, _b;
|
|
1313
|
+
const isMobile = window.innerWidth <= 768;
|
|
1314
|
+
const userType = (_a = getUserType(options.destination, options.sessionId)) !== null && _a !== void 0 ? _a : 'anon';
|
|
1315
|
+
const hasBotOpened = (_b = getIsBotOpened(options.destination, options.sessionId)) !== null && _b !== void 0 ? _b : false;
|
|
1316
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
1317
|
+
const context = {
|
|
1318
|
+
destination: options.destination,
|
|
1319
|
+
sessionId: options.sessionId,
|
|
1320
|
+
isMobile,
|
|
1321
|
+
userType,
|
|
1322
|
+
hasBotOpened,
|
|
1323
|
+
urlParams,
|
|
1324
|
+
};
|
|
1325
|
+
const result = {};
|
|
1326
|
+
// Process each rule group in order
|
|
1327
|
+
for (const group of ruleGroups) {
|
|
1328
|
+
if (!doesRuleGroupMatch(group, context)) {
|
|
1329
|
+
continue;
|
|
1330
|
+
}
|
|
1331
|
+
// Apply action based on type (last-match-per-action-type)
|
|
1332
|
+
if (group.actionType === 'nudge') {
|
|
1333
|
+
if (group.actionValue === 'show') {
|
|
1334
|
+
result.nudge = { action: 'show' };
|
|
1335
|
+
}
|
|
1336
|
+
else if (group.actionValue === 'hide') {
|
|
1337
|
+
result.nudge = { action: 'hide' };
|
|
1338
|
+
}
|
|
1339
|
+
else if (group.actionValue === 'changeContent') {
|
|
1340
|
+
result.nudge = {
|
|
1341
|
+
action: 'changeContent',
|
|
1342
|
+
prompt: group.nudgeHeader || '',
|
|
1343
|
+
welcomeMessage: group.nudgeContent || '',
|
|
1344
|
+
};
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
else if (group.actionType === 'chatbotSize') {
|
|
1348
|
+
result.chatbotSize = group.actionValue;
|
|
1349
|
+
}
|
|
1350
|
+
else if (group.actionType === 'widget') {
|
|
1351
|
+
if (group.actionValue === 'left_bottom') {
|
|
1352
|
+
result.widget = { position: 'left' };
|
|
1353
|
+
}
|
|
1354
|
+
else if (group.actionValue === 'right_bottom') {
|
|
1355
|
+
result.widget = { position: 'right' };
|
|
1356
|
+
}
|
|
1357
|
+
else if (group.actionValue === 'disable') {
|
|
1358
|
+
result.widget = { action: 'disable' };
|
|
1359
|
+
}
|
|
1360
|
+
else if (group.actionValue === 'delay') {
|
|
1361
|
+
result.widget = {
|
|
1362
|
+
action: 'delay',
|
|
1363
|
+
delaySeconds: group.delaySeconds || 0,
|
|
1364
|
+
};
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
return result;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1212
1371
|
// eslint-disable-next-line @nx/enforce-module-boundaries
|
|
1213
1372
|
const error = (message) => console.error(message);
|
|
1214
1373
|
const init = (params) => {
|
|
@@ -1245,7 +1404,7 @@ const init = (params) => {
|
|
|
1245
1404
|
error('Error in setting the sessionStorage for previewShopGPT or UI version');
|
|
1246
1405
|
}
|
|
1247
1406
|
}
|
|
1248
|
-
const { enabled, mode, devMode, chatbotUI, merchantUrl, profiles, productHandles, targetPath, view, brandName, quickPrompts, supportPrompts, searchSuggestions, merchantImage, latestThreadLoad, botIconUrl, chatbotIconUrl, css, nudge, loadUIManually, metafieldDisplayName, showClassicChatbot, chatbotIconType, welcomeHeader, welcomePrompts, showBotOnLeft, botVisibilityConditions, } = (_d = params.manifest.variables) !== null && _d !== void 0 ? _d : {};
|
|
1407
|
+
const { enabled, mode, devMode, chatbotUI, merchantUrl, profiles, productHandles, targetPath, view, brandName, quickPrompts, supportPrompts, searchSuggestions, merchantImage, latestThreadLoad, botIconUrl, chatbotIconUrl, css, nudge, loadUIManually, metafieldDisplayName, showClassicChatbot, chatbotIconType, welcomeHeader, welcomePrompts, showBotOnLeft, botVisibilityConditions, botConfig, colorConfig, } = (_d = params.manifest.variables) !== null && _d !== void 0 ? _d : {};
|
|
1249
1408
|
let shouldHideBot = false;
|
|
1250
1409
|
if (botVisibilityConditions) {
|
|
1251
1410
|
const visibilityResult = checkBotVisibility({
|
|
@@ -1291,7 +1450,7 @@ const init = (params) => {
|
|
|
1291
1450
|
resolve();
|
|
1292
1451
|
});
|
|
1293
1452
|
}).then(() => {
|
|
1294
|
-
var _a, _b;
|
|
1453
|
+
var _a, _b, _c;
|
|
1295
1454
|
const shopGPTAPI = createShopGPTAPI({
|
|
1296
1455
|
baseURL: params.baseUrl,
|
|
1297
1456
|
storeAPI,
|
|
@@ -1311,6 +1470,48 @@ const init = (params) => {
|
|
|
1311
1470
|
error('UI implementation is missing');
|
|
1312
1471
|
return;
|
|
1313
1472
|
}
|
|
1473
|
+
// Process bot configuration rules
|
|
1474
|
+
const processedRules = (botConfig === null || botConfig === void 0 ? void 0 : botConfig.length)
|
|
1475
|
+
? processRules(botConfig, {
|
|
1476
|
+
destination: params.baseUrl,
|
|
1477
|
+
sessionId: (_b = params.session) === null || _b === void 0 ? void 0 : _b.sessionId,
|
|
1478
|
+
})
|
|
1479
|
+
: {};
|
|
1480
|
+
// Apply rule overrides
|
|
1481
|
+
let finalNudge = nudge;
|
|
1482
|
+
let finalShowBotOnLeft = showBotOnLeft;
|
|
1483
|
+
let finalShouldHideBot = shouldHideBot;
|
|
1484
|
+
let finalChatbotSize;
|
|
1485
|
+
// Apply nudge rules
|
|
1486
|
+
if (processedRules.nudge) {
|
|
1487
|
+
if (processedRules.nudge.action === 'show') {
|
|
1488
|
+
finalNudge = { ...nudge, show: true };
|
|
1489
|
+
}
|
|
1490
|
+
else if (processedRules.nudge.action === 'hide') {
|
|
1491
|
+
finalNudge = { ...nudge, show: false };
|
|
1492
|
+
}
|
|
1493
|
+
else if (processedRules.nudge.action === 'changeContent') {
|
|
1494
|
+
finalNudge = {
|
|
1495
|
+
...nudge,
|
|
1496
|
+
show: true,
|
|
1497
|
+
prompt: processedRules.nudge.prompt,
|
|
1498
|
+
welcomeMessage: processedRules.nudge.welcomeMessage,
|
|
1499
|
+
};
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
// Apply widget rules
|
|
1503
|
+
if (processedRules.widget) {
|
|
1504
|
+
if ('position' in processedRules.widget) {
|
|
1505
|
+
finalShowBotOnLeft = processedRules.widget.position === 'left';
|
|
1506
|
+
}
|
|
1507
|
+
else if (processedRules.widget.action === 'disable') {
|
|
1508
|
+
finalShouldHideBot = true;
|
|
1509
|
+
}
|
|
1510
|
+
}
|
|
1511
|
+
// Apply chatbot size rules
|
|
1512
|
+
if (processedRules.chatbotSize) {
|
|
1513
|
+
finalChatbotSize = processedRules.chatbotSize;
|
|
1514
|
+
}
|
|
1314
1515
|
uiImplementation.init({
|
|
1315
1516
|
destination: params.baseUrl,
|
|
1316
1517
|
storeAPI,
|
|
@@ -1331,8 +1532,8 @@ const init = (params) => {
|
|
|
1331
1532
|
botIconUrl,
|
|
1332
1533
|
chatbotIconUrl,
|
|
1333
1534
|
css,
|
|
1334
|
-
nudge,
|
|
1335
|
-
sessionId: (
|
|
1535
|
+
nudge: finalNudge,
|
|
1536
|
+
sessionId: (_c = params.session) === null || _c === void 0 ? void 0 : _c.sessionId,
|
|
1336
1537
|
loadUIManually,
|
|
1337
1538
|
userId: params.userId,
|
|
1338
1539
|
metafieldDisplayName,
|
|
@@ -1340,12 +1541,29 @@ const init = (params) => {
|
|
|
1340
1541
|
chatbotIconType,
|
|
1341
1542
|
welcomeHeader,
|
|
1342
1543
|
welcomePrompts,
|
|
1343
|
-
showBotOnLeft,
|
|
1544
|
+
showBotOnLeft: finalShowBotOnLeft,
|
|
1545
|
+
chatbotSize: finalChatbotSize,
|
|
1546
|
+
shouldHideBot: finalShouldHideBot,
|
|
1547
|
+
colorConfig,
|
|
1344
1548
|
});
|
|
1345
1549
|
const searchParams = new URLSearchParams(window.location.search);
|
|
1346
1550
|
const hasSource = searchParams.get('utm_source') === 'shopgpt';
|
|
1347
|
-
|
|
1348
|
-
|
|
1551
|
+
// Handle widget delay rule
|
|
1552
|
+
const shouldLoadUI = !loadUIManually || hasSource;
|
|
1553
|
+
const widgetDelay = processedRules.widget &&
|
|
1554
|
+
'action' in processedRules.widget &&
|
|
1555
|
+
processedRules.widget.action === 'delay'
|
|
1556
|
+
? processedRules.widget.delaySeconds * 1000
|
|
1557
|
+
: 0;
|
|
1558
|
+
if (shouldLoadUI) {
|
|
1559
|
+
if (widgetDelay > 0) {
|
|
1560
|
+
setTimeout(() => {
|
|
1561
|
+
uiImplementation.loadUI();
|
|
1562
|
+
}, widgetDelay);
|
|
1563
|
+
}
|
|
1564
|
+
else {
|
|
1565
|
+
uiImplementation.loadUI();
|
|
1566
|
+
}
|
|
1349
1567
|
}
|
|
1350
1568
|
}
|
|
1351
1569
|
});
|
|
@@ -1676,10 +1894,13 @@ const shopGPTStyles = i$4 `
|
|
|
1676
1894
|
|
|
1677
1895
|
@media screen and (max-width: 768px) {
|
|
1678
1896
|
min-height: unset;
|
|
1897
|
+
max-height: none;
|
|
1679
1898
|
min-width: unset;
|
|
1680
1899
|
width: 100vw;
|
|
1681
1900
|
height: 100dvh;
|
|
1901
|
+
top: 0;
|
|
1682
1902
|
bottom: 0;
|
|
1903
|
+
left: 0;
|
|
1683
1904
|
right: 0;
|
|
1684
1905
|
border-radius: 0;
|
|
1685
1906
|
}
|
|
@@ -1688,6 +1909,11 @@ const shopGPTStyles = i$4 `
|
|
|
1688
1909
|
:host(.v1) #shop-gpt-modal.left {
|
|
1689
1910
|
left: 20px;
|
|
1690
1911
|
right: auto;
|
|
1912
|
+
|
|
1913
|
+
@media screen and (max-width: 768px) {
|
|
1914
|
+
left: 0;
|
|
1915
|
+
right: 0;
|
|
1916
|
+
}
|
|
1691
1917
|
}
|
|
1692
1918
|
|
|
1693
1919
|
:host(.v1) .chatbot-widget .nudge {
|
|
@@ -1727,10 +1953,13 @@ const shopGPTStyles = i$4 `
|
|
|
1727
1953
|
|
|
1728
1954
|
@media screen and (max-width: 768px) {
|
|
1729
1955
|
min-height: unset;
|
|
1956
|
+
max-height: none;
|
|
1730
1957
|
min-width: unset;
|
|
1731
1958
|
width: 100vw;
|
|
1732
1959
|
height: 100dvh;
|
|
1960
|
+
top: 0;
|
|
1733
1961
|
bottom: 0;
|
|
1962
|
+
left: 0;
|
|
1734
1963
|
right: 0;
|
|
1735
1964
|
border-radius: 0;
|
|
1736
1965
|
}
|
|
@@ -1739,6 +1968,11 @@ const shopGPTStyles = i$4 `
|
|
|
1739
1968
|
:host(.v2) #shop-gpt-modal.left {
|
|
1740
1969
|
left: 1.25em;
|
|
1741
1970
|
right: auto;
|
|
1971
|
+
|
|
1972
|
+
@media screen and (max-width: 768px) {
|
|
1973
|
+
left: 0;
|
|
1974
|
+
right: 0;
|
|
1975
|
+
}
|
|
1742
1976
|
}
|
|
1743
1977
|
|
|
1744
1978
|
:host(.v2) .chatbot-widget button {
|
|
@@ -2087,7 +2321,7 @@ if (!customElements.get('load-spinner')) {
|
|
|
2087
2321
|
customElements.define('load-spinner', LoadSpinner);
|
|
2088
2322
|
}
|
|
2089
2323
|
|
|
2090
|
-
var css_248z = "/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-800: oklch(44.4% 0.177 26.899);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-orange-50: #f25c2b;\n --color-orange-100: #520c03;\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-yellow-700: oklch(55.4% 0.135 66.442);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-400: oklch(79.2% 0.209 151.711);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-green-900: oklch(39.3% 0.095 152.535);\n --color-cyan-500: oklch(71.5% 0.143 215.221);\n --color-blue-50: #3b82f6;\n --color-blue-100: #172554;\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n --color-violet-200: oklch(89.4% 0.057 293.283);\n --color-violet-600: oklch(54.1% 0.281 293.009);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-800: oklch(45.9% 0.187 3.815);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-950: oklch(12.9% 0.042 264.695);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-neutral-50: #8799af;\n --color-neutral-100: #172a41;\n --color-neutral-600: oklch(43.9% 0 0);\n --color-neutral-950: oklch(14.5% 0 0);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-xl: 36rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-normal: 1.5;\n --radius-xs: 0.125rem;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: #18181b;\n --color-primary-foreground: #fafafa;\n --color-secondary: #f4f4f5;\n --color-secondary-foreground: #18181b;\n --color-destructive: #dc2626;\n --color-destructive-foreground: #fef2f2;\n --color-background: #ffffff;\n --color-input: #e4e4e7;\n --color-accent: #f4f4f5;\n --color-accent-foreground: #18181b;\n --color-card: #ffffff;\n --color-card-foreground: #09090b;\n --color-border: #e4e4e7;\n --color-sidebar-ring: #a1a1aa;\n --color-muted: #f7f7f6;\n --color-muted-foreground: #74716e;\n --color-orange-10: #fff3e6;\n --color-orange-20: #ffdfbf;\n --color-orange-30: #ffb47f;\n --color-orange-40: #ff8446;\n --color-orange-60: #cd4b27;\n --color-orange-70: #b03719;\n --color-orange-80: #892c0f;\n --color-orange-90: #61170d;\n --color-neutral-10: #f1f4f8;\n --color-neutral-20: #dbe2eb;\n --color-neutral-30: #bfccda;\n --color-neutral-40: #a3b2c6;\n --color-neutral-60: #677c95;\n --color-neutral-70: #4e647f;\n --color-neutral-80: #394d66;\n --color-neutral-90: #293b51;\n --color-blue-10: #dbeafe;\n --color-blue-20: #bfdbfe;\n --color-blue-30: #93c5fd;\n --color-blue-40: #60a5fa;\n --color-blue-60: #2563eb;\n --color-blue-70: #1d4ed8;\n --color-blue-80: #1e40af;\n --color-blue-90: #1e3a8a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n .\\@container {\n container-type: inline-size;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .collapse {\n visibility: collapse;\n }\n .invisible {\n visibility: hidden;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-6 {\n top: calc(var(--spacing) * 6);\n }\n .top-\\[15px\\] {\n top: 15px;\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-5 {\n right: calc(var(--spacing) * 5);\n }\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n .right-30 {\n right: calc(var(--spacing) * 30);\n }\n .right-\\[14px\\] {\n right: 14px;\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-\\[-32px\\] {\n bottom: -32px;\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .left-\\[14px\\] {\n left: 14px;\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .left-full {\n left: 100%;\n }\n .isolate {\n isolation: isolate;\n }\n .z-5 {\n z-index: 5;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .z-55 {\n z-index: 55;\n }\n .order-123 {\n order: 123;\n }\n .col-span-1 {\n grid-column: span 1 / span 1;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .col-span-6 {\n grid-column: span 6 / span 6;\n }\n .col-span-full {\n grid-column: 1 / -1;\n }\n .col-start-1 {\n grid-column-start: 1;\n }\n .col-start-2 {\n grid-column-start: 2;\n }\n .row-auto {\n grid-row: auto;\n }\n .row-span-2 {\n grid-row: span 2 / span 2;\n }\n .row-span-full {\n grid-row: 1 / -1;\n }\n .row-start-1 {\n grid-row-start: 1;\n }\n .float-left {\n float: left;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-2\\.5 {\n margin: calc(var(--spacing) * -2.5);\n }\n .m-0 {\n margin: calc(var(--spacing) * 0);\n }\n .m-2 {\n margin: calc(var(--spacing) * 2);\n }\n .m-4 {\n margin: calc(var(--spacing) * 4);\n }\n .m-8 {\n margin: calc(var(--spacing) * 8);\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .-mx-1\\.5 {\n margin-inline: calc(var(--spacing) * -1.5);\n }\n .-mx-2 {\n margin-inline: calc(var(--spacing) * -2);\n }\n .-mx-4 {\n margin-inline: calc(var(--spacing) * -4);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-3\\.5 {\n margin-inline: calc(var(--spacing) * 3.5);\n }\n .mx-\\[20px\\] {\n margin-inline: 20px;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .-my-1\\.5 {\n margin-block: calc(var(--spacing) * -1.5);\n }\n .-my-2 {\n margin-block: calc(var(--spacing) * -2);\n }\n .-my-3 {\n margin-block: calc(var(--spacing) * -3);\n }\n .my-0 {\n margin-block: calc(var(--spacing) * 0);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-2 {\n margin-block: calc(var(--spacing) * 2);\n }\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n .my-5 {\n margin-block: calc(var(--spacing) * 5);\n }\n .my-6 {\n margin-block: calc(var(--spacing) * 6);\n }\n .my-10 {\n margin-block: calc(var(--spacing) * 10);\n }\n .my-\\[10px\\] {\n margin-block: 10px;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .mt-9 {\n margin-top: calc(var(--spacing) * 9);\n }\n .mt-10 {\n margin-top: calc(var(--spacing) * 10);\n }\n .mt-11 {\n margin-top: calc(var(--spacing) * 11);\n }\n .mt-30 {\n margin-top: calc(var(--spacing) * 30);\n }\n .mt-\\[-2px\\] {\n margin-top: -2px;\n }\n .mt-auto {\n margin-top: auto;\n }\n .-mr-px {\n margin-right: -1px;\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-3 {\n margin-right: calc(var(--spacing) * 3);\n }\n .mr-5 {\n margin-right: calc(var(--spacing) * 5);\n }\n .mr-16 {\n margin-right: calc(var(--spacing) * 16);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-5 {\n margin-bottom: calc(var(--spacing) * 5);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-7 {\n margin-bottom: calc(var(--spacing) * 7);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-\\[4px\\] {\n margin-bottom: 4px;\n }\n .mb-\\[24px\\] {\n margin-bottom: 24px;\n }\n .-ml-0\\.5 {\n margin-left: calc(var(--spacing) * -0.5);\n }\n .ml-0 {\n margin-left: calc(var(--spacing) * 0);\n }\n .ml-0\\.5 {\n margin-left: calc(var(--spacing) * 0.5);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .ml-3 {\n margin-left: calc(var(--spacing) * 3);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-5 {\n margin-left: calc(var(--spacing) * 5);\n }\n .ml-6 {\n margin-left: calc(var(--spacing) * 6);\n }\n .ml-10 {\n margin-left: calc(var(--spacing) * 10);\n }\n .ml-\\[28px\\] {\n margin-left: 28px;\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .flow-root {\n display: flow-root;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .list-item {\n display: list-item;\n }\n .table {\n display: table;\n }\n .table\\! {\n display: table !important;\n }\n .table-caption {\n display: table-caption;\n }\n .table-cell {\n display: table-cell;\n }\n .table-row {\n display: table-row;\n }\n .field-sizing-content {\n field-sizing: content;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-5 {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n }\n .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-12 {\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n }\n .size-full {\n width: 100%;\n height: 100%;\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-1 {\n height: calc(var(--spacing) * 1);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-4\\.5 {\n height: calc(var(--spacing) * 4.5);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-11 {\n height: calc(var(--spacing) * 11);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-30 {\n height: calc(var(--spacing) * 30);\n }\n .h-\\[1\\.15rem\\] {\n height: 1.15rem;\n }\n .h-\\[4px\\] {\n height: 4px;\n }\n .h-\\[12px\\] {\n height: 12px;\n }\n .h-\\[14px\\] {\n height: 14px;\n }\n .h-\\[15px\\] {\n height: 15px;\n }\n .h-\\[16px\\] {\n height: 16px;\n }\n .h-\\[20px\\] {\n height: 20px;\n }\n .h-\\[28px\\] {\n height: 28px;\n }\n .h-\\[32px\\] {\n height: 32px;\n }\n .h-\\[36px\\] {\n height: 36px;\n }\n .h-\\[64px\\] {\n height: 64px;\n }\n .h-\\[70px\\] {\n height: 70px;\n }\n .h-\\[108px\\] {\n height: 108px;\n }\n .h-\\[200px\\] {\n height: 200px;\n }\n .h-\\[320px\\] {\n height: 320px;\n }\n .h-\\[628px\\] {\n height: 628px;\n }\n .h-\\[calc-size\\(max-content\\,size\\)\\] {\n height: calc-size(max-content,size);\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n .h-auto {\n height: auto;\n }\n .h-fit {\n height: fit-content;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .h-svh {\n height: 100svh;\n }\n .max-h-\\[--radix-select-content-available-height\\] {\n max-height: --radix-select-content-available-height;\n }\n .max-h-\\[40em\\] {\n max-height: 40em;\n }\n .max-h-\\[80vh\\] {\n max-height: 80vh;\n }\n .max-h-\\[206px\\] {\n max-height: 206px;\n }\n .max-h-\\[612px\\] {\n max-height: 612px;\n }\n .max-h-\\[var\\(--radix-dropdown-menu-content-available-height\\)\\] {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-16 {\n min-height: calc(var(--spacing) * 16);\n }\n .min-h-\\[32px\\] {\n min-height: 32px;\n }\n .min-h-\\[48px\\] {\n min-height: 48px;\n }\n .min-h-\\[532px\\] {\n min-height: 532px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .min-h-svh {\n min-height: 100svh;\n }\n .w-\\(--sidebar-width\\) {\n width: var(--sidebar-width);\n }\n .w-0\\.5 {\n width: calc(var(--spacing) * 0.5);\n }\n .w-1\\/2 {\n width: calc(1/2 * 100%);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3\\/4 {\n width: calc(3/4 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-4\\.5 {\n width: calc(var(--spacing) * 4.5);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-11 {\n width: calc(var(--spacing) * 11);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-55 {\n width: calc(var(--spacing) * 55);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-106 {\n width: calc(var(--spacing) * 106);\n }\n .w-240 {\n width: calc(var(--spacing) * 240);\n }\n .w-\\[1px\\] {\n width: 1px;\n }\n .w-\\[12px\\] {\n width: 12px;\n }\n .w-\\[14px\\] {\n width: 14px;\n }\n .w-\\[16px\\] {\n width: 16px;\n }\n .w-\\[20px\\] {\n width: 20px;\n }\n .w-\\[45\\%\\] {\n width: 45%;\n }\n .w-\\[50px\\] {\n width: 50px;\n }\n .w-\\[64px\\] {\n width: 64px;\n }\n .w-\\[70px\\] {\n width: 70px;\n }\n .w-\\[75px\\] {\n width: 75px;\n }\n .w-\\[100px\\] {\n width: 100px;\n }\n .w-\\[120px\\] {\n width: 120px;\n }\n .w-\\[145px\\] {\n width: 145px;\n }\n .w-\\[150px\\] {\n width: 150px;\n }\n .w-\\[180px\\] {\n width: 180px;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[220px\\] {\n width: 220px;\n }\n .w-\\[250px\\] {\n width: 250px;\n }\n .w-\\[333px\\] {\n width: 333px;\n }\n .w-\\[370px\\] {\n width: 370px;\n }\n .w-\\[428px\\] {\n width: 428px;\n }\n .w-\\[484px\\] {\n width: 484px;\n }\n .w-\\[500px\\] {\n width: 500px;\n }\n .w-\\[526px\\] {\n width: 526px;\n }\n .w-\\[1080px\\] {\n width: 1080px;\n }\n .w-auto {\n width: auto;\n }\n .w-auto\\! {\n width: auto !important;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-min {\n width: min-content;\n }\n .w-screen {\n width: 100vw;\n }\n .\\!max-w-\\[860px\\] {\n max-width: 860px !important;\n }\n .\\!max-w-none {\n max-width: none !important;\n }\n .max-w-\\(--skeleton-width\\) {\n max-width: var(--skeleton-width);\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-5xl {\n max-width: var(--container-5xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-7xl {\n max-width: var(--container-7xl);\n }\n .max-w-\\[100\\%\\] {\n max-width: 100%;\n }\n .max-w-\\[177px\\] {\n max-width: 177px;\n }\n .max-w-\\[200px\\] {\n max-width: 200px;\n }\n .max-w-\\[354px\\] {\n max-width: 354px;\n }\n .max-w-\\[450px\\] {\n max-width: 450px;\n }\n .max-w-\\[573px\\] {\n max-width: 573px;\n }\n .max-w-\\[688px\\] {\n max-width: 688px;\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-lg {\n max-width: var(--container-lg);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-sm {\n max-width: var(--container-sm);\n }\n .max-w-xl {\n max-width: var(--container-xl);\n }\n .max-w-xs {\n max-width: var(--container-xs);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-5 {\n min-width: calc(var(--spacing) * 5);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[85px\\] {\n min-width: 85px;\n }\n .min-w-\\[120px\\] {\n min-width: 120px;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .min-w-\\[220px\\] {\n min-width: 220px;\n }\n .min-w-\\[270px\\] {\n min-width: 270px;\n }\n .min-w-\\[700px\\] {\n min-width: 700px;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .min-w-fit {\n min-width: fit-content;\n }\n .min-w-full {\n min-width: 100%;\n }\n .min-w-max {\n min-width: max-content;\n }\n .min-w-xs {\n min-width: var(--container-xs);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-2 {\n flex: 2;\n }\n .flex-auto {\n flex: auto;\n }\n .flex-none {\n flex: none;\n }\n .\\!shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .\\!grow-0 {\n flex-grow: 0 !important;\n }\n .flex-grow {\n flex-grow: 1;\n }\n .grow {\n flex-grow: 1;\n }\n .\\!basis-auto {\n flex-basis: auto !important;\n }\n .table-auto {\n table-layout: auto;\n }\n .caption-bottom {\n caption-side: bottom;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .origin-\\(--radix-tooltip-content-transform-origin\\) {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n .origin-\\[--radix-dropdown-menu-content-transform-origin\\] {\n transform-origin: --radix-dropdown-menu-content-transform-origin;\n }\n .origin-\\[--radix-popover-content-transform-origin\\] {\n transform-origin: --radix-popover-content-transform-origin;\n }\n .origin-\\[--radix-select-content-transform-origin\\] {\n transform-origin: --radix-select-content-transform-origin;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-px {\n --tw-translate-x: -1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-0 {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-full {\n --tw-translate-x: 100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-px {\n --tw-translate-x: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0\\.5 {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .\\!cursor-default {\n cursor: default !important;\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .snap-x {\n scroll-snap-type: x var(--tw-scroll-snap-strictness);\n }\n .snap-mandatory {\n --tw-scroll-snap-strictness: mandatory;\n }\n .list-inside {\n list-style-position: inside;\n }\n .list-disc {\n list-style-type: disc;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-flow-row {\n grid-auto-flow: row;\n }\n .auto-rows-min {\n grid-auto-rows: min-content;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n .grid-cols-\\[1fr_auto\\] {\n grid-template-columns: 1fr auto;\n }\n .grid-cols-\\[1fr_auto_auto\\] {\n grid-template-columns: 1fr auto auto;\n }\n .grid-cols-\\[1fr_auto_auto_auto\\] {\n grid-template-columns: 1fr auto auto auto;\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n .grid-rows-\\[repeat\\(6\\,auto\\)\\] {\n grid-template-rows: repeat(6,auto);\n }\n .grid-rows-subgrid {\n grid-template-rows: subgrid;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .place-items-center {\n place-items: center;\n }\n .\\!items-start {\n align-items: flex-start !important;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .\\!justify-start {\n justify-content: flex-start !important;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-stretch {\n justify-content: stretch;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .gap-10 {\n gap: calc(var(--spacing) * 10);\n }\n .gap-25 {\n gap: calc(var(--spacing) * 25);\n }\n .gap-\\[2px\\] {\n gap: 2px;\n }\n .gap-\\[4px\\] {\n gap: 4px;\n }\n .gap-\\[8px\\] {\n gap: 8px;\n }\n .gap-\\[10px\\] {\n gap: 10px;\n }\n .gap-\\[20px\\] {\n gap: 20px;\n }\n .gap-\\[48px\\] {\n gap: 48px;\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .gap-x-1\\.5 {\n column-gap: calc(var(--spacing) * 1.5);\n }\n .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n .gap-x-2\\.5 {\n column-gap: calc(var(--spacing) * 2.5);\n }\n .gap-x-3 {\n column-gap: calc(var(--spacing) * 3);\n }\n .gap-x-4 {\n column-gap: calc(var(--spacing) * 4);\n }\n .gap-x-6 {\n column-gap: calc(var(--spacing) * 6);\n }\n .gap-x-12 {\n column-gap: calc(var(--spacing) * 12);\n }\n .-space-x-px {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(-1px * var(--tw-space-x-reverse));\n margin-inline-end: calc(-1px * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-3 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-4 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-5 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-6 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 6) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .gap-y-2 {\n row-gap: calc(var(--spacing) * 2);\n }\n .gap-y-4 {\n row-gap: calc(var(--spacing) * 4);\n }\n .gap-y-5 {\n row-gap: calc(var(--spacing) * 5);\n }\n .gap-y-7 {\n row-gap: calc(var(--spacing) * 7);\n }\n .gap-y-8 {\n row-gap: calc(var(--spacing) * 8);\n }\n .divide-y {\n :where(& > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n }\n .divide-gray-100 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-gray-100);\n }\n }\n .divide-gray-200 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-gray-200);\n }\n }\n .divide-gray-300 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-gray-300);\n }\n }\n .self-center {\n align-self: center;\n }\n .self-start {\n align-self: flex-start;\n }\n .justify-self-end {\n justify-self: flex-end;\n }\n .justify-self-start {\n justify-self: flex-start;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .rounded-\\[100\\%\\] {\n border-radius: 100%;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n .rounded-l-md {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n .rounded-r-md {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-1 {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-3 {\n border-style: var(--tw-border-style);\n border-width: 3px;\n }\n .border-\\[0\\.5\\] {\n border-style: var(--tw-border-style);\n border-width: 0.5;\n }\n .border-\\[0\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 0.5px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-t-1 {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-1 {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-1 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-b-3 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 3px;\n }\n .border-b-\\[0\\.5px\\] {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0.5px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-black {\n border-color: var(--color-black);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-600 {\n border-color: var(--color-blue-600);\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n .border-gray-900\\/5 {\n border-color: color-mix(in srgb, oklch(21% 0.034 264.665) 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-gray-900) 5%, transparent);\n }\n }\n .border-gray-900\\/25 {\n border-color: color-mix(in srgb, oklch(21% 0.034 264.665) 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-gray-900) 25%, transparent);\n }\n }\n .border-green-500 {\n border-color: var(--color-green-500);\n }\n .border-input {\n border-color: var(--color-input);\n }\n .border-neutral-20 {\n border-color: var(--color-neutral-20);\n }\n .border-neutral-40 {\n border-color: var(--color-neutral-40);\n }\n .border-orange-200 {\n border-color: var(--color-orange-200);\n }\n .border-primary {\n border-color: var(--color-primary);\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .border-red-600 {\n border-color: var(--color-red-600);\n }\n .border-sidebar-ring {\n border-color: var(--color-sidebar-ring);\n }\n .border-slate-300 {\n border-color: var(--color-slate-300);\n }\n .border-slate-400 {\n border-color: var(--color-slate-400);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-200 {\n border-color: var(--color-yellow-200);\n }\n .border-b-transparent {\n border-bottom-color: transparent;\n }\n .\\!bg-\\[\\#1877F2\\] {\n background-color: #1877F2 !important;\n }\n .\\!bg-\\[\\#ff7a59\\] {\n background-color: #ff7a59 !important;\n }\n .bg-\\[\\#0001\\] {\n background-color: #0001;\n }\n .bg-\\[\\#fffa\\] {\n background-color: #fffa;\n }\n .bg-\\[\\#ffffff\\] {\n background-color: #ffffff;\n }\n .bg-accent {\n background-color: var(--color-accent);\n }\n .bg-background {\n background-color: var(--color-background);\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-10 {\n background-color: var(--color-blue-10);\n }\n .bg-blue-20 {\n background-color: var(--color-blue-20);\n }\n .bg-blue-30 {\n background-color: var(--color-blue-30);\n }\n .bg-blue-40 {\n background-color: var(--color-blue-40);\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-60 {\n background-color: var(--color-blue-60);\n }\n .bg-blue-70 {\n background-color: var(--color-blue-70);\n }\n .bg-blue-80 {\n background-color: var(--color-blue-80);\n }\n .bg-blue-90 {\n background-color: var(--color-blue-90);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-200 {\n background-color: var(--color-blue-200);\n }\n .bg-blue-300 {\n background-color: var(--color-blue-300);\n }\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n .bg-border {\n background-color: var(--color-border);\n }\n .bg-card {\n background-color: var(--color-card);\n }\n .bg-destructive {\n background-color: var(--color-destructive);\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n .bg-gray-300 {\n background-color: var(--color-gray-300);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-gray-500\\/75 {\n background-color: color-mix(in srgb, oklch(55.1% 0.027 264.364) 75%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-gray-500) 75%, transparent);\n }\n }\n .bg-gray-900\\/80 {\n background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-gray-900) 80%, transparent);\n }\n }\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-green-600 {\n background-color: var(--color-green-600);\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-muted\\/50 {\n background-color: color-mix(in srgb, #f7f7f6 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);\n }\n }\n .bg-neutral-10 {\n background-color: var(--color-neutral-10);\n }\n .bg-neutral-20 {\n background-color: var(--color-neutral-20);\n }\n .bg-neutral-30 {\n background-color: var(--color-neutral-30);\n }\n .bg-neutral-40 {\n background-color: var(--color-neutral-40);\n }\n .bg-neutral-50 {\n background-color: var(--color-neutral-50);\n }\n .bg-neutral-60 {\n background-color: var(--color-neutral-60);\n }\n .bg-neutral-70 {\n background-color: var(--color-neutral-70);\n }\n .bg-neutral-80 {\n background-color: var(--color-neutral-80);\n }\n .bg-neutral-90 {\n background-color: var(--color-neutral-90);\n }\n .bg-neutral-100 {\n background-color: var(--color-neutral-100);\n }\n .bg-neutral-950 {\n background-color: var(--color-neutral-950);\n }\n .bg-orange-10 {\n background-color: var(--color-orange-10);\n }\n .bg-orange-20 {\n background-color: var(--color-orange-20);\n }\n .bg-orange-30 {\n background-color: var(--color-orange-30);\n }\n .bg-orange-40 {\n background-color: var(--color-orange-40);\n }\n .bg-orange-50 {\n background-color: var(--color-orange-50);\n }\n .bg-orange-60 {\n background-color: var(--color-orange-60);\n }\n .bg-orange-70 {\n background-color: var(--color-orange-70);\n }\n .bg-orange-80 {\n background-color: var(--color-orange-80);\n }\n .bg-orange-90 {\n background-color: var(--color-orange-90);\n }\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n .bg-pink-100 {\n background-color: var(--color-pink-100);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-purple-600 {\n background-color: var(--color-purple-600);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-300 {\n background-color: var(--color-red-300);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-violet-200 {\n background-color: var(--color-violet-200);\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n .bg-yellow-100 {\n background-color: var(--color-yellow-100);\n }\n .bg-yellow-600 {\n background-color: var(--color-yellow-600);\n }\n .bg-yellow-900 {\n background-color: var(--color-yellow-900);\n }\n .bg-linear-to-r {\n --tw-gradient-position: to right;\n @supports (background-image: linear-gradient(in lab, red, red)) {\n --tw-gradient-position: to right in oklab;\n }\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-b {\n --tw-gradient-position: to bottom in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-t {\n --tw-gradient-position: to top in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-none {\n background-image: none;\n }\n .from-\\[\\#2B5876\\] {\n --tw-gradient-from: #2B5876;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-cyan-500 {\n --tw-gradient-from: var(--color-cyan-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-white {\n --tw-gradient-from: var(--color-white);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-\\[\\#4E4376\\] {\n --tw-gradient-to: #4E4376;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-blue-500 {\n --tw-gradient-to: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-transparent {\n --tw-gradient-to: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-cover {\n background-size: cover;\n }\n .bg-center {\n background-position: center;\n }\n .fill-blue-500 {\n fill: var(--color-blue-500);\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-green-500 {\n fill: var(--color-green-500);\n }\n .fill-primary {\n fill: var(--color-primary);\n }\n .fill-red-500 {\n fill: var(--color-red-500);\n }\n .fill-slate-500 {\n fill: var(--color-slate-500);\n }\n .stroke-slate-500 {\n stroke: var(--color-slate-500);\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .object-center {\n object-position: center;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-7 {\n padding: calc(var(--spacing) * 7);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .p-10 {\n padding: calc(var(--spacing) * 10);\n }\n .p-16 {\n padding: calc(var(--spacing) * 16);\n }\n .p-1234 {\n padding: calc(var(--spacing) * 1234);\n }\n .p-4321 {\n padding: calc(var(--spacing) * 4321);\n }\n .p-9999 {\n padding: calc(var(--spacing) * 9999);\n }\n .p-\\[12px\\] {\n padding: 12px;\n }\n .p-\\[20px\\] {\n padding: 20px;\n }\n .px-0 {\n padding-inline: calc(var(--spacing) * 0);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-7 {\n padding-inline: calc(var(--spacing) * 7);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .px-11 {\n padding-inline: calc(var(--spacing) * 11);\n }\n .px-16 {\n padding-inline: calc(var(--spacing) * 16);\n }\n .px-20 {\n padding-inline: calc(var(--spacing) * 20);\n }\n .px-\\[10px\\] {\n padding-inline: 10px;\n }\n .px-\\[18px\\] {\n padding-inline: 18px;\n }\n .px-\\[20px\\] {\n padding-inline: 20px;\n }\n .px-\\[30px\\] {\n padding-inline: 30px;\n }\n .px-\\[40px\\] {\n padding-inline: 40px;\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-3\\.5 {\n padding-block: calc(var(--spacing) * 3.5);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-5 {\n padding-block: calc(var(--spacing) * 5);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-9 {\n padding-block: calc(var(--spacing) * 9);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-22 {\n padding-block: calc(var(--spacing) * 22);\n }\n .py-24 {\n padding-block: calc(var(--spacing) * 24);\n }\n .py-\\[8px\\] {\n padding-block: 8px;\n }\n .py-\\[20px\\] {\n padding-block: 20px;\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pt-0\\.5 {\n padding-top: calc(var(--spacing) * 0.5);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-5 {\n padding-top: calc(var(--spacing) * 5);\n }\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n .pt-10 {\n padding-top: calc(var(--spacing) * 10);\n }\n .pt-11 {\n padding-top: calc(var(--spacing) * 11);\n }\n .pt-16 {\n padding-top: calc(var(--spacing) * 16);\n }\n .pr-0 {\n padding-right: calc(var(--spacing) * 0);\n }\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-5 {\n padding-right: calc(var(--spacing) * 5);\n }\n .pr-6 {\n padding-right: calc(var(--spacing) * 6);\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pr-9 {\n padding-right: calc(var(--spacing) * 9);\n }\n .pb-0 {\n padding-bottom: calc(var(--spacing) * 0);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-5 {\n padding-bottom: calc(var(--spacing) * 5);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-15 {\n padding-bottom: calc(var(--spacing) * 15);\n }\n .pl-0 {\n padding-left: calc(var(--spacing) * 0);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-3\\.5 {\n padding-left: calc(var(--spacing) * 3.5);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .pl-11 {\n padding-left: calc(var(--spacing) * 11);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-start {\n text-align: start;\n }\n .align-baseline {\n vertical-align: baseline;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-sm\\/6 {\n font-size: var(--text-sm);\n line-height: calc(var(--spacing) * 6);\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xl\\/7 {\n font-size: var(--text-xl);\n line-height: calc(var(--spacing) * 7);\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-xs\\/5 {\n font-size: var(--text-xs);\n line-height: calc(var(--spacing) * 5);\n }\n .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n .text-\\[0\\.85em\\] {\n font-size: 0.85em;\n }\n .text-\\[12px\\] {\n font-size: 12px;\n }\n .text-\\[14px\\] {\n font-size: 14px;\n }\n .text-\\[18px\\] {\n font-size: 18px;\n }\n .text-\\[28px\\] {\n font-size: 28px;\n }\n .leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(var(--spacing) * 4);\n }\n .leading-5 {\n --tw-leading: calc(var(--spacing) * 5);\n line-height: calc(var(--spacing) * 5);\n }\n .leading-6 {\n --tw-leading: calc(var(--spacing) * 6);\n line-height: calc(var(--spacing) * 6);\n }\n .leading-7 {\n --tw-leading: calc(var(--spacing) * 7);\n line-height: calc(var(--spacing) * 7);\n }\n .leading-8 {\n --tw-leading: calc(var(--spacing) * 8);\n line-height: calc(var(--spacing) * 8);\n }\n .leading-9 {\n --tw-leading: calc(var(--spacing) * 9);\n line-height: calc(var(--spacing) * 9);\n }\n .leading-\\[1\\] {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-\\[24px\\] {\n --tw-leading: 24px;\n line-height: 24px;\n }\n .leading-\\[36px\\] {\n --tw-leading: 36px;\n line-height: 36px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-normal {\n white-space: normal;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .\\!text-white {\n color: var(--color-white) !important;\n }\n .text-\\[\\#666\\] {\n color: #666;\n }\n .text-\\[rgba\\(17\\,17\\,17\\,0\\.32\\)\\] {\n color: rgba(17,17,17,0.32);\n }\n .text-accent-foreground {\n color: var(--color-accent-foreground);\n }\n .text-background {\n color: var(--color-background);\n }\n .text-black {\n color: var(--color-black);\n }\n .text-blue-50 {\n color: var(--color-blue-50);\n }\n .text-blue-300 {\n color: var(--color-blue-300);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-card-foreground {\n color: var(--color-card-foreground);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--color-destructive);\n }\n .text-destructive-foreground {\n color: var(--color-destructive-foreground);\n }\n .text-gray-300 {\n color: var(--color-gray-300);\n }\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n .text-green-400 {\n color: var(--color-green-400);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-neutral-70 {\n color: var(--color-neutral-70);\n }\n .text-neutral-80 {\n color: var(--color-neutral-80);\n }\n .text-neutral-100 {\n color: var(--color-neutral-100);\n }\n .text-neutral-600 {\n color: var(--color-neutral-600);\n }\n .text-neutral-950 {\n color: var(--color-neutral-950);\n }\n .text-orange-50 {\n color: var(--color-orange-50);\n }\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n .text-pink-800 {\n color: var(--color-pink-800);\n }\n .text-primary {\n color: var(--color-primary);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-purple-600 {\n color: var(--color-purple-600);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-300 {\n color: var(--color-red-300);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-red-800 {\n color: var(--color-red-800);\n }\n .text-red-900 {\n color: var(--color-red-900);\n }\n .text-secondary-foreground {\n color: var(--color-secondary-foreground);\n }\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-950 {\n color: var(--color-slate-950);\n }\n .text-violet-600 {\n color: var(--color-violet-600);\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-400 {\n color: var(--color-yellow-400);\n }\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n .text-yellow-700 {\n color: var(--color-yellow-700);\n }\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n .text-yellow-900 {\n color: var(--color-yellow-900);\n }\n .capitalize {\n text-transform: capitalize;\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .no-underline {\n text-decoration-line: none;\n }\n .underline {\n text-decoration-line: underline;\n }\n .decoration-solid {\n text-decoration-style: solid;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .caret-red-600 {\n caret-color: var(--color-red-600);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow\\! {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_3px_10px_rgba\\(0\\,0\\,0\\,0\\.14\\)\\] {\n --tw-shadow: 0 3px 10px var(--tw-shadow-color, rgba(0,0,0,0.14));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-0 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-gray-300 {\n --tw-ring-color: var(--color-gray-300);\n }\n .ring-gray-900\\/10 {\n --tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-gray-900) 10%, transparent);\n }\n }\n .ring-sidebar-ring {\n --tw-ring-color: var(--color-sidebar-ring);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--color-background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-1 {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .-outline-offset-1 {\n outline-offset: calc(1px * -1);\n }\n .outline-gray-300 {\n outline-color: var(--color-gray-300);\n }\n .outline-red-300 {\n outline-color: var(--color-red-300);\n }\n .blur {\n --tw-blur: blur(8px);\n 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,);\n }\n .drop-shadow-md {\n --tw-drop-shadow-size: drop-shadow(0 3px 3px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.12)));\n --tw-drop-shadow: drop-shadow(var(--drop-shadow-md));\n 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,);\n }\n .invert {\n --tw-invert: invert(100%);\n 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,);\n }\n .\\!filter {\n 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,) !important;\n }\n .filter {\n 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,);\n }\n .filter\\! {\n 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,) !important;\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -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,);\n 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,);\n }\n .backdrop-filter {\n -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,);\n 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,);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[left\\,right\\,width\\] {\n transition-property: left,right,width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[margin\\,opacity\\] {\n transition-property: margin,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\,height\\,padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in {\n --tw-ease: var(--ease-in);\n transition-timing-function: var(--ease-in);\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .\\[-ms-overflow-style\\:none\\] {\n -ms-overflow-style: none;\n }\n .\\[-webkit-overflow-scrolling\\:touch\\] {\n -webkit-overflow-scrolling: touch;\n }\n .\\[scrollbar-width\\:none\\] {\n scrollbar-width: none;\n }\n .ring-inset {\n --tw-ring-inset: inset;\n }\n .group-focus-within\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):focus-within *) {\n opacity: 100%;\n }\n }\n .group-hover\\:text-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pr-8 {\n &:is(:where(.group\\/menu-item):has(*[data-sidebar=\"menu-action\"]) *) {\n padding-right: calc(var(--spacing) * 8);\n }\n }\n .group-data-\\[checked\\]\\:translate-x-5 {\n &:is(:where(.group)[data-checked] *) {\n --tw-translate-x: calc(var(--spacing) * 5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[checked\\]\\:opacity-0 {\n &:is(:where(.group)[data-checked] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[checked\\]\\:opacity-100 {\n &:is(:where(.group)[data-checked] *) {\n opacity: 100%;\n }\n }\n .group-data-\\[checked\\]\\:duration-100 {\n &:is(:where(.group)[data-checked] *) {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n }\n .group-data-\\[checked\\]\\:duration-200 {\n &:is(:where(.group)[data-checked] *) {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .group-data-\\[checked\\]\\:ease-in {\n &:is(:where(.group)[data-checked] *) {\n --tw-ease: var(--ease-in);\n transition-timing-function: var(--ease-in);\n }\n }\n .group-data-\\[checked\\]\\:ease-out {\n &:is(:where(.group)[data-checked] *) {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:-mt-8 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n margin-top: calc(var(--spacing) * -8);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n display: none;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:size-8\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--spacing) * 8) !important;\n height: calc(var(--spacing) * 8) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\) {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: var(--sidebar-width-icon);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-0\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 0) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-2\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 2) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:opacity-0 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n right: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n left: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n width: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[side\\=left\\]\\:-right-4 {\n &:is(:where(.group)[data-side=\"left\"] *) {\n right: calc(var(--spacing) * -4);\n }\n }\n .group-data-\\[side\\=left\\]\\:border-r {\n &:is(:where(.group)[data-side=\"left\"] *) {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .group-data-\\[side\\=right\\]\\:left-0 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n left: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[side\\=right\\]\\:rotate-180 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[side\\=right\\]\\:border-l {\n &:is(:where(.group)[data-side=\"right\"] *) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-radius: var(--radius-lg);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:shadow-sm {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-70 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 70%;\n }\n }\n .peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"default\"] ~ *) {\n top: calc(var(--spacing) * 1.5);\n }\n }\n .peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"lg\"] ~ *) {\n top: calc(var(--spacing) * 2.5);\n }\n }\n .peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1 {\n &:is(:where(.peer\\/menu-button)[data-size=\"sm\"] ~ *) {\n top: calc(var(--spacing) * 1);\n }\n }\n .selection\\:bg-primary {\n & *::selection {\n background-color: var(--color-primary);\n }\n &::selection {\n background-color: var(--color-primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::selection {\n color: var(--color-primary-foreground);\n }\n &::selection {\n color: var(--color-primary-foreground);\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .placeholder\\:text-gray-400 {\n &::placeholder {\n color: var(--color-gray-400);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--color-muted-foreground);\n }\n }\n .placeholder\\:text-red-300 {\n &::placeholder {\n color: var(--color-red-300);\n }\n }\n .before\\:absolute {\n &::before {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .before\\:top-0 {\n &::before {\n content: var(--tw-content);\n top: calc(var(--spacing) * 0);\n }\n }\n .before\\:bottom-0 {\n &::before {\n content: var(--tw-content);\n bottom: calc(var(--spacing) * 0);\n }\n }\n .before\\:left-0 {\n &::before {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n .before\\:w-px {\n &::before {\n content: var(--tw-content);\n width: 1px;\n }\n }\n .before\\:bg-border {\n &::before {\n content: var(--tw-content);\n background-color: var(--color-border);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:-inset-2 {\n &::after {\n content: var(--tw-content);\n inset: calc(var(--spacing) * -2);\n }\n }\n .after\\:inset-y-0 {\n &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-1\\/2 {\n &::after {\n content: var(--tw-content);\n left: calc(1/2 * 100%);\n }\n }\n .after\\:w-\\[2px\\] {\n &::after {\n content: var(--tw-content);\n width: 2px;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n &::after {\n content: var(--tw-content);\n left: 100%;\n }\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .focus-within\\:relative {\n &:focus-within {\n position: relative;\n }\n }\n .focus-within\\:ring-2 {\n &:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-within\\:ring-\\[3px\\] {\n &:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-within\\:ring-blue-600 {\n &:focus-within {\n --tw-ring-color: var(--color-blue-600);\n }\n }\n .focus-within\\:ring-offset-2 {\n &:focus-within {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-within\\:outline-none {\n &:focus-within {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .hover\\:cursor-pointer {\n &:hover {\n @media (hover: hover) {\n cursor: pointer;\n }\n }\n }\n .hover\\:border-blue-600 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:border-gray-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-gray-300);\n }\n }\n }\n .hover\\:border-gray-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-gray-400);\n }\n }\n }\n .hover\\:border-red-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-red-300);\n }\n }\n }\n .hover\\:\\!bg-\\[\\#12478a\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #12478a !important;\n }\n }\n }\n .hover\\:\\!bg-\\[\\#af543d\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #af543d !important;\n }\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-accent);\n }\n }\n }\n .hover\\:bg-accent\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-black\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-100);\n }\n }\n }\n .hover\\:bg-blue-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-200);\n }\n }\n }\n .hover\\:bg-blue-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-500);\n }\n }\n }\n .hover\\:bg-blue-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-700);\n }\n }\n }\n .hover\\:bg-destructive\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #dc2626 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #dc2626 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-gray-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-50);\n }\n }\n }\n .hover\\:bg-gray-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n }\n .hover\\:bg-gray-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-200);\n }\n }\n }\n .hover\\:bg-gray-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-800);\n }\n }\n }\n .hover\\:bg-muted\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f7f7f6 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #18181b 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #18181b 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-red-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n }\n .hover\\:bg-red-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-200);\n }\n }\n }\n .hover\\:bg-red-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-700);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--color-accent-foreground);\n }\n }\n }\n .hover\\:text-black {\n &:hover {\n @media (hover: hover) {\n color: var(--color-black);\n }\n }\n }\n .hover\\:text-blue-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-500);\n }\n }\n }\n .hover\\:text-blue-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .hover\\:text-blue-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-800);\n }\n }\n }\n .hover\\:text-blue-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-900);\n }\n }\n }\n .hover\\:text-destructive {\n &:hover {\n @media (hover: hover) {\n color: var(--color-destructive);\n }\n }\n }\n .hover\\:text-gray-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-500);\n }\n }\n }\n .hover\\:text-gray-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-600);\n }\n }\n }\n .hover\\:text-gray-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-700);\n }\n }\n }\n .hover\\:text-gray-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-800);\n }\n }\n }\n .hover\\:text-green-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-green-900);\n }\n }\n }\n .hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--color-primary);\n }\n }\n }\n .hover\\:text-red-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n }\n .hover\\:text-red-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-700);\n }\n }\n }\n .hover\\:text-red-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-800);\n }\n }\n }\n .hover\\:text-red-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-900);\n }\n }\n }\n .hover\\:text-yellow-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-yellow-900);\n }\n }\n }\n .hover\\:no-underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: none;\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-90 {\n &:hover {\n @media (hover: hover) {\n opacity: 90%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .focus\\:relative {\n &:focus {\n position: relative;\n }\n }\n .focus\\:z-10 {\n &:focus {\n z-index: 10;\n }\n }\n .focus\\:z-20 {\n &:focus {\n z-index: 20;\n }\n }\n .focus\\:border-red-500 {\n &:focus {\n border-color: var(--color-red-500);\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--color-accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--color-accent-foreground);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-black {\n &:focus {\n --tw-ring-color: var(--color-black);\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:ring-blue-600 {\n &:focus {\n --tw-ring-color: var(--color-blue-600);\n }\n }\n .focus\\:ring-primary {\n &:focus {\n --tw-ring-color: var(--color-primary);\n }\n }\n .focus\\:ring-red-500 {\n &:focus {\n --tw-ring-color: var(--color-red-500);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus\\:outline-2 {\n &:focus {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n }\n .focus\\:-outline-offset-2 {\n &:focus {\n outline-offset: calc(2px * -1);\n }\n }\n .focus\\:outline-offset-0 {\n &:focus {\n outline-offset: 0px;\n }\n }\n .focus\\:outline-blue-600 {\n &:focus {\n outline-color: var(--color-blue-600);\n }\n }\n .focus\\:outline-red-600 {\n &:focus {\n outline-color: var(--color-red-600);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .focus-visible\\:border-red-300 {\n &:focus-visible {\n border-color: var(--color-red-300);\n }\n }\n .focus-visible\\:ring-0 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-1 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: color-mix(in srgb, #dc2626 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-red-300 {\n &:focus-visible {\n --tw-ring-color: var(--color-red-300);\n }\n }\n .focus-visible\\:ring-offset-0 {\n &:focus-visible {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:ring-offset-2 {\n &:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:outline {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus-visible\\:outline-2 {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n }\n .focus-visible\\:outline-offset-2 {\n &:focus-visible {\n outline-offset: 2px;\n }\n }\n .focus-visible\\:outline-blue-600 {\n &:focus-visible {\n outline-color: var(--color-blue-600);\n }\n }\n .focus-visible\\:outline-none {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:bg-gray-200 {\n &:active {\n background-color: var(--color-gray-200);\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:bg-gray-50 {\n &:disabled {\n background-color: var(--color-gray-50);\n }\n }\n .disabled\\:text-gray-500 {\n &:disabled {\n color: var(--color-gray-500);\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .disabled\\:outline-gray-200 {\n &:disabled {\n outline-color: var(--color-gray-200);\n }\n }\n .in-data-\\[side\\=left\\]\\:cursor-w-resize {\n :where(*[data-side=\"left\"]) & {\n cursor: w-resize;\n }\n }\n .in-data-\\[side\\=right\\]\\:cursor-e-resize {\n :where(*[data-side=\"right\"]) & {\n cursor: e-resize;\n }\n }\n .has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n .has-\\[\\[aria-checked\\=true\\]\\]\\:border-blue-600 {\n &:has(*:is([aria-checked=true])) {\n border-color: var(--color-blue-600);\n }\n }\n .has-\\[\\[aria-checked\\=true\\]\\]\\:bg-blue-50 {\n &:has(*:is([aria-checked=true])) {\n background-color: var(--color-blue-50);\n }\n }\n .has-\\[\\>svg\\]\\:px-0 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 0);\n }\n }\n .aria-disabled\\:pointer-events-none {\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .aria-disabled\\:opacity-50 {\n &[aria-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--color-destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in srgb, #dc2626 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:font-medium {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .data-\\[checked\\]\\:bg-blue-600 {\n &[data-checked] {\n background-color: var(--color-blue-600);\n }\n }\n .data-\\[closed\\]\\:-translate-x-full {\n &[data-closed] {\n --tw-translate-x: -100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[closed\\]\\:translate-y-4 {\n &[data-closed] {\n --tw-translate-y: calc(var(--spacing) * 4);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[closed\\]\\:opacity-0 {\n &[data-closed] {\n opacity: 0%;\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[enter\\]\\:duration-300 {\n &[data-enter] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[enter\\]\\:ease-out {\n &[data-enter] {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive {\n &[data-error=\"true\"] {\n color: var(--color-destructive);\n }\n }\n .data-\\[leave\\]\\:duration-200 {\n &[data-leave] {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .data-\\[leave\\]\\:ease-in {\n &[data-leave] {\n --tw-ease: var(--ease-in);\n transition-timing-function: var(--ease-in);\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--color-muted-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=active\\]\\:border-b-primary {\n &[data-state=\"active\"] {\n border-bottom-color: var(--color-primary);\n }\n }\n .data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: var(--color-background);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-none {\n &[data-state=\"active\"] {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-sm {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\] {\n &[data-state=\"checked\"] {\n --tw-translate-x: calc(100% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:border-black {\n &[data-state=\"checked\"] {\n border-color: var(--color-black);\n }\n }\n .data-\\[state\\=checked\\]\\:border-blue-600 {\n &[data-state=\"checked\"] {\n border-color: var(--color-blue-600);\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--color-primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-black {\n &[data-state=\"checked\"] {\n background-color: var(--color-black);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-blue-600 {\n &[data-state=\"checked\"] {\n background-color: var(--color-blue-600);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--color-primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--color-primary-foreground);\n }\n }\n .data-\\[state\\=checked\\]\\:text-white {\n &[data-state=\"checked\"] {\n color: var(--color-white);\n }\n }\n .data-\\[state\\=closed\\]\\:duration-300 {\n &[data-state=\"closed\"] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--color-accent);\n }\n }\n .data-\\[state\\=open\\]\\:bg-secondary {\n &[data-state=\"open\"] {\n background-color: var(--color-secondary);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--color-muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:opacity-100 {\n &[data-state=\"open\"] {\n opacity: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:duration-500 {\n &[data-state=\"open\"] {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n }\n .data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: var(--color-muted);\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-0 {\n &[data-state=\"unchecked\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=unchecked\\]\\:bg-input {\n &[data-state=\"unchecked\"] {\n background-color: var(--color-input);\n }\n }\n .max-\\[800px\\]\\:mx-auto {\n @media (width < 800px) {\n margin-inline: auto;\n }\n }\n .max-\\[800px\\]\\:mb-9 {\n @media (width < 800px) {\n margin-bottom: calc(var(--spacing) * 9);\n }\n }\n .max-\\[800px\\]\\:w-full {\n @media (width < 800px) {\n width: 100%;\n }\n }\n .max-\\[800px\\]\\:px-\\[22px\\] {\n @media (width < 800px) {\n padding-inline: 22px;\n }\n }\n .max-\\[800px\\]\\:py-9 {\n @media (width < 800px) {\n padding-block: calc(var(--spacing) * 9);\n }\n }\n .sm\\:col-span-2 {\n @media (width >= 40rem) {\n grid-column: span 2 / span 2;\n }\n }\n .sm\\:col-span-3 {\n @media (width >= 40rem) {\n grid-column: span 3 / span 3;\n }\n }\n .sm\\:-mx-6 {\n @media (width >= 40rem) {\n margin-inline: calc(var(--spacing) * -6);\n }\n }\n .sm\\:my-8 {\n @media (width >= 40rem) {\n margin-block: calc(var(--spacing) * 8);\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:mt-10 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 10);\n }\n }\n .sm\\:mb-1 {\n @media (width >= 40rem) {\n margin-bottom: calc(var(--spacing) * 1);\n }\n }\n .sm\\:ml-4 {\n @media (width >= 40rem) {\n margin-left: calc(var(--spacing) * 4);\n }\n }\n .sm\\:ml-8 {\n @media (width >= 40rem) {\n margin-left: calc(var(--spacing) * 8);\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:flex {\n @media (width >= 40rem) {\n display: flex;\n }\n }\n .sm\\:grid {\n @media (width >= 40rem) {\n display: grid;\n }\n }\n .sm\\:hidden {\n @media (width >= 40rem) {\n display: none;\n }\n }\n .sm\\:size-4 {\n @media (width >= 40rem) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .sm\\:w-full {\n @media (width >= 40rem) {\n width: 100%;\n }\n }\n .sm\\:max-w-1\\/2 {\n @media (width >= 40rem) {\n max-width: calc(1/2 * 100%);\n }\n }\n .sm\\:max-w-2xl {\n @media (width >= 40rem) {\n max-width: var(--container-2xl);\n }\n }\n .sm\\:max-w-\\[425px\\] {\n @media (width >= 40rem) {\n max-width: 425px;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n .sm\\:grid-cols-3 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .sm\\:grid-cols-6 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:flex-row-reverse {\n @media (width >= 40rem) {\n flex-direction: row-reverse;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:\\!justify-start {\n @media (width >= 40rem) {\n justify-content: flex-start !important;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:justify-start {\n @media (width >= 40rem) {\n justify-content: flex-start;\n }\n }\n .sm\\:gap-2\\.5 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .sm\\:truncate {\n @media (width >= 40rem) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .sm\\:rounded-lg {\n @media (width >= 40rem) {\n border-radius: var(--radius-lg);\n }\n }\n .sm\\:p-0 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 0);\n }\n }\n .sm\\:p-6 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .sm\\:px-0 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 0);\n }\n }\n .sm\\:px-6 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 6);\n }\n }\n .sm\\:px-8 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .sm\\:py-4 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 4);\n }\n }\n .sm\\:py-32 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 32);\n }\n }\n .sm\\:pr-0 {\n @media (width >= 40rem) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .sm\\:pl-0 {\n @media (width >= 40rem) {\n padding-left: calc(var(--spacing) * 0);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .sm\\:text-2xl {\n @media (width >= 40rem) {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n }\n .sm\\:text-7xl {\n @media (width >= 40rem) {\n font-size: var(--text-7xl);\n line-height: var(--tw-leading, var(--text-7xl--line-height));\n }\n }\n .sm\\:text-sm\\/6 {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: calc(var(--spacing) * 6);\n }\n }\n .sm\\:text-xl {\n @media (width >= 40rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n .sm\\:text-xl\\/8 {\n @media (width >= 40rem) {\n font-size: var(--text-xl);\n line-height: calc(var(--spacing) * 8);\n }\n }\n .sm\\:tracking-tight {\n @media (width >= 40rem) {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n }\n .data-\\[closed\\]\\:sm\\:translate-y-0 {\n &[data-closed] {\n @media (width >= 40rem) {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[closed\\]\\:sm\\:scale-95 {\n &[data-closed] {\n @media (width >= 40rem) {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .md\\:ml-12 {\n @media (width >= 48rem) {\n margin-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:hidden {\n @media (width >= 48rem) {\n display: none;\n }\n }\n .md\\:flex-1 {\n @media (width >= 48rem) {\n flex: 1;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:justify-between {\n @media (width >= 48rem) {\n justify-content: space-between;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:opacity-0 {\n @media (width >= 48rem) {\n opacity: 0%;\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:m-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin: calc(var(--spacing) * 2);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:ml-0 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin-left: calc(var(--spacing) * 0);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n border-radius: var(--radius-xl);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ml-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n &:is(:where(.peer)[data-state=\"collapsed\"] ~ *) {\n margin-left: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .md\\:after\\:hidden {\n @media (width >= 48rem) {\n &::after {\n content: var(--tw-content);\n display: none;\n }\n }\n }\n .lg\\:fixed {\n @media (width >= 64rem) {\n position: fixed;\n }\n }\n .lg\\:inset-y-0 {\n @media (width >= 64rem) {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .lg\\:z-50 {\n @media (width >= 64rem) {\n z-index: 50;\n }\n }\n .lg\\:-mx-8 {\n @media (width >= 64rem) {\n margin-inline: calc(var(--spacing) * -8);\n }\n }\n .lg\\:ml-16 {\n @media (width >= 64rem) {\n margin-left: calc(var(--spacing) * 16);\n }\n }\n .lg\\:flex {\n @media (width >= 64rem) {\n display: flex;\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:w-72 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 72);\n }\n }\n .lg\\:w-full {\n @media (width >= 64rem) {\n width: 100%;\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:flex-col {\n @media (width >= 64rem) {\n flex-direction: column;\n }\n }\n .lg\\:justify-between {\n @media (width >= 64rem) {\n justify-content: space-between;\n }\n }\n .lg\\:justify-end {\n @media (width >= 64rem) {\n justify-content: flex-end;\n }\n }\n .lg\\:px-8 {\n @media (width >= 64rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .lg\\:pl-72 {\n @media (width >= 64rem) {\n padding-left: calc(var(--spacing) * 72);\n }\n }\n .xl\\:ml-20 {\n @media (width >= 80rem) {\n margin-left: calc(var(--spacing) * 20);\n }\n }\n .xl\\:gap-x-8 {\n @media (width >= 80rem) {\n column-gap: calc(var(--spacing) * 8);\n }\n }\n .\\32 xl\\:ml-24 {\n @media (width >= 96rem) {\n margin-left: calc(var(--spacing) * 24);\n }\n }\n .\\@max-md\\:hidden {\n @container (width < 28rem) {\n display: none;\n }\n }\n .\\@max-md\\:grid-cols-1 {\n @container (width < 28rem) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n }\n .dark\\:border-input {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-input);\n }\n }\n .dark\\:bg-destructive\\/60 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, #dc2626 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent);\n }\n }\n }\n .dark\\:bg-gray-900 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--color-gray-900);\n }\n }\n .dark\\:bg-input\\/30 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, #e4e4e7 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 30%, transparent);\n }\n }\n }\n .dark\\:hover\\:bg-accent\\/50 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:bg-input\\/50 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #e4e4e7 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &:focus-visible {\n --tw-ring-color: color-mix(in srgb, #dc2626 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:has-\\[\\[aria-checked\\=true\\]\\]\\:border-blue-900 {\n @media (prefers-color-scheme: dark) {\n &:has(*:is([aria-checked=true])) {\n border-color: var(--color-blue-900);\n }\n }\n }\n .dark\\:has-\\[\\[aria-checked\\=true\\]\\]\\:bg-blue-950 {\n @media (prefers-color-scheme: dark) {\n &:has(*:is([aria-checked=true])) {\n background-color: var(--color-blue-950);\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in srgb, #dc2626 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:border-blue-700 {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n border-color: var(--color-blue-700);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-blue-700 {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n background-color: var(--color-blue-700);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n background-color: var(--color-primary);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n background-color: var(--color-primary-foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80 {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"unchecked\"] {\n background-color: color-mix(in srgb, #e4e4e7 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 80%, transparent);\n }\n }\n }\n }\n .\\[\\&_\\:is\\(h1\\,h2\\,h3\\)\\]\\:m-0 {\n & :is(h1,h2,h3) {\n margin: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&_h2\\]\\:mt-\\[1em\\] {\n & h2 {\n margin-top: 1em;\n }\n }\n .\\[\\&_h2\\]\\:text-lg {\n & h2 {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n }\n .\\[\\&_h2\\,\\&_h3\\]\\:mt-\\[1em\\] {\n & h2,& h3 {\n margin-top: 1em;\n }\n }\n .\\[\\&_hr\\]\\:my-\\[1em\\] {\n & hr {\n margin-block: 1em;\n }\n }\n .\\[\\&_p\\+p\\]\\:mt-\\[1em\\] {\n & p+p {\n margin-top: 1em;\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:size-4 {\n & svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .\\[\\&_ul\\]\\:list-inside {\n & ul {\n list-style-position: inside;\n }\n }\n .\\[\\&_ul\\]\\:list-disc {\n & ul {\n list-style-type: disc;\n }\n }\n .\\[\\&_ul\\]\\:pl-4 {\n & ul {\n padding-left: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden {\n &::-webkit-scrollbar {\n display: none;\n }\n }\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n .\\[\\.border-t\\]\\:pt-6 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 6);\n }\n }\n .\\[\\&\\>button\\]\\:hidden {\n &>button {\n display: none;\n }\n }\n .\\[\\&\\>span\\]\\:line-clamp-1 {\n &>span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n .\\[\\&\\>span\\:last-child\\]\\:truncate {\n &>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .\\[\\&\\>svg\\]\\:pointer-events-none {\n &>svg {\n pointer-events: none;\n }\n }\n .\\[\\&\\>svg\\]\\:size-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:size-4 {\n &>svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>svg\\]\\:h-3\\.5 {\n &>svg {\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:w-3\\.5 {\n &>svg {\n width: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:shrink-0 {\n &>svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n .\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180 {\n &[data-state=open]>svg {\n rotate: 180deg;\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2 {\n [data-side=left][data-collapsible=offcanvas] & {\n right: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize {\n [data-side=left][data-state=collapsed] & {\n cursor: e-resize;\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2 {\n [data-side=right][data-collapsible=offcanvas] & {\n left: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize {\n [data-side=right][data-state=collapsed] & {\n cursor: w-resize;\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-accent);\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-destructive\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #dc2626 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-primary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #18181b 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-secondary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:text-accent-foreground {\n a& {\n &:hover {\n @media (hover: hover) {\n color: var(--color-accent-foreground);\n }\n }\n }\n }\n}\n@layer base {\n :root,\n :host {\n font-family: 'Inter', sans-serif;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scroll-snap-strictness {\n syntax: \"*\";\n inherits: false;\n initial-value: proximity;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"<color>\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"<color>\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"<color>\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"<length-percentage>\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"<length-percentage>\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"<length-percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-scroll-snap-strictness: proximity;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: \"\";\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n";
|
|
2324
|
+
var css_248z = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-800: oklch(44.4% 0.177 26.899);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-orange-50: #f25c2b;\n --color-orange-100: #520c03;\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-yellow-700: oklch(55.4% 0.135 66.442);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-400: oklch(79.2% 0.209 151.711);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-green-900: oklch(39.3% 0.095 152.535);\n --color-cyan-500: oklch(71.5% 0.143 215.221);\n --color-blue-50: #3b82f6;\n --color-blue-100: #172554;\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n --color-violet-200: oklch(89.4% 0.057 293.283);\n --color-violet-600: oklch(54.1% 0.281 293.009);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-800: oklch(45.9% 0.187 3.815);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-950: oklch(12.9% 0.042 264.695);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-neutral-50: #8799af;\n --color-neutral-100: #172a41;\n --color-neutral-600: oklch(43.9% 0 0);\n --color-neutral-950: oklch(14.5% 0 0);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-xl: 36rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-normal: 1.5;\n --radius-xs: 0.125rem;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --blur-sm: 8px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: #18181b;\n --color-primary-foreground: #fafafa;\n --color-secondary: #f4f4f5;\n --color-secondary-foreground: #18181b;\n --color-destructive: #dc2626;\n --color-destructive-foreground: #fef2f2;\n --color-background: #ffffff;\n --color-input: #e4e4e7;\n --color-accent: #f4f4f5;\n --color-accent-foreground: #18181b;\n --color-card: #ffffff;\n --color-card-foreground: #09090b;\n --color-border: #e4e4e7;\n --color-sidebar-ring: #a1a1aa;\n --color-muted: #f7f7f6;\n --color-muted-foreground: #74716e;\n --color-orange-10: #fff3e6;\n --color-orange-20: #ffdfbf;\n --color-orange-30: #ffb47f;\n --color-orange-40: #ff8446;\n --color-orange-60: #cd4b27;\n --color-orange-70: #b03719;\n --color-orange-80: #892c0f;\n --color-orange-90: #61170d;\n --color-neutral-10: #f1f4f8;\n --color-neutral-20: #dbe2eb;\n --color-neutral-30: #bfccda;\n --color-neutral-40: #a3b2c6;\n --color-neutral-60: #677c95;\n --color-neutral-70: #4e647f;\n --color-neutral-80: #394d66;\n --color-neutral-90: #293b51;\n --color-blue-10: #dbeafe;\n --color-blue-20: #bfdbfe;\n --color-blue-30: #93c5fd;\n --color-blue-40: #60a5fa;\n --color-blue-60: #2563eb;\n --color-blue-70: #1d4ed8;\n --color-blue-80: #1e40af;\n --color-blue-90: #1e3a8a;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n .\\@container {\n container-type: inline-size;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .collapse {\n visibility: collapse;\n }\n .invisible {\n visibility: hidden;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-6 {\n top: calc(var(--spacing) * 6);\n }\n .top-\\[15px\\] {\n top: 15px;\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-5 {\n right: calc(var(--spacing) * 5);\n }\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n .right-30 {\n right: calc(var(--spacing) * 30);\n }\n .right-\\[14px\\] {\n right: 14px;\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-\\[-32px\\] {\n bottom: -32px;\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .left-\\[14px\\] {\n left: 14px;\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .left-full {\n left: 100%;\n }\n .isolate {\n isolation: isolate;\n }\n .z-5 {\n z-index: 5;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-40 {\n z-index: 40;\n }\n .z-50 {\n z-index: 50;\n }\n .z-55 {\n z-index: 55;\n }\n .order-123 {\n order: 123;\n }\n .col-span-1 {\n grid-column: span 1 / span 1;\n }\n .col-span-2 {\n grid-column: span 2 / span 2;\n }\n .col-span-6 {\n grid-column: span 6 / span 6;\n }\n .col-span-full {\n grid-column: 1 / -1;\n }\n .col-start-1 {\n grid-column-start: 1;\n }\n .col-start-2 {\n grid-column-start: 2;\n }\n .row-auto {\n grid-row: auto;\n }\n .row-span-2 {\n grid-row: span 2 / span 2;\n }\n .row-span-full {\n grid-row: 1 / -1;\n }\n .row-start-1 {\n grid-row-start: 1;\n }\n .float-left {\n float: left;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .-m-2\\.5 {\n margin: calc(var(--spacing) * -2.5);\n }\n .m-0 {\n margin: calc(var(--spacing) * 0);\n }\n .m-2 {\n margin: calc(var(--spacing) * 2);\n }\n .m-4 {\n margin: calc(var(--spacing) * 4);\n }\n .m-8 {\n margin: calc(var(--spacing) * 8);\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .-mx-1\\.5 {\n margin-inline: calc(var(--spacing) * -1.5);\n }\n .-mx-2 {\n margin-inline: calc(var(--spacing) * -2);\n }\n .-mx-4 {\n margin-inline: calc(var(--spacing) * -4);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-3\\.5 {\n margin-inline: calc(var(--spacing) * 3.5);\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .mx-\\[20px\\] {\n margin-inline: 20px;\n }\n .mx-auto {\n margin-inline: auto;\n }\n .-my-1\\.5 {\n margin-block: calc(var(--spacing) * -1.5);\n }\n .-my-2 {\n margin-block: calc(var(--spacing) * -2);\n }\n .-my-3 {\n margin-block: calc(var(--spacing) * -3);\n }\n .my-0 {\n margin-block: calc(var(--spacing) * 0);\n }\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * 0.5);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .my-2 {\n margin-block: calc(var(--spacing) * 2);\n }\n .my-3 {\n margin-block: calc(var(--spacing) * 3);\n }\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n .my-5 {\n margin-block: calc(var(--spacing) * 5);\n }\n .my-6 {\n margin-block: calc(var(--spacing) * 6);\n }\n .my-10 {\n margin-block: calc(var(--spacing) * 10);\n }\n .my-\\[10px\\] {\n margin-block: 10px;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n .mt-9 {\n margin-top: calc(var(--spacing) * 9);\n }\n .mt-10 {\n margin-top: calc(var(--spacing) * 10);\n }\n .mt-11 {\n margin-top: calc(var(--spacing) * 11);\n }\n .mt-30 {\n margin-top: calc(var(--spacing) * 30);\n }\n .mt-\\[-2px\\] {\n margin-top: -2px;\n }\n .mt-auto {\n margin-top: auto;\n }\n .-mr-px {\n margin-right: -1px;\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-3 {\n margin-right: calc(var(--spacing) * 3);\n }\n .mr-5 {\n margin-right: calc(var(--spacing) * 5);\n }\n .mr-16 {\n margin-right: calc(var(--spacing) * 16);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-5 {\n margin-bottom: calc(var(--spacing) * 5);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-7 {\n margin-bottom: calc(var(--spacing) * 7);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-\\[4px\\] {\n margin-bottom: 4px;\n }\n .mb-\\[24px\\] {\n margin-bottom: 24px;\n }\n .-ml-0\\.5 {\n margin-left: calc(var(--spacing) * -0.5);\n }\n .ml-0 {\n margin-left: calc(var(--spacing) * 0);\n }\n .ml-0\\.5 {\n margin-left: calc(var(--spacing) * 0.5);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .ml-3 {\n margin-left: calc(var(--spacing) * 3);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-5 {\n margin-left: calc(var(--spacing) * 5);\n }\n .ml-6 {\n margin-left: calc(var(--spacing) * 6);\n }\n .ml-10 {\n margin-left: calc(var(--spacing) * 10);\n }\n .ml-\\[28px\\] {\n margin-left: 28px;\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .block {\n display: block;\n }\n .contents {\n display: contents;\n }\n .flex {\n display: flex;\n }\n .flow-root {\n display: flow-root;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .list-item {\n display: list-item;\n }\n .table {\n display: table;\n }\n .table\\! {\n display: table !important;\n }\n .table-caption {\n display: table-caption;\n }\n .table-cell {\n display: table-cell;\n }\n .table-row {\n display: table-row;\n }\n .field-sizing-content {\n field-sizing: content;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-5 {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n }\n .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-12 {\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n }\n .size-full {\n width: 100%;\n height: 100%;\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-1 {\n height: calc(var(--spacing) * 1);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-4\\.5 {\n height: calc(var(--spacing) * 4.5);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-11 {\n height: calc(var(--spacing) * 11);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-30 {\n height: calc(var(--spacing) * 30);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-\\[1\\.15rem\\] {\n height: 1.15rem;\n }\n .h-\\[4px\\] {\n height: 4px;\n }\n .h-\\[12px\\] {\n height: 12px;\n }\n .h-\\[14px\\] {\n height: 14px;\n }\n .h-\\[15px\\] {\n height: 15px;\n }\n .h-\\[16px\\] {\n height: 16px;\n }\n .h-\\[20px\\] {\n height: 20px;\n }\n .h-\\[28px\\] {\n height: 28px;\n }\n .h-\\[32px\\] {\n height: 32px;\n }\n .h-\\[36px\\] {\n height: 36px;\n }\n .h-\\[64px\\] {\n height: 64px;\n }\n .h-\\[70px\\] {\n height: 70px;\n }\n .h-\\[108px\\] {\n height: 108px;\n }\n .h-\\[200px\\] {\n height: 200px;\n }\n .h-\\[320px\\] {\n height: 320px;\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-\\[628px\\] {\n height: 628px;\n }\n .h-\\[calc-size\\(max-content\\,size\\)\\] {\n height: calc-size(max-content,size);\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n .h-auto {\n height: auto;\n }\n .h-fit {\n height: fit-content;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .h-svh {\n height: 100svh;\n }\n .max-h-\\[--radix-select-content-available-height\\] {\n max-height: --radix-select-content-available-height;\n }\n .max-h-\\[40em\\] {\n max-height: 40em;\n }\n .max-h-\\[80vh\\] {\n max-height: 80vh;\n }\n .max-h-\\[206px\\] {\n max-height: 206px;\n }\n .max-h-\\[612px\\] {\n max-height: 612px;\n }\n .max-h-\\[700px\\] {\n max-height: 700px;\n }\n .max-h-\\[var\\(--radix-dropdown-menu-content-available-height\\)\\] {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-16 {\n min-height: calc(var(--spacing) * 16);\n }\n .min-h-\\[32px\\] {\n min-height: 32px;\n }\n .min-h-\\[48px\\] {\n min-height: 48px;\n }\n .min-h-\\[532px\\] {\n min-height: 532px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .min-h-svh {\n min-height: 100svh;\n }\n .w-\\(--sidebar-width\\) {\n width: var(--sidebar-width);\n }\n .w-0\\.5 {\n width: calc(var(--spacing) * 0.5);\n }\n .w-1\\/2 {\n width: calc(1/2 * 100%);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3\\/4 {\n width: calc(3/4 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-4\\.5 {\n width: calc(var(--spacing) * 4.5);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-11 {\n width: calc(var(--spacing) * 11);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-13 {\n width: calc(var(--spacing) * 13);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n .w-40 {\n width: calc(var(--spacing) * 40);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-55 {\n width: calc(var(--spacing) * 55);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-106 {\n width: calc(var(--spacing) * 106);\n }\n .w-240 {\n width: calc(var(--spacing) * 240);\n }\n .w-\\[1px\\] {\n width: 1px;\n }\n .w-\\[12px\\] {\n width: 12px;\n }\n .w-\\[14px\\] {\n width: 14px;\n }\n .w-\\[16px\\] {\n width: 16px;\n }\n .w-\\[20px\\] {\n width: 20px;\n }\n .w-\\[45\\%\\] {\n width: 45%;\n }\n .w-\\[50px\\] {\n width: 50px;\n }\n .w-\\[64px\\] {\n width: 64px;\n }\n .w-\\[70px\\] {\n width: 70px;\n }\n .w-\\[75px\\] {\n width: 75px;\n }\n .w-\\[100px\\] {\n width: 100px;\n }\n .w-\\[120px\\] {\n width: 120px;\n }\n .w-\\[145px\\] {\n width: 145px;\n }\n .w-\\[150px\\] {\n width: 150px;\n }\n .w-\\[180px\\] {\n width: 180px;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[220px\\] {\n width: 220px;\n }\n .w-\\[250px\\] {\n width: 250px;\n }\n .w-\\[333px\\] {\n width: 333px;\n }\n .w-\\[370px\\] {\n width: 370px;\n }\n .w-\\[428px\\] {\n width: 428px;\n }\n .w-\\[484px\\] {\n width: 484px;\n }\n .w-\\[500px\\] {\n width: 500px;\n }\n .w-\\[526px\\] {\n width: 526px;\n }\n .w-\\[1080px\\] {\n width: 1080px;\n }\n .w-auto {\n width: auto;\n }\n .w-auto\\! {\n width: auto !important;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-min {\n width: min-content;\n }\n .w-screen {\n width: 100vw;\n }\n .\\!max-w-\\[860px\\] {\n max-width: 860px !important;\n }\n .\\!max-w-none {\n max-width: none !important;\n }\n .max-w-\\(--skeleton-width\\) {\n max-width: var(--skeleton-width);\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-5xl {\n max-width: var(--container-5xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-7xl {\n max-width: var(--container-7xl);\n }\n .max-w-\\[100\\%\\] {\n max-width: 100%;\n }\n .max-w-\\[177px\\] {\n max-width: 177px;\n }\n .max-w-\\[200px\\] {\n max-width: 200px;\n }\n .max-w-\\[354px\\] {\n max-width: 354px;\n }\n .max-w-\\[450px\\] {\n max-width: 450px;\n }\n .max-w-\\[573px\\] {\n max-width: 573px;\n }\n .max-w-\\[688px\\] {\n max-width: 688px;\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-lg {\n max-width: var(--container-lg);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-sm {\n max-width: var(--container-sm);\n }\n .max-w-xl {\n max-width: var(--container-xl);\n }\n .max-w-xs {\n max-width: var(--container-xs);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-5 {\n min-width: calc(var(--spacing) * 5);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[85px\\] {\n min-width: 85px;\n }\n .min-w-\\[120px\\] {\n min-width: 120px;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .min-w-\\[220px\\] {\n min-width: 220px;\n }\n .min-w-\\[270px\\] {\n min-width: 270px;\n }\n .min-w-\\[700px\\] {\n min-width: 700px;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .min-w-fit {\n min-width: fit-content;\n }\n .min-w-full {\n min-width: 100%;\n }\n .min-w-max {\n min-width: max-content;\n }\n .min-w-xs {\n min-width: var(--container-xs);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-2 {\n flex: 2;\n }\n .flex-\\[0\\] {\n flex: 0;\n }\n .flex-auto {\n flex: auto;\n }\n .flex-none {\n flex: none;\n }\n .\\!shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .\\!grow-0 {\n flex-grow: 0 !important;\n }\n .flex-grow {\n flex-grow: 1;\n }\n .grow {\n flex-grow: 1;\n }\n .\\!basis-auto {\n flex-basis: auto !important;\n }\n .table-auto {\n table-layout: auto;\n }\n .caption-bottom {\n caption-side: bottom;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .origin-\\(--radix-tooltip-content-transform-origin\\) {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n .origin-\\[--radix-dropdown-menu-content-transform-origin\\] {\n transform-origin: --radix-dropdown-menu-content-transform-origin;\n }\n .origin-\\[--radix-popover-content-transform-origin\\] {\n transform-origin: --radix-popover-content-transform-origin;\n }\n .origin-\\[--radix-select-content-transform-origin\\] {\n transform-origin: --radix-select-content-transform-origin;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-px {\n --tw-translate-x: -1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-0 {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-full {\n --tw-translate-x: 100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-px {\n --tw-translate-x: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0\\.5 {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .\\!cursor-default {\n cursor: default !important;\n }\n .cursor-crosshair {\n cursor: crosshair;\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .touch-none {\n touch-action: none;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .snap-x {\n scroll-snap-type: x var(--tw-scroll-snap-strictness);\n }\n .snap-mandatory {\n --tw-scroll-snap-strictness: mandatory;\n }\n .list-inside {\n list-style-position: inside;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-flow-row {\n grid-auto-flow: row;\n }\n .auto-rows-min {\n grid-auto-rows: min-content;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n .grid-cols-\\[1fr_auto\\] {\n grid-template-columns: 1fr auto;\n }\n .grid-cols-\\[1fr_auto_auto\\] {\n grid-template-columns: 1fr auto auto;\n }\n .grid-cols-\\[1fr_auto_auto_auto\\] {\n grid-template-columns: 1fr auto auto auto;\n }\n .grid-cols-subgrid {\n grid-template-columns: subgrid;\n }\n .grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n .grid-rows-\\[repeat\\(6\\,auto\\)\\] {\n grid-template-rows: repeat(6,auto);\n }\n .grid-rows-subgrid {\n grid-template-rows: subgrid;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .place-items-center {\n place-items: center;\n }\n .\\!items-start {\n align-items: flex-start !important;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .\\!justify-start {\n justify-content: flex-start !important;\n }\n .justify-around {\n justify-content: space-around;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-stretch {\n justify-content: stretch;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .gap-10 {\n gap: calc(var(--spacing) * 10);\n }\n .gap-25 {\n gap: calc(var(--spacing) * 25);\n }\n .gap-\\[2px\\] {\n gap: 2px;\n }\n .gap-\\[4px\\] {\n gap: 4px;\n }\n .gap-\\[8px\\] {\n gap: 8px;\n }\n .gap-\\[10px\\] {\n gap: 10px;\n }\n .gap-\\[20px\\] {\n gap: 20px;\n }\n .gap-\\[48px\\] {\n gap: 48px;\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .gap-x-1\\.5 {\n column-gap: calc(var(--spacing) * 1.5);\n }\n .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n .gap-x-2\\.5 {\n column-gap: calc(var(--spacing) * 2.5);\n }\n .gap-x-3 {\n column-gap: calc(var(--spacing) * 3);\n }\n .gap-x-4 {\n column-gap: calc(var(--spacing) * 4);\n }\n .gap-x-6 {\n column-gap: calc(var(--spacing) * 6);\n }\n .gap-x-12 {\n column-gap: calc(var(--spacing) * 12);\n }\n .-space-x-px {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(-1px * var(--tw-space-x-reverse));\n margin-inline-end: calc(-1px * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-3 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-4 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-5 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .space-x-6 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 6) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .gap-y-2 {\n row-gap: calc(var(--spacing) * 2);\n }\n .gap-y-4 {\n row-gap: calc(var(--spacing) * 4);\n }\n .gap-y-5 {\n row-gap: calc(var(--spacing) * 5);\n }\n .gap-y-7 {\n row-gap: calc(var(--spacing) * 7);\n }\n .gap-y-8 {\n row-gap: calc(var(--spacing) * 8);\n }\n .divide-y {\n :where(& > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n }\n .divide-gray-100 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-gray-100);\n }\n }\n .divide-gray-200 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-gray-200);\n }\n }\n .divide-gray-300 {\n :where(& > :not(:last-child)) {\n border-color: var(--color-gray-300);\n }\n }\n .self-center {\n align-self: center;\n }\n .self-start {\n align-self: flex-start;\n }\n .justify-self-end {\n justify-self: flex-end;\n }\n .justify-self-start {\n justify-self: flex-start;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .rounded-\\[10px\\] {\n border-radius: 10px;\n }\n .rounded-\\[100\\%\\] {\n border-radius: 100%;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-t {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n .rounded-l-md {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n .rounded-l-none {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .rounded-r-md {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n .rounded-r-none {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-1 {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-3 {\n border-style: var(--tw-border-style);\n border-width: 3px;\n }\n .border-\\[0\\.5\\] {\n border-style: var(--tw-border-style);\n border-width: 0.5;\n }\n .border-\\[0\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 0.5px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-t-1 {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-1 {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-1 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-b-3 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 3px;\n }\n .border-b-\\[0\\.5px\\] {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0.5px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-black {\n border-color: var(--color-black);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-600 {\n border-color: var(--color-blue-600);\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n .border-gray-900\\/5 {\n border-color: color-mix(in srgb, oklch(21% 0.034 264.665) 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-gray-900) 5%, transparent);\n }\n }\n .border-gray-900\\/25 {\n border-color: color-mix(in srgb, oklch(21% 0.034 264.665) 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-gray-900) 25%, transparent);\n }\n }\n .border-green-500 {\n border-color: var(--color-green-500);\n }\n .border-input {\n border-color: var(--color-input);\n }\n .border-neutral-20 {\n border-color: var(--color-neutral-20);\n }\n .border-neutral-40 {\n border-color: var(--color-neutral-40);\n }\n .border-orange-200 {\n border-color: var(--color-orange-200);\n }\n .border-primary {\n border-color: var(--color-primary);\n }\n .border-primary\\/50 {\n border-color: color-mix(in srgb, #18181b 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-primary) 50%, transparent);\n }\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .border-red-600 {\n border-color: var(--color-red-600);\n }\n .border-sidebar-ring {\n border-color: var(--color-sidebar-ring);\n }\n .border-slate-300 {\n border-color: var(--color-slate-300);\n }\n .border-slate-400 {\n border-color: var(--color-slate-400);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-200 {\n border-color: var(--color-yellow-200);\n }\n .border-b-transparent {\n border-bottom-color: transparent;\n }\n .\\!bg-\\[\\#1877F2\\] {\n background-color: #1877F2 !important;\n }\n .\\!bg-\\[\\#ff7a59\\] {\n background-color: #ff7a59 !important;\n }\n .bg-\\[\\#0001\\] {\n background-color: #0001;\n }\n .bg-\\[\\#fffa\\] {\n background-color: #fffa;\n }\n .bg-\\[\\#ffffff\\] {\n background-color: #ffffff;\n }\n .bg-accent {\n background-color: var(--color-accent);\n }\n .bg-background {\n background-color: var(--color-background);\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-10 {\n background-color: var(--color-blue-10);\n }\n .bg-blue-20 {\n background-color: var(--color-blue-20);\n }\n .bg-blue-30 {\n background-color: var(--color-blue-30);\n }\n .bg-blue-40 {\n background-color: var(--color-blue-40);\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-60 {\n background-color: var(--color-blue-60);\n }\n .bg-blue-70 {\n background-color: var(--color-blue-70);\n }\n .bg-blue-80 {\n background-color: var(--color-blue-80);\n }\n .bg-blue-90 {\n background-color: var(--color-blue-90);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-200 {\n background-color: var(--color-blue-200);\n }\n .bg-blue-300 {\n background-color: var(--color-blue-300);\n }\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n .bg-border {\n background-color: var(--color-border);\n }\n .bg-card {\n background-color: var(--color-card);\n }\n .bg-destructive {\n background-color: var(--color-destructive);\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n .bg-gray-300 {\n background-color: var(--color-gray-300);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-gray-500\\/75 {\n background-color: color-mix(in srgb, oklch(55.1% 0.027 264.364) 75%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-gray-500) 75%, transparent);\n }\n }\n .bg-gray-900\\/80 {\n background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-gray-900) 80%, transparent);\n }\n }\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-green-600 {\n background-color: var(--color-green-600);\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-muted\\/50 {\n background-color: color-mix(in srgb, #f7f7f6 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);\n }\n }\n .bg-neutral-10 {\n background-color: var(--color-neutral-10);\n }\n .bg-neutral-20 {\n background-color: var(--color-neutral-20);\n }\n .bg-neutral-30 {\n background-color: var(--color-neutral-30);\n }\n .bg-neutral-40 {\n background-color: var(--color-neutral-40);\n }\n .bg-neutral-50 {\n background-color: var(--color-neutral-50);\n }\n .bg-neutral-60 {\n background-color: var(--color-neutral-60);\n }\n .bg-neutral-70 {\n background-color: var(--color-neutral-70);\n }\n .bg-neutral-80 {\n background-color: var(--color-neutral-80);\n }\n .bg-neutral-90 {\n background-color: var(--color-neutral-90);\n }\n .bg-neutral-100 {\n background-color: var(--color-neutral-100);\n }\n .bg-neutral-950 {\n background-color: var(--color-neutral-950);\n }\n .bg-orange-10 {\n background-color: var(--color-orange-10);\n }\n .bg-orange-20 {\n background-color: var(--color-orange-20);\n }\n .bg-orange-30 {\n background-color: var(--color-orange-30);\n }\n .bg-orange-40 {\n background-color: var(--color-orange-40);\n }\n .bg-orange-50 {\n background-color: var(--color-orange-50);\n }\n .bg-orange-60 {\n background-color: var(--color-orange-60);\n }\n .bg-orange-70 {\n background-color: var(--color-orange-70);\n }\n .bg-orange-80 {\n background-color: var(--color-orange-80);\n }\n .bg-orange-90 {\n background-color: var(--color-orange-90);\n }\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n .bg-pink-100 {\n background-color: var(--color-pink-100);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-purple-600 {\n background-color: var(--color-purple-600);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-300 {\n background-color: var(--color-red-300);\n }\n .bg-red-600 {\n background-color: var(--color-red-600);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-violet-200 {\n background-color: var(--color-violet-200);\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n .bg-yellow-100 {\n background-color: var(--color-yellow-100);\n }\n .bg-yellow-600 {\n background-color: var(--color-yellow-600);\n }\n .bg-yellow-900 {\n background-color: var(--color-yellow-900);\n }\n .bg-linear-to-r {\n --tw-gradient-position: to right;\n @supports (background-image: linear-gradient(in lab, red, red)) {\n --tw-gradient-position: to right in oklab;\n }\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-b {\n --tw-gradient-position: to bottom in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-t {\n --tw-gradient-position: to top in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-\\[linear-gradient\\(90deg\\,\\#FF0000\\,\\#FFFF00\\,\\#00FF00\\,\\#00FFFF\\,\\#0000FF\\,\\#FF00FF\\,\\#FF0000\\)\\] {\n background-image: linear-gradient(90deg,#FF0000,#FFFF00,#00FF00,#00FFFF,#0000FF,#FF00FF,#FF0000);\n }\n .bg-none {\n background-image: none;\n }\n .from-\\[\\#2B5876\\] {\n --tw-gradient-from: #2B5876;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-cyan-500 {\n --tw-gradient-from: var(--color-cyan-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-transparent {\n --tw-gradient-from: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-white {\n --tw-gradient-from: var(--color-white);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-\\[\\#4E4376\\] {\n --tw-gradient-to: #4E4376;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-black\\/50 {\n --tw-gradient-to: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-blue-500 {\n --tw-gradient-to: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-transparent {\n --tw-gradient-to: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-cover {\n background-size: cover;\n }\n .bg-center {\n background-position: center;\n }\n .fill-blue-500 {\n fill: var(--color-blue-500);\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-green-500 {\n fill: var(--color-green-500);\n }\n .fill-primary {\n fill: var(--color-primary);\n }\n .fill-red-500 {\n fill: var(--color-red-500);\n }\n .fill-slate-500 {\n fill: var(--color-slate-500);\n }\n .stroke-slate-500 {\n stroke: var(--color-slate-500);\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .object-center {\n object-position: center;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-7 {\n padding: calc(var(--spacing) * 7);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .p-10 {\n padding: calc(var(--spacing) * 10);\n }\n .p-16 {\n padding: calc(var(--spacing) * 16);\n }\n .p-1234 {\n padding: calc(var(--spacing) * 1234);\n }\n .p-4321 {\n padding: calc(var(--spacing) * 4321);\n }\n .p-9999 {\n padding: calc(var(--spacing) * 9999);\n }\n .p-\\[12px\\] {\n padding: 12px;\n }\n .p-\\[20px\\] {\n padding: 20px;\n }\n .px-0 {\n padding-inline: calc(var(--spacing) * 0);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-7 {\n padding-inline: calc(var(--spacing) * 7);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .px-11 {\n padding-inline: calc(var(--spacing) * 11);\n }\n .px-16 {\n padding-inline: calc(var(--spacing) * 16);\n }\n .px-20 {\n padding-inline: calc(var(--spacing) * 20);\n }\n .px-\\[10px\\] {\n padding-inline: 10px;\n }\n .px-\\[18px\\] {\n padding-inline: 18px;\n }\n .px-\\[20px\\] {\n padding-inline: 20px;\n }\n .px-\\[30px\\] {\n padding-inline: 30px;\n }\n .px-\\[40px\\] {\n padding-inline: 40px;\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-3\\.5 {\n padding-block: calc(var(--spacing) * 3.5);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-5 {\n padding-block: calc(var(--spacing) * 5);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-9 {\n padding-block: calc(var(--spacing) * 9);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-22 {\n padding-block: calc(var(--spacing) * 22);\n }\n .py-24 {\n padding-block: calc(var(--spacing) * 24);\n }\n .py-\\[8px\\] {\n padding-block: 8px;\n }\n .py-\\[20px\\] {\n padding-block: 20px;\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pt-0\\.5 {\n padding-top: calc(var(--spacing) * 0.5);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-5 {\n padding-top: calc(var(--spacing) * 5);\n }\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n .pt-10 {\n padding-top: calc(var(--spacing) * 10);\n }\n .pt-11 {\n padding-top: calc(var(--spacing) * 11);\n }\n .pt-16 {\n padding-top: calc(var(--spacing) * 16);\n }\n .pr-0 {\n padding-right: calc(var(--spacing) * 0);\n }\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-5 {\n padding-right: calc(var(--spacing) * 5);\n }\n .pr-6 {\n padding-right: calc(var(--spacing) * 6);\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pr-9 {\n padding-right: calc(var(--spacing) * 9);\n }\n .pb-0 {\n padding-bottom: calc(var(--spacing) * 0);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-5 {\n padding-bottom: calc(var(--spacing) * 5);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-15 {\n padding-bottom: calc(var(--spacing) * 15);\n }\n .pl-0 {\n padding-left: calc(var(--spacing) * 0);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-3\\.5 {\n padding-left: calc(var(--spacing) * 3.5);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .pl-11 {\n padding-left: calc(var(--spacing) * 11);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-start {\n text-align: start;\n }\n .align-baseline {\n vertical-align: baseline;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-mono {\n font-family: var(--font-mono);\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-sm\\/6 {\n font-size: var(--text-sm);\n line-height: calc(var(--spacing) * 6);\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xl\\/7 {\n font-size: var(--text-xl);\n line-height: calc(var(--spacing) * 7);\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-xs\\/5 {\n font-size: var(--text-xs);\n line-height: calc(var(--spacing) * 5);\n }\n .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n .text-\\[0\\.85em\\] {\n font-size: 0.85em;\n }\n .text-\\[12px\\] {\n font-size: 12px;\n }\n .text-\\[14px\\] {\n font-size: 14px;\n }\n .text-\\[18px\\] {\n font-size: 18px;\n }\n .text-\\[28px\\] {\n font-size: 28px;\n }\n .leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(var(--spacing) * 4);\n }\n .leading-5 {\n --tw-leading: calc(var(--spacing) * 5);\n line-height: calc(var(--spacing) * 5);\n }\n .leading-6 {\n --tw-leading: calc(var(--spacing) * 6);\n line-height: calc(var(--spacing) * 6);\n }\n .leading-7 {\n --tw-leading: calc(var(--spacing) * 7);\n line-height: calc(var(--spacing) * 7);\n }\n .leading-8 {\n --tw-leading: calc(var(--spacing) * 8);\n line-height: calc(var(--spacing) * 8);\n }\n .leading-9 {\n --tw-leading: calc(var(--spacing) * 9);\n line-height: calc(var(--spacing) * 9);\n }\n .leading-\\[1\\] {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-\\[24px\\] {\n --tw-leading: 24px;\n line-height: 24px;\n }\n .leading-\\[36px\\] {\n --tw-leading: 36px;\n line-height: 36px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-balance {\n text-wrap: balance;\n }\n .text-pretty {\n text-wrap: pretty;\n }\n .text-wrap {\n text-wrap: wrap;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n .whitespace-normal {\n white-space: normal;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .\\!text-white {\n color: var(--color-white) !important;\n }\n .text-\\[\\#666\\] {\n color: #666;\n }\n .text-\\[rgba\\(17\\,17\\,17\\,0\\.32\\)\\] {\n color: rgba(17,17,17,0.32);\n }\n .text-accent-foreground {\n color: var(--color-accent-foreground);\n }\n .text-background {\n color: var(--color-background);\n }\n .text-black {\n color: var(--color-black);\n }\n .text-blue-50 {\n color: var(--color-blue-50);\n }\n .text-blue-300 {\n color: var(--color-blue-300);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-card-foreground {\n color: var(--color-card-foreground);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--color-destructive);\n }\n .text-destructive-foreground {\n color: var(--color-destructive-foreground);\n }\n .text-gray-300 {\n color: var(--color-gray-300);\n }\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n .text-green-400 {\n color: var(--color-green-400);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-neutral-70 {\n color: var(--color-neutral-70);\n }\n .text-neutral-80 {\n color: var(--color-neutral-80);\n }\n .text-neutral-100 {\n color: var(--color-neutral-100);\n }\n .text-neutral-600 {\n color: var(--color-neutral-600);\n }\n .text-neutral-950 {\n color: var(--color-neutral-950);\n }\n .text-orange-50 {\n color: var(--color-orange-50);\n }\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n .text-pink-800 {\n color: var(--color-pink-800);\n }\n .text-primary {\n color: var(--color-primary);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-purple-600 {\n color: var(--color-purple-600);\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-300 {\n color: var(--color-red-300);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-red-800 {\n color: var(--color-red-800);\n }\n .text-red-900 {\n color: var(--color-red-900);\n }\n .text-secondary-foreground {\n color: var(--color-secondary-foreground);\n }\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n .text-slate-950 {\n color: var(--color-slate-950);\n }\n .text-violet-600 {\n color: var(--color-violet-600);\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-400 {\n color: var(--color-yellow-400);\n }\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n .text-yellow-700 {\n color: var(--color-yellow-700);\n }\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n .text-yellow-900 {\n color: var(--color-yellow-900);\n }\n .capitalize {\n text-transform: capitalize;\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .no-underline {\n text-decoration-line: none;\n }\n .underline {\n text-decoration-line: underline;\n }\n .decoration-solid {\n text-decoration-style: solid;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .caret-red-600 {\n caret-color: var(--color-red-600);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow\\! {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;\n }\n .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_3px_10px_rgba\\(0\\,0\\,0\\,0\\.14\\)\\] {\n --tw-shadow: 0 3px 10px var(--tw-shadow-color, rgba(0,0,0,0.14));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-0 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-gray-300 {\n --tw-ring-color: var(--color-gray-300);\n }\n .ring-gray-900\\/10 {\n --tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-gray-900) 10%, transparent);\n }\n }\n .ring-sidebar-ring {\n --tw-ring-color: var(--color-sidebar-ring);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--color-background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-1 {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .-outline-offset-1 {\n outline-offset: calc(1px * -1);\n }\n .outline-gray-300 {\n outline-color: var(--color-gray-300);\n }\n .outline-red-300 {\n outline-color: var(--color-red-300);\n }\n .blur {\n --tw-blur: blur(8px);\n 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,);\n }\n .drop-shadow-md {\n --tw-drop-shadow-size: drop-shadow(0 3px 3px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.12)));\n --tw-drop-shadow: drop-shadow(var(--drop-shadow-md));\n 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,);\n }\n .invert {\n --tw-invert: invert(100%);\n 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,);\n }\n .\\!filter {\n 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,) !important;\n }\n .filter {\n 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,);\n }\n .filter\\! {\n 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,) !important;\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -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,);\n 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,);\n }\n .backdrop-filter {\n -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,);\n 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,);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[left\\,right\\,width\\] {\n transition-property: left,right,width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[margin\\,opacity\\] {\n transition-property: margin,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\,height\\,padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in {\n --tw-ease: var(--ease-in);\n transition-timing-function: var(--ease-in);\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .\\[-ms-overflow-style\\:none\\] {\n -ms-overflow-style: none;\n }\n .\\[-webkit-overflow-scrolling\\:touch\\] {\n -webkit-overflow-scrolling: touch;\n }\n .\\[scrollbar-width\\:none\\] {\n scrollbar-width: none;\n }\n .ring-inset {\n --tw-ring-inset: inset;\n }\n .group-focus-within\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):focus-within *) {\n opacity: 100%;\n }\n }\n .group-hover\\:text-blue-600 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .group-hover\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pr-8 {\n &:is(:where(.group\\/menu-item):has(*[data-sidebar=\"menu-action\"]) *) {\n padding-right: calc(var(--spacing) * 8);\n }\n }\n .group-data-\\[checked\\]\\:translate-x-5 {\n &:is(:where(.group)[data-checked] *) {\n --tw-translate-x: calc(var(--spacing) * 5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[checked\\]\\:opacity-0 {\n &:is(:where(.group)[data-checked] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[checked\\]\\:opacity-100 {\n &:is(:where(.group)[data-checked] *) {\n opacity: 100%;\n }\n }\n .group-data-\\[checked\\]\\:duration-100 {\n &:is(:where(.group)[data-checked] *) {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n }\n .group-data-\\[checked\\]\\:duration-200 {\n &:is(:where(.group)[data-checked] *) {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .group-data-\\[checked\\]\\:ease-in {\n &:is(:where(.group)[data-checked] *) {\n --tw-ease: var(--ease-in);\n transition-timing-function: var(--ease-in);\n }\n }\n .group-data-\\[checked\\]\\:ease-out {\n &:is(:where(.group)[data-checked] *) {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:-mt-8 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n margin-top: calc(var(--spacing) * -8);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n display: none;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:size-8\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--spacing) * 8) !important;\n height: calc(var(--spacing) * 8) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\) {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: var(--sidebar-width-icon);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-0\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 0) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-2\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 2) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:opacity-0 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n right: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n left: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n width: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[side\\=left\\]\\:-right-4 {\n &:is(:where(.group)[data-side=\"left\"] *) {\n right: calc(var(--spacing) * -4);\n }\n }\n .group-data-\\[side\\=left\\]\\:border-r {\n &:is(:where(.group)[data-side=\"left\"] *) {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .group-data-\\[side\\=right\\]\\:left-0 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n left: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[side\\=right\\]\\:rotate-180 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[side\\=right\\]\\:border-l {\n &:is(:where(.group)[data-side=\"right\"] *) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-radius: var(--radius-lg);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:shadow-sm {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-70 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 70%;\n }\n }\n .peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"default\"] ~ *) {\n top: calc(var(--spacing) * 1.5);\n }\n }\n .peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"lg\"] ~ *) {\n top: calc(var(--spacing) * 2.5);\n }\n }\n .peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1 {\n &:is(:where(.peer\\/menu-button)[data-size=\"sm\"] ~ *) {\n top: calc(var(--spacing) * 1);\n }\n }\n .selection\\:bg-primary {\n & *::selection {\n background-color: var(--color-primary);\n }\n &::selection {\n background-color: var(--color-primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::selection {\n color: var(--color-primary-foreground);\n }\n &::selection {\n color: var(--color-primary-foreground);\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .placeholder\\:text-gray-400 {\n &::placeholder {\n color: var(--color-gray-400);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--color-muted-foreground);\n }\n }\n .placeholder\\:text-red-300 {\n &::placeholder {\n color: var(--color-red-300);\n }\n }\n .before\\:absolute {\n &::before {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .before\\:top-0 {\n &::before {\n content: var(--tw-content);\n top: calc(var(--spacing) * 0);\n }\n }\n .before\\:bottom-0 {\n &::before {\n content: var(--tw-content);\n bottom: calc(var(--spacing) * 0);\n }\n }\n .before\\:left-0 {\n &::before {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n .before\\:w-px {\n &::before {\n content: var(--tw-content);\n width: 1px;\n }\n }\n .before\\:bg-border {\n &::before {\n content: var(--tw-content);\n background-color: var(--color-border);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:-inset-2 {\n &::after {\n content: var(--tw-content);\n inset: calc(var(--spacing) * -2);\n }\n }\n .after\\:inset-y-0 {\n &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-1\\/2 {\n &::after {\n content: var(--tw-content);\n left: calc(1/2 * 100%);\n }\n }\n .after\\:w-\\[2px\\] {\n &::after {\n content: var(--tw-content);\n width: 2px;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n &::after {\n content: var(--tw-content);\n left: 100%;\n }\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .focus-within\\:relative {\n &:focus-within {\n position: relative;\n }\n }\n .focus-within\\:ring-2 {\n &:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-within\\:ring-\\[3px\\] {\n &:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-within\\:ring-blue-600 {\n &:focus-within {\n --tw-ring-color: var(--color-blue-600);\n }\n }\n .focus-within\\:ring-offset-2 {\n &:focus-within {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-within\\:outline-none {\n &:focus-within {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .hover\\:cursor-pointer {\n &:hover {\n @media (hover: hover) {\n cursor: pointer;\n }\n }\n }\n .hover\\:border-blue-600 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:border-gray-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-gray-300);\n }\n }\n }\n .hover\\:border-gray-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-gray-400);\n }\n }\n }\n .hover\\:border-gray-500 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-gray-500);\n }\n }\n }\n .hover\\:border-red-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-red-300);\n }\n }\n }\n .hover\\:\\!bg-\\[\\#12478a\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #12478a !important;\n }\n }\n }\n .hover\\:\\!bg-\\[\\#af543d\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #af543d !important;\n }\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-accent);\n }\n }\n }\n .hover\\:bg-accent\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-black\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-100);\n }\n }\n }\n .hover\\:bg-blue-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-200);\n }\n }\n }\n .hover\\:bg-blue-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-500);\n }\n }\n }\n .hover\\:bg-blue-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-700);\n }\n }\n }\n .hover\\:bg-destructive\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #dc2626 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #dc2626 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-gray-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-50);\n }\n }\n }\n .hover\\:bg-gray-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n }\n .hover\\:bg-gray-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-200);\n }\n }\n }\n .hover\\:bg-gray-800 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-800);\n }\n }\n }\n .hover\\:bg-muted\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f7f7f6 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #18181b 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #18181b 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-red-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n }\n .hover\\:bg-red-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-200);\n }\n }\n }\n .hover\\:bg-red-700 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-700);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--color-accent-foreground);\n }\n }\n }\n .hover\\:text-black {\n &:hover {\n @media (hover: hover) {\n color: var(--color-black);\n }\n }\n }\n .hover\\:text-blue-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-500);\n }\n }\n }\n .hover\\:text-blue-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-600);\n }\n }\n }\n .hover\\:text-blue-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-800);\n }\n }\n }\n .hover\\:text-blue-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-blue-900);\n }\n }\n }\n .hover\\:text-destructive {\n &:hover {\n @media (hover: hover) {\n color: var(--color-destructive);\n }\n }\n }\n .hover\\:text-gray-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-500);\n }\n }\n }\n .hover\\:text-gray-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-600);\n }\n }\n }\n .hover\\:text-gray-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-700);\n }\n }\n }\n .hover\\:text-gray-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-800);\n }\n }\n }\n .hover\\:text-green-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-green-900);\n }\n }\n }\n .hover\\:text-orange-500 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-orange-500);\n }\n }\n }\n .hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--color-primary);\n }\n }\n }\n .hover\\:text-red-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n }\n .hover\\:text-red-700 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-700);\n }\n }\n }\n .hover\\:text-red-800 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-800);\n }\n }\n }\n .hover\\:text-red-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-900);\n }\n }\n }\n .hover\\:text-yellow-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-yellow-900);\n }\n }\n }\n .hover\\:no-underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: none;\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-80 {\n &:hover {\n @media (hover: hover) {\n opacity: 80%;\n }\n }\n }\n .hover\\:opacity-90 {\n &:hover {\n @media (hover: hover) {\n opacity: 90%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .focus\\:relative {\n &:focus {\n position: relative;\n }\n }\n .focus\\:z-10 {\n &:focus {\n z-index: 10;\n }\n }\n .focus\\:z-20 {\n &:focus {\n z-index: 20;\n }\n }\n .focus\\:border-red-500 {\n &:focus {\n border-color: var(--color-red-500);\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--color-accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--color-accent-foreground);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-black {\n &:focus {\n --tw-ring-color: var(--color-black);\n }\n }\n .focus\\:ring-blue-500 {\n &:focus {\n --tw-ring-color: var(--color-blue-500);\n }\n }\n .focus\\:ring-blue-600 {\n &:focus {\n --tw-ring-color: var(--color-blue-600);\n }\n }\n .focus\\:ring-primary {\n &:focus {\n --tw-ring-color: var(--color-primary);\n }\n }\n .focus\\:ring-red-500 {\n &:focus {\n --tw-ring-color: var(--color-red-500);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus\\:outline-2 {\n &:focus {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n }\n .focus\\:-outline-offset-2 {\n &:focus {\n outline-offset: calc(2px * -1);\n }\n }\n .focus\\:outline-offset-0 {\n &:focus {\n outline-offset: 0px;\n }\n }\n .focus\\:outline-blue-600 {\n &:focus {\n outline-color: var(--color-blue-600);\n }\n }\n .focus\\:outline-red-600 {\n &:focus {\n outline-color: var(--color-red-600);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .focus-visible\\:border-red-300 {\n &:focus-visible {\n border-color: var(--color-red-300);\n }\n }\n .focus-visible\\:ring-0 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-1 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: color-mix(in srgb, #dc2626 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-red-300 {\n &:focus-visible {\n --tw-ring-color: var(--color-red-300);\n }\n }\n .focus-visible\\:ring-offset-0 {\n &:focus-visible {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:ring-offset-2 {\n &:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:outline {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus-visible\\:outline-2 {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n }\n .focus-visible\\:outline-offset-2 {\n &:focus-visible {\n outline-offset: 2px;\n }\n }\n .focus-visible\\:outline-blue-600 {\n &:focus-visible {\n outline-color: var(--color-blue-600);\n }\n }\n .focus-visible\\:outline-none {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:bg-gray-100 {\n &:active {\n background-color: var(--color-gray-100);\n }\n }\n .active\\:bg-gray-200 {\n &:active {\n background-color: var(--color-gray-200);\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:bg-gray-50 {\n &:disabled {\n background-color: var(--color-gray-50);\n }\n }\n .disabled\\:text-gray-500 {\n &:disabled {\n color: var(--color-gray-500);\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .disabled\\:outline-gray-200 {\n &:disabled {\n outline-color: var(--color-gray-200);\n }\n }\n .in-data-\\[side\\=left\\]\\:cursor-w-resize {\n :where(*[data-side=\"left\"]) & {\n cursor: w-resize;\n }\n }\n .in-data-\\[side\\=right\\]\\:cursor-e-resize {\n :where(*[data-side=\"right\"]) & {\n cursor: e-resize;\n }\n }\n .has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n .has-\\[\\[aria-checked\\=true\\]\\]\\:border-blue-600 {\n &:has(*:is([aria-checked=true])) {\n border-color: var(--color-blue-600);\n }\n }\n .has-\\[\\[aria-checked\\=true\\]\\]\\:bg-blue-50 {\n &:has(*:is([aria-checked=true])) {\n background-color: var(--color-blue-50);\n }\n }\n .has-\\[\\>svg\\]\\:px-0 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 0);\n }\n }\n .aria-disabled\\:pointer-events-none {\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .aria-disabled\\:opacity-50 {\n &[aria-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--color-destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in srgb, #dc2626 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:font-medium {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .data-\\[checked\\]\\:bg-blue-600 {\n &[data-checked] {\n background-color: var(--color-blue-600);\n }\n }\n .data-\\[closed\\]\\:-translate-x-full {\n &[data-closed] {\n --tw-translate-x: -100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[closed\\]\\:translate-y-4 {\n &[data-closed] {\n --tw-translate-y: calc(var(--spacing) * 4);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[closed\\]\\:opacity-0 {\n &[data-closed] {\n opacity: 0%;\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[enter\\]\\:duration-300 {\n &[data-enter] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[enter\\]\\:ease-out {\n &[data-enter] {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive {\n &[data-error=\"true\"] {\n color: var(--color-destructive);\n }\n }\n .data-\\[leave\\]\\:duration-200 {\n &[data-leave] {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .data-\\[leave\\]\\:ease-in {\n &[data-leave] {\n --tw-ease: var(--ease-in);\n transition-timing-function: var(--ease-in);\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--color-muted-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=active\\]\\:border-b-primary {\n &[data-state=\"active\"] {\n border-bottom-color: var(--color-primary);\n }\n }\n .data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: var(--color-background);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-none {\n &[data-state=\"active\"] {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-sm {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\] {\n &[data-state=\"checked\"] {\n --tw-translate-x: calc(100% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:border-black {\n &[data-state=\"checked\"] {\n border-color: var(--color-black);\n }\n }\n .data-\\[state\\=checked\\]\\:border-blue-600 {\n &[data-state=\"checked\"] {\n border-color: var(--color-blue-600);\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--color-primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-black {\n &[data-state=\"checked\"] {\n background-color: var(--color-black);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-blue-600 {\n &[data-state=\"checked\"] {\n background-color: var(--color-blue-600);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--color-primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--color-primary-foreground);\n }\n }\n .data-\\[state\\=checked\\]\\:text-white {\n &[data-state=\"checked\"] {\n color: var(--color-white);\n }\n }\n .data-\\[state\\=closed\\]\\:duration-300 {\n &[data-state=\"closed\"] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--color-accent);\n }\n }\n .data-\\[state\\=open\\]\\:bg-secondary {\n &[data-state=\"open\"] {\n background-color: var(--color-secondary);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--color-muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:opacity-100 {\n &[data-state=\"open\"] {\n opacity: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:duration-500 {\n &[data-state=\"open\"] {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n }\n .data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: var(--color-muted);\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-0 {\n &[data-state=\"unchecked\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=unchecked\\]\\:bg-input {\n &[data-state=\"unchecked\"] {\n background-color: var(--color-input);\n }\n }\n .max-\\[800px\\]\\:mx-auto {\n @media (width < 800px) {\n margin-inline: auto;\n }\n }\n .max-\\[800px\\]\\:mb-9 {\n @media (width < 800px) {\n margin-bottom: calc(var(--spacing) * 9);\n }\n }\n .max-\\[800px\\]\\:w-full {\n @media (width < 800px) {\n width: 100%;\n }\n }\n .max-\\[800px\\]\\:px-\\[22px\\] {\n @media (width < 800px) {\n padding-inline: 22px;\n }\n }\n .max-\\[800px\\]\\:py-9 {\n @media (width < 800px) {\n padding-block: calc(var(--spacing) * 9);\n }\n }\n .sm\\:col-span-2 {\n @media (width >= 40rem) {\n grid-column: span 2 / span 2;\n }\n }\n .sm\\:col-span-3 {\n @media (width >= 40rem) {\n grid-column: span 3 / span 3;\n }\n }\n .sm\\:-mx-6 {\n @media (width >= 40rem) {\n margin-inline: calc(var(--spacing) * -6);\n }\n }\n .sm\\:my-8 {\n @media (width >= 40rem) {\n margin-block: calc(var(--spacing) * 8);\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:mt-10 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 10);\n }\n }\n .sm\\:mb-1 {\n @media (width >= 40rem) {\n margin-bottom: calc(var(--spacing) * 1);\n }\n }\n .sm\\:ml-4 {\n @media (width >= 40rem) {\n margin-left: calc(var(--spacing) * 4);\n }\n }\n .sm\\:ml-8 {\n @media (width >= 40rem) {\n margin-left: calc(var(--spacing) * 8);\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:flex {\n @media (width >= 40rem) {\n display: flex;\n }\n }\n .sm\\:grid {\n @media (width >= 40rem) {\n display: grid;\n }\n }\n .sm\\:hidden {\n @media (width >= 40rem) {\n display: none;\n }\n }\n .sm\\:size-4 {\n @media (width >= 40rem) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .sm\\:w-full {\n @media (width >= 40rem) {\n width: 100%;\n }\n }\n .sm\\:max-w-1\\/2 {\n @media (width >= 40rem) {\n max-width: calc(1/2 * 100%);\n }\n }\n .sm\\:max-w-2xl {\n @media (width >= 40rem) {\n max-width: var(--container-2xl);\n }\n }\n .sm\\:max-w-\\[425px\\] {\n @media (width >= 40rem) {\n max-width: 425px;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:max-w-md {\n @media (width >= 40rem) {\n max-width: var(--container-md);\n }\n }\n .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n .sm\\:grid-cols-3 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .sm\\:grid-cols-6 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:flex-row-reverse {\n @media (width >= 40rem) {\n flex-direction: row-reverse;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:\\!justify-start {\n @media (width >= 40rem) {\n justify-content: flex-start !important;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:justify-start {\n @media (width >= 40rem) {\n justify-content: flex-start;\n }\n }\n .sm\\:gap-2\\.5 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .sm\\:truncate {\n @media (width >= 40rem) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .sm\\:rounded-lg {\n @media (width >= 40rem) {\n border-radius: var(--radius-lg);\n }\n }\n .sm\\:p-0 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 0);\n }\n }\n .sm\\:p-6 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 6);\n }\n }\n .sm\\:px-0 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 0);\n }\n }\n .sm\\:px-6 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 6);\n }\n }\n .sm\\:px-8 {\n @media (width >= 40rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .sm\\:py-4 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 4);\n }\n }\n .sm\\:py-32 {\n @media (width >= 40rem) {\n padding-block: calc(var(--spacing) * 32);\n }\n }\n .sm\\:pr-0 {\n @media (width >= 40rem) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .sm\\:pl-0 {\n @media (width >= 40rem) {\n padding-left: calc(var(--spacing) * 0);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .sm\\:text-2xl {\n @media (width >= 40rem) {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n }\n .sm\\:text-7xl {\n @media (width >= 40rem) {\n font-size: var(--text-7xl);\n line-height: var(--tw-leading, var(--text-7xl--line-height));\n }\n }\n .sm\\:text-sm\\/6 {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: calc(var(--spacing) * 6);\n }\n }\n .sm\\:text-xl {\n @media (width >= 40rem) {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n }\n .sm\\:text-xl\\/8 {\n @media (width >= 40rem) {\n font-size: var(--text-xl);\n line-height: calc(var(--spacing) * 8);\n }\n }\n .sm\\:tracking-tight {\n @media (width >= 40rem) {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n }\n .data-\\[closed\\]\\:sm\\:translate-y-0 {\n &[data-closed] {\n @media (width >= 40rem) {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[closed\\]\\:sm\\:scale-95 {\n &[data-closed] {\n @media (width >= 40rem) {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .md\\:ml-12 {\n @media (width >= 48rem) {\n margin-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:hidden {\n @media (width >= 48rem) {\n display: none;\n }\n }\n .md\\:flex-1 {\n @media (width >= 48rem) {\n flex: 1;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:justify-between {\n @media (width >= 48rem) {\n justify-content: space-between;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:opacity-0 {\n @media (width >= 48rem) {\n opacity: 0%;\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:m-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin: calc(var(--spacing) * 2);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:ml-0 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin-left: calc(var(--spacing) * 0);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n border-radius: var(--radius-xl);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ml-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n &:is(:where(.peer)[data-state=\"collapsed\"] ~ *) {\n margin-left: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .md\\:after\\:hidden {\n @media (width >= 48rem) {\n &::after {\n content: var(--tw-content);\n display: none;\n }\n }\n }\n .lg\\:fixed {\n @media (width >= 64rem) {\n position: fixed;\n }\n }\n .lg\\:inset-y-0 {\n @media (width >= 64rem) {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .lg\\:z-50 {\n @media (width >= 64rem) {\n z-index: 50;\n }\n }\n .lg\\:-mx-8 {\n @media (width >= 64rem) {\n margin-inline: calc(var(--spacing) * -8);\n }\n }\n .lg\\:ml-16 {\n @media (width >= 64rem) {\n margin-left: calc(var(--spacing) * 16);\n }\n }\n .lg\\:flex {\n @media (width >= 64rem) {\n display: flex;\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:w-72 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 72);\n }\n }\n .lg\\:w-full {\n @media (width >= 64rem) {\n width: 100%;\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:flex-col {\n @media (width >= 64rem) {\n flex-direction: column;\n }\n }\n .lg\\:justify-between {\n @media (width >= 64rem) {\n justify-content: space-between;\n }\n }\n .lg\\:justify-end {\n @media (width >= 64rem) {\n justify-content: flex-end;\n }\n }\n .lg\\:px-8 {\n @media (width >= 64rem) {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n .lg\\:pl-72 {\n @media (width >= 64rem) {\n padding-left: calc(var(--spacing) * 72);\n }\n }\n .xl\\:ml-20 {\n @media (width >= 80rem) {\n margin-left: calc(var(--spacing) * 20);\n }\n }\n .xl\\:gap-x-8 {\n @media (width >= 80rem) {\n column-gap: calc(var(--spacing) * 8);\n }\n }\n .\\32 xl\\:ml-24 {\n @media (width >= 96rem) {\n margin-left: calc(var(--spacing) * 24);\n }\n }\n .\\@max-md\\:hidden {\n @container (width < 28rem) {\n display: none;\n }\n }\n .\\@max-md\\:grid-cols-1 {\n @container (width < 28rem) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n }\n .dark\\:border-input {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-input);\n }\n }\n .dark\\:bg-destructive\\/60 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, #dc2626 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent);\n }\n }\n }\n .dark\\:bg-gray-900 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--color-gray-900);\n }\n }\n .dark\\:bg-input\\/30 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, #e4e4e7 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 30%, transparent);\n }\n }\n }\n .dark\\:hover\\:bg-accent\\/50 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:bg-input\\/50 {\n @media (prefers-color-scheme: dark) {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #e4e4e7 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &:focus-visible {\n --tw-ring-color: color-mix(in srgb, #dc2626 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:has-\\[\\[aria-checked\\=true\\]\\]\\:border-blue-900 {\n @media (prefers-color-scheme: dark) {\n &:has(*:is([aria-checked=true])) {\n border-color: var(--color-blue-900);\n }\n }\n }\n .dark\\:has-\\[\\[aria-checked\\=true\\]\\]\\:bg-blue-950 {\n @media (prefers-color-scheme: dark) {\n &:has(*:is([aria-checked=true])) {\n background-color: var(--color-blue-950);\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in srgb, #dc2626 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:border-blue-700 {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n border-color: var(--color-blue-700);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-blue-700 {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n background-color: var(--color-blue-700);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n background-color: var(--color-primary);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"checked\"] {\n background-color: var(--color-primary-foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80 {\n @media (prefers-color-scheme: dark) {\n &[data-state=\"unchecked\"] {\n background-color: color-mix(in srgb, #e4e4e7 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 80%, transparent);\n }\n }\n }\n }\n .\\[\\&_\\:is\\(h1\\,h2\\,h3\\)\\]\\:m-0 {\n & :is(h1,h2,h3) {\n margin: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&_h2\\]\\:mt-\\[1em\\] {\n & h2 {\n margin-top: 1em;\n }\n }\n .\\[\\&_h2\\]\\:text-lg {\n & h2 {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n }\n .\\[\\&_h2\\,\\&_h3\\]\\:mt-\\[1em\\] {\n & h2,& h3 {\n margin-top: 1em;\n }\n }\n .\\[\\&_hr\\]\\:my-\\[1em\\] {\n & hr {\n margin-block: 1em;\n }\n }\n .\\[\\&_p\\+p\\]\\:mt-\\[1em\\] {\n & p+p {\n margin-top: 1em;\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:size-4 {\n & svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .\\[\\&_ul\\]\\:list-inside {\n & ul {\n list-style-position: inside;\n }\n }\n .\\[\\&_ul\\]\\:list-disc {\n & ul {\n list-style-type: disc;\n }\n }\n .\\[\\&_ul\\]\\:pl-4 {\n & ul {\n padding-left: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden {\n &::-webkit-scrollbar {\n display: none;\n }\n }\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n .\\[\\.border-t\\]\\:pt-6 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 6);\n }\n }\n .\\[\\&\\>button\\]\\:hidden {\n &>button {\n display: none;\n }\n }\n .\\[\\&\\>button\\:last-child\\]\\:mt-0 {\n &>button:last-child {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&\\>div\\]\\:min-w-\\[200px\\] {\n &>div {\n min-width: 200px;\n }\n }\n .\\[\\&\\>div\\]\\:flex-1 {\n &>div {\n flex: 1;\n }\n }\n .\\[\\&\\>div_label\\]\\:mb-2 {\n &>div label {\n margin-bottom: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\>div_label\\]\\:block {\n &>div label {\n display: block;\n }\n }\n .\\[\\&\\>div_label\\]\\:text-sm {\n &>div label {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .\\[\\&\\>div_label\\]\\:font-medium {\n &>div label {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&\\>div_label\\]\\:text-gray-700 {\n &>div label {\n color: var(--color-gray-700);\n }\n }\n .\\[\\&\\>div\\:first-child\\]\\:min-w-\\[200px\\] {\n &>div:first-child {\n min-width: 200px;\n }\n }\n .\\[\\&\\>div\\:first-child\\]\\:flex-1 {\n &>div:first-child {\n flex: 1;\n }\n }\n .\\[\\&\\>div\\:nth-child\\(2\\)\\]\\:min-w-\\[200px\\] {\n &>div:nth-child(2) {\n min-width: 200px;\n }\n }\n .\\[\\&\\>div\\:nth-child\\(2\\)\\]\\:flex-1 {\n &>div:nth-child(2) {\n flex: 1;\n }\n }\n .\\[\\&\\>label\\]\\:mb-2 {\n &>label {\n margin-bottom: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\>label\\]\\:block {\n &>label {\n display: block;\n }\n }\n .\\[\\&\\>label\\]\\:text-sm {\n &>label {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .\\[\\&\\>label\\]\\:font-medium {\n &>label {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&\\>label\\]\\:text-gray-700 {\n &>label {\n color: var(--color-gray-700);\n }\n }\n .\\[\\&\\>span\\]\\:line-clamp-1 {\n &>span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n .\\[\\&\\>span\\:last-child\\]\\:truncate {\n &>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .\\[\\&\\>svg\\]\\:pointer-events-none {\n &>svg {\n pointer-events: none;\n }\n }\n .\\[\\&\\>svg\\]\\:size-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:size-4 {\n &>svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>svg\\]\\:h-3\\.5 {\n &>svg {\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:w-3\\.5 {\n &>svg {\n width: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:shrink-0 {\n &>svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n .\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180 {\n &[data-state=open]>svg {\n rotate: 180deg;\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2 {\n [data-side=left][data-collapsible=offcanvas] & {\n right: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize {\n [data-side=left][data-state=collapsed] & {\n cursor: e-resize;\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2 {\n [data-side=right][data-collapsible=offcanvas] & {\n left: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize {\n [data-side=right][data-state=collapsed] & {\n cursor: w-resize;\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-accent);\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-destructive\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #dc2626 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-primary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #18181b 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-secondary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #f4f4f5 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:text-accent-foreground {\n a& {\n &:hover {\n @media (hover: hover) {\n color: var(--color-accent-foreground);\n }\n }\n }\n }\n}\n@layer base {\n :root,\n :host {\n font-family: 'Inter', sans-serif;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scroll-snap-strictness {\n syntax: \"*\";\n inherits: false;\n initial-value: proximity;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"<color>\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"<color>\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"<color>\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"<length-percentage>\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"<length-percentage>\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"<length-percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-scroll-snap-strictness: proximity;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: \"\";\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n";
|
|
2091
2325
|
|
|
2092
2326
|
const stylesheet = new CSSStyleSheet();
|
|
2093
2327
|
stylesheet.replaceSync(css_248z);
|
|
@@ -2709,7 +2943,36 @@ if (!customElements.get('bt-carousel')) {
|
|
|
2709
2943
|
customElements.define('bt-carousel', BTCarousel);
|
|
2710
2944
|
}
|
|
2711
2945
|
|
|
2946
|
+
/**
|
|
2947
|
+
* Concatenates two arrays faster than the array spread operator.
|
|
2948
|
+
*/
|
|
2949
|
+
const concatArrays = (array1, array2) => {
|
|
2950
|
+
// Pre-allocate for better V8 optimization
|
|
2951
|
+
const combinedArray = new Array(array1.length + array2.length);
|
|
2952
|
+
for (let i = 0; i < array1.length; i++) {
|
|
2953
|
+
combinedArray[i] = array1[i];
|
|
2954
|
+
}
|
|
2955
|
+
for (let i = 0; i < array2.length; i++) {
|
|
2956
|
+
combinedArray[array1.length + i] = array2[i];
|
|
2957
|
+
}
|
|
2958
|
+
return combinedArray;
|
|
2959
|
+
};
|
|
2960
|
+
|
|
2961
|
+
// Factory function ensures consistent object shapes
|
|
2962
|
+
const createClassValidatorObject = (classGroupId, validator) => ({
|
|
2963
|
+
classGroupId,
|
|
2964
|
+
validator
|
|
2965
|
+
});
|
|
2966
|
+
// Factory ensures consistent ClassPartObject shape
|
|
2967
|
+
const createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({
|
|
2968
|
+
nextPart,
|
|
2969
|
+
validators,
|
|
2970
|
+
classGroupId
|
|
2971
|
+
});
|
|
2712
2972
|
const CLASS_PART_SEPARATOR = '-';
|
|
2973
|
+
const EMPTY_CONFLICTS = [];
|
|
2974
|
+
// I use two dots here because one dot is used as prefix for class groups in plugins
|
|
2975
|
+
const ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';
|
|
2713
2976
|
const createClassGroupUtils = config => {
|
|
2714
2977
|
const classMap = createClassMap(config);
|
|
2715
2978
|
const {
|
|
@@ -2717,54 +2980,73 @@ const createClassGroupUtils = config => {
|
|
|
2717
2980
|
conflictingClassGroupModifiers
|
|
2718
2981
|
} = config;
|
|
2719
2982
|
const getClassGroupId = className => {
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
if (classParts[0] === '' && classParts.length !== 1) {
|
|
2723
|
-
classParts.shift();
|
|
2983
|
+
if (className.startsWith('[') && className.endsWith(']')) {
|
|
2984
|
+
return getGroupIdForArbitraryProperty(className);
|
|
2724
2985
|
}
|
|
2725
|
-
|
|
2986
|
+
const classParts = className.split(CLASS_PART_SEPARATOR);
|
|
2987
|
+
// Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.
|
|
2988
|
+
const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;
|
|
2989
|
+
return getGroupRecursive(classParts, startIndex, classMap);
|
|
2726
2990
|
};
|
|
2727
2991
|
const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2992
|
+
if (hasPostfixModifier) {
|
|
2993
|
+
const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
|
|
2994
|
+
const baseConflicts = conflictingClassGroups[classGroupId];
|
|
2995
|
+
if (modifierConflicts) {
|
|
2996
|
+
if (baseConflicts) {
|
|
2997
|
+
// Merge base conflicts with modifier conflicts
|
|
2998
|
+
return concatArrays(baseConflicts, modifierConflicts);
|
|
2999
|
+
}
|
|
3000
|
+
// Only modifier conflicts
|
|
3001
|
+
return modifierConflicts;
|
|
3002
|
+
}
|
|
3003
|
+
// Fall back to without postfix if no modifier conflicts
|
|
3004
|
+
return baseConflicts || EMPTY_CONFLICTS;
|
|
2731
3005
|
}
|
|
2732
|
-
return
|
|
3006
|
+
return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
|
|
2733
3007
|
};
|
|
2734
3008
|
return {
|
|
2735
3009
|
getClassGroupId,
|
|
2736
3010
|
getConflictingClassGroupIds
|
|
2737
3011
|
};
|
|
2738
3012
|
};
|
|
2739
|
-
const getGroupRecursive = (classParts, classPartObject) => {
|
|
2740
|
-
|
|
3013
|
+
const getGroupRecursive = (classParts, startIndex, classPartObject) => {
|
|
3014
|
+
const classPathsLength = classParts.length - startIndex;
|
|
3015
|
+
if (classPathsLength === 0) {
|
|
2741
3016
|
return classPartObject.classGroupId;
|
|
2742
3017
|
}
|
|
2743
|
-
const currentClassPart = classParts[
|
|
3018
|
+
const currentClassPart = classParts[startIndex];
|
|
2744
3019
|
const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
return
|
|
3020
|
+
if (nextClassPartObject) {
|
|
3021
|
+
const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
|
|
3022
|
+
if (result) return result;
|
|
2748
3023
|
}
|
|
2749
|
-
|
|
3024
|
+
const validators = classPartObject.validators;
|
|
3025
|
+
if (validators === null) {
|
|
2750
3026
|
return undefined;
|
|
2751
3027
|
}
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
if (arbitraryPropertyRegex.test(className)) {
|
|
2760
|
-
const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
|
|
2761
|
-
const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));
|
|
2762
|
-
if (property) {
|
|
2763
|
-
// I use two dots here because one dot is used as prefix for class groups in plugins
|
|
2764
|
-
return 'arbitrary..' + property;
|
|
3028
|
+
// Build classRest string efficiently by joining from startIndex onwards
|
|
3029
|
+
const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
|
|
3030
|
+
const validatorsLength = validators.length;
|
|
3031
|
+
for (let i = 0; i < validatorsLength; i++) {
|
|
3032
|
+
const validatorObj = validators[i];
|
|
3033
|
+
if (validatorObj.validator(classRest)) {
|
|
3034
|
+
return validatorObj.classGroupId;
|
|
2765
3035
|
}
|
|
2766
3036
|
}
|
|
3037
|
+
return undefined;
|
|
2767
3038
|
};
|
|
3039
|
+
/**
|
|
3040
|
+
* Get the class group ID for an arbitrary property.
|
|
3041
|
+
*
|
|
3042
|
+
* @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.
|
|
3043
|
+
*/
|
|
3044
|
+
const getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {
|
|
3045
|
+
const content = className.slice(1, -1);
|
|
3046
|
+
const colonIndex = content.indexOf(':');
|
|
3047
|
+
const property = content.slice(0, colonIndex);
|
|
3048
|
+
return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;
|
|
3049
|
+
})();
|
|
2768
3050
|
/**
|
|
2769
3051
|
* Exported for testing only
|
|
2770
3052
|
*/
|
|
@@ -2773,54 +3055,77 @@ const createClassMap = config => {
|
|
|
2773
3055
|
theme,
|
|
2774
3056
|
classGroups
|
|
2775
3057
|
} = config;
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
3058
|
+
return processClassGroups(classGroups, theme);
|
|
3059
|
+
};
|
|
3060
|
+
// Split into separate functions to maintain monomorphic call sites
|
|
3061
|
+
const processClassGroups = (classGroups, theme) => {
|
|
3062
|
+
const classMap = createClassPartObject();
|
|
2780
3063
|
for (const classGroupId in classGroups) {
|
|
2781
|
-
|
|
3064
|
+
const group = classGroups[classGroupId];
|
|
3065
|
+
processClassesRecursively(group, classMap, classGroupId, theme);
|
|
2782
3066
|
}
|
|
2783
3067
|
return classMap;
|
|
2784
3068
|
};
|
|
2785
3069
|
const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
|
|
2786
|
-
classGroup.
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
3070
|
+
const len = classGroup.length;
|
|
3071
|
+
for (let i = 0; i < len; i++) {
|
|
3072
|
+
const classDefinition = classGroup[i];
|
|
3073
|
+
processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
|
|
3074
|
+
}
|
|
3075
|
+
};
|
|
3076
|
+
// Split into separate functions for each type to maintain monomorphic call sites
|
|
3077
|
+
const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
|
|
3078
|
+
if (typeof classDefinition === 'string') {
|
|
3079
|
+
processStringDefinition(classDefinition, classPartObject, classGroupId);
|
|
3080
|
+
return;
|
|
3081
|
+
}
|
|
3082
|
+
if (typeof classDefinition === 'function') {
|
|
3083
|
+
processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
|
|
3084
|
+
return;
|
|
3085
|
+
}
|
|
3086
|
+
processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
|
|
3087
|
+
};
|
|
3088
|
+
const processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
|
|
3089
|
+
const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);
|
|
3090
|
+
classPartObjectToEdit.classGroupId = classGroupId;
|
|
3091
|
+
};
|
|
3092
|
+
const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
|
|
3093
|
+
if (isThemeGetter(classDefinition)) {
|
|
3094
|
+
processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
|
|
3095
|
+
return;
|
|
3096
|
+
}
|
|
3097
|
+
if (classPartObject.validators === null) {
|
|
3098
|
+
classPartObject.validators = [];
|
|
3099
|
+
}
|
|
3100
|
+
classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
|
|
3101
|
+
};
|
|
3102
|
+
const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
|
|
3103
|
+
const entries = Object.entries(classDefinition);
|
|
3104
|
+
const len = entries.length;
|
|
3105
|
+
for (let i = 0; i < len; i++) {
|
|
3106
|
+
const [key, value] = entries[i];
|
|
3107
|
+
processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
|
|
3108
|
+
}
|
|
2807
3109
|
};
|
|
2808
3110
|
const getPart = (classPartObject, path) => {
|
|
2809
|
-
let
|
|
2810
|
-
path.split(CLASS_PART_SEPARATOR)
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
3111
|
+
let current = classPartObject;
|
|
3112
|
+
const parts = path.split(CLASS_PART_SEPARATOR);
|
|
3113
|
+
const len = parts.length;
|
|
3114
|
+
for (let i = 0; i < len; i++) {
|
|
3115
|
+
const part = parts[i];
|
|
3116
|
+
let next = current.nextPart.get(part);
|
|
3117
|
+
if (!next) {
|
|
3118
|
+
next = createClassPartObject();
|
|
3119
|
+
current.nextPart.set(part, next);
|
|
3120
|
+
}
|
|
3121
|
+
current = next;
|
|
3122
|
+
}
|
|
3123
|
+
return current;
|
|
2820
3124
|
};
|
|
2821
|
-
|
|
3125
|
+
// Type guard maintains monomorphic check
|
|
3126
|
+
const isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;
|
|
2822
3127
|
|
|
2823
|
-
// LRU cache
|
|
3128
|
+
// LRU cache implementation using plain objects for simplicity
|
|
2824
3129
|
const createLruCache = maxCacheSize => {
|
|
2825
3130
|
if (maxCacheSize < 1) {
|
|
2826
3131
|
return {
|
|
@@ -2829,31 +3134,31 @@ const createLruCache = maxCacheSize => {
|
|
|
2829
3134
|
};
|
|
2830
3135
|
}
|
|
2831
3136
|
let cacheSize = 0;
|
|
2832
|
-
let cache =
|
|
2833
|
-
let previousCache =
|
|
3137
|
+
let cache = Object.create(null);
|
|
3138
|
+
let previousCache = Object.create(null);
|
|
2834
3139
|
const update = (key, value) => {
|
|
2835
|
-
cache
|
|
3140
|
+
cache[key] = value;
|
|
2836
3141
|
cacheSize++;
|
|
2837
3142
|
if (cacheSize > maxCacheSize) {
|
|
2838
3143
|
cacheSize = 0;
|
|
2839
3144
|
previousCache = cache;
|
|
2840
|
-
cache =
|
|
3145
|
+
cache = Object.create(null);
|
|
2841
3146
|
}
|
|
2842
3147
|
};
|
|
2843
3148
|
return {
|
|
2844
3149
|
get(key) {
|
|
2845
|
-
let value = cache
|
|
3150
|
+
let value = cache[key];
|
|
2846
3151
|
if (value !== undefined) {
|
|
2847
3152
|
return value;
|
|
2848
3153
|
}
|
|
2849
|
-
if ((value = previousCache
|
|
3154
|
+
if ((value = previousCache[key]) !== undefined) {
|
|
2850
3155
|
update(key, value);
|
|
2851
3156
|
return value;
|
|
2852
3157
|
}
|
|
2853
3158
|
},
|
|
2854
3159
|
set(key, value) {
|
|
2855
|
-
if (cache
|
|
2856
|
-
cache
|
|
3160
|
+
if (key in cache) {
|
|
3161
|
+
cache[key] = value;
|
|
2857
3162
|
} else {
|
|
2858
3163
|
update(key, value);
|
|
2859
3164
|
}
|
|
@@ -2862,7 +3167,15 @@ const createLruCache = maxCacheSize => {
|
|
|
2862
3167
|
};
|
|
2863
3168
|
const IMPORTANT_MODIFIER = '!';
|
|
2864
3169
|
const MODIFIER_SEPARATOR = ':';
|
|
2865
|
-
const
|
|
3170
|
+
const EMPTY_MODIFIERS = [];
|
|
3171
|
+
// Pre-allocated result object shape for consistency
|
|
3172
|
+
const createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
|
|
3173
|
+
modifiers,
|
|
3174
|
+
hasImportantModifier,
|
|
3175
|
+
baseClassName,
|
|
3176
|
+
maybePostfixModifierPosition,
|
|
3177
|
+
isExternal
|
|
3178
|
+
});
|
|
2866
3179
|
const createParseClassName = config => {
|
|
2867
3180
|
const {
|
|
2868
3181
|
prefix,
|
|
@@ -2875,17 +3188,19 @@ const createParseClassName = config => {
|
|
|
2875
3188
|
* @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
|
|
2876
3189
|
*/
|
|
2877
3190
|
let parseClassName = className => {
|
|
3191
|
+
// Use simple array with push for better performance
|
|
2878
3192
|
const modifiers = [];
|
|
2879
3193
|
let bracketDepth = 0;
|
|
2880
3194
|
let parenDepth = 0;
|
|
2881
3195
|
let modifierStart = 0;
|
|
2882
3196
|
let postfixModifierPosition;
|
|
2883
|
-
|
|
2884
|
-
|
|
3197
|
+
const len = className.length;
|
|
3198
|
+
for (let index = 0; index < len; index++) {
|
|
3199
|
+
const currentCharacter = className[index];
|
|
2885
3200
|
if (bracketDepth === 0 && parenDepth === 0) {
|
|
2886
3201
|
if (currentCharacter === MODIFIER_SEPARATOR) {
|
|
2887
3202
|
modifiers.push(className.slice(modifierStart, index));
|
|
2888
|
-
modifierStart = index +
|
|
3203
|
+
modifierStart = index + 1;
|
|
2889
3204
|
continue;
|
|
2890
3205
|
}
|
|
2891
3206
|
if (currentCharacter === '/') {
|
|
@@ -2893,37 +3208,31 @@ const createParseClassName = config => {
|
|
|
2893
3208
|
continue;
|
|
2894
3209
|
}
|
|
2895
3210
|
}
|
|
2896
|
-
if (currentCharacter === '[')
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
3211
|
+
if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;
|
|
3212
|
+
}
|
|
3213
|
+
const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
|
|
3214
|
+
// Inline important modifier check
|
|
3215
|
+
let baseClassName = baseClassNameWithImportantModifier;
|
|
3216
|
+
let hasImportantModifier = false;
|
|
3217
|
+
if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
|
|
3218
|
+
baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
|
|
3219
|
+
hasImportantModifier = true;
|
|
3220
|
+
} else if (
|
|
3221
|
+
/**
|
|
3222
|
+
* In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
|
|
3223
|
+
* @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
|
|
3224
|
+
*/
|
|
3225
|
+
baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {
|
|
3226
|
+
baseClassName = baseClassNameWithImportantModifier.slice(1);
|
|
3227
|
+
hasImportantModifier = true;
|
|
2905
3228
|
}
|
|
2906
|
-
const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
|
|
2907
|
-
const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);
|
|
2908
|
-
const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;
|
|
2909
3229
|
const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
|
|
2910
|
-
return
|
|
2911
|
-
modifiers,
|
|
2912
|
-
hasImportantModifier,
|
|
2913
|
-
baseClassName,
|
|
2914
|
-
maybePostfixModifierPosition
|
|
2915
|
-
};
|
|
3230
|
+
return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
|
|
2916
3231
|
};
|
|
2917
3232
|
if (prefix) {
|
|
2918
3233
|
const fullPrefix = prefix + MODIFIER_SEPARATOR;
|
|
2919
3234
|
const parseClassNameOriginal = parseClassName;
|
|
2920
|
-
parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.
|
|
2921
|
-
isExternal: true,
|
|
2922
|
-
modifiers: [],
|
|
2923
|
-
hasImportantModifier: false,
|
|
2924
|
-
baseClassName: className,
|
|
2925
|
-
maybePostfixModifierPosition: undefined
|
|
2926
|
-
};
|
|
3235
|
+
parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);
|
|
2927
3236
|
}
|
|
2928
3237
|
if (experimentalParseClassName) {
|
|
2929
3238
|
const parseClassNameOriginal = parseClassName;
|
|
@@ -2934,19 +3243,6 @@ const createParseClassName = config => {
|
|
|
2934
3243
|
}
|
|
2935
3244
|
return parseClassName;
|
|
2936
3245
|
};
|
|
2937
|
-
const stripImportantModifier = baseClassName => {
|
|
2938
|
-
if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {
|
|
2939
|
-
return baseClassName.substring(0, baseClassName.length - 1);
|
|
2940
|
-
}
|
|
2941
|
-
/**
|
|
2942
|
-
* In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
|
|
2943
|
-
* @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
|
|
2944
|
-
*/
|
|
2945
|
-
if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {
|
|
2946
|
-
return baseClassName.substring(1);
|
|
2947
|
-
}
|
|
2948
|
-
return baseClassName;
|
|
2949
|
-
};
|
|
2950
3246
|
|
|
2951
3247
|
/**
|
|
2952
3248
|
* Sorts modifiers according to following schema:
|
|
@@ -2954,26 +3250,41 @@ const stripImportantModifier = baseClassName => {
|
|
|
2954
3250
|
* - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
|
|
2955
3251
|
*/
|
|
2956
3252
|
const createSortModifiers = config => {
|
|
2957
|
-
|
|
2958
|
-
const
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
3253
|
+
// Pre-compute weights for all known modifiers for O(1) comparison
|
|
3254
|
+
const modifierWeights = new Map();
|
|
3255
|
+
// Assign weights to sensitive modifiers (highest priority, but preserve order)
|
|
3256
|
+
config.orderSensitiveModifiers.forEach((mod, index) => {
|
|
3257
|
+
modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods
|
|
3258
|
+
});
|
|
3259
|
+
return modifiers => {
|
|
3260
|
+
const result = [];
|
|
3261
|
+
let currentSegment = [];
|
|
3262
|
+
// Process modifiers in one pass
|
|
3263
|
+
for (let i = 0; i < modifiers.length; i++) {
|
|
3264
|
+
const modifier = modifiers[i];
|
|
3265
|
+
// Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)
|
|
3266
|
+
const isArbitrary = modifier[0] === '[';
|
|
3267
|
+
const isOrderSensitive = modifierWeights.has(modifier);
|
|
3268
|
+
if (isArbitrary || isOrderSensitive) {
|
|
3269
|
+
// Sort and flush current segment alphabetically
|
|
3270
|
+
if (currentSegment.length > 0) {
|
|
3271
|
+
currentSegment.sort();
|
|
3272
|
+
result.push(...currentSegment);
|
|
3273
|
+
currentSegment = [];
|
|
3274
|
+
}
|
|
3275
|
+
result.push(modifier);
|
|
2969
3276
|
} else {
|
|
2970
|
-
|
|
3277
|
+
// Regular modifier - add to current segment for batch sorting
|
|
3278
|
+
currentSegment.push(modifier);
|
|
2971
3279
|
}
|
|
2972
|
-
}
|
|
2973
|
-
|
|
2974
|
-
|
|
3280
|
+
}
|
|
3281
|
+
// Sort and add any remaining segment items
|
|
3282
|
+
if (currentSegment.length > 0) {
|
|
3283
|
+
currentSegment.sort();
|
|
3284
|
+
result.push(...currentSegment);
|
|
3285
|
+
}
|
|
3286
|
+
return result;
|
|
2975
3287
|
};
|
|
2976
|
-
return sortModifiers;
|
|
2977
3288
|
};
|
|
2978
3289
|
const createConfigUtils = config => ({
|
|
2979
3290
|
cache: createLruCache(config.cacheSize),
|
|
@@ -3028,10 +3339,11 @@ const mergeClassList = (classList, configUtils) => {
|
|
|
3028
3339
|
}
|
|
3029
3340
|
hasPostfixModifier = false;
|
|
3030
3341
|
}
|
|
3031
|
-
|
|
3342
|
+
// Fast path: skip sorting for empty or single modifier
|
|
3343
|
+
const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');
|
|
3032
3344
|
const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
|
|
3033
3345
|
const classId = modifierId + classGroupId;
|
|
3034
|
-
if (classGroupsInConflict.
|
|
3346
|
+
if (classGroupsInConflict.indexOf(classId) > -1) {
|
|
3035
3347
|
// Tailwind class omitted due to conflict
|
|
3036
3348
|
continue;
|
|
3037
3349
|
}
|
|
@@ -3056,13 +3368,13 @@ const mergeClassList = (classList, configUtils) => {
|
|
|
3056
3368
|
*
|
|
3057
3369
|
* Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
|
|
3058
3370
|
*/
|
|
3059
|
-
|
|
3371
|
+
const twJoin = (...classLists) => {
|
|
3060
3372
|
let index = 0;
|
|
3061
3373
|
let argument;
|
|
3062
3374
|
let resolvedValue;
|
|
3063
3375
|
let string = '';
|
|
3064
|
-
while (index <
|
|
3065
|
-
if (argument =
|
|
3376
|
+
while (index < classLists.length) {
|
|
3377
|
+
if (argument = classLists[index++]) {
|
|
3066
3378
|
if (resolvedValue = toValue(argument)) {
|
|
3067
3379
|
string && (string += ' ');
|
|
3068
3380
|
string += resolvedValue;
|
|
@@ -3070,8 +3382,9 @@ function twJoin() {
|
|
|
3070
3382
|
}
|
|
3071
3383
|
}
|
|
3072
3384
|
return string;
|
|
3073
|
-
}
|
|
3385
|
+
};
|
|
3074
3386
|
const toValue = mix => {
|
|
3387
|
+
// Fast path for strings
|
|
3075
3388
|
if (typeof mix === 'string') {
|
|
3076
3389
|
return mix;
|
|
3077
3390
|
}
|
|
@@ -3087,20 +3400,20 @@ const toValue = mix => {
|
|
|
3087
3400
|
}
|
|
3088
3401
|
return string;
|
|
3089
3402
|
};
|
|
3090
|
-
|
|
3403
|
+
const createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
|
|
3091
3404
|
let configUtils;
|
|
3092
3405
|
let cacheGet;
|
|
3093
3406
|
let cacheSet;
|
|
3094
|
-
let functionToCall
|
|
3095
|
-
|
|
3407
|
+
let functionToCall;
|
|
3408
|
+
const initTailwindMerge = classList => {
|
|
3096
3409
|
const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
|
|
3097
3410
|
configUtils = createConfigUtils(config);
|
|
3098
3411
|
cacheGet = configUtils.cache.get;
|
|
3099
3412
|
cacheSet = configUtils.cache.set;
|
|
3100
3413
|
functionToCall = tailwindMerge;
|
|
3101
3414
|
return tailwindMerge(classList);
|
|
3102
|
-
}
|
|
3103
|
-
|
|
3415
|
+
};
|
|
3416
|
+
const tailwindMerge = classList => {
|
|
3104
3417
|
const cachedResult = cacheGet(classList);
|
|
3105
3418
|
if (cachedResult) {
|
|
3106
3419
|
return cachedResult;
|
|
@@ -3108,13 +3421,13 @@ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
|
|
|
3108
3421
|
const result = mergeClassList(classList, configUtils);
|
|
3109
3422
|
cacheSet(classList, result);
|
|
3110
3423
|
return result;
|
|
3111
|
-
}
|
|
3112
|
-
return function callTailwindMerge() {
|
|
3113
|
-
return functionToCall(twJoin.apply(null, arguments));
|
|
3114
3424
|
};
|
|
3115
|
-
|
|
3425
|
+
functionToCall = initTailwindMerge;
|
|
3426
|
+
return (...args) => functionToCall(twJoin(...args));
|
|
3427
|
+
};
|
|
3428
|
+
const fallbackThemeArr = [];
|
|
3116
3429
|
const fromTheme = key => {
|
|
3117
|
-
const themeGetter = theme => theme[key] ||
|
|
3430
|
+
const themeGetter = theme => theme[key] || fallbackThemeArr;
|
|
3118
3431
|
themeGetter.isThemeGetter = true;
|
|
3119
3432
|
return themeGetter;
|
|
3120
3433
|
};
|
|
@@ -7244,9 +7557,41 @@ const chatSectionStyles$2 = i$4 `
|
|
|
7244
7557
|
${scrollBarStyles}
|
|
7245
7558
|
`;
|
|
7246
7559
|
|
|
7560
|
+
// eslint-disable-next-line @nx/enforce-module-boundaries
|
|
7247
7561
|
const capitalizeEachWord = (str) => {
|
|
7248
7562
|
return str === null || str === void 0 ? void 0 : str.replace(/^\w/, (char) => char.toUpperCase());
|
|
7249
7563
|
};
|
|
7564
|
+
/**
|
|
7565
|
+
* Injects color configuration as CSS custom properties on an element's style.
|
|
7566
|
+
* @param element - The HTMLElement or CSSStyleDeclaration to apply styles to
|
|
7567
|
+
* @param colorConfig - Optional color configuration, defaults to DEFAULT_COLOR_CONFIG
|
|
7568
|
+
*/
|
|
7569
|
+
const injectColorConfig = (element, colorConfig) => {
|
|
7570
|
+
const style = element instanceof HTMLElement ? element.style : element;
|
|
7571
|
+
const config = colorConfig || DEFAULT_COLOR_CONFIG;
|
|
7572
|
+
style.setProperty('--chatbot-icon-bg-color', config.chatbotIcon.backgroundColor);
|
|
7573
|
+
style.setProperty('--chatbot-icon-color', config.chatbotIcon.iconColor);
|
|
7574
|
+
style.setProperty('--navbar-bg-color', config.welcomeScreen.navbar.backgroundColor);
|
|
7575
|
+
style.setProperty('--navbar-font-color', config.welcomeScreen.navbar.fontColor);
|
|
7576
|
+
style.setProperty('--welcome-prompts-bg-color', config.welcomeScreen.welcomePrompts.backgroundColor);
|
|
7577
|
+
style.setProperty('--welcome-prompts-font-color', config.welcomeScreen.welcomePrompts.fontColor);
|
|
7578
|
+
style.setProperty('--previous-thread-bg-color', config.welcomeScreen.previousThread.backgroundColor);
|
|
7579
|
+
style.setProperty('--previous-thread-font-color', config.welcomeScreen.previousThread.fontColor);
|
|
7580
|
+
style.setProperty('--bot-message-bg-color', config.chatMessages.bot.backgroundColor);
|
|
7581
|
+
style.setProperty('--bot-message-font-color', config.chatMessages.bot.fontColor);
|
|
7582
|
+
style.setProperty('--user-message-bg-color', config.chatMessages.user.backgroundColor);
|
|
7583
|
+
style.setProperty('--user-message-font-color', config.chatMessages.user.fontColor);
|
|
7584
|
+
style.setProperty('--custom-prompt-bg-color', config.customPrompts.backgroundColor);
|
|
7585
|
+
style.setProperty('--custom-prompt-font-color', config.customPrompts.fontColor);
|
|
7586
|
+
style.setProperty('--custom-prompt-border-color', config.customPrompts.borderColor);
|
|
7587
|
+
style.setProperty('--product-tile-bg-color', config.productTiles.backgroundColor);
|
|
7588
|
+
style.setProperty('--product-tile-border-color', config.productTiles.borderColor);
|
|
7589
|
+
style.setProperty('--product-tile-image-bg-color', config.productTiles.imageBackground);
|
|
7590
|
+
style.setProperty('--product-tile-view-button-bg-color', config.productTiles.viewButton.backgroundColor);
|
|
7591
|
+
style.setProperty('--product-tile-view-button-font-color', config.productTiles.viewButton.fontColor);
|
|
7592
|
+
style.setProperty('--chat-nudge-bg-color', config.chatNudge.backgroundColor);
|
|
7593
|
+
style.setProperty('--chat-nudge-font-color', config.chatNudge.fontColor);
|
|
7594
|
+
};
|
|
7250
7595
|
/**
|
|
7251
7596
|
* For the time being we are disabling the welcome flow so commenting out this
|
|
7252
7597
|
* once we decide to bring back the welcome flow we will uncomment this code
|
|
@@ -11129,8 +11474,8 @@ const chatSectionStyles = i$4 `
|
|
|
11129
11474
|
.chatbot-section.welcome {
|
|
11130
11475
|
background: linear-gradient(
|
|
11131
11476
|
to bottom,
|
|
11132
|
-
#000 0%,
|
|
11133
|
-
#000 9.875em,
|
|
11477
|
+
var(--navbar-bg-color, #000) 0%,
|
|
11478
|
+
var(--navbar-bg-color, #000) 9.875em,
|
|
11134
11479
|
#ffffff 9.875em,
|
|
11135
11480
|
#ffffff 100%
|
|
11136
11481
|
);
|
|
@@ -11189,8 +11534,8 @@ const chatSectionStyles = i$4 `
|
|
|
11189
11534
|
}
|
|
11190
11535
|
|
|
11191
11536
|
.message.user {
|
|
11192
|
-
background: #ce9e44;
|
|
11193
|
-
color: #fafafa;
|
|
11537
|
+
background: var(--user-message-bg-color, #ce9e44);
|
|
11538
|
+
color: var(--user-message-font-color, #fafafa);
|
|
11194
11539
|
max-width: 75%;
|
|
11195
11540
|
align-self: flex-end;
|
|
11196
11541
|
padding: 0.5714em 0.8571em;
|
|
@@ -11200,12 +11545,12 @@ const chatSectionStyles = i$4 `
|
|
|
11200
11545
|
.message.bot {
|
|
11201
11546
|
display: flex;
|
|
11202
11547
|
gap: 1.1429em;
|
|
11203
|
-
color: #000000;
|
|
11548
|
+
color: var(--bot-message-font-color, #000000);
|
|
11204
11549
|
max-width: 90%;
|
|
11205
11550
|
|
|
11206
11551
|
padding: 1.1429em;
|
|
11207
11552
|
border-radius: 0.7143em;
|
|
11208
|
-
background: #fff;
|
|
11553
|
+
background: var(--bot-message-bg-color, #fff);
|
|
11209
11554
|
box-shadow: 0 0.2857em 0.4286em -0.0714em rgba(0, 0, 0, 0.1),
|
|
11210
11555
|
0 0.1429em 0.2857em -0.0714em rgba(0, 0, 0, 0.06);
|
|
11211
11556
|
|
|
@@ -11254,15 +11599,15 @@ const chatSectionStyles = i$4 `
|
|
|
11254
11599
|
.prompt {
|
|
11255
11600
|
padding: 0.5em 0.75em;
|
|
11256
11601
|
border-radius: 6px;
|
|
11257
|
-
border: 0.0625em solid #d1d5db;
|
|
11258
|
-
background: #ffffff;
|
|
11602
|
+
border: 0.0625em solid var(--custom-prompt-border-color, #d1d5db);
|
|
11603
|
+
background: var(--custom-prompt-bg-color, #ffffff);
|
|
11259
11604
|
text-decoration: none;
|
|
11260
11605
|
white-space: nowrap;
|
|
11261
11606
|
display: inline-flex;
|
|
11262
11607
|
text-wrap: wrap;
|
|
11263
11608
|
max-width: 90%;
|
|
11264
11609
|
|
|
11265
|
-
color: #18181b;
|
|
11610
|
+
color: var(--custom-prompt-font-color, #18181b);
|
|
11266
11611
|
font-size: 0.875em;
|
|
11267
11612
|
font-style: normal;
|
|
11268
11613
|
font-weight: 500;
|
|
@@ -11270,8 +11615,17 @@ const chatSectionStyles = i$4 `
|
|
|
11270
11615
|
transition: background-color 0.2s ease, border-color 0.2s ease;
|
|
11271
11616
|
|
|
11272
11617
|
&:hover {
|
|
11273
|
-
border: 0.0625em solid
|
|
11274
|
-
|
|
11618
|
+
border: 0.0625em solid
|
|
11619
|
+
color-mix(
|
|
11620
|
+
in srgb,
|
|
11621
|
+
var(--custom-prompt-border-color, #d1d5db) 80%,
|
|
11622
|
+
black
|
|
11623
|
+
);
|
|
11624
|
+
background: color-mix(
|
|
11625
|
+
in srgb,
|
|
11626
|
+
var(--custom-prompt-bg-color, #ffffff) 95%,
|
|
11627
|
+
black
|
|
11628
|
+
);
|
|
11275
11629
|
}
|
|
11276
11630
|
}
|
|
11277
11631
|
|
|
@@ -11411,7 +11765,7 @@ const productItemStyles = i$4 `
|
|
|
11411
11765
|
object-position: center;
|
|
11412
11766
|
object-fit: cover;
|
|
11413
11767
|
border-radius: 0.5em;
|
|
11414
|
-
background: #ffffff;
|
|
11768
|
+
background: var(--product-tile-image-bg-color, #ffffff);
|
|
11415
11769
|
}
|
|
11416
11770
|
}
|
|
11417
11771
|
|
|
@@ -11422,9 +11776,9 @@ const productItemStyles = i$4 `
|
|
|
11422
11776
|
align-items: flex-start;
|
|
11423
11777
|
gap: 0.375em;
|
|
11424
11778
|
border-radius: 0.625em;
|
|
11425
|
-
background-color: #fff;
|
|
11779
|
+
background-color: var(--product-tile-bg-color, #fff);
|
|
11426
11780
|
box-sizing: border-box;
|
|
11427
|
-
border: 0.03125em solid #cbd5e1;
|
|
11781
|
+
border: 0.03125em solid var(--product-tile-border-color, #cbd5e1);
|
|
11428
11782
|
}
|
|
11429
11783
|
|
|
11430
11784
|
.content {
|
|
@@ -11534,8 +11888,8 @@ const productItemStyles = i$4 `
|
|
|
11534
11888
|
align-items: center;
|
|
11535
11889
|
gap: 0.5714em;
|
|
11536
11890
|
border-radius: 0.4286em;
|
|
11537
|
-
background: #18181b;
|
|
11538
|
-
color: #fafafa;
|
|
11891
|
+
background: var(--product-tile-view-button-bg-color, #18181b);
|
|
11892
|
+
color: var(--product-tile-view-button-font-color, #fafafa);
|
|
11539
11893
|
font-style: normal;
|
|
11540
11894
|
font-weight: 500;
|
|
11541
11895
|
line-height: 100%;
|
|
@@ -12045,7 +12399,7 @@ const chatIconStyles = i$4 `
|
|
|
12045
12399
|
gap: 0.625em;
|
|
12046
12400
|
aspect-ratio: 1/1;
|
|
12047
12401
|
border-radius: 1.8125em;
|
|
12048
|
-
background: #444;
|
|
12402
|
+
background: var(--chatbot-icon-bg-color, #444);
|
|
12049
12403
|
box-shadow: 0 0.25em 0.375em -0.0625em rgba(0, 0, 0, 0.1),
|
|
12050
12404
|
0 0.125em 0.25em -0.0625em rgba(0, 0, 0, 0.06);
|
|
12051
12405
|
cursor: pointer;
|
|
@@ -12067,17 +12421,57 @@ const chatIconStyles = i$4 `
|
|
|
12067
12421
|
width: 1.625em;
|
|
12068
12422
|
height: 1.5em;
|
|
12069
12423
|
flex-shrink: 0;
|
|
12070
|
-
fill: #fff;
|
|
12424
|
+
fill: var(--chatbot-icon-color, #fff);
|
|
12425
|
+
}
|
|
12426
|
+
|
|
12427
|
+
/* Size variants - scale the entire icon */
|
|
12428
|
+
.chat-icon.size-small {
|
|
12429
|
+
width: 2.5em;
|
|
12430
|
+
height: 2.5em;
|
|
12431
|
+
padding: 0.6897em;
|
|
12432
|
+
|
|
12433
|
+
.icon-container {
|
|
12434
|
+
width: 1.3794em;
|
|
12435
|
+
height: 1.3794em;
|
|
12436
|
+
|
|
12437
|
+
svg {
|
|
12438
|
+
width: 1.1206em;
|
|
12439
|
+
height: 1.0346em;
|
|
12440
|
+
}
|
|
12441
|
+
}
|
|
12442
|
+
}
|
|
12443
|
+
|
|
12444
|
+
.chat-icon.size-medium {
|
|
12445
|
+
width: 3.625em;
|
|
12446
|
+
height: 3.625em;
|
|
12447
|
+
padding: 1em;
|
|
12448
|
+
}
|
|
12449
|
+
|
|
12450
|
+
.chat-icon.size-large {
|
|
12451
|
+
width: 5em;
|
|
12452
|
+
height: 5em;
|
|
12453
|
+
padding: 1.3793em;
|
|
12454
|
+
|
|
12455
|
+
.icon-container {
|
|
12456
|
+
width: 2.7586em;
|
|
12457
|
+
height: 2.7586em;
|
|
12458
|
+
|
|
12459
|
+
svg {
|
|
12460
|
+
width: 2.2414em;
|
|
12461
|
+
height: 2.069em;
|
|
12462
|
+
}
|
|
12463
|
+
}
|
|
12071
12464
|
}
|
|
12072
12465
|
`;
|
|
12073
12466
|
|
|
12074
12467
|
const chatIcon = b `<svg xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24" fill="none">
|
|
12075
|
-
<path d="M20.6667 4.00001V12C20.6667 14.0227 19.0227 15.6667 17 15.6667H5.90133C5.57867 15.6667 5.26533 15.7587 4.996 15.9347L2.57467 17.504C2.29867 17.684 1.984 17.7733 1.66667 17.7733C1.39333 17.7733 1.12 17.7053 0.869333 17.5707C0.333333 17.2787 0 16.7173 0 16.1067V4.00001C0 1.97734 1.644 0.333344 3.66667 0.333344H17C19.0227 0.333344 20.6667 1.97734 20.6667 4.00001ZM22.6667 5.68001V12C22.6667 15.12 20.12 17.6667 17 17.6667H6L5.41333 18.0533C5.74667 19.7333 7.22667 21 9 21H19.3067C20.1467 21 20.96 21.24 21.6667 21.6933L23.4267 22.84C23.7067 23.0133 24.0133 23.1067 24.3333 23.1067C24.6133 23.1067 24.88 23.04 25.1333 22.9067C25.6667 22.6133 26 22.0533 26 21.44V9.33334C26 7.41334 24.5333 5.85334 22.6667 5.68001Z"
|
|
12468
|
+
<path d="M20.6667 4.00001V12C20.6667 14.0227 19.0227 15.6667 17 15.6667H5.90133C5.57867 15.6667 5.26533 15.7587 4.996 15.9347L2.57467 17.504C2.29867 17.684 1.984 17.7733 1.66667 17.7733C1.39333 17.7733 1.12 17.7053 0.869333 17.5707C0.333333 17.2787 0 16.7173 0 16.1067V4.00001C0 1.97734 1.644 0.333344 3.66667 0.333344H17C19.0227 0.333344 20.6667 1.97734 20.6667 4.00001ZM22.6667 5.68001V12C22.6667 15.12 20.12 17.6667 17 17.6667H6L5.41333 18.0533C5.74667 19.7333 7.22667 21 9 21H19.3067C20.1467 21 20.96 21.24 21.6667 21.6933L23.4267 22.84C23.7067 23.0133 24.0133 23.1067 24.3333 23.1067C24.6133 23.1067 24.88 23.04 25.1333 22.9067C25.6667 22.6133 26 22.0533 26 21.44V9.33334C26 7.41334 24.5333 5.85334 22.6667 5.68001Z"/>
|
|
12076
12469
|
</svg>`;
|
|
12077
12470
|
class ChatIcon extends ElementWithStylesheet {
|
|
12078
12471
|
render() {
|
|
12472
|
+
const sizeClass = this.size ? `size-${this.size}` : '';
|
|
12079
12473
|
return x `
|
|
12080
|
-
<div class="chat-icon">
|
|
12474
|
+
<div class="chat-icon ${sizeClass}">
|
|
12081
12475
|
${this.chatbotIconUrl
|
|
12082
12476
|
? x `<img
|
|
12083
12477
|
src=${this.chatbotIconUrl}
|
|
@@ -12095,6 +12489,10 @@ __decorate([
|
|
|
12095
12489
|
n$1({ type: String }),
|
|
12096
12490
|
__metadata("design:type", String)
|
|
12097
12491
|
], ChatIcon.prototype, "chatbotIconUrl", void 0);
|
|
12492
|
+
__decorate([
|
|
12493
|
+
n$1({ type: String }),
|
|
12494
|
+
__metadata("design:type", String)
|
|
12495
|
+
], ChatIcon.prototype, "size", void 0);
|
|
12098
12496
|
if (!customElements.get('chat-icon-v2')) {
|
|
12099
12497
|
customElements.define('chat-icon-v2', ChatIcon);
|
|
12100
12498
|
}
|
|
@@ -12111,13 +12509,13 @@ const navbarStyles = i$4 `
|
|
|
12111
12509
|
justify-content: space-between;
|
|
12112
12510
|
align-items: center;
|
|
12113
12511
|
align-self: stretch;
|
|
12114
|
-
background: #000000;
|
|
12512
|
+
background: var(--navbar-bg-color, #000000);
|
|
12115
12513
|
gap: 0.5em;
|
|
12116
12514
|
height: 4.5em;
|
|
12117
12515
|
box-sizing: border-box;
|
|
12118
12516
|
|
|
12119
12517
|
.thread-title {
|
|
12120
|
-
color: #fff;
|
|
12518
|
+
color: var(--navbar-font-color, #fff);
|
|
12121
12519
|
font-size: 1em;
|
|
12122
12520
|
font-style: normal;
|
|
12123
12521
|
font-weight: 400;
|
|
@@ -12563,7 +12961,7 @@ const welcomeHeaderStyles = i$4 `
|
|
|
12563
12961
|
align-items: flex-start;
|
|
12564
12962
|
width: 100%;
|
|
12565
12963
|
height: 9.875em;
|
|
12566
|
-
background: #000;
|
|
12964
|
+
background: var(--navbar-bg-color, #000);
|
|
12567
12965
|
box-sizing: border-box;
|
|
12568
12966
|
}
|
|
12569
12967
|
|
|
@@ -12590,7 +12988,7 @@ const welcomeHeaderStyles = i$4 `
|
|
|
12590
12988
|
.message-section {
|
|
12591
12989
|
margin-top: 0.25em;
|
|
12592
12990
|
align-self: stretch;
|
|
12593
|
-
color: #fff;
|
|
12991
|
+
color: var(--navbar-font-color, #fff);
|
|
12594
12992
|
font-size: 1em;
|
|
12595
12993
|
font-style: normal;
|
|
12596
12994
|
font-weight: 600;
|
|
@@ -12620,7 +13018,7 @@ const welcomeHeaderStyles = i$4 `
|
|
|
12620
13018
|
}
|
|
12621
13019
|
|
|
12622
13020
|
.status-text {
|
|
12623
|
-
color: #fff;
|
|
13021
|
+
color: var(--navbar-font-color, #fff);
|
|
12624
13022
|
font-size: 0.75em;
|
|
12625
13023
|
font-style: normal;
|
|
12626
13024
|
font-weight: 500;
|
|
@@ -12709,7 +13107,7 @@ const welcomePromptStyles = i$4 `
|
|
|
12709
13107
|
align-self: stretch;
|
|
12710
13108
|
border-radius: 0.375em;
|
|
12711
13109
|
border: 0.0625em solid #e5e7eb;
|
|
12712
|
-
background: #ffffff;
|
|
13110
|
+
background: var(--welcome-prompts-bg-color, #ffffff);
|
|
12713
13111
|
box-shadow: 0 0.0625em 0.125em 0 rgba(0, 0, 0, 0.05);
|
|
12714
13112
|
cursor: pointer;
|
|
12715
13113
|
width: 100%;
|
|
@@ -12761,7 +13159,7 @@ const welcomePromptStyles = i$4 `
|
|
|
12761
13159
|
|
|
12762
13160
|
.prompt-text {
|
|
12763
13161
|
flex: 1;
|
|
12764
|
-
color: #18181b;
|
|
13162
|
+
color: var(--welcome-prompts-font-color, #18181b);
|
|
12765
13163
|
font-size: 0.875em;
|
|
12766
13164
|
font-style: normal;
|
|
12767
13165
|
font-weight: 500;
|
|
@@ -12899,8 +13297,9 @@ const previousThreadStyles = i$4 `
|
|
|
12899
13297
|
align-items: center;
|
|
12900
13298
|
align-self: stretch;
|
|
12901
13299
|
border-radius: 0.375em;
|
|
12902
|
-
border: 0.0625em solid
|
|
12903
|
-
|
|
13300
|
+
border: 0.0625em solid
|
|
13301
|
+
color-mix(in srgb, var(--previous-thread-bg-color, #ce9e44) 80%, black);
|
|
13302
|
+
background: var(--previous-thread-bg-color, #ce9e44);
|
|
12904
13303
|
box-shadow: 0 0.0625em 0.125em 0 rgba(0, 0, 0, 0.05);
|
|
12905
13304
|
cursor: pointer;
|
|
12906
13305
|
width: 100%;
|
|
@@ -12931,7 +13330,7 @@ const previousThreadStyles = i$4 `
|
|
|
12931
13330
|
|
|
12932
13331
|
.thread-title {
|
|
12933
13332
|
flex: 1;
|
|
12934
|
-
color: #fff;
|
|
13333
|
+
color: var(--previous-thread-font-color, #fff);
|
|
12935
13334
|
display: flex;
|
|
12936
13335
|
flex-direction: row;
|
|
12937
13336
|
gap: 0.25em;
|
|
@@ -14036,7 +14435,7 @@ const chatNudgeStyles = i$4 `
|
|
|
14036
14435
|
gap: 0.75em;
|
|
14037
14436
|
width: 16.875em;
|
|
14038
14437
|
border-radius: 0.5em;
|
|
14039
|
-
background: #fff;
|
|
14438
|
+
background: var(--chat-nudge-bg-color, #fff);
|
|
14040
14439
|
box-shadow: 0 0 2.5em 0 rgba(0, 0, 0, 0.1);
|
|
14041
14440
|
box-sizing: border-box;
|
|
14042
14441
|
}
|
|
@@ -14054,6 +14453,7 @@ const chatNudgeStyles = i$4 `
|
|
|
14054
14453
|
.close-btn {
|
|
14055
14454
|
opacity: 1;
|
|
14056
14455
|
cursor: pointer;
|
|
14456
|
+
color: var(--chat-nudge-font-color, #020617);
|
|
14057
14457
|
|
|
14058
14458
|
&:hover {
|
|
14059
14459
|
opacity: 0.5;
|
|
@@ -14062,6 +14462,10 @@ const chatNudgeStyles = i$4 `
|
|
|
14062
14462
|
&:active {
|
|
14063
14463
|
opacity: 1;
|
|
14064
14464
|
}
|
|
14465
|
+
|
|
14466
|
+
bt-lucide-icon {
|
|
14467
|
+
stroke: var(--chat-nudge-font-color, #020617);
|
|
14468
|
+
}
|
|
14065
14469
|
}
|
|
14066
14470
|
|
|
14067
14471
|
.content-section {
|
|
@@ -14072,7 +14476,7 @@ const chatNudgeStyles = i$4 `
|
|
|
14072
14476
|
}
|
|
14073
14477
|
|
|
14074
14478
|
.heading {
|
|
14075
|
-
color: #020617;
|
|
14479
|
+
color: var(--chat-nudge-font-color, #020617);
|
|
14076
14480
|
font-size: 0.875em;
|
|
14077
14481
|
font-style: normal;
|
|
14078
14482
|
font-weight: 600;
|
|
@@ -14081,7 +14485,7 @@ const chatNudgeStyles = i$4 `
|
|
|
14081
14485
|
}
|
|
14082
14486
|
|
|
14083
14487
|
.assist-message-container {
|
|
14084
|
-
color: #020617;
|
|
14488
|
+
color: var(--chat-nudge-font-color, #020617);
|
|
14085
14489
|
font-size: 0.875em;
|
|
14086
14490
|
font-style: normal;
|
|
14087
14491
|
font-weight: 400;
|
|
@@ -14106,6 +14510,10 @@ const chatNudgeStyles = i$4 `
|
|
|
14106
14510
|
height: 100%;
|
|
14107
14511
|
display: block;
|
|
14108
14512
|
object-fit: contain;
|
|
14513
|
+
|
|
14514
|
+
path {
|
|
14515
|
+
fill: var(--chat-nudge-bg-color, #fff);
|
|
14516
|
+
}
|
|
14109
14517
|
}
|
|
14110
14518
|
}
|
|
14111
14519
|
`;
|
|
@@ -14145,12 +14553,7 @@ class ChatNudge extends TWLitElement {
|
|
|
14145
14553
|
</div>
|
|
14146
14554
|
<div class="icon-container">
|
|
14147
14555
|
<div class="close-btn" @click=${this.closeNudge}>
|
|
14148
|
-
<bt-lucide-icon
|
|
14149
|
-
name="x"
|
|
14150
|
-
width="16"
|
|
14151
|
-
height="16"
|
|
14152
|
-
stroke="#020617"
|
|
14153
|
-
></bt-lucide-icon>
|
|
14556
|
+
<bt-lucide-icon name="x" width="16" height="16"></bt-lucide-icon>
|
|
14154
14557
|
</div>
|
|
14155
14558
|
</div>
|
|
14156
14559
|
<div
|
|
@@ -14312,6 +14715,7 @@ class ShopGPT extends ElementWithStylesheet {
|
|
|
14312
14715
|
connectedCallback() {
|
|
14313
14716
|
super.connectedCallback();
|
|
14314
14717
|
this.miniPopupSeen = false;
|
|
14718
|
+
injectColorConfig(this, this.colorConfig);
|
|
14315
14719
|
if (!this.view || this.view === 'overlay') {
|
|
14316
14720
|
setModalOpen(this.destination, false);
|
|
14317
14721
|
if (!this.path) {
|
|
@@ -14949,6 +15353,7 @@ class ShopGPT extends ElementWithStylesheet {
|
|
|
14949
15353
|
: x `<chat-icon-v2
|
|
14950
15354
|
.css=${this.css}
|
|
14951
15355
|
.chatbotIconUrl=${this.chatbotIconUrl}
|
|
15356
|
+
.size=${this.chatbotSize}
|
|
14952
15357
|
></chat-icon-v2>`;
|
|
14953
15358
|
return this.chatbotIconType === 'chat-icon'
|
|
14954
15359
|
? chatIconElement
|
|
@@ -15288,12 +15693,19 @@ if (typeof window != 'undefined' && typeof document != 'undefined') {
|
|
|
15288
15693
|
shopGPT.welcomePrompts = params.welcomePrompts;
|
|
15289
15694
|
shopGPT.chatbotIconUrl = params.chatbotIconUrl;
|
|
15290
15695
|
shopGPT.showBotOnLeft = params.showBotOnLeft;
|
|
15696
|
+
shopGPT.chatbotSize = params.chatbotSize;
|
|
15697
|
+
shopGPT.shouldHideBot = params.shouldHideBot;
|
|
15698
|
+
shopGPT.colorConfig = params.colorConfig;
|
|
15291
15699
|
},
|
|
15292
15700
|
loadUI() {
|
|
15293
15701
|
if (!shopGPT) {
|
|
15294
15702
|
logger.error('ShopGPT component not found!');
|
|
15295
15703
|
return;
|
|
15296
15704
|
}
|
|
15705
|
+
if (shopGPT.shouldHideBot) {
|
|
15706
|
+
logger.log('ShopGPT disabled by bot configuration rules');
|
|
15707
|
+
return;
|
|
15708
|
+
}
|
|
15297
15709
|
if (shopGPT.parentNode) {
|
|
15298
15710
|
logger.log('ShopGPT component added already!');
|
|
15299
15711
|
return;
|