dhi-copilot-ai 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21239,7 +21239,6 @@ const ConfigProvider = ({ children, value }) => {
21239
21239
  const defaultConfig = {
21240
21240
  apiUrl: void 0,
21241
21241
  companyId: void 0,
21242
- // ← Ajouté ici
21243
21242
  userToken: void 0,
21244
21243
  userId: void 0,
21245
21244
  userName: "Utilisateur",
@@ -24286,6 +24285,7 @@ const apiService = {
24286
24285
  method: "POST",
24287
24286
  headers,
24288
24287
  body: JSON.stringify(payload)
24288
+ // Le payload contiendra désormais 'category' si défini
24289
24289
  });
24290
24290
  if (!response.ok) {
24291
24291
  const detail = await response.text().catch(() => response.statusText);
@@ -24293,6 +24293,22 @@ const apiService = {
24293
24293
  }
24294
24294
  return response.json();
24295
24295
  },
24296
+ // --- SKILLS / CATEGORIES ---
24297
+ /**
24298
+ * Récupère la liste statique des catégories métier.
24299
+ * Endpoint public.
24300
+ */
24301
+ getCategories: async (apiUrl) => {
24302
+ try {
24303
+ const url = `${cleanUrl(apiUrl)}/skills/categories`;
24304
+ const response = await fetch(url);
24305
+ if (!response.ok) return [];
24306
+ return await response.json();
24307
+ } catch (error) {
24308
+ console.warn("[Fluxoon Copilot] Impossible de charger les catégories métier :", error);
24309
+ return [];
24310
+ }
24311
+ },
24296
24312
  // --- HISTORIQUE ---
24297
24313
  /** Récupère la liste des conversations (threads) existantes */
24298
24314
  getThreads: async (apiUrl, token) => {
@@ -24308,8 +24324,8 @@ const apiService = {
24308
24324
  const client2 = createClient(apiUrl);
24309
24325
  const res = await client2.get(`/chat/history/${threadId}`);
24310
24326
  const rawMessages = res.data;
24311
- const cleanedMessages = [];
24312
- let currentSources = [];
24327
+ const intermediateMessages = [];
24328
+ let sourcesPool = [];
24313
24329
  rawMessages.forEach((msg) => {
24314
24330
  if (msg.role === "tool") {
24315
24331
  const sourcesFound = msg.content.match(/SOURCE:\s*([^\n]+)/g);
@@ -24317,29 +24333,34 @@ const apiService = {
24317
24333
  const names = sourcesFound.map(
24318
24334
  (s2) => s2.replace("SOURCE:", "").trim().split("/").pop() || ""
24319
24335
  );
24320
- currentSources = [.../* @__PURE__ */ new Set([...currentSources, ...names])];
24321
- }
24322
- } else if (msg.role === "assistant") {
24323
- if (msg.content.trim() !== "") {
24324
- cleanedMessages.push({
24325
- id: `hist-${Math.random()}`,
24326
- role: "assistant",
24327
- content: msg.content,
24328
- timestamp: /* @__PURE__ */ new Date(),
24329
- sources: [...currentSources]
24330
- });
24331
- currentSources = [];
24336
+ sourcesPool = [.../* @__PURE__ */ new Set([...sourcesPool, ...names])];
24332
24337
  }
24333
- } else if (msg.role === "user") {
24334
- cleanedMessages.push({
24338
+ } else if (msg.role === "assistant" || msg.role === "user") {
24339
+ intermediateMessages.push({
24340
+ ...msg,
24335
24341
  id: `hist-${Math.random()}`,
24336
- role: "user",
24337
- content: msg.content,
24338
- timestamp: /* @__PURE__ */ new Date()
24342
+ timestamp: /* @__PURE__ */ new Date(),
24343
+ // On attache les sources collectées au message assistant
24344
+ sources: msg.role === "assistant" ? [...sourcesPool] : []
24339
24345
  });
24346
+ if (msg.role === "assistant") {
24347
+ sourcesPool = [];
24348
+ }
24340
24349
  }
24341
24350
  });
24342
- return cleanedMessages;
24351
+ const finalMessages = [];
24352
+ for (let i2 = 0; i2 < intermediateMessages.length; i2++) {
24353
+ const current = intermediateMessages[i2];
24354
+ const next = intermediateMessages[i2 + 1];
24355
+ if (current.role === "assistant") {
24356
+ if (next && next.role === "assistant") {
24357
+ next.sources = [.../* @__PURE__ */ new Set([...next.sources, ...current.sources])];
24358
+ continue;
24359
+ }
24360
+ }
24361
+ finalMessages.push(current);
24362
+ }
24363
+ return finalMessages;
24343
24364
  },
24344
24365
  // --- CONNECTEURS (RESOURCES RAG) ---
24345
24366
  /** Liste tous les connecteurs configurés */
@@ -24388,21 +24409,29 @@ const useStore = create$2((set, get) => ({
24388
24409
  // Un threadId local est généré dès le départ pour la session WelcomeScreen.
24389
24410
  // Il sera confirmé (ou remplacé) par le backend au premier envoi.
24390
24411
  threadId: generateThreadId(),
24412
+ categories: [],
24413
+ selectedCategory: null,
24391
24414
  // --- ACTIONS SYNCHRONES ---
24392
24415
  setConfig: (config) => set({ config }),
24393
24416
  setView: (view) => set({ activeView: view }),
24394
24417
  setLoading: (loading) => set({ isLoading: loading }),
24395
24418
  setShowAddForm: (show) => set({ showAddForm: show }),
24396
- clearChat: () => set({ messages: [], threadId: generateThreadId() }),
24419
+ clearChat: () => set({
24420
+ messages: [],
24421
+ threadId: generateThreadId(),
24422
+ selectedCategory: null
24423
+ // Réinitialisation de la catégorie
24424
+ }),
24397
24425
  addMessage: (message) => set((state) => ({ messages: [...state.messages, message] })),
24398
- /**
24399
- * Appelé après la réponse du backend pour synchroniser son thread_id.
24400
- * On n'écrase que si le backend renvoie quelque chose de valide.
24401
- */
24402
24426
  confirmThreadId: (id2) => {
24403
- if (id2 && id2.trim() !== "") {
24404
- set({ threadId: id2 });
24405
- }
24427
+ if (id2 && id2.trim() !== "") set({ threadId: id2 });
24428
+ },
24429
+ setSelectedCategory: (id2) => set({ selectedCategory: id2 }),
24430
+ fetchCategories: async () => {
24431
+ const { config, categories } = get();
24432
+ if (!config.apiUrl || categories.length > 0) return;
24433
+ const data = await apiService.getCategories(config.apiUrl);
24434
+ set({ categories: data });
24406
24435
  },
24407
24436
  // --- ACTIONS ASYNCHRONES ---
24408
24437
  fetchThreads: async () => {
@@ -24423,19 +24452,19 @@ const useStore = create$2((set, get) => ({
24423
24452
  loadThread: async (threadId) => {
24424
24453
  const { config } = get();
24425
24454
  if (!threadId) {
24426
- set({ threadId: generateThreadId(), messages: [], activeView: "chat" });
24455
+ set({
24456
+ threadId: generateThreadId(),
24457
+ messages: [],
24458
+ activeView: "chat",
24459
+ selectedCategory: null
24460
+ });
24427
24461
  return;
24428
24462
  }
24429
24463
  set({ isLoading: true, threadId, activeView: "chat" });
24430
24464
  try {
24431
- const history = await apiService.getHistory(
24432
- config.apiUrl,
24433
- config.userToken,
24434
- threadId
24435
- );
24465
+ const history = await apiService.getHistory(config.apiUrl, config.userToken, threadId);
24436
24466
  set({ messages: history, isLoading: false });
24437
24467
  } catch (e) {
24438
- console.error("Erreur historique:", e);
24439
24468
  set({ isLoading: false });
24440
24469
  }
24441
24470
  },
@@ -37129,19 +37158,72 @@ const FilePill = ({ file, onRemove }) => {
37129
37158
  }
37130
37159
  );
37131
37160
  };
37161
+ const CategoryMenu = ({ onClose }) => {
37162
+ const { categories, selectedCategory, setSelectedCategory } = useStore();
37163
+ const { primaryColor } = useConfig();
37164
+ const handleSelect = (id2) => {
37165
+ setSelectedCategory(id2);
37166
+ onClose();
37167
+ };
37168
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
37169
+ motion.div,
37170
+ {
37171
+ initial: { opacity: 0, y: 10, scale: 0.95 },
37172
+ animate: { opacity: 1, y: 0, scale: 1 },
37173
+ exit: { opacity: 0, y: 10, scale: 0.95 },
37174
+ className: "absolute bottom-full left-0 mb-2 w-full max-w-[320px] bg-white/95 backdrop-blur-xl border border-slate-200 rounded-3xl shadow-2xl overflow-hidden z-50",
37175
+ children: [
37176
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-4 border-b border-slate-100 flex items-center justify-between bg-slate-50/50", children: [
37177
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
37178
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Sparkles, { size: 14, className: "text-amber-500" }),
37179
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-black text-slate-700 uppercase tracking-wider", children: "Modes de recherche" })
37180
+ ] }),
37181
+ /* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: onClose, className: "p-1 hover:bg-slate-200 rounded-lg transition-colors border-none bg-transparent cursor-pointer", children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 14, className: "text-slate-400" }) })
37182
+ ] }),
37183
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-h-[350px] overflow-y-auto custom-scrollbar p-2 space-y-1", children: [
37184
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
37185
+ "button",
37186
+ {
37187
+ onClick: () => handleSelect(null),
37188
+ className: `w-full flex items-start gap-3 p-3 rounded-2xl transition-all border-none cursor-pointer text-left ${!selectedCategory ? "bg-blue-50" : "bg-transparent hover:bg-slate-50"}`,
37189
+ children: [
37190
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-2 bg-white rounded-xl shadow-sm", children: "🤖" }),
37191
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
37192
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-xs font-bold ${!selectedCategory ? "text-blue-600" : "text-slate-700"}`, children: "Routage Automatique" }),
37193
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[10px] text-slate-400 leading-tight", children: "L'IA choisit le meilleur outil selon votre demande." })
37194
+ ] })
37195
+ ]
37196
+ }
37197
+ ),
37198
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-px bg-slate-100 my-2 mx-2" }),
37199
+ categories.map((cat) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
37200
+ "button",
37201
+ {
37202
+ onClick: () => handleSelect(cat.id),
37203
+ className: `w-full flex items-start gap-3 p-3 rounded-2xl transition-all border-none cursor-pointer text-left ${selectedCategory === cat.id ? "bg-blue-50" : "bg-transparent hover:bg-slate-50"}`,
37204
+ children: [
37205
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-2 bg-white rounded-xl shadow-sm text-base", children: cat.icon }),
37206
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1", children: [
37207
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-xs font-bold ${selectedCategory === cat.id ? "text-blue-600" : "text-slate-700"}`, children: cat.label }),
37208
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[10px] text-slate-400 leading-tight line-clamp-2", children: cat.description })
37209
+ ] }),
37210
+ selectedCategory === cat.id && /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { size: 14, className: "text-blue-500 mt-1" })
37211
+ ]
37212
+ },
37213
+ cat.id
37214
+ ))
37215
+ ] })
37216
+ ]
37217
+ }
37218
+ );
37219
+ };
37132
37220
  const ChatInput = ({ onSend, disabled }) => {
37133
37221
  const [text2, setText] = reactExports.useState("");
37134
37222
  const [files, setFiles] = reactExports.useState([]);
37135
- const { config } = useStore();
37223
+ const [isMenuOpen, setIsMenuOpen] = reactExports.useState(false);
37224
+ const { config, selectedCategory, categories } = useStore();
37136
37225
  const fileInputRef = reactExports.useRef(null);
37137
- const handleFileChange = (e) => {
37138
- if (e.target.files) {
37139
- setFiles([...files, ...Array.from(e.target.files)]);
37140
- }
37141
- };
37142
- const removeFile = (index2) => {
37143
- setFiles(files.filter((_, i2) => i2 !== index2));
37144
- };
37226
+ const activeCat = categories.find((c) => c.id === selectedCategory);
37145
37227
  const submit = () => {
37146
37228
  if ((text2.trim() || files.length > 0) && !disabled) {
37147
37229
  onSend(text2, files);
@@ -37149,51 +37231,58 @@ const ChatInput = ({ onSend, disabled }) => {
37149
37231
  setFiles([]);
37150
37232
  }
37151
37233
  };
37152
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-3", children: [
37153
- /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: files.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-2 animate-in fade-in slide-in-from-bottom-2", children: files.map((file, i2) => /* @__PURE__ */ jsxRuntimeExports.jsx(FilePill, { file, onRemove: () => removeFile(i2) }, i2)) }) }),
37154
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex items-end gap-2 bg-white/70 backdrop-blur-md border border-slate-200 rounded-2xl p-2 focus-within:border-blue-400 transition-all shadow-sm", children: [
37155
- /* @__PURE__ */ jsxRuntimeExports.jsx(
37156
- "input",
37157
- {
37158
- type: "file",
37159
- multiple: true,
37160
- ref: fileInputRef,
37161
- onChange: handleFileChange,
37162
- className: "hidden"
37163
- }
37164
- ),
37165
- /* @__PURE__ */ jsxRuntimeExports.jsx(
37166
- "button",
37167
- {
37168
- onClick: () => {
37169
- var _a2;
37170
- return (_a2 = fileInputRef.current) == null ? void 0 : _a2.click();
37171
- },
37172
- className: "p-2 text-slate-400 hover:text-blue-600 transition-colors border-none bg-transparent cursor-pointer",
37173
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Paperclip, { size: 20 })
37174
- }
37175
- ),
37176
- /* @__PURE__ */ jsxRuntimeExports.jsx(
37177
- "textarea",
37178
- {
37179
- rows: 1,
37180
- value: text2,
37181
- onChange: (e) => setText(e.target.value),
37182
- onKeyDown: (e) => e.key === "Enter" && !e.shiftKey && (e.preventDefault(), submit()),
37183
- placeholder: "Envoyez un message ou un fichier...",
37184
- className: "w-full bg-transparent border-none focus:ring-0 resize-none py-2 text-[14px] text-slate-700 max-h-32 outline-none"
37185
- }
37186
- ),
37187
- /* @__PURE__ */ jsxRuntimeExports.jsx(
37188
- "button",
37189
- {
37190
- onClick: submit,
37191
- disabled: !text2.trim() && files.length === 0 || disabled,
37192
- className: "p-2 rounded-xl text-white disabled:opacity-30 transition-all border-none cursor-pointer",
37193
- style: { backgroundColor: config.primaryColor },
37194
- children: disabled ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { size: 20, className: "animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(SendHorizontal, { size: 20 })
37195
- }
37196
- )
37234
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative space-y-3", children: [
37235
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: isMenuOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(CategoryMenu, { onClose: () => setIsMenuOpen(false) }) }),
37236
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: files.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-2 mb-2", children: files.map((file, i2) => /* @__PURE__ */ jsxRuntimeExports.jsx(FilePill, { file, onRemove: () => setFiles(files.filter((_, idx) => idx !== i2)) }, i2)) }) }),
37237
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex flex-col bg-white/70 backdrop-blur-md border border-slate-200 rounded-[24px] overflow-hidden focus-within:border-blue-400 transition-all shadow-sm", children: [
37238
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-end gap-2 p-2", children: [
37239
+ /* @__PURE__ */ jsxRuntimeExports.jsx("input", { type: "file", multiple: true, ref: fileInputRef, className: "hidden", onChange: (e) => e.target.files && setFiles([...files, ...Array.from(e.target.files)]) }),
37240
+ /* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => {
37241
+ var _a2;
37242
+ return (_a2 = fileInputRef.current) == null ? void 0 : _a2.click();
37243
+ }, className: "p-2 text-slate-400 hover:text-blue-600 transition-colors border-none bg-transparent cursor-pointer", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Paperclip, { size: 20 }) }),
37244
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
37245
+ "textarea",
37246
+ {
37247
+ rows: 1,
37248
+ value: text2,
37249
+ onChange: (e) => setText(e.target.value),
37250
+ onKeyDown: (e) => e.key === "Enter" && !e.shiftKey && (e.preventDefault(), submit()),
37251
+ placeholder: "Posez votre question...",
37252
+ className: "w-full bg-transparent border-none focus:ring-0 resize-none py-2 text-[14px] text-slate-700 max-h-32 outline-none"
37253
+ }
37254
+ ),
37255
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
37256
+ "button",
37257
+ {
37258
+ onClick: submit,
37259
+ disabled: !text2.trim() && files.length === 0 || disabled,
37260
+ className: "p-2.5 rounded-xl text-white disabled:opacity-30 transition-all border-none cursor-pointer shrink-0",
37261
+ style: { backgroundColor: config.primaryColor },
37262
+ children: disabled ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { size: 18, className: "animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(SendHorizontal, { size: 18 })
37263
+ }
37264
+ )
37265
+ ] }),
37266
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "px-3 py-2 bg-slate-50/50 border-t border-slate-100 flex items-center justify-between", children: [
37267
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
37268
+ "button",
37269
+ {
37270
+ onClick: () => setIsMenuOpen(!isMenuOpen),
37271
+ className: `
37272
+ flex items-center gap-2 px-2.5 py-1 rounded-lg border transition-all cursor-pointer
37273
+ ${selectedCategory ? "bg-white border-blue-200 text-blue-600 shadow-sm" : "bg-transparent border-transparent text-slate-400 hover:text-slate-600"}
37274
+ `,
37275
+ children: [
37276
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Sparkles, { size: 12, className: selectedCategory ? "text-blue-500" : "" }),
37277
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[10px] font-bold uppercase tracking-tight", children: [
37278
+ "Mode : ",
37279
+ activeCat ? activeCat.label : "Automatique"
37280
+ ] })
37281
+ ]
37282
+ }
37283
+ ),
37284
+ selectedCategory && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[9px] font-medium text-slate-400 italic animate-in fade-in", children: "Précision accrue activée" })
37285
+ ] })
37197
37286
  ] })
37198
37287
  ] });
37199
37288
  };
@@ -37201,8 +37290,7 @@ const WelcomeScreen = ({ onSuggestion }) => {
37201
37290
  const { botName, logoUrl, primaryColor } = useConfig();
37202
37291
  const suggestions = [
37203
37292
  { label: "Je veux une liste des employés ?", icon: Sparkles },
37204
- { label: "Quelles sont les ressources de l'entreprise disponibles ?", icon: MessageCircle },
37205
- { label: "Résume-moi le dernier document RH", icon: FileText }
37293
+ { label: "Quel est le matériel de l'entreprise disponibles ?", icon: MessageCircle }
37206
37294
  ];
37207
37295
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center p-8 text-center animate-in fade-in zoom-in duration-500", children: [
37208
37296
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative mb-6", children: [
@@ -37260,7 +37348,11 @@ const ChatView = () => {
37260
37348
  isLoading,
37261
37349
  threadId,
37262
37350
  confirmThreadId,
37263
- config: storeConfig
37351
+ config: storeConfig,
37352
+ // --- Nouveautés Catégories ---
37353
+ selectedCategory,
37354
+ categories,
37355
+ fetchCategories
37264
37356
  } = useStore();
37265
37357
  const configContext = useConfig();
37266
37358
  const { initialMessage, botName, userName } = configContext;
@@ -37268,6 +37360,11 @@ const ChatView = () => {
37268
37360
  const userToken = (configContext == null ? void 0 : configContext.userToken) || (storeConfig == null ? void 0 : storeConfig.userToken);
37269
37361
  const companyId = (configContext == null ? void 0 : configContext.companyId) || (storeConfig == null ? void 0 : storeConfig.companyId);
37270
37362
  const scrollRef = reactExports.useRef(null);
37363
+ reactExports.useEffect(() => {
37364
+ if (apiUrl) {
37365
+ fetchCategories();
37366
+ }
37367
+ }, [apiUrl, fetchCategories]);
37271
37368
  reactExports.useEffect(() => {
37272
37369
  if (scrollRef.current) {
37273
37370
  scrollRef.current.scrollTo({
@@ -37290,25 +37387,14 @@ const ChatView = () => {
37290
37387
  addMessage({
37291
37388
  id: "err-company-" + Date.now(),
37292
37389
  role: "assistant",
37293
- content: "⚠️ **Identifiant d'entreprise manquant.**\n\nVeuillez configurer l'identifiant de l'entreprise`. Cette information est indispensable pour acheminer vos messages vers le bon assistant.",
37390
+ content: "⚠️ **Identifiant d'entreprise manquant.**\n\nVeuillez configurer l'identifiant de l'entreprise. Cette information est indispensable.",
37294
37391
  timestamp: /* @__PURE__ */ new Date()
37295
37392
  });
