@asgard-js/react 0.2.51 → 0.2.54

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/README.md CHANGED
@@ -66,7 +66,6 @@ const App = () => {
66
66
  enableLoadConfigFromService={true}
67
67
  customChannelId="your-channel-id"
68
68
  initMessages={[]}
69
- debugMode={false}
70
69
  fullScreen={false}
71
70
  avatar="https://example.com/avatar.png"
72
71
  botTypingPlaceholder="Bot is typing..."
@@ -295,7 +294,9 @@ config: {
295
294
  - **enableLoadConfigFromService?**: `boolean` - Enable loading configuration from service
296
295
  - **enableUpload?**: `boolean` - Enable file upload functionality. When set, it takes priority over the `embedConfig.enableUpload` setting from the bot provider metadata. Defaults to `false` if not specified in either location. Supports image files (JPEG, PNG, GIF, WebP) up to 20MB per file, maximum 10 files at once.
297
296
  - **enableExport?**: `boolean` - Enable conversation export functionality. When set, it takes priority over the `embedConfig.enableExport` setting from the bot provider metadata. Defaults to `false` if not specified in either location. Adds a download button to the chatbot footer that exports the conversation history as a Markdown file with timestamps and trace IDs.
297
+ - **enableDocumentUpload?**: `boolean` - Enable document file upload functionality. When enabled, users can attach document files to messages. The container-level drag-and-drop overlay is also activated. Defaults to `false`.
298
298
  - **maintainConnectionWhenClosed?**: `boolean` - Maintain connection when chat is closed, defaults to `false`
299
+ - **keepConnectionOnUnmount?**: `boolean` - Keep the in-flight SSE run alive when the chatbot unmounts (e.g. the user navigates to another in-app page) instead of aborting it, so that round can finish on the backend. The detached connection cleans itself up once the run completes, or after a safety timeout if it never finishes. Only covers in-app unmounts — a full page reload / tab close / network loss still tears the connection down. Defaults to `false`
299
300
  - **loadingComponent?**: `ReactNode` - Custom loading component
300
301
  - **asyncInitializers?**: `Record<string, () => Promise<unknown>>` - Asynchronous initializers for app initialization before rendering any component. Good for loading data or other async operations as the initial state. It only works when `enableLoadConfigFromService` is set to `true`.
301
302
  - **customChannelId**: `string` - Custom channel identifier for the chat session
@@ -305,6 +306,8 @@ config: {
305
306
  - **botTypingPlaceholder**: `string` - Text to display while the bot is typing
306
307
  - **inputPlaceholder**: `string` - Custom placeholder text for the message input field
307
308
  - **defaultLinkTarget?**: `'_blank' | '_self' | '_parent' | '_top'` - Default target for opening URIs when not specified by the API. Defaults to `'_blank'` (opens in new tab).
309
+ - **className?**: `string` - Custom CSS class name applied to the chatbot container element.
310
+ - **style?**: `CSSProperties` - Custom inline styles applied to the chatbot container element.
308
311
  - **theme**: `Partial<AsgardThemeContextValue>` - Custom theme configuration
309
312
  - **autoResetChannel?**: `boolean` - Whether to automatically reset channel on mount. Defaults to `true`. When set to `false`, the channel is created without sending `RESET_CHANNEL`, preserving history messages loaded via `initMessages`. See [Auto Reset Channel](#auto-reset-channel) section for details.
310
313
  - **userIdentityHint?**: `string` - Optional user identity hint. When provided, all requests (SSE and file upload) will include the `X-ASGARD-USER-IDENTITY-HINT` header with this value.
@@ -314,6 +317,10 @@ config: {
314
317
  - **onClose**: `() => void` - Callback function when chat is closed
315
318
  - **authState?**: `AuthState` - Authentication state for dynamic API key management. Available states: `'loading'`, `'needApiKey'`, `'authenticated'`, `'error'`, `'invalidApiKey'`
316
319
  - **onApiKeySubmit?**: `(apiKey: string) => Promise<void>` - Callback function when user submits API key for authentication
320
+ - **onAuthError?**: `(error: { isAuthError: boolean; isBotProviderError: boolean; errorDetail?: unknown }) => void` - Callback fired when authentication or bot provider initialization fails. Useful for logging or showing a custom error UI.
321
+ - **onSseError?**: `(error: unknown) => void` - Callback fired when the SSE connection encounters an error.
322
+ - **onErrorClick?**: `(message: ConversationErrorMessage) => void` - Callback fired when the user clicks on an error message bubble. Useful for retry or diagnostic flows.
323
+ - **errorMessageRenderer?**: `(message: ConversationErrorMessage) => ReactNode` - Custom renderer for error message bubbles. When provided, completely replaces the default error UI.
317
324
  - **onTemplateBtnClick?**: `(payload: Record<string, unknown>, eventName: string, raw: string) => void` - Callback for EMIT button actions. See [EMIT Action](#emit-action) section for details.
318
325
  - **messageActions?**: `(message: ConversationBotMessage) => MessageActionConfig[]` - Function to define which action buttons to display for each bot message. Returns an array of `{ id: string, label: string }` objects. See [Message Actions](#message-actions) section for details.
319
326
  - **onMessageAction?**: `(actionId: string, message: ConversationBotMessage) => void` - Callback when a message action button is clicked. Receives the action ID and the associated bot message.
@@ -324,7 +331,7 @@ config: {
324
331
  - **renderMessageContent?**: `(props: MessageContentRendererProps) => ReactNode` - Custom renderer for message content. Allows customizing how messages are rendered based on message properties. See [Custom Message Renderer](#custom-message-renderer) section for details.
325
332
  - **renderToolCallGroup?**: `(props: ToolCallGroupRendererProps) => ReactNode` - Custom renderer for tool call group. Return `null` to hide, return JSX to fully customize, or call `renderDefaultContent()` to use the default UI with optional overrides (e.g., `renderDefaultContent({ title: 'AI is thinking...' })`). See [Tool Call Group Renderer](#tool-call-group-renderer) section for details.
326
333
  - **onBeforeSendMessage?**: `(params: SendMessageParams) => SendMessageParams` - Callback to modify message params before sending. Allows injecting contextual data (payload, metadata) from parent components. See [Before Send Message Hook](#before-send-message-hook) section for details.
327
- - **onSseMessage**: `(response: SseResponse, ctx: AsgardServiceContextValue) => void` - Callback function when SSE message is received. It would be helpful if using with the ref to provide some context and conversation data and do some proactively actions like sending messages to the bot.
334
+ - **onSseMessage**: `(response: SseResponse, ctx: { conversation: Conversation | null }) => void` - Callback fired on every SSE message. `ctx.conversation` is the conversation state at the time the event fires. Combine with `ref.current.serviceContext.sendMessage` to trigger follow-up messages programmatically.
328
335
  - **ref**: `ForwardedRef<ChatbotRef>` - Forwarded ref to access the chatbot instance. It can be used to access the chatbot instance and do some actions like sending messages to the bot. `ChatbotRef` provides `serviceContext` for interacting with the chatbot, and `setInputValue(value: string)` for programmatically setting the textarea text from outside the component.
329
336
 
330
337
  <a id="theme-configuration"></a>
@@ -435,6 +442,7 @@ export interface AsgardThemeContextValue {
435
442
  };
436
443
  };
437
444
  }>;
445
+ AttachmentMessageTemplate: Partial<{ style: CSSProperties }>;
438
446
 
439
447
  // Didn't implement yet
440
448
  VideoMessageTemplate: Partial<{ style: CSSProperties }>;
@@ -519,6 +527,9 @@ const defaultTheme = {
519
527
  HintMessageTemplate: {
520
528
  style: {},
521
529
  },
530
+ AttachmentMessageTemplate: {
531
+ style: {},
532
+ },
522
533
  ImageMessageTemplate: {
523
534
  style: {},
524
535
  },
@@ -588,6 +599,59 @@ const App = () => {
588
599
 
589
600
  Note: When `fullScreen` prop is set to `true`, the chatbot's width and height will be set to `100vw` and `100vh` respectively, and `borderRadius` will be set to zero, regardless of theme settings.
590
601
 
602
+ <a id="hooks"></a>
603
+ <br/>
604
+
605
+ ## Hooks
606
+
607
+ <a id="use-asgard-context"></a>
608
+ <br/>
609
+
610
+ ### useAsgardContext()
611
+
612
+ Returns the internal service context. Use this inside `renderHeader`, `renderFooter`, `renderMenu`, or any component rendered within the Chatbot tree to access runtime state and actions.
613
+
614
+ ```typescript
615
+ import { useAsgardContext } from '@asgard-js/react';
616
+
617
+ function MyCustomFooter() {
618
+ const { sendMessage, isConnecting, pendingInputValue, setPendingInputValue } = useAsgardContext();
619
+ // ...
620
+ }
621
+ ```
622
+
623
+ #### Return Value
624
+
625
+ **State**
626
+
627
+ | Property | Type | Description |
628
+ | ---------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
629
+ | `avatar` | `string \| undefined` | Avatar URL passed to the Chatbot, or loaded from the bot provider metadata. |
630
+ | `title` | `string \| undefined` | Chatbot title passed to the Chatbot, or loaded from the bot provider metadata. |
631
+ | `isOpen` | `boolean` | Whether the chatbot is currently open/visible. |
632
+ | `isResetting` | `boolean` | Whether a channel reset is in progress. Use to disable reset buttons during reset. |
633
+ | `isConnecting` | `boolean` | Whether the SSE channel is currently processing a message. Use to disable the send button. |
634
+ | `messages` | `Map<string, ConversationMessage> \| null` | All messages in the current conversation. `null` before the channel is initialized. |
635
+ | `botTypingPlaceholder` | `string \| undefined` | Typing indicator text (from props or bot provider metadata). |
636
+ | `inputPlaceholder` | `string \| undefined` | Textarea placeholder text (from props or bot provider metadata). |
637
+ | `enableUpload` | `boolean \| undefined` | Whether image upload is enabled (resolved from props / bot provider metadata). |
638
+ | `enableExport` | `boolean \| undefined` | Whether conversation export is enabled. |
639
+ | `enableDocumentUpload` | `boolean \| undefined` | Whether document upload is enabled. |
640
+ | `isFollowingLatest` | `boolean` | Whether auto-scroll to the latest message is active. Becomes `false` when the user scrolls up. |
641
+ | `pendingInputValue` | `string \| null` | Text waiting to be filled into the textarea. Set by `ChatbotRef.setInputValue()` or by `renderMenu`. Read and clear this in `renderFooter` to receive externally pushed text. |
642
+
643
+ **Actions**
644
+
645
+ | Property | Type | Description |
646
+ | ---------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
647
+ | `sendMessage` | `((params: SendMessageParams) => Promise<void>) \| undefined` | Send a message through the channel. `undefined` while the channel is not yet ready or in preview mode — always guard with `?.()`. |
648
+ | `resetChannel` | `(() => void) \| undefined` | Reset the channel (triggers a new welcome message from the bot). |
649
+ | `closeChannel` | `(() => void) \| undefined` | Close the SSE connection without resetting. |
650
+ | `scrollToBottom` | `(behavior?: ScrollBehavior) => void` | Scroll the message list to the bottom. Also resumes auto-scroll (`isFollowingLatest → true`). |
651
+ | `programmaticScrollToBottom` | `(behavior?: ScrollBehavior) => void` | Scroll to bottom without affecting `isFollowingLatest`. |
652
+ | `setFollowingLatest` | `(value: boolean) => void` | Manually set auto-scroll state. |
653
+ | `setPendingInputValue` | `(value: string \| null) => void` | Push text into the textarea from outside. Clear it (`null`) after reading in `renderFooter`. |
654
+
591
655
  <a id="event-handlers"></a>
592
656
  <br/>
593
657
 
@@ -103,6 +103,17 @@ interface ChatbotProps extends AsgardTemplateContextValue {
103
103
  renderToolCallGroup?: AsgardTemplateContextValue['renderToolCallGroup'];
104
104
  /** Whether to automatically reset channel on mount. Defaults to true. When false, the channel is created without sending RESET_CHANNEL, allowing history messages to be preserved via initMessages. */
105
105
  autoResetChannel?: boolean;
106
+ /**
107
+ * When true, the in-flight SSE run is kept alive when the chatbot unmounts
108
+ * (e.g. the user navigates to another in-app page) instead of being aborted,
109
+ * so that round can finish on the backend. The detached connection cleans
110
+ * itself up once the run completes, or after a safety timeout if the run
111
+ * never finishes. Defaults to false — other SDK consumers are unaffected.
112
+ *
113
+ * Note: this only covers in-app unmounts. A full page reload / tab close /
114
+ * network loss still tears the connection down, since the page itself is gone.
115
+ */
116
+ keepConnectionOnUnmount?: boolean;
106
117
  /** Optional user identity hint. When provided, all requests will include the `X-ASGARD-USER-IDENTITY-HINT` header. */
107
118
  userIdentityHint?: string;
108
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../src/components/chatbot/chatbot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../src/components/chatbot/chatbot.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chart-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/chart-template/chart-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoC,MAAM,OAAO,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAwB,MAAM,iBAAiB,CAAC;AAS/E,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAsDlE"}
1
+ {"version":3,"file":"chart-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/chart-template/chart-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuD,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,sBAAsB,EAAwB,MAAM,iBAAiB,CAAC;AAO/E,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CA6FlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/table-template/table-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4D,MAAM,OAAO,CAAC;AAG5F,OAAO,EACL,sBAAsB,EAKvB,MAAM,iBAAiB,CAAC;AAMzB,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AA+ED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CA8LlE"}
1
+ {"version":3,"file":"table-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/table-template/table-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4D,MAAM,OAAO,CAAC;AAE5F,OAAO,EACL,sBAAsB,EAKvB,MAAM,iBAAiB,CAAC;AAOzB,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AA6HD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAuRlE"}
@@ -83,6 +83,11 @@ export interface AsgardServiceContextProviderProps {
83
83
  onMessageSent?: () => void;
84
84
  /** Whether to automatically reset channel on mount. Defaults to true. */
85
85
  autoResetChannel?: boolean;
86
+ /**
87
+ * When true, the in-flight SSE run is kept alive on unmount instead of being
88
+ * aborted, so it can finish on the backend. Defaults to false.
89
+ */
90
+ keepConnectionOnUnmount?: boolean;
86
91
  /**
87
92
  * Fired once the chat channel is ready to accept messages. Re-fires after
88
93
  * channel reset.
@@ -1 +1 @@
1
- {"version":3,"file":"asgard-service-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-service-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,SAAS,EAOV,MAAM,OAAO,CAAC;AACf,OAAO,EAAsC,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjG,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAClD,mBAAmB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAChD,qBAAqB,CAAC,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAClE,cAAc,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6BAA6B;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa;IACb,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,2BAA2B;IAC3B,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,wBAAwB;IACxB,0BAA0B,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAChE,gBAAgB;IAChB,kBAAkB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yBAAyB;IACzB,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD;AAMD,eAAO,MAAM,oBAAoB,oDAuB/B,CAAC;AAEH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC;QAAE,cAAc,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5G,6DAA6D;IAC7D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;IACvE,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iCAAiC,GAAG,SAAS,CAoMhG;AAED,wBAAgB,gBAAgB,IAAI,yBAAyB,CAE5D"}
1
+ {"version":3,"file":"asgard-service-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-service-context.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,11 @@ import { ClientConfig, AsgardServiceClient } from '@asgard-js/core';
2
2
 
3
3
  interface UseAsgardServiceClientProps {
4
4
  config: ClientConfig;
5
+ /**
6
+ * When true, the in-flight SSE run is kept alive on unmount instead of being
7
+ * aborted, so it can finish on the backend. Defaults to false.
8
+ */
9
+ keepConnectionOnUnmount?: boolean;
5
10
  }
6
11
  export declare function useAsgardServiceClient(props: UseAsgardServiceClientProps): AsgardServiceClient | null;
7
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"use-asgard-service-client.d.ts","sourceRoot":"","sources":["../../src/hooks/use-asgard-service-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAa,MAAM,iBAAiB,CAAC;AAG/E,UAAU,2BAA2B;IACnC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,mBAAmB,GAAG,IAAI,CA4DrG"}
1
+ {"version":3,"file":"use-asgard-service-client.d.ts","sourceRoot":"","sources":["../../src/hooks/use-asgard-service-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAa,MAAM,iBAAiB,CAAC;AAU/E,UAAU,2BAA2B;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,mBAAmB,GAAG,IAAI,CAuErG"}
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&family=Space+Grotesk:wght@300..700&display=swap";._api_key_input_7488d_1{width:360px;max-width:calc(100vw - 32px);background-color:var(--asg-color-bg);border-radius:12px;padding:24px;border:.5px solid var(--asg-color-border)}@media(max-width:480px){._api_key_input_7488d_1{width:100%;max-width:none;padding:20px;margin:0 16px}}._api_key_input__header_7488d_18{display:flex;flex-direction:column;gap:8px;align-items:center;margin-bottom:20px}._api_key_input__icon_7488d_26{width:40px;height:40px}._api_key_input__title_7488d_31{margin:0;font-size:20px;font-weight:500;color:#fff}._api_key_input__form_7488d_38{width:100%;display:flex;flex-direction:column;gap:20px}._api_key_input__label_7488d_45{display:block;font-size:14px;color:#ffffffb3;margin-bottom:8px}._api_key_input__input_wrapper_7488d_52{position:relative;width:100%}._api_key_input__input_7488d_52{width:100%;height:48px;padding:0 40px 0 12px;font-size:14px;font-weight:400;color:#fffc;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;outline:none;transition:all .2s ease;box-sizing:border-box}@media(max-width:480px){._api_key_input__input_7488d_52{height:44px;font-size:16px}}._api_key_input__input_7488d_52::placeholder{color:#fff6}._api_key_input__input_7488d_52:focus{border-color:#ffffff4d;background:#ffffff14}._api_key_input__input--error_7488d_84{border-color:#ff4d4f;background:#ff4d4f0d}._api_key_input__input--disabled_7488d_88{opacity:.5;cursor:not-allowed}._api_key_input__toggle_button_7488d_93{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#ffffff80;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}._api_key_input__toggle_button_7488d_93:hover:not(:disabled){color:#ffffffb3;background:#ffffff0d}._api_key_input__toggle_button_7488d_93:disabled{opacity:.3;cursor:not-allowed}._api_key_input__toggle_icon_7488d_118{width:16px;height:16px}._api_key_input__error_message_7488d_123{margin-top:6px;font-size:12px;color:#ff4d4f}._api_key_input__submit_button_7488d_129{width:100%;height:48px;border:none;border-radius:6px;background-color:#5856d6;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;outline:none}@media(max-width:480px){._api_key_input__submit_button_7488d_129{height:44px;font-size:16px}}._api_key_input__submit_button_7488d_129:disabled{opacity:.5;cursor:not-allowed;transform:none}._chatbot_header_luxt4_1{border-bottom:1px solid #434343}._chatbot_header_luxt4_1 ._chatbot_header__content_luxt4_4{margin:0 auto;max-width:1200px;padding:var(--asg-spacing-4);display:flex;justify-content:space-between}._chatbot_header__title_luxt4_12{display:flex;flex-direction:row;align-items:center;gap:var(--asg-spacing-2)}._chatbot_header__title_luxt4_12>h4{margin:0;color:#fff}._chatbot_header__extra_luxt4_23{display:flex;flex-direction:row;align-items:center;gap:var(--asg-spacing-3)}._chatbot_header__extra_luxt4_23>div{width:24px;height:24px;display:flex;justify-content:center;align-items:center}._chatbot_header__extra_luxt4_23>div>svg{width:15px;height:15px;cursor:pointer}._chatbot_header__extra_luxt4_23>div>svg:hover{opacity:.5}._chatbot_body_wrapper_13zns_1{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._chatbot_body_13zns_1{flex:1;min-height:0;overflow-x:hidden;overflow-y:scroll;overscroll-behavior-y:contain}._chatbot_body_13zns_1 ._chatbot_body__content_13zns_16{margin:0 auto;display:flex;flex-direction:column;padding:16px;gap:16px;max-width:1200px}._template_box_rjm7y_1{width:100%;display:flex;gap:8px}._template_box--bot_rjm7y_7._template_box--horizontal_rjm7y_7{flex-direction:row}._template_box--bot_rjm7y_7._template_box--vertical_rjm7y_10{flex-direction:column}._template_box--user_rjm7y_14{flex-direction:row-reverse}._template_box--empty_rjm7y_18{margin-top:-8px}._template_box_content_fs2wk_1{width:100%;display:flex;flex-direction:column;gap:8px}._content_fs2wk_8{width:100%;display:flex;flex-direction:row;gap:8px}._quick_replies_box_zoq7y_1{display:flex;flex-wrap:wrap;gap:8px}._quick_reply_zoq7y_7{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._references_wrapper_qse5c_1{width:100%;display:flex;flex-direction:row;gap:8px;margin-top:4px}._references_box_qse5c_9{display:inline-block;padding:8px 12px;border-radius:8px;word-break:break-all}._references_box--bot_qse5c_16{max-width:70%;background:#585858;color:#fff;border-top-left-radius:0}._references_inner_qse5c_23{width:100%;display:flex;flex-direction:column}._references_header_qse5c_29{display:flex;align-items:center;gap:8px;margin-bottom:8px}._references_title_qse5c_36{font-size:inherit;font-weight:700;white-space:nowrap;color:#8c8c8c}._references_divider_qse5c_43{flex:1;height:1px;min-width:0;background-color:#3d3d3d}._references_list_qse5c_50{display:flex;flex-direction:column;gap:8px}._reference_item_text_qse5c_56,._reference_item_qse5c_56{font-size:.75em;word-break:break-all;color:inherit}._reference_item_qse5c_56{border:none;background:transparent;cursor:pointer;text-align:left;padding:0;transition:opacity .2s}._reference_item_qse5c_56:hover{opacity:.8}._reference_item_qse5c_56:active{opacity:.6}._reference_item_qse5c_56>span{word-break:break-all}._reference_link_qse5c_80{text-decoration:underline}._time_h4puu_1{display:flex;align-items:flex-end;font-size:12px;color:#8c8c8c}._message_actions_mnoya_1{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}._message_action_mnoya_1{font:inherit;font-size:13px;padding:0;border:none;background:transparent;color:#4a9eff;cursor:pointer;text-decoration:none}._message_action_mnoya_1:hover{text-decoration:underline}._bot_avatar_1ch7m_1{flex:0 0 auto;width:24px;height:24px;border-radius:50%}._bot_avatar--invisible_1ch7m_8{visibility:hidden}._card_root_1kvwl_1{width:255px;max-height:400px;border-radius:8px;background:#333;overflow:hidden;display:grid;grid-template-rows:max-content auto}._card_content_1kvwl_11{display:grid;grid-template-rows:max-content 1fr max-content;gap:var(--asg-spacing-2);padding:12px;line-height:1.5em}._card_title_1kvwl_19{color:#fff;margin:0;font-size:15px}._card_description_1kvwl_25{color:#8c8c8c;font-size:13px;font-weight:400;max-height:4.5em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-underline-position:from-font;text-decoration-skip-ink:none}._card_actions_1kvwl_40{display:flex;flex-direction:column;gap:8px}._card_actions_1kvwl_40>button{width:100%;height:32px;line-height:32px;text-align:center;border:none;border-radius:4px;background:#4767eb;color:#fff;font-size:15px;cursor:pointer}._text_609xr_1{display:inline-block;padding:8px 12px;border-radius:8px;color:#fff;word-break:break-all}._text_609xr_1>span{word-break:break-all}._text_609xr_1 p{margin:0 0 .5em}._text_609xr_1 p:last-child{margin-bottom:0}._text--user_609xr_18{max-width:75%;background:#4767eb;border-top-right-radius:0}._text--bot_609xr_24{max-width:70%;background:#585858;border-top-left-radius:0}._content_609xr_30{display:flex;flex-direction:column;gap:8px}._typing-indicator_609xr_36{display:inline-flex;align-items:flex-end;justify-content:center}._typing-indicator_609xr_36 ._dot_609xr_41{width:2px;height:2px;margin:0 2px;background-color:#fff;border-radius:50%;animation:_blink_609xr_1 1.4s infinite ease-in-out both}._typing-indicator_609xr_36 ._dot_609xr_41:nth-child(1){animation-delay:0s}._typing-indicator_609xr_36 ._dot_609xr_41:nth-child(2){animation-delay:.2s}._typing-indicator_609xr_36 ._dot_609xr_41:nth-child(3){animation-delay:.4s}._table_container_609xr_59{overflow-x:scroll}._table_container_609xr_59 table{width:100%;border-collapse:collapse;border-spacing:0;min-width:600px;font-size:14px;background-color:#1f1f1f;color:#ffffffd9;border:1px solid #333;border-radius:4px;overflow:hidden}._table_container_609xr_59 table thead{position:sticky;top:0;z-index:1;background-color:#141414}._table_container_609xr_59 table th,._table_container_609xr_59 table td{padding:12px 16px;border-bottom:1px solid #333;text-align:left;white-space:nowrap;transition:background-color .3s,color .3s}._table_container_609xr_59 table th{font-weight:600;color:#fffffff2}._table_container_609xr_59 table tbody tr:nth-child(odd){background-color:#1c1c1c}._table_container_609xr_59 table tbody tr:nth-child(2n){background-color:#111}._table_container_609xr_59 table tbody tr:hover td{background-color:#262626}._table_container_609xr_59 table tbody tr:last-child td{border-bottom:none}@keyframes _blink_609xr_1{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}._h1_1y0bh_1{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.875rem;line-height:2.25rem}._h2_1y0bh_9{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.5rem;line-height:2rem}._h3_1y0bh_17{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.25rem;line-height:1.75rem}._h4_1y0bh_25{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.125rem;line-height:1.75rem}._h5_1y0bh_33{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1rem;line-height:1.5rem}._h6_1y0bh_41{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:.875rem;line-height:1.25rem}._p_1y0bh_49{margin-bottom:.75rem;line-height:1.6}._p_1y0bh_49:last-child{margin-bottom:0}._ul_1y0bh_57{margin-bottom:.75rem;padding-left:1.5rem;list-style-type:disc;list-style-position:inside;white-space:normal}._ul_1y0bh_57 ._ul_1y0bh_57,._ul_1y0bh_57 ._ol_1y0bh_65{padding-left:1.5rem}._ol_1y0bh_65{margin-bottom:.75rem;padding-left:1.5rem;list-style-type:decimal;list-style-position:inside;white-space:normal}._ol_1y0bh_65 ._ul_1y0bh_57,._ol_1y0bh_65 ._ol_1y0bh_65{padding-left:1.5rem}._li_1y0bh_81{padding:.25rem 0}._li_1y0bh_81>p{display:inline}._a_1y0bh_88{font-weight:500;color:var(--asgard-markdown-link, #3b82f6);text-decoration:underline;overflow-wrap:anywhere}._a_1y0bh_88:hover{color:var(--asgard-markdown-link-hover, #2563eb)}._blockquote_1y0bh_98{margin:.75rem 0;padding:.5rem 1rem;border-left:4px solid var(--asgard-markdown-blockquote-border, rgba(255, 255, 255, .3));color:var(--asgard-markdown-blockquote, rgba(255, 255, 255, .7));font-style:italic}._blockquote_1y0bh_98 p{margin:0}._hr_1y0bh_109{margin:1.5rem 0;border:none;border-top:1px solid var(--asgard-markdown-hr, rgba(255, 255, 255, .2))}._strong_1y0bh_115{font-weight:600}._em_1y0bh_119{font-style:italic}._code_1y0bh_123{padding:.15rem .4rem;font-size:.9em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;background-color:var(--asgard-markdown-code-bg, rgba(255, 255, 255, .1));border-radius:4px}._pre_1y0bh_131{margin:.75rem 0;padding:.75rem 1rem;overflow-x:auto;font-size:.875rem;line-height:1.5;background-color:var(--asgard-markdown-pre-bg, #1a1a1a);border-radius:6px}._pre_1y0bh_131 code{padding:0;font-size:inherit;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;background-color:transparent;border-radius:0}._img_1y0bh_148{max-width:100%;height:auto;border-radius:4px}._table_1y0bh_154{width:100%;margin:.75rem 0;border-collapse:collapse;font-size:.9rem}._thead_1y0bh_161{background-color:var(--asgard-markdown-table-header-bg, rgba(255, 255, 255, .05))}._tbody_1y0bh_165 tr:nth-child(2n){background-color:var(--asgard-markdown-table-row-alt, rgba(255, 255, 255, .02))}._tr_1y0bh_169{border-bottom:1px solid var(--asgard-markdown-table-border, rgba(255, 255, 255, .2))}._th_1y0bh_161,._td_1y0bh_174{padding:.5rem .75rem;text-align:left;border:1px solid var(--asgard-markdown-table-border, rgba(255, 255, 255, .2))}._th_1y0bh_161{font-weight:600}._carousel_root_v06v3_1{width:100%;display:flex;flex-wrap:nowrap;overflow-x:scroll;gap:8px;align-items:stretch}._carousel_root_v06v3_1>div{flex:0 0 auto}._carousel_time_v06v3_13{justify-content:flex-end}._hint_root_1hmle_1{margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:4px 12px;gap:4px;border-radius:2px;background:#58585833;font-size:13px;color:#fff;word-break:break-all}._hint_root_1hmle_1._hint_root__error_1hmle_14{color:var(--asg-color-error)}._hint_root_1hmle_1 ._error_hint_title_1hmle_17{display:flex;align-items:center;gap:var(--asg-spacing-2);color:var(--asg-color-error)}._hint_root_1hmle_1 ._error_hint_message_1hmle_23{font-size:12px;color:#fff}._hint_root_1hmle_1 ._error_hint_message_1hmle_23>span{border-bottom:1px solid white;cursor:pointer}._hint_text_1hmle_32{color:#fff}._time_1hmle_36{font-size:12px;color:#8c8c8c}._text_we7dz_1{display:inline-block;padding:8px 12px;border-radius:8px;color:#fff;word-break:break-all}._text_we7dz_1>span{word-break:break-all}._text_we7dz_1 ._md_container_we7dz_11{display:inline-block}._text_we7dz_1 ._md_container_we7dz_11 p{margin:0}._text--user_we7dz_18{max-width:75%;background:#4767eb;border-top-right-radius:0}._text--bot_we7dz_24{max-width:70%;background:#585858;border-top-left-radius:0}._chart_time_we7dz_30{justify-content:flex-end}._quick_replies_box_we7dz_34{display:flex;flex-wrap:wrap;gap:8px}._quick_reply_we7dz_40{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._image_box_8cz9p_1{display:flex;align-items:center;justify-content:flex-start;max-width:80%;border-radius:8px;box-sizing:border-box}._image_box_8cz9p_1>img{width:100%;border-radius:8px}._time_8cz9p_14{justify-content:flex-end}._quick_replies_box_8cz9p_18{display:flex;flex-wrap:wrap;gap:8px}._full_screen_8cz9p_24{display:flex;align-items:center;justify-content:center;z-index:9999;position:fixed;top:0;left:0;background:#1e1e1ecc;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);width:100%;height:100%;overflow:hidden;box-sizing:border-box}._full_screen_8cz9p_24>._imageOrigin_8cz9p_39{width:100%;max-width:100%;height:100%;max-height:90%;border-radius:8px;background-repeat:no-repeat;background-size:contain;background-position:center}._full_screen_8cz9p_24>._full_screen_close_8cz9p_49{position:absolute;top:16px;right:16px;font-size:24px;cursor:pointer;z-index:9999}._quick_reply_8cz9p_58{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._video_box_119ne_1{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;max-width:80%;border-radius:8px;box-sizing:border-box;gap:8px}._video_preview_119ne_12{position:relative;width:100%;border-radius:8px;overflow:hidden;cursor:pointer;background:#000}._video_preview_119ne_12>img{width:100%;display:block;border-radius:8px}._video_preview_119ne_12:hover ._play_button_119ne_25{transform:translate(-50%,-50%) scale(1.1)}._play_button_119ne_25{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:transform .2s ease;pointer-events:none}._duration_badge_119ne_39{position:absolute;bottom:8px;right:8px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}._video_player_wrapper_119ne_51{position:relative;border-radius:8px;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center}._video_player_119ne_51{width:100%;height:100%;display:block;border-radius:8px;object-fit:contain}._youtube_player_119ne_69{width:100%;height:100%;border-radius:8px;border:none}._video_text_119ne_76{font-size:14px;color:inherit;word-wrap:break-word}._time_119ne_82{justify-content:flex-end}._quick_replies_box_119ne_86{display:flex;flex-wrap:wrap;gap:8px}._quick_reply_119ne_92{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._audio_box_1y8ew_1{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;max-width:60%;min-width:250px;border-radius:8px;box-sizing:border-box;gap:8px}._audio_player_1y8ew_13{width:100%;min-width:250px;border-radius:8px}._audio_player_1y8ew_13::-webkit-media-controls-download-button{display:none}._audio_player_1y8ew_13::-webkit-media-controls-fullscreen-button{display:none}._audio_player_1y8ew_13::-webkit-media-controls-remote-playback-button{display:none}._card_root_1yq01_1{width:255px;max-height:400px;border-radius:8px;overflow:hidden;display:grid;grid-template-rows:max-content auto}._map_container_1yq01_10{width:100%;height:170px;overflow:hidden;position:relative}._map_iframe_1yq01_17{display:block;width:100%;height:100%;border:none;pointer-events:none}._card_content_1yq01_25{display:grid;grid-template-rows:1.5em auto;gap:var(--asg-spacing-2);padding:12px;line-height:1.5em;background:#333;border-radius:0 0 8px 8px}._card_title_1yq01_35{color:#fff;margin:0;font-size:15px;font-weight:600}._card_description_1yq01_42{color:#8c8c8c;font-size:13px;font-weight:400;max-height:4.5em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-underline-position:from-font;text-decoration-skip-ink:none}._message_wrapper_1cjr0_1{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:75%}._text_bubble_1cjr0_9{display:inline-block;padding:8px 12px;border-radius:8px;white-space:pre-wrap;word-break:break-word}._text_bubble--user_1cjr0_16{background:#4767eb;color:#fff;border-top-right-radius:0}._images_container_1cjr0_22{display:flex;flex-direction:column;gap:8px;width:100%}._image_wrapper_1cjr0_29{position:relative;width:300px;aspect-ratio:3/2;border-radius:8px;overflow:hidden;background:#0000000d;box-shadow:0 1px 2px #0000001a;align-self:flex-end}._uploaded_image_1cjr0_40{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;transition:opacity .2s ease}._uploaded_image_1cjr0_40:hover{opacity:.95}._documents_container_1cjr0_52{display:flex;flex-direction:column;gap:8px;width:100%;align-items:flex-end}._document_card_1cjr0_60{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;max-width:300px}._document_icon_1cjr0_69{flex-shrink:0}._document_name_1cjr0_73{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._image_modal_1cjr0_80{position:fixed;inset:0;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;cursor:pointer;padding:20px}._image_modal_1cjr0_80 ._modal_image_1cjr0_94{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #00000080}._tool_call_group_1rad3_1{width:100%;display:flex;flex-direction:column;gap:8px}._tool_call_group__header_1rad3_8{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}._tool_call_group__chevron_1rad3_16{width:16px;height:16px;color:var(--asgard-tool-call-icon, #8c8c8c);transition:transform .2s ease;flex-shrink:0}._tool_call_group__chevron--expanded_1rad3_24{transform:rotate(90deg)}._tool_call_group__title_1rad3_28{font-size:14px;font-weight:500;color:var(--asgard-tool-call-text, #fff)}._tool_call_group__content_1rad3_34{display:flex;flex-direction:column;gap:8px}._tool_call_item_1rad3_40{display:flex;flex-direction:column;background-color:var(--asgard-tool-call-item-bg, #1a1a1a);border-radius:8px;overflow:hidden}._tool_call_item__header_1rad3_48{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}._tool_call_item__header_1rad3_48:hover{background-color:var(--asgard-tool-call-hover, rgba(255, 255, 255, .05))}._tool_call_item__left_1rad3_61{display:flex;align-items:center;gap:8px}._tool_call_item__chevron_1rad3_67{width:14px;height:14px;color:var(--asgard-tool-call-icon, #8c8c8c);transition:transform .2s ease;flex-shrink:0}._tool_call_item__chevron--expanded_1rad3_75{transform:rotate(90deg)}._tool_call_item__label_1rad3_79{font-size:14px;color:var(--asgard-tool-call-text, #fff)}._tool_call_item__status_1rad3_84{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}._tool_call_item__status_icon_1rad3_93{width:20px;height:20px}._tool_call_item__status_icon--completed_1rad3_98{color:#52c41a}._tool_call_item__status_icon--error_1rad3_102{color:#ff4d4f}._tool_call_item__status_icon--pending_1rad3_106{color:#faad14;animation:_pulse_1rad3_1 1.5s ease-in-out infinite}@keyframes _pulse_1rad3_1{0%,to{opacity:1}50%{opacity:.5}}._tool_call_item__content_1rad3_119{padding:0 16px 12px 38px;display:flex;flex-direction:column;gap:8px}._json_viewer_1rad3_126{display:flex;flex-direction:column;border-radius:6px;overflow:hidden;background-color:var(--asgard-json-viewer-bg, #141414);border:1px solid var(--asgard-tool-call-border, #333)}._json_viewer__header_1rad3_135{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background-color:var(--asgard-json-viewer-header-bg, #1f1f1f);border-bottom:1px solid var(--asgard-tool-call-border, #333)}._json_viewer__title_1rad3_144{font-size:12px;font-weight:500;color:var(--asgard-tool-call-text-secondary, #8c8c8c)}._json_viewer__actions_1rad3_150{display:flex;align-items:center;gap:4px}._json_viewer__action_btn_1rad3_156{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--asgard-tool-call-icon, #8c8c8c);cursor:pointer;border-radius:4px;transition:all .2s ease}._json_viewer__action_btn_1rad3_156:hover{background-color:var(--asgard-tool-call-hover, rgba(255, 255, 255, .1));color:var(--asgard-tool-call-text, #fff)}._json_viewer__action_btn_1rad3_156 svg{width:14px;height:14px}._json_viewer__content_1rad3_178{padding:8px 10px;max-height:200px;overflow:auto}._json_viewer__code_1rad3_184{font-family:SF Mono,Monaco,Courier New,monospace;font-size:11px;line-height:1.5;color:var(--asgard-json-viewer-text, #d4d4d4);white-space:pre-wrap;word-break:break-all;margin:0}._json_token--key_1rad3_194{color:#9cdcfe}._json_token--string_1rad3_198{color:#ce9178}._json_token--number_1rad3_202{color:#b5cea8}._json_token--boolean_1rad3_206,._json_token--null_1rad3_210{color:#569cd6}._json_token--punctuation_1rad3_214{color:#d4d4d4}._json_modal__backdrop_1rad3_218{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}._json_modal_1rad3_218{display:flex;flex-direction:column;width:100%;max-width:800px;max-height:80vh;background-color:var(--asgard-json-viewer-bg, #141414);border:1px solid var(--asgard-tool-call-border, #333);border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #00000080}._json_modal__header_1rad3_245{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--asgard-json-viewer-header-bg, #1f1f1f);border-bottom:1px solid var(--asgard-tool-call-border, #333)}._json_modal__title_1rad3_254{font-size:14px;font-weight:500;color:var(--asgard-tool-call-text, #fff)}._json_modal__actions_1rad3_260{display:flex;align-items:center;gap:8px}._json_modal__action_btn_1rad3_266{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--asgard-tool-call-icon, #8c8c8c);cursor:pointer;border-radius:4px;transition:all .2s ease}._json_modal__action_btn_1rad3_266:hover{background-color:var(--asgard-tool-call-hover, rgba(255, 255, 255, .1));color:var(--asgard-tool-call-text, #fff)}._json_modal__action_btn_1rad3_266 svg{width:16px;height:16px}._json_modal__content_1rad3_288{flex:1;padding:16px;overflow:auto}._json_modal__content_1rad3_288 ._json_viewer__code_1rad3_184{font-size:13px;line-height:1.6}._container_u8l6w_1{display:flex;flex-direction:column;gap:8px;width:100%;position:relative;background:#585858;color:#fff;border-radius:8px}._header_u8l6w_12{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px 8px 0 0}._title_u8l6w_20{font-size:14px;font-weight:600}._download_button_u8l6w_25{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:#ffffff1a;color:inherit;cursor:pointer;transition:background-color .2s}._download_button_u8l6w_25:hover{background:#fff3}._download_button_u8l6w_25:active{background:#ffffff4d}._table_wrapper_u8l6w_45{overflow-x:auto;border-radius:8px}._table_u8l6w_45{width:100%;border-collapse:collapse;font-size:13px}._table_header_u8l6w_56{background:#0003}._table_header_cell_u8l6w_60{padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.1)}._table_row_u8l6w_68:hover{background:#ffffff0d}._table_row_u8l6w_68:not(:last-child){border-bottom:1px solid rgba(255,255,255,.1)}._table_cell_u8l6w_75{padding:10px 12px;white-space:nowrap}._pagination_u8l6w_80{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px}._pagination_button_u8l6w_88{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:transparent;color:inherit;cursor:pointer;font-size:14px}._pagination_button_u8l6w_88:hover:not(:disabled){background:#ffffff1a}._pagination_button_u8l6w_88:disabled{opacity:.4;cursor:not-allowed}._pagination_info_u8l6w_109{font-size:13px;padding:0 12px}._empty_state_u8l6w_114{padding:24px;text-align:center;font-size:13px;opacity:.7}._time_u8l6w_121{justify-content:flex-end}._snackbar_u8l6w_125{position:absolute;bottom:-48px;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#282828f2;border-radius:8px;box-shadow:0 4px 12px #0000004d;animation:_slideUp_u8l6w_1 .2s ease-out}@keyframes _slideUp_u8l6w_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._snackbar_text_u8l6w_150{flex:1;font-size:13px;color:#fff}._snackbar_action_u8l6w_156{padding:4px 12px;border:none;border-radius:4px;background:transparent;color:#4fc3f7;font-size:13px;font-weight:500;cursor:pointer}._snackbar_action_u8l6w_156:hover{background:#4fc3f71a}._snackbar_close_u8l6w_170{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#fff9;font-size:18px;cursor:pointer}._snackbar_close_u8l6w_170:hover{background:#ffffff1a;color:#fff}._root_1vqc7_1{display:flex;flex-direction:column;gap:8px;width:320px;max-width:100%}._chip_1vqc7_9{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:#333;border:none;text-align:left;cursor:pointer;color:inherit;font:inherit}._chip_1vqc7_9:hover{background:#404040}._chip_1vqc7_9:focus-visible{outline:2px solid rgb(71,103,235);outline-offset:2px}._icon_box_1vqc7_30{flex:0 0 auto;width:36px;height:36px;border-radius:8px;background:#4767eb;color:#fff;display:flex;align-items:center;justify-content:center}._icon_box_1vqc7_30>svg{width:20px;height:20px}._body_1vqc7_46{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}._title_1vqc7_54{color:#fff;font-size:14px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._text_1vqc7_64{color:#8c8c8c;font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._download_button_1vqc7_73{flex:0 0 auto;width:32px;height:32px;border-radius:8px;background:transparent;border:none;color:#b4b4b4;display:flex;align-items:center;justify-content:center;cursor:pointer}._download_button_1vqc7_73>svg{width:18px;height:18px}._download_button_1vqc7_73:hover{background:#505050;color:#fff}._download_button_1vqc7_73:focus-visible{outline:2px solid rgb(71,103,235);outline-offset:2px}._chatbot_footer_1fl03_1{border-top:1px solid #434343}._chatbot_footer_1fl03_1 ._chatbot_footer__content_1fl03_4{display:grid;align-items:center;grid-template-columns:auto 1fr auto;margin:0 auto;max-width:1200px;padding:var(--asg-spacing-3) var(--asg-spacing-4);gap:var(--asg-spacing-2)}@keyframes _prevent_ios_focus_scroll_1fl03_1{0%{opacity:0}to{opacity:1}}._chatbot_textarea_1fl03_22{font:inherit;font-size:16px;height:40px!important;max-height:240px;padding:8px 8px 8px 12px;background:var(--asg-color-bg);border:1px solid rgb(67,67,67);border-radius:2px;color:#8c8c8c;resize:none;overflow:hidden}._chatbot_textarea_1fl03_22::placeholder{color:var(--asg-color-text-placeholder)}._chatbot_textarea_1fl03_22._chatbot_textarea--focused_1fl03_39{animation:_prevent_ios_focus_scroll_1fl03_1 .01s}._chatbot_submit_button_1fl03_43{font:inherit;width:24px;height:100%;max-height:38px;display:flex;justify-content:center;align-items:center;font-size:16px;border:none;background:transparent;border-radius:50%;color:#fff;cursor:pointer}._chatbot_submit_button_1fl03_43>svg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:auto;min-width:16px;height:60%;max-height:38px;min-height:16px}._chatbot_submit_button_1fl03_43._chatbot_submit_button__disabled_1fl03_68{opacity:.6}._attachment_buttons_1fl03_72,._send_zone_1fl03_78{display:flex;gap:var(--asg-spacing-2);align-items:center}._attachment_menu_container_1fl03_84{position:relative}._attachment_menu_1fl03_84{position:absolute;bottom:100%;left:0;margin-bottom:8px;min-width:160px;border-radius:8px;border:1px solid var(--asg-color-border, #3d3d3d);background:var(--asg-color-bg, #1a1a1a);box-shadow:0 4px 12px #0000004d;overflow:hidden;z-index:100}._attachment_menu_item_1fl03_102{display:flex;align-items:center;gap:var(--asg-spacing-2, 8px);width:100%;padding:10px 14px;border:none;background:transparent;color:var(--asg-color-text, #e0e0e0);font:inherit;font-size:14px;cursor:pointer;transition:background-color .15s ease;text-align:left}._attachment_menu_item_1fl03_102:hover{background:#ffffff1a}._attachment_menu_item_1fl03_102>svg{width:18px;height:18px;flex-shrink:0}._attachment_menu_item_1fl03_102>span{white-space:nowrap}._attachment_button_1fl03_72{font:inherit;width:32px;height:32px;display:flex;justify-content:center;align-items:center;border:none;background:transparent;border-radius:6px;color:#fff;cursor:pointer;transition:all .2s ease;position:relative}._attachment_button_1fl03_72:disabled{opacity:.6;cursor:not-allowed}._attachment_button_1fl03_72>svg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:18px;height:18px}._file_input_hidden_1fl03_156{display:none}._file_preview_container_1fl03_160{width:100%;max-width:1200px;overflow-x:auto;margin:0 auto;padding:var(--asg-spacing-3, 12px);padding-bottom:0}._file_preview_grid_1fl03_169{display:flex;gap:var(--asg-spacing-2, 8px);flex-wrap:nowrap}._file_preview_item_1fl03_175{position:relative;background:var(--asg-color-bg-secondary, #2d2d2d);border:1px solid var(--asg-color-border, #3d3d3d);border-radius:var(--asg-radius-md, 8px);overflow:hidden;width:100px;height:80px;flex-shrink:0}._file_preview_image_area_1fl03_186{width:100%;height:100%;background:var(--asg-color-bg-dark, #1a1a1a);display:flex;align-items:center;justify-content:center;position:relative}._file_preview_image_1fl03_186{max-width:100%;max-height:100%;object-fit:contain;cursor:pointer;transition:opacity .2s ease}._file_preview_image_1fl03_186:hover{opacity:.8}._file_remove_button_1fl03_207{position:absolute;top:var(--asg-spacing-1, 6px);right:var(--asg-spacing-1, 6px);width:20px;height:20px;border-radius:4px;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border:1px solid rgba(255,255,255,.1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0}._file_upload_overlay_1fl03_226{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center}@keyframes _spin_1fl03_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._file_upload_spinner_1fl03_243{width:24px;height:24px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_spin_1fl03_1 .8s linear infinite}._file_preview_item__error_1fl03_252{border-color:#ef4444}._file_error_overlay_1fl03_256{position:absolute;inset:0;background:#ef444433;display:flex;align-items:center;justify-content:center}._file_error_icon_1fl03_265{width:24px;height:24px;color:#ef4444}._image_modal_1fl03_271{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}._image_modal_content_1fl03_283{display:flex;flex-direction:column;align-items:center;gap:var(--asg-spacing-4, 16px)}._image_modal_image_1fl03_290{max-width:90vw;max-height:75vh;object-fit:contain;border-radius:var(--asg-radius-lg, 12px);box-shadow:0 20px 60px #0009;-webkit-user-select:none;user-select:none}._image_modal_close_button_1fl03_299{position:absolute;top:var(--asg-spacing-5, 20px);right:var(--asg-spacing-5, 20px);width:36px;height:36px;border-radius:50%;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;padding:0;transition:all .2s ease}._image_modal_close_button_1fl03_299:hover{background:#fff3;transform:scale(1.1)}._image_modal_close_button_1fl03_299:active{transform:scale(.95)}._document_preview_grid_1fl03_326{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--asg-spacing-2, 8px)}@media(max-width:768px){._document_preview_grid_1fl03_326{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}._document_preview_item_1fl03_337{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--asg-spacing-2, 8px);padding:var(--asg-spacing-3, 12px);background:var(--asg-color-bg-secondary, #2d2d2d);border:1px solid var(--asg-color-border, #3d3d3d);border-radius:var(--asg-radius-md, 8px);aspect-ratio:3/2;max-width:250px}._document_preview_icon_wrapper_1fl03_352{display:flex;align-items:center;justify-content:center;flex:1}._document_preview_icon_1fl03_352{width:48px;height:48px;color:var(--asg-color-text-secondary, #a0a0a0)}._document_preview_name_1fl03_365{font-size:12px;color:var(--asg-color-text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}._chatbot_root_htsl5_2{--asg-color-blue-1: #edf0fd;--asg-color-blue-2: #d3dbfa;--asg-color-blue-3: #b0bef6;--asg-color-blue-4: #6882ef;--asg-color-blue-5: #8b9ff2;--asg-color-blue-6: #4767eb;--asg-color-blue-7: #3c58c8;--asg-color-blue-8: #3249a7;--asg-color-blue-9: #283b86;--asg-color-blue-10: #202e6a;--asg-color-orange-1: #ffeded;--asg-color-orange-2: #ffd4d5;--asg-color-orange-3: #ffb2b3;--asg-color-orange-4: #ff8f90;--asg-color-orange-5: #ff6d6f;--asg-color-orange-6: #ff4d4f;--asg-color-orange-7: #d94143;--asg-color-orange-8: #b53738;--asg-color-orange-9: #912c2d;--asg-color-orange-10: #732324;--asg-color-green-1: #eef9e8;--asg-color-green-2: #d5f1c8;--asg-color-green-3: #b5e69d;--asg-color-green-4: #92da6f;--asg-color-green-5: #71cf43;--asg-color-green-6: #52c41a;--asg-color-green-7: #46a716;--asg-color-green-8: #3a8b12;--asg-color-green-9: #2f700f;--asg-color-green-10: #25580c;--asg-color-yellow-1: #fef7eb;--asg-color-yellow-2: #fdebcf;--asg-color-yellow-3: #fcdba9;--asg-color-yellow-4: #facb82;--asg-color-yellow-5: #f8bb5c;--asg-color-yellow-6: #f7ac38;--asg-color-yellow-7: #d29230;--asg-color-yellow-8: #af7a28;--asg-color-yellow-9: #8d6220;--asg-color-yellow-10: #6f4d19;--asg-color-grey-1: #f3f3f3;--asg-color-grey-2: #e2e2e2;--asg-color-grey-3: #cbcbcb;--asg-color-grey-4: #b2b2b2;--asg-color-grey-5: #9b9b9b;--asg-color-grey-6: #585858;--asg-color-grey-7: #717171;--asg-color-grey-8: #5e5e5e;--asg-color-grey-9: #4c4c4c;--asg-color-grey-10: #3c3c3c;--asg-color-primary: #4767eb;--asg-color-primary-light: #8b9ff2;--asg-color-primary-dark: #3249a7;--asg-color-primary-on-primary: #ffffff;--asg-color-primary-hover-bg: rgba(139, 159, 242, .15);--asg-color-primary-selected-bg: rgba(71, 103, 235, .2);--asg-color-secondary: #585858;--asg-color-secondary-light: #b2b2b2;--asg-color-secondary-dark: #4c4c4c;--asg-color-secondary-on-secondary: #ffffff;--asg-color-secondary-hover-bg: rgba(178, 178, 178, .15);--asg-color-secondary-selected-bg: rgba(88, 88, 88, .2);--asg-color-error: #ff4d4f;--asg-color-error-light: #ff6d6f;--asg-color-error-dark: #d94143;--asg-color-error-on-error: #ffffff;--asg-color-error-hover-bg: rgba(255, 109, 111, .15);--asg-color-error-selected-bg: rgba(255, 77, 79, .2);--asg-color-warning: #f7ac38;--asg-color-warning-light: #f8bb5c;--asg-color-warning-dark: #af7a28;--asg-color-warning-on-warning: #ffffff;--asg-color-warning-hover-bg: rgba(248, 187, 92, .15);--asg-color-warning-selected-bg: rgba(247, 172, 56, .2);--asg-color-success: #52c41a;--asg-color-success-light: #71cf43;--asg-color-success-dark: #3a8b12;--asg-color-success-on-success: #ffffff;--asg-color-success-hover-bg: rgba(113, 207, 67, .15);--asg-color-success-selected-bg: rgba(82, 196, 26, .2);--asg-color-action-active: #ffffff;--asg-color-action-inactive: #8c8c8c;--asg-color-action-disabled: #595959;--asg-color-action-disabled-bg: #393939;--asg-color-text-primary: #ffffff;--asg-color-text-secondary: #8c8c8c;--asg-color-text-disabled: #595959;--asg-color-text-placeholder: #8c8c8c;--asg-color-bg: #141414;--asg-color-surface: #1f1f1f;--asg-color-divider: #333333;--asg-color-border: #434343;--asg-color-overlay-dark: rgba(0, 0, 0, .5);--asg-color-overlay-light: rgba(31, 31, 31, .9);--asg-radius-none: 0px;--asg-radius-xxs: 2px;--asg-radius-xs: 4px;--asg-radius-s: 6px;--asg-radius-md: 8px;--asg-radius-lg: 10px;--asg-radius-xl: 12px;--asg-radius-2xl: 16px;--asg-radius-3xl: 20px;--asg-radius-4xl: 24px;--asg-spacing-1: 4px;--asg-spacing-2: 8px;--asg-spacing-3: 12px;--asg-spacing-4: 16px;--asg-spacing-5: 24px;--asg-spacing-6: 32px;--asg-spacing-7: 40px;--asg-spacing-8: 48px;--asg-spacing-9: 64px;--asg-spacing-10: 96px;--asg-spacing-11: 160px;font-family:Space Grotesk,Noto Sans TC,sans-serif;height:100%;min-height:0}._chatbot_root_htsl5_2 *{line-height:1.5;box-sizing:border-box;min-width:0}._full_screen_htsl5_128{position:fixed;inset:0;background-color:var(--asg-color-bg)}._full_screen_htsl5_128 ._chatbot_container_htsl5_133{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}._chatbot_container_htsl5_133{display:grid;grid-template-rows:max-content 1fr max-content max-content;background-color:var(--asg-color-bg);overflow:hidden;overscroll-behavior:contain;position:relative}._container_32b6s_1{display:flex;flex-direction:column;align-items:center;width:360px;max-width:calc(100vw - 32px);padding:24px;gap:20px;background-color:var(--asg-color-bg);border:.5px solid var(--asg-color-border);border-radius:12px}@media(max-width:480px){._container_32b6s_1{width:100%;max-width:none;padding:20px;margin:0 16px}}._avatar_32b6s_22{width:40px;height:40px;display:flex;align-items:center;justify-content:center}._avatar_32b6s_22 svg,._avatar_32b6s_22 img{width:100%;height:100%}._message_32b6s_35{color:#ffffffb3;font-size:14px;line-height:1.5;text-align:center}._overlay_1r6z5_1{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background-color:#00000026;pointer-events:none}._overlay__content_1r6z5_12{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 48px;border:2px dashed var(--asg-color-primary, #6366f1);border-radius:16px;background-color:#ffffffe6}._overlay__icon_1r6z5_23{color:var(--asg-color-primary, #6366f1)}._overlay__text_1r6z5_27{font-size:16px;font-weight:500;color:var(--asg-color-primary, #6366f1)}._backdrop_1dyy6_1{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}._modal_1dyy6_12{display:flex;flex-direction:column;width:100%;max-width:520px;max-height:85vh;background-color:var(--asgard-consent-modal-bg, var(--asg-color-surface, #1f1f1f));border-radius:12px;overflow:hidden;box-shadow:0 16px 48px #0000003d}._header_1dyy6_24{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--asgard-consent-modal-border, var(--asg-color-border, #434343))}._title_1dyy6_33{font-size:15px;font-weight:600;line-height:1.4;color:var(--asgard-consent-modal-headline, var(--asg-color-text-primary, #ffffff));word-break:break-word}._title_tool_1dyy6_41{color:var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5))}._close_btn_1dyy6_45{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c));font-family:inherit;cursor:pointer;transition:background-color .15s ease}._close_btn_1dyy6_45:hover{background-color:#ffffff14}._close_btn_1dyy6_45 svg{width:16px;height:16px}._content_1dyy6_68{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}._meta_row_1dyy6_76{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c))}._meta_row_1dyy6_76 strong{color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff));font-weight:500}._input_section_1dyy6_89{display:flex;flex-direction:column;gap:8px}._input_toggle_1dyy6_95{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c));font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;padding:0;align-self:flex-start}._input_toggle_1dyy6_95:hover{color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff))}._input_toggle_1dyy6_95 svg{width:14px;height:14px;transition:transform .2s ease}._input_toggle_expanded_1dyy6_118 svg{transform:rotate(90deg)}._input_viewer_1dyy6_122{background-color:var(--asgard-consent-modal-code-bg, #0f172a);border-radius:8px;overflow:hidden;border:1px solid var(--asgard-consent-modal-code-border, #1e293b)}._deny_reason_1dyy6_129{display:flex;flex-direction:column;gap:6px}._deny_reason_1dyy6_129 label{font-size:13px;font-weight:500;color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff))}._deny_reason_1dyy6_129 textarea{width:100%;min-height:72px;max-height:160px;padding:8px 10px;font-size:13px;line-height:1.5;border-radius:6px;border:1px solid var(--asgard-consent-modal-border, var(--asg-color-border, #434343));color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff));background-color:var(--asgard-consent-modal-input-bg, var(--asg-color-bg, #141414));resize:vertical;font-family:inherit}._deny_reason_1dyy6_129 textarea:focus{outline:none;border-color:var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5));box-shadow:0 0 0 3px color-mix(in srgb,var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5)) 15%,transparent)}._actions_1dyy6_161{display:flex;flex-direction:column;gap:8px;padding:12px 20px 20px}._action_btn_1dyy6_168{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}._action_btn_1dyy6_168:disabled{cursor:not-allowed;opacity:.6}._action_primary_1dyy6_186{background-color:var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5));color:var(--asgard-consent-modal-primary-fg, #000000)}._action_primary_1dyy6_186:hover:not(:disabled){background-color:var(--asgard-consent-modal-accent-hover, var(--asg-color-primary-dark, #4338ca))}._action_secondary_1dyy6_194{background-color:transparent;color:var(--asgard-consent-modal-accent, var(--asg-color-text-primary, #ffffff));border-color:transparent}._action_secondary_1dyy6_194:hover:not(:disabled){background-color:#ffffff0f}._action_danger_1dyy6_203{background-color:transparent;color:var(--asgard-consent-modal-danger, var(--asg-color-error, #dc2626));border-color:transparent}._action_danger_1dyy6_203:hover:not(:disabled){background-color:color-mix(in srgb,var(--asgard-consent-modal-danger, var(--asg-color-error, #dc2626)) 8%,transparent)}._pending_indicator_1dyy6_212{font-size:12px;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c));padding:0 20px 8px}._chatbot__auth_state_container_1hs4h_1{display:flex;align-items:center;justify-content:center;flex:1;padding:20px}._chatbot__error_state_1hs4h_9{color:#ff6b6b}._chatbot__error_state__content_1hs4h_13{text-align:center}._chatbot__error_state__icon_1hs4h_17{font-size:16px;margin-bottom:8px}
1
+ @import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&family=Space+Grotesk:wght@300..700&display=swap";._api_key_input_7488d_1{width:360px;max-width:calc(100vw - 32px);background-color:var(--asg-color-bg);border-radius:12px;padding:24px;border:.5px solid var(--asg-color-border)}@media(max-width:480px){._api_key_input_7488d_1{width:100%;max-width:none;padding:20px;margin:0 16px}}._api_key_input__header_7488d_18{display:flex;flex-direction:column;gap:8px;align-items:center;margin-bottom:20px}._api_key_input__icon_7488d_26{width:40px;height:40px}._api_key_input__title_7488d_31{margin:0;font-size:20px;font-weight:500;color:#fff}._api_key_input__form_7488d_38{width:100%;display:flex;flex-direction:column;gap:20px}._api_key_input__label_7488d_45{display:block;font-size:14px;color:#ffffffb3;margin-bottom:8px}._api_key_input__input_wrapper_7488d_52{position:relative;width:100%}._api_key_input__input_7488d_52{width:100%;height:48px;padding:0 40px 0 12px;font-size:14px;font-weight:400;color:#fffc;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;outline:none;transition:all .2s ease;box-sizing:border-box}@media(max-width:480px){._api_key_input__input_7488d_52{height:44px;font-size:16px}}._api_key_input__input_7488d_52::placeholder{color:#fff6}._api_key_input__input_7488d_52:focus{border-color:#ffffff4d;background:#ffffff14}._api_key_input__input--error_7488d_84{border-color:#ff4d4f;background:#ff4d4f0d}._api_key_input__input--disabled_7488d_88{opacity:.5;cursor:not-allowed}._api_key_input__toggle_button_7488d_93{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#ffffff80;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}._api_key_input__toggle_button_7488d_93:hover:not(:disabled){color:#ffffffb3;background:#ffffff0d}._api_key_input__toggle_button_7488d_93:disabled{opacity:.3;cursor:not-allowed}._api_key_input__toggle_icon_7488d_118{width:16px;height:16px}._api_key_input__error_message_7488d_123{margin-top:6px;font-size:12px;color:#ff4d4f}._api_key_input__submit_button_7488d_129{width:100%;height:48px;border:none;border-radius:6px;background-color:#5856d6;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;outline:none}@media(max-width:480px){._api_key_input__submit_button_7488d_129{height:44px;font-size:16px}}._api_key_input__submit_button_7488d_129:disabled{opacity:.5;cursor:not-allowed;transform:none}._chatbot_header_luxt4_1{border-bottom:1px solid #434343}._chatbot_header_luxt4_1 ._chatbot_header__content_luxt4_4{margin:0 auto;max-width:1200px;padding:var(--asg-spacing-4);display:flex;justify-content:space-between}._chatbot_header__title_luxt4_12{display:flex;flex-direction:row;align-items:center;gap:var(--asg-spacing-2)}._chatbot_header__title_luxt4_12>h4{margin:0;color:#fff}._chatbot_header__extra_luxt4_23{display:flex;flex-direction:row;align-items:center;gap:var(--asg-spacing-3)}._chatbot_header__extra_luxt4_23>div{width:24px;height:24px;display:flex;justify-content:center;align-items:center}._chatbot_header__extra_luxt4_23>div>svg{width:15px;height:15px;cursor:pointer}._chatbot_header__extra_luxt4_23>div>svg:hover{opacity:.5}._chatbot_body_wrapper_13zns_1{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._chatbot_body_13zns_1{flex:1;min-height:0;overflow-x:hidden;overflow-y:scroll;overscroll-behavior-y:contain}._chatbot_body_13zns_1 ._chatbot_body__content_13zns_16{margin:0 auto;display:flex;flex-direction:column;padding:16px;gap:16px;max-width:1200px}._template_box_rjm7y_1{width:100%;display:flex;gap:8px}._template_box--bot_rjm7y_7._template_box--horizontal_rjm7y_7{flex-direction:row}._template_box--bot_rjm7y_7._template_box--vertical_rjm7y_10{flex-direction:column}._template_box--user_rjm7y_14{flex-direction:row-reverse}._template_box--empty_rjm7y_18{margin-top:-8px}._template_box_content_fs2wk_1{width:100%;display:flex;flex-direction:column;gap:8px}._content_fs2wk_8{width:100%;display:flex;flex-direction:row;gap:8px}._quick_replies_box_zoq7y_1{display:flex;flex-wrap:wrap;gap:8px}._quick_reply_zoq7y_7{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._references_wrapper_qse5c_1{width:100%;display:flex;flex-direction:row;gap:8px;margin-top:4px}._references_box_qse5c_9{display:inline-block;padding:8px 12px;border-radius:8px;word-break:break-all}._references_box--bot_qse5c_16{max-width:70%;background:#585858;color:#fff;border-top-left-radius:0}._references_inner_qse5c_23{width:100%;display:flex;flex-direction:column}._references_header_qse5c_29{display:flex;align-items:center;gap:8px;margin-bottom:8px}._references_title_qse5c_36{font-size:inherit;font-weight:700;white-space:nowrap;color:#8c8c8c}._references_divider_qse5c_43{flex:1;height:1px;min-width:0;background-color:#3d3d3d}._references_list_qse5c_50{display:flex;flex-direction:column;gap:8px}._reference_item_text_qse5c_56,._reference_item_qse5c_56{font-size:.75em;word-break:break-all;color:inherit}._reference_item_qse5c_56{border:none;background:transparent;cursor:pointer;text-align:left;padding:0;transition:opacity .2s}._reference_item_qse5c_56:hover{opacity:.8}._reference_item_qse5c_56:active{opacity:.6}._reference_item_qse5c_56>span{word-break:break-all}._reference_link_qse5c_80{text-decoration:underline}._time_h4puu_1{display:flex;align-items:flex-end;font-size:12px;color:#8c8c8c}._message_actions_mnoya_1{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}._message_action_mnoya_1{font:inherit;font-size:13px;padding:0;border:none;background:transparent;color:#4a9eff;cursor:pointer;text-decoration:none}._message_action_mnoya_1:hover{text-decoration:underline}._bot_avatar_1ch7m_1{flex:0 0 auto;width:24px;height:24px;border-radius:50%}._bot_avatar--invisible_1ch7m_8{visibility:hidden}._card_root_1kvwl_1{width:255px;max-height:400px;border-radius:8px;background:#333;overflow:hidden;display:grid;grid-template-rows:max-content auto}._card_content_1kvwl_11{display:grid;grid-template-rows:max-content 1fr max-content;gap:var(--asg-spacing-2);padding:12px;line-height:1.5em}._card_title_1kvwl_19{color:#fff;margin:0;font-size:15px}._card_description_1kvwl_25{color:#8c8c8c;font-size:13px;font-weight:400;max-height:4.5em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-underline-position:from-font;text-decoration-skip-ink:none}._card_actions_1kvwl_40{display:flex;flex-direction:column;gap:8px}._card_actions_1kvwl_40>button{width:100%;height:32px;line-height:32px;text-align:center;border:none;border-radius:4px;background:#4767eb;color:#fff;font-size:15px;cursor:pointer}._text_609xr_1{display:inline-block;padding:8px 12px;border-radius:8px;color:#fff;word-break:break-all}._text_609xr_1>span{word-break:break-all}._text_609xr_1 p{margin:0 0 .5em}._text_609xr_1 p:last-child{margin-bottom:0}._text--user_609xr_18{max-width:75%;background:#4767eb;border-top-right-radius:0}._text--bot_609xr_24{max-width:70%;background:#585858;border-top-left-radius:0}._content_609xr_30{display:flex;flex-direction:column;gap:8px}._typing-indicator_609xr_36{display:inline-flex;align-items:flex-end;justify-content:center}._typing-indicator_609xr_36 ._dot_609xr_41{width:2px;height:2px;margin:0 2px;background-color:#fff;border-radius:50%;animation:_blink_609xr_1 1.4s infinite ease-in-out both}._typing-indicator_609xr_36 ._dot_609xr_41:nth-child(1){animation-delay:0s}._typing-indicator_609xr_36 ._dot_609xr_41:nth-child(2){animation-delay:.2s}._typing-indicator_609xr_36 ._dot_609xr_41:nth-child(3){animation-delay:.4s}._table_container_609xr_59{overflow-x:scroll}._table_container_609xr_59 table{width:100%;border-collapse:collapse;border-spacing:0;min-width:600px;font-size:14px;background-color:#1f1f1f;color:#ffffffd9;border:1px solid #333;border-radius:4px;overflow:hidden}._table_container_609xr_59 table thead{position:sticky;top:0;z-index:1;background-color:#141414}._table_container_609xr_59 table th,._table_container_609xr_59 table td{padding:12px 16px;border-bottom:1px solid #333;text-align:left;white-space:nowrap;transition:background-color .3s,color .3s}._table_container_609xr_59 table th{font-weight:600;color:#fffffff2}._table_container_609xr_59 table tbody tr:nth-child(odd){background-color:#1c1c1c}._table_container_609xr_59 table tbody tr:nth-child(2n){background-color:#111}._table_container_609xr_59 table tbody tr:hover td{background-color:#262626}._table_container_609xr_59 table tbody tr:last-child td{border-bottom:none}@keyframes _blink_609xr_1{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}._h1_1y0bh_1{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.875rem;line-height:2.25rem}._h2_1y0bh_9{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.5rem;line-height:2rem}._h3_1y0bh_17{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.25rem;line-height:1.75rem}._h4_1y0bh_25{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1.125rem;line-height:1.75rem}._h5_1y0bh_33{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:1rem;line-height:1.5rem}._h6_1y0bh_41{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;font-size:.875rem;line-height:1.25rem}._p_1y0bh_49{margin-bottom:.75rem;line-height:1.6}._p_1y0bh_49:last-child{margin-bottom:0}._ul_1y0bh_57{margin-bottom:.75rem;padding-left:1.5rem;list-style-type:disc;list-style-position:inside;white-space:normal}._ul_1y0bh_57 ._ul_1y0bh_57,._ul_1y0bh_57 ._ol_1y0bh_65{padding-left:1.5rem}._ol_1y0bh_65{margin-bottom:.75rem;padding-left:1.5rem;list-style-type:decimal;list-style-position:inside;white-space:normal}._ol_1y0bh_65 ._ul_1y0bh_57,._ol_1y0bh_65 ._ol_1y0bh_65{padding-left:1.5rem}._li_1y0bh_81{padding:.25rem 0}._li_1y0bh_81>p{display:inline}._a_1y0bh_88{font-weight:500;color:var(--asgard-markdown-link, #3b82f6);text-decoration:underline;overflow-wrap:anywhere}._a_1y0bh_88:hover{color:var(--asgard-markdown-link-hover, #2563eb)}._blockquote_1y0bh_98{margin:.75rem 0;padding:.5rem 1rem;border-left:4px solid var(--asgard-markdown-blockquote-border, rgba(255, 255, 255, .3));color:var(--asgard-markdown-blockquote, rgba(255, 255, 255, .7));font-style:italic}._blockquote_1y0bh_98 p{margin:0}._hr_1y0bh_109{margin:1.5rem 0;border:none;border-top:1px solid var(--asgard-markdown-hr, rgba(255, 255, 255, .2))}._strong_1y0bh_115{font-weight:600}._em_1y0bh_119{font-style:italic}._code_1y0bh_123{padding:.15rem .4rem;font-size:.9em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;background-color:var(--asgard-markdown-code-bg, rgba(255, 255, 255, .1));border-radius:4px}._pre_1y0bh_131{margin:.75rem 0;padding:.75rem 1rem;overflow-x:auto;font-size:.875rem;line-height:1.5;background-color:var(--asgard-markdown-pre-bg, #1a1a1a);border-radius:6px}._pre_1y0bh_131 code{padding:0;font-size:inherit;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;background-color:transparent;border-radius:0}._img_1y0bh_148{max-width:100%;height:auto;border-radius:4px}._table_1y0bh_154{width:100%;margin:.75rem 0;border-collapse:collapse;font-size:.9rem}._thead_1y0bh_161{background-color:var(--asgard-markdown-table-header-bg, rgba(255, 255, 255, .05))}._tbody_1y0bh_165 tr:nth-child(2n){background-color:var(--asgard-markdown-table-row-alt, rgba(255, 255, 255, .02))}._tr_1y0bh_169{border-bottom:1px solid var(--asgard-markdown-table-border, rgba(255, 255, 255, .2))}._th_1y0bh_161,._td_1y0bh_174{padding:.5rem .75rem;text-align:left;border:1px solid var(--asgard-markdown-table-border, rgba(255, 255, 255, .2))}._th_1y0bh_161{font-weight:600}._carousel_root_v06v3_1{width:100%;display:flex;flex-wrap:nowrap;overflow-x:scroll;gap:8px;align-items:stretch}._carousel_root_v06v3_1>div{flex:0 0 auto}._carousel_time_v06v3_13{justify-content:flex-end}._hint_root_1hmle_1{margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:4px 12px;gap:4px;border-radius:2px;background:#58585833;font-size:13px;color:#fff;word-break:break-all}._hint_root_1hmle_1._hint_root__error_1hmle_14{color:var(--asg-color-error)}._hint_root_1hmle_1 ._error_hint_title_1hmle_17{display:flex;align-items:center;gap:var(--asg-spacing-2);color:var(--asg-color-error)}._hint_root_1hmle_1 ._error_hint_message_1hmle_23{font-size:12px;color:#fff}._hint_root_1hmle_1 ._error_hint_message_1hmle_23>span{border-bottom:1px solid white;cursor:pointer}._hint_text_1hmle_32{color:#fff}._time_1hmle_36{font-size:12px;color:#8c8c8c}._container_1erxu_1{display:flex;flex-direction:column;gap:12px;width:100%;background:#585858;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px}._header_1erxu_13{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}._title_box_1erxu_20{display:flex;flex-direction:column;gap:4px;min-width:0}._title_1erxu_20{font-size:14px;font-weight:600}._description_1erxu_32{font-size:13px;line-height:1.5;opacity:.75}._chart_select_1erxu_38{flex-shrink:0;font:inherit;font-size:13px;padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:inherit;cursor:pointer}._chart_select_1erxu_38:hover{background:#ffffff1a}._chart_wrapper_1erxu_53{width:100%;overflow-x:auto;background:#fff;border-radius:6px;padding:8px}._chart_time_1erxu_61{justify-content:flex-end}._image_box_8cz9p_1{display:flex;align-items:center;justify-content:flex-start;max-width:80%;border-radius:8px;box-sizing:border-box}._image_box_8cz9p_1>img{width:100%;border-radius:8px}._time_8cz9p_14{justify-content:flex-end}._quick_replies_box_8cz9p_18{display:flex;flex-wrap:wrap;gap:8px}._full_screen_8cz9p_24{display:flex;align-items:center;justify-content:center;z-index:9999;position:fixed;top:0;left:0;background:#1e1e1ecc;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);width:100%;height:100%;overflow:hidden;box-sizing:border-box}._full_screen_8cz9p_24>._imageOrigin_8cz9p_39{width:100%;max-width:100%;height:100%;max-height:90%;border-radius:8px;background-repeat:no-repeat;background-size:contain;background-position:center}._full_screen_8cz9p_24>._full_screen_close_8cz9p_49{position:absolute;top:16px;right:16px;font-size:24px;cursor:pointer;z-index:9999}._quick_reply_8cz9p_58{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._video_box_119ne_1{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;max-width:80%;border-radius:8px;box-sizing:border-box;gap:8px}._video_preview_119ne_12{position:relative;width:100%;border-radius:8px;overflow:hidden;cursor:pointer;background:#000}._video_preview_119ne_12>img{width:100%;display:block;border-radius:8px}._video_preview_119ne_12:hover ._play_button_119ne_25{transform:translate(-50%,-50%) scale(1.1)}._play_button_119ne_25{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:transform .2s ease;pointer-events:none}._duration_badge_119ne_39{position:absolute;bottom:8px;right:8px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}._video_player_wrapper_119ne_51{position:relative;border-radius:8px;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center}._video_player_119ne_51{width:100%;height:100%;display:block;border-radius:8px;object-fit:contain}._youtube_player_119ne_69{width:100%;height:100%;border-radius:8px;border:none}._video_text_119ne_76{font-size:14px;color:inherit;word-wrap:break-word}._time_119ne_82{justify-content:flex-end}._quick_replies_box_119ne_86{display:flex;flex-wrap:wrap;gap:8px}._quick_reply_119ne_92{font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid #434343;background:#58585833;color:#fff;cursor:pointer}._audio_box_1y8ew_1{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;max-width:60%;min-width:250px;border-radius:8px;box-sizing:border-box;gap:8px}._audio_player_1y8ew_13{width:100%;min-width:250px;border-radius:8px}._audio_player_1y8ew_13::-webkit-media-controls-download-button{display:none}._audio_player_1y8ew_13::-webkit-media-controls-fullscreen-button{display:none}._audio_player_1y8ew_13::-webkit-media-controls-remote-playback-button{display:none}._card_root_1yq01_1{width:255px;max-height:400px;border-radius:8px;overflow:hidden;display:grid;grid-template-rows:max-content auto}._map_container_1yq01_10{width:100%;height:170px;overflow:hidden;position:relative}._map_iframe_1yq01_17{display:block;width:100%;height:100%;border:none;pointer-events:none}._card_content_1yq01_25{display:grid;grid-template-rows:1.5em auto;gap:var(--asg-spacing-2);padding:12px;line-height:1.5em;background:#333;border-radius:0 0 8px 8px}._card_title_1yq01_35{color:#fff;margin:0;font-size:15px;font-weight:600}._card_description_1yq01_42{color:#8c8c8c;font-size:13px;font-weight:400;max-height:4.5em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-underline-position:from-font;text-decoration-skip-ink:none}._message_wrapper_1cjr0_1{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:75%}._text_bubble_1cjr0_9{display:inline-block;padding:8px 12px;border-radius:8px;white-space:pre-wrap;word-break:break-word}._text_bubble--user_1cjr0_16{background:#4767eb;color:#fff;border-top-right-radius:0}._images_container_1cjr0_22{display:flex;flex-direction:column;gap:8px;width:100%}._image_wrapper_1cjr0_29{position:relative;width:300px;aspect-ratio:3/2;border-radius:8px;overflow:hidden;background:#0000000d;box-shadow:0 1px 2px #0000001a;align-self:flex-end}._uploaded_image_1cjr0_40{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;transition:opacity .2s ease}._uploaded_image_1cjr0_40:hover{opacity:.95}._documents_container_1cjr0_52{display:flex;flex-direction:column;gap:8px;width:100%;align-items:flex-end}._document_card_1cjr0_60{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;max-width:300px}._document_icon_1cjr0_69{flex-shrink:0}._document_name_1cjr0_73{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._image_modal_1cjr0_80{position:fixed;inset:0;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;cursor:pointer;padding:20px}._image_modal_1cjr0_80 ._modal_image_1cjr0_94{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #00000080}._tool_call_group_1rad3_1{width:100%;display:flex;flex-direction:column;gap:8px}._tool_call_group__header_1rad3_8{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}._tool_call_group__chevron_1rad3_16{width:16px;height:16px;color:var(--asgard-tool-call-icon, #8c8c8c);transition:transform .2s ease;flex-shrink:0}._tool_call_group__chevron--expanded_1rad3_24{transform:rotate(90deg)}._tool_call_group__title_1rad3_28{font-size:14px;font-weight:500;color:var(--asgard-tool-call-text, #fff)}._tool_call_group__content_1rad3_34{display:flex;flex-direction:column;gap:8px}._tool_call_item_1rad3_40{display:flex;flex-direction:column;background-color:var(--asgard-tool-call-item-bg, #1a1a1a);border-radius:8px;overflow:hidden}._tool_call_item__header_1rad3_48{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}._tool_call_item__header_1rad3_48:hover{background-color:var(--asgard-tool-call-hover, rgba(255, 255, 255, .05))}._tool_call_item__left_1rad3_61{display:flex;align-items:center;gap:8px}._tool_call_item__chevron_1rad3_67{width:14px;height:14px;color:var(--asgard-tool-call-icon, #8c8c8c);transition:transform .2s ease;flex-shrink:0}._tool_call_item__chevron--expanded_1rad3_75{transform:rotate(90deg)}._tool_call_item__label_1rad3_79{font-size:14px;color:var(--asgard-tool-call-text, #fff)}._tool_call_item__status_1rad3_84{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}._tool_call_item__status_icon_1rad3_93{width:20px;height:20px}._tool_call_item__status_icon--completed_1rad3_98{color:#52c41a}._tool_call_item__status_icon--error_1rad3_102{color:#ff4d4f}._tool_call_item__status_icon--pending_1rad3_106{color:#faad14;animation:_pulse_1rad3_1 1.5s ease-in-out infinite}@keyframes _pulse_1rad3_1{0%,to{opacity:1}50%{opacity:.5}}._tool_call_item__content_1rad3_119{padding:0 16px 12px 38px;display:flex;flex-direction:column;gap:8px}._json_viewer_1rad3_126{display:flex;flex-direction:column;border-radius:6px;overflow:hidden;background-color:var(--asgard-json-viewer-bg, #141414);border:1px solid var(--asgard-tool-call-border, #333)}._json_viewer__header_1rad3_135{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background-color:var(--asgard-json-viewer-header-bg, #1f1f1f);border-bottom:1px solid var(--asgard-tool-call-border, #333)}._json_viewer__title_1rad3_144{font-size:12px;font-weight:500;color:var(--asgard-tool-call-text-secondary, #8c8c8c)}._json_viewer__actions_1rad3_150{display:flex;align-items:center;gap:4px}._json_viewer__action_btn_1rad3_156{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--asgard-tool-call-icon, #8c8c8c);cursor:pointer;border-radius:4px;transition:all .2s ease}._json_viewer__action_btn_1rad3_156:hover{background-color:var(--asgard-tool-call-hover, rgba(255, 255, 255, .1));color:var(--asgard-tool-call-text, #fff)}._json_viewer__action_btn_1rad3_156 svg{width:14px;height:14px}._json_viewer__content_1rad3_178{padding:8px 10px;max-height:200px;overflow:auto}._json_viewer__code_1rad3_184{font-family:SF Mono,Monaco,Courier New,monospace;font-size:11px;line-height:1.5;color:var(--asgard-json-viewer-text, #d4d4d4);white-space:pre-wrap;word-break:break-all;margin:0}._json_token--key_1rad3_194{color:#9cdcfe}._json_token--string_1rad3_198{color:#ce9178}._json_token--number_1rad3_202{color:#b5cea8}._json_token--boolean_1rad3_206,._json_token--null_1rad3_210{color:#569cd6}._json_token--punctuation_1rad3_214{color:#d4d4d4}._json_modal__backdrop_1rad3_218{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}._json_modal_1rad3_218{display:flex;flex-direction:column;width:100%;max-width:800px;max-height:80vh;background-color:var(--asgard-json-viewer-bg, #141414);border:1px solid var(--asgard-tool-call-border, #333);border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #00000080}._json_modal__header_1rad3_245{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--asgard-json-viewer-header-bg, #1f1f1f);border-bottom:1px solid var(--asgard-tool-call-border, #333)}._json_modal__title_1rad3_254{font-size:14px;font-weight:500;color:var(--asgard-tool-call-text, #fff)}._json_modal__actions_1rad3_260{display:flex;align-items:center;gap:8px}._json_modal__action_btn_1rad3_266{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--asgard-tool-call-icon, #8c8c8c);cursor:pointer;border-radius:4px;transition:all .2s ease}._json_modal__action_btn_1rad3_266:hover{background-color:var(--asgard-tool-call-hover, rgba(255, 255, 255, .1));color:var(--asgard-tool-call-text, #fff)}._json_modal__action_btn_1rad3_266 svg{width:16px;height:16px}._json_modal__content_1rad3_288{flex:1;padding:16px;overflow:auto}._json_modal__content_1rad3_288 ._json_viewer__code_1rad3_184{font-size:13px;line-height:1.6}._container_12tvo_1{display:flex;flex-direction:column;gap:8px;width:100%;position:relative;background:#585858;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:8px}._tabs_12tvo_13{display:flex;align-items:center;gap:4px;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.12)}._tab_12tvo_13{padding:10px 8px;border:none;border-bottom:2px solid transparent;background:transparent;color:inherit;font-size:13px;font-weight:500;cursor:pointer;opacity:.6;transition:opacity .2s,border-color .2s}._tab_12tvo_13:hover{opacity:.85}._tab--active_12tvo_37{opacity:1;border-bottom-color:currentColor}._header_12tvo_42{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px 8px 0 0}._title_12tvo_50{font-size:14px;font-weight:600}._download_button_12tvo_55{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:#ffffff1a;color:inherit;cursor:pointer;transition:background-color .2s}._download_button_12tvo_55:hover{background:#fff3}._download_button_12tvo_55:active{background:#ffffff4d}._download_12tvo_55{position:relative}._download_backdrop_12tvo_79{position:fixed;inset:0;z-index:1}._download_menu_12tvo_85{position:absolute;top:calc(100% + 4px);right:0;z-index:2;display:flex;flex-direction:column;min-width:120px;padding:4px;background:#282828fa;border:1px solid rgba(255,255,255,.15);border-radius:8px;box-shadow:0 4px 12px #0000004d}._download_menu_item_12tvo_100{padding:8px 12px;border:none;border-radius:4px;background:transparent;color:inherit;font-size:13px;text-align:left;cursor:pointer}._download_menu_item_12tvo_100:hover{background:#ffffff1a}._table_wrapper_12tvo_114{overflow-x:auto;border-radius:8px}._table_12tvo_114{width:100%;border-collapse:collapse;font-size:13px}._table_header_12tvo_125{background:#0003}._table_header_cell_12tvo_129{padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.1)}._header_cell_content_12tvo_137{display:flex;flex-direction:column;gap:2px}._header_label_12tvo_143{font-size:13px;font-weight:600}._header_key_12tvo_148{font-size:11px;font-weight:400;opacity:.55}._table_row_12tvo_154:hover{background:#ffffff0d}._table_row_12tvo_154:not(:last-child){border-bottom:1px solid rgba(255,255,255,.1)}._table_cell_12tvo_161{padding:10px 12px;white-space:nowrap}._pagination_12tvo_166{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px}._pagination_button_12tvo_174{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:transparent;color:inherit;cursor:pointer;font-size:14px}._pagination_button_12tvo_174:hover:not(:disabled){background:#ffffff1a}._pagination_button_12tvo_174:disabled{opacity:.4;cursor:not-allowed}._pagination_page_12tvo_195{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:transparent;color:inherit;font-size:13px;cursor:pointer}._pagination_page_12tvo_195:hover{background:#ffffff1a}._pagination_page--active_12tvo_213{background:#ffffff26;font-weight:600}._pagination_ellipsis_12tvo_218{padding:0 4px;font-size:13px;opacity:.6}._empty_state_12tvo_224{padding:24px;text-align:center;font-size:13px;opacity:.7}._sql_view_12tvo_231{display:flex;flex-direction:column;gap:12px;padding:0 12px 12px;font-size:13px}._sql_block_12tvo_239{overflow-x:auto}._sql_explanation_12tvo_243{padding-top:12px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;line-height:1.6;opacity:.85}._time_12tvo_251{justify-content:flex-end}._snackbar_12tvo_255{position:absolute;bottom:-48px;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#282828f2;border-radius:8px;box-shadow:0 4px 12px #0000004d;animation:_slideUp_12tvo_1 .2s ease-out}@keyframes _slideUp_12tvo_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._snackbar_text_12tvo_280{flex:1;font-size:13px;color:#fff}._snackbar_action_12tvo_286{padding:4px 12px;border:none;border-radius:4px;background:transparent;color:#4fc3f7;font-size:13px;font-weight:500;cursor:pointer}._snackbar_action_12tvo_286:hover{background:#4fc3f71a}._snackbar_close_12tvo_300{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#fff9;font-size:18px;cursor:pointer}._snackbar_close_12tvo_300:hover{background:#ffffff1a;color:#fff}._root_1vqc7_1{display:flex;flex-direction:column;gap:8px;width:320px;max-width:100%}._chip_1vqc7_9{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:#333;border:none;text-align:left;cursor:pointer;color:inherit;font:inherit}._chip_1vqc7_9:hover{background:#404040}._chip_1vqc7_9:focus-visible{outline:2px solid rgb(71,103,235);outline-offset:2px}._icon_box_1vqc7_30{flex:0 0 auto;width:36px;height:36px;border-radius:8px;background:#4767eb;color:#fff;display:flex;align-items:center;justify-content:center}._icon_box_1vqc7_30>svg{width:20px;height:20px}._body_1vqc7_46{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}._title_1vqc7_54{color:#fff;font-size:14px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._text_1vqc7_64{color:#8c8c8c;font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._download_button_1vqc7_73{flex:0 0 auto;width:32px;height:32px;border-radius:8px;background:transparent;border:none;color:#b4b4b4;display:flex;align-items:center;justify-content:center;cursor:pointer}._download_button_1vqc7_73>svg{width:18px;height:18px}._download_button_1vqc7_73:hover{background:#505050;color:#fff}._download_button_1vqc7_73:focus-visible{outline:2px solid rgb(71,103,235);outline-offset:2px}._chatbot_footer_1fl03_1{border-top:1px solid #434343}._chatbot_footer_1fl03_1 ._chatbot_footer__content_1fl03_4{display:grid;align-items:center;grid-template-columns:auto 1fr auto;margin:0 auto;max-width:1200px;padding:var(--asg-spacing-3) var(--asg-spacing-4);gap:var(--asg-spacing-2)}@keyframes _prevent_ios_focus_scroll_1fl03_1{0%{opacity:0}to{opacity:1}}._chatbot_textarea_1fl03_22{font:inherit;font-size:16px;height:40px!important;max-height:240px;padding:8px 8px 8px 12px;background:var(--asg-color-bg);border:1px solid rgb(67,67,67);border-radius:2px;color:#8c8c8c;resize:none;overflow:hidden}._chatbot_textarea_1fl03_22::placeholder{color:var(--asg-color-text-placeholder)}._chatbot_textarea_1fl03_22._chatbot_textarea--focused_1fl03_39{animation:_prevent_ios_focus_scroll_1fl03_1 .01s}._chatbot_submit_button_1fl03_43{font:inherit;width:24px;height:100%;max-height:38px;display:flex;justify-content:center;align-items:center;font-size:16px;border:none;background:transparent;border-radius:50%;color:#fff;cursor:pointer}._chatbot_submit_button_1fl03_43>svg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:auto;min-width:16px;height:60%;max-height:38px;min-height:16px}._chatbot_submit_button_1fl03_43._chatbot_submit_button__disabled_1fl03_68{opacity:.6}._attachment_buttons_1fl03_72,._send_zone_1fl03_78{display:flex;gap:var(--asg-spacing-2);align-items:center}._attachment_menu_container_1fl03_84{position:relative}._attachment_menu_1fl03_84{position:absolute;bottom:100%;left:0;margin-bottom:8px;min-width:160px;border-radius:8px;border:1px solid var(--asg-color-border, #3d3d3d);background:var(--asg-color-bg, #1a1a1a);box-shadow:0 4px 12px #0000004d;overflow:hidden;z-index:100}._attachment_menu_item_1fl03_102{display:flex;align-items:center;gap:var(--asg-spacing-2, 8px);width:100%;padding:10px 14px;border:none;background:transparent;color:var(--asg-color-text, #e0e0e0);font:inherit;font-size:14px;cursor:pointer;transition:background-color .15s ease;text-align:left}._attachment_menu_item_1fl03_102:hover{background:#ffffff1a}._attachment_menu_item_1fl03_102>svg{width:18px;height:18px;flex-shrink:0}._attachment_menu_item_1fl03_102>span{white-space:nowrap}._attachment_button_1fl03_72{font:inherit;width:32px;height:32px;display:flex;justify-content:center;align-items:center;border:none;background:transparent;border-radius:6px;color:#fff;cursor:pointer;transition:all .2s ease;position:relative}._attachment_button_1fl03_72:disabled{opacity:.6;cursor:not-allowed}._attachment_button_1fl03_72>svg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:18px;height:18px}._file_input_hidden_1fl03_156{display:none}._file_preview_container_1fl03_160{width:100%;max-width:1200px;overflow-x:auto;margin:0 auto;padding:var(--asg-spacing-3, 12px);padding-bottom:0}._file_preview_grid_1fl03_169{display:flex;gap:var(--asg-spacing-2, 8px);flex-wrap:nowrap}._file_preview_item_1fl03_175{position:relative;background:var(--asg-color-bg-secondary, #2d2d2d);border:1px solid var(--asg-color-border, #3d3d3d);border-radius:var(--asg-radius-md, 8px);overflow:hidden;width:100px;height:80px;flex-shrink:0}._file_preview_image_area_1fl03_186{width:100%;height:100%;background:var(--asg-color-bg-dark, #1a1a1a);display:flex;align-items:center;justify-content:center;position:relative}._file_preview_image_1fl03_186{max-width:100%;max-height:100%;object-fit:contain;cursor:pointer;transition:opacity .2s ease}._file_preview_image_1fl03_186:hover{opacity:.8}._file_remove_button_1fl03_207{position:absolute;top:var(--asg-spacing-1, 6px);right:var(--asg-spacing-1, 6px);width:20px;height:20px;border-radius:4px;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border:1px solid rgba(255,255,255,.1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0}._file_upload_overlay_1fl03_226{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center}@keyframes _spin_1fl03_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._file_upload_spinner_1fl03_243{width:24px;height:24px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_spin_1fl03_1 .8s linear infinite}._file_preview_item__error_1fl03_252{border-color:#ef4444}._file_error_overlay_1fl03_256{position:absolute;inset:0;background:#ef444433;display:flex;align-items:center;justify-content:center}._file_error_icon_1fl03_265{width:24px;height:24px;color:#ef4444}._image_modal_1fl03_271{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}._image_modal_content_1fl03_283{display:flex;flex-direction:column;align-items:center;gap:var(--asg-spacing-4, 16px)}._image_modal_image_1fl03_290{max-width:90vw;max-height:75vh;object-fit:contain;border-radius:var(--asg-radius-lg, 12px);box-shadow:0 20px 60px #0009;-webkit-user-select:none;user-select:none}._image_modal_close_button_1fl03_299{position:absolute;top:var(--asg-spacing-5, 20px);right:var(--asg-spacing-5, 20px);width:36px;height:36px;border-radius:50%;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;padding:0;transition:all .2s ease}._image_modal_close_button_1fl03_299:hover{background:#fff3;transform:scale(1.1)}._image_modal_close_button_1fl03_299:active{transform:scale(.95)}._document_preview_grid_1fl03_326{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--asg-spacing-2, 8px)}@media(max-width:768px){._document_preview_grid_1fl03_326{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}._document_preview_item_1fl03_337{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--asg-spacing-2, 8px);padding:var(--asg-spacing-3, 12px);background:var(--asg-color-bg-secondary, #2d2d2d);border:1px solid var(--asg-color-border, #3d3d3d);border-radius:var(--asg-radius-md, 8px);aspect-ratio:3/2;max-width:250px}._document_preview_icon_wrapper_1fl03_352{display:flex;align-items:center;justify-content:center;flex:1}._document_preview_icon_1fl03_352{width:48px;height:48px;color:var(--asg-color-text-secondary, #a0a0a0)}._document_preview_name_1fl03_365{font-size:12px;color:var(--asg-color-text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}._chatbot_root_htsl5_2{--asg-color-blue-1: #edf0fd;--asg-color-blue-2: #d3dbfa;--asg-color-blue-3: #b0bef6;--asg-color-blue-4: #6882ef;--asg-color-blue-5: #8b9ff2;--asg-color-blue-6: #4767eb;--asg-color-blue-7: #3c58c8;--asg-color-blue-8: #3249a7;--asg-color-blue-9: #283b86;--asg-color-blue-10: #202e6a;--asg-color-orange-1: #ffeded;--asg-color-orange-2: #ffd4d5;--asg-color-orange-3: #ffb2b3;--asg-color-orange-4: #ff8f90;--asg-color-orange-5: #ff6d6f;--asg-color-orange-6: #ff4d4f;--asg-color-orange-7: #d94143;--asg-color-orange-8: #b53738;--asg-color-orange-9: #912c2d;--asg-color-orange-10: #732324;--asg-color-green-1: #eef9e8;--asg-color-green-2: #d5f1c8;--asg-color-green-3: #b5e69d;--asg-color-green-4: #92da6f;--asg-color-green-5: #71cf43;--asg-color-green-6: #52c41a;--asg-color-green-7: #46a716;--asg-color-green-8: #3a8b12;--asg-color-green-9: #2f700f;--asg-color-green-10: #25580c;--asg-color-yellow-1: #fef7eb;--asg-color-yellow-2: #fdebcf;--asg-color-yellow-3: #fcdba9;--asg-color-yellow-4: #facb82;--asg-color-yellow-5: #f8bb5c;--asg-color-yellow-6: #f7ac38;--asg-color-yellow-7: #d29230;--asg-color-yellow-8: #af7a28;--asg-color-yellow-9: #8d6220;--asg-color-yellow-10: #6f4d19;--asg-color-grey-1: #f3f3f3;--asg-color-grey-2: #e2e2e2;--asg-color-grey-3: #cbcbcb;--asg-color-grey-4: #b2b2b2;--asg-color-grey-5: #9b9b9b;--asg-color-grey-6: #585858;--asg-color-grey-7: #717171;--asg-color-grey-8: #5e5e5e;--asg-color-grey-9: #4c4c4c;--asg-color-grey-10: #3c3c3c;--asg-color-primary: #4767eb;--asg-color-primary-light: #8b9ff2;--asg-color-primary-dark: #3249a7;--asg-color-primary-on-primary: #ffffff;--asg-color-primary-hover-bg: rgba(139, 159, 242, .15);--asg-color-primary-selected-bg: rgba(71, 103, 235, .2);--asg-color-secondary: #585858;--asg-color-secondary-light: #b2b2b2;--asg-color-secondary-dark: #4c4c4c;--asg-color-secondary-on-secondary: #ffffff;--asg-color-secondary-hover-bg: rgba(178, 178, 178, .15);--asg-color-secondary-selected-bg: rgba(88, 88, 88, .2);--asg-color-error: #ff4d4f;--asg-color-error-light: #ff6d6f;--asg-color-error-dark: #d94143;--asg-color-error-on-error: #ffffff;--asg-color-error-hover-bg: rgba(255, 109, 111, .15);--asg-color-error-selected-bg: rgba(255, 77, 79, .2);--asg-color-warning: #f7ac38;--asg-color-warning-light: #f8bb5c;--asg-color-warning-dark: #af7a28;--asg-color-warning-on-warning: #ffffff;--asg-color-warning-hover-bg: rgba(248, 187, 92, .15);--asg-color-warning-selected-bg: rgba(247, 172, 56, .2);--asg-color-success: #52c41a;--asg-color-success-light: #71cf43;--asg-color-success-dark: #3a8b12;--asg-color-success-on-success: #ffffff;--asg-color-success-hover-bg: rgba(113, 207, 67, .15);--asg-color-success-selected-bg: rgba(82, 196, 26, .2);--asg-color-action-active: #ffffff;--asg-color-action-inactive: #8c8c8c;--asg-color-action-disabled: #595959;--asg-color-action-disabled-bg: #393939;--asg-color-text-primary: #ffffff;--asg-color-text-secondary: #8c8c8c;--asg-color-text-disabled: #595959;--asg-color-text-placeholder: #8c8c8c;--asg-color-bg: #141414;--asg-color-surface: #1f1f1f;--asg-color-divider: #333333;--asg-color-border: #434343;--asg-color-overlay-dark: rgba(0, 0, 0, .5);--asg-color-overlay-light: rgba(31, 31, 31, .9);--asg-radius-none: 0px;--asg-radius-xxs: 2px;--asg-radius-xs: 4px;--asg-radius-s: 6px;--asg-radius-md: 8px;--asg-radius-lg: 10px;--asg-radius-xl: 12px;--asg-radius-2xl: 16px;--asg-radius-3xl: 20px;--asg-radius-4xl: 24px;--asg-spacing-1: 4px;--asg-spacing-2: 8px;--asg-spacing-3: 12px;--asg-spacing-4: 16px;--asg-spacing-5: 24px;--asg-spacing-6: 32px;--asg-spacing-7: 40px;--asg-spacing-8: 48px;--asg-spacing-9: 64px;--asg-spacing-10: 96px;--asg-spacing-11: 160px;font-family:Space Grotesk,Noto Sans TC,sans-serif;height:100%;min-height:0}._chatbot_root_htsl5_2 *{line-height:1.5;box-sizing:border-box;min-width:0}._full_screen_htsl5_128{position:fixed;inset:0;background-color:var(--asg-color-bg)}._full_screen_htsl5_128 ._chatbot_container_htsl5_133{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}._chatbot_container_htsl5_133{display:grid;grid-template-rows:max-content 1fr max-content max-content;background-color:var(--asg-color-bg);overflow:hidden;overscroll-behavior:contain;position:relative}._container_32b6s_1{display:flex;flex-direction:column;align-items:center;width:360px;max-width:calc(100vw - 32px);padding:24px;gap:20px;background-color:var(--asg-color-bg);border:.5px solid var(--asg-color-border);border-radius:12px}@media(max-width:480px){._container_32b6s_1{width:100%;max-width:none;padding:20px;margin:0 16px}}._avatar_32b6s_22{width:40px;height:40px;display:flex;align-items:center;justify-content:center}._avatar_32b6s_22 svg,._avatar_32b6s_22 img{width:100%;height:100%}._message_32b6s_35{color:#ffffffb3;font-size:14px;line-height:1.5;text-align:center}._overlay_1r6z5_1{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background-color:#00000026;pointer-events:none}._overlay__content_1r6z5_12{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 48px;border:2px dashed var(--asg-color-primary, #6366f1);border-radius:16px;background-color:#ffffffe6}._overlay__icon_1r6z5_23{color:var(--asg-color-primary, #6366f1)}._overlay__text_1r6z5_27{font-size:16px;font-weight:500;color:var(--asg-color-primary, #6366f1)}._backdrop_1dyy6_1{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}._modal_1dyy6_12{display:flex;flex-direction:column;width:100%;max-width:520px;max-height:85vh;background-color:var(--asgard-consent-modal-bg, var(--asg-color-surface, #1f1f1f));border-radius:12px;overflow:hidden;box-shadow:0 16px 48px #0000003d}._header_1dyy6_24{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--asgard-consent-modal-border, var(--asg-color-border, #434343))}._title_1dyy6_33{font-size:15px;font-weight:600;line-height:1.4;color:var(--asgard-consent-modal-headline, var(--asg-color-text-primary, #ffffff));word-break:break-word}._title_tool_1dyy6_41{color:var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5))}._close_btn_1dyy6_45{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c));font-family:inherit;cursor:pointer;transition:background-color .15s ease}._close_btn_1dyy6_45:hover{background-color:#ffffff14}._close_btn_1dyy6_45 svg{width:16px;height:16px}._content_1dyy6_68{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}._meta_row_1dyy6_76{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c))}._meta_row_1dyy6_76 strong{color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff));font-weight:500}._input_section_1dyy6_89{display:flex;flex-direction:column;gap:8px}._input_toggle_1dyy6_95{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c));font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;padding:0;align-self:flex-start}._input_toggle_1dyy6_95:hover{color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff))}._input_toggle_1dyy6_95 svg{width:14px;height:14px;transition:transform .2s ease}._input_toggle_expanded_1dyy6_118 svg{transform:rotate(90deg)}._input_viewer_1dyy6_122{background-color:var(--asgard-consent-modal-code-bg, #0f172a);border-radius:8px;overflow:hidden;border:1px solid var(--asgard-consent-modal-code-border, #1e293b)}._deny_reason_1dyy6_129{display:flex;flex-direction:column;gap:6px}._deny_reason_1dyy6_129 label{font-size:13px;font-weight:500;color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff))}._deny_reason_1dyy6_129 textarea{width:100%;min-height:72px;max-height:160px;padding:8px 10px;font-size:13px;line-height:1.5;border-radius:6px;border:1px solid var(--asgard-consent-modal-border, var(--asg-color-border, #434343));color:var(--asgard-consent-modal-title, var(--asg-color-text-primary, #ffffff));background-color:var(--asgard-consent-modal-input-bg, var(--asg-color-bg, #141414));resize:vertical;font-family:inherit}._deny_reason_1dyy6_129 textarea:focus{outline:none;border-color:var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5));box-shadow:0 0 0 3px color-mix(in srgb,var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5)) 15%,transparent)}._actions_1dyy6_161{display:flex;flex-direction:column;gap:8px;padding:12px 20px 20px}._action_btn_1dyy6_168{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}._action_btn_1dyy6_168:disabled{cursor:not-allowed;opacity:.6}._action_primary_1dyy6_186{background-color:var(--asgard-consent-modal-accent, var(--asg-color-primary, #4f46e5));color:var(--asgard-consent-modal-primary-fg, #000000)}._action_primary_1dyy6_186:hover:not(:disabled){background-color:var(--asgard-consent-modal-accent-hover, var(--asg-color-primary-dark, #4338ca))}._action_secondary_1dyy6_194{background-color:transparent;color:var(--asgard-consent-modal-accent, var(--asg-color-text-primary, #ffffff));border-color:transparent}._action_secondary_1dyy6_194:hover:not(:disabled){background-color:#ffffff0f}._action_danger_1dyy6_203{background-color:transparent;color:var(--asgard-consent-modal-danger, var(--asg-color-error, #dc2626));border-color:transparent}._action_danger_1dyy6_203:hover:not(:disabled){background-color:color-mix(in srgb,var(--asgard-consent-modal-danger, var(--asg-color-error, #dc2626)) 8%,transparent)}._pending_indicator_1dyy6_212{font-size:12px;color:var(--asgard-consent-modal-muted, var(--asg-color-text-secondary, #8c8c8c));padding:0 20px 8px}._chatbot__auth_state_container_1hs4h_1{display:flex;align-items:center;justify-content:center;flex:1;padding:20px}._chatbot__error_state_1hs4h_9{color:#ff6b6b}._chatbot__error_state__content_1hs4h_13{text-align:center}._chatbot__error_state__icon_1hs4h_17{font-size:16px;margin-bottom:8px}