@blade-hq/agent-react 2610.0.0-beta.7 → 2610.0.0-beta.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +148 -3
  2. package/dist/chunk-G3PMV62Z.js +36 -0
  3. package/dist/{chunk-ZXXLY4RM.js → chunk-MAAMCOAU.js} +8 -32
  4. package/dist/{chunk-ZXXLY4RM.js.map → chunk-MAAMCOAU.js.map} +1 -1
  5. package/dist/components/AgentChat.d.ts +3 -0
  6. package/dist/components/AgentLoopBlock.d.ts +1 -4
  7. package/dist/components/AskUserQuestionBlock.d.ts +9 -0
  8. package/dist/components/AssistantTurnBlock.d.ts +20 -6
  9. package/dist/components/ChatInput.d.ts +15 -1
  10. package/dist/components/ChatSurface.d.ts +29 -2
  11. package/dist/components/ConnectorPanel.d.ts +41 -0
  12. package/dist/components/ContextCard.d.ts +20 -0
  13. package/dist/components/MarkdownContent.d.ts +2 -0
  14. package/dist/components/McpAppCard.d.ts +14 -0
  15. package/dist/components/MessageList.d.ts +26 -1
  16. package/dist/components/PlanUpdateBlock.d.ts +31 -0
  17. package/dist/components/PluginConnectorList.d.ts +47 -0
  18. package/dist/components/PluginTriggerStack.d.ts +22 -0
  19. package/dist/components/SessionMemoryToggle.d.ts +19 -0
  20. package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
  21. package/dist/components/SessionPluginConfigForm.d.ts +14 -0
  22. package/dist/components/SessionPluginIcon.d.ts +30 -0
  23. package/dist/components/SessionPluginSelector.d.ts +10 -0
  24. package/dist/components/SessionQueuePanel.d.ts +74 -0
  25. package/dist/components/ToolCallBlock.d.ts +4 -2
  26. package/dist/components/ToolUiCardView.d.ts +9 -0
  27. package/dist/components/UserMessageBubble.d.ts +1 -1
  28. package/dist/components/WhatIfUserBubble.d.ts +7 -0
  29. package/dist/components/connector-panel-types.d.ts +37 -0
  30. package/dist/components/display-utils.d.ts +10 -0
  31. package/dist/components/plugin-config-draft.d.ts +13 -0
  32. package/dist/components/plugin-config-schema.d.ts +6 -0
  33. package/dist/components/plugin-connector.d.ts +40 -0
  34. package/dist/components/queue-panel-adjacency.d.ts +1 -0
  35. package/dist/components/use-session-plugin-activation.d.ts +40 -0
  36. package/dist/context.d.ts +1 -0
  37. package/dist/embed/entry.d.ts +46 -0
  38. package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js → highlighted-body-B3W2YXNL-IASCZDV2.js} +3 -2
  39. package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js.map → highlighted-body-B3W2YXNL-IASCZDV2.js.map} +1 -1
  40. package/dist/hooks/use-agent-session.d.ts +5 -0
  41. package/dist/hooks/use-message-pin.d.ts +28 -0
  42. package/dist/hooks/use-typewriter-reveal.d.ts +32 -0
  43. package/dist/index.d.ts +43 -0
  44. package/dist/index.js +44786 -1663
  45. package/dist/index.js.map +1 -1
  46. package/dist/lib/agent-computer-command.d.ts +34 -0
  47. package/dist/lib/random-id.d.ts +10 -0
  48. package/dist/lib/utils.d.ts +3 -1
  49. package/dist/lib/whatif-prompt.d.ts +18 -0
  50. package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js +9 -0
  51. package/dist/mermaid-3ZIDBTTL-BPVVWTVV.js.map +1 -0
  52. package/dist/style.css +97 -5
  53. package/dist/style.full.css +98 -6
  54. package/dist/webapi-W3IB5DO4.js +2481 -0
  55. package/dist/webapi-W3IB5DO4.js.map +1 -0
  56. package/package.json +2 -2
  57. package/public-api.md +1287 -31
  58. package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
  59. /package/dist/{mermaid-3ZIDBTTL-N7YKJ3SM.js.map → chunk-G3PMV62Z.js.map} +0 -0