37296
37393
  setLoading(false);
37297
37394
  }, 600);
37298
37395
  return;
37299
37396
  }
37300
- if (!apiUrl) {
37301
- console.error(
37302
- "[DHI Copilot] apiUrl manquant. Vérifiez la prop `config` sur <dhi-copilot-ai>."
37303
- );
37304
- addMessage({
37305
- id: "err-config-" + Date.now(),
37306
- role: "assistant",
37307
- content: "⚠️ **Configuration manquante.**\n\nL'URL du serveur n'est pas définie. Veuillez vérifier l'intégration du widget.",
37308
- timestamp: /* @__PURE__ */ new Date()
37309
- });
37310
- return;
37311
- }
37397
+ if (!apiUrl) return;
37312
37398
  let displayContent = text2.trim();
37313
37399
  if (files.length > 0) {
37314
37400
  const fileList = files.map((f2) => `📄 ${f2.name}`).join("\n");
@@ -37334,11 +37420,13 @@ ${fileList}`;
37334
37420
  if (files.length > 0) {
37335
37421
  finalPrompt = finalPrompt ? `${finalPrompt}
37336
37422
 
37337
- (Contexte : L'utilisateur a joint les fichiers suivants pour analyse : ${fileNames})` : `Analyse les documents suivants que je viens de t'envoyer : ${fileNames}.`;
37423
+ (Contexte : Fichiers joints : ${fileNames})` : `Analyse les documents suivants : ${fileNames}`;
37338
37424
  }
37339
37425
  const data = await apiService.sendMessage(apiUrl, companyId, userToken, {
37340
37426
  message: finalPrompt,
37341
- thread_id: currentThreadId
37427
+ thread_id: currentThreadId,
37428
+ category: selectedCategory
37429
+ // ← Envoi de l'ID (ex: "remunerations") ou null
37342
37430
  });
37343
37431
  if (data == null ? void 0 : data.thread_id) {
37344
37432
  confirmThreadId(data.thread_id);
@@ -37351,11 +37439,11 @@ ${fileList}`;
37351
37439
  timestamp: /* @__PURE__ */ new Date()
37352
37440
  });
37353
37441
  } catch (error) {
37354
- console.error("[DHI Copilot] Chat Error:", error);
37442
+ console.error("[Fluxoon Copilot] Chat Error:", error);
37355
37443
  addMessage({
37356
37444
  id: "err-" + Date.now(),
37357
37445
  role: "assistant",
37358
- content: "⚠️ **Connexion interrompue.**\n\nLe serveur **Fluxoon Copilot** ne répond pas. Vérifiez votre connexion ou contactez le support.",
37446
+ content: "⚠️ **Connexion interrompue.**\n\nLe serveur ne répond pas. Vérifiez votre configuration réseau.",
37359
37447
  timestamp: /* @__PURE__ */ new Date()
37360
37448
  });
37361
37449
  } finally {
@@ -37368,46 +37456,37 @@ ${fileList}`;
37368
37456
  "div",
37369
37457
  {
37370
37458
  ref: scrollRef,
37371
- className: "flex-1 overflow-y-auto px-4 py-6 space-y-6 custom-scrollbar scroll-smooth",
37372
- children: messages.length === 0 && !isLoading ? (
37373
- /* CAS 1 : Aucune conversation — WelcomeScreen */
37374
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-6 animate-in fade-in duration-700", children: [
37375
- /* @__PURE__ */ jsxRuntimeExports.jsx(
37376
- MessageBubble,
37377
- {
37378
- message: {
37379
- id: "virtual-intro",
37380
- role: "assistant",
37381
- content: formattedIntro,
37382
- timestamp: /* @__PURE__ */ new Date()
37383
- }
37384
- }
37385
- ),
37386
- /* @__PURE__ */ jsxRuntimeExports.jsx(
37387
- WelcomeScreen,
37388
- {
37389
- onSuggestion: (suggestion) => handleSendMessage(suggestion)
37459
+ className: "flex-1 overflow-y-auto overflow-x-hidden px-4 py-6 space-y-6 custom-scrollbar scroll-smooth break-words",
37460
+ children: messages.length === 0 && !isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-6 animate-in fade-in duration-700 w-full overflow-x-hidden", children: [
37461
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
37462
+ MessageBubble,
37463
+ {
37464
+ message: {
37465
+ id: "virtual-intro",
37466
+ role: "assistant",
37467
+ content: formattedIntro,
37468
+ timestamp: /* @__PURE__ */ new Date()
37390
37469
  }
37391
- )
37392
- ] })
37393
- ) : (
37394
- /* CAS 2 : Conversation active */
37395
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col min-h-full", children: [
37396
- messages.map((msg) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageBubble, { message: msg }, msg.id)),
37397
- isLoading && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) })
37398
- ] })
37399
- )
37470
+ }
37471
+ ),
37472
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
37473
+ WelcomeScreen,
37474
+ {
37475
+ onSuggestion: (suggestion) => handleSendMessage(suggestion)
37476
+ }
37477
+ )
37478
+ ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col min-h-full w-full overflow-x-hidden", children: [
37479
+ messages.map((msg) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageBubble, { message: msg }, msg.id)),
37480
+ isLoading && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) })
37481
+ ] })
37400
37482
  }
