@mcp-b/embedded-agent 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { c } from "react/compiler-runtime";
2
2
  import r2wc from "@r2wc/react-to-web-component";
3
- import { AssistantRuntimeProvider, ComposerPrimitive, MessagePrimitive, ThreadPrimitive, useAssistantTool, useComposer, useComposerRuntime, useThread, useThreadRuntime, useThreadRuntime as useThreadRuntime$1 } from "@assistant-ui/react";
4
- import { AlertCircle, AlertTriangle, Camera, Check, CheckCircle2, ChevronDown, ChevronDownIcon, ChevronUpIcon, Copy, FileText, GripHorizontal, Loader2, Mic, MicOff, MousePointer, Navigation, Pause, PenLine, PhoneOff, Search, Send, Shield, ShieldOff, Square, Trash2, Wrench, X } from "lucide-react";
3
+ import { AssistantRuntimeProvider, ComposerPrimitive, MessagePrimitive, ThreadPrimitive, useAssistantTool, useComposer, useComposerRuntime, useThread, useThreadRuntime } from "@assistant-ui/react";
4
+ import { AlertCircle, AlertTriangle, Camera, Check, CheckCircle2, ChevronDown, ChevronDownIcon, ChevronUpIcon, Copy, Expand, FileText, GripHorizontal, Loader2, Mic, MicOff, Minimize, MousePointer, Navigation, Pause, PenLine, PhoneOff, Search, Send, Shield, ShieldOff, Square, Trash2, Wrench, X } from "lucide-react";
5
5
  import { AnimatePresence, motion, useDragControls, useReducedMotion } from "motion/react";
6
6
  import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
7
7
  import { clsx } from "clsx";
@@ -103,8 +103,12 @@ const COMPOSER_MAX_CHARS = 4e3;
103
103
  /** Border radius values for pill states */
104
104
  const PILL_BORDER_RADIUS = {
105
105
  pill: "9999px",
106
- rounded: "20px"
106
+ rounded: "16px",
107
+ inner: "10px",
108
+ small: "6px"
107
109
  };
110
+ /** Maximum number of prompt bubbles to show above collapsed pill */
111
+ const MAX_PROMPT_BUBBLES = 3;
108
112
  /** Debounce/delay values in milliseconds */
