dhi-copilot-ai 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20825,7 +20825,7 @@ const createLucideIcon = (iconName, iconNode) => {
20825
20825
  * This source code is licensed under the ISC license.
20826
20826
  * See the LICENSE file in the root directory of this source tree.
20827
20827
  */
20828
- const __iconNode$t = [
20828
+ const __iconNode$u = [
20829
20829
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
20830
20830
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
20831
20831
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -20833,117 +20833,117 @@ const __iconNode$t = [
20833
20833
  ["path", { d: "M15 13v2", key: "1xurst" }],
20834
20834
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
20835
20835
  ];
20836
- const Bot = createLucideIcon("Bot", __iconNode$t);
20836
+ const Bot = createLucideIcon("Bot", __iconNode$u);
20837
20837
  /**
20838
20838
  * @license lucide-react v0.474.0 - ISC
20839
20839
  *
20840
20840
  * This source code is licensed under the ISC license.
20841
20841
  * See the LICENSE file in the root directory of this source tree.
20842
20842
  */
20843
- const __iconNode$s = [
20843
+ const __iconNode$t = [
20844
20844
  ["path", { d: "M8 2v4", key: "1cmpym" }],
20845
20845
  ["path", { d: "M16 2v4", key: "4m81vk" }],
20846
20846
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
20847
20847
  ["path", { d: "M3 10h18", key: "8toen8" }]
20848
20848
  ];
20849
- const Calendar = createLucideIcon("Calendar", __iconNode$s);
20849
+ const Calendar = createLucideIcon("Calendar", __iconNode$t);
20850
20850
  /**
20851
20851
  * @license lucide-react v0.474.0 - ISC
20852
20852
  *
20853
20853
  * This source code is licensed under the ISC license.
20854
20854
  * See the LICENSE file in the root directory of this source tree.
20855
20855
  */
20856
- const __iconNode$r = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
20857
- const Check = createLucideIcon("Check", __iconNode$r);
20856
+ const __iconNode$s = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
20857
+ const Check = createLucideIcon("Check", __iconNode$s);
20858
20858
  /**
20859
20859
  * @license lucide-react v0.474.0 - ISC
20860
20860
  *
20861
20861
  * This source code is licensed under the ISC license.
20862
20862
  * See the LICENSE file in the root directory of this source tree.
20863
20863
  */
20864
- const __iconNode$q = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
20865
- const ChevronDown = createLucideIcon("ChevronDown", __iconNode$q);
20864
+ const __iconNode$r = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
20865
+ const ChevronDown = createLucideIcon("ChevronDown", __iconNode$r);
20866
20866
  /**
20867
20867
  * @license lucide-react v0.474.0 - ISC
20868
20868
  *
20869
20869
  * This source code is licensed under the ISC license.
20870
20870
  * See the LICENSE file in the root directory of this source tree.
20871
20871
  */
20872
- const __iconNode$p = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
20873
- const ChevronLeft = createLucideIcon("ChevronLeft", __iconNode$p);
20872
+ const __iconNode$q = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
20873
+ const ChevronLeft = createLucideIcon("ChevronLeft", __iconNode$q);
20874
20874
  /**
20875
20875
  * @license lucide-react v0.474.0 - ISC
20876
20876
  *
20877
20877
  * This source code is licensed under the ISC license.
20878
20878
  * See the LICENSE file in the root directory of this source tree.
20879
20879
  */
20880
- const __iconNode$o = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
20881
- const ChevronRight = createLucideIcon("ChevronRight", __iconNode$o);
20880
+ const __iconNode$p = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
20881
+ const ChevronRight = createLucideIcon("ChevronRight", __iconNode$p);
20882
20882
  /**
20883
20883
  * @license lucide-react v0.474.0 - ISC
20884
20884
  *
20885
20885
  * This source code is licensed under the ISC license.
20886
20886
  * See the LICENSE file in the root directory of this source tree.
20887
20887
  */
20888
- const __iconNode$n = [
20888
+ const __iconNode$o = [
20889
20889
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
20890
20890
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
20891
20891
  ];
20892
- const CircleCheck = createLucideIcon("CircleCheck", __iconNode$n);
20892
+ const CircleCheck = createLucideIcon("CircleCheck", __iconNode$o);
20893
20893
  /**
20894
20894
  * @license lucide-react v0.474.0 - ISC
20895
20895
  *
20896
20896
  * This source code is licensed under the ISC license.
20897
20897
  * See the LICENSE file in the root directory of this source tree.
20898
20898
  */
20899
- const __iconNode$m = [
20899
+ const __iconNode$n = [
20900
20900
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
20901
20901
  ["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }]
20902
20902
  ];
20903
- const Clock = createLucideIcon("Clock", __iconNode$m);
20903
+ const Clock = createLucideIcon("Clock", __iconNode$n);
20904
20904
  /**
20905
20905
  * @license lucide-react v0.474.0 - ISC
20906
20906
  *
20907
20907
  * This source code is licensed under the ISC license.
20908
20908
  * See the LICENSE file in the root directory of this source tree.
20909
20909
  */
20910
- const __iconNode$l = [
20910
+ const __iconNode$m = [
20911
20911
  ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
20912
20912
  ];
20913
- const Cloud = createLucideIcon("Cloud", __iconNode$l);
20913
+ const Cloud = createLucideIcon("Cloud", __iconNode$m);
20914
20914
  /**
20915
20915
  * @license lucide-react v0.474.0 - ISC
20916
20916
  *
20917
20917
  * This source code is licensed under the ISC license.
20918
20918
  * See the LICENSE file in the root directory of this source tree.
20919
20919
  */
20920
- const __iconNode$k = [
20920
+ const __iconNode$l = [
20921
20921
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
20922
20922
  ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
20923
20923
  ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
20924
20924
  ];
20925
- const Database = createLucideIcon("Database", __iconNode$k);
20925
+ const Database = createLucideIcon("Database", __iconNode$l);
20926
20926
  /**
20927
20927
  * @license lucide-react v0.474.0 - ISC
20928
20928
  *
20929
20929
  * This source code is licensed under the ISC license.
20930
20930
  * See the LICENSE file in the root directory of this source tree.
20931
20931
  */
20932
- const __iconNode$j = [
20932
+ const __iconNode$k = [
20933
20933
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
20934
20934
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
20935
20935
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
20936
20936
  ["path", { d: "M16 13H8", key: "t4e002" }],
20937
20937
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
20938
20938
  ];
20939
- const FileText = createLucideIcon("FileText", __iconNode$j);
20939
+ const FileText = createLucideIcon("FileText", __iconNode$k);
20940
20940
  /**
20941
20941
  * @license lucide-react v0.474.0 - ISC
20942
20942
  *
20943
20943
  * This source code is licensed under the ISC license.
20944
20944
  * See the LICENSE file in the root directory of this source tree.
20945
20945
  */
20946
- const __iconNode$i = [
20946
+ const __iconNode$j = [
20947
20947
  [
20948
20948
  "path",
20949
20949
  {
@@ -20952,26 +20952,26 @@ const __iconNode$i = [
20952
20952
  }
20953
20953
  ]
20954
20954
  ];
20955
- const Folder = createLucideIcon("Folder", __iconNode$i);
20955
+ const Folder = createLucideIcon("Folder", __iconNode$j);
20956
20956
  /**
20957
20957
  * @license lucide-react v0.474.0 - ISC
20958
20958
  *
20959
20959
  * This source code is licensed under the ISC license.
20960
20960
  * See the LICENSE file in the root directory of this source tree.
20961
20961
  */
20962
- const __iconNode$h = [
20962
+ const __iconNode$i = [
20963
20963
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
20964
20964
  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
20965
20965
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
20966
20966
  ];
20967
- const Globe = createLucideIcon("Globe", __iconNode$h);
20967
+ const Globe = createLucideIcon("Globe", __iconNode$i);
20968
20968
  /**
20969
20969
  * @license lucide-react v0.474.0 - ISC
20970
20970
  *
20971
20971
  * This source code is licensed under the ISC license.
20972
20972
  * See the LICENSE file in the root directory of this source tree.
20973
20973
  */
20974
- const __iconNode$g = [
20974
+ const __iconNode$h = [
20975
20975
  ["line", { x1: "22", x2: "2", y1: "12", y2: "12", key: "1y58io" }],
20976
20976
  [
20977
20977
  "path",
@@ -20983,53 +20983,53 @@ const __iconNode$g = [
20983
20983
  ["line", { x1: "6", x2: "6.01", y1: "16", y2: "16", key: "sgf278" }],
20984
20984
  ["line", { x1: "10", x2: "10.01", y1: "16", y2: "16", key: "1l4acy" }]
20985
20985
  ];
20986
- const HardDrive = createLucideIcon("HardDrive", __iconNode$g);
20986
+ const HardDrive = createLucideIcon("HardDrive", __iconNode$h);
20987
20987
  /**
20988
20988
  * @license lucide-react v0.474.0 - ISC
20989
20989
  *
20990
20990
  * This source code is licensed under the ISC license.
20991
20991
  * See the LICENSE file in the root directory of this source tree.
20992
20992
  */
20993
- const __iconNode$f = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
20994
- const LoaderCircle = createLucideIcon("LoaderCircle", __iconNode$f);
20993
+ const __iconNode$g = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
20994
+ const LoaderCircle = createLucideIcon("LoaderCircle", __iconNode$g);
20995
20995
  /**
20996
20996
  * @license lucide-react v0.474.0 - ISC
20997
20997
  *
20998
20998
  * This source code is licensed under the ISC license.
20999
20999
  * See the LICENSE file in the root directory of this source tree.
21000
21000
  */
21001
- const __iconNode$e = [
21001
+ const __iconNode$f = [
21002
21002
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
21003
21003
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
21004
21004
  ];
21005
- const Lock = createLucideIcon("Lock", __iconNode$e);
21005
+ const Lock = createLucideIcon("Lock", __iconNode$f);
21006
21006
  /**
21007
21007
  * @license lucide-react v0.474.0 - ISC
21008
21008
  *
21009
21009
  * This source code is licensed under the ISC license.
21010
21010
  * See the LICENSE file in the root directory of this source tree.
21011
21011
  */
21012
- const __iconNode$d = [
21012
+ const __iconNode$e = [
21013
21013
  ["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }]
21014
21014
  ];
21015
- const MessageCircle = createLucideIcon("MessageCircle", __iconNode$d);
21015
+ const MessageCircle = createLucideIcon("MessageCircle", __iconNode$e);
21016
21016
  /**
21017
21017
  * @license lucide-react v0.474.0 - ISC
21018
21018
  *
21019
21019
  * This source code is licensed under the ISC license.
21020
21020
  * See the LICENSE file in the root directory of this source tree.
21021
21021
  */
21022
- const __iconNode$c = [
21022
+ const __iconNode$d = [
21023
21023
  ["path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z", key: "1lielz" }]
21024
21024
  ];
21025
- const MessageSquare = createLucideIcon("MessageSquare", __iconNode$c);
21025
+ const MessageSquare = createLucideIcon("MessageSquare", __iconNode$d);
21026
21026
  /**
21027
21027
  * @license lucide-react v0.474.0 - ISC
21028
21028
  *
21029
21029
  * This source code is licensed under the ISC license.
21030
21030
  * See the LICENSE file in the root directory of this source tree.
21031
21031
  */
21032
- const __iconNode$b = [
21032
+ const __iconNode$c = [
21033
21033
  ["path", { d: "M13.234 20.252 21 12.3", key: "1cbrk9" }],
21034
21034
  [
21035
21035
  "path",
@@ -21039,38 +21039,38 @@ const __iconNode$b = [
21039
21039
  }
21040
21040
  ]
21041
21041
  ];
21042
- const Paperclip = createLucideIcon("Paperclip", __iconNode$b);
21042
+ const Paperclip = createLucideIcon("Paperclip", __iconNode$c);
21043
21043
  /**
21044
21044
  * @license lucide-react v0.474.0 - ISC
21045
21045
  *
21046
21046
  * This source code is licensed under the ISC license.
21047
21047
  * See the LICENSE file in the root directory of this source tree.
21048
21048
  */
21049
- const __iconNode$a = [
21049
+ const __iconNode$b = [
21050
21050
  ["path", { d: "M5 12h14", key: "1ays0h" }],
21051
21051
  ["path", { d: "M12 5v14", key: "s699le" }]
21052
21052
  ];
21053
- const Plus = createLucideIcon("Plus", __iconNode$a);
21053
+ const Plus = createLucideIcon("Plus", __iconNode$b);
21054
21054
  /**
21055
21055
  * @license lucide-react v0.474.0 - ISC
21056
21056
  *
21057
21057
  * This source code is licensed under the ISC license.
21058
21058
  * See the LICENSE file in the root directory of this source tree.
21059
21059
  */
21060
- const __iconNode$9 = [
21060
+ const __iconNode$a = [
21061
21061
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
21062
21062
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
21063
21063
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
21064
21064
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
21065
21065
  ];
21066
- const RefreshCw = createLucideIcon("RefreshCw", __iconNode$9);
21066
+ const RefreshCw = createLucideIcon("RefreshCw", __iconNode$a);
21067
21067
  /**
21068
21068
  * @license lucide-react v0.474.0 - ISC
21069
21069
  *
21070
21070
  * This source code is licensed under the ISC license.
21071
21071
  * See the LICENSE file in the root directory of this source tree.
21072
21072
  */
21073
- const __iconNode$8 = [
21073
+ const __iconNode$9 = [
21074
21074
  [
21075
21075
  "path",
21076
21076
  {
@@ -21080,27 +21080,27 @@ const __iconNode$8 = [
21080
21080
  ],
21081
21081
  ["path", { d: "M6 12h16", key: "s4cdu5" }]
21082
21082
  ];
21083
- const SendHorizontal = createLucideIcon("SendHorizontal", __iconNode$8);
21083
+ const SendHorizontal = createLucideIcon("SendHorizontal", __iconNode$9);
21084
21084
  /**
21085
21085
  * @license lucide-react v0.474.0 - ISC
21086
21086
  *
21087
21087
  * This source code is licensed under the ISC license.
21088
21088
  * See the LICENSE file in the root directory of this source tree.
21089
21089
  */
21090
- const __iconNode$7 = [
21090
+ const __iconNode$8 = [
21091
21091
  ["rect", { width: "20", height: "8", x: "2", y: "2", rx: "2", ry: "2", key: "ngkwjq" }],
21092
21092
  ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", ry: "2", key: "iecqi9" }],
21093
21093
  ["line", { x1: "6", x2: "6.01", y1: "6", y2: "6", key: "16zg32" }],
21094
21094
  ["line", { x1: "6", x2: "6.01", y1: "18", y2: "18", key: "nzw8ys" }]
21095
21095
  ];
21096
- const Server = createLucideIcon("Server", __iconNode$7);
21096
+ const Server = createLucideIcon("Server", __iconNode$8);
21097
21097
  /**
21098
21098
  * @license lucide-react v0.474.0 - ISC
21099
21099
  *
21100
21100
  * This source code is licensed under the ISC license.
21101
21101
  * See the LICENSE file in the root directory of this source tree.
21102
21102
  */
21103
- const __iconNode$6 = [
21103
+ const __iconNode$7 = [
21104
21104
  [
21105
21105
  "path",
21106
21106
  {
@@ -21110,7 +21110,21 @@ const __iconNode$6 = [
21110
21110
  ],
21111
21111
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
21112
21112
  ];
21113
- const Settings = createLucideIcon("Settings", __iconNode$6);
21113
+ const Settings = createLucideIcon("Settings", __iconNode$7);
21114
+ /**
21115
+ * @license lucide-react v0.474.0 - ISC
21116
+ *
21117
+ * This source code is licensed under the ISC license.
21118
+ * See the LICENSE file in the root directory of this source tree.
21119
+ */
21120
+ const __iconNode$6 = [
21121
+ ["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }],
21122
+ ["circle", { cx: "6", cy: "12", r: "3", key: "w7nqdw" }],
21123
+ ["circle", { cx: "18", cy: "19", r: "3", key: "1xt0gg" }],
21124
+ ["line", { x1: "8.59", x2: "15.42", y1: "13.51", y2: "17.49", key: "47mynk" }],
21125
+ ["line", { x1: "15.41", x2: "8.59", y1: "6.51", y2: "10.49", key: "1n3mei" }]
21126
+ ];
21127
+ const Share2 = createLucideIcon("Share2", __iconNode$6);
21114
21128
  /**
21115
21129
  * @license lucide-react v0.474.0 - ISC
21116
21130
  *
@@ -24216,8 +24230,8 @@ const {
24216
24230
  const createClient = (apiUrl, token) => {
24217
24231
  const client2 = axios.create({
24218
24232
  baseURL: apiUrl,
24219
- timeout: 3e4,
24220
- // 30 secondes
24233
+ timeout: 3e5,
24234
+ // 60 secondes (important pour les traitements RAG longs)
24221
24235
  headers: {
24222
24236
  "Authorization": token ? `Bearer ${token}` : "",
24223
24237
  "Content-Type": "application/json"
@@ -24227,7 +24241,7 @@ const createClient = (apiUrl, token) => {
24227
24241
  (response) => response,
24228
24242
  (error) => {
24229
24243
  var _a2, _b;
24230
- console.error("API Error:", ((_b = (_a2 = error.response) == null ? void 0 : _a2.data) == null ? void 0 : _b.detail) || error.message);
24244
+ console.error("DHI Copilot API Error:", ((_b = (_a2 = error.response) == null ? void 0 : _a2.data) == null ? void 0 : _b.detail) || error.message);
24231
24245
  return Promise.reject(error);
24232
24246
  }
24233
24247
  );
@@ -24235,15 +24249,25 @@ const createClient = (apiUrl, token) => {
24235
24249
  };
24236
24250
  const apiService = {
24237
24251
  // --- CHAT & HISTORIQUE ---
24238
- /** Récupère la liste des conversations */
24252
+ /**
24253
+ * Envoie un message de manière synchrone (Remplace le streaming)
24254
+ * Payload attendu : { message: string, thread_id: string }
24255
+ * Réponse attendue : { response: string, thread_id: string, sources: string[] }
24256
+ */
24257
+ sendMessage: async (apiUrl, token, payload) => {
24258
+ const client2 = createClient(apiUrl, token);
24259
+ const res = await client2.post("/chat", payload);
24260
+ return res.data;
24261
+ },
24262
+ /** Récupère la liste des conversations (threads) existantes */
24239
24263
  getThreads: async (apiUrl, token) => {
24240
24264
  const client2 = createClient(apiUrl, token);
24241
24265
  const res = await client2.get("/chat/threads");
24242
24266
  return res.data;
24243
24267
  },
24244
24268
  /**
24245
- * Récupère l'historique et transforme les messages pour l'UI
24246
- * (Fusionne les messages 'tool' avec les messages 'assistant')
24269
+ * Récupère l'historique d'un thread et transforme les messages pour l'UI.
24270
+ * Fusionne les sources citées par les outils avec la réponse de l'assistant.
24247
24271
  */
24248
24272
  getHistory: async (apiUrl, token, threadId) => {
24249
24273
  const client2 = createClient(apiUrl, token);
@@ -24282,34 +24306,37 @@ const apiService = {
24282
24306
  });
24283
24307
  return cleanedMessages;
24284
24308
  },
24285
- // --- CONNECTEURS (RAG) ---
24309
+ // --- CONNECTEURS (RESOURCES RAG) ---
24310
+ /** Liste tous les connecteurs configurés */
24286
24311
  getConnectors: async (apiUrl, token) => {
24287
24312
  const client2 = createClient(apiUrl, token);
24288
24313
  const res = await client2.get("/settings/connectors");
24289
24314
  return res.data;
24290
24315
  },
24316
+ /** Enregistre une nouvelle source (Web, S3, Azure, G-Drive, SFTP, Local) */
24291
24317
  saveConnector: async (apiUrl, token, data) => {
24292
24318
  const client2 = createClient(apiUrl, token);
24293
24319
  const res = await client2.post("/connectors", data);
24294
24320
  return res.data;
24295
24321
  },
24322
+ /** Déclenche une ré-indexation manuelle d'une source */
24296
24323
  triggerSync: async (apiUrl, token, sourceId) => {
24297
24324
  const client2 = createClient(apiUrl, token);
24298
24325
  const res = await client2.post(`/documents/sync/${sourceId}`);
24299
24326
  return res.data;
24300
24327
  },
24328
+ /** Supprime un connecteur et ses données vectorielles */
24301
24329
  deleteConnector: async (apiUrl, token, sourceId) => {
24302
24330
  const client2 = createClient(apiUrl, token);
24303
24331
  await client2.delete(`/connectors/${sourceId}`);
24304
24332
  },
24305
- // --- UPLOAD DIRECT ---
24333
+ // --- UPLOAD DIRECT (Analyse Multimodale) ---
24334
+ /** Envoie des fichiers pour analyse immédiate dans la session de chat */
24306
24335
  uploadFiles: async (apiUrl, token, files) => {
24307
24336
  const client2 = createClient(apiUrl, token);
24308
24337
  const formData = new FormData();
24309
24338
  files.forEach((file) => formData.append("files", file));
24310
- const res = await client2.post("/upload", formData, {
24311
- headers: { "Content-Type": "multipart/form-data" }
24312
- });
24339
+ const res = await client2.post("/upload", formData);
24313
24340
  return res.data;
24314
24341
  }
24315
24342
  };
@@ -24329,23 +24356,13 @@ const useStore = create$2((set, get) => ({
24329
24356
  setView: (view) => set({ activeView: view }),
24330
24357
  setLoading: (loading) => set({ isLoading: loading }),
24331
24358
  setShowAddForm: (show) => set({ showAddForm: show }),
24359
+ setThreadId: (id2) => set({ activeThreadId: id2 }),
24332
24360
  clearChat: () => set({ messages: [], activeThreadId: null }),
24333
24361
  addMessage: (message) => set((state) => ({
24334
24362
  messages: [...state.messages, message]
24335
24363
  })),
24336
- updateLastMessage: (content2, sources) => set((state) => {
24337
- const newMessages = [...state.messages];
24338
- const lastIndex = newMessages.length - 1;
24339
- if (lastIndex >= 0) {
24340
- newMessages[lastIndex] = {
24341
- ...newMessages[lastIndex],
24342
- content: newMessages[lastIndex].content + content2,
24343
- sources: sources || newMessages[lastIndex].sources
24344
- };
24345
- }
24346
- return { messages: newMessages };
24347
- }),
24348
- // --- ACTIONS ASYNCHRONES (LIAISON API) ---
24364
+ // --- ACTIONS ASYNCHRONES ---
24365
+ /** Récupère la liste des conversations */
24349
24366
  fetchThreads: async () => {
24350
24367
  const { config } = get();
24351
24368
  if (!config.apiUrl) return;
@@ -24353,9 +24370,10 @@ const useStore = create$2((set, get) => ({
24353
24370
  const data = await apiService.getThreads(config.apiUrl, config.userToken);
24354
24371
  set({ threads: data });
24355
24372
  } catch (e) {
24356
- console.error("Erreur lors de la récupération des threads:", e);
24373
+ console.error("Erreur threads:", e);
24357
24374
  }
24358
24375
  },
24376
+ /** Charge l'historique d'une conversation précise */
24359
24377
  loadThread: async (threadId) => {
24360
24378
  const { config } = get();
24361
24379
  if (!threadId) {
@@ -24367,10 +24385,11 @@ const useStore = create$2((set, get) => ({
24367
24385
  const history = await apiService.getHistory(config.apiUrl, config.userToken, threadId);
24368
24386
  set({ messages: history, isLoading: false });
24369
24387
  } catch (e) {
24370
- console.error("Erreur lors du chargement de l'historique:", e);
24388
+ console.error("Erreur historique:", e);
24371
24389
  set({ isLoading: false });
24372
24390
  }
24373
24391
  },
24392
+ /** Liste les sources RAG */
24374
24393
  fetchConnectors: async () => {
24375
24394
  const { config } = get();
24376
24395
  if (!config.apiUrl) return;
@@ -24378,9 +24397,10 @@ const useStore = create$2((set, get) => ({
24378
24397
  const res = await apiService.getConnectors(config.apiUrl, config.userToken);
24379
24398
  set({ connectors: res });
24380
24399
  } catch (e) {
24381
- console.error("Erreur lors de la récupération des connecteurs:", e);
24400
+ console.error("Erreur connecteurs:", e);
24382
24401
  }
24383
24402
  },
24403
+ /** Lance l'indexation d'une source */
24384
24404
  syncSource: async (sourceId) => {
24385
24405
  const { config } = get();
24386
24406
  set({ isSyncing: true });
@@ -24388,11 +24408,12 @@ const useStore = create$2((set, get) => ({
24388
24408
  await apiService.triggerSync(config.apiUrl, config.userToken, sourceId);
24389
24409
  await get().fetchConnectors();
24390
24410
  } catch (e) {
24391
- console.error("Erreur de synchronisation:", e);
24411
+ console.error("Erreur sync:", e);
24392
24412
  } finally {
24393
24413
  set({ isSyncing: false });
24394
24414
  }
24395
24415
  },
24416
+ /** Supprime une source */
24396
24417
  removeSource: async (sourceId) => {
24397
24418
  const { config } = get();
24398
24419
  try {
@@ -24401,7 +24422,7 @@ const useStore = create$2((set, get) => ({
24401
24422
  connectors: state.connectors.filter((c) => c.source_id !== sourceId)
24402
24423
  }));
24403
24424
  } catch (e) {
24404
- console.error("Erreur lors de la suppression de la source:", e);
24425
+ console.error("Erreur suppression source:", e);
24405
24426
  }
24406
24427
  }
24407
24428
  }));
@@ -37001,28 +37022,47 @@ const MarkdownContent = ({ content: content2 }) => {
37001
37022
  const MessageBubble = ({ message }) => {
37002
37023
  const isAi = message.role === "assistant";
37003
37024
  const { config } = useStore();
37004
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `flex w-full ${isAi ? "justify-start" : "justify-end"} mb-4 animate-in fade-in slide-in-from-bottom-2`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `flex max-w-[85%] ${isAi ? "flex-row" : "flex-row-reverse"} gap-3`, children: [
37025
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `flex w-full ${isAi ? "justify-start" : "justify-end"} mb-6 animate-in fade-in slide-in-from-bottom-2 duration-300`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `flex max-w-[88%] ${isAi ? "flex-row" : "flex-row-reverse"} gap-3`, children: [
37005
37026
  /* @__PURE__ */ jsxRuntimeExports.jsx(
37006
37027
  "div",
37007
37028
  {
37008
- className: `h-8 w-8 rounded-full flex items-center justify-center shrink-0 shadow-sm ${isAi ? "bg-white border border-slate-100" : ""}`,
37009
- style: !isAi ? { backgroundColor: config.primaryColor, color: "white" } : {},
37010
- children: isAi ? /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 18, className: "text-blue-600" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 18 })
37029
+ className: `
37030
+ h-8 w-8 rounded-full flex items-center justify-center shrink-0 shadow-sm border
37031
+ ${isAi ? "bg-white border-slate-100" : "border-transparent text-white"}
37032
+ `,
37033
+ style: !isAi ? { backgroundColor: config.primaryColor } : {},
37034
+ children: isAi ? /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 16, style: { color: config.primaryColor }, strokeWidth: 2.5 }) : /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 16, strokeWidth: 2.5 })
37011
37035
  }
37012
37036
  ),
37013
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
37037
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `flex flex-col gap-2 ${isAi ? "items-start" : "items-end"}`, children: [
37014
37038
  /* @__PURE__ */ jsxRuntimeExports.jsx(
37015
37039
  "div",
37016
37040
  {
37017
- className: `px-4 py-3 rounded-2xl shadow-sm ${isAi ? "bg-white/80 backdrop-blur-md border border-white/50 text-slate-800 rounded-tl-none" : "text-white rounded-tr-none"}`,
37041
+ className: `
37042
+ px-4 py-3 rounded-2xl shadow-[0_2px_10px_rgba(0,0,0,0.02)] transition-all
37043
+ ${isAi ? "bg-white/90 backdrop-blur-md border border-white/50 text-slate-800 rounded-tl-none" : "text-white rounded-tr-none shadow-md"}`,
37018
37044
  style: !isAi ? { backgroundColor: config.primaryColor } : {},
37019
37045
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(MarkdownContent, { content: message.content })
37020
37046
  }
37021
37047
  ),
37022
- isAi && message.sources && message.sources.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-2 mt-1", children: message.sources.map((source, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 px-2 py-1 bg-white/40 border border-white/60 rounded-lg text-[10px] font-medium text-slate-500 hover:bg-white/60 transition-colors cursor-default", children: [
37023
- /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { size: 12, className: "text-blue-500" }),
37024
- source
37025
- ] }, idx)) })
37048
+ isAi && message.sources && message.sources.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-2 w-full animate-in fade-in slide-in-from-top-1 duration-500", children: [
37049
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 mb-2 ml-1", children: [
37050
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Share2, { size: 10, className: "text-slate-400" }),
37051
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[9px] font-black text-slate-400 uppercase tracking-widest", children: "Sources consultées" })
37052
+ ] }),
37053
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-1.5", children: message.sources.map((source, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
37054
+ "div",
37055
+ {
37056
+ title: source,
37057
+ className: "\r\n flex items-center gap-1.5 px-2.5 py-1 \r\n bg-slate-100/50 border border-slate-200/60 rounded-full \r\n text-[10px] font-bold text-slate-500 \r\n hover:bg-white hover:border-blue-300 hover:text-blue-600 \r\n transition-all cursor-help max-w-[160px]\r\n ",
37058
+ children: [
37059
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-1.5 w-1.5 rounded-full bg-blue-400 shrink-0 shadow-sm" }),
37060
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: source.split("/").pop() })
37061
+ ]
37062
+ },
37063
+ idx
37064
+ )) })
37065
+ ] })
37026
37066
  ] })
37027
37067
  ] }) });
37028
37068
  };
@@ -37113,8 +37153,8 @@ const ChatInput = ({ onSend, disabled }) => {
37113
37153
  const WelcomeScreen = ({ onSuggestion }) => {
37114
37154
  const { botName, logoUrl, primaryColor } = useConfig();
37115
37155
  const suggestions = [
37116
- { label: "Quelles sont les dernières actualités ?", icon: Sparkles },
37117
- { label: "Comment configurer mon profil ?", icon: MessageCircle },
37156
+ { label: "Je veux une liste des employés ?", icon: Sparkles },
37157
+ { label: "Quelles sont les ressources de l'entreprise disponibles ?", icon: MessageCircle },
37118
37158
  { label: "Résume-moi le dernier document RH", icon: FileText }
37119
37159
  ];
37120
37160
  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: [
@@ -37165,44 +37205,16 @@ const ThinkingIndicator = () => {
37165
37205
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-white/50 backdrop-blur-md border border-white/50 px-4 py-3 rounded-2xl rounded-tl-none shadow-sm", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-slate-400 font-medium italic", children: "Recherche dans vos documents..." }) })
37166
37206
  ] });
37167
37207
  };
37168
- const chatStream = async (apiUrl, token, payload, onChunk, onSources) => {
37169
- const response = await fetch(`${apiUrl}/chat/stream`, {
37170
- method: "POST",
37171
- headers: {
37172
- "Authorization": `Bearer ${token}`,
37173
- "Content-Type": "application/json"
37174
- },
37175
- body: JSON.stringify(payload)
37176
- });
37177
- if (!response.body) throw new Error("Flux illisible");
37178
- const reader = response.body.getReader();
37179
- const decoder = new TextDecoder();
37180
- while (true) {
37181
- const { value, done } = await reader.read();
37182
- if (done) break;
37183
- const chunk = decoder.decode(value, { stream: true });
37184
- try {
37185
- if (chunk.startsWith("SOURCES:")) {
37186
- const sources = JSON.parse(chunk.replace("SOURCES:", ""));
37187
- onSources(sources);
37188
- } else {
37189
- onChunk(chunk);
37190
- }
37191
- } catch (e) {
37192
- onChunk(chunk);
37193
- }
37194
- }
37195
- };
37196
37208
  const ChatView = () => {
37197
37209
  const {
37198
37210
  messages,
37199
- config,
37200
37211
  addMessage,
37201
- updateLastMessage,
37202
37212
  setLoading,
37203
- isLoading
37213
+ isLoading,
37214
+ activeThreadId,
37215
+ setThreadId
37204
37216
  } = useStore();
37205
- const { initialMessage, botName, userName } = useConfig();
37217
+ const { initialMessage, botName, userName, apiUrl, userToken } = useConfig();
37206
37218
  const scrollRef = reactExports.useRef(null);
37207
37219
  reactExports.useEffect(() => {
37208
37220
  if (scrollRef.current) {
@@ -37212,17 +37224,6 @@ const ChatView = () => {
37212
37224
  });
37213
37225
  }
37214
37226
  }, [messages, isLoading]);
37215
- reactExports.useEffect(() => {
37216
- if (messages.length === 0) {
37217
- addMessage({
37218
- id: "welcome",
37219
- role: "assistant",
37220
- content: initialMessage.replace("{name}", userName),
37221
- // Support de variable simple
37222
- timestamp: /* @__PURE__ */ new Date()
37223
- });
37224
- }
37225
- }, []);
37226
37227
  const handleSendMessage = async (text2, files = []) => {
37227
37228
  if (!text2.trim() && files.length === 0 || isLoading) return;
37228
37229
  let displayContent = text2.trim();
@@ -37239,18 +37240,10 @@ ${fileList}`;
37239
37240
  content: displayContent,
37240
37241
  timestamp: /* @__PURE__ */ new Date()
37241
37242
  });
37242
- const aiMessageId = (Date.now() + 1).toString();
37243
- addMessage({
37244
- id: aiMessageId,
37245
- role: "assistant",
37246
- content: "",
37247
- timestamp: /* @__PURE__ */ new Date(),
37248
- sources: []
37249
- });
37250
37243
  setLoading(true);
37251
37244
  try {
37252
37245
  if (files.length > 0) {
37253
- await apiService.uploadFiles(config.apiUrl, config.userToken, files);
37246
+ await apiService.uploadFiles(apiUrl, userToken, files);
37254
37247
  }
37255
37248
  const fileNames = files.map((f2) => f2.name).join(", ");
37256
37249
  let finalPrompt = text2.trim();
@@ -37263,31 +37256,34 @@ ${fileList}`;
37263
37256
  finalPrompt = `Analyse les documents suivants que je viens de t'envoyer : ${fileNames}.`;
37264
37257
  }
37265
37258
  }
37266
- await chatStream(
37267
- config.apiUrl,
37268
- config.userToken,
37269
- {
37270
- message: finalPrompt,
37271
- // On envoie le prompt construit à l'étape 6
37272
- userId: config.userId
37273
- },
37274
- // Callback pour le texte (Chunks)
37275
- (chunk) => {
37276
- if (isLoading) setLoading(false);
37277
- updateLastMessage(chunk);
37278
- },
37279
- // Callback pour les sources RAG
37280
- (sources) => {
37281
- updateLastMessage("", sources);
37282
- }
37283
- );
37259
+ const data = await apiService.sendMessage(apiUrl, userToken, {
37260
+ message: finalPrompt,
37261
+ thread_id: activeThreadId || ""
37262
+ // Si null, le backend créera un thread
37263
+ });
37264
+ if (!activeThreadId && data.thread_id) {
37265
+ setThreadId(data.thread_id);
37266
+ }
37267
+ addMessage({
37268
+ id: (Date.now() + 1).toString(),
37269
+ role: "assistant",
37270
+ content: data.response,
37271
+ sources: data.sources || [],
37272
+ timestamp: /* @__PURE__ */ new Date()
37273
+ });
37284
37274
  } catch (error) {
37285
37275
  console.error("Chat Error:", error);
37286
- updateLastMessage("Désolé, j'ai rencontré une difficulté technique. Veuillez vérifier votre connexion au serveur.");
37276
+ addMessage({
37277
+ id: "err-" + Date.now(),
37278
+ role: "assistant",
37279
+ content: "⚠️ Désolé, je n'ai pas pu obtenir de réponse. Veuillez vérifier la connexion au serveur DHI.",
37280
+ timestamp: /* @__PURE__ */ new Date()
37281
+ });
37287
37282
  } finally {
37288
37283
  setLoading(false);
37289
37284
  }
37290
37285
  };
37286
+ const formattedIntro = initialMessage.replace("{botName}", botName).replace("{name}", userName);
37291
37287
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col h-full bg-transparent overflow-hidden", children: [
37292
37288
  /* @__PURE__ */ jsxRuntimeExports.jsx(
37293
37289
  "div",
@@ -37301,14 +37297,14 @@ ${fileList}`;
37301
37297
  message: {
37302
37298
  id: "virtual-intro",
37303
37299
  role: "assistant",
37304
- content: initialMessage,
37300
+ content: formattedIntro,
37305
37301
  timestamp: /* @__PURE__ */ new Date()
37306
37302
  }
37307
37303
  }
37308
37304
  ),
37309
37305
  /* @__PURE__ */ jsxRuntimeExports.jsx(WelcomeScreen, { onSuggestion: (suggestion) => handleSendMessage(suggestion) })
37310
37306
  ] }) : (
37311
- /* CAS 2 : La conversation est en cours */
37307
+ /* CAS 2 : La conversation est active */
37312
37308
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col min-h-full", children: [
37313
37309
  messages.map((msg) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageBubble, { message: msg }, msg.id)),
37314
37310
  isLoading && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) })
@@ -37316,7 +37312,8 @@ ${fileList}`;
37316
37312
  )
37317
37313
  }