37401
37483
  ),
37402
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-4 bg-white/40 backdrop-blur-xl border-t border-black/[0.03] shadow-[0_-10px_30px_rgba(0,0,0,0.02)]", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-[480px] mx-auto", children: [
37484
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-4 bg-white/40 backdrop-blur-xl border-t border-black/[0.03] shadow-[0_-10px_30px_rgba(0,0,0,0.02)] shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-[94%] max-w-[680px] mx-auto", children: [
37403
37485
  /* @__PURE__ */ jsxRuntimeExports.jsx(ChatInput, { onSend: handleSendMessage, disabled: isLoading }),
37404
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-center items-center gap-4 mt-3", children: [
37405
- /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[9px] text-slate-400 font-bold uppercase tracking-widest flex items-center gap-1", children: [
37406
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1 h-1 rounded-full bg-emerald-500" }),
37407
- "RAG Active"
37408
- ] }),
37409
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[9px] text-slate-300 font-medium italic", children: "Vérifiez les sources citées." })
37410
- ] })
37486
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center items-center gap-4 mt-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[9px] text-slate-400 font-bold uppercase tracking-widest flex items-center gap-1", children: [
37487
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1 h-1 rounded-full bg-emerald-500" }),
37488
+ "Fluxoon Multi-Skill Active"
37489
+ ] }) })
37411
37490
  ] }) })