109
113
  const UI_TIMING = {
110
114
  hoverDebounce: 100,
@@ -123,6 +127,23 @@ const DRAG_OPACITY = {
123
127
  dragging: .3,
124
128
  normal: 1
125
129
  };
130
+ /**
131
+ * Full-screen mode sizing configuration.
132
+ * Uses viewport units for responsive full-screen layout.
133
+ */
134
+ const FULL_SCREEN_CONFIG = {
135
+ maxWidth: "640px",
136
+ widthPercent: 95,
137
+ heightPercent: 85,
138
+ padding: 16
139
+ };
140
+ /**
141
+ * Pinch gesture configuration for two-finger expand/collapse.
142
+ */
143
+ const PINCH_GESTURE_CONFIG = {
144
+ threshold: .3,
145
+ minInitialDistance: 50
146
+ };
126
147
  /** ARIA label IDs for accessibility */
127
148
  const ARIA_IDS = {
128
149
  pillTitle: "agent-pill-title",
@@ -136,7 +157,9 @@ const ARIA_LABELS = {
136
157
  endVoiceSession: "End voice session",
137
158
  dragHandle: "Drag to reposition",
138
159
  sendMessage: "Send message",
139
- voiceInput: "Start voice input"
160
+ voiceInput: "Start voice input",
161
+ expandFullScreen: "Expand to full screen",
162
+ collapseFullScreen: "Collapse from full screen"
140
163
  };
141
164
  /** Production API base URL for WebMCP chat and token server */
142
165
  const WEBMCP_PRODUCTION_API_BASE = "https://webmcp-agent-playground.alexmnahas.workers.dev";
@@ -429,12 +452,13 @@ function _temp4$5(t0) {
429
452
  * Uses compact styling with max-height and scrolling for long responses.
430
453
  */
431
454
  const SummaryBlock = (t0) => {
432
- const $ = c(28);
433
- const { summary, isSuccess, isError, actions, className } = t0;
455
+ const $ = c(32);
456
+ const { summary, isSuccess, isError, actions, className, isFullScreen: t1 } = t0;
457
+ const isFullScreen = t1 === void 0 ? false : t1;
434
458
  const [copied, setCopied] = useState(false);
435
- let t1;
459
+ let t2;
436
460
  if ($[0] !== summary) {
437
- t1 = async () => {
461
+ t2 = async () => {
438
462
  try {
439
463
  await navigator.clipboard.writeText(summary);
440
464
  setCopied(true);
@@ -442,112 +466,124 @@ const SummaryBlock = (t0) => {
442
466
  } catch {}
443
467
  };
444
468
  $[0] = summary;
445
- $[1] = t1;
446
- } else t1 = $[1];
447
- const handleCopy = t1;
448
- const t2 = isSuccess && "bg-green-500/10 border border-green-500/20";
449
- const t3 = isError && "bg-red-500/10 border border-red-500/20";
450
- const t4 = !isSuccess && !isError && "bg-white/5 border border-white/10";
451
- let t5;
452
- if ($[2] !== className || $[3] !== t2 || $[4] !== t3 || $[5] !== t4) {
453
- t5 = cn("rounded-xl p-3 relative group", t2, t3, t4, className);
469
+ $[1] = t2;
470
+ } else t2 = $[1];
471
+ const handleCopy = t2;
472
+ let t3;
473
+ if ($[2] !== className) {
474
+ t3 = cn("rounded-lg p-2 relative group", "bg-white/5", className);
454
475
  $[2] = className;
455
- $[3] = t2;
456
- $[4] = t3;
476
+ $[3] = t3;
477
+ } else t3 = $[3];
478
+ let t4;
479
+ if ($[4] !== handleCopy) {
480
+ t4 = (e) => {
481
+ e.stopPropagation();
482
+ handleCopy();
483
+ };
484
+ $[4] = handleCopy;
457
485
  $[5] = t4;
486
+ } else t4 = $[5];
487
+ let t5;
488
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
489
+ t5 = cn("absolute top-1.5 right-1.5 z-10", "p-1.5 sm:p-1 rounded", "opacity-50 sm:opacity-0 sm:group-hover:opacity-100", "hover:bg-white/10 active:bg-white/15", "text-white/40 hover:text-white/60", "transition-all duration-150");
458
490
  $[6] = t5;
459
491
  } else t5 = $[6];
460
- let t6;
461
- if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
462
- t6 = cn("absolute top-2 right-2 z-10", "p-2 sm:p-1 rounded", "opacity-60 sm:opacity-0 sm:group-hover:opacity-100", "hover:bg-white/10 active:bg-white/20", "text-white/40 hover:text-white/70", "transition-all duration-150");
463
- $[7] = t6;
464
- } else t6 = $[7];
465
- const t7 = copied ? "Copied!" : "Copy response";
492
+ const t6 = copied ? "Copied!" : "Copy response";
493
+ let t7;
494
+ if ($[7] !== copied) {
495
+ t7 = copied ? /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5 sm:h-3 sm:w-3 text-white/70" }) : /* @__PURE__ */ jsx(Copy, { className: "h-3.5 w-3.5 sm:h-3 sm:w-3" });
496
+ $[7] = copied;
497
+ $[8] = t7;
498
+ } else t7 = $[8];
466
499
  let t8;
467
- if ($[8] !== copied) {
468
- t8 = copied ? /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 sm:h-3.5 sm:w-3.5 text-green-400" }) : /* @__PURE__ */ jsx(Copy, { className: "h-4 w-4 sm:h-3.5 sm:w-3.5" });
469
- $[8] = copied;
470
- $[9] = t8;
471
- } else t8 = $[9];
472
- let t9;
473
- if ($[10] !== handleCopy || $[11] !== t7 || $[12] !== t8) {
474
- t9 = /* @__PURE__ */ jsx("button", {
500
+ if ($[9] !== t4 || $[10] !== t6 || $[11] !== t7) {
501
+ t8 = /* @__PURE__ */ jsx("button", {
475
502
  type: "button",
476
- onClick: handleCopy,
477
- className: t6,
478
- "aria-label": t7,
479
- children: t8
503
+ onClick: t4,
504
+ className: t5,
505
+ "aria-label": t6,
506
+ children: t7
480
507
  });
481
- $[10] = handleCopy;
508
+ $[9] = t4;
509
+ $[10] = t6;
482
510
  $[11] = t7;
483
511
  $[12] = t8;
484
- $[13] = t9;
485
- } else t9 = $[13];
486
- let t10;
487
- if ($[14] !== isError || $[15] !== isSuccess) {
488
- t10 = (isSuccess || isError) && /* @__PURE__ */ jsxs("div", {
489
- className: "flex items-center gap-2 mb-2",
512
+ } else t8 = $[12];
513
+ let t9;
514
+ if ($[13] !== isError || $[14] !== isSuccess) {
515
+ t9 = (isSuccess || isError) && /* @__PURE__ */ jsxs("div", {
516
+ className: "flex items-center gap-1.5 mb-1.5",
490
517
  children: [
491
- isSuccess && /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 text-green-400" }),
492
- isError && /* @__PURE__ */ jsx(AlertCircle, { className: "h-4 w-4 text-red-400" }),
518
+ isSuccess && /* @__PURE__ */ jsx(CheckCircle2, { className: "h-3.5 w-3.5 text-white/60" }),
519
+ isError && /* @__PURE__ */ jsx(AlertCircle, { className: "h-3.5 w-3.5 text-white/60" }),
493
520
  /* @__PURE__ */ jsx("span", {
494
- className: cn("text-xs font-medium", isSuccess && "text-green-400", isError && "text-red-400"),
521
+ className: "text-[11px] font-medium text-white/70",
495
522
  children: isSuccess ? "Done" : "Error"
496
523
  })
497
524
  ]
498
525
  });
499
- $[14] = isError;
500
- $[15] = isSuccess;
501
- $[16] = t10;
502
- } else t10 = $[16];
526
+ $[13] = isError;
527
+ $[14] = isSuccess;
528
+ $[15] = t9;
529
+ } else t9 = $[15];
530
+ const t10 = !isFullScreen && "max-h-32 sm:max-h-24";
503
531
  let t11;
504
- if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
505
- t11 = { touchAction: "pan-y" };
532
+ if ($[16] !== t10) {
533
+ t11 = cn("overflow-y-auto scrollbar-thin scroll-touch", t10);
534
+ $[16] = t10;
506
535
  $[17] = t11;
507
536
  } else t11 = $[17];
508
- let t12;
509
- if ($[18] !== summary) {
510
- t12 = /* @__PURE__ */ jsx("div", {
511
- className: "max-h-48 sm:max-h-32 overflow-y-auto pr-1 scrollbar-thin scroll-touch",
512
- style: t11,
513
- onPointerDownCapture: _temp$12,
514
- children: /* @__PURE__ */ jsx(PillMarkdown, {
515
- content: summary,
516
- className: "text-white/90",
517
- compact: true
518
- })
537
+ const t12 = !isFullScreen;
538
+ let t13;
539
+ if ($[18] !== summary || $[19] !== t12) {
540
+ t13 = /* @__PURE__ */ jsx(PillMarkdown, {
541
+ content: summary,
542
+ className: "text-white/80",
543
+ compact: t12
519
544
  });
520
545
  $[18] = summary;
521
546
  $[19] = t12;
522
- } else t12 = $[19];
523
- let t13;
524
- if ($[20] !== actions) {
525
- t13 = actions && actions.length > 0 && /* @__PURE__ */ jsx("div", {
526
- className: "flex flex-wrap gap-2 mt-3 pt-2 border-t border-white/10",
527
- children: actions.map(_temp2$9)
528
- });
529
- $[20] = actions;
530
- $[21] = t13;
531
- } else t13 = $[21];
547
+ $[20] = t13;
548
+ } else t13 = $[20];
532
549
  let t14;
533
- if ($[22] !== t10 || $[23] !== t12 || $[24] !== t13 || $[25] !== t5 || $[26] !== t9) {
534
- t14 = /* @__PURE__ */ jsxs("div", {
535
- className: t5,
550
+ if ($[21] !== t11 || $[22] !== t13) {
551
+ t14 = /* @__PURE__ */ jsx("div", {
552
+ className: t11,
553
+ children: t13
554
+ });
555
+ $[21] = t11;
556
+ $[22] = t13;
557
+ $[23] = t14;
558
+ } else t14 = $[23];
559
+ let t15;
560
+ if ($[24] !== actions) {
561
+ t15 = actions && actions.length > 0 && /* @__PURE__ */ jsx("div", {
562
+ className: "flex flex-wrap gap-1.5 mt-2 pt-1.5 border-t border-white/5",
563
+ children: actions.map(_temp$12)
564
+ });
565
+ $[24] = actions;
566
+ $[25] = t15;
567
+ } else t15 = $[25];
568
+ let t16;
569
+ if ($[26] !== t14 || $[27] !== t15 || $[28] !== t3 || $[29] !== t8 || $[30] !== t9) {
570
+ t16 = /* @__PURE__ */ jsxs("div", {
571
+ className: t3,
536
572
  children: [
573
+ t8,
537
574
  t9,
538
- t10,
539
- t12,
540
- t13
575
+ t14,
576
+ t15
541
577
  ]
542
578
  });
543
- $[22] = t10;
544
- $[23] = t12;
545
- $[24] = t13;
546
- $[25] = t5;
547
- $[26] = t9;
548
- $[27] = t14;
549
- } else t14 = $[27];
550
- return t14;
579
+ $[26] = t14;
580
+ $[27] = t15;
581
+ $[28] = t3;
582
+ $[29] = t8;
583
+ $[30] = t9;
584
+ $[31] = t16;
585
+ } else t16 = $[31];
586
+ return t16;
551
587
  };
552
588
  /**
553
589
  * Hook to get the latest summary from the thread
@@ -555,7 +591,7 @@ const SummaryBlock = (t0) => {
555
591
  */
556
592
  function useLatestSummary() {
557
593
  const $ = c(2);
558
- const messages = useThread(_temp3$4);
594
+ const messages = useThread(_temp2$9);
559
595
  let t0;
560
596
  if ($[0] !== messages) {
561
597
  bb0: {
@@ -563,12 +599,12 @@ function useLatestSummary() {
563
599
  t0 = null;
564
600
  break bb0;
565
601
  }
566
- const lastAssistantMessage = [...messages].reverse().find(_temp4$4);
602
+ const lastAssistantMessage = [...messages].reverse().find(_temp3$4);
567
603
  if (!lastAssistantMessage) {
568
604
  t0 = null;
569
605
  break bb0;
570
606
  }
571
- const lastText = lastAssistantMessage.content.filter(_temp5$1).at(-1);
607
+ const lastText = lastAssistantMessage.content.filter(_temp4$4).at(-1);
572
608
  if (!lastText) {
573
609
  t0 = null;
574
610
  break bb0;
@@ -583,13 +619,13 @@ function useLatestSummary() {
583
619
  /**
584
620
  * Welcome message for empty state
585
621
  */
586
- function _temp5$1(c$1) {
622
+ function _temp4$4(c$1) {
587
623
  return c$1.type === "text";
588
624
  }
589
- function _temp4$4(m) {
625
+ function _temp3$4(m) {
590
626
  return m.role === "assistant";
591
627
  }
592
- function _temp3$4(thread) {
628
+ function _temp2$9(thread) {
593
629
  return thread.messages;
594
630
  }
595
631
  const WelcomeMessage = (t0) => {
@@ -629,13 +665,13 @@ const WelcomeMessage = (t0) => {
629
665
  } else t4 = $[5];
630
666
  return t4;
631
667
  };
632
- function _temp$12(e) {
633
- return e.stopPropagation();
634
- }
635
- function _temp2$9(action, i) {
668
+ function _temp$12(action, i) {
636
669
  return /* @__PURE__ */ jsx("button", {
637
- onClick: action.onClick,
638
- className: cn("px-2.5 py-1 rounded-lg text-xs font-medium", "transition-colors duration-200", action.variant === "primary" ? "bg-primary text-primary-foreground hover:bg-primary/90" : "bg-white/10 text-white/80 hover:bg-white/20"),
670
+ onClick: (e_0) => {
671
+ e_0.stopPropagation();
672
+ action.onClick();
673
+ },
674
+ className: cn("px-2 py-1 rounded text-[11px] font-medium", "transition-colors duration-150", action.variant === "primary" ? "bg-white/90 text-slate-900 hover:bg-white" : "bg-white/10 text-white/70 hover:bg-white/15"),
639
675
  children: action.label
640
676
  }, i);
641
677
  }
@@ -688,6 +724,16 @@ function formatArgs(args) {
688
724
  * Used when user denies a tool execution
689
725
  */
690
726
  const TOOL_DENIED_MESSAGE = "Tool execution denied by user";
727
+ /**
728
+ * Format a denial message with a user-provided reason.
729
+ * Used when user wants to tell the agent what to do differently.
730
+ *
731
+ * @param reason - The user's feedback explaining what to do differently
732
+ * @returns Formatted denial message with reason
733
+ */
734
+ function formatToolDenialWithReason(reason) {
735
+ return `Tool denied: ${reason}`;
736
+ }
691
737
 
692
738
  //#endregion
693
739
  //#region src/hooks/useActions.ts
@@ -3057,10 +3103,12 @@ const VoiceThreadIntegrator = ({ children, sessionId, setSessionId, onConnect, o
3057
3103
  if (!wasActiveRef.current && isActive && !sessionId) setSessionId(generateSessionId());
3058
3104
  if (!wasActiveRef.current && voiceMode.isActive) onConnectRef.current?.();
3059
3105
  if (wasActiveRef.current && !isActive) {
3060
- if (lastAssistantTranscriptRef.current) addAssistantMessage(lastAssistantTranscriptRef.current);
3061
- resolveAllPendingToolCalls(threadRuntime, VOICE_TOOL_RESULT_MESSAGES.sessionEnded);
3106
+ if (lastAssistantTranscriptRef.current) {
3107
+ addAssistantMessage(lastAssistantTranscriptRef.current);
3108
+ lastAssistantTranscriptRef.current = "";
3109
+ }
3062
3110
  lastUserTranscriptRef.current = "";
3063
- lastAssistantTranscriptRef.current = "";
3111
+ resolveAllPendingToolCalls(threadRuntime, VOICE_TOOL_RESULT_MESSAGES.sessionEnded);
3064
3112
  setSessionId(null);
3065
3113
  onDisconnectRef.current?.(0);
3066
3114
  }
@@ -3526,6 +3574,7 @@ const AgentUIProvider = ({ children, defaultOpen = false, defaultMode = "collaps
3526
3574
  const [position, setPositionState] = useState(DEFAULT_POSITION);
3527
3575
  const [hasUnread, setHasUnread] = useState(false);
3528
3576
  const [isVoiceActive, setIsVoiceActiveState] = useState(false);
3577
+ const [isFullScreen, setIsFullScreen] = useState(false);
3529
3578
  const onOpenChangeRef = useRef(onOpenChange);
3530
3579
  const onModeChangeRef = useRef(onModeChange);
3531
3580
  onOpenChangeRef.current = onOpenChange;
@@ -3563,18 +3612,29 @@ const AgentUIProvider = ({ children, defaultOpen = false, defaultMode = "collaps
3563
3612
  const collapse = useCallback(() => {
3564
3613
  setUserModeState("collapsed");
3565
3614
  setPositionState(DEFAULT_POSITION);
3615
+ setIsFullScreen(false);
3566
3616
  onModeChangeRef.current?.("collapsed");
3567
3617
  }, []);
3568
3618
  const expand = useCallback(() => {
3569
3619
  setUserModeState("composing");
3570
3620
  onModeChangeRef.current?.("composing");
3571
3621
  }, []);
3622
+ const enterFullScreen = useCallback(() => {
3623
+ setIsFullScreen(true);
3624
+ }, []);
3625
+ const exitFullScreen = useCallback(() => {
3626
+ setIsFullScreen(false);
3627
+ }, []);
3628
+ const toggleFullScreen = useCallback(() => {
3629
+ setIsFullScreen((prev_0) => !prev_0);
3630
+ }, []);
3572
3631
  const value = useMemo(() => ({
3573
3632
  isOpen,
3574
3633
  userMode,
3575
3634
  position,
3576
3635
  hasUnread,
3577
3636
  isVoiceActive,
3637
+ isFullScreen,
3578
3638
  setOpen,
3579
3639
  toggleOpen,
3580
3640
  setUserMode,
@@ -3584,13 +3644,17 @@ const AgentUIProvider = ({ children, defaultOpen = false, defaultMode = "collaps
3584
3644
  markUnread,
3585
3645
  setVoiceActive,
3586
3646
  collapse,
3587
- expand
3647
+ expand,
3648
+ enterFullScreen,
3649
+ exitFullScreen,
3650
+ toggleFullScreen
3588
3651
  }), [
3589
3652
  isOpen,
3590
3653
  userMode,
3591
3654
  position,
3592
3655
  hasUnread,
3593
3656
  isVoiceActive,
3657
+ isFullScreen,
3594
3658
  setOpen,
3595
3659
  toggleOpen,
3596
3660
  setUserMode,
@@ -3600,7 +3664,10 @@ const AgentUIProvider = ({ children, defaultOpen = false, defaultMode = "collaps
3600
3664
  markUnread,
3601
3665
  setVoiceActive,
3602
3666
  collapse,
3603
- expand
3667
+ expand,
3668
+ enterFullScreen,
3669
+ exitFullScreen,
3670
+ toggleFullScreen
3604
3671
  ]);
3605
3672
  return /* @__PURE__ */ jsx(AgentUIContext.Provider, {
3606
3673
  value,
@@ -3844,6 +3911,115 @@ function _temp2$6(t) {
3844
3911
  return t.messages;
3845
3912
  }
3846
3913
 
3914
+ //#endregion
3915
+ //#region src/hooks/usePinchGesture.ts
3916
+ /**
3917
+ * Calculate distance between two touch points
3918
+ */
3919
+ function getTouchDistance(touch1, touch2) {
3920
+ const dx = touch2.clientX - touch1.clientX;
3921
+ const dy = touch2.clientY - touch1.clientY;
3922
+ return Math.sqrt(dx * dx + dy * dy);
3923
+ }
3924
+ /**
3925
+ * Hook for detecting two-finger pinch gestures.
3926
+ *
3927
+ * Implements pinch-to-expand (out) and pinch-to-collapse (in) detection
3928
+ * using native Touch Events for maximum compatibility.
3929
+ *
3930
+ * @example
3931
+ * ```tsx
3932
+ * const { handlers } = usePinchGesture({
3933
+ * onPinchOut: () => enterFullScreen(),
3934
+ * onPinchIn: () => exitFullScreen(),
3935
+ * enabled: isMobile && isExpanded,
3936
+ * })
3937
+ *
3938
+ * return <div {...handlers}>Content</div>
3939
+ * ```
3940
+ */
3941
+ function usePinchGesture(t0) {
3942
+ const $ = c(14);
3943
+ const { onPinchOut, onPinchIn, enabled: t1, threshold: t2 } = t0;
3944
+ const enabled = t1 === void 0 ? true : t1;
3945
+ const threshold = t2 === void 0 ? PINCH_GESTURE_CONFIG.threshold : t2;
3946
+ let t3;
3947
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
3948
+ t3 = {
3949
+ initialDistance: null,
3950
+ lastDistance: null,
3951
+ isActive: false
3952
+ };
3953
+ $[0] = t3;
3954
+ } else t3 = $[0];
3955
+ const stateRef = useRef(t3);
3956
+ let t4;
3957
+ if ($[1] !== enabled) {
3958
+ t4 = (e) => {
3959
+ if (!enabled) return;
3960
+ if (e.touches.length === 2) {
3961
+ const distance = getTouchDistance(e.touches[0], e.touches[1]);
3962
+ if (distance >= PINCH_GESTURE_CONFIG.minInitialDistance) stateRef.current = {
3963
+ initialDistance: distance,
3964
+ lastDistance: distance,
3965
+ isActive: true
3966
+ };
3967
+ }
3968
+ };
3969
+ $[1] = enabled;
3970
+ $[2] = t4;
3971
+ } else t4 = $[2];
3972
+ const handleTouchStart = t4;
3973
+ let t5;
3974
+ if ($[3] !== enabled) {
3975
+ t5 = (e_0) => {
3976
+ if (!enabled || !stateRef.current.isActive) return;
3977
+ if (e_0.touches.length !== 2) return;
3978
+ const currentDistance = getTouchDistance(e_0.touches[0], e_0.touches[1]);
3979
+ stateRef.current.lastDistance = currentDistance;
3980
+ };
3981
+ $[3] = enabled;
3982
+ $[4] = t5;
3983
+ } else t5 = $[4];
3984
+ const handleTouchMove = t5;
3985
+ let t6;
3986
+ if ($[5] !== enabled || $[6] !== onPinchIn || $[7] !== onPinchOut || $[8] !== threshold) {
3987
+ t6 = (e_1) => {
3988
+ if (!enabled || !stateRef.current.isActive) return;
3989
+ const { initialDistance, lastDistance } = stateRef.current;
3990
+ if (e_1.touches.length < 2 && initialDistance !== null && lastDistance !== null) {
3991
+ const scaleDelta = (lastDistance - initialDistance) / initialDistance;
3992
+ if (scaleDelta > threshold) onPinchOut?.();
3993
+ else if (scaleDelta < -threshold) onPinchIn?.();
3994
+ stateRef.current = {
3995
+ initialDistance: null,
3996
+ lastDistance: null,
3997
+ isActive: false
3998
+ };
3999
+ }
4000
+ };
4001
+ $[5] = enabled;
4002
+ $[6] = onPinchIn;
4003
+ $[7] = onPinchOut;
4004
+ $[8] = threshold;
4005
+ $[9] = t6;
4006
+ } else t6 = $[9];
4007
+ const handleTouchEnd = t6;
4008
+ let t7;
4009
+ if ($[10] !== handleTouchEnd || $[11] !== handleTouchMove || $[12] !== handleTouchStart) {
4010
+ t7 = { handlers: {
4011
+ onTouchStart: handleTouchStart,
4012
+ onTouchMove: handleTouchMove,
4013
+ onTouchEnd: handleTouchEnd
4014
+ } };
4015
+ $[10] = handleTouchEnd;
4016
+ $[11] = handleTouchMove;
4017
+ $[12] = handleTouchStart;
4018
+ $[13] = t7;
4019
+ } else t7 = $[13];
4020
+ return t7;
4021
+ }
4022
+
3847
4023
  //#endregion
3848
4024
  //#region src/components/pill/ActivityIndicator.tsx
3849
4025
  /**
@@ -4293,27 +4469,40 @@ const MCPToolRegistry = () => {
4293
4469
  };
4294
4470
 
4295
4471
  //#endregion
4296
- //#region src/components/pill/PillApprovalBar.tsx
4472
+ //#region src/components/pill/ElicitationButtonBar.tsx
4297
4473
  /**
4298
- * PillApprovalBar Component
4474
+ * ElicitationButtonBar Component
4299
4475
  *
4300
- * Replaces the composer input when a tool requires approval.
4301
- * Shows the pending tool name with Approve/Deny buttons.
4476
+ * Renders an approval card above the composer when a tool requires approval.
4477
+ * Shows the tool name, description, and input arguments so users know
4478
+ * exactly what they're approving.
4302
4479
  *
4303
- * Uses usePendingToolCalls hook to derive state from assistant-ui's thread.
4304
- * Calls addToolResult directly via useThreadRuntime.
4480
+ * - Accept: Executes the tool and returns the result
4481
+ * - Deny: Stops the thread entirely (user doesn't want to continue)
4305
4482
  */
4306
- const ApprovalBarItem = ({ tool }) => {
4483
+ /**
4484
+ * Approval card for tool execution that sits above the composer.
4485
+ * Shows tool name, description, and arguments when a tool requires approval.
4486
+ *
4487
+ * Returns null if there are no pending approvals.
4488
+ */
4489
+ const ElicitationButtonBar = ({ className }) => {
4307
4490
  const [isExecuting, setIsExecuting] = useState(false);
4308
- const runtime = useThreadRuntime$1();
4309
- const { callTool } = useMCPTools();
4491
+ const pendingToolCalls = usePendingToolCalls();
4492
+ const threadRuntime = useThreadRuntime();
4493
+ const { callTool, tools } = useMCPTools();
4494
+ if (pendingToolCalls.length === 0) return null;
4495
+ const firstTool = pendingToolCalls[0];
4496
+ const humanizedName = humanizeToolName(firstTool.toolName);
4497
+ const toolDescription = tools.find((t) => t.name === firstTool.toolName)?.description;
4498
+ const formattedArgs = Object.keys(firstTool.args).length > 0 ? formatArgs(firstTool.args) : null;
4310
4499
  const getPartRuntime = () => {
4311
- return (runtime?.getMessageById(tool.messageId))?.getMessagePartByToolCallId(tool.toolCallId);
4500
+ return (threadRuntime?.getMessageById(firstTool.messageId))?.getMessagePartByToolCallId(firstTool.toolCallId);
4312
4501
  };
4313
- const handleApprove = async () => {
4502
+ const handleAccept = async () => {
4314
4503
  setIsExecuting(true);
4315
4504
  try {
4316
- const toolResult = await callTool(tool.toolName, tool.args);
4505
+ const toolResult = await callTool(firstTool.toolName, firstTool.args);
4317
4506
  getPartRuntime()?.addToolResult(formatToolResult(toolResult));
4318
4507
  } catch (error) {
4319
4508
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -4323,84 +4512,67 @@ const ApprovalBarItem = ({ tool }) => {
4323
4512
  }
4324
4513
  };
4325
4514
  const handleDeny = () => {
4326
- getPartRuntime()?.addToolResult(TOOL_DENIED_MESSAGE);
4515
+ resolveAllPendingToolCalls(threadRuntime, TOOL_DENIED_MESSAGE);
4516
+ threadRuntime.cancelRun();
4327
4517
  };
4328
- if (isExecuting) return /* @__PURE__ */ jsxs("div", {
4329
- className: "flex items-center justify-center gap-2 rounded-xl bg-blue-500/10 px-4 py-3 text-sm text-blue-400",
4330
- children: [/* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), /* @__PURE__ */ jsxs("span", { children: [
4331
- "Executing ",
4332
- /* @__PURE__ */ jsx("strong", { children: humanizeToolName(tool.toolName) }),
4333
- "..."
4334
- ] })]
4335
- });
4336
- return /* @__PURE__ */ jsxs("div", {
4337
- className: cn("flex items-center gap-3 rounded-xl px-4 py-3", "border border-amber-500/30 bg-amber-500/10"),
4338
- children: [/* @__PURE__ */ jsxs("div", {
4339
- className: "flex min-w-0 flex-1 items-center gap-2",
4340
- children: [/* @__PURE__ */ jsx(AlertTriangle, { className: "h-4 w-4 flex-shrink-0 text-amber-500" }), /* @__PURE__ */ jsxs("span", {
4341
- className: "truncate text-sm text-white/90",
4518
+ if (isExecuting) return /* @__PURE__ */ jsx("div", {
4519
+ className: cn("rounded-xl border border-blue-500/30 bg-blue-500/10 px-3 py-2.5", className),
4520
+ children: /* @__PURE__ */ jsxs("div", {
4521
+ className: "flex items-center justify-center gap-2",
4522
+ children: [/* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-blue-400" }), /* @__PURE__ */ jsxs("span", {
4523
+ className: "text-sm text-white/80",
4342
4524
  children: [
4525
+ "Executing ",
4343
4526
  /* @__PURE__ */ jsx("span", {
4344
- className: "font-medium text-amber-400",
4345
- children: "Approve"
4527
+ className: "font-medium text-blue-400",
4528
+ children: humanizedName
4346
4529
  }),
4347
- " ",
4348
- humanizeToolName(tool.toolName),
4349
- "?"
4530
+ "..."
4350
4531
  ]
4351
4532
  })]
4352
- }), /* @__PURE__ */ jsxs("div", {
4353
- className: "flex flex-shrink-0 items-center gap-2",
4354
- children: [/* @__PURE__ */ jsxs("button", {
4355
- type: "button",
4356
- onClick: handleDeny,
4357
- className: cn("flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-sm font-medium", "border border-zinc-600 text-white/70", "transition-colors duration-150", "hover:border-red-500/50 hover:bg-red-500/20 hover:text-red-400"),
4358
- children: [/* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5" }), "Deny"]
4359
- }), /* @__PURE__ */ jsxs("button", {
4360
- type: "button",
4361
- onClick: handleApprove,
4362
- className: cn("flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-sm font-medium", "border border-amber-500/50 bg-amber-500/20 text-amber-400", "transition-colors duration-150", "hover:border-amber-500 hover:bg-amber-500/30"),
4363
- children: [/* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5" }), "Approve"]
4364
- })]
4365
- })]
4533
+ })
4534
+ });
4535
+ return /* @__PURE__ */ jsxs("div", {
4536
+ className: cn("rounded-xl border border-amber-500/30 bg-amber-500/10 px-3 py-2.5", className),
4537
+ children: [
4538
+ /* @__PURE__ */ jsxs("div", {
4539
+ className: "flex items-center gap-2",
4540
+ children: [/* @__PURE__ */ jsx(AlertTriangle, { className: "h-4 w-4 shrink-0 text-amber-500" }), /* @__PURE__ */ jsxs("span", {
4541
+ className: "text-sm text-white/90",
4542
+ children: [
4543
+ "Approve ",
4544
+ /* @__PURE__ */ jsx("span", {
4545
+ className: "font-medium text-amber-400",
4546
+ children: humanizedName
4547
+ }),
4548
+ "?"
4549
+ ]
4550
+ })]
4551
+ }),
4552
+ toolDescription && /* @__PURE__ */ jsx("p", {
4553
+ className: "mt-1.5 pl-6 text-xs leading-relaxed text-white/50",
4554
+ children: toolDescription
4555
+ }),
4556
+ formattedArgs && /* @__PURE__ */ jsx("pre", {
4557
+ className: "mt-2 max-h-24 overflow-auto whitespace-pre-wrap rounded-lg bg-white/5 p-2 font-mono text-[11px] leading-relaxed text-white/60",
4558
+ children: formattedArgs
4559
+ }),
4560
+ /* @__PURE__ */ jsxs("div", {
4561
+ className: "mt-2.5 flex items-center gap-2",
4562
+ children: [/* @__PURE__ */ jsxs("button", {
4563
+ type: "button",
4564
+ onClick: handleDeny,
4565
+ className: cn("flex flex-1 items-center justify-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium", "border border-white/20 text-white/70", "transition-colors duration-150", "hover:border-red-500/50 hover:bg-red-500/10 hover:text-red-400", "active:scale-[0.98]"),
4566
+ children: [/* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5" }), "Deny"]
4567
+ }), /* @__PURE__ */ jsxs("button", {
4568
+ type: "button",
4569
+ onClick: handleAccept,
4570
+ className: cn("flex flex-1 items-center justify-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium", "border border-amber-500/50 bg-amber-500/20 text-amber-400", "transition-colors duration-150", "hover:border-amber-500 hover:bg-amber-500/30", "active:scale-[0.98]"),
4571
+ children: [/* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5" }), "Approve"]
4572
+ })]
4573
+ })
4574
+ ]
4366
4575
  });
4367
- };
4368
- /**
4369
- * Approval bar that replaces the composer when a tool needs approval.
4370
- * Shows the tool name with Approve/Deny buttons in a compact format.
4371
- *
4372
- * Uses usePendingToolCalls hook to derive state from thread.
4373
- * Returns null if there are no pending approvals.
4374
- */
4375
- const PillApprovalBar = (t0) => {
4376
- const $ = c(7);
4377
- const { className } = t0;
4378
- const pendingToolCalls = usePendingToolCalls();
4379
- if (pendingToolCalls.length === 0) return null;
4380
- const firstTool = pendingToolCalls[0];
4381
- let t1;
4382
- if ($[0] !== className) {
4383
- t1 = cn("", className);
4384
- $[0] = className;
4385
- $[1] = t1;
4386
- } else t1 = $[1];
4387
- let t2;
4388
- if ($[2] !== firstTool) {
4389
- t2 = /* @__PURE__ */ jsx(ApprovalBarItem, { tool: firstTool });
4390
- $[2] = firstTool;
4391
- $[3] = t2;
4392
- } else t2 = $[3];
4393
- let t3;
4394
- if ($[4] !== t1 || $[5] !== t2) {
4395
- t3 = /* @__PURE__ */ jsx("div", {
4396
- className: t1,
4397
- children: t2
4398
- });
4399
- $[4] = t1;
4400
- $[5] = t2;
4401
- $[6] = t3;
4402
- } else t3 = $[6];
4403
- return t3;
4404
4576
  };
4405
4577
 
4406
4578
  //#endregion
@@ -4439,145 +4611,184 @@ const CharacterCount = () => {
4439
4611
  * Features auto-growing textarea and character count.
4440
4612
  */
4441
4613
  const PillComposer = (t0) => {
4442
- const $ = c(25);
4443
- const { placeholder: t1, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, showCharCount: t4, className } = t0;
4614
+ const $ = c(35);
4615
+ const { placeholder: t1, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, showCharCount: t4, className, isEliciting: t5, onElicitationSubmit } = t0;
4444
4616
  const placeholder = t1 === void 0 ? "Ask something..." : t1;
4445
4617
  const showVoiceButton = t2 === void 0 ? false : t2;
4446
4618
  const isVoiceActive = t3 === void 0 ? false : t3;
4447
4619
  const showCharCount = t4 === void 0 ? true : t4;
4620
+ const isEliciting = t5 === void 0 ? false : t5;
4448
4621
  const { isMobile } = useMobileDetect();
4449
4622
  const inputRef = useRef(null);
4450
- let t5;
4623
+ const composerRuntime = useComposerRuntime();
4624
+ const effectivePlaceholder = isEliciting ? "Tell Char what to do differently" : placeholder;
4625
+ let t6;
4451
4626
  if ($[0] !== isMobile) {
4452
- t5 = () => {
4627
+ t6 = () => {
4453
4628
  if (isMobile && inputRef.current) inputRef.current.blur();
4454
4629
  };
4455
4630
  $[0] = isMobile;
4456
- $[1] = t5;
4457
- } else t5 = $[1];
4458
- const handleSubmit = t5;
4459
- let t6;
4460
- if ($[2] !== className) {
4461
- t6 = cn("flex items-end gap-2", "rounded-2xl", "bg-white/10 border border-white/10", "px-3 py-2", "focus-within:border-white/20 focus-within:bg-white/15", "transition-colors duration-200", className);
4462
- $[2] = className;
4463
- $[3] = t6;
4464
- } else t6 = $[3];
4631
+ $[1] = t6;
4632
+ } else t6 = $[1];
4633
+ const handleSubmit = t6;
4465
4634
  let t7;
4635
+ if ($[2] !== composerRuntime || $[3] !== isMobile || $[4] !== onElicitationSubmit) {
4636
+ t7 = () => {
4637
+ const text = composerRuntime.getState().text.trim();
4638
+ if (text && onElicitationSubmit) {
4639
+ onElicitationSubmit(text);
4640
+ composerRuntime.setText("");
4641
+ if (isMobile && inputRef.current) inputRef.current.blur();
4642
+ }
4643
+ };
4644
+ $[2] = composerRuntime;
4645
+ $[3] = isMobile;
4646
+ $[4] = onElicitationSubmit;
4647
+ $[5] = t7;
4648
+ } else t7 = $[5];
4649
+ const handleElicitationSubmit = t7;
4466
4650
  let t8;
4467
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
4468
- t7 = cn("flex-1 min-w-0", "bg-transparent", "text-sm text-white placeholder:text-white/40", "outline-none", "resize-none", "max-h-40 sm:max-h-32 overflow-y-auto scroll-touch");
4469
- t8 = { touchAction: "pan-y" };
4470
- $[4] = t7;
4471
- $[5] = t8;
4651
+ if ($[6] !== handleElicitationSubmit || $[7] !== isEliciting) {
4652
+ t8 = (e) => {
4653
+ if (isEliciting && e.key === "Enter" && !e.shiftKey) {
4654
+ e.preventDefault();
4655
+ handleElicitationSubmit();
4656
+ }
4657
+ };
4658
+ $[6] = handleElicitationSubmit;
4659
+ $[7] = isEliciting;
4660
+ $[8] = t8;
4661
+ } else t8 = $[8];
4662
+ const handleKeyDown = t8;
4663
+ let t9;
4664
+ if ($[9] !== className) {
4665
+ t9 = cn("flex items-end gap-1.5", "rounded-xl", "bg-white/8 border border-white/8", "px-2 py-1", "focus-within:border-white/15 focus-within:bg-white/10", "transition-colors duration-150", className);
4666
+ $[9] = className;
4667
+ $[10] = t9;
4668
+ } else t9 = $[10];
4669
+ let t10;
4670
+ let t11;
4671
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
4672
+ t10 = cn("flex-1 min-w-0", "bg-transparent", "text-sm leading-[21px] text-white placeholder:text-white/40", "outline-none", "resize-none", "overflow-y-auto scroll-touch");
4673
+ t11 = { touchAction: "pan-y" };
4674
+ $[11] = t10;
4675
+ $[12] = t11;
4472
4676
  } else {
4473
- t7 = $[4];
4474
- t8 = $[5];
4677
+ t10 = $[11];
4678
+ t11 = $[12];
4475
4679
  }
4476
- const t9 = !isMobile;
4477
- let t10;
4478
- if ($[6] !== placeholder || $[7] !== t9) {
4479
- t10 = /* @__PURE__ */ jsx(ComposerPrimitive.Input, {
4680
+ const t12 = !isMobile;
4681
+ let t13;
4682
+ if ($[13] !== effectivePlaceholder || $[14] !== handleKeyDown || $[15] !== t12) {
4683
+ t13 = /* @__PURE__ */ jsx(ComposerPrimitive.Input, {
4480
4684
  ref: inputRef,
4481
- placeholder,
4482
- className: t7,
4483
- style: t8,
4484
- autoFocus: t9,
4485
- rows: 1,
4486
- onPointerDownCapture: _temp2$4
4487
- });
4488
- $[6] = placeholder;
4489
- $[7] = t9;
4490
- $[8] = t10;
4491
- } else t10 = $[8];
4492
- let t11;
4493
- if ($[9] !== showCharCount) {
4494
- t11 = showCharCount && /* @__PURE__ */ jsx(CharacterCount, {});
4495
- $[9] = showCharCount;
4496
- $[10] = t11;
4497
- } else t11 = $[10];
4498
- let t12;
4499
- if ($[11] !== isVoiceActive || $[12] !== onVoiceToggle || $[13] !== showVoiceButton) {
4500
- t12 = showVoiceButton && onVoiceToggle && /* @__PURE__ */ jsx("button", {
4685
+ placeholder: effectivePlaceholder,
4686
+ minRows: 1,
4687
+ maxRows: 6,
4688
+ className: t10,
4689
+ style: t11,
4690
+ autoFocus: t12,
4691
+ onPointerDownCapture: _temp2$4,
4692
+ onKeyDown: handleKeyDown
4693
+ });
4694
+ $[13] = effectivePlaceholder;
4695
+ $[14] = handleKeyDown;
4696
+ $[15] = t12;
4697
+ $[16] = t13;
4698
+ } else t13 = $[16];
4699
+ let t14;
4700
+ if ($[17] !== showCharCount) {
4701
+ t14 = showCharCount && /* @__PURE__ */ jsx(CharacterCount, {});
4702
+ $[17] = showCharCount;
4703
+ $[18] = t14;
4704
+ } else t14 = $[18];
4705
+ let t15;
4706
+ if ($[19] !== isVoiceActive || $[20] !== onVoiceToggle || $[21] !== showVoiceButton) {
4707
+ t15 = showVoiceButton && onVoiceToggle && /* @__PURE__ */ jsx("button", {
4501
4708
  type: "button",
4502
4709
  onClick: onVoiceToggle,
4503
- className: cn("flex-shrink-0", "p-2.5 sm:p-1.5 rounded-full", "transition-colors duration-200", isVoiceActive ? "bg-red-500 text-white" : "hover:bg-white/10 text-white/60 hover:text-white"),
4710
+ className: cn("flex-shrink-0", "p-2 sm:p-1.5 rounded-full", "transition-colors duration-150", isVoiceActive ? "bg-white/20 text-white" : "hover:bg-white/10 text-white/50 hover:text-white/80"),
4504
4711
  "aria-label": isVoiceActive ? "Stop voice input" : "Start voice input",
4505
- children: /* @__PURE__ */ jsx(Mic, { className: "h-5 w-5 sm:h-4 sm:w-4" })
4712
+ children: /* @__PURE__ */ jsx(Mic, { className: "h-4.5 w-4.5 sm:h-4 sm:w-4" })
4506
4713
  });
4507
- $[11] = isVoiceActive;
4508
- $[12] = onVoiceToggle;
4509
- $[13] = showVoiceButton;
4510
- $[14] = t12;
4511
- } else t12 = $[14];
4512
- let t13;
4513
- if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
4514
- t13 = cn("flex-shrink-0", "p-2.5 sm:p-1.5 rounded-full", "bg-primary text-primary-foreground", "hover:bg-primary/90", "disabled:opacity-50 disabled:cursor-not-allowed", "transition-colors duration-200");
4515
- $[15] = t13;
4516
- } else t13 = $[15];
4517
- let t14;
4518
- if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
4519
- t14 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
4714
+ $[19] = isVoiceActive;
4715
+ $[20] = onVoiceToggle;
4716
+ $[21] = showVoiceButton;
4717
+ $[22] = t15;
4718
+ } else t15 = $[22];
4719
+ let t16;
4720
+ if ($[23] !== handleElicitationSubmit || $[24] !== isEliciting) {
4721
+ t16 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
4520
4722
  running: false,
4521
- children: /* @__PURE__ */ jsx(ComposerPrimitive.Send, {
4723
+ children: isEliciting ? /* @__PURE__ */ jsx("button", {
4724
+ type: "button",
4725
+ onClick: handleElicitationSubmit,
4726
+ className: cn("flex-shrink-0", "p-2 sm:p-1.5 rounded-full", "bg-white/90 text-slate-900", "hover:bg-white", "disabled:opacity-40 disabled:cursor-not-allowed", "transition-colors duration-150"),
4727
+ "aria-label": "Send feedback",
4728
+ children: /* @__PURE__ */ jsx(Send, { className: "h-4.5 w-4.5 sm:h-4 sm:w-4" })
4729
+ }) : /* @__PURE__ */ jsx(ComposerPrimitive.Send, {
4522
4730
  asChild: true,
4523
4731
  children: /* @__PURE__ */ jsx("button", {
4524
4732
  type: "submit",
4525
- className: t13,
4733
+ className: cn("flex-shrink-0", "p-2 sm:p-1.5 rounded-full", "bg-white/90 text-slate-900", "hover:bg-white", "disabled:opacity-40 disabled:cursor-not-allowed", "transition-colors duration-150"),
4526
4734
  "aria-label": "Send message",
4527
- children: /* @__PURE__ */ jsx(Send, { className: "h-5 w-5 sm:h-4 sm:w-4" })
4735
+ children: /* @__PURE__ */ jsx(Send, { className: "h-4.5 w-4.5 sm:h-4 sm:w-4" })
4528
4736
  })
4529
4737
  })
4530
4738
  });
4531
- $[16] = t14;
4532
- } else t14 = $[16];
4533
- let t15;
4534
- if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
4535
- t15 = cn("flex-shrink-0", "p-2.5 sm:p-1.5 rounded-full", "bg-red-500 text-white", "hover:bg-red-600", "transition-colors duration-200");
4536
- $[17] = t15;
4537
- } else t15 = $[17];
4538
- let t16;
4539
- if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
4540
- t16 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
4739
+ $[23] = handleElicitationSubmit;
4740
+ $[24] = isEliciting;
4741
+ $[25] = t16;
4742
+ } else t16 = $[25];
4743
+ let t17;
4744
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
4745
+ t17 = cn("flex-shrink-0", "p-2 sm:p-1.5 rounded-full", "bg-white/20 text-white", "hover:bg-white/30", "transition-colors duration-150");
4746
+ $[26] = t17;
4747
+ } else t17 = $[26];
4748
+ let t18;
4749
+ if ($[27] === Symbol.for("react.memo_cache_sentinel")) {
4750
+ t18 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
4541
4751
  running: true,
4542
4752
  children: /* @__PURE__ */ jsx(ComposerPrimitive.Cancel, {
4543
4753
  asChild: true,
4544
4754
  children: /* @__PURE__ */ jsx("button", {
4545
4755
  type: "button",
4546
- className: t15,
4756
+ className: t17,
4547
4757
  "aria-label": "Stop generating",
4548
- children: /* @__PURE__ */ jsx(Square, { className: "h-4.5 w-4.5 sm:h-3.5 sm:w-3.5" })
4758
+ children: /* @__PURE__ */ jsx(Square, { className: "h-4 w-4 sm:h-3.5 sm:w-3.5" })
4549
4759
  })
4550
4760
  })
4551
4761
  });
4552
- $[18] = t16;
4553
- } else t16 = $[18];
4554
- let t17;
4555
- if ($[19] !== handleSubmit || $[20] !== t10 || $[21] !== t11 || $[22] !== t12 || $[23] !== t6) {
4556
- t17 = /* @__PURE__ */ jsxs(ComposerPrimitive.Root, {
4557
- className: t6,
4762
+ $[27] = t18;
4763
+ } else t18 = $[27];
4764
+ let t19;
4765
+ if ($[28] !== handleSubmit || $[29] !== t13 || $[30] !== t14 || $[31] !== t15 || $[32] !== t16 || $[33] !== t9) {
4766
+ t19 = /* @__PURE__ */ jsxs(ComposerPrimitive.Root, {
4767
+ className: t9,
4558
4768
  onSubmit: handleSubmit,
4559
4769
  children: [
4560
- t10,
4561
- t11,
4562
- t12,
4770
+ t13,
4563
4771
  t14,
4564
- t16
4772
+ t15,
4773
+ t16,
4774
+ t18
4565
4775
  ]
4566
4776
  });
4567
- $[19] = handleSubmit;
4568
- $[20] = t10;
4569
- $[21] = t11;
4570
- $[22] = t12;
4571
- $[23] = t6;
4572
- $[24] = t17;
4573
- } else t17 = $[24];
4574
- return t17;
4777
+ $[28] = handleSubmit;
4778
+ $[29] = t13;
4779
+ $[30] = t14;
4780
+ $[31] = t15;
4781
+ $[32] = t16;
4782
+ $[33] = t9;
4783
+ $[34] = t19;
4784
+ } else t19 = $[34];
4785
+ return t19;
4575
4786
  };
4576
4787
  function _temp$6(c$1) {
4577
4788
  return c$1.text;
4578
4789
  }
4579
- function _temp2$4(e) {
4580
- return e.stopPropagation();
4790
+ function _temp2$4(e_0) {
4791
+ return e_0.stopPropagation();
4581
4792
  }
4582
4793
 
4583
4794
  //#endregion
@@ -4822,9 +5033,19 @@ const sizeSpring = {
4822
5033
  damping: 35,
4823
5034
  mass: .8
4824
5035
  };
5036
+ const fullScreenTween = {
5037
+ type: "tween",
5038
+ duration: .35,
5039
+ ease: [
5040
+ .4,
5041
+ 0,
5042
+ .2,
5043
+ 1
5044
+ ]
5045
+ };
4825
5046
  const reducedMotionTransition = { duration: 0 };
4826
5047
  const sizes = PILL_CONTAINER_SIZES;
4827
- const containerVariants = {
5048
+ const containerVariants$1 = {
4828
5049
  collapsed: {
4829
5050
  width: clampSize(sizes.collapsed.width),
4830
5051
  height: clampSize(sizes.collapsed.height),
@@ -4834,28 +5055,34 @@ const containerVariants = {
4834
5055
  hovered: {
4835
5056
  width: clampSize(sizes.hovered.width),
4836
5057
  height: clampSize(sizes.hovered.height),
4837
- padding: "0px 12px",
5058
+ padding: "0px 10px",
4838
5059
  borderRadius: PILL_BORDER_RADIUS.pill
4839
5060
  },
4840
5061
  composing: {
4841
5062
  width: clampSize(sizes.composing.width),
4842
5063
  height: "auto",
4843
- padding: "clamp(10px, 3vw, 12px) clamp(12px, 3vw, 16px)",
5064
+ padding: "8px 10px",
4844
5065
  borderRadius: PILL_BORDER_RADIUS.rounded
4845
5066
  },
4846
5067
  active: {
4847
5068
  width: clampSize(sizes.active.width),
4848
5069
  height: "auto",
4849
- padding: "clamp(10px, 3vw, 12px) clamp(12px, 3vw, 16px)",
5070
+ padding: "8px 10px",
4850
5071
  borderRadius: PILL_BORDER_RADIUS.rounded
4851
5072
  },
4852
5073
  expanded: {
4853
5074
  width: clampSize(sizes.expanded.width),
4854
5075
  height: "auto",
4855
- padding: "clamp(12px, 3vw, 16px) clamp(12px, 3vw, 18px)",
5076
+ padding: "10px 10px",
4856
5077
  borderRadius: PILL_BORDER_RADIUS.rounded
4857
5078
  }
4858
5079
  };
5080
+ const fullScreenVariant = {
5081
+ width: `min(${FULL_SCREEN_CONFIG.widthPercent}vw, ${FULL_SCREEN_CONFIG.maxWidth})`,
5082
+ height: `${FULL_SCREEN_CONFIG.heightPercent}vh`,
5083
+ padding: `${FULL_SCREEN_CONFIG.padding}px`,
5084
+ borderRadius: PILL_BORDER_RADIUS.rounded
5085
+ };
4859
5086
  const contentVariants = {
4860
5087
  hidden: { opacity: 0 },
4861
5088
  visible: {
@@ -4906,349 +5133,180 @@ const barVariants = {
4906
5133
  * - active: Agent is working
4907
5134
  * - expanded: Full panel with summary/forms
4908
5135
  */
4909
- const PillContainer = (t0) => {
4910
- const $ = c(83);
4911
- const { mode, children, onModeChange, className } = t0;
5136
+ const PillContainer = ({ mode, children, onModeChange, isFullScreen = false, className }) => {
4912
5137
  const [isHovered, setIsHovered] = useState(false);
4913
5138
  const hoverTimeoutRef = useRef(null);
4914
5139
  const prefersReducedMotion = useReducedMotion();
5140
+ const wasFullScreenRef = useRef(isFullScreen);
5141
+ const isTransitioningFullScreen = isFullScreen !== wasFullScreenRef.current;
5142
+ useEffect(() => {
5143
+ wasFullScreenRef.current = isFullScreen;
5144
+ }, [isFullScreen]);
4915
5145
  const { isMobile } = useMobileDetect();
4916
5146
  const isDialogActive = mode === "composing" || mode === "active" || mode === "expanded";
4917
- let t1;
4918
- if ($[0] !== mode || $[1] !== onModeChange) {
4919
- t1 = () => {
5147
+ const { containerRef: focusTrapRef, storeTrigger } = useFocusTrap({
5148
+ isActive: isDialogActive,
5149
+ onEscape: () => {
4920
5150
  if (mode !== "active") onModeChange?.("collapsed");
4921
- };
4922
- $[0] = mode;
4923
- $[1] = onModeChange;
4924
- $[2] = t1;
4925
- } else t1 = $[2];
4926
- let t2;
4927
- if ($[3] !== isDialogActive || $[4] !== isMobile || $[5] !== t1) {
4928
- t2 = {
4929
- isActive: isDialogActive,
4930
- onEscape: t1,
4931
- autoFocus: true,
4932
- returnFocus: true,
4933
- skipInputFocusReturn: isMobile
4934
- };
4935
- $[3] = isDialogActive;
4936
- $[4] = isMobile;
4937
- $[5] = t1;
4938
- $[6] = t2;
4939
- } else t2 = $[6];
4940
- const { containerRef: focusTrapRef, storeTrigger } = useFocusTrap(t2);
5151
+ },
5152
+ autoFocus: true,
5153
+ returnFocus: true,
5154
+ skipInputFocusReturn: isMobile
5155
+ });
4941
5156
  const prevModeRef = useRef(mode);
4942
- let t3;
4943
- let t4;
4944
- if ($[7] !== mode || $[8] !== storeTrigger) {
4945
- t3 = () => {
4946
- if ((prevModeRef.current === "collapsed" || prevModeRef.current === "hovered") && (mode === "composing" || mode === "active" || mode === "expanded")) storeTrigger();
4947
- prevModeRef.current = mode;
4948
- };
4949
- t4 = [mode, storeTrigger];
4950
- $[7] = mode;
4951
- $[8] = storeTrigger;
4952
- $[9] = t3;
4953
- $[10] = t4;
4954
- } else {
4955
- t3 = $[9];
4956
- t4 = $[10];
4957
- }
4958
- useEffect(t3, t4);
5157
+ useEffect(() => {
5158
+ if ((prevModeRef.current === "collapsed" || prevModeRef.current === "hovered") && (mode === "composing" || mode === "active" || mode === "expanded")) storeTrigger();
5159
+ prevModeRef.current = mode;
5160
+ }, [mode, storeTrigger]);
4959
5161
  useAriaHidden(isDialogActive, focusTrapRef);
4960
- let t5;
4961
- if ($[11] !== isMobile || $[12] !== mode || $[13] !== onModeChange) {
4962
- t5 = () => {
4963
- if (isMobile) return;
4964
- if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
4965
- hoverTimeoutRef.current = setTimeout(() => {
4966
- setIsHovered(true);
4967
- if (mode === "collapsed") onModeChange?.("hovered");
4968
- }, UI_TIMING.hoverDebounce);
4969
- };
4970
- $[11] = isMobile;
4971
- $[12] = mode;
4972
- $[13] = onModeChange;
4973
- $[14] = t5;
4974
- } else t5 = $[14];
4975
- const handleMouseEnter = t5;
4976
- let t6;
4977
- if ($[15] !== isMobile || $[16] !== mode || $[17] !== onModeChange) {
4978
- t6 = () => {
4979
- if (isMobile) return;
4980
- if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
4981
- setIsHovered(false);
4982
- if (mode === "hovered") hoverTimeoutRef.current = setTimeout(() => {
5162
+ const handleMouseEnter = useCallback(() => {
5163
+ if (isMobile) return;
5164
+ if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5165
+ hoverTimeoutRef.current = setTimeout(() => {
5166
+ setIsHovered(true);
5167
+ if (mode === "collapsed") onModeChange?.("hovered");
5168
+ }, UI_TIMING.hoverDebounce);
5169
+ }, [
5170
+ mode,
5171
+ onModeChange,
5172
+ isMobile
5173
+ ]);
5174
+ const handleMouseLeave = useCallback(() => {
5175
+ if (isMobile) return;
5176
+ if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5177
+ setIsHovered(false);
5178
+ if (mode === "hovered") hoverTimeoutRef.current = setTimeout(() => {
5179
+ onModeChange?.("collapsed");
5180
+ }, UI_TIMING.collapseDelay);
5181
+ }, [
5182
+ mode,
5183
+ onModeChange,
5184
+ isMobile
5185
+ ]);
5186
+ const handleClick = useCallback(() => {
5187
+ if (mode === "collapsed" || mode === "hovered") onModeChange?.("composing");
5188
+ }, [mode, onModeChange]);
5189
+ const handleFocus = useCallback(() => {
5190
+ if (mode === "collapsed" && !isMobile) onModeChange?.("hovered");
5191
+ }, [
5192
+ mode,
5193
+ onModeChange,
5194
+ isMobile
5195
+ ]);
5196
+ const handleBlur = useCallback(() => {
5197
+ if (mode === "hovered" && !isMobile) onModeChange?.("collapsed");
5198
+ }, [
5199
+ mode,
5200
+ onModeChange,
5201
+ isMobile
5202
+ ]);
5203
+ useEffect(() => {
5204
+ const handleKeyDown = (e) => {
5205
+ const isShortcut = (e.ctrlKey || e.metaKey) && e.shiftKey && e.key.toLowerCase() === "k";
5206
+ const isEscape = e.key === "Escape";
5207
+ if (isShortcut) {
5208
+ e.preventDefault();
5209
+ if (mode === "collapsed") onModeChange?.("composing");
5210
+ else if (mode === "composing" || mode === "hovered") onModeChange?.("collapsed");
5211
+ }
5212
+ if (isEscape && (mode === "composing" || mode === "expanded" || mode === "hovered")) {
5213
+ e.preventDefault();
4983
5214
  onModeChange?.("collapsed");
4984
- }, UI_TIMING.collapseDelay);
4985
- };
4986
- $[15] = isMobile;
4987
- $[16] = mode;
4988
- $[17] = onModeChange;
4989
- $[18] = t6;
4990
- } else t6 = $[18];
4991
- const handleMouseLeave = t6;
4992
- let t7;
4993
- if ($[19] !== mode || $[20] !== onModeChange) {
4994
- t7 = () => {
4995
- if (mode === "collapsed" || mode === "hovered") onModeChange?.("composing");
4996
- };
4997
- $[19] = mode;
4998
- $[20] = onModeChange;
4999
- $[21] = t7;
5000
- } else t7 = $[21];
5001
- const handleClick = t7;
5002
- let t8;
5003
- if ($[22] !== isMobile || $[23] !== mode || $[24] !== onModeChange) {
5004
- t8 = () => {
5005
- if (mode === "collapsed" && !isMobile) onModeChange?.("hovered");
5006
- };
5007
- $[22] = isMobile;
5008
- $[23] = mode;
5009
- $[24] = onModeChange;
5010
- $[25] = t8;
5011
- } else t8 = $[25];
5012
- const handleFocus = t8;
5013
- let t9;
5014
- if ($[26] !== isMobile || $[27] !== mode || $[28] !== onModeChange) {
5015
- t9 = () => {
5016
- if (mode === "hovered" && !isMobile) onModeChange?.("collapsed");
5017
- };
5018
- $[26] = isMobile;
5019
- $[27] = mode;
5020
- $[28] = onModeChange;
5021
- $[29] = t9;
5022
- } else t9 = $[29];
5023
- const handleBlur = t9;
5024
- let t10;
5025
- let t11;
5026
- if ($[30] !== mode || $[31] !== onModeChange) {
5027
- t10 = () => {
5028
- const handleKeyDown = (e) => {
5029
- const isShortcut = (e.ctrlKey || e.metaKey) && e.shiftKey && e.key.toLowerCase() === "k";
5030
- const isEscape = e.key === "Escape";
5031
- if (isShortcut) {
5032
- e.preventDefault();
5033
- if (mode === "collapsed") onModeChange?.("composing");
5034
- else if (mode === "composing" || mode === "hovered") onModeChange?.("collapsed");
5035
- }
5036
- if (isEscape && (mode === "composing" || mode === "expanded" || mode === "hovered")) {
5037
- e.preventDefault();
5038
- onModeChange?.("collapsed");
5039
- }
5040
- };
5041
- window.addEventListener("keydown", handleKeyDown);
5042
- return () => window.removeEventListener("keydown", handleKeyDown);
5215
+ }
5043
5216
  };
5044
- t11 = [mode, onModeChange];
5045
- $[30] = mode;
5046
- $[31] = onModeChange;
5047
- $[32] = t10;
5048
- $[33] = t11;
5049
- } else {
5050
- t10 = $[32];
5051
- t11 = $[33];
5052
- }
5053
- useEffect(t10, t11);
5054
- let t12;
5055
- let t13;
5056
- if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
5057
- t12 = () => () => {
5217
+ window.addEventListener("keydown", handleKeyDown);
5218
+ return () => window.removeEventListener("keydown", handleKeyDown);
5219
+ }, [mode, onModeChange]);
5220
+ useEffect(() => {
5221
+ return () => {
5058
5222
  if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5059
5223
  };
5060
- t13 = [];
5061
- $[34] = t12;
5062
- $[35] = t13;
5063
- } else {
5064
- t12 = $[34];
5065
- t13 = $[35];
5066
- }
5067
- useEffect(t12, t13);
5224
+ }, []);
5068
5225
  const showContent = mode !== "collapsed" && mode !== "hovered";
5069
- const currentVariant = containerVariants[mode];
5226
+ const currentVariant = isFullScreen ? fullScreenVariant : containerVariants$1[mode];
5070
5227
  const isDialogMode = mode === "composing" || mode === "active" || mode === "expanded";
5071
- let t14;
5072
- if ($[36] !== focusTrapRef) {
5073
- t14 = (node) => {
5074
- if (focusTrapRef) focusTrapRef.current = node;
5075
- };
5076
- $[36] = focusTrapRef;
5077
- $[37] = t14;
5078
- } else t14 = $[37];
5079
- const setContainerRef = t14;
5080
- const t15 = !prefersReducedMotion && "will-change-transform";
5081
- const t16 = mode === "collapsed" && "glass-pill-collapsed";
5082
- const t17 = mode === "hovered" && "glass-pill-hovered";
5083
- const t18 = (mode === "composing" || mode === "expanded") && "glass-pill";
5084
- const t19 = mode === "active" && "glass-pill glass-active";
5085
- let t20;
5086
- if ($[38] !== className || $[39] !== t15 || $[40] !== t16 || $[41] !== t17 || $[42] !== t18 || $[43] !== t19) {
5087
- t20 = cn("relative overflow-hidden", t15, "focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent", t16, t17, t18, t19, className);
5088
- $[38] = className;
5089
- $[39] = t15;
5090
- $[40] = t16;
5091
- $[41] = t17;
5092
- $[42] = t18;
5093
- $[43] = t19;
5094
- $[44] = t20;
5095
- } else t20 = $[44];
5096
- const glassClassName = t20;
5097
- const transition = prefersReducedMotion ? reducedMotionTransition : sizeSpring;
5098
- const t21 = !prefersReducedMotion;
5099
- let t22;
5100
- if ($[45] !== currentVariant.borderRadius || $[46] !== currentVariant.height || $[47] !== currentVariant.padding || $[48] !== currentVariant.width) {
5101
- t22 = {
5228
+ const setContainerRef = useCallback((node) => {
5229
+ if (focusTrapRef) focusTrapRef.current = node;
5230
+ }, [focusTrapRef]);
5231
+ const glassClassName = cn("relative", isFullScreen ? "overflow-y-auto scrollbar-thin scroll-touch" : "overflow-hidden", !prefersReducedMotion && "will-change-transform", "focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent", mode === "collapsed" && "glass-pill-collapsed", mode === "hovered" && "glass-pill-hovered", (mode === "composing" || mode === "expanded") && "glass-pill", mode === "active" && "glass-pill glass-active", className);
5232
+ const transition = prefersReducedMotion ? reducedMotionTransition : isTransitioningFullScreen || isFullScreen ? fullScreenTween : sizeSpring;
5233
+ return /* @__PURE__ */ jsxs(motion.div, {
5234
+ ref: setContainerRef,
5235
+ className: glassClassName,
5236
+ initial: false,
5237
+ animate: {
5102
5238
  width: currentVariant.width,
5103
5239
  height: currentVariant.height,
5104
5240
  padding: currentVariant.padding,
5105
5241
  borderRadius: currentVariant.borderRadius
5106
- };
5107
- $[45] = currentVariant.borderRadius;
5108
- $[46] = currentVariant.height;
5109
- $[47] = currentVariant.padding;
5110
- $[48] = currentVariant.width;
5111
- $[49] = t22;
5112
- } else t22 = $[49];
5113
- const t23 = isDialogMode ? "dialog" : "button";
5114
- const t24 = isDialogMode ? -1 : 0;
5115
- const t25 = isDialogMode ? true : void 0;
5116
- const t26 = isDialogMode ? ARIA_IDS.pillTitle : void 0;
5117
- const t27 = !isDialogMode ? ARIA_LABELS.openAssistant : void 0;
5118
- let t28;
5119
- if ($[50] !== isHovered || $[51] !== mode) {
5120
- t28 = mode === "collapsed" && /* @__PURE__ */ jsx(motion.div, {
5121
- className: "absolute inset-0",
5122
- variants: barVariants,
5123
- initial: "idle",
5124
- animate: isHovered ? "hover" : "idle",
5125
- exit: {
5126
- opacity: 0,
5127
- transition: { duration: .1 }
5128
- },
5129
- style: {
5130
- background: "linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent)",
5131
- backgroundSize: "200% 100%"
5132
- }
5133
- }, "collapsed-bar");
5134
- $[50] = isHovered;
5135
- $[51] = mode;
5136
- $[52] = t28;
5137
- } else t28 = $[52];
5138
- let t29;
5139
- if ($[53] !== t28) {
5140
- t29 = /* @__PURE__ */ jsx(AnimatePresence, {
5141
- mode: "wait",
5142
- children: t28
5143
- });
5144
- $[53] = t28;
5145
- $[54] = t29;
5146
- } else t29 = $[54];
5147
- let t30;
5148
- if ($[55] !== mode) {
5149
- t30 = mode === "hovered" && /* @__PURE__ */ jsx(motion.div, {
5150
- className: "relative z-10 flex h-full w-full items-center justify-center",
5151
- variants: hintVariants,
5152
- initial: "hidden",
5153
- animate: "visible",
5154
- exit: "exit",
5155
- children: /* @__PURE__ */ jsxs("span", {
5156
- className: "text-xs text-white/70",
5157
- children: [
5158
- "Click or",
5159
- " ",
5160
- /* @__PURE__ */ jsx("kbd", {
5161
- className: "rounded bg-white/10 px-1.5 py-0.5 font-mono text-[10px]",
5162
- children: "⌘⇧K"
5242
+ },
5243
+ transition,
5244
+ onMouseEnter: handleMouseEnter,
5245
+ onMouseLeave: handleMouseLeave,
5246
+ onClick: handleClick,
5247
+ onFocus: handleFocus,
5248
+ onBlur: handleBlur,
5249
+ role: isDialogMode ? "dialog" : "button",
5250
+ tabIndex: isDialogMode ? -1 : 0,
5251
+ "aria-modal": isDialogMode ? true : void 0,
5252
+ "aria-labelledby": isDialogMode ? ARIA_IDS.pillTitle : void 0,
5253
+ "aria-label": !isDialogMode ? ARIA_LABELS.openAssistant : void 0,
5254
+ children: [
5255
+ /* @__PURE__ */ jsx(AnimatePresence, {
5256
+ mode: "wait",
5257
+ children: mode === "collapsed" && /* @__PURE__ */ jsx(motion.div, {
5258
+ className: "absolute inset-0",
5259
+ variants: barVariants,
5260
+ initial: "idle",
5261
+ animate: isHovered ? "hover" : "idle",
5262
+ exit: {
5263
+ opacity: 0,
5264
+ transition: { duration: .1 }
5265
+ },
5266
+ style: {
5267
+ background: "linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent)",
5268
+ backgroundSize: "200% 100%"
5269
+ }
5270
+ }, "collapsed-bar")
5271
+ }),
5272
+ /* @__PURE__ */ jsx(AnimatePresence, {
5273
+ mode: "wait",
5274
+ children: mode === "hovered" && /* @__PURE__ */ jsx(motion.div, {
5275
+ className: "relative z-10 flex h-full w-full items-center justify-center",
5276
+ variants: hintVariants,
5277
+ initial: "hidden",
5278
+ animate: "visible",
5279
+ exit: "exit",
5280
+ children: /* @__PURE__ */ jsxs("span", {
5281
+ className: "text-xs text-white/70",
5282
+ children: [
5283
+ "Click or",
5284
+ " ",
5285
+ /* @__PURE__ */ jsx("kbd", {
5286
+ className: "rounded bg-white/10 px-1.5 py-0.5 font-mono text-[10px]",
5287
+ children: "⌘⇧K"
5288
+ })
5289
+ ]
5163
5290
  })
5164
- ]
5291
+ }, "hover-hint")
5292
+ }),
5293
+ /* @__PURE__ */ jsx(AnimatePresence, {
5294
+ mode: "wait",
5295
+ children: showContent && /* @__PURE__ */ jsxs(motion.div, {
5296
+ className: "relative z-10 flex flex-col gap-1.5",
5297
+ variants: contentVariants,
5298
+ initial: "hidden",
5299
+ animate: "visible",
5300
+ exit: "exit",
5301
+ children: [/* @__PURE__ */ jsx("span", {
5302
+ id: ARIA_IDS.pillTitle,
5303
+ className: "sr-only",
5304
+ children: "AI Assistant"
5305
+ }), children]
5306
+ }, "content")
5165
5307
  })
5166
- }, "hover-hint");
5167
- $[55] = mode;
5168
- $[56] = t30;
5169
- } else t30 = $[56];
5170
- let t31;
5171
- if ($[57] !== t30) {
5172
- t31 = /* @__PURE__ */ jsx(AnimatePresence, {
5173
- mode: "wait",
5174
- children: t30
5175
- });
5176
- $[57] = t30;
5177
- $[58] = t31;
5178
- } else t31 = $[58];
5179
- let t32;
5180
- if ($[59] !== children || $[60] !== showContent) {
5181
- t32 = showContent && /* @__PURE__ */ jsxs(motion.div, {
5182
- className: "relative z-10 flex flex-col gap-2",
5183
- variants: contentVariants,
5184
- initial: "hidden",
5185
- animate: "visible",
5186
- exit: "exit",
5187
- children: [/* @__PURE__ */ jsx("span", {
5188
- id: ARIA_IDS.pillTitle,
5189
- className: "sr-only",
5190
- children: "AI Assistant"
5191
- }), children]
5192
- }, "content");
5193
- $[59] = children;
5194
- $[60] = showContent;
5195
- $[61] = t32;
5196
- } else t32 = $[61];
5197
- let t33;
5198
- if ($[62] !== t32) {
5199
- t33 = /* @__PURE__ */ jsx(AnimatePresence, {
5200
- mode: "wait",
5201
- children: t32
5202
- });
5203
- $[62] = t32;
5204
- $[63] = t33;
5205
- } else t33 = $[63];
5206
- let t34;
5207
- if ($[64] !== glassClassName || $[65] !== handleBlur || $[66] !== handleClick || $[67] !== handleFocus || $[68] !== handleMouseEnter || $[69] !== handleMouseLeave || $[70] !== setContainerRef || $[71] !== t21 || $[72] !== t22 || $[73] !== t23 || $[74] !== t24 || $[75] !== t25 || $[76] !== t26 || $[77] !== t27 || $[78] !== t29 || $[79] !== t31 || $[80] !== t33 || $[81] !== transition) {
5208
- t34 = /* @__PURE__ */ jsxs(motion.div, {
5209
- ref: setContainerRef,
5210
- layout: t21,
5211
- className: glassClassName,
5212
- initial: false,
5213
- animate: t22,
5214
- transition,
5215
- onMouseEnter: handleMouseEnter,
5216
- onMouseLeave: handleMouseLeave,
5217
- onClick: handleClick,
5218
- onFocus: handleFocus,
5219
- onBlur: handleBlur,
5220
- role: t23,
5221
- tabIndex: t24,
5222
- "aria-modal": t25,
5223
- "aria-labelledby": t26,
5224
- "aria-label": t27,
5225
- children: [
5226
- t29,
5227
- t31,
5228
- t33
5229
- ]
5230
- });
5231
- $[64] = glassClassName;
5232
- $[65] = handleBlur;
5233
- $[66] = handleClick;
5234
- $[67] = handleFocus;
5235
- $[68] = handleMouseEnter;
5236
- $[69] = handleMouseLeave;
5237
- $[70] = setContainerRef;
5238
- $[71] = t21;
5239
- $[72] = t22;
5240
- $[73] = t23;
5241
- $[74] = t24;
5242
- $[75] = t25;
5243
- $[76] = t26;
5244
- $[77] = t27;
5245
- $[78] = t29;
5246
- $[79] = t31;
5247
- $[80] = t33;
5248
- $[81] = transition;
5249
- $[82] = t34;
5250
- } else t34 = $[82];
5251
- return t34;
5308
+ ]
5309
+ });
5252
5310
  };
5253
5311
 
5254
5312
  //#endregion
@@ -5374,7 +5432,7 @@ const RunningToolDisplay = (t0) => {
5374
5432
  const ToolIcon = t1;
5375
5433
  let t2;
5376
5434
  if ($[2] !== ToolIcon) {
5377
- t2 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-4 w-4 animate-pulse" });
5435
+ t2 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-3.5 w-3.5 animate-pulse text-white/50" });
5378
5436
  $[2] = ToolIcon;
5379
5437
  $[3] = t2;
5380
5438
  } else t2 = $[3];
@@ -5386,18 +5444,17 @@ const RunningToolDisplay = (t0) => {
5386
5444
  } else t3 = $[5];
5387
5445
  let t4;
5388
5446
  if ($[6] !== t3) {
5389
- t4 = /* @__PURE__ */ jsxs("span", { children: [
5390
- "Running ",
5391
- /* @__PURE__ */ jsx("strong", { children: t3 }),
5392
- "..."
5393
- ] });
5447
+ t4 = /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx("strong", {
5448
+ className: "text-white/90",
5449
+ children: t3
5450
+ }) });
5394
5451
  $[6] = t3;
5395
5452
  $[7] = t4;
5396
5453
  } else t4 = $[7];
5397
5454
  let t5;
5398
5455
  if ($[8] !== t2 || $[9] !== t4) {
5399
5456
  t5 = /* @__PURE__ */ jsxs("div", {
5400
- className: "my-2 flex items-center gap-2 rounded-lg bg-blue-500/10 px-3 py-2 text-sm text-blue-400",
5457
+ className: "my-1 flex items-center gap-1.5 rounded-lg bg-white/5 px-2 py-1.5 text-sm text-white/70",
5401
5458
  children: [t2, t4]
5402
5459
  });
5403
5460
  $[8] = t2;
@@ -5411,7 +5468,7 @@ const RunningToolDisplay = (t0) => {
5411
5468
  * Used when a tool has no execute function and requires user approval.
5412
5469
  */
5413
5470
  const ApprovalDialog = (t0) => {
5414
- const $ = c(57);
5471
+ const $ = c(54);
5415
5472
  const { toolName, toolDescription, inputArgs, onApprove, onDeny, isExecuting } = t0;
5416
5473
  const [isHovered, setIsHovered] = useState(null);
5417
5474
  let t1;
@@ -5424,7 +5481,7 @@ const ApprovalDialog = (t0) => {
5424
5481
  if (isExecuting) {
5425
5482
  let t2$1;
5426
5483
  if ($[2] !== ToolIcon) {
5427
- t2$1 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-4 w-4 animate-pulse" });
5484
+ t2$1 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-3.5 w-3.5 animate-pulse text-white/50" });
5428
5485
  $[2] = ToolIcon;
5429
5486
  $[3] = t2$1;
5430
5487
  } else t2$1 = $[3];
@@ -5436,18 +5493,17 @@ const ApprovalDialog = (t0) => {
5436
5493
  } else t3$1 = $[5];
5437
5494
  let t4$1;
5438
5495
  if ($[6] !== t3$1) {
5439
- t4$1 = /* @__PURE__ */ jsxs("span", { children: [
5440
- "Executing ",
5441
- /* @__PURE__ */ jsx("strong", { children: t3$1 }),
5442
- "..."
5443
- ] });
5496
+ t4$1 = /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx("strong", {
5497
+ className: "text-white/90",
5498
+ children: t3$1
5499
+ }) });
5444
5500
  $[6] = t3$1;
5445
5501
  $[7] = t4$1;
5446
5502
  } else t4$1 = $[7];
5447
5503
  let t5$1;
5448
5504
  if ($[8] !== t2$1 || $[9] !== t4$1) {
5449
5505
  t5$1 = /* @__PURE__ */ jsxs("div", {
5450
- className: "my-2 flex items-center gap-2 rounded-lg bg-blue-500/10 px-3 py-2 text-sm text-blue-400",
5506
+ className: "my-1 flex items-center gap-1.5 rounded-lg bg-white/5 px-2 py-1.5 text-sm text-white/70",
5451
5507
  children: [t2$1, t4$1]
5452
5508
  });
5453
5509
  $[8] = t2$1;
@@ -5458,18 +5514,18 @@ const ApprovalDialog = (t0) => {
5458
5514
  }
5459
5515
  let t2;
5460
5516
  if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
5461
- t2 = cn("my-2 overflow-hidden rounded-lg border", "border-amber-500/30 bg-zinc-900/80");
5517
+ t2 = cn("my-1 overflow-hidden rounded-lg", "bg-white/5");
5462
5518
  $[11] = t2;
5463
5519
  } else t2 = $[11];
5464
5520
  let t3;
5465
5521
  if ($[12] !== ToolIcon) {
5466
- t3 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-4 w-4 text-amber-500" });
5522
+ t3 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-3.5 w-3.5 text-white/70" });
5467
5523
  $[12] = ToolIcon;
5468
5524
  $[13] = t3;
5469
5525
  } else t3 = $[13];
5470
5526
  let t4;
5471
5527
  if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
5472
- t4 = /* @__PURE__ */ jsx(AlertTriangle, { className: "absolute -bottom-0.5 -right-0.5 h-2.5 w-2.5 text-amber-500" });
5528
+ t4 = /* @__PURE__ */ jsx(AlertTriangle, { className: "absolute -bottom-0.5 -right-0.5 h-2 w-2 text-white/70" });
5473
5529
  $[14] = t4;
5474
5530
  } else t4 = $[14];
5475
5531
  let t5;
@@ -5482,181 +5538,161 @@ const ApprovalDialog = (t0) => {
5482
5538
  $[16] = t5;
5483
5539
  } else t5 = $[16];
5484
5540
  let t6;
5485
- if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
5486
- t6 = /* @__PURE__ */ jsx("span", {
5487
- className: "text-xs font-medium uppercase tracking-wide text-amber-500",
5488
- children: "Approval Required"
5489
- });
5490
- $[17] = t6;
5491
- } else t6 = $[17];
5541
+ if ($[17] !== toolName) {
5542
+ t6 = humanizeToolName(toolName);
5543
+ $[17] = toolName;
5544
+ $[18] = t6;
5545
+ } else t6 = $[18];
5492
5546
  let t7;
5493
- if ($[18] !== t5) {
5494
- t7 = /* @__PURE__ */ jsxs("div", {
5495
- className: "flex items-center gap-2 border-b border-zinc-700/50 px-3 py-2",
5496
- children: [t5, t6]
5547
+ if ($[19] !== t6) {
5548
+ t7 = /* @__PURE__ */ jsx("span", {
5549
+ className: "text-xs font-medium text-white/90",
5550
+ children: t6
5497
5551
  });
5498
- $[18] = t5;
5499
- $[19] = t7;
5500
- } else t7 = $[19];
5552
+ $[19] = t6;
5553
+ $[20] = t7;
5554
+ } else t7 = $[20];
5501
5555
  let t8;
5502
- if ($[20] !== toolName) {
5503
- t8 = humanizeToolName(toolName);
5504
- $[20] = toolName;
5505
- $[21] = t8;
5506
- } else t8 = $[21];
5507
- let t9;
5508
- if ($[22] !== t8) {
5509
- t9 = /* @__PURE__ */ jsx("div", {
5510
- className: "text-sm font-medium text-white/90",
5511
- children: t8
5556
+ if ($[21] !== t5 || $[22] !== t7) {
5557
+ t8 = /* @__PURE__ */ jsxs("div", {
5558
+ className: "flex items-center gap-1.5 px-2 py-1.5 border-b border-white/5",
5559
+ children: [t5, t7]
5512
5560
  });
5513
- $[22] = t8;
5514
- $[23] = t9;
5515
- } else t9 = $[23];
5516
- let t10;
5561
+ $[21] = t5;
5562
+ $[22] = t7;
5563
+ $[23] = t8;
5564
+ } else t8 = $[23];
5565
+ let t9;
5517
5566
  if ($[24] !== toolDescription) {
5518
- t10 = toolDescription && /* @__PURE__ */ jsx("div", {
5519
- className: "mt-1 text-xs text-white/50",
5567
+ t9 = toolDescription && /* @__PURE__ */ jsx("div", {
5568
+ className: "mb-2 text-xs text-white/50",
5520
5569
  children: toolDescription
5521
5570
  });
5522
5571
  $[24] = toolDescription;
5523
- $[25] = t10;
5524
- } else t10 = $[25];
5525
- let t11;
5526
- if ($[26] !== t10 || $[27] !== t9) {
5527
- t11 = /* @__PURE__ */ jsxs("div", {
5528
- className: "mb-3",
5529
- children: [t9, t10]
5530
- });
5531
- $[26] = t10;
5532
- $[27] = t9;
5533
- $[28] = t11;
5534
- } else t11 = $[28];
5535
- let t12;
5536
- if ($[29] !== inputArgs) {
5537
- t12 = inputArgs && Object.keys(inputArgs).length > 0 && /* @__PURE__ */ jsxs("div", {
5538
- className: "mb-3 rounded bg-zinc-800/50 p-2",
5539
- children: [/* @__PURE__ */ jsx("div", {
5540
- className: "mb-1 text-xs font-medium uppercase tracking-wide text-white/40 sm:text-[10px]",
5541
- children: "Arguments"
5542
- }), /* @__PURE__ */ jsx("pre", {
5543
- className: "whitespace-pre-wrap text-xs text-white/70",
5572
+ $[25] = t9;
5573
+ } else t9 = $[25];
5574
+ let t10;
5575
+ if ($[26] !== inputArgs) {
5576
+ t10 = inputArgs && Object.keys(inputArgs).length > 0 && /* @__PURE__ */ jsx("div", {
5577
+ className: "mb-2 rounded bg-white/5 p-1.5",
5578
+ children: /* @__PURE__ */ jsx("pre", {
5579
+ className: "whitespace-pre-wrap text-[11px] text-white/60",
5544
5580
  children: formatArgs(inputArgs)
5545
- })]
5581
+ })
5546
5582
  });
5547
- $[29] = inputArgs;
5548
- $[30] = t12;
5549
- } else t12 = $[30];
5550
- let t13;
5551
- let t14;
5552
- if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
5553
- t13 = () => setIsHovered("deny");
5554
- t14 = () => setIsHovered(null);
5555
- $[31] = t13;
5556
- $[32] = t14;
5583
+ $[26] = inputArgs;
5584
+ $[27] = t10;
5585
+ } else t10 = $[27];
5586
+ let t11;
5587
+ let t12;
5588
+ if ($[28] === Symbol.for("react.memo_cache_sentinel")) {
5589
+ t11 = () => setIsHovered("deny");
5590
+ t12 = () => setIsHovered(null);
5591
+ $[28] = t11;
5592
+ $[29] = t12;
5557
5593
  } else {
5558
- t13 = $[31];
5559
- t14 = $[32];
5594
+ t11 = $[28];
5595
+ t12 = $[29];
5560
5596
  }
5561
- const t15 = isHovered === "deny" ? "border-red-500/50 bg-red-500/20 text-red-400" : "hover:bg-zinc-700/50";
5597
+ const t13 = isHovered === "deny" ? "bg-white/10 text-white/80" : "hover:bg-white/5";
5598
+ let t14;
5599
+ if ($[30] !== t13) {
5600
+ t14 = cn("flex items-center gap-1 rounded px-2.5 py-1.5 text-xs font-medium sm:px-2 sm:py-1", "border border-white/10 text-white/60", "transition-colors duration-150", t13);
5601
+ $[30] = t13;
5602
+ $[31] = t14;
5603
+ } else t14 = $[31];
5604
+ let t15;
5605
+ if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
5606
+ t15 = /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5 sm:h-3 sm:w-3" });
5607
+ $[32] = t15;
5608
+ } else t15 = $[32];
5562
5609
  let t16;
5563
- if ($[33] !== t15) {
5564
- t16 = cn("flex items-center gap-1.5 rounded-md px-4 py-2.5 text-sm font-medium sm:px-3 sm:py-1.5", "border border-zinc-600 text-white/70", "transition-colors duration-150", "active:bg-red-500/20 active:border-red-500/50 active:text-red-400", t15);
5565
- $[33] = t15;
5566
- $[34] = t16;
5567
- } else t16 = $[34];
5568
- let t17;
5569
- if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
5570
- t17 = /* @__PURE__ */ jsx(X, { className: "h-4 w-4 sm:h-3.5 sm:w-3.5" });
5571
- $[35] = t17;
5572
- } else t17 = $[35];
5573
- let t18;
5574
- if ($[36] !== onDeny || $[37] !== t16) {
5575
- t18 = /* @__PURE__ */ jsxs("button", {
5610
+ if ($[33] !== onDeny || $[34] !== t14) {
5611
+ t16 = /* @__PURE__ */ jsxs("button", {
5576
5612
  type: "button",
5577
5613
  onClick: onDeny,
5578
- onMouseEnter: t13,
5579
- onMouseLeave: t14,
5580
- className: t16,
5581
- children: [t17, "Deny"]
5614
+ onMouseEnter: t11,
5615
+ onMouseLeave: t12,
5616
+ className: t14,
5617
+ children: [t15, "Deny"]
5582
5618
  });
5583
- $[36] = onDeny;
5584
- $[37] = t16;
5585
- $[38] = t18;
5586
- } else t18 = $[38];
5587
- let t19;
5588
- let t20;
5589
- if ($[39] === Symbol.for("react.memo_cache_sentinel")) {
5590
- t19 = () => setIsHovered("approve");
5591
- t20 = () => setIsHovered(null);
5592
- $[39] = t19;
5593
- $[40] = t20;
5619
+ $[33] = onDeny;
5620
+ $[34] = t14;
5621
+ $[35] = t16;
5622
+ } else t16 = $[35];
5623
+ let t17;
5624
+ let t18;
5625
+ if ($[36] === Symbol.for("react.memo_cache_sentinel")) {
5626
+ t17 = () => setIsHovered("approve");
5627
+ t18 = () => setIsHovered(null);
5628
+ $[36] = t17;
5629
+ $[37] = t18;
5594
5630
  } else {
5595
- t19 = $[39];
5596
- t20 = $[40];
5631
+ t17 = $[36];
5632
+ t18 = $[37];
5597
5633
  }
5598
- const t21 = isHovered === "approve" && "border-amber-500 bg-amber-500/30";
5634
+ const t19 = isHovered === "approve" ? "bg-white" : "hover:bg-white/95";
5635
+ let t20;
5636
+ if ($[38] !== t19) {
5637
+ t20 = cn("flex items-center gap-1 rounded px-2.5 py-1.5 text-xs font-medium sm:px-2 sm:py-1", "bg-white/90 text-slate-900", "transition-colors duration-150", t19);
5638
+ $[38] = t19;
5639
+ $[39] = t20;
5640
+ } else t20 = $[39];
5641
+ let t21;
5642
+ if ($[40] === Symbol.for("react.memo_cache_sentinel")) {
5643
+ t21 = /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5 sm:h-3 sm:w-3" });
5644
+ $[40] = t21;
5645
+ } else t21 = $[40];
5599
5646
  let t22;
5600
- if ($[41] !== t21) {
5601
- t22 = cn("flex items-center gap-1.5 rounded-md px-4 py-2.5 text-sm font-medium sm:px-3 sm:py-1.5", "border border-amber-500/50 bg-amber-500/20 text-amber-400", "transition-colors duration-150", "active:border-amber-500 active:bg-amber-500/30", t21);
5602
- $[41] = t21;
5603
- $[42] = t22;
5604
- } else t22 = $[42];
5605
- let t23;
5606
- if ($[43] === Symbol.for("react.memo_cache_sentinel")) {
5607
- t23 = /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 sm:h-3.5 sm:w-3.5" });
5608
- $[43] = t23;
5609
- } else t23 = $[43];
5610
- let t24;
5611
- if ($[44] !== onApprove || $[45] !== t22) {
5612
- t24 = /* @__PURE__ */ jsxs("button", {
5647
+ if ($[41] !== onApprove || $[42] !== t20) {
5648
+ t22 = /* @__PURE__ */ jsxs("button", {
5613
5649
  type: "button",
5614
5650
  onClick: onApprove,
5615
- onMouseEnter: t19,
5616
- onMouseLeave: t20,
5617
- className: t22,
5618
- children: [t23, "Approve"]
5651
+ onMouseEnter: t17,
5652
+ onMouseLeave: t18,
5653
+ className: t20,
5654
+ children: [t21, "OK"]
5619
5655
  });
5620
- $[44] = onApprove;
5621
- $[45] = t22;
5622
- $[46] = t24;
5623
- } else t24 = $[46];
5624
- let t25;
5625
- if ($[47] !== t18 || $[48] !== t24) {
5626
- t25 = /* @__PURE__ */ jsxs("div", {
5627
- className: "flex justify-end gap-2",
5628
- children: [t18, t24]
5656
+ $[41] = onApprove;
5657
+ $[42] = t20;
5658
+ $[43] = t22;
5659
+ } else t22 = $[43];
5660
+ let t23;
5661
+ if ($[44] !== t16 || $[45] !== t22) {
5662
+ t23 = /* @__PURE__ */ jsxs("div", {
5663
+ className: "flex justify-end gap-1.5",
5664
+ children: [t16, t22]
5629
5665
  });
5630
- $[47] = t18;
5631
- $[48] = t24;
5632
- $[49] = t25;
5633
- } else t25 = $[49];
5634
- let t26;
5635
- if ($[50] !== t11 || $[51] !== t12 || $[52] !== t25) {
5636
- t26 = /* @__PURE__ */ jsxs("div", {
5637
- className: "px-3 py-3",
5666
+ $[44] = t16;
5667
+ $[45] = t22;
5668
+ $[46] = t23;
5669
+ } else t23 = $[46];
5670
+ let t24;
5671
+ if ($[47] !== t10 || $[48] !== t23 || $[49] !== t9) {
5672
+ t24 = /* @__PURE__ */ jsxs("div", {
5673
+ className: "px-2 py-2",
5638
5674
  children: [
5639
- t11,
5640
- t12,
5641
- t25
5675
+ t9,
5676
+ t10,
5677
+ t23
5642
5678
  ]
5643
5679
  });
5644
- $[50] = t11;
5645
- $[51] = t12;
5646
- $[52] = t25;
5647
- $[53] = t26;
5648
- } else t26 = $[53];
5649
- let t27;
5650
- if ($[54] !== t26 || $[55] !== t7) {
5651
- t27 = /* @__PURE__ */ jsxs("div", {
5680
+ $[47] = t10;
5681
+ $[48] = t23;
5682
+ $[49] = t9;
5683
+ $[50] = t24;
5684
+ } else t24 = $[50];
5685
+ let t25;
5686
+ if ($[51] !== t24 || $[52] !== t8) {
5687
+ t25 = /* @__PURE__ */ jsxs("div", {
5652
5688
  className: t2,
5653
- children: [t7, t26]
5689
+ children: [t8, t24]
5654
5690
  });
5655
- $[54] = t26;
5656
- $[55] = t7;
5657
- $[56] = t27;
5658
- } else t27 = $[56];
5659
- return t27;
5691
+ $[51] = t24;
5692
+ $[52] = t8;
5693
+ $[53] = t25;
5694
+ } else t25 = $[53];
5695
+ return t25;
5660
5696
  };
5661
5697
  /**
5662
5698
  * Completed tool display - success state with collapsible details
@@ -5680,13 +5716,13 @@ const CompletedToolDisplay = (t0) => {
5680
5716
  } else t2 = $[3];
5681
5717
  let t3;
5682
5718
  if ($[4] !== ToolIcon) {
5683
- t3 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-4 w-4 text-emerald-500" });
5719
+ t3 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-3.5 w-3.5 text-white/50" });
5684
5720
  $[4] = ToolIcon;
5685
5721
  $[5] = t3;
5686
5722
  } else t3 = $[5];
5687
5723
  let t4;
5688
5724
  if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
5689
- t4 = /* @__PURE__ */ jsx(Check, { className: "absolute -bottom-0.5 -right-0.5 h-2.5 w-2.5 text-emerald-500 bg-zinc-900 rounded-full" });
5725
+ t4 = /* @__PURE__ */ jsx(Check, { className: "absolute -bottom-0.5 -right-0.5 h-2 w-2 text-white/50" });
5690
5726
  $[6] = t4;
5691
5727
  } else t4 = $[6];
5692
5728
  let t5;
@@ -5707,7 +5743,7 @@ const CompletedToolDisplay = (t0) => {
5707
5743
  let t7;
5708
5744
  if ($[11] !== t6) {
5709
5745
  t7 = /* @__PURE__ */ jsx("span", {
5710
- className: "flex-grow text-sm font-medium text-white/90",
5746
+ className: "flex-grow text-xs font-medium text-white/80",
5711
5747
  children: t6
5712
5748
  });
5713
5749
  $[11] = t6;
@@ -5718,9 +5754,9 @@ const CompletedToolDisplay = (t0) => {
5718
5754
  t8 = /* @__PURE__ */ jsx(Button, {
5719
5755
  variant: "ghost",
5720
5756
  size: "sm",
5721
- className: "h-6 w-6 p-0",
5757
+ className: "h-5 w-5 p-0",
5722
5758
  asChild: true,
5723
- children: /* @__PURE__ */ jsx("span", { children: isExpanded ? /* @__PURE__ */ jsx(ChevronUpIcon, { className: "h-3.5 w-3.5 text-white/50" }) : /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-3.5 w-3.5 text-white/50" }) })
5759
+ children: /* @__PURE__ */ jsx("span", { children: isExpanded ? /* @__PURE__ */ jsx(ChevronUpIcon, { className: "h-3 w-3 text-white/40" }) : /* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-3 w-3 text-white/40" }) })
5724
5760
  });
5725
5761
  $[13] = isExpanded;
5726
5762
  $[14] = t8;
@@ -5730,7 +5766,7 @@ const CompletedToolDisplay = (t0) => {
5730
5766
  t9 = /* @__PURE__ */ jsxs("button", {
5731
5767
  type: "button",
5732
5768
  onClick: t2,
5733
- className: "flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-zinc-800/50",
5769
+ className: "flex w-full items-center gap-1.5 px-2 py-1.5 text-left transition-colors hover:bg-white/5",
5734
5770
  children: [
5735
5771
  t5,
5736
5772
  t7,
@@ -5746,21 +5782,21 @@ const CompletedToolDisplay = (t0) => {
5746
5782
  let t10;
5747
5783
  if ($[20] !== argsText || $[21] !== isExpanded || $[22] !== result) {
5748
5784
  t10 = isExpanded && /* @__PURE__ */ jsxs("div", {
5749
- className: "border-t border-zinc-700/50 px-3 py-2",
5785
+ className: "border-t border-white/5 px-2 py-1.5",
5750
5786
  children: [argsText && /* @__PURE__ */ jsxs("div", {
5751
- className: "mb-2",
5787
+ className: "mb-1.5",
5752
5788
  children: [/* @__PURE__ */ jsx("div", {
5753
- className: "mb-1 text-xs font-medium uppercase tracking-wide text-white/40 sm:text-[10px]",
5789
+ className: "mb-0.5 text-[10px] font-medium uppercase tracking-wide text-white/40",
5754
5790
  children: "Input"
5755
5791
  }), /* @__PURE__ */ jsx("pre", {
5756
- className: "max-h-32 overflow-auto whitespace-pre-wrap rounded bg-zinc-800/50 p-2 font-mono text-xs text-white/70 sm:text-[11px]",
5792
+ className: "max-h-24 overflow-auto whitespace-pre-wrap rounded bg-white/5 p-1.5 font-mono text-[11px] text-white/60",
5757
5793
  children: argsText
5758
5794
  })]
5759
5795
  }), result !== void 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
5760
- className: "mb-1 text-xs font-medium uppercase tracking-wide text-white/40 sm:text-[10px]",
5796
+ className: "mb-0.5 text-[10px] font-medium uppercase tracking-wide text-white/40",
5761
5797
  children: "Output"
5762
5798
  }), /* @__PURE__ */ jsx("pre", {
5763
- className: "max-h-48 overflow-auto whitespace-pre-wrap rounded bg-zinc-800/50 p-2 font-mono text-xs text-white/70 sm:text-[11px]",
5799
+ className: "max-h-32 overflow-auto whitespace-pre-wrap rounded bg-white/5 p-1.5 font-mono text-[11px] text-white/60",
5764
5800
  children: typeof result === "string" ? result : JSON.stringify(result, null, 2)
5765
5801
  })] })]
5766
5802
  });
@@ -5772,7 +5808,7 @@ const CompletedToolDisplay = (t0) => {
5772
5808
  let t11;
5773
5809
  if ($[24] !== t10 || $[25] !== t9) {
5774
5810
  t11 = /* @__PURE__ */ jsxs("div", {
5775
- className: "my-2 overflow-hidden rounded-lg border border-emerald-500/20 bg-zinc-900/50",
5811
+ className: "my-1 overflow-hidden rounded-lg bg-white/5",
5776
5812
  children: [t9, t10]
5777
5813
  });
5778
5814
  $[24] = t10;
@@ -5796,13 +5832,13 @@ const ErrorToolDisplay = (t0) => {
5796
5832
  const ToolIcon = t1;
5797
5833
  let t2;
5798
5834
  if ($[2] !== ToolIcon) {
5799
- t2 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-4 w-4 text-red-400" });
5835
+ t2 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-3.5 w-3.5 text-white/50" });
5800
5836
  $[2] = ToolIcon;
5801
5837
  $[3] = t2;
5802
5838
  } else t2 = $[3];
5803
5839
  let t3;
5804
5840
  if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
5805
- t3 = /* @__PURE__ */ jsx(AlertCircle, { className: "absolute -bottom-0.5 -right-0.5 h-2.5 w-2.5 text-red-400 bg-red-500/10 rounded-full" });
5841
+ t3 = /* @__PURE__ */ jsx(AlertCircle, { className: "absolute -bottom-0.5 -right-0.5 h-2 w-2 text-white/50" });
5806
5842
  $[4] = t3;
5807
5843
  } else t3 = $[4];
5808
5844
  let t4;
@@ -5823,7 +5859,7 @@ const ErrorToolDisplay = (t0) => {
5823
5859
  let t6;
5824
5860
  if ($[9] !== t5) {
5825
5861
  t6 = /* @__PURE__ */ jsxs("span", {
5826
- className: "text-sm font-medium text-red-400",
5862
+ className: "text-xs font-medium text-white/70",
5827
5863
  children: [t5, " failed"]
5828
5864
  });
5829
5865
  $[9] = t5;
@@ -5832,7 +5868,7 @@ const ErrorToolDisplay = (t0) => {
5832
5868
  let t7;
5833
5869
  if ($[11] !== t4 || $[12] !== t6) {
5834
5870
  t7 = /* @__PURE__ */ jsxs("div", {
5835
- className: "flex items-center gap-2 px-3 py-2",
5871
+ className: "flex items-center gap-1.5 px-2 py-1.5",
5836
5872
  children: [t4, t6]
5837
5873
  });
5838
5874
  $[11] = t4;
@@ -5842,9 +5878,9 @@ const ErrorToolDisplay = (t0) => {
5842
5878
  let t8;
5843
5879
  if ($[14] !== error) {
5844
5880
  t8 = error && /* @__PURE__ */ jsx("div", {
5845
- className: "border-t border-red-500/20 px-3 py-2",
5881
+ className: "border-t border-white/5 px-2 py-1.5",
5846
5882
  children: /* @__PURE__ */ jsx("pre", {
5847
- className: "whitespace-pre-wrap font-mono text-xs text-red-300/80",
5883
+ className: "whitespace-pre-wrap font-mono text-[11px] text-white/50",
5848
5884
  children: error
5849
5885
  })
5850
5886
  });
@@ -5854,7 +5890,7 @@ const ErrorToolDisplay = (t0) => {
5854
5890
  let t9;
5855
5891
  if ($[16] !== t7 || $[17] !== t8) {
5856
5892
  t9 = /* @__PURE__ */ jsxs("div", {
5857
- className: "my-2 overflow-hidden rounded-lg border border-red-500/30 bg-red-500/10",
5893
+ className: "my-1 overflow-hidden rounded-lg bg-white/5",
5858
5894
  children: [t7, t8]
5859
5895
  });
5860
5896
  $[16] = t7;
@@ -5878,13 +5914,13 @@ const DeniedToolDisplay = (t0) => {
5878
5914
  const ToolIcon = t1;
5879
5915
  let t2;
5880
5916
  if ($[2] !== ToolIcon) {
5881
- t2 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-4 w-4" });
5917
+ t2 = /* @__PURE__ */ jsx(ToolIcon, { className: "h-3.5 w-3.5 text-white/40" });
5882
5918
  $[2] = ToolIcon;
5883
5919
  $[3] = t2;
5884
5920
  } else t2 = $[3];
5885
5921
  let t3;
5886
5922
  if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
5887
- t3 = /* @__PURE__ */ jsx(X, { className: "absolute -bottom-0.5 -right-0.5 h-2.5 w-2.5 text-red-400 bg-red-500/10 rounded-full" });
5923
+ t3 = /* @__PURE__ */ jsx(X, { className: "absolute -bottom-0.5 -right-0.5 h-2 w-2 text-white/40" });
5888
5924
  $[4] = t3;
5889
5925
  } else t3 = $[4];
5890
5926
  let t4;
@@ -5904,14 +5940,17 @@ const DeniedToolDisplay = (t0) => {
5904
5940
  } else t5 = $[8];
5905
5941
  let t6;
5906
5942
  if ($[9] !== t5) {
5907
- t6 = /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("strong", { children: t5 }), " denied"] });
5943
+ t6 = /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("strong", {
5944
+ className: "text-white/70",
5945
+ children: t5
5946
+ }), " denied"] });
5908
5947
  $[9] = t5;
5909
5948
  $[10] = t6;
5910
5949
  } else t6 = $[10];
5911
5950
  let t7;
5912
5951
  if ($[11] !== t4 || $[12] !== t6) {
5913
5952
  t7 = /* @__PURE__ */ jsxs("div", {
5914
- className: "my-2 flex items-center gap-2 rounded-lg bg-red-500/10 px-3 py-2 text-sm text-red-400",
5953
+ className: "my-1 flex items-center gap-1.5 rounded-lg bg-white/5 px-2 py-1.5 text-xs text-white/60",
5915
5954
  children: [t4, t6]
5916
5955
  });
5917
5956
  $[11] = t4;
@@ -6055,124 +6094,113 @@ function _temp2$2() {
6055
6094
  * Auto-expands when approval is needed for a destructive tool.
6056
6095
  */
6057
6096
  const PillToolsSection = (t0) => {
6058
- const $ = c(50);
6059
- const { defaultCollapsed: t1, className } = t0;
6060
- const [isCollapsed, setIsCollapsed] = useState(t1 === void 0 ? false : t1);
6097
+ const $ = c(52);
6098
+ const { defaultCollapsed: t1, className, isFullScreen: t2 } = t0;
6099
+ const defaultCollapsed = t1 === void 0 ? false : t1;
6100
+ const isFullScreen = t2 === void 0 ? false : t2;
6101
+ const [isCollapsed, setIsCollapsed] = useState(isFullScreen ? false : defaultCollapsed);
6061
6102
  const actions = useActions();
6062
- let t2;
6103
+ let t3;
6063
6104
  if ($[0] !== actions) {
6064
- t2 = actions.filter(_temp$3);
6105
+ t3 = actions.filter(_temp$3);
6065
6106
  $[0] = actions;
6066
- $[1] = t2;
6067
- } else t2 = $[1];
6068
- const completedCount = t2.length;
6069
- let t3;
6107
+ $[1] = t3;
6108
+ } else t3 = $[1];
6109
+ const completedCount = t3.length;
6110
+ let t4;
6070
6111
  if ($[2] !== actions) {
6071
- t3 = actions.filter(_temp2$1);
6112
+ t4 = actions.filter(_temp2$1);
6072
6113
  $[2] = actions;
6073
- $[3] = t3;
6074
- } else t3 = $[3];
6075
- const runningCount = t3.length;
6076
- let t4;
6114
+ $[3] = t4;
6115
+ } else t4 = $[3];
6116
+ const runningCount = t4.length;
6117
+ let t5;
6077
6118
  if ($[4] !== actions) {
6078
- t4 = actions.filter(_temp3$1);
6119
+ t5 = actions.filter(_temp3$1);
6079
6120
  $[4] = actions;
6080
- $[5] = t4;
6081
- } else t4 = $[5];
6082
- const pendingCount = t4.length;
6121
+ $[5] = t5;
6122
+ } else t5 = $[5];
6123
+ const pendingCount = t5.length;
6083
6124
  const totalCount = actions.length;
6084
- let t5;
6085
6125
  let t6;
6126
+ let t7;
6086
6127
  if ($[6] !== isCollapsed || $[7] !== pendingCount) {
6087
- t5 = () => {
6128
+ t6 = () => {
6088
6129
  if (pendingCount > 0 && isCollapsed) setIsCollapsed(false);
6089
6130
  };
6090
- t6 = [pendingCount, isCollapsed];
6131
+ t7 = [pendingCount, isCollapsed];
6091
6132
  $[6] = isCollapsed;
6092
6133
  $[7] = pendingCount;
6093
- $[8] = t5;
6094
- $[9] = t6;
6134
+ $[8] = t6;
6135
+ $[9] = t7;
6095
6136
  } else {
6096
- t5 = $[8];
6097
- t6 = $[9];
6137
+ t6 = $[8];
6138
+ t7 = $[9];
6098
6139
  }
6099
- useEffect(t5, t6);
6140
+ useEffect(t6, t7);
6100
6141
  if (actions.length === 0) return null;
6101
- const hasPendingApproval = pendingCount > 0;
6102
- let t7;
6142
+ let t8;
6103
6143
  if ($[10] !== className) {
6104
- t7 = cn("", className);
6144
+ t8 = cn("mt-1.5", className);
6105
6145
  $[10] = className;
6106
- $[11] = t7;
6107
- } else t7 = $[11];
6108
- let t8;
6146
+ $[11] = t8;
6147
+ } else t8 = $[11];
6148
+ let t9;
6109
6149
  if ($[12] !== isCollapsed) {
6110
- t8 = () => setIsCollapsed(!isCollapsed);
6150
+ t9 = () => setIsCollapsed(!isCollapsed);
6111
6151
  $[12] = isCollapsed;
6112
- $[13] = t8;
6113
- } else t8 = $[13];
6114
- const t9 = hasPendingApproval ? "bg-amber-500/10 hover:bg-amber-500/20 border border-amber-500/30" : "bg-white/5 hover:bg-white/10";
6152
+ $[13] = t9;
6153
+ } else t9 = $[13];
6115
6154
  let t10;
6116
- if ($[14] !== t9) {
6117
- t10 = cn("flex w-full items-center justify-between", "rounded-lg px-3 py-2", "transition-colors duration-200", t9);
6118
- $[14] = t9;
6119
- $[15] = t10;
6120
- } else t10 = $[15];
6155
+ if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
6156
+ t10 = cn("flex w-full items-center justify-between", "px-1 py-1", "transition-colors duration-150", "hover:bg-white/5 rounded");
6157
+ $[14] = t10;
6158
+ } else t10 = $[14];
6121
6159
  const t11 = !isCollapsed;
6122
6160
  let t12;
6123
- if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
6161
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
6124
6162
  t12 = /* @__PURE__ */ jsx("span", {
6125
- className: "text-xs font-medium text-white/80",
6163
+ className: "text-xs font-medium text-white/70",
6126
6164
  children: "Tools"
6127
6165
  });
6128
- $[16] = t12;
6129
- } else t12 = $[16];
6166
+ $[15] = t12;
6167
+ } else t12 = $[15];
6130
6168
  let t13;
6131
- if ($[17] !== completedCount || $[18] !== totalCount) {
6169
+ if ($[16] !== completedCount || $[17] !== totalCount) {
6132
6170
  t13 = /* @__PURE__ */ jsxs("span", {
6133
- className: "text-xs text-white/50",
6171
+ className: "text-[11px] text-white/40",
6134
6172
  children: [
6135
- "(",
6136
6173
  completedCount,
6137
6174
  "/",
6138
- totalCount,
6139
- ")"
6175
+ totalCount
6140
6176
  ]
6141
6177
  });
6142
- $[17] = completedCount;
6143
- $[18] = totalCount;
6144
- $[19] = t13;
6145
- } else t13 = $[19];
6178
+ $[16] = completedCount;
6179
+ $[17] = totalCount;
6180
+ $[18] = t13;
6181
+ } else t13 = $[18];
6146
6182
  let t14;
6147
- if ($[20] !== pendingCount) {
6183
+ if ($[19] !== pendingCount) {
6148
6184
  t14 = pendingCount > 0 && /* @__PURE__ */ jsxs("span", {
6149
- className: "flex items-center gap-1 text-xs font-medium text-amber-400",
6150
- children: [
6151
- /* @__PURE__ */ jsx(AlertTriangle, { className: "h-3 w-3" }),
6152
- pendingCount,
6153
- " pending"
6154
- ]
6185
+ className: "flex items-center gap-1 text-[11px] font-medium text-white/90",
6186
+ children: [/* @__PURE__ */ jsx(AlertTriangle, { className: "h-3 w-3" }), pendingCount]
6155
6187
  });
6156
- $[20] = pendingCount;
6157
- $[21] = t14;
6158
- } else t14 = $[21];
6188
+ $[19] = pendingCount;
6189
+ $[20] = t14;
6190
+ } else t14 = $[20];
6159
6191
  let t15;
6160
- if ($[22] !== runningCount) {
6192
+ if ($[21] !== runningCount) {
6161
6193
  t15 = runningCount > 0 && /* @__PURE__ */ jsxs("span", {
6162
- className: "flex items-center gap-1 text-xs text-blue-400",
6163
- children: [
6164
- /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 animate-pulse rounded-full bg-blue-400" }),
6165
- runningCount,
6166
- " running"
6167
- ]
6194
+ className: "flex items-center gap-1 text-[11px] text-white/60",
6195
+ children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 animate-pulse rounded-full bg-white/60" }), runningCount]
6168
6196
  });
6169
- $[22] = runningCount;
6170
- $[23] = t15;
6171
- } else t15 = $[23];
6197
+ $[21] = runningCount;
6198
+ $[22] = t15;
6199
+ } else t15 = $[22];
6172
6200
  let t16;
6173
- if ($[24] !== t13 || $[25] !== t14 || $[26] !== t15) {
6201
+ if ($[23] !== t13 || $[24] !== t14 || $[25] !== t15) {
6174
6202
  t16 = /* @__PURE__ */ jsxs("div", {
6175
- className: "flex items-center gap-2",
6203
+ className: "flex items-center gap-1.5",
6176
6204
  children: [
6177
6205
  t12,
6178
6206
  t13,
@@ -6180,90 +6208,101 @@ const PillToolsSection = (t0) => {
6180
6208
  t15
6181
6209
  ]
6182
6210
  });
6183
- $[24] = t13;
6184
- $[25] = t14;
6185
- $[26] = t15;
6186
- $[27] = t16;
6187
- } else t16 = $[27];
6188
- const t17 = hasPendingApproval ? "text-amber-400" : "text-white/50";
6189
- const t18 = !isCollapsed && "rotate-180";
6211
+ $[23] = t13;
6212
+ $[24] = t14;
6213
+ $[25] = t15;
6214
+ $[26] = t16;
6215
+ } else t16 = $[26];
6216
+ const t17 = !isCollapsed && "rotate-180";
6217
+ let t18;
6218
+ if ($[27] !== t17) {
6219
+ t18 = cn("h-3.5 w-3.5 transition-transform duration-200 text-white/40", t17);
6220
+ $[27] = t17;
6221
+ $[28] = t18;
6222
+ } else t18 = $[28];
6190
6223
  let t19;
6191
- if ($[28] !== t17 || $[29] !== t18) {
6192
- t19 = cn("h-4 w-4 transition-transform duration-200", t17, t18);
6193
- $[28] = t17;
6224
+ if ($[29] !== t18) {
6225
+ t19 = /* @__PURE__ */ jsx(ChevronDown, { className: t18 });
6194
6226
  $[29] = t18;
6195
6227
  $[30] = t19;
6196
6228
  } else t19 = $[30];
6197
6229
  let t20;
6198
- if ($[31] !== t19) {
6199
- t20 = /* @__PURE__ */ jsx(ChevronDown, { className: t19 });
6200
- $[31] = t19;
6201
- $[32] = t20;
6202
- } else t20 = $[32];
6203
- let t21;
6204
- if ($[33] !== t10 || $[34] !== t11 || $[35] !== t16 || $[36] !== t20 || $[37] !== t8) {
6205
- t21 = /* @__PURE__ */ jsxs("button", {
6230
+ if ($[31] !== t11 || $[32] !== t16 || $[33] !== t19 || $[34] !== t9) {
6231
+ t20 = /* @__PURE__ */ jsxs("button", {
6206
6232
  type: "button",
6207
- onClick: t8,
6233
+ onClick: t9,
6208
6234
  className: t10,
6209
6235
  "aria-expanded": t11,
6210
- children: [t16, t20]
6236
+ children: [t16, t19]
6211
6237
  });
6212
- $[33] = t10;
6213
- $[34] = t11;
6214
- $[35] = t16;
6215
- $[36] = t20;
6216
- $[37] = t8;
6217
- $[38] = t21;
6218
- } else t21 = $[38];
6219
- const t22 = isCollapsed ? "grid-rows-[0fr]" : "grid-rows-[1fr]";
6220
- let t23;
6221
- if ($[39] !== t22) {
6222
- t23 = cn("grid transition-[grid-template-rows] duration-300 ease-out", t22);
6223
- $[39] = t22;
6224
- $[40] = t23;
6225
- } else t23 = $[40];
6238
+ $[31] = t11;
6239
+ $[32] = t16;
6240
+ $[33] = t19;
6241
+ $[34] = t9;
6242
+ $[35] = t20;
6243
+ } else t20 = $[35];
6244
+ const t21 = isCollapsed ? "grid-rows-[0fr]" : "grid-rows-[1fr]";
6245
+ let t22;
6246
+ if ($[36] !== t21) {
6247
+ t22 = cn("grid transition-[grid-template-rows] duration-300 ease-out", t21);
6248
+ $[36] = t21;
6249
+ $[37] = t22;
6250
+ } else t22 = $[37];
6251
+ const t23 = isFullScreen ? "max-h-[30vh]" : "max-h-40 sm:max-h-32";
6226
6252
  let t24;
6227
- if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
6228
- t24 = { touchAction: "pan-y" };
6229
- $[41] = t24;
6230
- } else t24 = $[41];
6253
+ if ($[38] !== t23) {
6254
+ t24 = cn("mt-1 overflow-y-auto scrollbar-thin scroll-touch", t23);
6255
+ $[38] = t23;
6256
+ $[39] = t24;
6257
+ } else t24 = $[39];
6231
6258
  let t25;
6232
- if ($[42] === Symbol.for("react.memo_cache_sentinel")) {
6233
- t25 = /* @__PURE__ */ jsx("div", {
6259
+ if ($[40] === Symbol.for("react.memo_cache_sentinel")) {
6260
+ t25 = { touchAction: "pan-y" };
6261
+ $[40] = t25;
6262
+ } else t25 = $[40];
6263
+ let t26;
6264
+ if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
6265
+ t26 = /* @__PURE__ */ jsx(PillMessageContent, {});
6266
+ $[41] = t26;
6267
+ } else t26 = $[41];
6268
+ let t27;
6269
+ if ($[42] !== t24) {
6270
+ t27 = /* @__PURE__ */ jsx("div", {
6234
6271
  className: "overflow-hidden",
6235
6272
  children: /* @__PURE__ */ jsx("div", {
6236
- className: "mt-2 max-h-80 sm:max-h-64 overflow-y-auto px-1 scrollbar-thin scroll-touch",
6237
- style: t24,
6273
+ className: t24,
6274
+ style: t25,
6238
6275
  onPointerDownCapture: _temp4$1,
6239
- children: /* @__PURE__ */ jsx(PillMessageContent, {})
6276
+ children: t26
6240
6277
  })
6241
6278
  });
6242
- $[42] = t25;
6243
- } else t25 = $[42];
6244
- let t26;
6245
- if ($[43] !== isCollapsed || $[44] !== t23) {
6246
- t26 = /* @__PURE__ */ jsx("div", {
6247
- className: t23,
6279
+ $[42] = t24;
6280
+ $[43] = t27;
6281
+ } else t27 = $[43];
6282
+ let t28;
6283
+ if ($[44] !== isCollapsed || $[45] !== t22 || $[46] !== t27) {
6284
+ t28 = /* @__PURE__ */ jsx("div", {
6285
+ className: t22,
6248
6286
  "aria-hidden": isCollapsed,
6249
- children: t25
6287
+ children: t27
6250
6288
  });
6251
- $[43] = isCollapsed;
6252
- $[44] = t23;
6253
- $[45] = t26;
6254
- } else t26 = $[45];
6255
- let t27;
6256
- if ($[46] !== t21 || $[47] !== t26 || $[48] !== t7) {
6257
- t27 = /* @__PURE__ */ jsxs("div", {
6258
- className: t7,
6259
- children: [t21, t26]
6260
- });
6261
- $[46] = t21;
6262
- $[47] = t26;
6263
- $[48] = t7;
6264
- $[49] = t27;
6265
- } else t27 = $[49];
6266
- return t27;
6289
+ $[44] = isCollapsed;
6290
+ $[45] = t22;
6291
+ $[46] = t27;
6292
+ $[47] = t28;
6293
+ } else t28 = $[47];
6294
+ let t29;
6295
+ if ($[48] !== t20 || $[49] !== t28 || $[50] !== t8) {
6296
+ t29 = /* @__PURE__ */ jsxs("div", {
6297
+ className: t8,
6298
+ children: [t20, t28]
6299
+ });
6300
+ $[48] = t20;
6301
+ $[49] = t28;
6302
+ $[50] = t8;
6303
+ $[51] = t29;
6304
+ } else t29 = $[51];
6305
+ return t29;
6267
6306
  };
6268
6307
  function _temp$3(a) {
6269
6308
  return a.status === "success";
@@ -7502,146 +7541,241 @@ function useVoiceBorderStatus() {
7502
7541
  /**
7503
7542
  * PromptBadge
7504
7543
  *
7505
- * Floating prompt suggestions that appear above the collapsed pill.
7506
- * Shows a compact list of available prompts that opens upward.
7544
+ * Intercom-style floating prompt bubbles that appear above the collapsed pill.
7545
+ * Shows up to MAX_PROMPT_BUBBLES in a triangular layout with staggered animations.
7546
+ *
7547
+ * Accessibility:
7548
+ * - Focus-visible rings for keyboard navigation
7549
+ * - Screen reader live region announces suggestions
7550
+ * - Touch-friendly dismiss targets on mobile
7507
7551
  */
7552
+ /** Container animation variants for staggered children */
7553
+ const containerVariants = {
7554
+ hidden: { opacity: 0 },
7555
+ visible: {
7556
+ opacity: 1,
7557
+ transition: {
7558
+ staggerChildren: .08,
7559
+ delayChildren: .05
7560
+ }
7561
+ },
7562
+ exit: {
7563
+ opacity: 0,
7564
+ transition: {
7565
+ staggerChildren: .03,
7566
+ staggerDirection: -1
7567
+ }
7568
+ }
7569
+ };
7570
+ /** Individual bubble animation variants */
7571
+ const bubbleVariants = {
7572
+ hidden: {
7573
+ opacity: 0,
7574
+ y: 10,
7575
+ scale: .9
7576
+ },
7577
+ visible: {
7578
+ opacity: 1,
7579
+ y: 0,
7580
+ scale: 1,
7581
+ transition: {
7582
+ type: "spring",
7583
+ stiffness: 400,
7584
+ damping: 25
7585
+ }
7586
+ },
7587
+ exit: {
7588
+ opacity: 0,
7589
+ y: 5,
7590
+ scale: .95,
7591
+ transition: { duration: .1 }
7592
+ }
7593
+ };
7594
+ /** Bubble button styles */
7595
+ const bubbleStyles = cn("flex items-center px-3 py-1.5", "bg-white dark:bg-zinc-800", "rounded-full", "shadow-lg shadow-black/10 dark:shadow-black/30", "border border-zinc-200/80 dark:border-zinc-700/80", "text-sm text-zinc-700 dark:text-zinc-200", "hover:bg-zinc-50 dark:hover:bg-zinc-700", "transition-colors duration-100", "whitespace-nowrap", "focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-1");
7596
+ /** Dismiss badge base styles (shared between mobile and desktop) */
7597
+ const dismissBadgeBaseStyles = cn("absolute -top-1.5 -right-1.5", "flex items-center justify-center", "rounded-full", "bg-zinc-100 dark:bg-zinc-700", "border border-zinc-200 dark:border-zinc-600", "text-zinc-400 dark:text-zinc-400", "hover:bg-zinc-200 dark:hover:bg-zinc-600", "hover:text-zinc-600 dark:hover:text-zinc-200", "shadow-sm", "transition-all duration-150", "focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500");
7508
7598
  /**
7509
- * Floating prompts above the pill.
7599
+ * Floating prompt bubbles above the pill.
7510
7600
  * Positioned absolutely above parent - parent should be relative.
7511
7601
  */
7512
7602
  const PromptBadge = (t0) => {
7513
- const $ = c(14);
7603
+ const $ = c(45);
7514
7604
  const { prompts, onSelect, className } = t0;
7515
- const [isExpanded, setIsExpanded] = useState(false);
7605
+ const [isDismissed, setIsDismissed] = useState(false);
7606
+ const { isMobile } = useMobileDetect();
7516
7607
  let t1;
7517
7608
  if ($[0] !== onSelect) {
7518
7609
  t1 = (prompt) => {
7519
- setIsExpanded(false);
7520
7610
  onSelect(prompt);
7521
7611
  };
7522
7612
  $[0] = onSelect;
7523
7613
  $[1] = t1;
7524
7614
  } else t1 = $[1];
7525
7615
  const handleSelect = t1;
7526
- if (prompts.length === 0) return null;
7527
- const firstPrompt = prompts[0];
7528
- const hasMore = prompts.length > 1;
7529
7616
  let t2;
7530
- if ($[2] !== className) {
7531
- t2 = cn("absolute bottom-full left-1/2 -translate-x-1/2 mb-2 z-20", className);
7532
- $[2] = className;
7533
- $[3] = t2;
7534
- } else t2 = $[3];
7617
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
7618
+ t2 = (e) => {
7619
+ e.stopPropagation();
7620
+ setIsDismissed(true);
7621
+ };
7622
+ $[2] = t2;
7623
+ } else t2 = $[2];
7624
+ const handleDismiss = t2;
7625
+ if (prompts.length === 0 || isDismissed) return null;
7626
+ let T0;
7627
+ let T1;
7628
+ let t10;
7629
+ let t11;
7630
+ let t12;
7631
+ let t13;
7632
+ let t14;
7535
7633
  let t3;
7536
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
7537
- t3 = () => setIsExpanded(false);
7538
- $[4] = t3;
7539
- } else t3 = $[4];
7540
7634
  let t4;
7541
- if ($[5] !== firstPrompt || $[6] !== handleSelect || $[7] !== hasMore || $[8] !== isExpanded || $[9] !== prompts) {
7542
- t4 = /* @__PURE__ */ jsx(AnimatePresence, {
7543
- mode: "wait",
7544
- children: !isExpanded ? /* @__PURE__ */ jsxs(motion.button, {
7545
- type: "button",
7546
- initial: {
7547
- opacity: 0,
7548
- y: 5
7549
- },
7550
- animate: {
7551
- opacity: 1,
7552
- y: 0
7553
- },
7554
- exit: {
7555
- opacity: 0,
7556
- y: 5
7557
- },
7558
- transition: { duration: .15 },
7559
- onClick: () => hasMore ? setIsExpanded(true) : handleSelect(firstPrompt),
7560
- onMouseEnter: () => hasMore && setIsExpanded(true),
7561
- className: cn("flex items-center gap-2 px-3 py-1.5", "bg-white dark:bg-zinc-800", "rounded-full", "shadow-lg shadow-black/10 dark:shadow-black/30", "border border-zinc-200/80 dark:border-zinc-700/80", "text-sm text-zinc-700 dark:text-zinc-200", "hover:bg-zinc-50 dark:hover:bg-zinc-700", "transition-colors duration-100", "whitespace-nowrap"),
7562
- children: [
7563
- /* @__PURE__ */ jsx("span", {
7564
- className: "text-zinc-400 dark:text-zinc-500",
7565
- children: "💬"
7566
- }),
7567
- /* @__PURE__ */ jsx("span", {
7568
- className: "max-w-[150px] truncate",
7569
- children: firstPrompt.name
7570
- }),
7571
- hasMore && /* @__PURE__ */ jsxs("span", {
7572
- className: "text-xs text-zinc-400 dark:text-zinc-500",
7573
- children: ["+", prompts.length - 1]
7574
- })
7575
- ]
7576
- }, "teaser") : /* @__PURE__ */ jsxs(motion.div, {
7577
- initial: {
7578
- opacity: 0,
7579
- y: 5,
7580
- scale: .95
7581
- },
7582
- animate: {
7583
- opacity: 1,
7584
- y: 0,
7585
- scale: 1
7586
- },
7587
- exit: {
7588
- opacity: 0,
7589
- y: 5,
7590
- scale: .95
7591
- },
7592
- transition: { duration: .15 },
7593
- className: cn("min-w-[200px] max-w-[280px]", "py-1.5", "bg-white dark:bg-zinc-800", "rounded-lg", "shadow-xl shadow-black/15 dark:shadow-black/40", "border border-zinc-200/80 dark:border-zinc-700/80", "overflow-hidden"),
7594
- children: [/* @__PURE__ */ jsx("div", {
7595
- className: "px-3 py-1.5 border-b border-zinc-100 dark:border-zinc-700/50",
7596
- children: /* @__PURE__ */ jsx("span", {
7597
- className: "text-xs font-medium text-zinc-400 dark:text-zinc-500 uppercase tracking-wide",
7598
- children: "Suggestions"
7599
- })
7600
- }), /* @__PURE__ */ jsx("div", {
7601
- className: "py-1 max-h-[280px] sm:max-h-[200px] overflow-y-auto scrollbar-thin scroll-touch",
7602
- children: prompts.map((prompt_0) => /* @__PURE__ */ jsx("button", {
7603
- type: "button",
7604
- onClick: () => handleSelect(prompt_0),
7605
- className: cn("w-full px-3 py-2 text-left", "hover:bg-zinc-50 dark:hover:bg-zinc-700/50", "transition-colors duration-100", "group"),
7606
- children: /* @__PURE__ */ jsxs("div", {
7607
- className: "flex items-start gap-2",
7608
- children: [/* @__PURE__ */ jsx("span", {
7609
- className: "text-zinc-400 dark:text-zinc-500 text-sm mt-0.5",
7610
- children: "💬"
7611
- }), /* @__PURE__ */ jsxs("div", {
7612
- className: "flex-1 min-w-0",
7613
- children: [/* @__PURE__ */ jsx("div", {
7614
- className: cn("text-sm font-medium truncate", "text-zinc-700 dark:text-zinc-200", "group-hover:text-zinc-900 dark:group-hover:text-white"),
7615
- children: prompt_0.name
7616
- }), prompt_0.description && /* @__PURE__ */ jsx("div", {
7617
- className: "text-xs text-zinc-500 dark:text-zinc-400 truncate mt-0.5",
7618
- children: prompt_0.description
7619
- })]
7620
- })]
7621
- })
7622
- }, prompt_0.name))
7635
+ let t5;
7636
+ let t6;
7637
+ let t7;
7638
+ let t8;
7639
+ let t9;
7640
+ if ($[3] !== className || $[4] !== handleSelect || $[5] !== isMobile || $[6] !== prompts) {
7641
+ const visiblePrompts = prompts.slice(0, MAX_PROMPT_BUBBLES);
7642
+ const t15$1 = isMobile ? "w-6 h-6" : "w-4 h-4";
7643
+ const t16$1 = isMobile ? "opacity-100 scale-100" : "opacity-0 group-hover:opacity-100 scale-75 group-hover:scale-100";
7644
+ let t17$1;
7645
+ if ($[21] !== t15$1 || $[22] !== t16$1) {
7646
+ t17$1 = cn(dismissBadgeBaseStyles, t15$1, t16$1);
7647
+ $[21] = t15$1;
7648
+ $[22] = t16$1;
7649
+ $[23] = t17$1;
7650
+ } else t17$1 = $[23];
7651
+ const dismissBadgeStyles = t17$1;
7652
+ if ($[24] !== className) {
7653
+ t13 = cn("absolute bottom-full left-1/2 -translate-x-1/2 mb-3 z-20", className);
7654
+ $[24] = className;
7655
+ $[25] = t13;
7656
+ } else t13 = $[25];
7657
+ t14 = /* @__PURE__ */ jsxs("div", {
7658
+ role: "status",
7659
+ "aria-live": "polite",
7660
+ className: "sr-only",
7661
+ children: [
7662
+ visiblePrompts.length,
7663
+ " suggestion",
7664
+ visiblePrompts.length !== 1 ? "s" : "",
7665
+ " available"
7666
+ ]
7667
+ });
7668
+ T1 = AnimatePresence;
7669
+ t12 = "wait";
7670
+ T0 = motion.div;
7671
+ t3 = "bubbles";
7672
+ t4 = containerVariants;
7673
+ t5 = "hidden";
7674
+ t6 = "visible";
7675
+ t7 = "exit";
7676
+ t8 = "flex items-end gap-2";
7677
+ t9 = "group";
7678
+ t10 = "Suggested prompts";
7679
+ t11 = visiblePrompts.map((prompt_0, index) => {
7680
+ return /* @__PURE__ */ jsxs("div", {
7681
+ className: cn("group relative", visiblePrompts.length === 3 && index === 1 && "mb-3"),
7682
+ children: [/* @__PURE__ */ jsx(motion.button, {
7683
+ type: "button",
7684
+ variants: bubbleVariants,
7685
+ onClick: () => handleSelect(prompt_0),
7686
+ className: bubbleStyles,
7687
+ title: prompt_0.description || prompt_0.name,
7688
+ children: /* @__PURE__ */ jsx("span", { children: prompt_0.name })
7689
+ }), /* @__PURE__ */ jsx("button", {
7690
+ type: "button",
7691
+ onClick: handleDismiss,
7692
+ className: dismissBadgeStyles,
7693
+ "aria-label": "Dismiss suggestions",
7694
+ children: /* @__PURE__ */ jsx(X, { size: isMobile ? 12 : 10 })
7623
7695
  })]
7624
- }, "menu")
7696
+ }, prompt_0.name);
7625
7697
  });
7626
- $[5] = firstPrompt;
7627
- $[6] = handleSelect;
7628
- $[7] = hasMore;
7629
- $[8] = isExpanded;
7630
- $[9] = prompts;
7631
- $[10] = t4;
7632
- } else t4 = $[10];
7633
- let t5;
7634
- if ($[11] !== t2 || $[12] !== t4) {
7635
- t5 = /* @__PURE__ */ jsx("div", {
7636
- className: t2,
7637
- onMouseLeave: t3,
7638
- children: t4
7698
+ $[3] = className;
7699
+ $[4] = handleSelect;
7700
+ $[5] = isMobile;
7701
+ $[6] = prompts;
7702
+ $[7] = T0;
7703
+ $[8] = T1;
7704
+ $[9] = t10;
7705
+ $[10] = t11;
7706
+ $[11] = t12;
7707
+ $[12] = t13;
7708
+ $[13] = t14;
7709
+ $[14] = t3;
7710
+ $[15] = t4;
7711
+ $[16] = t5;
7712
+ $[17] = t6;
7713
+ $[18] = t7;
7714
+ $[19] = t8;
7715
+ $[20] = t9;
7716
+ } else {
7717
+ T0 = $[7];
7718
+ T1 = $[8];
7719
+ t10 = $[9];
7720
+ t11 = $[10];
7721
+ t12 = $[11];
7722
+ t13 = $[12];
7723
+ t14 = $[13];
7724
+ t3 = $[14];
7725
+ t4 = $[15];
7726
+ t5 = $[16];
7727
+ t6 = $[17];
7728
+ t7 = $[18];
7729
+ t8 = $[19];
7730
+ t9 = $[20];
7731
+ }
7732
+ let t15;
7733
+ if ($[26] !== T0 || $[27] !== t10 || $[28] !== t11 || $[29] !== t3 || $[30] !== t4 || $[31] !== t5 || $[32] !== t6 || $[33] !== t7 || $[34] !== t8 || $[35] !== t9) {
7734
+ t15 = /* @__PURE__ */ jsx(T0, {
7735
+ variants: t4,
7736
+ initial: t5,
7737
+ animate: t6,
7738
+ exit: t7,
7739
+ className: t8,
7740
+ role: t9,
7741
+ "aria-label": t10,
7742
+ children: t11
7743
+ }, t3);
7744
+ $[26] = T0;
7745
+ $[27] = t10;
7746
+ $[28] = t11;
7747
+ $[29] = t3;
7748
+ $[30] = t4;
7749
+ $[31] = t5;
7750
+ $[32] = t6;
7751
+ $[33] = t7;
7752
+ $[34] = t8;
7753
+ $[35] = t9;
7754
+ $[36] = t15;
7755
+ } else t15 = $[36];
7756
+ let t16;
7757
+ if ($[37] !== T1 || $[38] !== t12 || $[39] !== t15) {
7758
+ t16 = /* @__PURE__ */ jsx(T1, {
7759
+ mode: t12,
7760
+ children: t15
7639
7761
  });
7640
- $[11] = t2;
7641
- $[12] = t4;
7642
- $[13] = t5;
7643
- } else t5 = $[13];
7644
- return t5;
7762
+ $[37] = T1;
7763
+ $[38] = t12;
7764
+ $[39] = t15;
7765
+ $[40] = t16;
7766
+ } else t16 = $[40];
7767
+ let t17;
7768
+ if ($[41] !== t13 || $[42] !== t14 || $[43] !== t16) {
7769
+ t17 = /* @__PURE__ */ jsxs("div", {
7770
+ className: t13,
7771
+ children: [t14, t16]
7772
+ });
7773
+ $[41] = t13;
7774
+ $[42] = t14;
7775
+ $[43] = t16;
7776
+ $[44] = t17;
7777
+ } else t17 = $[44];
7778
+ return t17;
7645
7779
  };
7646
7780
 
7647
7781
  //#endregion
@@ -7657,7 +7791,7 @@ const PromptBadge = (t0) => {
7657
7791
  * Horizontally scrollable list of compact prompt chips.
7658
7792
  */
7659
7793
  const PromptSuggestions = (t0) => {
7660
- const $ = c(20);
7794
+ const $ = c(19);
7661
7795
  const { prompts, onSelect, className } = t0;
7662
7796
  const scrollRef = useRef(null);
7663
7797
  let t1;
@@ -7701,32 +7835,21 @@ const PromptSuggestions = (t0) => {
7701
7835
  $[6] = t5;
7702
7836
  } else t5 = $[6];
7703
7837
  let t6;
7838
+ let t7;
7704
7839
  if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
7705
- t6 = /* @__PURE__ */ jsx("div", {
7706
- className: "flex items-center gap-1.5 mb-2",
7707
- children: /* @__PURE__ */ jsx("span", {
7708
- className: "text-xs text-white/40",
7709
- children: "Suggestions"
7710
- })
7711
- });
7840
+ t6 = cn("flex gap-2 overflow-x-auto scrollbar-hide", "pb-1 -mb-1");
7841
+ t7 = { touchAction: "pan-x" };
7712
7842
  $[7] = t6;
7713
- } else t6 = $[7];
7714
- let t7;
7715
- let t8;
7716
- if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
7717
- t7 = cn("flex gap-2 overflow-x-auto scrollbar-hide", "pb-1 -mb-1");
7718
- t8 = { touchAction: "pan-x" };
7719
7843
  $[8] = t7;
7720
- $[9] = t8;
7721
7844
  } else {
7845
+ t6 = $[7];
7722
7846
  t7 = $[8];
7723
- t8 = $[9];
7724
7847
  }
7725
- let t9;
7726
- if ($[10] !== handleClick || $[11] !== prompts) {
7727
- let t10$1;
7728
- if ($[13] !== handleClick) {
7729
- t10$1 = (prompt_0, index) => /* @__PURE__ */ jsx(motion.button, {
7848
+ let t8;
7849
+ if ($[9] !== handleClick || $[10] !== prompts) {
7850
+ let t9$1;
7851
+ if ($[12] !== handleClick) {
7852
+ t9$1 = (prompt_0, index) => /* @__PURE__ */ jsx(motion.button, {
7730
7853
  type: "button",
7731
7854
  initial: {
7732
7855
  opacity: 0,
@@ -7749,51 +7872,45 @@ const PromptSuggestions = (t0) => {
7749
7872
  onClick: () => handleClick(prompt_0),
7750
7873
  className: cn("flex-shrink-0", "px-2.5 py-1 rounded-full", "bg-white/10 hover:bg-white/20", "text-white/80 hover:text-white", "text-xs font-medium", "border border-white/10 hover:border-white/20", "transition-all duration-150", "cursor-pointer", "whitespace-nowrap"),
7751
7874
  title: prompt_0.description || prompt_0.name,
7752
- children: /* @__PURE__ */ jsxs("span", {
7753
- className: "flex items-center gap-1",
7754
- children: [/* @__PURE__ */ jsx("span", {
7755
- className: "opacity-60",
7756
- children: "💬"
7757
- }), prompt_0.name]
7758
- })
7875
+ children: prompt_0.name
7759
7876
  }, prompt_0.name);
7760
- $[13] = handleClick;
7761
- $[14] = t10$1;
7762
- } else t10$1 = $[14];
7763
- t9 = prompts.map(t10$1);
7764
- $[10] = handleClick;
7765
- $[11] = prompts;
7766
- $[12] = t9;
7767
- } else t9 = $[12];
7768
- let t10;
7769
- if ($[15] !== t9) {
7770
- t10 = /* @__PURE__ */ jsx("div", {
7877
+ $[12] = handleClick;
7878
+ $[13] = t9$1;
7879
+ } else t9$1 = $[13];
7880
+ t8 = prompts.map(t9$1);
7881
+ $[9] = handleClick;
7882
+ $[10] = prompts;
7883
+ $[11] = t8;
7884
+ } else t8 = $[11];
7885
+ let t9;
7886
+ if ($[14] !== t8) {
7887
+ t9 = /* @__PURE__ */ jsx("div", {
7771
7888
  ref: scrollRef,
7772
- className: t7,
7773
- style: t8,
7889
+ className: t6,
7890
+ style: t7,
7774
7891
  onPointerDownCapture: _temp$2,
7775
7892
  children: /* @__PURE__ */ jsx(AnimatePresence, {
7776
7893
  mode: "popLayout",
7777
- children: t9
7894
+ children: t8
7778
7895
  })
7779
7896
  });
7897
+ $[14] = t8;
7780
7898
  $[15] = t9;
7781
- $[16] = t10;
7782
- } else t10 = $[16];
7783
- let t11;
7784
- if ($[17] !== t10 || $[18] !== t5) {
7785
- t11 = /* @__PURE__ */ jsxs(motion.div, {
7899
+ } else t9 = $[15];
7900
+ let t10;
7901
+ if ($[16] !== t5 || $[17] !== t9) {
7902
+ t10 = /* @__PURE__ */ jsx(motion.div, {
7786
7903
  initial: t2,
7787
7904
  animate: t3,
7788
7905
  exit: t4,
7789
7906
  className: t5,
7790
- children: [t6, t10]
7907
+ children: t9
7791
7908
  });
7792
- $[17] = t10;
7793
- $[18] = t5;
7794
- $[19] = t11;
7795
- } else t11 = $[19];
7796
- return t11;
7909
+ $[16] = t5;
7910
+ $[17] = t9;
7911
+ $[18] = t10;
7912
+ } else t10 = $[18];
7913
+ return t10;
7797
7914
  };
7798
7915
  function _temp$2(e) {
7799
7916
  return e.stopPropagation();
@@ -7864,68 +7981,65 @@ function _temp$1(thread) {
7864
7981
  * Shows a typing cursor and scrolls to keep latest content visible.
7865
7982
  */
7866
7983
  const StreamingResponse = (t0) => {
7867
- const $ = c(13);
7868
- const { maxHeight: t1, className } = t0;
7984
+ const $ = c(15);
7985
+ const { maxHeight: t1, className, isFullScreen: t2 } = t0;
7869
7986
  const maxHeight = t1 === void 0 ? "8rem" : t1;
7987
+ const isFullScreen = t2 === void 0 ? false : t2;
7870
7988
  const streamingText = useStreamingText();
7871
7989
  if (!streamingText) return null;
7872
- let t2;
7990
+ let t3;
7873
7991
  if ($[0] !== className) {
7874
- t2 = cn("rounded-lg bg-white/5 border border-white/10 p-3", "overflow-y-auto scrollbar-thin scroll-touch", className);
7992
+ t3 = cn("rounded-lg bg-white/5 border border-white/10 p-3", "overflow-y-auto scrollbar-thin scroll-touch", "mb-1.5", className);
7875
7993
  $[0] = className;
7876
- $[1] = t2;
7877
- } else t2 = $[1];
7878
- let t3;
7879
- if ($[2] !== maxHeight) {
7880
- t3 = {
7881
- maxHeight,
7882
- touchAction: "pan-y"
7883
- };
7884
- $[2] = maxHeight;
7885
- $[3] = t3;
7886
- } else t3 = $[3];
7994
+ $[1] = t3;
7995
+ } else t3 = $[1];
7887
7996
  let t4;
7888
- if ($[4] !== streamingText) {
7889
- t4 = /* @__PURE__ */ jsx(PillMarkdown, {
7997
+ if ($[2] !== isFullScreen || $[3] !== maxHeight) {
7998
+ t4 = isFullScreen ? void 0 : { maxHeight };
7999
+ $[2] = isFullScreen;
8000
+ $[3] = maxHeight;
8001
+ $[4] = t4;
8002
+ } else t4 = $[4];
8003
+ const t5 = !isFullScreen;
8004
+ let t6;
8005
+ if ($[5] !== streamingText || $[6] !== t5) {
8006
+ t6 = /* @__PURE__ */ jsx(PillMarkdown, {
7890
8007
  content: streamingText,
7891
8008
  className: "text-white/90",
7892
- compact: true
8009
+ compact: t5
7893
8010
  });
7894
- $[4] = streamingText;
7895
- $[5] = t4;
7896
- } else t4 = $[5];
7897
- let t5;
7898
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
7899
- t5 = /* @__PURE__ */ jsx("span", { className: "inline-block w-0.5 h-4 bg-blue-400 ml-0.5 animate-pulse align-middle" });
8011
+ $[5] = streamingText;
7900
8012
  $[6] = t5;
7901
- } else t5 = $[6];
7902
- let t6;
7903
- if ($[7] !== t4) {
7904
- t6 = /* @__PURE__ */ jsxs("div", {
8013
+ $[7] = t6;
8014
+ } else t6 = $[7];
8015
+ let t7;
8016
+ if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
8017
+ t7 = /* @__PURE__ */ jsx("span", { className: "inline-block w-0.5 h-4 bg-blue-400 ml-0.5 animate-pulse align-middle" });
8018
+ $[8] = t7;
8019
+ } else t7 = $[8];
8020
+ let t8;
8021
+ if ($[9] !== t6) {
8022
+ t8 = /* @__PURE__ */ jsxs("div", {
7905
8023
  className: "relative",
7906
- children: [t4, t5]
8024
+ children: [t6, t7]
7907
8025
  });
7908
- $[7] = t4;
7909
- $[8] = t6;
7910
- } else t6 = $[8];
7911
- let t7;
7912
- if ($[9] !== t2 || $[10] !== t3 || $[11] !== t6) {
7913
- t7 = /* @__PURE__ */ jsx("div", {
7914
- className: t2,
7915
- style: t3,
7916
- onPointerDownCapture: _temp5,
7917
- children: t6
8026
+ $[9] = t6;
8027
+ $[10] = t8;
8028
+ } else t8 = $[10];
8029
+ let t9;
8030
+ if ($[11] !== t3 || $[12] !== t4 || $[13] !== t8) {
8031
+ t9 = /* @__PURE__ */ jsx("div", {
8032
+ className: t3,
8033
+ style: t4,
8034
+ children: t8
7918
8035
  });
7919
- $[9] = t2;
7920
- $[10] = t3;
7921
- $[11] = t6;
7922
- $[12] = t7;
7923
- } else t7 = $[12];
7924
- return t7;
8036
+ $[11] = t3;
8037
+ $[12] = t4;
8038
+ $[13] = t8;
8039
+ $[14] = t9;
8040
+ } else t9 = $[14];
8041
+ return t9;
7925
8042
  };
7926
- function _temp5(e) {
7927
- return e.stopPropagation();
7928
- }
7929
8043
 
7930
8044
  //#endregion
7931
8045
  //#region src/components/pill/ToolStatusBorder.tsx
@@ -8096,6 +8210,8 @@ function useToolBorderStatus(hasRunningAction, lastActionStatus) {
8096
8210
  const AgentPill = ({ position = "bottom-center", showVoiceButton = false, isVoiceActive = false, onVoiceToggle, autoCollapse = true, className }) => {
8097
8211
  const { messages, isRunning, hasMessages, currentAction, lastCompletedAction, summary, voice, tools, isVoiceActive: agentVoiceActive } = useAgent();
8098
8212
  const hasPendingApproval = useHasPendingToolCalls();
8213
+ const pendingToolCalls = usePendingToolCalls();
8214
+ const threadRuntime = useThreadRuntime();
8099
8215
  const agentUI = useOptionalAgentUI();
8100
8216
  const userMode = agentUI?.userMode ?? "collapsed";
8101
8217
  const setUserMode = agentUI?.setUserMode ?? (() => {});
@@ -8108,6 +8224,9 @@ const AgentPill = ({ position = "bottom-center", showVoiceButton = false, isVoic
8108
8224
  };
8109
8225
  const setDragPosition = agentUI?.setPosition ?? (() => {});
8110
8226
  const resetPosition = agentUI?.resetPosition ?? (() => {});
8227
+ const isFullScreen = agentUI?.isFullScreen ?? false;
8228
+ const enterFullScreen = agentUI?.enterFullScreen ?? (() => {});
8229
+ const exitFullScreen = agentUI?.exitFullScreen ?? (() => {});
8111
8230
  const dragControls = useDragControls();
8112
8231
  const constraintsRef = useRef(null);
8113
8232
  const autoCollapseTimeoutRef = useRef(null);
@@ -8228,15 +8347,52 @@ const AgentPill = ({ position = "bottom-center", showVoiceButton = false, isVoic
8228
8347
  }
8229
8348
  }
8230
8349
  } catch (err) {
8231
- console.error("[AgentPill] Failed to get prompt:", err);
8350
+ debugLog("AgentPill", "Failed to get prompt", err);
8232
8351
  }
8233
8352
  }, [
8234
8353
  getPrompt,
8235
8354
  composerRuntime,
8236
8355
  setUserMode
8237
8356
  ]);
8357
+ const handleElicitationDeny = useCallback((reason) => {
8358
+ if (pendingToolCalls.length > 0) {
8359
+ const firstTool = pendingToolCalls[0];
8360
+ const message = formatToolDenialWithReason(reason);
8361
+ resolvePendingToolCall(threadRuntime, firstTool.messageId, firstTool.toolCallId, message);
8362
+ }
8363
+ }, [pendingToolCalls, threadRuntime]);
8238
8364
  const borderRadius = mode === "collapsed" || mode === "hovered" ? PILL_BORDER_RADIUS.pill : PILL_BORDER_RADIUS.rounded;
8239
8365
  const isExpanded_0 = mode === "composing" || mode === "active" || mode === "expanded";
8366
+ const { handlers: pinchHandlers } = usePinchGesture({
8367
+ onPinchOut: () => {
8368
+ if (isExpanded_0 && !isFullScreen && !isVoiceModeActive) enterFullScreen();
8369
+ },
8370
+ onPinchIn: () => {
8371
+ if (isFullScreen) exitFullScreen();
8372
+ },
8373
+ enabled: isMobile && (isExpanded_0 || isFullScreen)
8374
+ });
8375
+ const [isComposerReady, setComposerReady] = useState(false);
8376
+ useEffect(() => {
8377
+ if (isExpanded_0) {
8378
+ const timer = setTimeout(() => setComposerReady(true), 200);
8379
+ return () => {
8380
+ clearTimeout(timer);
8381
+ setComposerReady(false);
8382
+ };
8383
+ } else setComposerReady(false);
8384
+ }, [isExpanded_0]);
8385
+ useEffect(() => {
8386
+ if (!isFullScreen) return;
8387
+ const handleKeyDown = (e) => {
8388
+ if (e.key === "Escape") {
8389
+ e.preventDefault();
8390
+ exitFullScreen();
8391
+ }
8392
+ };
8393
+ window.addEventListener("keydown", handleKeyDown);
8394
+ return () => window.removeEventListener("keydown", handleKeyDown);
8395
+ }, [isFullScreen, exitFullScreen]);
8240
8396
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
8241
8397
  ref: constraintsRef,
8242
8398
  className: "fixed inset-0 pointer-events-none"
@@ -8264,7 +8420,8 @@ const AgentPill = ({ position = "bottom-center", showVoiceButton = false, isVoic
8264
8420
  damping: 30
8265
8421
  },
8266
8422
  className: cn("relative", isExpanded_0 && "cursor-grab active:cursor-grabbing"),
8267
- style: { touchAction: isExpanded_0 ? "none" : "auto" },
8423
+ style: { touchAction: isExpanded_0 || isFullScreen ? "none" : "auto" },
8424
+ ...pinchHandlers,
8268
8425
  children: [
8269
8426
  mode === "collapsed" && prompts.length > 0 && /* @__PURE__ */ jsx(PromptBadge, {
8270
8427
  prompts,
@@ -8281,49 +8438,78 @@ const AgentPill = ({ position = "bottom-center", showVoiceButton = false, isVoic
8281
8438
  children: /* @__PURE__ */ jsxs(PillContainer, {
8282
8439
  mode,
8283
8440
  onModeChange: handleModeChange,
8441
+ isFullScreen,
8284
8442
  children: [
8285
8443
  (isVoiceModeActive || isExpanded_0) && /* @__PURE__ */ jsxs("div", {
8286
8444
  className: "flex items-center justify-between mb-1 -mt-1",
8287
8445
  children: [/* @__PURE__ */ jsx("div", {
8288
8446
  className: "flex items-center text-white/30 p-1 -m-1 cursor-grab active:cursor-grabbing",
8289
- onPointerDown: (e) => dragControls.start(e),
8447
+ onPointerDown: (e_0) => dragControls.start(e_0),
8290
8448
  "aria-label": ARIA_LABELS.dragHandle,
8291
8449
  role: "button",
8292
8450
  tabIndex: 0,
8293
8451
  children: /* @__PURE__ */ jsx(GripHorizontal, { className: "h-4 w-4 sm:h-3 sm:w-3" })
8294
8452
  }), /* @__PURE__ */ jsxs("div", {
8295
8453
  className: "flex items-center gap-2 sm:gap-1",
8296
- children: [/* @__PURE__ */ jsx(ApprovalModeIndicator, {}), /* @__PURE__ */ jsx("button", {
8297
- type: "button",
8298
- onClick: isVoiceModeActive ? handleVoiceToggle : handleCollapse,
8299
- className: cn("min-w-[44px] min-h-[44px] sm:min-w-[28px] sm:min-h-[28px]", "flex items-center justify-center", "p-2 sm:p-1 rounded-full", "hover:bg-white/10 active:bg-white/20", "text-white/40 hover:text-white/70", "transition-colors duration-150"),
8300
- "aria-label": isVoiceModeActive ? ARIA_LABELS.endVoiceSession : ARIA_LABELS.closeAssistant,
8301
- children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5 sm:h-3.5 sm:w-3.5" })
8302
- })]
8454
+ children: [
8455
+ !isMobile && !isVoiceModeActive && /* @__PURE__ */ jsx("button", {
8456
+ type: "button",
8457
+ onClick: isFullScreen ? exitFullScreen : enterFullScreen,
8458
+ className: cn("min-w-7 min-h-7", "flex items-center justify-center", "p-1 rounded-full", "hover:bg-white/10 active:bg-white/20", "text-white/40 hover:text-white/70", "transition-colors duration-150"),
8459
+ "aria-label": isFullScreen ? ARIA_LABELS.collapseFullScreen : ARIA_LABELS.expandFullScreen,
8460
+ children: isFullScreen ? /* @__PURE__ */ jsx(Minimize, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(Expand, { className: "h-3.5 w-3.5" })
8461
+ }),
8462
+ /* @__PURE__ */ jsx(ApprovalModeIndicator, {}),
8463
+ /* @__PURE__ */ jsx("button", {
8464
+ type: "button",
8465
+ onClick: isVoiceModeActive ? handleVoiceToggle : isFullScreen ? exitFullScreen : handleCollapse,
8466
+ className: cn("min-w-11 min-h-11 sm:min-w-7 sm:min-h-7", "flex items-center justify-center", "p-2 sm:p-1 rounded-full", "hover:bg-white/10 active:bg-white/20", "text-white/40 hover:text-white/70", "transition-colors duration-150"),
8467
+ "aria-label": isVoiceModeActive ? ARIA_LABELS.endVoiceSession : isFullScreen ? ARIA_LABELS.collapseFullScreen : ARIA_LABELS.closeAssistant,
8468
+ children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5 sm:h-3.5 sm:w-3.5" })
8469
+ })
8470
+ ]
8303
8471
  })]
8304
8472
  }),
8305
- /* @__PURE__ */ jsx(AnimatePresence, {
8473
+ !isFullScreen && /* @__PURE__ */ jsx(AnimatePresence, {
8306
8474
  mode: "wait",
8307
8475
  children: isVoiceModeActive && /* @__PURE__ */ jsx(PillVoice, { onEnd: handleVoiceToggle }, "voice-mode")
8308
8476
  }),
8309
- !isVoiceModeActive && mode === "composing" && !hasMessages && /* @__PURE__ */ jsx(WelcomeMessage, {}),
8310
- !isVoiceModeActive && mode === "expanded" && !isRunning && summary && /* @__PURE__ */ jsx(SummaryBlock, {
8311
- summary,
8312
- isSuccess: !lastCompletedAction?.error
8313
- }),
8314
- !isVoiceModeActive && (mode === "active" || mode === "expanded") && isRunning && /* @__PURE__ */ jsx(StreamingResponse, {}),
8315
- !isVoiceModeActive && (mode === "active" || mode === "expanded") && /* @__PURE__ */ jsx(PillToolsSection, { defaultCollapsed: mode === "active" }),
8316
- !isVoiceModeActive && mode === "expanded" && !isRunning && !summary && /* @__PURE__ */ jsx(IdleIndicator, {}),
8317
- !isVoiceModeActive && (mode === "composing" || mode === "expanded") && !isRunning && !hasPendingApproval && prompts.length > 0 && /* @__PURE__ */ jsx(PromptSuggestions, {
8318
- prompts,
8319
- onSelect: handlePromptSelect
8320
- }),
8321
- !isVoiceModeActive && (mode === "active" || mode === "expanded") && hasPendingApproval && /* @__PURE__ */ jsx(PillApprovalBar, {}),
8322
- !isVoiceModeActive && (mode === "active" || mode === "expanded") && isRunning && !hasPendingApproval && /* @__PURE__ */ jsx(ActivityIndicator, {}),
8323
- !isVoiceModeActive && (mode === "composing" || mode === "active" || mode === "expanded") && !hasPendingApproval && /* @__PURE__ */ jsx(PillComposer, {
8324
- showVoiceButton: showVoiceButton || !!voice?.isSupported,
8325
- isVoiceActive,
8326
- onVoiceToggle: handleVoiceToggle
8477
+ !isVoiceModeActive && /* @__PURE__ */ jsxs("div", {
8478
+ className: "flex flex-col",
8479
+ children: [
8480
+ mode === "composing" && !hasMessages && /* @__PURE__ */ jsx(WelcomeMessage, {}),
8481
+ mode === "expanded" && !isRunning && summary && /* @__PURE__ */ jsx(SummaryBlock, {
8482
+ summary,
8483
+ isSuccess: !lastCompletedAction?.error,
8484
+ isFullScreen
8485
+ }),
8486
+ (mode === "active" || mode === "expanded") && isRunning && /* @__PURE__ */ jsx(StreamingResponse, { isFullScreen }),
8487
+ mode === "expanded" && !isRunning && !summary && /* @__PURE__ */ jsx(IdleIndicator, {}),
8488
+ (mode === "active" || mode === "expanded") && /* @__PURE__ */ jsx(PillToolsSection, {
8489
+ defaultCollapsed: mode === "active" && !isFullScreen,
8490
+ isFullScreen
8491
+ }),
8492
+ !isFullScreen && (mode === "composing" || mode === "expanded") && !isRunning && !hasPendingApproval && prompts.length > 0 && /* @__PURE__ */ jsx(PromptSuggestions, {
8493
+ prompts,
8494
+ onSelect: handlePromptSelect
8495
+ }),
8496
+ (mode === "active" || mode === "expanded") && hasPendingApproval && /* @__PURE__ */ jsx(ElicitationButtonBar, {}),
8497
+ (mode === "active" || mode === "expanded") && isRunning && !hasPendingApproval && /* @__PURE__ */ jsx(ActivityIndicator, {}),
8498
+ /* @__PURE__ */ jsx(AnimatePresence, { children: isComposerReady && (mode === "composing" || mode === "active" || mode === "expanded") && /* @__PURE__ */ jsx(motion.div, {
8499
+ initial: { opacity: 0 },
8500
+ animate: { opacity: 1 },
8501
+ exit: { opacity: 0 },
8502
+ transition: { duration: .15 },
8503
+ className: "mt-1.5",
8504
+ children: /* @__PURE__ */ jsx(PillComposer, {
8505
+ showVoiceButton: showVoiceButton || !!voice?.isSupported,
8506
+ isVoiceActive,
8507
+ onVoiceToggle: handleVoiceToggle,
8508
+ isEliciting: hasPendingApproval,
8509
+ onElicitationSubmit: handleElicitationDeny
8510
+ })
8511
+ }) })
8512
+ ]
8327
8513
  })
8328
8514
  ]
8329
8515
  })
@@ -8536,7 +8722,7 @@ function _temp(messages) {
8536
8722
  *
8537
8723
  * Contains the compiled CSS for the web component standalone build.
8538
8724
  */
8539
- const WEBMCP_STYLES = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@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-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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-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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tool-border-angle:0deg}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-500:oklch(69.6% .17 162.48);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-600:oklch(55.8% .288 302.321);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--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);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--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%;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;-webkit-text-decoration: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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--radius:.75rem;--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklch,var(--ring),transparent 50%)}}body{background-color:var(--background);color:var(--foreground)}}@layer components{.app-shell{z-index:0;background-color:var(--background);background-image:radial-gradient(80% 60% at -10% -10%,oklch(82% .15 270/.15),#0000),radial-gradient(60% 50% at 110% 10%,oklch(85% .1 220/.12),#0000),radial-gradient(50% 45% at 50% 120%,oklch(95% .02 250/.08),#0000);position:relative}.dark .app-shell{background-image:radial-gradient(80% 60% at -10% -10%,oklch(55% .14 270/.25),#0000),radial-gradient(60% 50% at 110% 15%,oklch(60% .12 220/.22),#0000),radial-gradient(50% 45% at 50% 120%,oklch(35% .04 250/.16),#0000)}.app-shell:before,.app-shell:after{content:\"\";pointer-events:none;filter:blur(32px);opacity:.6;z-index:-1;border-radius:9999px;position:absolute;inset:auto}.app-shell:before{background:radial-gradient(60% 60% at 40% 40%,oklch(80% .12 270/.3),#0000);width:260px;height:260px;top:-60px;left:-80px}.app-shell:after{background:radial-gradient(60% 60% at 60% 60%,oklch(84% .1 220/.25),#0000);width:300px;height:300px;bottom:-80px;right:-60px}.toolbar-surface{border-top:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-surface-top{border-bottom:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface-top{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface-top{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-inner{justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.toolbar-card{background:var(--card);justify-content:space-between;align-items:center;gap:.5rem;display:flex}@supports (color:color-mix(in lab, red, red)){.toolbar-card{background:color-mix(in oklch,var(--card),transparent 60%)}}.toolbar-card{border:1px solid var(--border);border-radius:.75rem;padding:.5rem .75rem}.toolbar-group{align-items:center;gap:.25rem;display:flex}.btn-toolbar-primary{background:linear-gradient(to right,var(--primary),var(--primary));border-radius:.75rem;align-items:center;gap:.5rem;height:2.25rem;padding:0 .75rem;display:flex}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 95%),color-mix(in oklch,var(--primary),transparent 90%))}}.btn-toolbar-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 80%)}}.btn-toolbar-primary{transition:all .2s}.btn-toolbar-primary:hover{background:linear-gradient(to right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary:hover{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,var(--primary),var(--primary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 70%)}}.btn-toolbar-icon-primary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 80%),color-mix(in oklch,var(--primary),transparent 70%))}}.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,var(--secondary),var(--secondary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 90%),color-mix(in oklch,var(--secondary),transparent 80%))}}.btn-toolbar-icon-secondary{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{border:1px solid color-mix(in oklch,var(--secondary),transparent 70%)}}.btn-toolbar-icon-secondary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,var(--secondary),var(--secondary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 80%),color-mix(in oklch,var(--secondary),transparent 70%))}}.badge-compact{height:1.25rem;padding:0 .5rem;font-size:10px}.badge-mini{height:1rem;padding:0 .375rem;font-size:10px}@keyframes shimmer-bg{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,#0000,#ffffff1a,#0000) 0 0/1000px 100%;animation:3s linear infinite shimmer-bg}.animate-shimmer{animation:2s linear infinite shimmer}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(var(--primary),.1)}50%{box-shadow:0 0 30px rgba(var(--primary),.2)}}.pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes gradient-x{0%,to{background-position:0%}50%{background-position:100%}}.animate-gradient-x{animation:8s ease-in-out infinite gradient-x}.gradient-text{background:linear-gradient(to right,var(--foreground),var(--foreground))}@supports (color:color-mix(in lab, red, red)){.gradient-text{background:linear-gradient(to right,var(--foreground),color-mix(in oklch,var(--foreground),transparent 30%))}}.gradient-text{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.glass{background:color-mix(in oklch,var(--background),transparent 50%)}}.glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.glass{border:1px solid color-mix(in oklch,var(--border),transparent 50%)}}.tool-card{transition:all .3s ease-out}.tool-card:hover{transform:scale(1.02);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb{background-color:color-mix(in oklch,var(--primary),transparent 80%)}}.scrollbar-thin::-webkit-scrollbar-thumb{border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:color-mix(in oklch,var(--primary),transparent 70%)}}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.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-\\[1px\\]{inset:-1px}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.top-1\\.5{top:calc(var(--spacing)*1.5)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\\[50\\%\\]{top:50%}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-1\\/2,.left-\\[50\\%\\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.row-start-1{grid-row-start:1}.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-1{margin:calc(var(--spacing)*-1)}.m-0{margin:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.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)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-1\\.5{margin-right:calc(var(--spacing)*1.5)}.-mb-1{margin-bottom:calc(var(--spacing)*-1)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-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-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.size-\\[34px\\]{width:34px;height:34px}.size-full{width:100%;height:100%}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-4\\.5{height:calc(var(--spacing)*4.5)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-auto{height:auto}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-\\[80dvh\\]{max-height:80dvh}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[280px\\]{max-height:280px}.min-h-\\[44px\\]{min-height:44px}.min-h-screen{min-height:100vh}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-4\\.5{width:calc(var(--spacing)*4.5)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-11{width:calc(var(--spacing)*11)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-24{max-width:calc(var(--spacing)*24)}.max-w-32{max-width:calc(var(--spacing)*32)}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[150px\\]{max-width:150px}.max-w-\\[280px\\]{max-width:280px}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[44px\\]{min-width:44px}.min-w-\\[200px\\]{min-width:200px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-m-20{scroll-margin:calc(var(--spacing)*20)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.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-1{gap:calc(var(--spacing)*1)}.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(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-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-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)))}.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}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[14px\\]{border-radius:14px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.\\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.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-2{border-top-style:var(--tw-border-style);border-top-width:2px}.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-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-amber-500{border-color:var(--color-amber-500)}.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\\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/50{border-color:color-mix(in oklab,var(--color-amber-500)50%,transparent)}}.border-blue-500\\/20{border-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/20{border-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.border-border{border-color:var(--border)}.border-emerald-500\\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\\/20{border-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.border-foreground\\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\\/20{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.border-green-500\\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/20{border-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\\/20{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\\/20{border-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.border-red-500\\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,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-red-500\\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/50{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.border-transparent{border-color:#0000}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.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-zinc-100{border-color:var(--color-zinc-100)}.border-zinc-200\\/80{border-color:#e4e4e7cc}@supports (color:color-mix(in lab, red, red)){.border-zinc-200\\/80{border-color:color-mix(in oklab,var(--color-zinc-200)80%,transparent)}}.border-zinc-600{border-color:var(--color-zinc-600)}.border-zinc-700\\/50{border-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.border-zinc-700\\/50{border-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-amber-500{background-color:var(--color-amber-500)}.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-amber-500\\/20{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-amber-500\\/30{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/30{background-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.bg-background{background-color:var(--background)}.bg-black{background-color:var(--color-black)}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-400\\/60{background-color:#05df7299}@supports (color:color-mix(in lab, red, red)){.bg-green-400\\/60{background-color:color-mix(in oklab,var(--color-green-400)60%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\\/15{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\\/15{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-primary{background-color:var(--primary)}.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-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-zinc-700\\/50{background-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.bg-zinc-700\\/50{background-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}.bg-zinc-800\\/50{background-color:#27272a80}@supports (color:color-mix(in lab, red, red)){.bg-zinc-800\\/50{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-zinc-900\\/50{background-color:#18181b80}@supports (color:color-mix(in lab, red, red)){.bg-zinc-900\\/50{background-color:color-mix(in oklab,var(--color-zinc-900)50%,transparent)}}.bg-zinc-900\\/80{background-color:#18181bcc}@supports (color:color-mix(in lab, red, red)){.bg-zinc-900\\/80{background-color:color-mix(in oklab,var(--color-zinc-900)80%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--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))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--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))}.fill-foreground{fill:var(--foreground)}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.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-6{padding-inline:calc(var(--spacing)*6)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.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-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-1{padding-right:calc(var(--spacing)*1)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[10px\\]{font-size:10px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[17px\\]{font-size:17px}.text-\\[19px\\]{font-size:19px}.text-\\[21px\\]{font-size:21px}.text-\\[25px\\]{font-size:25px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-background{color:var(--background)}.text-blue-400{color:var(--color-blue-400)}.text-blue-400\\/60{color:#54a2ff99}@supports (color:color-mix(in lab, red, red)){.text-blue-400\\/60{color:color-mix(in oklab,var(--color-blue-400)60%,transparent)}}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground{color:var(--foreground)}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-300{color:var(--color-red-300)}.text-red-300\\/80{color:#ffa3a3cc}@supports (color:color-mix(in lab, red, red)){.text-red-300\\/80{color:color-mix(in oklab,var(--color-red-300)80%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-white\\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-700{color:var(--color-zinc-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.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-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)}.shadow-xs{--tw-shadow:0 1px 2px 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)}.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)}.shadow-black\\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/10{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)10%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-black\\/15{--tw-shadow-color:#00000026}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/15{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)15%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.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-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;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-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:text-zinc-900:is(:where(.group):hover *){color:var(--color-zinc-900)}}.placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.placeholder\\:text-white\\/40::placeholder{color:#fff6}@supports (color:color-mix(in lab, red, red)){.placeholder\\:text-white\\/40::placeholder{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.first\\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}.first\\:rounded-tl-lg:first-child{border-top-left-radius:var(--radius)}.first\\:border-t:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.last\\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\\:rounded-tr-lg:last-child{border-top-right-radius:var(--radius)}.last\\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.empty\\:hidden:empty{display:none}.focus-within\\:border-white\\/20:focus-within{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.focus-within\\:border-white\\/20:focus-within{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.focus-within\\:bg-white\\/15:focus-within{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.focus-within\\:bg-white\\/15:focus-within{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}@media (hover:hover){.hover\\:border-amber-500:hover{border-color:var(--color-amber-500)}.hover\\:border-red-500\\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.hover\\:border-red-500\\/50:hover{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.hover\\:border-white\\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\\:border-white\\/20:hover{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:\\!bg-white:hover{background-color:var(--color-white)!important}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\\:bg-amber-500\\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-amber-500\\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.hover\\:bg-amber-500\\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-amber-500\\/30:hover{background-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.hover\\:bg-destructive\\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\\:bg-destructive\\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\\:bg-muted-foreground\\/15:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted-foreground\\/15:hover{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.hover\\:bg-primary\\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\\:bg-red-500\\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/20:hover{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.hover\\:bg-red-500\\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\\:bg-zinc-700:hover{background-color:var(--color-zinc-700)}.hover\\:bg-zinc-700\\/50:hover{background-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-zinc-700\\/50:hover{background-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}.hover\\:bg-zinc-800\\/50:hover{background-color:#27272a80}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-zinc-800\\/50:hover{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-primary\\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-primary\\/80:hover{color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:text-red-200:hover{color:var(--color-red-200)}.hover\\:text-red-300:hover{color:var(--color-red-300)}.hover\\:text-red-400:hover{color:var(--color-red-400)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:text-white\\/50:hover{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/50:hover{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\\:text-white\\/60:hover{color:#fff9}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/60:hover{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.hover\\:text-white\\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/70:hover{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-75:hover{opacity:.75}.hover\\:opacity-100:hover{opacity:1}}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.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-2:focus-visible{--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-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\\:ring-ring:focus-visible,.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\\:ring-white\\/30:focus-visible{--tw-ring-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-white\\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-transparent:focus-visible{--tw-ring-offset-color:transparent}.focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:border-amber-500:active{border-color:var(--color-amber-500)}.active\\:border-red-500\\/50:active{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.active\\:border-red-500\\/50:active{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.active\\:bg-amber-500\\/30:active{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.active\\:bg-amber-500\\/30:active{background-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.active\\:bg-red-500\\/20:active{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.active\\:bg-red-500\\/20:active{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.active\\:bg-white\\/20:active{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.active\\:bg-white\\/20:active{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.active\\:text-red-400:active{color:var(--color-red-400)}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}@media (min-width:40rem){.sm\\:flex{display:flex}.sm\\:h-3{height:calc(var(--spacing)*3)}.sm\\:h-3\\.5{height:calc(var(--spacing)*3.5)}.sm\\:h-4{height:calc(var(--spacing)*4)}.sm\\:h-7{height:calc(var(--spacing)*7)}.sm\\:max-h-32{max-height:calc(var(--spacing)*32)}.sm\\:max-h-48{max-height:calc(var(--spacing)*48)}.sm\\:max-h-64{max-height:calc(var(--spacing)*64)}.sm\\:max-h-\\[200px\\]{max-height:200px}.sm\\:min-h-\\[28px\\]{min-height:28px}.sm\\:w-3{width:calc(var(--spacing)*3)}.sm\\:w-3\\.5{width:calc(var(--spacing)*3.5)}.sm\\:w-4{width:calc(var(--spacing)*4)}.sm\\:w-7{width:calc(var(--spacing)*7)}.sm\\:max-w-3xl{max-width:var(--container-3xl)}.sm\\:max-w-16{max-width:calc(var(--spacing)*16)}.sm\\:max-w-24{max-width:calc(var(--spacing)*24)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-md{max-width:var(--container-md)}.sm\\:min-w-\\[28px\\]{min-width:28px}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:gap-1{gap:calc(var(--spacing)*1)}.sm\\:gap-1\\.5{gap:calc(var(--spacing)*1.5)}.sm\\:p-1{padding:calc(var(--spacing)*1)}.sm\\:p-1\\.5{padding:calc(var(--spacing)*1.5)}.sm\\:px-3{padding-inline:calc(var(--spacing)*3)}.sm\\:py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.sm\\:text-left{text-align:left}.sm\\:text-\\[10px\\]{font-size:10px}.sm\\:text-\\[11px\\]{font-size:11px}.sm\\:opacity-0{opacity:0}@media (hover:hover){.sm\\:group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}}.dark\\:border-input:is(.dark *){border-color:var(--input)}.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.dark\\:border-zinc-700\\/50:is(.dark *){border-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.dark\\:border-zinc-700\\/50:is(.dark *){border-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}.dark\\:border-zinc-700\\/80:is(.dark *){border-color:#3f3f46cc}@supports (color:color-mix(in lab, red, red)){.dark\\:border-zinc-700\\/80:is(.dark *){border-color:color-mix(in oklab,var(--color-zinc-700)80%,transparent)}}.dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.dark\\:bg-zinc-800:is(.dark *){background-color:var(--color-zinc-800)}.dark\\:stroke-\\[2\\.5px\\]:is(.dark *){stroke-width:2.5px}.dark\\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\\:text-zinc-200:is(.dark *){color:var(--color-zinc-200)}.dark\\:text-zinc-400:is(.dark *){color:var(--color-zinc-400)}.dark\\:text-zinc-500:is(.dark *){color:var(--color-zinc-500)}.dark\\:shadow-black\\/30:is(.dark *){--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.dark\\:shadow-black\\/30:is(.dark *){--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)30%,transparent)var(--tw-shadow-alpha),transparent)}}.dark\\:shadow-black\\/40:is(.dark *){--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.dark\\:shadow-black\\/40:is(.dark *){--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)40%,transparent)var(--tw-shadow-alpha),transparent)}}@media (hover:hover){.dark\\:group-hover\\:text-white:is(.dark *):is(:where(.group):hover *){color:var(--color-white)}.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.dark\\:hover\\:bg-zinc-700:is(.dark *):hover{background-color:var(--color-zinc-700)}.dark\\:hover\\:bg-zinc-700\\/50:is(.dark *):hover{background-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-zinc-700\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}}.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\]\\:text-background svg{color:var(--background)}.\\[\\&_svg\\]\\:text-black svg{color:var(--color-black)}@media (hover:hover){.hover\\:\\[\\&_svg\\]\\:text-destructive:hover svg{color:var(--destructive)}}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\\[\\&\\:last-child\\>td\\:first-child\\]\\:rounded-bl-lg:last-child>td:first-child{border-bottom-left-radius:var(--radius)}.\\[\\&\\:last-child\\>td\\:last-child\\]\\:rounded-br-lg:last-child>td:last-child{border-bottom-right-radius:var(--radius)}.only\\:\\[\\&\\>\\#attachment-tile\\]\\:size-24:only-child>#attachment-tile{width:calc(var(--spacing)*24);height:calc(var(--spacing)*24)}.\\[\\&\\>a\\]\\:text-xs>a{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\>a\\]\\:no-underline>a{text-decoration-line:none}.\\[\\&\\>button\\]\\:rounded-full>button{border-radius:3.40282e38px}.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:color-mix(in oklab,var(--foreground)60%,transparent)}}.\\[\\&\\>button\\]\\:p-1>button{padding:calc(var(--spacing)*1)}.\\[\\&\\>button\\]\\:opacity-100>button{opacity:1}.\\[\\&\\>button\\]\\:\\!ring-0>button{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}@media (hover:hover){.\\[\\&\\>button\\]\\:hover\\:\\[\\&_svg\\]\\:text-destructive>button:hover svg{color:var(--destructive)}}.\\[\\&\\>li\\]\\:mt-0\\.5>li{margin-top:calc(var(--spacing)*.5)}.\\[\\&\\>li\\]\\:mt-1>li{margin-top:calc(var(--spacing)*1)}.\\[\\&\\>span\\]\\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\[align\\=center\\]\\]\\:text-center[align=center]{text-align:center}.\\[\\&\\[align\\=right\\]\\]\\:text-right[align=right]{text-align:right}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.85}}@keyframes smooth-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gradient-shift{0%,to{transform:translate(0%)translateY(0%)}25%{transform:translate(100%)translateY(100%)}50%{transform:translate(100%)translateY(0%)}75%{transform:translate(0%)translateY(100%)}}@keyframes float{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(-30px)translate(20px)}66%{transform:translateY(20px)translate(-20px)}}@keyframes float-delayed{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(30px)translate(-30px)}66%{transform:translateY(-20px)translate(20px)}}.tool-card-transition{transition:all .4s cubic-bezier(.34,1.56,.64,1)}.tool-card-smooth{transition:all .35s cubic-bezier(.4,0,.2,1)}.animate-fadeInUp{opacity:0;animation:.5s ease-out forwards fadeInUp}.animate-gradient-shift{background-size:200% 200%;animation:20s ease-in-out infinite gradient-shift}.animate-float-slow{animation:20s ease-in-out infinite float}.animate-float-delayed{animation:25s ease-in-out 5s infinite float-delayed}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes tool-border-rotate{0%{--tool-border-angle:0deg}to{--tool-border-angle:360deg}}@property --tool-border-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}.tool-border-calling{background:conic-gradient(from var(--tool-border-angle),transparent 0deg,transparent 60deg,#3b82f680 90deg,#60a5fab3 120deg,#93c5fd80 150deg,transparent 180deg,transparent 360deg);animation:1.5s linear infinite tool-border-rotate}.tool-border-success{background:#22c55e66;box-shadow:0 0 12px #22c55e4d,inset 0 0 8px #22c55e1a}.tool-border-error{background:#ef444466;box-shadow:0 0 12px #ef44444d,inset 0 0 8px #ef44441a}@keyframes pulse-success{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.animate-pulse-success{animation:.6s ease-out pulse-success}.animate-shake{animation:.3s ease-out shake}@keyframes aui-pulse{50%{opacity:.5}}:where(.aui-md[data-status=running]):empty:after,:where(.aui-md[data-status=running])>:where(:not(ol):not(ul):not(pre)):last-child:after,:where(.aui-md[data-status=running])>pre:last-child code:after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child):after{--aui-content:\"●\";content:var(--aui-content);margin-left:.25rem;margin-right:.25rem;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;animation:2s cubic-bezier(.4,0,.6,1) infinite aui-pulse}.glass-pill{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0f172ad9;border:1px solid #ffffff0f;box-shadow:0 4px 16px #0003,inset 0 .5px #ffffff14}.glass-pill:before{content:\"\";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(#ffffff0a 0%,#0000 40%);position:absolute;inset:0}.glass-pill:after{display:none}.glass-pill-collapsed{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0f172ad9;border:1px solid #ffffff0f;box-shadow:0 2px 8px #0003,inset 0 .5px #ffffff14}.glass-pill-collapsed:before,.glass-pill-collapsed:after{display:none}.glass-pill-hovered{-webkit-backdrop-filter:blur(16px)saturate(140%);background:#0f172acc;border:1px solid #ffffff0f;box-shadow:0 2px 12px #0000002e}.glass-pill-hovered:before,.glass-pill-hovered:after{display:none}@keyframes glass-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.glass-shimmer{background:linear-gradient(90deg,#ffffff14 0%,#ffffff26 50%,#ffffff14 100%) 0 0/200% 100%;animation:4s ease-in-out infinite glass-shimmer}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#fff3 transparent}.scrollbar-thin::-webkit-scrollbar{width:4px;height:4px}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:9999px}.scrollbar-thin::-webkit-scrollbar-track{background-color:#0000}.scroll-touch{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media (hover:none){.scrollbar-thin{scrollbar-width:none}.scrollbar-thin::-webkit-scrollbar{display:none}}.scroll-fade-y{-webkit-mask-image:linear-gradient(#0000,#000 8px calc(100% - 8px),#0000);mask-image:linear-gradient(#0000,#000 8px calc(100% - 8px),#0000)}.pb-safe{padding-bottom:env(safe-area-inset-bottom,0px)}.mb-safe{margin-bottom:env(safe-area-inset-bottom,0px)}.bottom-safe{bottom:max(1rem,env(safe-area-inset-bottom,0px))}@supports (padding-bottom:env(safe-area-inset-bottom)){.pill-safe-bottom{padding-bottom:calc(env(safe-area-inset-bottom,0px) + .5rem)}}@property --tw-border-spacing-x{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:\"<length>\";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-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@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-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-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
8725
+ const WEBMCP_STYLES = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@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-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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-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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tool-border-angle:0deg}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-600:oklch(55.8% .288 302.321);--color-slate-900:oklch(20.8% .042 265.755);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--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);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--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%;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;-webkit-text-decoration: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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--radius:.75rem;--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklch,var(--ring),transparent 50%)}}body{background-color:var(--background);color:var(--foreground)}}@layer components{.app-shell{z-index:0;background-color:var(--background);background-image:radial-gradient(80% 60% at -10% -10%,oklch(82% .15 270/.15),#0000),radial-gradient(60% 50% at 110% 10%,oklch(85% .1 220/.12),#0000),radial-gradient(50% 45% at 50% 120%,oklch(95% .02 250/.08),#0000);position:relative}.dark .app-shell{background-image:radial-gradient(80% 60% at -10% -10%,oklch(55% .14 270/.25),#0000),radial-gradient(60% 50% at 110% 15%,oklch(60% .12 220/.22),#0000),radial-gradient(50% 45% at 50% 120%,oklch(35% .04 250/.16),#0000)}.app-shell:before,.app-shell:after{content:\"\";pointer-events:none;filter:blur(32px);opacity:.6;z-index:-1;border-radius:9999px;position:absolute;inset:auto}.app-shell:before{background:radial-gradient(60% 60% at 40% 40%,oklch(80% .12 270/.3),#0000);width:260px;height:260px;top:-60px;left:-80px}.app-shell:after{background:radial-gradient(60% 60% at 60% 60%,oklch(84% .1 220/.25),#0000);width:300px;height:300px;bottom:-80px;right:-60px}.toolbar-surface{border-top:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-surface-top{border-bottom:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface-top{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface-top{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-inner{justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.toolbar-card{background:var(--card);justify-content:space-between;align-items:center;gap:.5rem;display:flex}@supports (color:color-mix(in lab, red, red)){.toolbar-card{background:color-mix(in oklch,var(--card),transparent 60%)}}.toolbar-card{border:1px solid var(--border);border-radius:.75rem;padding:.5rem .75rem}.toolbar-group{align-items:center;gap:.25rem;display:flex}.btn-toolbar-primary{background:linear-gradient(to right,var(--primary),var(--primary));border-radius:.75rem;align-items:center;gap:.5rem;height:2.25rem;padding:0 .75rem;display:flex}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 95%),color-mix(in oklch,var(--primary),transparent 90%))}}.btn-toolbar-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 80%)}}.btn-toolbar-primary{transition:all .2s}.btn-toolbar-primary:hover{background:linear-gradient(to right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary:hover{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,var(--primary),var(--primary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 70%)}}.btn-toolbar-icon-primary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 80%),color-mix(in oklch,var(--primary),transparent 70%))}}.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,var(--secondary),var(--secondary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 90%),color-mix(in oklch,var(--secondary),transparent 80%))}}.btn-toolbar-icon-secondary{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{border:1px solid color-mix(in oklch,var(--secondary),transparent 70%)}}.btn-toolbar-icon-secondary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,var(--secondary),var(--secondary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 80%),color-mix(in oklch,var(--secondary),transparent 70%))}}.badge-compact{height:1.25rem;padding:0 .5rem;font-size:10px}.badge-mini{height:1rem;padding:0 .375rem;font-size:10px}@keyframes shimmer-bg{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,#0000,#ffffff1a,#0000) 0 0/1000px 100%;animation:3s linear infinite shimmer-bg}.animate-shimmer{animation:2s linear infinite shimmer}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(var(--primary),.1)}50%{box-shadow:0 0 30px rgba(var(--primary),.2)}}.pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes gradient-x{0%,to{background-position:0%}50%{background-position:100%}}.animate-gradient-x{animation:8s ease-in-out infinite gradient-x}.gradient-text{background:linear-gradient(to right,var(--foreground),var(--foreground))}@supports (color:color-mix(in lab, red, red)){.gradient-text{background:linear-gradient(to right,var(--foreground),color-mix(in oklch,var(--foreground),transparent 30%))}}.gradient-text{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.glass{background:color-mix(in oklch,var(--background),transparent 50%)}}.glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.glass{border:1px solid color-mix(in oklch,var(--border),transparent 50%)}}.tool-card{transition:all .3s ease-out}.tool-card:hover{transform:scale(1.02);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb{background-color:color-mix(in oklch,var(--primary),transparent 80%)}}.scrollbar-thin::-webkit-scrollbar-thumb{border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:color-mix(in oklch,var(--primary),transparent 70%)}}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.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-\\[1px\\]{inset:-1px}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-1\\.5{top:calc(var(--spacing)*-1.5)}.top-1\\.5{top:calc(var(--spacing)*1.5)}.top-1\\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-\\[50\\%\\]{top:50%}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-right-1{right:calc(var(--spacing)*-1)}.-right-1\\.5{right:calc(var(--spacing)*-1.5)}.right-0{right:calc(var(--spacing)*0)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-4{right:calc(var(--spacing)*4)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-1\\/2,.left-\\[50\\%\\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.row-start-1{grid-row-start:1}.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-1{margin:calc(var(--spacing)*-1)}.m-0{margin:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\\.5{margin-top:calc(var(--spacing)*2.5)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-1\\.5{margin-right:calc(var(--spacing)*1.5)}.-mb-1{margin-bottom:calc(var(--spacing)*-1)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-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-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.size-\\[34px\\]{width:34px;height:34px}.size-full{width:100%;height:100%}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-4\\.5{height:calc(var(--spacing)*4.5)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-auto{height:auto}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing)*24)}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-\\[30vh\\]{max-height:30vh}.max-h-\\[80dvh\\]{max-height:80dvh}.max-h-\\[80vh\\]{max-height:80vh}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-11{min-height:calc(var(--spacing)*11)}.min-h-screen{min-height:100vh}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-4\\.5{width:calc(var(--spacing)*4.5)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-11{width:calc(var(--spacing)*11)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-24{max-width:calc(var(--spacing)*24)}.max-w-32{max-width:calc(var(--spacing)*32)}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-7{min-width:calc(var(--spacing)*7)}.min-w-11{min-width:calc(var(--spacing)*11)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-m-20{scroll-margin:calc(var(--spacing)*20)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.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(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-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-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)))}.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}.rounded{border-radius:.25rem}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[14px\\]{border-radius:14px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.\\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.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-2{border-top-style:var(--tw-border-style);border-top-width:2px}.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-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.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\\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/50{border-color:color-mix(in oklab,var(--color-amber-500)50%,transparent)}}.border-blue-500\\/20{border-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/20{border-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.border-blue-500\\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/30{border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.border-border{border-color:var(--border)}.border-foreground\\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\\/20{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\\/20{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\\/20{border-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.border-transparent{border-color:#0000}.border-white\\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.border-white\\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-white\\/8{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\\/8{border-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.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-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-200\\/80{border-color:#e4e4e7cc}@supports (color:color-mix(in lab, red, red)){.border-zinc-200\\/80{border-color:color-mix(in oklab,var(--color-zinc-200)80%,transparent)}}.border-zinc-600{border-color:var(--color-zinc-600)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-amber-500{background-color:var(--color-amber-500)}.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-amber-500\\/20{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-background{background-color:var(--background)}.bg-black{background-color:var(--color-black)}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-400\\/60{background-color:#05df7299}@supports (color:color-mix(in lab, red, red)){.bg-green-400\\/60{background-color:color-mix(in oklab,var(--color-green-400)60%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\\/15{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\\/15{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-primary{background-color:var(--primary)}.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-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\\/8{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-white\\/8{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.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\\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\\/90{background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-700\\/50{background-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.bg-zinc-700\\/50{background-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--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))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--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))}.fill-foreground{fill:var(--foreground)}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.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-6{padding-inline:calc(var(--spacing)*6)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.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-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-6{padding-left:calc(var(--spacing)*6)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-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-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[17px\\]{font-size:17px}.text-\\[19px\\]{font-size:19px}.text-\\[21px\\]{font-size:21px}.text-\\[25px\\]{font-size:25px}.leading-\\[21px\\]{--tw-leading:21px;line-height:21px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-background{color:var(--background)}.text-blue-400{color:var(--color-blue-400)}.text-blue-400\\/60{color:#54a2ff99}@supports (color:color-mix(in lab, red, red)){.text-blue-400\\/60{color:color-mix(in oklab,var(--color-blue-400)60%,transparent)}}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground{color:var(--foreground)}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.text-white\\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-700{color:var(--color-zinc-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.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-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-xs{--tw-shadow:0 1px 2px 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)}.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)}.shadow-black\\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/10{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)10%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.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-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;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-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:scale-100:is(:where(.group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.placeholder\\:text-white\\/40::placeholder{color:#fff6}@supports (color:color-mix(in lab, red, red)){.placeholder\\:text-white\\/40::placeholder{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.first\\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}.first\\:rounded-tl-lg:first-child{border-top-left-radius:var(--radius)}.first\\:border-t:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.last\\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\\:rounded-tr-lg:last-child{border-top-right-radius:var(--radius)}.last\\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.empty\\:hidden:empty{display:none}.focus-within\\:border-white\\/15:focus-within{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.focus-within\\:border-white\\/15:focus-within{border-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.focus-within\\:bg-white\\/10:focus-within{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.focus-within\\:bg-white\\/10:focus-within{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}@media (hover:hover){.hover\\:border-amber-500:hover{border-color:var(--color-amber-500)}.hover\\:border-red-500\\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.hover\\:border-red-500\\/50:hover{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.hover\\:border-white\\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\\:border-white\\/20:hover{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:\\!bg-white:hover{background-color:var(--color-white)!important}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\\:bg-amber-500\\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-amber-500\\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.hover\\:bg-amber-500\\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-amber-500\\/30:hover{background-color:color-mix(in oklab,var(--color-amber-500)30%,transparent)}}.hover\\:bg-destructive\\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\\:bg-destructive\\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\\:bg-muted-foreground\\/15:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted-foreground\\/15:hover{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.hover\\:bg-primary\\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\\:bg-red-500\\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/10:hover{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.hover\\:bg-red-500\\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/20:hover{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.hover\\:bg-red-500\\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/15:hover{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:bg-white\\/30:hover{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/30:hover{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\\:bg-white\\/95:hover{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/95:hover{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.hover\\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\\:bg-zinc-700:hover{background-color:var(--color-zinc-700)}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-primary\\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-primary\\/80:hover{color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:text-red-200:hover{color:var(--color-red-200)}.hover\\:text-red-300:hover{color:var(--color-red-300)}.hover\\:text-red-400:hover{color:var(--color-red-400)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:text-white\\/50:hover{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/50:hover{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\\:text-white\\/60:hover{color:#fff9}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/60:hover{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.hover\\:text-white\\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/70:hover{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.hover\\:text-white\\/80:hover{color:#fffc}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/80:hover{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\\:text-zinc-600:hover{color:var(--color-zinc-600)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-75:hover{opacity:.75}.hover\\:opacity-100:hover{opacity:1}}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.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-2:focus-visible{--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-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\\:ring-ring:focus-visible,.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\\:ring-white\\/30:focus-visible{--tw-ring-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-white\\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-transparent:focus-visible{--tw-ring-offset-color:transparent}.focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-white\\/15:active{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.active\\:bg-white\\/15:active{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.active\\:bg-white\\/20:active{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.active\\:bg-white\\/20:active{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}@media (min-width:40rem){.sm\\:flex{display:flex}.sm\\:h-3{height:calc(var(--spacing)*3)}.sm\\:h-3\\.5{height:calc(var(--spacing)*3.5)}.sm\\:h-4{height:calc(var(--spacing)*4)}.sm\\:h-7{height:calc(var(--spacing)*7)}.sm\\:max-h-24{max-height:calc(var(--spacing)*24)}.sm\\:max-h-32{max-height:calc(var(--spacing)*32)}.sm\\:max-h-48{max-height:calc(var(--spacing)*48)}.sm\\:min-h-7{min-height:calc(var(--spacing)*7)}.sm\\:w-3{width:calc(var(--spacing)*3)}.sm\\:w-3\\.5{width:calc(var(--spacing)*3.5)}.sm\\:w-4{width:calc(var(--spacing)*4)}.sm\\:w-7{width:calc(var(--spacing)*7)}.sm\\:max-w-3xl{max-width:var(--container-3xl)}.sm\\:max-w-16{max-width:calc(var(--spacing)*16)}.sm\\:max-w-24{max-width:calc(var(--spacing)*24)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-md{max-width:var(--container-md)}.sm\\:min-w-7{min-width:calc(var(--spacing)*7)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:gap-1{gap:calc(var(--spacing)*1)}.sm\\:gap-1\\.5{gap:calc(var(--spacing)*1.5)}.sm\\:p-1{padding:calc(var(--spacing)*1)}.sm\\:p-1\\.5{padding:calc(var(--spacing)*1.5)}.sm\\:px-2{padding-inline:calc(var(--spacing)*2)}.sm\\:py-1{padding-block:calc(var(--spacing)*1)}.sm\\:text-left{text-align:left}.sm\\:opacity-0{opacity:0}@media (hover:hover){.sm\\:group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}}.dark\\:border-input:is(.dark *){border-color:var(--input)}.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.dark\\:border-zinc-600:is(.dark *){border-color:var(--color-zinc-600)}.dark\\:border-zinc-700\\/80:is(.dark *){border-color:#3f3f46cc}@supports (color:color-mix(in lab, red, red)){.dark\\:border-zinc-700\\/80:is(.dark *){border-color:color-mix(in oklab,var(--color-zinc-700)80%,transparent)}}.dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.dark\\:bg-zinc-700:is(.dark *){background-color:var(--color-zinc-700)}.dark\\:bg-zinc-800:is(.dark *){background-color:var(--color-zinc-800)}.dark\\:stroke-\\[2\\.5px\\]:is(.dark *){stroke-width:2.5px}.dark\\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\\:text-zinc-200:is(.dark *){color:var(--color-zinc-200)}.dark\\:text-zinc-400:is(.dark *){color:var(--color-zinc-400)}.dark\\:shadow-black\\/30:is(.dark *){--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.dark\\:shadow-black\\/30:is(.dark *){--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)30%,transparent)var(--tw-shadow-alpha),transparent)}}@media (hover:hover){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.dark\\:hover\\:bg-zinc-600:is(.dark *):hover{background-color:var(--color-zinc-600)}.dark\\:hover\\:bg-zinc-700:is(.dark *):hover{background-color:var(--color-zinc-700)}.dark\\:hover\\:text-zinc-200:is(.dark *):hover{color:var(--color-zinc-200)}}.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\]\\:text-background svg{color:var(--background)}.\\[\\&_svg\\]\\:text-black svg{color:var(--color-black)}@media (hover:hover){.hover\\:\\[\\&_svg\\]\\:text-destructive:hover svg{color:var(--destructive)}}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\\[\\&\\:last-child\\>td\\:first-child\\]\\:rounded-bl-lg:last-child>td:first-child{border-bottom-left-radius:var(--radius)}.\\[\\&\\:last-child\\>td\\:last-child\\]\\:rounded-br-lg:last-child>td:last-child{border-bottom-right-radius:var(--radius)}.only\\:\\[\\&\\>\\#attachment-tile\\]\\:size-24:only-child>#attachment-tile{width:calc(var(--spacing)*24);height:calc(var(--spacing)*24)}.\\[\\&\\>a\\]\\:text-xs>a{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\>a\\]\\:no-underline>a{text-decoration-line:none}.\\[\\&\\>button\\]\\:rounded-full>button{border-radius:3.40282e38px}.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:color-mix(in oklab,var(--foreground)60%,transparent)}}.\\[\\&\\>button\\]\\:p-1>button{padding:calc(var(--spacing)*1)}.\\[\\&\\>button\\]\\:opacity-100>button{opacity:1}.\\[\\&\\>button\\]\\:\\!ring-0>button{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}@media (hover:hover){.\\[\\&\\>button\\]\\:hover\\:\\[\\&_svg\\]\\:text-destructive>button:hover svg{color:var(--destructive)}}.\\[\\&\\>li\\]\\:mt-0\\.5>li{margin-top:calc(var(--spacing)*.5)}.\\[\\&\\>li\\]\\:mt-1>li{margin-top:calc(var(--spacing)*1)}.\\[\\&\\>span\\]\\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\[align\\=center\\]\\]\\:text-center[align=center]{text-align:center}.\\[\\&\\[align\\=right\\]\\]\\:text-right[align=right]{text-align:right}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.85}}@keyframes smooth-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gradient-shift{0%,to{transform:translate(0%)translateY(0%)}25%{transform:translate(100%)translateY(100%)}50%{transform:translate(100%)translateY(0%)}75%{transform:translate(0%)translateY(100%)}}@keyframes float{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(-30px)translate(20px)}66%{transform:translateY(20px)translate(-20px)}}@keyframes float-delayed{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(30px)translate(-30px)}66%{transform:translateY(-20px)translate(20px)}}.tool-card-transition{transition:all .4s cubic-bezier(.34,1.56,.64,1)}.tool-card-smooth{transition:all .35s cubic-bezier(.4,0,.2,1)}.animate-fadeInUp{opacity:0;animation:.5s ease-out forwards fadeInUp}.animate-gradient-shift{background-size:200% 200%;animation:20s ease-in-out infinite gradient-shift}.animate-float-slow{animation:20s ease-in-out infinite float}.animate-float-delayed{animation:25s ease-in-out 5s infinite float-delayed}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes tool-border-rotate{0%{--tool-border-angle:0deg}to{--tool-border-angle:360deg}}@property --tool-border-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}.tool-border-calling{background:conic-gradient(from var(--tool-border-angle),transparent 0deg,transparent 60deg,#3b82f680 90deg,#60a5fab3 120deg,#93c5fd80 150deg,transparent 180deg,transparent 360deg);animation:1.5s linear infinite tool-border-rotate}.tool-border-success{background:#22c55e66;box-shadow:0 0 12px #22c55e4d,inset 0 0 8px #22c55e1a}.tool-border-error{background:#ef444466;box-shadow:0 0 12px #ef44444d,inset 0 0 8px #ef44441a}@keyframes pulse-success{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.animate-pulse-success{animation:.6s ease-out pulse-success}.animate-shake{animation:.3s ease-out shake}@keyframes aui-pulse{50%{opacity:.5}}:where(.aui-md[data-status=running]):empty:after,:where(.aui-md[data-status=running])>:where(:not(ol):not(ul):not(pre)):last-child:after,:where(.aui-md[data-status=running])>pre:last-child code:after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child):after{--aui-content:\"●\";content:var(--aui-content);margin-left:.25rem;margin-right:.25rem;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;animation:2s cubic-bezier(.4,0,.6,1) infinite aui-pulse}.glass-pill{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0f172ad9;border:1px solid #ffffff0f;box-shadow:0 4px 16px #0003,inset 0 .5px #ffffff14}.glass-pill:before{content:\"\";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(#ffffff0a 0%,#0000 40%);position:absolute;inset:0}.glass-pill:after{display:none}.glass-pill-collapsed{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0f172ad9;border:1px solid #ffffff0f;box-shadow:0 2px 8px #0003,inset 0 .5px #ffffff14}.glass-pill-collapsed:before,.glass-pill-collapsed:after{display:none}.glass-pill-hovered{-webkit-backdrop-filter:blur(16px)saturate(140%);background:#0f172acc;border:1px solid #ffffff0f;box-shadow:0 2px 12px #0000002e}.glass-pill-hovered:before,.glass-pill-hovered:after{display:none}@keyframes glass-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.glass-shimmer{background:linear-gradient(90deg,#ffffff14 0%,#ffffff26 50%,#ffffff14 100%) 0 0/200% 100%;animation:4s ease-in-out infinite glass-shimmer}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#fff3 transparent}.scrollbar-thin::-webkit-scrollbar{width:4px;height:4px}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:9999px}.scrollbar-thin::-webkit-scrollbar-track{background-color:#0000}.scroll-touch{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media (hover:none){.scrollbar-thin{scrollbar-width:none}.scrollbar-thin::-webkit-scrollbar{display:none}}.scroll-fade-y{-webkit-mask-image:linear-gradient(#0000,#000 8px calc(100% - 8px),#0000);mask-image:linear-gradient(#0000,#000 8px calc(100% - 8px),#0000)}.pb-safe{padding-bottom:env(safe-area-inset-bottom,0px)}.mb-safe{margin-bottom:env(safe-area-inset-bottom,0px)}.bottom-safe{bottom:max(1rem,env(safe-area-inset-bottom,0px))}@supports (padding-bottom:env(safe-area-inset-bottom)){.pill-safe-bottom{padding-bottom:calc(env(safe-area-inset-bottom,0px) + .5rem)}}@property --tw-border-spacing-x{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:\"<length>\";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-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}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@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-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-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
8540
8726
  /**
8541
8727
  * Inject the WebMCP styles into the document head.
8542
8728
  * This is called automatically when registering the web component.