@usecrow/ui 0.1.72 → 0.1.74

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.cjs CHANGED
@@ -146,6 +146,12 @@ function useChat({
146
146
  const pendingClientTools = [];
147
147
  abortControllerRef.current = new AbortController();
148
148
  try {
149
+ if (typeof window !== "undefined" && !window.__crow_page_context) {
150
+ for (let i = 0; i < 10; i++) {
151
+ await new Promise((r) => setTimeout(r, 200));
152
+ if (window.__crow_page_context) break;
153
+ }
154
+ }
149
155
  const identityToken = window.__crow_identity_token;
150
156
  const response = await fetch(`${apiUrl}/api/chat/message`, {
151
157
  method: "POST",
@@ -2379,6 +2385,13 @@ function useCopilotStyles2() {
2379
2385
  const context = React3.useContext(CopilotStyleContext);
2380
2386
  return context?.styles ?? DEFAULT_COPILOT_STYLES;
2381
2387
  }
2388
+ function useActiveStyles() {
2389
+ const copilotContext = React3.useContext(CopilotStyleContext);
2390
+ const widgetContext = React3.useContext(WidgetStyleContext);
2391
+ if (copilotContext) return copilotContext.styles;
2392
+ if (widgetContext) return widgetContext.styles;
2393
+ return DEFAULT_COPILOT_STYLES;
2394
+ }
2382
2395
  var PASSTHROUGH_KEYS = /* @__PURE__ */ new Set(["Escape", "Tab"]);
2383
2396
  function ShadowContainer({
2384
2397
  children,
@@ -2916,6 +2929,7 @@ function ReasoningTrace({
2916
2929
  ] }) });
2917
2930
  }
2918
2931
  function WaitingIndicator() {
2932
+ const mutedColor = useActiveStyles().colors.text + "80";
2919
2933
  const [messageIndex, setMessageIndex] = React3.useState(
2920
2934
  () => Math.floor(Math.random() * THINKING_MESSAGES.length)
2921
2935
  );
@@ -2926,7 +2940,7 @@ function WaitingIndicator() {
2926
2940
  return () => clearInterval(interval);
2927
2941
  }, []);
2928
2942
  const message = THINKING_MESSAGES[messageIndex] + "...";
2929
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-flex crow-items-center crow-gap-1.5 crow-text-xs crow-text-gray-500", children: [
2943
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-flex crow-items-center crow-gap-1.5 crow-text-xs", style: { color: mutedColor }, children: [
2930
2944
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-flex crow-items-center crow-justify-center crow-w-4 crow-h-4", children: /* @__PURE__ */ jsxRuntime.jsx(ShimmeringContent, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Brain, { className: "crow-w-3.5 crow-h-3.5" }) }) }),
2931
2945
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-font-medium", children: /* @__PURE__ */ jsxRuntime.jsx(ShimmeringContent, { children: message }) })
2932
2946
  ] });
@@ -2935,6 +2949,8 @@ function ThinkingBlock({
2935
2949
  thinking,
2936
2950
  isComplete
2937
2951
  }) {
2952
+ const themeColors = useActiveStyles().colors;
2953
+ const mutedColor = themeColors.text + "80";
2938
2954
  const [isExpanded, setIsExpanded] = React3.useState(!isComplete);
2939
2955
  const [messageIndex, setMessageIndex] = React3.useState(
2940
2956
  () => Math.floor(Math.random() * THINKING_MESSAGES.length)
@@ -2956,7 +2972,8 @@ function ThinkingBlock({
2956
2972
  "button",
2957
2973
  {
2958
2974
  onClick: () => setIsExpanded(!isExpanded),
2959
- className: `crow-flex crow-items-center crow-gap-1.5 crow-select-none crow-transition-colors ${isInProgress ? "crow-text-gray-500" : "crow-text-gray-600 hover:crow-text-gray-800"} crow-cursor-pointer`,
2975
+ className: "crow-flex crow-items-center crow-gap-1.5 crow-select-none crow-transition-colors crow-cursor-pointer",
2976
+ style: { color: mutedColor },
2960
2977
  children: [
2961
2978
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-flex crow-items-center crow-justify-center crow-w-4 crow-h-4", children: isInProgress ? /* @__PURE__ */ jsxRuntime.jsx(ShimmeringContent, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Brain, { className: "crow-w-3.5 crow-h-3.5" }) }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Brain, { className: "crow-w-3.5 crow-h-3.5" }) }),
2962
2979
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-font-medium", children: isInProgress ? /* @__PURE__ */ jsxRuntime.jsx(ShimmeringContent, { children: message }) : "Thought" }),
@@ -2981,10 +2998,11 @@ function ThinkingBlock({
2981
2998
  exit: { height: 0, opacity: 0 },
2982
2999
  transition: { duration: 0.15 },
2983
3000
  className: "crow-overflow-hidden",
2984
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-border-l-2 crow-border-gray-200 crow-pl-3 crow-ml-2", children: /* @__PURE__ */ jsxRuntime.jsx(
3001
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-border-l-2 crow-pl-3 crow-ml-2", style: { borderColor: themeColors.border }, children: /* @__PURE__ */ jsxRuntime.jsx(
2985
3002
  "div",
2986
3003
  {
2987
- className: `crow-text-xs crow-leading-relaxed crow-whitespace-pre-wrap ${isComplete ? "crow-text-gray-500" : "crow-text-gray-600"}`,
3004
+ className: "crow-text-xs crow-leading-relaxed crow-whitespace-pre-wrap",
3005
+ style: { color: mutedColor },
2988
3006
  children: thinking
2989
3007
  }
2990
3008
  ) })
@@ -3014,6 +3032,8 @@ function ToolCallBlock({
3014
3032
  toolRenderers,
3015
3033
  onToolConsent
3016
3034
  }) {
3035
+ const themeColors = useActiveStyles().colors;
3036
+ const mutedColor = themeColors.text + "80";
3017
3037
  const [expanded, setExpanded] = React3.useState(false);
3018
3038
  const hasArgs = Object.keys(toolCall.arguments || {}).length > 0;
3019
3039
  const isExecuting = toolCall.status === "executing";
@@ -3027,13 +3047,15 @@ function ToolCallBlock({
3027
3047
  /* @__PURE__ */ jsxRuntime.jsxs(
3028
3048
  "div",
3029
3049
  {
3030
- className: `crow-flex crow-items-center crow-gap-1.5 crow-select-none crow-transition-colors ${isExecuting || isAwaitingConsent ? "crow-text-gray-500" : "crow-text-gray-600"}`,
3050
+ className: "crow-flex crow-items-center crow-gap-1.5 crow-select-none crow-transition-colors",
3051
+ style: { color: mutedColor },
3031
3052
  children: [
3032
3053
  hasArgs && !isAwaitingConsent && /* @__PURE__ */ jsxRuntime.jsx(
3033
3054
  "button",
3034
3055
  {
3035
3056
  onClick: () => setExpanded(!expanded),
3036
- className: "crow-cursor-pointer hover:crow-text-gray-800",
3057
+ className: "crow-cursor-pointer",
3058
+ style: { color: mutedColor },
3037
3059
  children: /* @__PURE__ */ jsxRuntime.jsx(
3038
3060
  framerMotion.motion.div,
3039
3061
  {
@@ -3048,7 +3070,7 @@ function ToolCallBlock({
3048
3070
  isExecuting && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "crow-w-3 crow-h-3 crow-animate-spin crow-text-blue-500" }),
3049
3071
  isComplete && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "crow-w-3 crow-h-3 crow-text-green-500" }),
3050
3072
  isError && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-w-3 crow-h-3 crow-text-red-500", children: "\u2715" }),
3051
- isDenied && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-w-3 crow-h-3 crow-text-gray-400", children: "\u2715" }),
3073
+ isDenied && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-w-3 crow-h-3", style: { color: mutedColor }, children: "\u2715" }),
3052
3074
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-font-medium", children: toolCall.displayName || toolCall.name }),
3053
3075
  isAwaitingConsent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3054
3076
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-amber-500", children: "needs permission" }),
@@ -3065,16 +3087,16 @@ function ToolCallBlock({
3065
3087
  "button",
3066
3088
  {
3067
3089
  onClick: () => onToolConsent?.(toolCall.id, false),
3068
- className: "crow-px-2 crow-py-0.5 crow-rounded crow-border crow-text-xs crow-font-medium crow-text-gray-500 crow-cursor-pointer",
3069
- style: { borderColor: "#d1d5db", backgroundColor: "transparent" },
3090
+ className: "crow-px-2 crow-py-0.5 crow-rounded crow-border crow-text-xs crow-font-medium crow-cursor-pointer",
3091
+ style: { borderColor: themeColors.border, backgroundColor: "transparent", color: mutedColor },
3070
3092
  children: "Deny"
3071
3093
  }
3072
3094
  )
3073
3095
  ] }),
3074
- isExecuting && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-gray-400", children: "running..." }),
3075
- isComplete && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-gray-400", children: "done" }),
3076
- isError && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-gray-400", children: "failed" }),
3077
- isDenied && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-gray-400", children: "denied" })
3096
+ isExecuting && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: mutedColor }, children: "running..." }),
3097
+ isComplete && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: mutedColor }, children: "done" }),
3098
+ isError && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: mutedColor }, children: "failed" }),
3099
+ isDenied && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: mutedColor }, children: "denied" })
3078
3100
  ]
3079
3101
  }
3080
3102
  ),