37412
37491
  ] });
37413
37492
  };
@@ -37963,21 +38042,46 @@ const SettingsView = () => {
37963
38042
  ) }) });
37964
38043
  };
37965
38044
  const Navbar = ({ activeView, setView, onClose }) => {
37966
- const { config } = useStore();
38045
+ const { config, loadThread } = useStore();
37967
38046
  const menuItems = [
37968
38047
  { id: "chat", icon: MessageSquare, label: "Chat" },
37969
38048
  { id: "history", icon: Clock, label: "Historique" },
37970
38049
  { id: "settings", icon: Settings, label: "Sources" }
37971
38050
  ];
37972
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("nav", { className: "flex items-center justify-between px-5 py-4 bg-white/40 backdrop-blur-xl border-b border-black/[0.03] shrink-0", children: [
37973
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex bg-slate-200/50 p-1 rounded-xl gap-1", children: menuItems.map((item) => {
38051
+ const handleNewChat = () => {
38052
+ loadThread(null);
38053
+ setView("chat");
38054
+ };
38055
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("nav", { className: "flex items-center justify-between px-5 py-2 bg-white/40 backdrop-blur-xl border-b border-black/[0.03] shrink-0 z-10", children: [
38056
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
38057
+ "button",
38058
+ {
38059
+ onClick: handleNewChat,
38060
+ title: "Démarrer une nouvelle discussion",
38061
+ style: {
38062
+ color: config.primaryColor,
38063
+ backgroundColor: `${config.primaryColor}15`
38064
+ // 15 = environ 8% d'opacité
38065
+ },
38066
+ className: "p-2 rounded-xl hover:scale-110 active:scale-95 transition-all border-none cursor-pointer flex items-center justify-center group shadow-sm",
38067
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
38068
+ Plus,
38069
+ {
38070
+ size: 20,
38071
+ strokeWidth: 3,
38072
+ className: "group-hover:rotate-90 transition-transform duration-300"
38073
+ }
38074
+ )
38075
+ }
38076
+ ),
38077
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex bg-slate-200/50 p-1 rounded-2xl gap-1", children: menuItems.map((item) => {
37974
38078
  const isActive = activeView === item.id;
37975
38079
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
37976
38080
  "button",
37977
38081
  {
37978
38082
  onClick: () => setView(item.id),
37979
38083
  className: `
37980
- flex items-center gap-2 px-3 py-1.5 rounded-lg transition-all duration-300
38084
+ flex items-center gap-2 px-3 py-1.5 rounded-xl transition-all duration-300
37981
38085
  text-xs font-bold select-none border-none cursor-pointer
37982
38086
  ${isActive ? "bg-white shadow-md" : "text-slate-400 hover:text-slate-600"}
37983
38087
  `,
@@ -38000,8 +38104,9 @@ const Navbar = ({ activeView, setView, onClose }) => {
38000
38104
  "button",
38001
38105
  {
38002
38106
  onClick: onClose,
38003
- className: "p-2 rounded-full hover:bg-red-50 hover:text-red-500 text-slate-400 transition-all border-none cursor-pointer",
38004
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 20 })
38107
+ title: "Fermer le Copilot",
38108
+ className: "p-2 rounded-xl hover:bg-red-50 hover:text-red-500 text-slate-400 transition-all border-none cursor-pointer flex items-center justify-center",
38109
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 22, strokeWidth: 2 })
38005
38110
  }
38006
38111
  )
38007
38112
  ] });