@@ -0,0 +1,34 @@
1
+ export declare function isAgentComputerCommand(command: string): boolean;
2
+ /** 工具调用的 JSON 参数里是不是一条 computer launch 命令。 */
3
+ export declare function isAgentComputerToolCall(argumentsJson: string | null | undefined): boolean;
4
+ export type AgentComputerLaunchOutcome = "pending" | "succeeded" | "failed" | "unknown";
5
+ /** `computer launch` 这条 Bash 工具调用最终是不是真的启动成功了——不能只看
6
+ * `isAgentComputerToolCall` 命中参数就当作成功:可执行文件缺失/不可执行、
7
+ * 启动后随即退出这些 appmirrord 侧的失败,Bash 工具调用本身仍然会走完
8
+ * `status: "done"`(Bash 工具的职责是"跑完这条命令",命令自己返回非零退出码
9
+ * 不算工具调用失败)。
10
+ *
11
+ * 唯一的判据是输出里有没有出现 `LAUNCH_SUCCESS_MARKER`——launch.go 的
12
+ * cmdLaunch 只要走到成功分支就一定会打印这行文本,不存在"成功了但没打印"
13
+ * 的路径。标记缺失就等价于没有走到那条成功路径,不再退回看 `result.exit_code`
14
+ * 当兜底:那样会给 `computer launch ... || echo failed` 这类复合命令开口子,
15
+ * 让真实失败的 launch 被误判成 succeeded。
16
+ *
17
+ * "pending":还没跑完(status 既不是终态失败也不是 done),调用方不该现在
18
+ * 就下结论,也不该把这次调用标记成"已处理"——等下一次状态更新再重新判断。
19
+ *
20
+ * "unknown":`status: "done"` 但 `result` 本身缺失(不是"有 result、没有标记",
21
+ * 是根本没有 result 这个字段)——历史会话被整理(compaction)之后,归档的
22
+ * 工具调用只保留 `arguments`/`status` 这类摘要字段,完整 `result` payload 不
23
+ * 会重新序列化进历史投影,这是已知且刻意的压缩形状,不是数据丢失异常。这种
24
+ * 情况下"没看到成功标记"不能说明"这次 launch 失败了",只能说明"证据被裁剪
25
+ * 了"——跟"result 确实回来了、里面就是没有这行文本"是两种不同性质的证据,
26
+ * 前者不能定性为 failed,接入方要按自己的场景(标签页展示可以偏宽松,自动
27
+ * 跳转/替用户做决定的场景应该偏保守)自己决定怎么用。
28
+ *
29
+ * 与 apps/web/src/agent/lib/agent-computer-command.ts 保持同名同签名——两边
30
+ * 内容目前完全一致,改一处记得同步另一处。 */
31
+ export declare function classifyAgentComputerLaunchOutcome(toolCall: {
32
+ status?: string;
33
+ result?: unknown;
34
+ }): AgentComputerLaunchOutcome;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 生成随机标识。
3
+ *
4
+ * `crypto.randomUUID` 只在安全上下文(HTTPS 或 localhost)可用:部署成
5
+ * `http://<host>:<port>` 时它是 undefined,直接调用会让调用方整个挂掉
6
+ * (MCP App 卡片就是这么坏的)。`crypto.getRandomValues` 不受这条限制,
7
+ * 这里用它拼出等价的 UUID v4,只有在完全没有 Web Crypto 的环境才退回
8
+ * 时间戳 + 随机数——那只是为了不抛异常,不保证全局唯一性。
9
+ */
10
+ export declare function randomId(): string;
@@ -1,5 +1,7 @@
1
1
  import { type ClassValue } from "clsx";
2
2
  /** 合并 className(SDK 内不引入 tailwind-merge,按序拼接即可)。 */
3
3
  export declare function cn(...inputs: ClassValue[]): string;
4
- /** 复制文本到剪贴板,返回是否成功。 */
4
+ /** 复制文本到剪贴板,返回是否成功。
5
+ * 与 apps/web/src/agent/lib/utils.ts 保持同名同签名和相同降级语义。
6
+ */
5
7
  export declare function copyToClipboard(text: string): Promise<boolean>;
@@ -0,0 +1,18 @@
1
+ /** 一条 canonical what-if 消息中的引用快照。 */
2
+ export interface WhatIfQuote {
3
+ stepNumber: number | null;
4
+ label: string;
5
+ snapshot: string;
6
+ }
7
+ export interface ParsedWhatIfPrompt {
8
+ fromStep: number | null;
9
+ quotes: WhatIfQuote[];
10
+ userText: string;
11
+ }
12
+ /**
13
+ * 解析 Server 历史与流式消息共用的 canonical what-if 文本。
14
+ *
15
+ * 无 `[用户输入]` 标签的历史消息仍按最后一条快照尾部的空行切分,保持内置
16
+ * Web 原有兼容行为。
17
+ */
18
+ export declare function parseWhatIfPrompt(text: string): ParsedWhatIfPrompt | null;
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ Nt
4
+ } from "./chunk-MAAMCOAU.js";
5
+ import "./chunk-G3PMV62Z.js";
6
+ export {
7
+ Nt as Mermaid
8
+ };
9
+ //# sourceMappingURL=mermaid-3ZIDBTTL-BPVVWTVV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/style.css CHANGED
@@ -118,7 +118,7 @@
118
118
  /* 滚动内容的内边距。这一层过去只有 Tailwind class,宿主没装 Tailwind 时消息完全贴边。 */
119
119
  .blade-chat-messages-scroll {
120
120
  padding: calc(var(--blade-chat-gutter) * 1.4) var(--blade-chat-gutter)
121
- calc(var(--blade-chat-gutter) * 1.1);
121
+ calc(var(--blade-chat-gutter) * 1.1 + var(--blade-chat-pin-spacer, 0px));
122
122
  }
123
123
 
124
124
  .blade-chat-messages-content {
@@ -219,6 +219,81 @@
219
219
  color: hsl(var(--muted-foreground));
220
220
  }
221
221
 