@@ -3175,7 +3197,7 @@ function MessageBubble({
3175
3197
  toolRenderers,
3176
3198
  onToolConsent
3177
3199
  }) {
3178
- const styles = useWidgetStyles2();
3200
+ const styles = useActiveStyles();
3179
3201
  const showThinkingSetting = useShowThinking();
3180
3202
  const isWaiting = message.content === "Thinking..." || message.isBot && isLoading && !message.content;
3181
3203
  const hasThinking = message.isBot && message.thinking;
@@ -3294,7 +3316,7 @@ function MessageList({
3294
3316
  }) });
3295
3317
  }
3296
3318
  var MessagesContainer = React3.forwardRef(({ children }, ref) => {
3297
- const styles = useWidgetStyles2();
3319
+ const styles = useActiveStyles();
3298
3320
  const internalRef = React3.useRef(null);
3299
3321
  const lastScrollHeightRef = React3.useRef(0);
3300
3322
  const isUserScrollingRef = React3.useRef(false);
@@ -3356,26 +3378,92 @@ function ConversationList({
3356
3378
  onSelect,
3357
3379
  onClose
3358
3380
  }) {
3381
+ const styles = useActiveStyles();
3359
3382
  return /* @__PURE__ */ jsxRuntime.jsxs(
3360
3383
  framerMotion.motion.div,
3361
3384
  {
3362
3385
  initial: { opacity: 0, height: 0 },
3363
3386
  animate: { opacity: 1, height: "auto" },
3364
3387
  exit: { opacity: 0, height: 0 },
3365
- className: "crow-mb-3 crow-rounded-xl crow-bg-gray-50 crow-border crow-border-gray-200",
3388
+ className: "crow-mb-3 crow-rounded-xl crow-border",
3389
+ style: {
3390
+ background: styles.colors.text + "08",
3391
+ borderColor: styles.colors.border
3392
+ },
3366
3393
  children: [
3367
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-p-2 crow-border-b crow-border-gray-200 crow-flex crow-justify-between crow-items-center", children: [
3368
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-sm crow-font-medium crow-text-gray-700", children: "Recent Conversations" }),
3369
- /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: onClose, className: "crow-p-1 hover:crow-bg-gray-200 crow-rounded", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 14, className: "crow-text-gray-500" }) })
3370
- ] }),
3371
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-max-h-[200px] crow-overflow-y-auto", children: conversations.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-p-4 crow-text-center crow-text-sm crow-text-gray-500", children: "No conversations yet" }) : conversations.map((conv) => /* @__PURE__ */ jsxRuntime.jsxs(
3394
+ /* @__PURE__ */ jsxRuntime.jsxs(
3395
+ "div",
3396
+ {
3397
+ className: "crow-p-2 crow-border-b crow-flex crow-justify-between crow-items-center",
3398
+ style: { borderColor: styles.colors.border },
3399
+ children: [
3400
+ /* @__PURE__ */ jsxRuntime.jsx(
3401
+ "span",
3402
+ {
3403
+ className: "crow-text-sm crow-font-medium",
3404
+ style: { color: styles.colors.text + "cc" },
3405
+ children: "Recent Conversations"
3406
+ }
3407
+ ),
3408
+ /* @__PURE__ */ jsxRuntime.jsx(
3409
+ "button",
3410
+ {
3411
+ onClick: onClose,
3412
+ className: "crow-p-1 crow-rounded",
3413
+ style: { color: styles.colors.text + "80" },
3414
+ onMouseEnter: (e) => {
3415
+ e.currentTarget.style.background = styles.colors.text + "10";
3416
+ },
3417
+ onMouseLeave: (e) => {
3418
+ e.currentTarget.style.background = "transparent";
3419
+ },
3420
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 14 })
3421
+ }
3422
+ )
3423
+ ]
3424
+ }
3425
+ ),
3426
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-max-h-[200px] crow-overflow-y-auto", children: conversations.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
3427
+ "div",
3428
+ {
3429
+ className: "crow-p-4 crow-text-center crow-text-sm",
3430
+ style: { color: styles.colors.text + "80" },
3431
+ children: "No conversations yet"
3432
+ }
3433
+ ) : conversations.map((conv) => /* @__PURE__ */ jsxRuntime.jsxs(
3372
3434
  "button",
3373
3435
  {
3374
3436
  onClick: () => onSelect(conv.id),
3375
- className: `crow-w-full crow-p-3 crow-text-left hover:crow-bg-gray-100 crow-transition-colors crow-border-b crow-border-gray-100 last:crow-border-0 ${currentConversationId === conv.id ? "crow-bg-blue-50" : ""}`,
3437
+ className: "crow-w-full crow-p-3 crow-text-left crow-transition-colors crow-border-b last:crow-border-0",
3438
+ style: {
3439
+ borderColor: styles.colors.border,
3440
+ background: currentConversationId === conv.id ? styles.colors.primary + "18" : "transparent"
3441
+ },
3442
+ onMouseEnter: (e) => {
3443
+ if (currentConversationId !== conv.id) {
3444
+ e.currentTarget.style.background = styles.colors.text + "08";
3445
+ }
3446
+ },
3447
+ onMouseLeave: (e) => {
3448
+ e.currentTarget.style.background = currentConversationId === conv.id ? styles.colors.primary + "18" : "transparent";
3449
+ },
3376
3450
  children: [
3377
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-text-sm crow-font-medium crow-text-gray-800 crow-truncate", children: conv.name || "Untitled conversation" }),
3378
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-text-xs crow-text-gray-500 crow-mt-0.5", children: formatConversationDate(conv.updated_at) })
3451
+ /* @__PURE__ */ jsxRuntime.jsx(
3452
+ "div",
3453
+ {
3454
+ className: "crow-text-sm crow-font-medium crow-truncate",
3455
+ style: { color: styles.colors.text },
3456
+ children: conv.name || "Untitled conversation"
3457
+ }
3458
+ ),
3459
+ /* @__PURE__ */ jsxRuntime.jsx(
3460
+ "div",
3461
+ {
3462
+ className: "crow-text-xs crow-mt-0.5",
3463
+ style: { color: styles.colors.text + "80" },
3464
+ children: formatConversationDate(conv.updated_at)
3465
+ }
3466
+ )
3379
3467
  ]
3380
3468
  },
3381
3469
  conv.id
@@ -3392,14 +3480,26 @@ function WorkflowPanel({ workflow, onExit }) {
3392
3480
  animate: { opacity: 1, y: 0 },
3393
3481
  exit: { opacity: 0, y: -10 },
3394
3482
  transition: { duration: 0.3 },
3395
- className: "crow-mb-3 crow-p-3 crow-rounded-xl crow-bg-gray-50 crow-border crow-border-gray-200",
3483
+ className: "crow-mb-3 crow-p-3 crow-rounded-xl crow-border",
3484
+ style: {
3485
+ background: "var(--crow-bg-hover, rgba(0,0,0,0.04))",
3486
+ borderColor: "var(--crow-border, #e5e7eb)"
3487
+ },
3396
3488
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-flex crow-items-center crow-justify-between", children: [
3397
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-text-sm crow-font-medium crow-text-gray-900 crow-flex crow-items-center crow-gap-1", children: workflow.name }),
3489
+ /* @__PURE__ */ jsxRuntime.jsx(
3490
+ "span",
3491
+ {
3492
+ className: "crow-text-sm crow-font-medium crow-flex crow-items-center crow-gap-1",
3493
+ style: { color: "var(--crow-text, #111827)" },
3494
+ children: workflow.name
3495
+ }
3496
+ ),
3398
3497
  /* @__PURE__ */ jsxRuntime.jsx(
3399
3498
  "button",
3400
3499
  {
3401
3500
  onClick: onExit,
3402
- className: "crow-text-xs crow-text-gray-500 hover:crow-text-gray-700 crow-underline",
3501
+ className: "crow-text-xs crow-underline",
3502
+ style: { color: "var(--crow-text-muted, #6b7280)" },
3403
3503
  children: "Exit"
3404
3504
  }
3405
3505
  )
@@ -3408,12 +3508,14 @@ function WorkflowPanel({ workflow, onExit }) {
3408
3508
  );
3409
3509
  }
3410
3510
  function PoweredByBadge({ apiUrl = "" }) {
3411
- const styles = useWidgetStyles2();
3511
+ const styles = useActiveStyles();
3412
3512
  const branding = styles.branding;
3413
3513
  if (!branding.showPoweredBy) return null;
3414
- const logoUrl = branding.logoUrl?.startsWith("http") ? branding.logoUrl : `${apiUrl}${branding.logoUrl}`;
3415
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-flex crow-items-center crow-justify-center crow-gap-1.5 crow-mb-3 crow-text-xs crow-text-gray-400", children: [
3416
- branding.showLogo && logoUrl && /* @__PURE__ */ jsxRuntime.jsx(
3514
+ const showLogo = "showLogo" in branding ? branding.showLogo : false;
3515
+ const rawLogoUrl = "logoUrl" in branding ? branding.logoUrl : void 0;
3516
+ const logoUrl = rawLogoUrl?.startsWith("http") ? rawLogoUrl : rawLogoUrl ? `${apiUrl}${rawLogoUrl}` : void 0;
3517
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-flex crow-items-center crow-justify-center crow-gap-1.5 crow-mb-3 crow-text-xs", style: { color: "var(--crow-text-muted, #9ca3af)" }, children: [
3518
+ showLogo && logoUrl && /* @__PURE__ */ jsxRuntime.jsx(
3417
3519
  "img",
3418
3520
  {
3419
3521
  src: logoUrl,
@@ -3460,10 +3562,10 @@ var ModelSelector = ({
3460
3562
  disabled,
3461
3563
  className: cn(
3462
3564
  "crow-flex crow-items-center crow-gap-1 crow-px-2 crow-py-1 crow-rounded-md crow-text-xs",
3463
- "crow-bg-transparent crow-text-gray-400",
3464
- "hover:crow-text-gray-700 crow-transition-colors",
3565
+ "crow-bg-transparent crow-transition-colors",
3465
3566
  disabled ? "crow-opacity-50 crow-cursor-not-allowed" : "crow-cursor-pointer"
3466
3567
  ),
3568
+ style: { color: "var(--crow-text-muted, #9ca3af)" },
3467
3569
  children: [
3468
3570
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: selectedModelData?.name || "Select Model" }),
3469
3571
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3478,28 +3580,48 @@ var ModelSelector = ({
3478
3580
  ]
3479
3581
  }
3480
3582
  ),
3481
- isOpen && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-absolute crow-bottom-full crow-mb-2 crow-left-0 crow-min-w-[180px] crow-bg-white crow-border crow-border-gray-200 crow-rounded-xl crow-shadow-lg crow-z-50 crow-overflow-hidden", children: Object.entries(groupedModels).map(([provider, providerModels]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3482
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-px-3 crow-py-1.5 crow-text-xs crow-font-medium crow-text-gray-400 crow-uppercase crow-tracking-wide crow-bg-gray-50", children: provider }),
3483
- providerModels.map((model) => /* @__PURE__ */ jsxRuntime.jsxs(
3484
- "button",
3485
- {
3486
- onClick: () => {
3487
- onModelChange(model.id);
3488
- setIsOpen(false);
3489
- },
3490
- className: cn(
3491
- "crow-w-full crow-flex crow-items-center crow-justify-between crow-px-3 crow-py-1.5 crow-text-sm",
3492
- "hover:crow-bg-gray-100 crow-transition-colors",
3493
- model.id === selectedModel ? "crow-text-gray-900" : "crow-text-gray-600"
3583
+ isOpen && /* @__PURE__ */ jsxRuntime.jsx(
3584
+ "div",
3585
+ {
3586
+ className: "crow-absolute crow-bottom-full crow-mb-2 crow-left-0 crow-min-w-[180px] crow-rounded-xl crow-shadow-lg crow-z-50 crow-overflow-hidden crow-border",
3587
+ style: { background: "var(--crow-bg, #ffffff)", borderColor: "var(--crow-border, #e5e7eb)" },
3588
+ children: Object.entries(groupedModels).map(([provider, providerModels]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3589
+ /* @__PURE__ */ jsxRuntime.jsx(
3590
+ "div",
3591
+ {
3592
+ className: "crow-px-3 crow-py-1.5 crow-text-xs crow-font-medium crow-uppercase crow-tracking-wide",
3593
+ style: {
3594
+ color: "var(--crow-text-muted, #9ca3af)",
3595
+ background: "var(--crow-bg-hover, rgba(0,0,0,0.04))"
3596
+ },
3597
+ children: provider
3598
+ }
3494
3599
  ),
3495
- children: [
3496
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: model.name }),
3497
- model.id === selectedModel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "crow-w-4 crow-h-4 crow-text-green-500" })
3498
- ]
3499
- },
3500
- model.id
3501
- ))
3502
- ] }, provider)) })
3600
+ providerModels.map((model) => /* @__PURE__ */ jsxRuntime.jsxs(
3601
+ "button",
3602
+ {
3603
+ onClick: () => {
3604
+ onModelChange(model.id);
3605
+ setIsOpen(false);
3606
+ },
3607
+ className: "crow-w-full crow-flex crow-items-center crow-justify-between crow-px-3 crow-py-1.5 crow-text-sm crow-transition-colors",
3608
+ style: { color: model.id === selectedModel ? "var(--crow-text, #111827)" : "var(--crow-text-muted, #4b5563)" },
3609
+ onMouseEnter: (e) => {
3610
+ e.currentTarget.style.background = "var(--crow-bg-hover, rgba(0,0,0,0.04))";
3611
+ },
3612
+ onMouseLeave: (e) => {
3613
+ e.currentTarget.style.background = "transparent";
3614
+ },
3615
+ children: [
3616
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: model.name }),
3617
+ model.id === selectedModel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "crow-w-4 crow-h-4 crow-text-green-500" })
3618
+ ]
3619
+ },
3620
+ model.id
3621
+ ))
3622
+ ] }, provider))
3623
+ }
3624
+ )
3503
3625
  ] });