@@ -38090,36 +38195,10 @@ const Shell = ({ isOpen, setIsOpen }) => {
38090
38195
  border: "1px solid rgba(255, 255, 255, 0.3)"
38091
38196
  },
38092
38197
  className: "relative h-16 w-16 rounded-2xl flex items-center justify-center text-white cursor-pointer outline-none z-50 backdrop-blur-lg shadow-[0_8px_32px_rgba(0,0,0,0.15)] transition-shadow",
38093
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { mode: "wait", children: isOpen ? /* @__PURE__ */ jsxRuntimeExports.jsx(
38094
- motion.div,
38095
- {
38096
- initial: { rotate: -90, opacity: 0 },
38097
- animate: { rotate: 0, opacity: 1 },
38098
- exit: { rotate: 90, opacity: 0 },
38099
- className: "flex items-center justify-center",
38100
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 32, strokeWidth: 2.5 })
38101
- },
38102
- "close"
38103
- ) : /* @__PURE__ */ jsxRuntimeExports.jsxs(
38104
- motion.div,
38105
- {
38106
- initial: { scale: 0, opacity: 0 },
38107
- animate: { scale: 1, opacity: 1 },
38108
- className: "relative flex items-center justify-center",
38109
- children: [
38110
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-10 w-10 bg-white/90 rounded-xl p-1.5 shadow-inner flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logoUrl, alt: botName, className: "h-full w-full object-contain" }) }),
38111
- /* @__PURE__ */ jsxRuntimeExports.jsx(
38112
- "div",
38113
- {
38114
- style: { backgroundColor: primaryColor },
38115
- className: "absolute -top-3 -right-3 h-7 w-7 rounded-lg shadow-lg flex items-center justify-center text-white border-2 border-white",
38116
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 14, strokeWidth: 2.5 })
38117
- }
38118
- )
38119
- ]
38120
- },
38121
- "open"
38122
- ) })
38198
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { mode: "wait", children: isOpen ? /* @__PURE__ */ jsxRuntimeExports.jsx(motion.div, { initial: { rotate: -90, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 90, opacity: 0 }, className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 32, strokeWidth: 2.5 }) }, "close") : /* @__PURE__ */ jsxRuntimeExports.jsxs(motion.div, { initial: { scale: 0, opacity: 0 }, animate: { scale: 1, opacity: 1 }, className: "relative flex items-center justify-center", children: [
38199
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-10 w-10 bg-white/90 rounded-xl p-1.5 shadow-inner flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logoUrl, alt: botName, className: "h-full w-full object-contain" }) }),
38200
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { backgroundColor: primaryColor }, className: "absolute -top-3 -right-3 h-7 w-7 rounded-lg shadow-lg flex items-center justify-center text-white border-2 border-white", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 14, strokeWidth: 2.5 }) })
38201
+ ] }, "open") })
38123
38202
  }