222
+ /* ------------------------------------------------------------- 背景信息卡片 */
223
+
224
+ .blade-chat-context-card {
225
+ overflow: hidden;
226
+ border: 1px solid hsl(var(--border));
227
+ border-radius: 0.75rem;
228
+ background: hsl(var(--card));
229
+ }
230
+
231
+ .blade-chat-context-summary {
232
+ display: flex;
233
+ cursor: pointer;
234
+ list-style: none;
235
+ align-items: center;
236
+ gap: 0.5rem;
237
+ padding: 0.625rem 0.75rem;
238
+ }
239
+
240
+ .blade-chat-context-summary::-webkit-details-marker {
241
+ display: none;
242
+ }
243
+
244
+ .blade-chat-context-copy {
245
+ min-width: 0;
246
+ flex: 1 1 0%;
247
+ }
248
+
249
+ .blade-chat-context-title,
250
+ .blade-chat-context-status {
251
+ display: block;
252
+ }
253
+
254
+ .blade-chat-context-title {
255
+ color: hsl(var(--foreground));
256
+ font-weight: 500;
257
+ }
258
+
259
+ .blade-chat-context-status {
260
+ overflow: hidden;
261
+ color: hsl(var(--muted-foreground));
262
+ font-size: 0.75rem;
263
+ text-overflow: ellipsis;
264
+ white-space: nowrap;
265
+ }
266
+
267
+ /* 180ms + cubic-bezier(0.25,0.1,0.25,1):跟 apps/web 同名组件的
268
+ --motion-duration-fast / --motion-ease-enter 数值保持一致(这个包独立发布,
269
+ 没有内部 app 的 CSS 变量可用,只能各自写字面量)。 */
270
+ .blade-chat-context-chevron {
271
+ transition: transform 180ms cubic-bezier(0.25, 0.1, 0.25, 1);
272
+ }
273
+
274
+ /* 只作用于卡片自己的 summary。分组卡片会把单条卡片套在里面,用后代选择器的话
275
+ 外层一展开就会把里面所有收起的子卡片的箭头也转过来。 */
276
+ .blade-chat-context-card[open] > .blade-chat-context-summary > .blade-chat-context-chevron {
277
+ transform: rotate(180deg);
278
+ }
279
+
280
+ .blade-chat-context-detail {
281
+ border-top: 1px solid hsl(var(--border));
282
+ padding: 0.625rem 0.75rem;
283
+ color: hsl(var(--muted-foreground));
284
+ font-size: 0.75rem;
285
+ line-height: 1.25rem;
286
+ }
287
+
288
+ /* 一次输入会注入十几项背景信息,折叠成一行后展开才逐条列出。 */
289
+ .blade-chat-context-group-items {
290
+ display: flex;
291
+ flex-direction: column;
292
+ gap: 0.375rem;
293
+ border-top: 1px solid hsl(var(--border));
294
+ padding: 0.5rem;
295
+ }
296
+
222
297
  .blade-chat-error-bar {
223
298
  display: flex;
224
299
  align-items: flex-start;
@@ -234,8 +309,14 @@
234
309
 
235
310
  /* 左右内边距和消息区共用同一个 gutter,否则输入框与消息文字左边缘对不齐。 */
236
311
  .blade-chat-input {
237
- border-top: 1px solid hsl(var(--border));
238
- padding: 0.75rem var(--blade-chat-gutter);
312
+ /* 队列面板占位时组件会加上 border-t-0 收起这条线,所以这里不能写死:写死会
313
+ 盖过那个切换。用变量保留默认值,外层仍按原样渲染一条分隔线。 */
314
+ border-top: var(--blade-chat-input-top-border, 1px solid hsl(var(--border)));
315
+ /* 上下留白由组件上的 py-3 / pt-0 给:队列面板贴在它上方时要把上留白去掉,
316
+ 写死在这里会盖掉那个切换(内置 Web 的输入框外层同样是 pt-0)。
317
+ 左右留白仍走 gutter 变量,跟队列面板共用同一份。 */
318
+ padding-left: var(--blade-chat-gutter);
319
+ padding-right: var(--blade-chat-gutter);
239
320
  }
240
321
 
241
322
  .blade-chat-input-inner {
@@ -246,10 +327,20 @@
246
327
  max-width: 748px;
247
328
  border: 1px solid hsl(var(--border));
248
329
  background: hsl(var(--card));
249
- border-radius: 1rem;
330
+ /* 圆角由组件上的 rounded-2xl / rounded-b-2xl 给:队列面板贴在它上方时
331
+ 上两角要变直角,写死在这里会盖掉那个切换。 */
250
332
  padding: 0.5rem 0.75rem;
251
333
  }
252
334
 
335
+ /* 队列面板的外层左右留白:必须跟下面输入框一致,两边各自居中才不会错位。
336
+ * 默认跟随本包输入框用的同一个 gutter 变量;宿主输入框用别的留白时(内置 Web
337
+ * 的输入框外层是 px-5),在自己的样式里覆盖 --blade-chat-queue-gutter 即可。 */
338
+ .blade-chat-queue {
339
+ --blade-chat-queue-gutter: var(--blade-chat-gutter, 1rem);
340
+ padding-left: var(--blade-chat-queue-gutter);
341
+ padding-right: var(--blade-chat-queue-gutter);
342
+ }
343
+
253
344
  .blade-chat-textarea {
254
345
  flex: 1 1 0%;
255
346
  resize: none;
@@ -269,7 +360,8 @@
269
360
  Safari's 16px focus-zoom threshold. Desktop sizing remains unchanged. */
270
361
  @media (hover: none) and (pointer: coarse) {
271
362
  .blade-chat-textarea,
272
- .blade-chat-ask-card input {
363
+ .blade-chat-ask-card input,
364
+ .blade-chat-ask-card textarea {
273
365
  font-size: 1rem;
274
366
  }
275
367
 
@@ -253,7 +253,7 @@
253
253
  /* 滚动内容的内边距。这一层过去只有 Tailwind class,宿主没装 Tailwind 时消息完全贴边。 */
254
254
  .blade-chat-messages-scroll {
255
255
  padding: calc(var(--blade-chat-gutter) * 1.4) var(--blade-chat-gutter)
256
- calc(var(--blade-chat-gutter) * 1.1);
256
+ calc(var(--blade-chat-gutter) * 1.1 + var(--blade-chat-pin-spacer, 0px));
257
257
  }
258
258
 
259
259
  .blade-chat-messages-content {
@@ -354,6 +354,81 @@
354
354
  color: hsl(var(--muted-foreground));
355
355
  }
356
356
 
357
+ /* ------------------------------------------------------------- 背景信息卡片 */
358
+
359
+ .blade-chat-context-card {
360
+ overflow: hidden;
361
+ border: 1px solid hsl(var(--border));
362
+ border-radius: 0.75rem;
363
+ background: hsl(var(--card));
364
+ }
365
+
366
+ .blade-chat-context-summary {
367
+ display: flex;
368
+ cursor: pointer;
369
+ list-style: none;
370
+ align-items: center;
371
+ gap: 0.5rem;
372
+ padding: 0.625rem 0.75rem;
373
+ }
374
+
375
+ .blade-chat-context-summary::-webkit-details-marker {
376
+ display: none;
377
+ }
378
+
379
+ .blade-chat-context-copy {
380
+ min-width: 0;
381
+ flex: 1 1 0%;
382
+ }
383
+
384
+ .blade-chat-context-title,
385
+ .blade-chat-context-status {
386
+ display: block;
387
+ }
388
+
389
+ .blade-chat-context-title {
390
+ color: hsl(var(--foreground));
391
+ font-weight: 500;
392
+ }
393
+
394
+ .blade-chat-context-status {
395
+ overflow: hidden;
396
+ color: hsl(var(--muted-foreground));
397
+ font-size: 0.75rem;
398
+ text-overflow: ellipsis;
399
+ white-space: nowrap;
400
+ }
401
+
402
+ /* 180ms + cubic-bezier(0.25,0.1,0.25,1):跟 apps/web 同名组件的
403
+ --motion-duration-fast / --motion-ease-enter 数值保持一致(这个包独立发布,
404
+ 没有内部 app 的 CSS 变量可用,只能各自写字面量)。 */
405
+ .blade-chat-context-chevron {
406
+ transition: transform 180ms cubic-bezier(0.25, 0.1, 0.25, 1);
407
+ }
408
+
409
+ /* 只作用于卡片自己的 summary。分组卡片会把单条卡片套在里面,用后代选择器的话
410
+ 外层一展开就会把里面所有收起的子卡片的箭头也转过来。 */
411
+ .blade-chat-context-card[open] > .blade-chat-context-summary > .blade-chat-context-chevron {
412
+ transform: rotate(180deg);
413
+ }
414
+
415
+ .blade-chat-context-detail {
416
+ border-top: 1px solid hsl(var(--border));
417
+ padding: 0.625rem 0.75rem;
418
+ color: hsl(var(--muted-foreground));
419
+ font-size: 0.75rem;
420
+ line-height: 1.25rem;
421
+ }
422
+
423
+ /* 一次输入会注入十几项背景信息,折叠成一行后展开才逐条列出。 */
424
+ .blade-chat-context-group-items {
425
+ display: flex;
426
+ flex-direction: column;
427
+ gap: 0.375rem;
428
+ border-top: 1px solid hsl(var(--border));
429
+ padding: 0.5rem;
430
+ }
431
+
357
432
  .blade-chat-error-bar {
358
433
  display: flex;
359
434
  align-items: flex-start;
@@ -369,8 +444,14 @@
369
444
 
370
445
  /* 左右内边距和消息区共用同一个 gutter,否则输入框与消息文字左边缘对不齐。 */
371
446
  .blade-chat-input {
372
- border-top: 1px solid hsl(var(--border));
373
- padding: 0.75rem var(--blade-chat-gutter);
447
+ /* 队列面板占位时组件会加上 border-t-0 收起这条线,所以这里不能写死:写死会
448
+ 盖过那个切换。用变量保留默认值,外层仍按原样渲染一条分隔线。 */
449
+ border-top: var(--blade-chat-input-top-border, 1px solid hsl(var(--border)));
450
+ /* 上下留白由组件上的 py-3 / pt-0 给:队列面板贴在它上方时要把上留白去掉,
451
+ 写死在这里会盖掉那个切换(内置 Web 的输入框外层同样是 pt-0)。
452
+ 左右留白仍走 gutter 变量,跟队列面板共用同一份。 */
453
+ padding-left: var(--blade-chat-gutter);
454
+ padding-right: var(--blade-chat-gutter);
374
455
  }
375
456
 
376
457
  .blade-chat-input-inner {
@@ -381,10 +462,20 @@
381
462
  max-width: 748px;
382
463
  border: 1px solid hsl(var(--border));
383
464
  background: hsl(var(--card));
384
- border-radius: 1rem;
465
+ /* 圆角由组件上的 rounded-2xl / rounded-b-2xl 给:队列面板贴在它上方时
466
+ 上两角要变直角,写死在这里会盖掉那个切换。 */
385
467
  padding: 0.5rem 0.75rem;
386
468
  }
387
469
 
470
+ /* 队列面板的外层左右留白:必须跟下面输入框一致,两边各自居中才不会错位。
471
+ * 默认跟随本包输入框用的同一个 gutter 变量;宿主输入框用别的留白时(内置 Web
472
+ * 的输入框外层是 px-5),在自己的样式里覆盖 --blade-chat-queue-gutter 即可。 */
473
+ .blade-chat-queue {
474
+ --blade-chat-queue-gutter: var(--blade-chat-gutter, 1rem);
475
+ padding-left: var(--blade-chat-queue-gutter);
476
+ padding-right: var(--blade-chat-queue-gutter);
477
+ }
478
+
388
479
  .blade-chat-textarea {
389
480
  flex: 1 1 0%;
390
481
  resize: none;
@@ -404,7 +495,8 @@
404
495
  Safari's 16px focus-zoom threshold. Desktop sizing remains unchanged. */
405
496
  @media (hover: none) and (pointer: coarse) {
406
497
  .blade-chat-textarea,
407
- .blade-chat-ask-card input {
498
+ .blade-chat-ask-card input,
499
+ .blade-chat-ask-card textarea {
408
500
  font-size: 1rem;
409
501
  }
410
502
 
@@ -686,4 +778,4 @@
686
778
 
687
779
  /* ---- Tailwind 编译产物(无 preflight) ---- */
688
780
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
689
- @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-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-100:oklch(96.2% .059 95.617);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-500:oklch(64.5% .246 16.439);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--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-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.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}}.m-0{margin:0}.mx-auto{margin-inline:auto}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-\[34px\]{height:34px}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:0}.min-h-\[28px\]{min-height:28px}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[72\%\]{max-width:72%}.max-w-\[85\%\]{max-width:85%}.max-w-\[748px\]{max-width:748px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.resize-none{resize:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.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}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * 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-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[20px\]{border-radius:20px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-br-\[6px\]{border-bottom-right-radius:6px}.border{border-style:var(--tw-border-style);border-width:1px}.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-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-\[hsl\(var\(--border\)\)\]{border-color:hsl(var(--border))}.border-\[hsl\(var\(--primary\)\/0\.8\)\]{border-color:hsl(var(--primary)/.8)}.border-\[hsl\(var\(--primary\)\/0\.45\)\]{border-color:hsl(var(--primary)/.45)}.border-\[hsl\(var\(--primary-foreground\)\/0\.6\)\]{border-color:hsl(var(--primary-foreground)/.6)}.border-\[hsl\(var\(--ring\)\/0\.6\)\]{border-color:hsl(var(--ring)/.6)}.border-\[hsl\(var\(--user-msg-border\)\)\]{border-color:hsl(var(--user-msg-border))}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/25{border-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/35{border-color:#f99c0059}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/35{border-color:color-mix(in oklab, var(--color-amber-500) 35%, transparent)}}.border-rose-500\/25{border-color:#ff235740}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/25{border-color:color-mix(in oklab, var(--color-rose-500) 25%, transparent)}}.border-l-\[hsl\(var\(--muted-foreground\)\/0\.5\)\]{border-left-color:hsl(var(--muted-foreground)/.5)}.border-l-\[hsl\(var\(--primary\)\)\]{border-left-color:hsl(var(--primary))}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.bg-\[hsl\(var\(--accent\)\)\]{background-color:hsl(var(--accent))}.bg-\[hsl\(var\(--background\)\)\]{background-color:hsl(var(--background))}.bg-\[hsl\(var\(--card\)\)\]{background-color:hsl(var(--card))}.bg-\[hsl\(var\(--muted\)\)\/0\.5\]{background-color:hsl(var(--muted))/.5}.bg-\[hsl\(var\(--muted\)\)\],.bg-\[hsl\(var\(--muted\)\)\]\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-\[hsl\(var\(--muted\)\)\]\/40{background-color:color-mix(in oklab, hsl(var(--muted)) 40%, transparent)}}.bg-\[hsl\(var\(--muted\)\/0\.2\)\]{background-color:hsl(var(--muted)/.2)}.bg-\[hsl\(var\(--muted\)\/0\.3\)\]{background-color:hsl(var(--muted)/.3)}.bg-\[hsl\(var\(--muted\)\/0\.28\)\]{background-color:hsl(var(--muted)/.28)}.bg-\[hsl\(var\(--muted\)\/0\.35\)\]{background-color:hsl(var(--muted)/.35)}.bg-\[hsl\(var\(--muted\)\/0\.62\)\]{background-color:hsl(var(--muted)/.62)}.bg-\[hsl\(var\(--primary\)\)\]{background-color:hsl(var(--primary))}.bg-\[hsl\(var\(--primary\)\/0\.08\)\]{background-color:hsl(var(--primary)/.08)}.bg-\[hsl\(var\(--primary\)\/0\.12\)\]{background-color:hsl(var(--primary)/.12)}.bg-\[hsl\(var\(--primary-foreground\)\/0\.2\)\]{background-color:hsl(var(--primary-foreground)/.2)}.bg-\[hsl\(var\(--user-msg-bg\)\)\]{background-color:hsl(var(--user-msg-bg))}.bg-amber-500\/8{background-color:#f99c0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/8{background-color:color-mix(in oklab, var(--color-amber-500) 8%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-amber-400\/40{--tw-gradient-via:#fcbb0066}@supports (color:color-mix(in lab, red, red)){.via-amber-400\/40{--tw-gradient-via:color-mix(in oklab, var(--color-amber-400) 40%, transparent)}}.via-amber-400\/40{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.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)}.px-\[18px\]{padding-inline:18px}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-\[13px\]{padding-block:13px}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-\[1\.65\]{--tw-leading:1.65;line-height:1.65}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[hsl\(var\(--card-foreground\)\)\]{color:hsl(var(--card-foreground))}.text-\[hsl\(var\(--destructive\)\)\]{color:hsl(var(--destructive))}.text-\[hsl\(var\(--foreground\)\)\]{color:hsl(var(--foreground))}.text-\[hsl\(var\(--muted-foreground\)\)\/0\.85\]{color:hsl(var(--muted-foreground))/.85}.text-\[hsl\(var\(--muted-foreground\)\)\],.text-\[hsl\(var\(--muted-foreground\)\)\]\/70{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.text-\[hsl\(var\(--muted-foreground\)\)\]\/70{color:color-mix(in oklab, hsl(var(--muted-foreground)) 70%, transparent)}}.text-\[hsl\(var\(--primary\)\)\]{color:hsl(var(--primary))}.text-\[hsl\(var\(--primary-foreground\)\)\]{color:hsl(var(--primary-foreground))}.text-\[hsl\(var\(--user-msg-fg\)\)\]{color:hsl(var(--user-msg-fg))}.text-amber-100{color:var(--color-amber-100)}.text-amber-100\/55{color:#fef3c68c}@supports (color:color-mix(in lab, red, red)){.text-amber-100\/55{color:color-mix(in oklab, var(--color-amber-100) 55%, transparent)}}.text-amber-100\/75{color:#fef3c6bf}@supports (color:color-mix(in lab, red, red)){.text-amber-100\/75{color:color-mix(in oklab, var(--color-amber-100) 75%, transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-blue-300{color:var(--color-blue-300)}.text-rose-100{color:var(--color-rose-100)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.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-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)}.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-opacity{transition-property:opacity;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))}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *){opacity:1}.placeholder\:text-\[hsl\(var\(--muted-foreground\)\/0\.5\)\]::placeholder{color:hsl(var(--muted-foreground)/.5)}.placeholder\:text-\[hsl\(var\(--muted-foreground\)\/0\.6\)\]::placeholder{color:hsl(var(--muted-foreground)/.6)}@media (hover:hover){.hover\:border-\[hsl\(var\(--ring\)\/0\.3\)\]:hover{border-color:hsl(var(--ring)/.3)}.hover\:border-\[hsl\(var\(--ring\)\/0\.4\)\]:hover{border-color:hsl(var(--ring)/.4)}.hover\:bg-\[hsl\(var\(--accent\)\)\]:hover{background-color:hsl(var(--accent))}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/3:hover{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/3:hover{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.hover\:text-\[hsl\(var\(--foreground\)\)\]:hover{color:hsl(var(--foreground))}.hover\:opacity-90:hover{opacity:.9}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--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-visible\:ring-\[hsl\(var\(--ring\)\)\]:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}.aria-pressed\:bg-\[hsl\(var\(--primary\)\/0\.1\)\][aria-pressed=true]{background-color:hsl(var(--primary)/.1)}.aria-pressed\:bg-\[hsl\(var\(--primary\)\/0\.14\)\][aria-pressed=true]{background-color:hsl(var(--primary)/.14)}@media (min-width:40rem){.sm\:max-w-\[680px\]{max-width:680px}}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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}@keyframes spin{to{transform:rotate(360deg)}}
781
+ @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-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-800:oklch(43.2% .095 166.913);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-800:oklch(43.7% .078 188.216);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-800:oklch(44.3% .11 240.79);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-800:oklch(39.8% .195 277.366);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-800:oklch(43.2% .232 292.759);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-800:oklch(45.5% .188 13.697);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--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-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-x-1{inset-inline:var(--spacing)}.top-0{top:0}.top-full{top:100%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.left-0{left:0}.z-40{z-index:40}.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}}.m-0{margin:0}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-\[3px\]{margin-top:3px}.mr-1{margin-right:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.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)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.ml-1{margin-left:var(--spacing)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-10{margin-left:calc(var(--spacing) * 10)}.ml-\[18px\]{margin-left:18px}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-\[30px\]{width:30px;height:30px}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-\[2px\]{height:2px}.h-\[18px\]{height:18px}.h-\[34px\]{height:34px}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:0}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-\[28px\]{min-height:28px}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[72\%\]{max-width:72%}.max-w-\[680px\]{max-width:680px}.max-w-\[748px\]{max-width:748px}.max-w-\[748px\]\!{max-width:748px!important}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(72vw\,42rem\)\]{max-width:min(72vw,42rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.translate-x-\[2px\]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[16px\]{--tw-translate-x:16px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * 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-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.-space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -1) * calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-\[22px\]{border-top-left-radius:22px;border-top-right-radius:22px}.rounded-b-\[22px\]{border-bottom-right-radius:22px;border-bottom-left-radius:22px}.rounded-br-\[6px\]{border-bottom-right-radius:6px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-\[hsl\(var\(--accent-foreground\)\/0\.35\)\]{border-color:hsl(var(--accent-foreground)/.35)}.border-\[hsl\(var\(--border\)\)\]{border-color:hsl(var(--border))}.border-\[hsl\(var\(--border\)\/0\.8\)\]{border-color:hsl(var(--border)/.8)}.border-\[hsl\(var\(--border\)\/0\.55\)\]{border-color:hsl(var(--border)/.55)}.border-\[hsl\(var\(--primary\)\/0\.8\)\]{border-color:hsl(var(--primary)/.8)}.border-\[hsl\(var\(--primary\)\/0\.22\)\]{border-color:hsl(var(--primary)/.22)}.border-\[hsl\(var\(--primary\)\/0\.45\)\]{border-color:hsl(var(--primary)/.45)}.border-\[hsl\(var\(--primary-foreground\)\/0\.6\)\]{border-color:hsl(var(--primary-foreground)/.6)}.border-\[hsl\(var\(--ring\)\/0\.6\)\]{border-color:hsl(var(--ring)/.6)}.border-\[hsl\(var\(--user-msg-border\)\)\]{border-color:hsl(var(--user-msg-border))}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/25{border-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/35{border-color:#f99c0059}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/35{border-color:color-mix(in oklab, var(--color-amber-500) 35%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-rose-500\/25{border-color:#ff235740}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/25{border-color:color-mix(in oklab, var(--color-rose-500) 25%, transparent)}}.border-transparent{border-color:#0000}.border-l-\[hsl\(var\(--muted-foreground\)\/0\.5\)\]{border-left-color:hsl(var(--muted-foreground)/.5)}.border-l-\[hsl\(var\(--primary\)\)\]{border-left-color:hsl(var(--primary))}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.bg-\[hsl\(213_94\%_55\%\)\]{background-color:#2081f8}.bg-\[hsl\(var\(--accent\)\)\]{background-color:hsl(var(--accent))}.bg-\[hsl\(var\(--background\)\)\]{background-color:hsl(var(--background))}.bg-\[hsl\(var\(--background\)\/0\.72\)\]{background-color:hsl(var(--background)/.72)}.bg-\[hsl\(var\(--border\)\/0\.75\)\]{background-color:hsl(var(--border)/.75)}.bg-\[hsl\(var\(--card\)\)\]{background-color:hsl(var(--card))}.bg-\[hsl\(var\(--card\)\/0\.8\)\]{background-color:hsl(var(--card)/.8)}.bg-\[hsl\(var\(--muted\)\)\/0\.5\]{background-color:hsl(var(--muted))/.5}.bg-\[hsl\(var\(--muted\)\)\],.bg-\[hsl\(var\(--muted\)\)\]\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab, red, red)){.bg-\[hsl\(var\(--muted\)\)\]\/40{background-color:color-mix(in oklab, hsl(var(--muted)) 40%, transparent)}}.bg-\[hsl\(var\(--muted\)\/0\.2\)\]{background-color:hsl(var(--muted)/.2)}.bg-\[hsl\(var\(--muted\)\/0\.3\)\]{background-color:hsl(var(--muted)/.3)}.bg-\[hsl\(var\(--muted\)\/0\.5\)\]{background-color:hsl(var(--muted)/.5)}.bg-\[hsl\(var\(--muted\)\/0\.28\)\]{background-color:hsl(var(--muted)/.28)}.bg-\[hsl\(var\(--muted\)\/0\.35\)\]{background-color:hsl(var(--muted)/.35)}.bg-\[hsl\(var\(--muted\)\/0\.55\)\]{background-color:hsl(var(--muted)/.55)}.bg-\[hsl\(var\(--muted\)\/0\.62\)\]{background-color:hsl(var(--muted)/.62)}.bg-\[hsl\(var\(--popover\)\)\]{background-color:hsl(var(--popover))}.bg-\[hsl\(var\(--primary\)\)\]{background-color:hsl(var(--primary))}.bg-\[hsl\(var\(--primary\)\/0\.07\)\]{background-color:hsl(var(--primary)/.07)}.bg-\[hsl\(var\(--primary\)\/0\.08\)\]{background-color:hsl(var(--primary)/.08)}.bg-\[hsl\(var\(--primary\)\/0\.12\)\]{background-color:hsl(var(--primary)/.12)}.bg-\[hsl\(var\(--primary-foreground\)\/0\.2\)\]{background-color:hsl(var(--primary-foreground)/.2)}.bg-\[hsl\(var\(--user-msg-bg\)\)\]{background-color:hsl(var(--user-msg-bg))}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500\/8{background-color:#f99c0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/8{background-color:color-mix(in oklab, var(--color-amber-500) 8%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-fuchsia-100{background-color:var(--color-fuchsia-100)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-sky-100{background-color:var(--color-sky-100)}.bg-teal-100{background-color:var(--color-teal-100)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-white{background-color:var(--color-white)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-amber-400\/40{--tw-gradient-via:#fcbb0066}@supports (color:color-mix(in lab, red, red)){.via-amber-400\/40{--tw-gradient-via:color-mix(in oklab, var(--color-amber-400) 40%, transparent)}}.via-amber-400\/40{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .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)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.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)}.px-10{padding-inline:calc(var(--spacing) * 10)}.px-\[18px\]{padding-inline:18px}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-\[13px\]{padding-block:13px}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-px{padding-top:1px}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-\[1\.65\]{--tw-leading:1.65;line-height:1.65}.leading-\[22px\]{--tw-leading:22px;line-height:22px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[hsl\(var\(--card-foreground\)\)\]{color:hsl(var(--card-foreground))}.text-\[hsl\(var\(--destructive\)\)\]{color:hsl(var(--destructive))}.text-\[hsl\(var\(--foreground\)\)\]{color:hsl(var(--foreground))}.text-\[hsl\(var\(--foreground\)\/0\.8\)\]{color:hsl(var(--foreground)/.8)}.text-\[hsl\(var\(--muted-foreground\)\)\/0\.85\]{color:hsl(var(--muted-foreground))/.85}.text-\[hsl\(var\(--muted-foreground\)\)\],.text-\[hsl\(var\(--muted-foreground\)\)\]\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab, red, red)){.text-\[hsl\(var\(--muted-foreground\)\)\]\/60{color:color-mix(in oklab, hsl(var(--muted-foreground)) 60%, transparent)}}.text-\[hsl\(var\(--popover-foreground\)\)\]{color:hsl(var(--popover-foreground))}.text-\[hsl\(var\(--primary\)\)\]{color:hsl(var(--primary))}.text-\[hsl\(var\(--primary-foreground\)\)\]{color:hsl(var(--primary-foreground))}.text-\[hsl\(var\(--user-msg-fg\)\)\]{color:hsl(var(--user-msg-fg))}.text-amber-100{color:var(--color-amber-100)}.text-amber-100\/55{color:#fef3c68c}@supports (color:color-mix(in lab, red, red)){.text-amber-100\/55{color:color-mix(in oklab, var(--color-amber-100) 55%, transparent)}}.text-amber-100\/75{color:#fef3c6bf}@supports (color:color-mix(in lab, red, red)){.text-amber-100\/75{color:color-mix(in oklab, var(--color-amber-100) 75%, transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-amber-500{color:var(--color-amber-500)}.text-amber-800{color:var(--color-amber-800)}.text-blue-300{color:var(--color-blue-300)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-800{color:var(--color-emerald-800)}.text-fuchsia-800{color:var(--color-fuchsia-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-rose-100{color:var(--color-rose-100)}.text-rose-800{color:var(--color-rose-800)}.text-sky-800{color:var(--color-sky-800)}.text-teal-800{color:var(--color-teal-800)}.text-violet-800{color:var(--color-violet-800)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.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-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)}.ring{--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-2{--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)}.ring-\[hsl\(var\(--background\)\)\]{--tw-ring-color:hsl(var(--background))}.transition-\[grid-template-rows\,opacity\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\]{transition-property:opacity,transform;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-opacity{transition-property:opacity;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}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\!running{animation-play-state:running!important}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-open\/context-card\:rotate-180:is(:where(.group\/context-card):is([open],:popover-open,:open) *),.group-open\/context-group\:rotate-180:is(:where(.group\/context-group):is([open],:popover-open,:open) *){rotate:180deg}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/thinking\:opacity-100:is(:where(.group\/thinking):hover *){opacity:1}}.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *),.group-has-\[\:focus-visible\]\:opacity-100:is(:where(.group):has(:focus-visible) *){opacity:1}.placeholder\:text-\[hsl\(var\(--muted-foreground\)\)\]::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-\[hsl\(var\(--muted-foreground\)\/0\.5\)\]::placeholder{color:hsl(var(--muted-foreground)/.5)}.placeholder\:text-\[hsl\(var\(--muted-foreground\)\/0\.6\)\]::placeholder{color:hsl(var(--muted-foreground)/.6)}.focus-within\:ring-2:focus-within{--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-within\:ring-\[hsl\(var\(--ring\)\/0\.35\)\]:focus-within{--tw-ring-color:hsl(var(--ring)/.35)}@media (hover:hover){.hover\:border-\[hsl\(var\(--ring\)\/0\.3\)\]:hover{border-color:hsl(var(--ring)/.3)}.hover\:border-\[hsl\(var\(--ring\)\/0\.4\)\]:hover{border-color:hsl(var(--ring)/.4)}.hover\:bg-\[hsl\(var\(--accent\)\)\]:hover{background-color:hsl(var(--accent))}.hover\:bg-\[hsl\(var\(--muted\)\/0\.3\)\]:hover{background-color:hsl(var(--muted)/.3)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/3:hover{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/3:hover{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.hover\:text-\[hsl\(var\(--foreground\)\)\]:hover{color:hsl(var(--foreground))}.hover\:opacity-90:hover{opacity:.9}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-1:focus-visible{--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-visible\:ring-\[hsl\(var\(--ring\)\)\]:focus-visible{--tw-ring-color:hsl(var(--ring))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.aria-busy\:cursor-wait[aria-busy=true]{cursor:wait}.aria-disabled\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.aria-disabled\:opacity-60[aria-disabled=true]{opacity:.6}.aria-pressed\:bg-\[hsl\(var\(--primary\)\/0\.1\)\][aria-pressed=true]{background-color:hsl(var(--primary)/.1)}.aria-pressed\:bg-\[hsl\(var\(--primary\)\/0\.14\)\][aria-pressed=true]{background-color:hsl(var(--primary)/.14)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (min-width:40rem){.sm\:max-w-\[680px\]{max-width:680px}}@media (prefers-color-scheme:dark){.dark\:bg-amber-500\/25{background-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-500\/25{background-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.dark\:bg-emerald-500\/25{background-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-500\/25{background-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.dark\:bg-fuchsia-500\/25{background-color:#e12afb40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-fuchsia-500\/25{background-color:color-mix(in oklab, var(--color-fuchsia-500) 25%, transparent)}}.dark\:bg-indigo-500\/25{background-color:#625fff40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-500\/25{background-color:color-mix(in oklab, var(--color-indigo-500) 25%, transparent)}}.dark\:bg-rose-500\/25{background-color:#ff235740}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-500\/25{background-color:color-mix(in oklab, var(--color-rose-500) 25%, transparent)}}.dark\:bg-sky-500\/25{background-color:#00a5ef40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-sky-500\/25{background-color:color-mix(in oklab, var(--color-sky-500) 25%, transparent)}}.dark\:bg-teal-500\/25{background-color:#00baa740}@supports (color:color-mix(in lab, red, red)){.dark\:bg-teal-500\/25{background-color:color-mix(in oklab, var(--color-teal-500) 25%, transparent)}}.dark\:bg-violet-500\/25{background-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-500\/25{background-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.dark\:text-amber-200{color:var(--color-amber-200)}.dark\:text-emerald-200{color:var(--color-emerald-200)}.dark\:text-fuchsia-200{color:var(--color-fuchsia-200)}.dark\:text-indigo-200{color:var(--color-indigo-200)}.dark\:text-rose-200{color:var(--color-rose-200)}.dark\:text-sky-200{color:var(--color-sky-200)}.dark\:text-teal-200{color:var(--color-teal-200)}.dark\:text-violet-200{color:var(--color-violet-200)}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@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-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}