3504
3626
  };
3505
3627
  var isMediaRecorderSupported = () => {
@@ -3700,9 +3822,12 @@ var Textarea = React3__default.default.forwardRef(
3700
3822
  "textarea",
3701
3823
  {
3702
3824
  className: cn(
3703
- "crow-flex crow-w-full crow-rounded-md crow-border-none crow-bg-transparent crow-px-3 crow-py-1.5 crow-text-base crow-text-gray-900 placeholder:crow-text-gray-500 focus-visible:crow-outline-none focus-visible:crow-ring-0 disabled:crow-cursor-not-allowed disabled:crow-opacity-50 crow-min-h-[32px] crow-resize-none",
3825
+ "crow-flex crow-w-full crow-rounded-md crow-border-none crow-bg-transparent crow-px-3 crow-py-1.5 crow-text-base focus-visible:crow-outline-none focus-visible:crow-ring-0 disabled:crow-cursor-not-allowed disabled:crow-opacity-50 crow-min-h-[32px] crow-resize-none",
3704
3826
  className
3705
3827
  ),
3828
+ style: {
3829
+ color: "inherit"
3830
+ },
3706
3831
  ref,
3707
3832
  rows: 1,
3708
3833
  ...props
@@ -3719,9 +3844,10 @@ var TooltipContent = React3__default.default.forwardRef(({ className, sideOffset
3719
3844
  ref,
3720
3845
  sideOffset,
3721
3846
  className: cn(
3722
- "crow-z-50 crow-overflow-hidden crow-rounded-md crow-border crow-border-gray-300 crow-bg-white crow-text-gray-900 crow-px-3 crow-py-1.5 crow-text-sm crow-shadow-md",
3847
+ "crow-z-50 crow-overflow-hidden crow-rounded-md crow-border crow-px-3 crow-py-1.5 crow-text-sm crow-shadow-md",
3723
3848
  className
3724
3849
  ),
3850
+ style: { background: "var(--crow-bg, #ffffff)", borderColor: "var(--crow-border, #d1d5db)", color: "var(--crow-text, #111827)" },
3725
3851
  ...props
3726
3852
  }
3727
3853
  ));
@@ -3729,9 +3855,9 @@ TooltipContent.displayName = "TooltipContent";
3729
3855
  var Button = React3__default.default.forwardRef(
3730
3856
  ({ className, variant = "default", size = "default", ...props }, ref) => {
3731
3857
  const variantClasses = {
3732
- default: "crow-bg-black hover:crow-bg-gray-800 crow-text-white",
3733
- outline: "crow-border crow-bg-transparent hover:crow-bg-gray-100",
3734
- ghost: "crow-bg-transparent hover:crow-bg-gray-100"
3858
+ default: "crow-text-white",
3859
+ outline: "crow-border crow-bg-transparent",
3860
+ ghost: "crow-bg-transparent"
3735
3861
  };
3736
3862
  const sizeClasses = {
3737
3863
  default: "crow-h-10 crow-px-4 crow-py-2",
@@ -3804,11 +3930,16 @@ var PromptInput = React3__default.default.forwardRef(
3804
3930
  {
3805
3931
  ref,
3806
3932
  className: cn(
3807
- "crow-rounded-3xl crow-border crow-border-gray-300 crow-bg-white crow-p-1.5 crow-shadow-lg crow-transition-all crow-duration-300",
3933
+ "crow-rounded-3xl crow-border crow-p-1.5 crow-shadow-lg crow-transition-all crow-duration-300",
3808
3934
  isLoading && "crow-border-red-500",
3809
3935
  className
3810
3936
  ),
3811
- style,
3937
+ style: {
3938
+ background: "var(--crow-bg, #ffffff)",
3939
+ color: "var(--crow-text, #111827)",
3940
+ borderColor: isLoading ? void 0 : "var(--crow-border, #d1d5db)",
3941
+ ...style
3942
+ },
3812
3943
  children
3813
3944
  }
3814
3945
  )
@@ -3891,6 +4022,7 @@ var PromptInputBox = React3__default.default.forwardRef(
3891
4022
  backendUrl = "",
3892
4023
  triggerVoiceRecording = 0
3893
4024
  }, ref) => {
4025
+ const themeStyles = useActiveStyles();
3894
4026
  const [input, setInput] = React3__default.default.useState("");
3895
4027
  const promptBoxRef = React3__default.default.useRef(null);
3896
4028
  const voice = useVoiceInput({ backendUrl, silenceTimeoutMs: 1500 });
@@ -3944,10 +4076,15 @@ var PromptInputBox = React3__default.default.forwardRef(
3944
4076
  highlighted && "crow-ring-4 crow-ring-offset-2 crow-animate-pulse crow-shadow-[0_0_20px_rgba(0,0,0,0.25)]",
3945
4077
  className
3946
4078
  ),
3947
- style: highlighted ? {
3948
- "--tw-ring-color": "var(--crow-user-bubble, #000)",
3949
- "--tw-ring-offset-color": "var(--crow-background, #fff)"
3950
- } : void 0,
4079
+ style: {
4080
+ background: themeStyles.colors.background,
4081
+ color: themeStyles.colors.text,
4082
+ borderColor: themeStyles.colors.border,
4083
+ ...highlighted ? {
4084
+ "--tw-ring-color": themeStyles.colors.userBubble,
4085
+ "--tw-ring-offset-color": themeStyles.colors.background
4086
+ } : {}
4087
+ },
3951
4088
  disabled: isLoading,
3952
4089
  ref: ref || promptBoxRef,
3953
4090
  children: [
@@ -3987,10 +4124,8 @@ var PromptInputBox = React3__default.default.forwardRef(
3987
4124
  /* @__PURE__ */ jsxRuntime.jsx(
3988
4125
  lucideReact.Mic,
3989
4126
  {
3990
- className: cn(
3991
- "crow-h-3.5 crow-w-3.5 crow-transition-colors",
3992
- voice.isRecording ? "crow-text-red-500" : "crow-text-gray-400"
3993
- )
4127
+ className: "crow-h-3.5 crow-w-3.5 crow-transition-colors",
4128
+ style: { color: voice.isRecording ? "#ef4444" : "var(--crow-text-muted, #9ca3af)" }
3994
4129
  }
3995
4130
  ),
3996
4131
  voice.isRecording && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "crow-absolute crow-top-0 crow-right-0 crow-h-2 crow-w-2 crow-rounded-full crow-bg-red-500 crow-animate-pulse" })
@@ -4008,12 +4143,10 @@ var PromptInputBox = React3__default.default.forwardRef(
4008
4143
  {
4009
4144
  variant: "default",
4010
4145
  size: "icon",
4011
- className: cn(
4012
- "crow-h-7 crow-w-7 crow-rounded-full crow-transition-all crow-duration-200",
4013
- (isLoading || showStopButton) && "crow-bg-red-500 hover:crow-bg-red-500",
4014
- hasContent && !isLoading && !showStopButton && "crow-bg-black hover:crow-bg-gray-800",
4015
- !hasContent && !isLoading && !showStopButton && "crow-bg-transparent"
4016
- ),
4146
+ className: "crow-h-7 crow-w-7 crow-rounded-full crow-transition-all crow-duration-200",
4147
+ style: {
4148
+ background: isLoading || showStopButton ? "#ef4444" : hasContent ? "var(--crow-primary, #000000)" : "transparent"
4149
+ },
4017
4150
  onClick: () => {
4018
4151
  if ((isLoading || showStopButton) && onStop) {
4019
4152
  onStop();
@@ -4030,10 +4163,8 @@ var PromptInputBox = React3__default.default.forwardRef(
4030
4163
  ) : /* @__PURE__ */ jsxRuntime.jsx(
4031
4164
  lucideReact.ArrowUp,
4032
4165
  {
4033
- className: cn(
4034
- "crow-h-3.5 crow-w-3.5",
4035
- hasContent ? "crow-text-white" : "crow-text-gray-400"
4036
- )
4166
+ className: "crow-h-3.5 crow-w-3.5",
4167
+ style: { color: hasContent ? "white" : "var(--crow-text-muted, #9ca3af)" }
4037
4168
  }
4038
4169
  )
4039
4170
  }
@@ -4053,7 +4184,7 @@ function BrowserUseConfirmation({
4053
4184
  onAllow,
4054
4185
  onDeny
4055
4186
  }) {
4056
- const styles = useWidgetStyles2();
4187
+ const styles = useActiveStyles();
4057
4188
  return /* @__PURE__ */ jsxRuntime.jsx(
4058
4189
  "div",
4059
4190
  {
@@ -4135,7 +4266,7 @@ function BrowserUseQuestion({
4135
4266
  question,
4136
4267
  onSubmit
4137
4268
  }) {
4138
- const styles = useWidgetStyles2();
4269
+ const styles = useActiveStyles();
4139
4270
  const [answer, setAnswer] = React3.useState("");
4140
4271
  const [isSubmitting, setIsSubmitting] = React3.useState(false);
4141
4272
  const handleSubmit = React3.useCallback(() => {
@@ -4222,15 +4353,15 @@ function SuggestedActions({
4222
4353
  actions,
4223
4354
  onActionClick
4224
4355
  }) {
4225
- const styles = useWidgetStyles2();
4356
+ const styles = useActiveStyles();
4226
4357
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-flex crow-flex-wrap crow-gap-2 crow-px-1 crow-pb-2", children: actions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsx(
4227
4358
  "button",
4228
4359
  {
4229
4360
  onClick: () => onActionClick(action),
4230
4361
  className: "crow-rounded-full crow-border crow-px-3 crow-py-1.5 crow-text-sm crow-font-medium crow-transition-colors hover:crow-opacity-80 crow-cursor-pointer",
4231
4362
  style: {
4232
- borderColor: styles.colors.primary,
4233
- color: styles.colors.primary,
4363
+ borderColor: styles.colors.border,
4364
+ color: styles.colors.text,
4234
4365
  background: "transparent"
4235
4366
  },
4236
4367
  children: action.label
@@ -4366,7 +4497,7 @@ function injectCopilotBodyStyles() {
4366
4497
  }
4367
4498
  var WIDGET_CSS = `*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
4368
4499
 
4369
- /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.crow-pointer-events-none{pointer-events:none}.crow-pointer-events-auto{pointer-events:auto}.crow-fixed{position:fixed}.crow-absolute{position:absolute}.crow-relative{position:relative}.crow-sticky{position:sticky}.crow-bottom-0{bottom:0}.crow-bottom-full{bottom:100%}.crow-left-0{left:0}.crow-right-0{right:0}.crow-top-0{top:0}.crow-z-10{z-index:10}.crow-z-50{z-index:50}.crow-z-\\[999999\\]{z-index:999999}.crow-m-0{margin:0}.crow-mx-3{margin-left:.75rem;margin-right:.75rem}.crow-my-1{margin-top:.25rem;margin-bottom:.25rem}.crow-my-1\\.5{margin-top:.375rem;margin-bottom:.375rem}.crow-my-2{margin-top:.5rem;margin-bottom:.5rem}.crow-mb-0{margin-bottom:0}.crow-mb-0\\.5{margin-bottom:.125rem}.crow-mb-1{margin-bottom:.25rem}.crow-mb-1\\.5{margin-bottom:.375rem}.crow-mb-2{margin-bottom:.5rem}.crow-mb-3{margin-bottom:.75rem}.crow-mb-4{margin-bottom:1rem}.crow-ml-0{margin-left:0}.crow-ml-0\\.5{margin-left:.125rem}.crow-ml-2{margin-left:.5rem}.crow-ml-4{margin-left:1rem}.crow-mt-0{margin-top:0}.crow-mt-0\\.5{margin-top:.125rem}.crow-mt-1{margin-top:.25rem}.crow-mt-1\\.5{margin-top:.375rem}.crow-mt-2{margin-top:.5rem}.crow-mt-auto{margin-top:auto}.crow-block{display:block}.crow-inline-block{display:inline-block}.crow-flex{display:flex}.crow-inline-flex{display:inline-flex}.crow-h-10{height:2.5rem}.crow-h-12{height:3rem}.crow-h-2{height:.5rem}.crow-h-3{height:.75rem}.crow-h-3\\.5{height:.875rem}.crow-h-4{height:1rem}.crow-h-5{height:1.25rem}.crow-h-7{height:1.75rem}.crow-h-8{height:2rem}.crow-h-full{height:100%}.crow-max-h-32{max-height:8rem}.crow-max-h-48{max-height:12rem}.crow-max-h-\\[200px\\]{max-height:200px}.crow-min-h-0{min-height:0}.crow-min-h-\\[32px\\]{min-height:32px}.crow-min-h-\\[40px\\]{min-height:40px}.crow-w-0{width:0}.crow-w-0\\.5{width:.125rem}.crow-w-2{width:.5rem}.crow-w-3{width:.75rem}.crow-w-3\\.5{width:.875rem}.crow-w-4{width:1rem}.crow-w-5{width:1.25rem}.crow-w-7{width:1.75rem}.crow-w-8{width:2rem}.crow-w-full{width:100%}.crow-min-w-0{min-width:0}.crow-min-w-\\[180px\\]{min-width:180px}.crow-max-w-\\[80\\%\\]{max-width:80%}.crow-max-w-\\[90\\%\\]{max-width:90%}.crow-max-w-full{max-width:100%}.crow-flex-1{flex:1 1 0%}.crow-flex-shrink-0,.crow-shrink-0{flex-shrink:0}.crow-border-collapse{border-collapse:collapse}.crow-rotate-180{--tw-rotate:180deg}.crow-rotate-180,.crow-scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-scale-100{--tw-scale-x:1;--tw-scale-y:1}.crow-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-pulse{animation:crow-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}@keyframes crow-spin{to{transform:rotate(1turn)}}.crow-animate-spin{animation:crow-spin 1s linear infinite}.crow-cursor-default{cursor:default}.crow-cursor-not-allowed{cursor:not-allowed}.crow-cursor-nw-resize{cursor:nw-resize}.crow-cursor-pointer{cursor:pointer}.crow-cursor-se-resize{cursor:se-resize}.crow-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.crow-resize-none{resize:none}.crow-list-decimal{list-style-type:decimal}.crow-list-disc{list-style-type:disc}.crow-flex-row{flex-direction:row}.crow-flex-col{flex-direction:column}.crow-flex-wrap{flex-wrap:wrap}.crow-items-start{align-items:flex-start}.crow-items-end{align-items:flex-end}.crow-items-center{align-items:center}.crow-items-stretch{align-items:stretch}.crow-justify-start{justify-content:flex-start}.crow-justify-end{justify-content:flex-end}.crow-justify-center{justify-content:center}.crow-justify-between{justify-content:space-between}.crow-gap-1{gap:.25rem}.crow-gap-1\\.5{gap:.375rem}.crow-gap-2{gap:.5rem}.crow-gap-3{gap:.75rem}.crow-gap-4{gap:1rem}.crow-gap-6{gap:1.5rem}.crow-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.crow-space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.crow-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.crow-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.crow-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.crow-overflow-auto{overflow:auto}.crow-overflow-hidden{overflow:hidden}.crow-overflow-visible{overflow:visible}.crow-overflow-x-auto{overflow-x:auto}.crow-overflow-y-auto{overflow-y:auto}.crow-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crow-whitespace-pre-wrap{white-space:pre-wrap}.crow-break-words{overflow-wrap:break-word}.crow-rounded{border-radius:.25rem}.crow-rounded-2xl{border-radius:1rem}.crow-rounded-3xl{border-radius:1.5rem}.crow-rounded-full{border-radius:9999px}.crow-rounded-lg{border-radius:.5rem}.crow-rounded-md{border-radius:.375rem}.crow-rounded-xl{border-radius:.75rem}.crow-border{border-width:1px}.crow-border-b{border-bottom-width:1px}.crow-border-l{border-left-width:1px}.crow-border-l-2{border-left-width:2px}.crow-border-r{border-right-width:1px}.crow-border-t{border-top-width:1px}.crow-border-none{border-style:none}.crow-border-\\[var\\(--crow-border\\,\\#e5e7eb\\)\\]{border-color:var(--crow-border,#e5e7eb)}.crow-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.crow-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.crow-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.crow-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.crow-border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.crow-border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.crow-border-gray-700\\/50{border-color:rgba(55,65,81,.5)}.crow-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.crow-bg-\\[var\\(--crow-bg-secondary\\,\\#f3f4f6\\)\\]{background-color:var(--crow-bg-secondary,#f3f4f6)}.crow-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.crow-bg-black\\/5{background-color:rgba(0,0,0,.05)}.crow-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.crow-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.crow-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.crow-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.crow-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.crow-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.crow-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.crow-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.crow-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.crow-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.crow-bg-transparent{background-color:transparent}.crow-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.crow-p-0{padding:0}.crow-p-0\\.5{padding:.125rem}.crow-p-1{padding:.25rem}.crow-p-1\\.5{padding:.375rem}.crow-p-2{padding:.5rem}.crow-p-3{padding:.75rem}.crow-p-4{padding:1rem}.crow-p-6{padding:1.5rem}.crow-px-1{padding-left:.25rem;padding-right:.25rem}.crow-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.crow-px-2{padding-left:.5rem;padding-right:.5rem}.crow-px-3{padding-left:.75rem;padding-right:.75rem}.crow-px-4{padding-left:1rem;padding-right:1rem}.crow-px-6{padding-left:1.5rem;padding-right:1.5rem}.crow-py-0{padding-top:0;padding-bottom:0}.crow-py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.crow-py-1{padding-top:.25rem;padding-bottom:.25rem}.crow-py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.crow-py-2{padding-top:.5rem;padding-bottom:.5rem}.crow-py-2\\.5{padding-top:.625rem;padding-bottom:.625rem}.crow-py-3{padding-top:.75rem;padding-bottom:.75rem}.crow-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.crow-py-8{padding-top:2rem;padding-bottom:2rem}.crow-pb-1{padding-bottom:.25rem}.crow-pb-2{padding-bottom:.5rem}.crow-pl-1{padding-left:.25rem}.crow-pl-3{padding-left:.75rem}.crow-pl-4{padding-left:1rem}.crow-pl-5{padding-left:1.25rem}.crow-pr-1{padding-right:.25rem}.crow-pr-4{padding-right:1rem}.crow-pt-1{padding-top:.25rem}.crow-pt-3{padding-top:.75rem}.crow-text-left{text-align:left}.crow-text-center{text-align:center}.crow-text-right{text-align:right}.crow-align-text-bottom{vertical-align:text-bottom}.crow-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.crow-text-\\[13px\\]{font-size:13px}.crow-text-base{font-size:1rem;line-height:1.5rem}.crow-text-lg{font-size:1.125rem;line-height:1.75rem}.crow-text-sm{font-size:.875rem;line-height:1.25rem}.crow-text-xs{font-size:.75rem;line-height:1rem}.crow-font-bold{font-weight:700}.crow-font-medium{font-weight:500}.crow-font-semibold{font-weight:600}.crow-uppercase{text-transform:uppercase}.crow-italic{font-style:italic}.crow-leading-relaxed{line-height:1.625}.crow-leading-tight{line-height:1.25}.crow-tracking-wide{letter-spacing:.025em}.crow-tracking-wider{letter-spacing:.05em}.crow-text-\\[var\\(--crow-primary\\,\\#7c3aed\\)\\]{color:var(--crow-primary,#7c3aed)}.crow-text-\\[var\\(--crow-text\\,\\#111827\\)\\]{color:var(--crow-text,#111827)}.crow-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.crow-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.crow-text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.crow-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.crow-text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.crow-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.crow-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.crow-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.crow-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.crow-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.crow-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.crow-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.crow-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.crow-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.crow-underline{text-decoration-line:underline}.crow-opacity-0{opacity:0}.crow-opacity-100{opacity:1}.crow-opacity-25{opacity:.25}.crow-opacity-40{opacity:.4}.crow-opacity-50{opacity:.5}.crow-opacity-60{opacity:.6}.crow-opacity-75{opacity:.75}.crow-shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.crow-shadow-2xl,.crow-shadow-\\[0_0_20px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-shadow-\\[0_0_20px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\]{--tw-shadow:0 0 20px rgba(0,0,0,.25);--tw-shadow-colored:0 0 20px var(--tw-shadow-color)}.crow-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.crow-shadow-lg,.crow-shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.crow-outline-none{outline:2px solid transparent;outline-offset:2px}.crow-ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.crow-ring-offset-2{--tw-ring-offset-width:2px}.crow-backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.crow-backdrop-blur-md,.crow-backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.crow-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.crow-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-duration-150{transition-duration:.15s}.crow-duration-200{transition-duration:.2s}.crow-duration-300{transition-duration:.3s}.crow-duration-500{transition-duration:.5s}.crow-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}.crow-animate-pulse{animation:crow-pulse 1.5s ease-in-out infinite}.crow-animation-delay-100{animation-delay:.1s}.crow-animation-delay-200{animation-delay:.2s}@keyframes crow-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes crow-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes crow-pulse{0%,to{opacity:1}50%{opacity:.4}}.crow-overflow-y-auto::-webkit-scrollbar{width:6px}.crow-overflow-y-auto::-webkit-scrollbar-track{background:transparent}.crow-overflow-y-auto::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:3px}.crow-overflow-y-auto::-webkit-scrollbar-thumb:hover{background-color:#9ca3af}.crow-focus-visible\\:crow-outline-none:focus-visible{outline:none}.crow-focus-visible\\:crow-ring-2:focus-visible{box-shadow:0 0 0 2px var(--crow-primary,#6366f1)}:host{--crow-primary:#6366f1;--crow-primary-dark:#4f46e5;--crow-secondary:#f1f5f9;--crow-accent:#10b981}@media (prefers-color-scheme:dark){:host{--crow-primary:#818cf8;--crow-primary-dark:#6366f1}}.crow-copilot-toggle{position:fixed;top:50%;transform:translateY(-50%);z-index:999998;width:24px;height:64px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.1)}.crow-copilot-toggle:hover{background:#f9fafb;box-shadow:0 4px 12px rgba(0,0,0,.15)}.crow-copilot-toggle-right{right:0;border-radius:8px 0 0 8px;border-right:none}.crow-copilot-toggle-left{left:0;border-radius:0 8px 8px 0;border-left:none}.crow-copilot-toggle.open.crow-copilot-toggle-right{right:var(--crow-copilot-width,400px)}.crow-copilot-toggle.open.crow-copilot-toggle-left{left:var(--crow-copilot-width,400px)}.crow-copilot-toggle svg{width:16px;height:16px;color:#6b7280;transition:transform .2s ease}.crow-copilot-toggle:hover svg{color:#374151}.crow-copilot-sidebar{position:fixed;top:0;bottom:0;z-index:999997;background:#fff;box-shadow:-4px 0 20px rgba(0,0,0,.1);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.crow-copilot-sidebar-right{right:0;border-left:1px solid #e5e7eb}.crow-copilot-sidebar-left{left:0;border-right:1px solid #e5e7eb}.crow-copilot-sidebar.closed.crow-copilot-sidebar-right{transform:translateX(100%)}.crow-copilot-sidebar.closed.crow-copilot-sidebar-left{transform:translateX(-100%)}body.crow-copilot-open-right{margin-right:var(--crow-copilot-width,400px)!important;transition:margin .3s cubic-bezier(.4,0,.2,1)}body.crow-copilot-open-left{margin-left:var(--crow-copilot-width,400px)!important}body,body.crow-copilot-open-left{transition:margin .3s cubic-bezier(.4,0,.2,1)}.placeholder\\:crow-text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\\:crow-text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.last\\:crow-mb-0:last-child{margin-bottom:0}.last\\:crow-border-0:last-child{border-width:0}.hover\\:crow-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:crow-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\\:crow-bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\\:crow-bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\\:crow-text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\\:crow-opacity-100:hover{opacity:1}.hover\\:crow-opacity-80:hover{opacity:.8}.hover\\:crow-opacity-90:hover{opacity:.9}.focus\\:crow-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:crow-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-0:focus,.focus\\:crow-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:crow-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:crow-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:crow-ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.disabled\\:crow-pointer-events-none:disabled{pointer-events:none}.disabled\\:crow-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:crow-opacity-50:disabled{opacity:.5}`;
4500
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.crow-pointer-events-none{pointer-events:none}.crow-pointer-events-auto{pointer-events:auto}.crow-fixed{position:fixed}.crow-absolute{position:absolute}.crow-relative{position:relative}.crow-sticky{position:sticky}.crow-bottom-0{bottom:0}.crow-bottom-full{bottom:100%}.crow-left-0{left:0}.crow-right-0{right:0}.crow-top-0{top:0}.crow-z-10{z-index:10}.crow-z-50{z-index:50}.crow-z-\\[999999\\]{z-index:999999}.crow-m-0{margin:0}.crow-mx-3{margin-left:.75rem;margin-right:.75rem}.crow-my-1{margin-top:.25rem;margin-bottom:.25rem}.crow-my-1\\.5{margin-top:.375rem;margin-bottom:.375rem}.crow-my-2{margin-top:.5rem;margin-bottom:.5rem}.crow-mb-0{margin-bottom:0}.crow-mb-0\\.5{margin-bottom:.125rem}.crow-mb-1{margin-bottom:.25rem}.crow-mb-1\\.5{margin-bottom:.375rem}.crow-mb-2{margin-bottom:.5rem}.crow-mb-3{margin-bottom:.75rem}.crow-mb-4{margin-bottom:1rem}.crow-ml-0{margin-left:0}.crow-ml-0\\.5{margin-left:.125rem}.crow-ml-2{margin-left:.5rem}.crow-ml-4{margin-left:1rem}.crow-mt-0{margin-top:0}.crow-mt-0\\.5{margin-top:.125rem}.crow-mt-1{margin-top:.25rem}.crow-mt-1\\.5{margin-top:.375rem}.crow-mt-2{margin-top:.5rem}.crow-mt-auto{margin-top:auto}.crow-block{display:block}.crow-inline-block{display:inline-block}.crow-flex{display:flex}.crow-inline-flex{display:inline-flex}.crow-h-10{height:2.5rem}.crow-h-12{height:3rem}.crow-h-2{height:.5rem}.crow-h-3{height:.75rem}.crow-h-3\\.5{height:.875rem}.crow-h-4{height:1rem}.crow-h-5{height:1.25rem}.crow-h-7{height:1.75rem}.crow-h-8{height:2rem}.crow-h-full{height:100%}.crow-max-h-32{max-height:8rem}.crow-max-h-48{max-height:12rem}.crow-max-h-\\[200px\\]{max-height:200px}.crow-min-h-0{min-height:0}.crow-min-h-\\[32px\\]{min-height:32px}.crow-min-h-\\[40px\\]{min-height:40px}.crow-w-0{width:0}.crow-w-0\\.5{width:.125rem}.crow-w-2{width:.5rem}.crow-w-3{width:.75rem}.crow-w-3\\.5{width:.875rem}.crow-w-4{width:1rem}.crow-w-5{width:1.25rem}.crow-w-7{width:1.75rem}.crow-w-8{width:2rem}.crow-w-full{width:100%}.crow-min-w-0{min-width:0}.crow-min-w-\\[180px\\]{min-width:180px}.crow-max-w-\\[80\\%\\]{max-width:80%}.crow-max-w-\\[90\\%\\]{max-width:90%}.crow-max-w-full{max-width:100%}.crow-flex-1{flex:1 1 0%}.crow-flex-shrink-0,.crow-shrink-0{flex-shrink:0}.crow-border-collapse{border-collapse:collapse}.crow-rotate-180{--tw-rotate:180deg}.crow-rotate-180,.crow-scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-scale-100{--tw-scale-x:1;--tw-scale-y:1}.crow-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-pulse{animation:crow-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}@keyframes crow-spin{to{transform:rotate(1turn)}}.crow-animate-spin{animation:crow-spin 1s linear infinite}.crow-cursor-default{cursor:default}.crow-cursor-not-allowed{cursor:not-allowed}.crow-cursor-pointer{cursor:pointer}.crow-cursor-se-resize{cursor:se-resize}.crow-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.crow-resize-none{resize:none}.crow-list-decimal{list-style-type:decimal}.crow-list-disc{list-style-type:disc}.crow-flex-row{flex-direction:row}.crow-flex-col{flex-direction:column}.crow-flex-wrap{flex-wrap:wrap}.crow-items-start{align-items:flex-start}.crow-items-end{align-items:flex-end}.crow-items-center{align-items:center}.crow-items-stretch{align-items:stretch}.crow-justify-start{justify-content:flex-start}.crow-justify-end{justify-content:flex-end}.crow-justify-center{justify-content:center}.crow-justify-between{justify-content:space-between}.crow-gap-1{gap:.25rem}.crow-gap-1\\.5{gap:.375rem}.crow-gap-2{gap:.5rem}.crow-gap-3{gap:.75rem}.crow-gap-4{gap:1rem}.crow-gap-6{gap:1.5rem}.crow-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.crow-space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.crow-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.crow-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.crow-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.crow-overflow-auto{overflow:auto}.crow-overflow-hidden{overflow:hidden}.crow-overflow-visible{overflow:visible}.crow-overflow-x-auto{overflow-x:auto}.crow-overflow-y-auto{overflow-y:auto}.crow-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crow-whitespace-pre-wrap{white-space:pre-wrap}.crow-break-words{overflow-wrap:break-word}.crow-rounded{border-radius:.25rem}.crow-rounded-2xl{border-radius:1rem}.crow-rounded-3xl{border-radius:1.5rem}.crow-rounded-full{border-radius:9999px}.crow-rounded-lg{border-radius:.5rem}.crow-rounded-md{border-radius:.375rem}.crow-rounded-xl{border-radius:.75rem}.crow-border{border-width:1px}.crow-border-b{border-bottom-width:1px}.crow-border-l{border-left-width:1px}.crow-border-l-2{border-left-width:2px}.crow-border-r{border-right-width:1px}.crow-border-t{border-top-width:1px}.crow-border-none{border-style:none}.crow-border-\\[var\\(--crow-border\\,\\#e5e7eb\\)\\]{border-color:var(--crow-border,#e5e7eb)}.crow-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.crow-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.crow-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.crow-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.crow-border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.crow-border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.crow-border-gray-700\\/50{border-color:rgba(55,65,81,.5)}.crow-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.crow-bg-\\[var\\(--crow-bg-secondary\\,\\#f3f4f6\\)\\]{background-color:var(--crow-bg-secondary,#f3f4f6)}.crow-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.crow-bg-black\\/5{background-color:rgba(0,0,0,.05)}.crow-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.crow-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.crow-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.crow-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.crow-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.crow-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.crow-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.crow-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.crow-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.crow-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.crow-bg-transparent{background-color:transparent}.crow-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.crow-p-0{padding:0}.crow-p-0\\.5{padding:.125rem}.crow-p-1{padding:.25rem}.crow-p-1\\.5{padding:.375rem}.crow-p-2{padding:.5rem}.crow-p-3{padding:.75rem}.crow-p-4{padding:1rem}.crow-p-6{padding:1.5rem}.crow-px-1{padding-left:.25rem;padding-right:.25rem}.crow-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.crow-px-2{padding-left:.5rem;padding-right:.5rem}.crow-px-3{padding-left:.75rem;padding-right:.75rem}.crow-px-4{padding-left:1rem;padding-right:1rem}.crow-px-6{padding-left:1.5rem;padding-right:1.5rem}.crow-py-0{padding-top:0;padding-bottom:0}.crow-py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.crow-py-1{padding-top:.25rem;padding-bottom:.25rem}.crow-py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.crow-py-2{padding-top:.5rem;padding-bottom:.5rem}.crow-py-2\\.5{padding-top:.625rem;padding-bottom:.625rem}.crow-py-3{padding-top:.75rem;padding-bottom:.75rem}.crow-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.crow-py-8{padding-top:2rem;padding-bottom:2rem}.crow-pb-1{padding-bottom:.25rem}.crow-pb-2{padding-bottom:.5rem}.crow-pl-3{padding-left:.75rem}.crow-pl-4{padding-left:1rem}.crow-pl-5{padding-left:1.25rem}.crow-pr-1{padding-right:.25rem}.crow-pr-4{padding-right:1rem}.crow-pt-1{padding-top:.25rem}.crow-pt-3{padding-top:.75rem}.crow-text-left{text-align:left}.crow-text-center{text-align:center}.crow-text-right{text-align:right}.crow-align-text-bottom{vertical-align:text-bottom}.crow-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.crow-text-\\[13px\\]{font-size:13px}.crow-text-base{font-size:1rem;line-height:1.5rem}.crow-text-lg{font-size:1.125rem;line-height:1.75rem}.crow-text-sm{font-size:.875rem;line-height:1.25rem}.crow-text-xs{font-size:.75rem;line-height:1rem}.crow-font-bold{font-weight:700}.crow-font-medium{font-weight:500}.crow-font-semibold{font-weight:600}.crow-uppercase{text-transform:uppercase}.crow-italic{font-style:italic}.crow-leading-relaxed{line-height:1.625}.crow-leading-tight{line-height:1.25}.crow-tracking-wide{letter-spacing:.025em}.crow-tracking-wider{letter-spacing:.05em}.crow-text-\\[var\\(--crow-primary\\,\\#7c3aed\\)\\]{color:var(--crow-primary,#7c3aed)}.crow-text-\\[var\\(--crow-text\\,\\#111827\\)\\]{color:var(--crow-text,#111827)}.crow-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.crow-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.crow-text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.crow-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.crow-text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.crow-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.crow-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.crow-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.crow-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.crow-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.crow-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.crow-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.crow-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.crow-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.crow-underline{text-decoration-line:underline}.crow-opacity-0{opacity:0}.crow-opacity-100{opacity:1}.crow-opacity-25{opacity:.25}.crow-opacity-40{opacity:.4}.crow-opacity-50{opacity:.5}.crow-opacity-60{opacity:.6}.crow-opacity-75{opacity:.75}.crow-shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.crow-shadow-2xl,.crow-shadow-\\[0_0_20px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-shadow-\\[0_0_20px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\]{--tw-shadow:0 0 20px rgba(0,0,0,.25);--tw-shadow-colored:0 0 20px var(--tw-shadow-color)}.crow-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.crow-shadow-lg,.crow-shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.crow-outline-none{outline:2px solid transparent;outline-offset:2px}.crow-ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.crow-ring-offset-2{--tw-ring-offset-width:2px}.crow-backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.crow-backdrop-blur-md,.crow-backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.crow-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.crow-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-duration-150{transition-duration:.15s}.crow-duration-200{transition-duration:.2s}.crow-duration-300{transition-duration:.3s}.crow-duration-500{transition-duration:.5s}.crow-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}.crow-animate-pulse{animation:crow-pulse 1.5s ease-in-out infinite}.crow-animation-delay-100{animation-delay:.1s}.crow-animation-delay-200{animation-delay:.2s}@keyframes crow-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes crow-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes crow-pulse{0%,to{opacity:1}50%{opacity:.4}}.crow-overflow-y-auto::-webkit-scrollbar{width:6px}.crow-overflow-y-auto::-webkit-scrollbar-track{background:transparent}.crow-overflow-y-auto::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:3px}.crow-overflow-y-auto::-webkit-scrollbar-thumb:hover{background-color:#9ca3af}.crow-focus-visible\\:crow-outline-none:focus-visible{outline:none}.crow-focus-visible\\:crow-ring-2:focus-visible{box-shadow:0 0 0 2px var(--crow-primary,#6366f1)}:host{--crow-primary:#6366f1;--crow-primary-dark:#4f46e5;--crow-secondary:#f1f5f9;--crow-accent:#10b981}@media (prefers-color-scheme:dark){:host{--crow-primary:#818cf8;--crow-primary-dark:#6366f1}}.crow-copilot-toggle{position:fixed;top:50%;transform:translateY(-50%);z-index:999998;width:24px;height:64px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.1)}.crow-copilot-toggle:hover{background:#f9fafb;box-shadow:0 4px 12px rgba(0,0,0,.15)}.crow-copilot-toggle-right{right:0;border-radius:8px 0 0 8px;border-right:none}.crow-copilot-toggle-left{left:0;border-radius:0 8px 8px 0;border-left:none}.crow-copilot-toggle.open.crow-copilot-toggle-right{right:var(--crow-copilot-width,400px)}.crow-copilot-toggle.open.crow-copilot-toggle-left{left:var(--crow-copilot-width,400px)}.crow-copilot-toggle svg{width:16px;height:16px;color:#6b7280;transition:transform .2s ease}.crow-copilot-toggle:hover svg{color:#374151}.crow-copilot-sidebar{position:fixed;top:0;bottom:0;z-index:999997;background:#fff;box-shadow:-4px 0 20px rgba(0,0,0,.1);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.crow-copilot-sidebar-right{right:0;border-left:1px solid #e5e7eb}.crow-copilot-sidebar-left{left:0;border-right:1px solid #e5e7eb}.crow-copilot-sidebar.closed.crow-copilot-sidebar-right{transform:translateX(100%)}.crow-copilot-sidebar.closed.crow-copilot-sidebar-left{transform:translateX(-100%)}body.crow-copilot-open-right{margin-right:var(--crow-copilot-width,400px)!important;transition:margin .3s cubic-bezier(.4,0,.2,1)}body.crow-copilot-open-left{margin-left:var(--crow-copilot-width,400px)!important}body,body.crow-copilot-open-left{transition:margin .3s cubic-bezier(.4,0,.2,1)}.placeholder\\:crow-text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\\:crow-text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.last\\:crow-mb-0:last-child{margin-bottom:0}.last\\:crow-border-0:last-child{border-width:0}.hover\\:crow-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:crow-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\\:crow-bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\\:crow-bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\\:crow-text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\\:crow-opacity-100:hover{opacity:1}.hover\\:crow-opacity-80:hover{opacity:.8}.hover\\:crow-opacity-90:hover{opacity:.9}.focus\\:crow-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:crow-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-0:focus,.focus\\:crow-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:crow-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:crow-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:crow-ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.disabled\\:crow-pointer-events-none:disabled{pointer-events:none}.disabled\\:crow-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:crow-opacity-50:disabled{opacity:.5}`;
4370
4501
  var injected = false;
4371
4502
  function injectStyles(target = document) {
4372
4503
  if (target === document && injected) return;
@@ -6089,7 +6220,20 @@ function CrowCopilot({
6089
6220
  lineHeight: styles.typography.lineHeight,
6090
6221
  letterSpacing: styles.typography.letterSpacing,
6091
6222
  background: styles.colors.background,
6092
- borderColor: styles.colors.border
6223
+ borderColor: styles.colors.border,
6224
+ // CSS variables for dark mode / theme propagation
6225
+ "--crow-primary": styles.colors.primary,
6226
+ "--crow-bg": styles.colors.background,
6227
+ "--crow-text": styles.colors.text,
6228
+ "--crow-border": styles.colors.border,
6229
+ "--crow-bot-bubble": styles.colors.botBubble,
6230
+ "--crow-bot-text": styles.colors.botText,
6231
+ "--crow-user-bubble": styles.colors.userBubble,
6232
+ "--crow-user-text": styles.colors.userText,
6233
+ "--crow-messages-bg": styles.colors.messagesBackground,
6234
+ "--crow-text-muted": styles.colors.text + "80",
6235
+ "--crow-bg-hover": styles.colors.text + "10",
6236
+ "--crow-bg-active": styles.colors.text + "18"
6093
6237
  },
6094
6238
  children: [
6095
6239
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -6115,8 +6259,10 @@ function CrowCopilot({
6115
6259
  return /* @__PURE__ */ jsxRuntime.jsxs(
6116
6260
  "div",
6117
6261
  {
6118
- className: `crow-relative crow-flex-shrink-0 crow-flex crow-items-center crow-text-[13px] crow-leading-tight crow-py-2.5 crow-transition-colors crow-select-none crow-cursor-pointer ${isActive ? "crow-text-gray-900 crow-font-medium" : "crow-text-gray-500 hover:crow-text-gray-700 hover:crow-bg-gray-50"}`,
6262
+ className: "crow-relative crow-flex-shrink-0 crow-flex crow-items-center crow-text-[13px] crow-leading-tight crow-py-2.5 crow-transition-colors crow-select-none crow-cursor-pointer",
6119
6263
  style: {
6264
+ color: isActive ? styles.colors.text : styles.colors.text + "80",
6265
+ fontWeight: isActive ? 500 : void 0,
6120
6266
  maxWidth: "180px",
6121
6267
  borderRight: idx < tabs.length - 1 ? `1px solid ${styles.colors.border}` : "none",
6122
6268
  paddingLeft: "16px",
@@ -6148,7 +6294,7 @@ function CrowCopilot({
6148
6294
  isCloseable && /* @__PURE__ */ jsxRuntime.jsx(
6149
6295
  "span",
6150
6296
  {
6151
- className: "crow-rounded crow-p-0.5 crow-flex-shrink-0 crow-inline-flex crow-items-center crow-justify-center crow-transition-opacity hover:crow-bg-gray-200",
6297
+ className: "crow-rounded crow-p-0.5 crow-flex-shrink-0 crow-inline-flex crow-items-center crow-justify-center crow-transition-opacity",
6152
6298
  style: {
6153
6299
  marginLeft: "6px",
6154
6300
  opacity: isHovered ? 1 : 0,
@@ -6160,7 +6306,7 @@ function CrowCopilot({
6160
6306
  },
6161
6307
  role: "button",
6162
6308
  "aria-label": `Close ${tab.name}`,
6163
- children: /* @__PURE__ */ jsxRuntime.jsx(TabCloseIcon, { className: "crow-w-3 crow-h-3 crow-text-gray-400 hover:crow-text-gray-600" })
6309
+ children: /* @__PURE__ */ jsxRuntime.jsx(TabCloseIcon, { className: "crow-w-3 crow-h-3", style: { color: styles.colors.text + "80" } })
6164
6310
  }
6165
6311
  ),
6166
6312
  isActive && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6190,10 +6336,17 @@ function CrowCopilot({
6190
6336
  "button",
6191
6337
  {
6192
6338
  onClick: handleNewChat,
6193
- className: "crow-p-2 hover:crow-bg-gray-100 crow-transition-colors",
6339
+ className: "crow-p-2 crow-transition-colors crow-rounded",
6340
+ style: { color: styles.colors.text + "80" },
6341
+ onMouseEnter: (e) => {
6342
+ e.currentTarget.style.background = styles.colors.text + "10";
6343
+ },
6344
+ onMouseLeave: (e) => {
6345
+ e.currentTarget.style.background = "transparent";
6346
+ },
6194
6347
  "aria-label": "New Chat",
6195
6348
  title: "New Chat",
6196
- children: /* @__PURE__ */ jsxRuntime.jsx(PlusIcon, { className: "crow-w-4 crow-h-4 crow-text-gray-500" })
6349
+ children: /* @__PURE__ */ jsxRuntime.jsx(PlusIcon, { className: "crow-w-4 crow-h-4" })
6197
6350
  }
6198
6351
  ),
6199
6352
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -6202,29 +6355,53 @@ function CrowCopilot({
6202
6355
  onClick: handleToggleHistory,
6203
6356
  disabled: !isVerifiedUser,
6204
6357
  "aria-disabled": !isVerifiedUser,
6205
- className: `crow-p-2 crow-transition-colors ${showConversationList ? "crow-bg-gray-100" : "hover:crow-bg-gray-100"} ${!isVerifiedUser ? "crow-opacity-40 crow-cursor-not-allowed" : ""}`,
6358
+ className: `crow-p-2 crow-transition-colors crow-rounded ${!isVerifiedUser ? "crow-opacity-40 crow-cursor-not-allowed" : ""}`,
6359
+ style: {
6360
+ color: styles.colors.text + "80",
6361
+ background: showConversationList ? styles.colors.text + "10" : "transparent"
6362
+ },
6363
+ onMouseEnter: (e) => {
6364
+ if (isVerifiedUser) e.currentTarget.style.background = styles.colors.text + "10";
6365
+ },
6366
+ onMouseLeave: (e) => {
6367
+ if (!showConversationList) e.currentTarget.style.background = "transparent";
6368
+ },
6206
6369
  "aria-label": "Conversation History",
6207
6370
  title: isVerifiedUser ? "Conversation History" : "Sign in to view history",
6208
- children: /* @__PURE__ */ jsxRuntime.jsx(HistoryIcon, { className: "crow-w-4 crow-h-4 crow-text-gray-500" })
6371
+ children: /* @__PURE__ */ jsxRuntime.jsx(HistoryIcon, { className: "crow-w-4 crow-h-4" })
6209
6372
  }
6210
6373
  ),
6211
6374
  canScrollRight && /* @__PURE__ */ jsxRuntime.jsx(
6212
6375
  "button",
6213
6376
  {
6214
6377
  onClick: handleScrollRight,
6215
- className: "crow-p-2 hover:crow-bg-gray-100 crow-transition-colors",
6378
+ className: "crow-p-2 crow-transition-colors crow-rounded",
6379
+ style: { color: styles.colors.text + "80" },
6380
+ onMouseEnter: (e) => {
6381
+ e.currentTarget.style.background = styles.colors.text + "10";
6382
+ },
6383
+ onMouseLeave: (e) => {
6384
+ e.currentTarget.style.background = "transparent";
6385
+ },
6216
6386
  "aria-label": "Scroll tabs",
6217
6387
  title: "Scroll tabs",
6218
- children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "crow-w-4 crow-h-4 crow-text-gray-500" })
6388
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "crow-w-4 crow-h-4" })
6219
6389
  }
6220
6390
  ),
6221
6391
  (forceShowClose ?? showClose) && (overrideOnClose ?? onClose) && /* @__PURE__ */ jsxRuntime.jsx(
6222
6392
  "button",
6223
6393
  {
6224
6394
  onClick: overrideOnClose ?? onClose,
6225
- className: "crow-p-2 hover:crow-bg-gray-100 crow-transition-colors",
6395
+ className: "crow-p-2 crow-transition-colors crow-rounded",
6396
+ style: { color: styles.colors.text + "80" },
6397
+ onMouseEnter: (e) => {
6398
+ e.currentTarget.style.background = styles.colors.text + "10";
6399
+ },
6400
+ onMouseLeave: (e) => {
6401
+ e.currentTarget.style.background = "transparent";
6402
+ },
6226
6403
  "aria-label": "Close",
6227
- children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon, { className: "crow-w-4 crow-h-4 crow-text-gray-500" })
6404
+ children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon, { className: "crow-w-4 crow-h-4" })
6228
6405
  }
6229
6406
  )
6230
6407
  ]
@@ -6238,7 +6415,7 @@ function CrowCopilot({
6238
6415
  {
6239
6416
  className: "crow-flex crow-items-center crow-gap-1.5 crow-px-3 crow-py-1.5 crow-border-b crow-text-xs",
6240
6417
  style: {
6241
- color: "#6b7280",
6418
+ color: styles.colors.text + "80",
6242
6419
  borderColor: styles.colors.border
6243
6420
  },
6244
6421
  children: [
@@ -6275,7 +6452,14 @@ function CrowCopilot({
6275
6452
  onClose: handleCloseConversationList
6276
6453
  }
6277
6454
  ),
6278
- showConversationList && !isVerifiedUser && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-mb-3 crow-rounded-xl crow-bg-gray-50 crow-border crow-border-gray-200 crow-p-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-text-sm crow-text-gray-600", children: "Sign in to view conversation history." }) })
6455
+ showConversationList && !isVerifiedUser && /* @__PURE__ */ jsxRuntime.jsx(
6456
+ "div",
6457
+ {
6458
+ className: "crow-mb-3 crow-rounded-xl crow-border crow-p-4",
6459
+ style: { background: styles.colors.text + "08", borderColor: styles.colors.border },
6460
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "crow-text-sm", style: { color: styles.colors.text + "99" }, children: "Sign in to view conversation history." })
6461
+ }
6462
+ )
6279
6463
  ] }),
6280
6464
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: activeWorkflow && /* @__PURE__ */ jsxRuntime.jsx(
6281
6465
  WorkflowPanel,
@@ -6328,7 +6512,7 @@ function CrowCopilot({
6328
6512
  className: "crow-p-3 crow-border-t",
6329
6513
  style: { borderColor: styles.colors.border },
6330
6514
  children: [
6331
- toolStatus && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-mb-1 crow-flex crow-items-center crow-gap-2 crow-rounded-lg crow-border crow-border-[var(--crow-border,#e5e7eb)] crow-bg-[var(--crow-bg-secondary,#f3f4f6)] crow-px-3 crow-py-2 crow-text-sm", children: [
6515
+ toolStatus && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "crow-mb-1 crow-flex crow-items-center crow-gap-2 crow-rounded-lg crow-border crow-px-3 crow-py-2 crow-text-sm", style: { borderColor: styles.colors.border, background: styles.colors.border + "30" }, children: [
6332
6516
  /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "crow-animate-spin crow-h-4 crow-w-4 crow-shrink-0 crow-text-[var(--crow-primary,#7c3aed)]", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [
6333
6517
  /* @__PURE__ */ jsxRuntime.jsx("circle", { className: "crow-opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
6334
6518
  /* @__PURE__ */ jsxRuntime.jsx("path", { className: "crow-opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" })
@@ -6377,7 +6561,8 @@ function CrowCopilot({
6377
6561
  }
6378
6562
  const isRight = position === "right";
6379
6563
  const edgeSide = isRight ? "left" : "right";
6380
- const toggleIcon = isCollapsed ? /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#6b7280", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z" }) }) : /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#6b7280", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: isRight ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 18 6-6-6-6" }) : /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m15 18-6-6 6-6" }) });
6564
+ const toggleIconColor = styles.colors.text + "80";
6565
+ const toggleIcon = isCollapsed ? /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: toggleIconColor, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z" }) }) : /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: toggleIconColor, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: isRight ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 18 6-6-6-6" }) : /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m15 18-6-6 6-6" }) });
6381
6566
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { position: "relative", flexShrink: 0, height: "100%" }, children: [
6382
6567
  /* @__PURE__ */ jsxRuntime.jsx(
6383
6568
  "button",
@@ -6396,8 +6581,8 @@ function CrowCopilot({
6396
6581
  display: "flex",
6397
6582
  alignItems: "center",
6398
6583
  justifyContent: "center",
6399
- background: "#fff",
6400
- border: "1px solid #e5e7eb",
6584
+ background: styles.colors.background,
6585
+ border: `1px solid ${styles.colors.border}`,
6401
6586
  [isRight ? "borderRight" : "borderLeft"]: "none",
6402
6587
  borderRadius: isRight ? "8px 0 0 8px" : "0 8px 8px 0",
6403
6588
  cursor: isCollapsed ? "pointer" : "col-resize",
@@ -6467,7 +6652,7 @@ function HistoryIcon({ className }) {
6467
6652
  }
6468
6653
  );
6469
6654
  }
6470
- function TabCloseIcon({ className }) {
6655
+ function TabCloseIcon({ className, style }) {
6471
6656
  return /* @__PURE__ */ jsxRuntime.jsxs(
6472
6657
  "svg",
6473
6658
  {
@@ -6481,6 +6666,7 @@ function TabCloseIcon({ className }) {
6481
6666
  strokeLinecap: "round",
6482
6667
  strokeLinejoin: "round",
6483
6668
  className,
6669
+ style,
6484
6670
  children: [
6485
6671
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6 6 18" }),
6486
6672
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 6 12 12" })