38124
38203
  ),
38125
38204
  /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -38134,35 +38213,21 @@ const Shell = ({ isOpen, setIsOpen }) => {
38134
38213
  top: 0,
38135
38214
  [isRight ? "right" : "left"]: 0,
38136
38215
  height: "100%",
38137
- width: "100%",
38138
- maxWidth: "520px",
38216
+ // Largeur adaptive : 100% sur mobile, entre 400px et 800px sur Desktop
38217
+ width: window.innerWidth < 768 ? "100%" : "clamp(420px, 35vw, 800px)",
38139
38218
  zIndex: 40,
38140
- // ── Le fond : blanc légèrement satiné, pas transparent à 100%
38141
38219
  background: "rgba(255, 255, 255, 0.97)",
38142
38220
  backdropFilter: "blur(24px)",
38143
38221
  WebkitBackdropFilter: "blur(24px)",
38144
- // ── Bordure latérale subtilement teintée avec la couleur primaire
38145
38222
  borderLeft: isRight ? `1px solid rgba(${hexToRgb(primaryColor)}, 0.15)` : "none",
38146
38223
  borderRight: !isRight ? `1px solid rgba(${hexToRgb(primaryColor)}, 0.15)` : "none",
38147
- // ── L'ombre profonde qui marque vraiment la séparation
38148
- boxShadow: isRight ? `-24px 0 80px -8px rgba(0,0,0,0.22), -4px 0 24px -4px rgba(0,0,0,0.10), inset 1px 0 0 rgba(255,255,255,0.8)` : `24px 0 80px -8px rgba(0,0,0,0.22), 4px 0 24px -4px rgba(0,0,0,0.10), inset -1px 0 0 rgba(255,255,255,0.8)`,
38149
- overflow: "hidden"
38224
+ boxShadow: isRight ? `-24px 0 80px -8px rgba(0,0,0,0.22), -4px 0 24px -4px rgba(0,0,0,0.10)` : `24px 0 80px -8px rgba(0,0,0,0.22), 4px 0 24px -4px rgba(0,0,0,0.10)`,
38225
+ overflowY: "hidden",
38226
+ overflowX: "hidden"
38227
+ // Empêche tout scroll horizontal parasite
38150
38228
  },
38151
38229
  children: [
38152
- /* @__PURE__ */ jsxRuntimeExports.jsx(
38153
- "div",
38154
- {
38155
- style: {
38156
- position: "absolute",
38157
- top: 0,
38158
- left: 0,
38159
- right: 0,
38160
- height: "3px",
38161
- background: `linear-gradient(90deg, ${primaryColor}, ${primaryColor}88)`,
38162
- zIndex: 1
38163
- }
38164
- }
38165
- ),
38230
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: "3px", background: `linear-gradient(90deg, ${primaryColor}, ${primaryColor}88)`, zIndex: 1 } }),
38166
38231
  /* @__PURE__ */ jsxRuntimeExports.jsx(MainContainer, { close: () => setIsOpen(false) })