37318
37314
  ),
37319
- /* @__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-3xl mx-auto", children: [
37315
+ /* @__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: [
37316
+ " ",
37320
37317
  /* @__PURE__ */ jsxRuntimeExports.jsx(
37321
37318
  ChatInput,
37322
37319
  {
@@ -37327,7 +37324,7 @@ ${fileList}`;
37327
37324
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-center items-center gap-4 mt-3", children: [
37328
37325
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[9px] text-slate-400 font-bold uppercase tracking-widest flex items-center gap-1", children: [
37329
37326
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1 h-1 rounded-full bg-emerald-500" }),
37330
- "RAG Engine Active"
37327
+ "RAG Active"
37331
37328
  ] }),
37332
37329
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[9px] text-slate-300 font-medium italic", children: "Vérifiez les sources citées." })
37333
37330
  ] })
@@ -37952,38 +37949,46 @@ const MainContainer = ({ close }) => {
37952
37949
  const Shell = ({ isOpen, setIsOpen }) => {
37953
37950
  const { primaryColor, position: position2, logoUrl, botName } = useConfig();
37954
37951
  const isRight = position2 === "right";
37952
+ const glassButtonColor = primaryColor.startsWith("#") ? `${primaryColor}80` : primaryColor;
37955
37953
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
37956
37954
  "div",
37957
37955
  {
37958
- className: `dhi-copilot-wrapper fixed bottom-0 ${isRight ? "right-0" : "left-0"} z-[999999] p-6`,
37956
+ className: `dhi-copilot-wrapper fixed bottom-0 ${isRight ? "right-0" : "left-0"} z-[999999] p-6 font-sans`,
37959
37957
  dir: "ltr",
37960
37958
  children: [
37961
37959
  /* @__PURE__ */ jsxRuntimeExports.jsx(
37962
37960
  motion.button,
37963
37961
  {
37964
- whileHover: { scale: 1.05 },
37962
+ whileHover: {
37963
+ scale: 1.05,
37964
+ boxShadow: "0 10px 40px rgba(0,0,0,0.2)"
37965
+ // Correction ici : 'boxShadow' au lieu de 'shadow'
37966
+ },
37965
37967
  whileTap: { scale: 0.95 },
37966
37968
  onClick: () => setIsOpen(!isOpen),
37967
- style: { backgroundColor: primaryColor },
37968
- title: isOpen ? "Fermer l'assistant" : "Ouvrir l'assistant",
37969
- className: "relative h-16 w-16 rounded-2xl shadow-[0_8px_30px_rgba(0,0,0,0.2)] flex items-center justify-center text-white cursor-pointer border-none outline-none z-50",
37969
+ style: {
37970
+ backgroundColor: glassButtonColor,
37971
+ border: "1px solid rgba(255, 255, 255, 0.2)"
37972
+ },
37973
+ className: "relative h-16 w-16 rounded-2xl shadow-[0_8px_32px_rgba(0,0,0,0.15)] flex items-center justify-center text-white cursor-pointer outline-none z-50 backdrop-blur-md transition-shadow",
37970
37974
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { mode: "wait", children: isOpen ? /* @__PURE__ */ jsxRuntimeExports.jsx(
37971
37975
  motion.div,
37972
37976
  {
37973
37977
  initial: { rotate: -90, opacity: 0 },
37974
37978
  animate: { rotate: 0, opacity: 1 },
37975
37979
  exit: { rotate: 90, opacity: 0 },
37976
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 28 })
37980
+ className: "flex items-center justify-center",
37981
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 32, strokeWidth: 2.5 })
37977
37982
  },
37978
37983
  "close"
37979
37984
  ) : /* @__PURE__ */ jsxRuntimeExports.jsxs(
37980
37985
  motion.div,
37981
37986
  {
37982
- initial: { scale: 0 },
37983
- animate: { scale: 1 },
37987
+ initial: { scale: 0, opacity: 0 },
37988
+ animate: { scale: 1, opacity: 1 },
37984
37989
  className: "relative flex items-center justify-center",
37985
37990
  children: [
37986
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-10 w-10 bg-white rounded-lg p-1 shadow-inner overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37991
+ /* @__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(
37987
37992
  "img",
37988
37993
  {
37989
37994
  src: logoUrl,
@@ -37991,7 +37996,14 @@ const Shell = ({ isOpen, setIsOpen }) => {
37991
37996
  className: "h-full w-full object-contain"
37992
37997
  }
37993
37998
  ) }),
37994
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute -top-3 -right-3 bg-white text-blue-600 rounded-lg p-1 shadow-md border border-slate-100 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 14, strokeWidth: 3 }) })
37999
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
38000
+ "div",
38001
+ {
38002
+ style: { backgroundColor: primaryColor },
38003
+ 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",
38004
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { size: 14, strokeWidth: 2.5 })
38005
+ }
38006
+ )
37995
38007
  ]
37996
38008
  },
37997
38009
  "open"
@@ -38001,16 +38013,16 @@ const Shell = ({ isOpen, setIsOpen }) => {
38001
38013
  /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(
38002
38014
  motion.div,
38003
38015
  {
38004
- initial: { opacity: 0, x: isRight ? 100 : -100, y: 20 },
38005
- animate: { opacity: 1, x: 0, y: 0 },
38006
- exit: { opacity: 0, x: isRight ? 100 : -100, y: 20 },
38007
- transition: { type: "spring", damping: 25, stiffness: 200 },
38016
+ initial: { opacity: 0, x: isRight ? 120 : -120 },
38017
+ animate: { opacity: 1, x: 0 },
38018
+ exit: { opacity: 0, x: isRight ? 120 : -120 },
38019
+ transition: { type: "spring", damping: 28, stiffness: 200 },
38008
38020
  className: `
38009
38021
  fixed top-0 ${isRight ? "right-0" : "left-0"}
38010
- h-full w-full md:w-[420px]
38011
- bg-white/80 backdrop-blur-2xl
38012
- shadow-[-20px_0_60px_rgba(0,0,0,0.1)]
38013
- border-l border-white/20
38022
+ h-full w-full md:w-[520px]
38023
+ bg-white/85 backdrop-blur-3xl
38024
+ shadow-[-30px_0_80px_rgba(0,0,0,0.15)]
38025
+ border-l border-white/40
38014
38026
  overflow-hidden z-40
38015
38027
  `,
38016
38028
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(MainContainer, { close: () => setIsOpen(false) })
@@ -38020,7 +38032,7 @@ const Shell = ({ isOpen, setIsOpen }) => {
38020
38032
  }
38021
38033
  );
38022
38034
  };
38023
- 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-100:oklch(96.2% .059 95.617);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--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-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-500:oklch(58.5% .233 277.117);--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;--container-3xl:48rem;--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-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-xl:24px;--blur-2xl:40px;--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{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:calc(var(--spacing) * 0)}.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-40{z-index:40}.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\\.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-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-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-3xl{max-width:var(--container-3xl)}.max-w-\\[85\\%\\]{max-width:85%}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[240px\\]{max-width:240px}.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)}.rotate-180{rotate:180deg}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.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-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-100{border-color:var(--color-amber-100)}.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-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-800{border-color:var(--color-slate-800)}.border-white{border-color:var(--color-white)}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white) 20%,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)}}.border-white\\/60{border-color:#fff9}@supports (color:color-mix(in lab,red,red)){.border-white\\/60{border-color:color-mix(in oklab,var(--color-white) 60%,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-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-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-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\\/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\\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\\/80{background-color:color-mix(in oklab,var(--color-white) 80%,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-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.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-4{padding-top:calc(var(--spacing) * 4)}.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)}.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)}.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-800{color:var(--color-amber-800)}.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-red-500{color:var(--color-red-500)}.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-\\[-20px_0_60px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:-20px 0 60px 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_30px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#0003);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)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-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-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\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:border-blue-100:hover{border-color:var(--color-blue-100)}.hover\\:border-blue-200:hover{border-color:var(--color-blue-200)}.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\\/60:hover{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/60:hover{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.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\\:w-\\[420px\\]{width:420px}.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}}';
38035
+ 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-100:oklch(96.2% .059 95.617);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--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-500:oklch(58.5% .233 277.117);--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-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-xl:24px;--blur-3xl:64px;--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-0{top:calc(var(--spacing) * 0)}.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-40{z-index:40}.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\\.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)}.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-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-100{border-color:var(--color-amber-100)}.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-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-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\\/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\\/85{background-color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.bg-white\\/85{background-color:color-mix(in oklab,var(--color-white) 85%,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-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-4{padding-top:calc(var(--spacing) * 4)}.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)}.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-800{color:var(--color-amber-800)}.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-red-500{color:var(--color-red-500)}.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-\\[-30px_0_80px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\]{--tw-shadow:-30px 0 80px 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-\\[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_2px_10px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\]{--tw-shadow:0 2px 10px 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)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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\\:scale-\\[1\\.02\\]:hover{scale:1.02}.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\\:w-\\[520px\\]{width:520px}.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}}';
38024
38036
  const GlobalStyles = () => {
38025
38037
  const { primaryColor } = useConfig();
38026
38038
  return /* @__PURE__ */ jsxRuntimeExports.jsx("style", { children: `