38167
38232
  ]
38168
38233
  },
@@ -38176,12 +38241,9 @@ function hexToRgb(hex2) {
38176
38241
  const clean = hex2.replace("#", "");
38177
38242
  const full = clean.length === 3 ? clean.split("").map((c) => c + c).join("") : clean;
38178
38243
  const num = parseInt(full, 16);
38179
- const r = num >> 16 & 255;
38180
- const g = num >> 8 & 255;
38181
- const b2 = num & 255;
38182
- return `${r}, ${g}, ${b2}`;
38244
+ return `${num >> 16 & 255}, ${num >> 8 & 255}, ${num & 255}`;
38183
38245
  }
38184
- const tailwindStyles = '/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-500:oklch(60.6% .25 292.717);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;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");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-top-3{top:calc(var(--spacing) * -3)}.top-4{top:calc(var(--spacing) * 4)}.-right-2{right:calc(var(--spacing) * -2)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:calc(var(--spacing) * 0)}.-bottom-2{bottom:calc(var(--spacing) * -2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.z-50{z-index:50}.z-\\[999999\\]{z-index:999999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-1{margin-left:calc(var(--spacing) * 1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing) * 1)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-40{height:calc(var(--spacing) * 40)}.h-auto{height:auto}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-48{max-height:calc(var(--spacing) * 48)}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing) * 1)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3\\.5{width:calc(var(--spacing) * 3.5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.max-w-\\[88\\%\\]{max-width:88%}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[160px\\]{max-width:160px}.max-w-\\[240px\\]{max-width:240px}.max-w-\\[480px\\]{max-width:480px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\\[-4px\\]{--tw-translate-x:-4px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-\\[1\\.02\\]{scale:1.02}.rotate-180{rotate:180deg}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[24px\\]{border-radius:24px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-tl-none{border-top-left-radius:0}.rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.rounded-tr-none{border-top-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-200{border-color:var(--color-amber-200)}.border-black\\/\\[0\\.03\\]{border-color:#00000008}@supports (color:color-mix(in lab,red,red)){.border-black\\/\\[0\\.03\\]{border-color:color-mix(in oklab,var(--color-black) 3%,transparent)}}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500{border-color:var(--color-blue-500)}.border-emerald-100{border-color:var(--color-emerald-100)}.border-indigo-100{border-color:var(--color-indigo-100)}.border-red-400{border-color:var(--color-red-400)}.border-slate-50{border-color:var(--color-slate-50)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\\/60{border-color:#e2e8f099}@supports (color:color-mix(in lab,red,red)){.border-slate-200\\/60{border-color:color-mix(in oklab,var(--color-slate-200) 60%,transparent)}}.border-slate-800{border-color:var(--color-slate-800)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\\/40{border-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.border-white\\/50{border-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.border-white\\/50{border-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-emerald-50\\/50{background-color:#ecfdf580}@supports (color:color-mix(in lab,red,red)){.bg-emerald-50\\/50{background-color:color-mix(in oklab,var(--color-emerald-50) 50%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-indigo-50\\/50{background-color:#eef2ff80}@supports (color:color-mix(in lab,red,red)){.bg-indigo-50\\/50{background-color:color-mix(in oklab,var(--color-indigo-50) 50%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\\/50{background-color:#f8fafc80}@supports (color:color-mix(in lab,red,red)){.bg-slate-50\\/50{background-color:color-mix(in oklab,var(--color-slate-50) 50%,transparent)}}.bg-slate-100\\/50{background-color:#f1f5f980}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\\/50{background-color:color-mix(in oklab,var(--color-slate-100) 50%,transparent)}}.bg-slate-200\\/50{background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\\/50{background-color:color-mix(in oklab,var(--color-slate-200) 50%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950{background-color:var(--color-slate-950)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-white\\/40{background-color:#fff6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/40{background-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.bg-white\\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\\/60{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.bg-white\\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\\/70{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/90{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.object-contain{object-fit:contain}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[14px\\]{font-size:14px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[0\\.2em\\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-900{color:var(--color-amber-900)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-800{color:var(--color-emerald-800)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-700{color:var(--color-indigo-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-slate-100{color:var(--color-slate-100)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-violet-500{color:var(--color-violet-500)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_-10px_30px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\]{--tw-shadow:0 -10px 30px var(--tw-shadow-color,#00000005);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_8px_32px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-50{--tw-ring-color:var(--color-blue-50)}.ring-red-500{--tw-ring-color:var(--color-red-500)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-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;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\\:bg-blue-50\\/50:is(:where(.group):hover *){background-color:#eff6ff80}@supports (color:color-mix(in lab,red,red)){.group-hover\\:bg-blue-50\\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-blue-50) 50%,transparent)}}.group-hover\\:text-blue-400:is(:where(.group):hover *){color:var(--color-blue-400)}.group-hover\\:text-blue-500:is(:where(.group):hover *){color:var(--color-blue-500)}.group-hover\\:text-slate-900:is(:where(.group):hover *){color:var(--color-slate-900)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-slate-300::placeholder{color:var(--color-slate-300)}.focus-within\\:border-blue-400:focus-within{border-color:var(--color-blue-400)}@media(hover:hover){.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:scale-\\[1\\.01\\]:hover{scale:1.01}.hover\\:border-blue-100:hover{border-color:var(--color-blue-100)}.hover\\:border-blue-200:hover{border-color:var(--color-blue-200)}.hover\\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\\:border-slate-200:hover{border-color:var(--color-slate-200)}.hover\\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-blue-600:hover{color:var(--color-blue-600)}.hover\\:text-red-500:hover{color:var(--color-red-500)}.hover\\:text-slate-600:hover{color:var(--color-slate-600)}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-blue-500\\/20:focus{--tw-ring-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-blue-500\\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.focus\\:ring-emerald-500\\/50:focus{--tw-ring-color:#00bb7f80}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-emerald-500\\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 50%, transparent)}}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.disabled\\:opacity-30:disabled{opacity:.3}@media(min-width:48rem){.md\\:col-span-2{grid-column:span 2/span 2}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}';
38246
+ const tailwindStyles = '/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-500:oklch(60.6% .25 292.717);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;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");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-top-3{top:calc(var(--spacing) * -3)}.top-4{top:calc(var(--spacing) * 4)}.-right-2{right:calc(var(--spacing) * -2)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:calc(var(--spacing) * 0)}.-bottom-2{bottom:calc(var(--spacing) * -2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-50{z-index:50}.z-\\[999999\\]{z-index:999999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-1{margin-left:calc(var(--spacing) * 1)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing) * 1)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-40{height:calc(var(--spacing) * 40)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\\[350px\\]{max-height:350px}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing) * 1)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3\\.5{width:calc(var(--spacing) * 3.5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-\\[94\\%\\]{width:94%}.w-full{width:100%}.max-w-\\[88\\%\\]{max-width:88%}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[160px\\]{max-width:160px}.max-w-\\[240px\\]{max-width:240px}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[680px\\]{max-width:680px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\\[-4px\\]{--tw-translate-x:-4px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-\\[1\\.02\\]{scale:1.02}.rotate-180{rotate:180deg}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[24px\\]{border-radius:24px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-tl-none{border-top-left-radius:0}.rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.rounded-tr-none{border-top-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-200{border-color:var(--color-amber-200)}.border-black\\/\\[0\\.03\\]{border-color:#00000008}@supports (color:color-mix(in lab,red,red)){.border-black\\/\\[0\\.03\\]{border-color:color-mix(in oklab,var(--color-black) 3%,transparent)}}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500{border-color:var(--color-blue-500)}.border-emerald-100{border-color:var(--color-emerald-100)}.border-indigo-100{border-color:var(--color-indigo-100)}.border-red-400{border-color:var(--color-red-400)}.border-slate-50{border-color:var(--color-slate-50)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\\/60{border-color:#e2e8f099}@supports (color:color-mix(in lab,red,red)){.border-slate-200\\/60{border-color:color-mix(in oklab,var(--color-slate-200) 60%,transparent)}}.border-slate-800{border-color:var(--color-slate-800)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\\/40{border-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.border-white\\/50{border-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.border-white\\/50{border-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-emerald-50\\/50{background-color:#ecfdf580}@supports (color:color-mix(in lab,red,red)){.bg-emerald-50\\/50{background-color:color-mix(in oklab,var(--color-emerald-50) 50%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-indigo-50\\/50{background-color:#eef2ff80}@supports (color:color-mix(in lab,red,red)){.bg-indigo-50\\/50{background-color:color-mix(in oklab,var(--color-indigo-50) 50%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\\/50{background-color:#f8fafc80}@supports (color:color-mix(in lab,red,red)){.bg-slate-50\\/50{background-color:color-mix(in oklab,var(--color-slate-50) 50%,transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\\/50{background-color:#f1f5f980}@supports (color:color-mix(in lab,red,red)){.bg-slate-100\\/50{background-color:color-mix(in oklab,var(--color-slate-100) 50%,transparent)}}.bg-slate-200\\/50{background-color:#e2e8f080}@supports (color:color-mix(in lab,red,red)){.bg-slate-200\\/50{background-color:color-mix(in oklab,var(--color-slate-200) 50%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950{background-color:var(--color-slate-950)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\\/20{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-white\\/40{background-color:#fff6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/40{background-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.bg-white\\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\\/60{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.bg-white\\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\\/70{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/90{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.bg-white\\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\\/95{background-color:color-mix(in oklab,var(--color-white) 95%,transparent)}}.object-contain{object-fit:contain}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[14px\\]{font-size:14px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[0\\.2em\\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-900{color:var(--color-amber-900)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-800{color:var(--color-emerald-800)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-700{color:var(--color-indigo-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-slate-100{color:var(--color-slate-100)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-violet-500{color:var(--color-violet-500)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_-10px_30px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\]{--tw-shadow:0 -10px 30px var(--tw-shadow-color,#00000005);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_8px_32px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-50{--tw-ring-color:var(--color-blue-50)}.ring-red-500{--tw-ring-color:var(--color-red-500)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-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;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\\:rotate-90:is(:where(.group):hover *){rotate:90deg}.group-hover\\:bg-blue-50\\/50:is(:where(.group):hover *){background-color:#eff6ff80}@supports (color:color-mix(in lab,red,red)){.group-hover\\:bg-blue-50\\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-blue-50) 50%,transparent)}}.group-hover\\:text-blue-400:is(:where(.group):hover *){color:var(--color-blue-400)}.group-hover\\:text-blue-500:is(:where(.group):hover *){color:var(--color-blue-500)}.group-hover\\:text-slate-900:is(:where(.group):hover *){color:var(--color-slate-900)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-slate-300::placeholder{color:var(--color-slate-300)}.focus-within\\:border-blue-400:focus-within{border-color:var(--color-blue-400)}@media(hover:hover){.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:scale-\\[1\\.01\\]:hover{scale:1.01}.hover\\:border-blue-100:hover{border-color:var(--color-blue-100)}.hover\\:border-blue-200:hover{border-color:var(--color-blue-200)}.hover\\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\\:border-slate-200:hover{border-color:var(--color-slate-200)}.hover\\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-blue-600:hover{color:var(--color-blue-600)}.hover\\:text-red-500:hover{color:var(--color-red-500)}.hover\\:text-slate-600:hover{color:var(--color-slate-600)}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-blue-500\\/20:focus{--tw-ring-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-blue-500\\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.focus\\:ring-emerald-500\\/50:focus{--tw-ring-color:#00bb7f80}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-emerald-500\\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 50%, transparent)}}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.disabled\\:opacity-30:disabled{opacity:.3}@media(min-width:48rem){.md\\:col-span-2{grid-column:span 2/span 2}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}';
38185
38247
  const GlobalStyles = () => {
38186
38248
  const { primaryColor } = useConfig();
38187
38249
  return /* @__PURE__ */ jsxRuntimeExports.jsx("style", { children: `