@asgard-js/react 0.1.24 → 0.1.26

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
@@ -2,6 +2,9 @@
2
2
 
3
3
  This package provides React components and hooks for integrating with the Asgard AI platform, allowing you to build interactive chat interfaces.
4
4
 
5
+ <a id="installation"></a>
6
+ <br/>
7
+
5
8
  ## Installation
6
9
 
7
10
  To install the React package, use the following command:
@@ -10,8 +13,14 @@ To install the React package, use the following command:
10
13
  npm install @asgard-js/core @asgard-js/react
11
14
  ```
12
15
 
16
+ <a id="usage"></a>
17
+ <br/>
18
+
13
19
  ## Usage
14
20
 
21
+ <a id="basic-usage"></a>
22
+ <br/>
23
+
15
24
  ### Basic Usage
16
25
 
17
26
  Here's a basic example of how to use the React components:
@@ -89,6 +98,9 @@ const App = () => {
89
98
  export default App;
90
99
  ```
91
100
 
101
+ <a id="file-upload-support"></a>
102
+ <br/>
103
+
92
104
  ### File Upload Support
93
105
 
94
106
  The Chatbot component includes built-in file upload capabilities for sending images. You can control this feature using the `enableUpload` prop.
@@ -130,6 +142,9 @@ When `enableLoadConfigFromService` is enabled, you can also control the upload f
130
142
 
131
143
  **Features**: Multiple file selection, image preview with modal view, and responsive design. Supports JPEG, PNG, GIF, WebP up to 20MB per file, maximum 10 files at once.
132
144
 
145
+ <a id="conversation-export"></a>
146
+ <br/>
147
+
133
148
  ### Conversation Export
134
149
 
135
150
  The Chatbot component includes built-in conversation export functionality, allowing users to download chat history as Markdown files. You can control this feature using the `enableExport` prop.
@@ -171,6 +186,9 @@ When `enableLoadConfigFromService` is enabled, you can also control the export f
171
186
 
172
187
  **Features**: Download button in chatbot footer, exports conversation history with timestamps and trace IDs, human-readable filename format (`{BotName}_對話紀錄_{Date}_{Time}.md`).
173
188
 
189
+ <a id="api-key-authentication"></a>
190
+ <br/>
191
+
174
192
  ### API Key Authentication
175
193
 
176
194
  For applications that need dynamic API key input (such as embedded chatbots), you can use the authentication state management:
@@ -211,7 +229,7 @@ const EmbedApp = () => {
211
229
  };
212
230
  ```
213
231
 
214
- ## Migration from `endpoint` to `botProviderEndpoint`
232
+ ## Migration from endpoint to botProviderEndpoint
215
233
 
216
234
  **Important**: The `endpoint` configuration option is deprecated. Use `botProviderEndpoint` instead for simplified configuration.
217
235
 
@@ -243,69 +261,18 @@ config: {
243
261
 
244
262
  **Backward Compatibility:** Existing code using `endpoint` will continue to work but may show deprecation warnings when `debugMode` is enabled.
245
263
 
246
- ### EMIT Action
264
+ <a id="migration-from-endpoint-to-botproviderendpoint"></a>
265
+ <br/>
247
266
 
248
- EMIT buttons allow you to handle custom actions in your application. Implement the `onTemplateBtnClick` callback to process these events. See the [EMIT Action documentation](https://www.asgard-ai.com/docs/developer-reference/asgard-builtin/message-template-action-object-emit) for details.
267
+ ## Migration from endpoint to botProviderEndpoint
249
268
 
250
- The callback receives the following parameters:
269
+ <a id="api-reference"></a>
270
+ <br/>
251
271
 
252
- 1. `payload` (optional): Custom data from the button action
253
- 2. `eventName` (required): Event name specified in the button action
254
- 3. `raw` (required): Complete SSE response data as JSON string. Use this when you need information beyond `payload` and `eventName`. Parse it to access additional fields from the original SSE response. See [SSE Response documentation](https://www.asgard-ai.com/docs/developer-reference/api-doc/send-message/sse-response/message-complete) for the complete response structure.
272
+ ## API Reference
255
273
 
256
- Configure EMIT buttons in your backend SSE response:
257
-
258
- ```json
259
- {
260
- "template": {
261
- "type": "BUTTON",
262
- "title": "Action Menu",
263
- "text": "Please select an action:",
264
- "buttons": [
265
- {
266
- "label": "Support Request",
267
- "action": {
268
- "type": "EMIT",
269
- "eventName": "support_request",
270
- "payload": {
271
- "category": "technical",
272
- "priority": "high"
273
- }
274
- }
275
- }
276
- ]
277
- }
278
- }
279
- ```
280
-
281
- #### EMIT Example
282
-
283
- ```typescript
284
- import { useCallback } from 'react';
285
-
286
- const handleTemplateBtnClick = useCallback((payload: Record<string, unknown>, eventName: string, raw: string): void => {
287
- if (eventName === 'support_request') {
288
- // Access payload data
289
- const category = payload.category as string;
290
- const priority = payload.priority as string;
291
-
292
- // Optionally parse raw SSE data to access additional fields
293
- let customChannelId: string | undefined;
294
- try {
295
- const sseData = JSON.parse(raw);
296
- customChannelId = sseData.customChannelId;
297
- } catch {
298
- // Handle parse error if needed
299
- }
300
-
301
- const channelInfo = customChannelId ? `\nChannel ID: ${customChannelId}` : '';
302
- window.alert(`Support request created\n\nCategory: ${category}\nPriority: ${priority}${channelInfo}`);
303
- }
304
- }, []);
305
-
306
- // Pass the handler to Chatbot
307
- <Chatbot config={config} customChannelId={nanoid()} onTemplateBtnClick={handleTemplateBtnClick} />;
308
- ```
274
+ <a id="chatbot-component-props"></a>
275
+ <br/>
309
276
 
310
277
  ### Chatbot Component Props
311
278
 
@@ -318,7 +285,7 @@ const handleTemplateBtnClick = useCallback((payload: Record<string, unknown>, ev
318
285
  - `debugMode?`: `boolean` - Enable debug mode, defaults to `false`
319
286
  - `onRunInit?`: `InitEventHandler` - Handler for run initialization events
320
287
  - `onMessage?`: `MessageEventHandler` - Handler for message events
321
- - `onToolCall?`: `ToolCallEventHandler` - Handler for tool call events
288
+ - `onToolCall?`: `ToolCallEventHandler` - Handler for tool call events. See [Tool Call Handler](#tool-call-handler) section for details.
322
289
  - `onProcess?`: `ProcessEventHandler` - Handler for process events
323
290
  - `onRunDone?`: `DoneEventHandler` - Handler for run completion events
324
291
  - `onRunError?`: `ErrorEventHandler` - Error handler for execution errors
@@ -345,6 +312,9 @@ const handleTemplateBtnClick = useCallback((payload: Record<string, unknown>, ev
345
312
  - **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.
346
313
  - **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 extends the ref of the chatbot instance and provides some additional methods like `serviceContext.sendMessage` to interact with the chatbot instance.
347
314
 
315
+ <a id="theme-configuration"></a>
316
+ <br/>
317
+
348
318
  ### Theme Configuration
349
319
 
350
320
  The theme configuration can be obtained from the bot provider metadata of `annotations` field and `theme` props.
@@ -355,6 +325,8 @@ The priority of themes is as follows (high to low):
355
325
  2. Theme from annotations from bot provider metadata
356
326
  3. Default theme
357
327
 
328
+ ### Theme Interface
329
+
358
330
  ```typescript
359
331
  export interface AsgardThemeContextValue {
360
332
  chatbot: Pick<
@@ -552,7 +524,7 @@ const defaultTheme = {
552
524
  };
553
525
  ```
554
526
 
555
- ### Usage Example
527
+ #### Usage Example
556
528
 
557
529
  ```javascript
558
530
  const App = () => {
@@ -583,6 +555,192 @@ const App = () => {
583
555
 
584
556
  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.
585
557
 
558
+ <a id="event-handlers"></a>
559
+ <br/>
560
+
561
+ ## Event Handlers
562
+
563
+ <a id="tool-call-handler"></a>
564
+ <br/>
565
+
566
+ ### Tool Call Handler
567
+
568
+ The `onToolCall` callback allows you to handle tool call events from the bot. This handler is triggered when the bot starts or completes executing a tool call. See the [Tool Call Start documentation](https://www.asgard-ai.com/docs/developer-reference/api-doc/send-message/sse-response/asgard-tool-call-start) and [Tool Call Complete documentation](https://www.asgard-ai.com/docs/developer-reference/api-doc/send-message/sse-response/asgard-tool-call-complete) for details.
569
+
570
+ The callback receives a `SseResponse` object with one of the following event types:
571
+
572
+ - `EventType.TOOL_CALL_START`: Fired when a tool call begins execution
573
+ - `EventType.TOOL_CALL_COMPLETE`: Fired when a tool call completes execution
574
+
575
+ The response object contains the following data:
576
+
577
+ For `TOOL_CALL_START`:
578
+
579
+ - `processId`: `string` - Process identifier
580
+ - `callSeq`: `number` - Call sequence number
581
+ - `toolCall`: Object containing:
582
+ - `toolsetName`: `string` - Name of the toolset
583
+ - `toolName`: `string` - Name of the tool
584
+ - `parameter`: `Record<string, unknown>` - Tool call parameters
585
+
586
+ For `TOOL_CALL_COMPLETE`:
587
+
588
+ - All fields from `TOOL_CALL_START` plus:
589
+ - `toolCallResult`: Object containing:
590
+ - `data`: `unknown` - Result data returned from the tool execution
591
+ - `error`: `unknown` - Error information if the tool call failed
592
+ - `errorCode`: `string | null` - Error code if the tool call failed
593
+ - `isSuccess`: `boolean` - Whether the tool call succeeded
594
+ - `paging`: `unknown` - Paging information if applicable
595
+
596
+ Example SSE response for `TOOL_CALL_COMPLETE`:
597
+
598
+ ```json
599
+ {
600
+ "eventType": "asgard.tool_call.complete",
601
+ "requestId": "295fcef49f270b06e6d53f6fb3656b0c",
602
+ "eventId": "1947548755242782720",
603
+ "namespace": "proj-4b2b31bb-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
604
+ "botProviderName": "bp-reviewbot-f96def0f-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
605
+ "customChannelId": "syDHHkS6cQMdAWTu3T2N2X",
606
+ "fact": {
607
+ "runInit": null,
608
+ "runDone": null,
609
+ "runError": null,
610
+ "processStart": null,
611
+ "processComplete": null,
612
+ "messageStart": null,
613
+ "messageDelta": null,
614
+ "messageComplete": null,
615
+ "toolCallStart": null,
616
+ "toolCallComplete": {
617
+ "processId": "f627cac52c576dc4",
618
+ "callSeq": 0,
619
+ "toolCall": {
620
+ "toolsetName": "ts-callool-4b2b31bb-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
621
+ "toolName": "movie_search",
622
+ "parameter": {}
623
+ },
624
+ "toolCallResult": {
625
+ "data": null,
626
+ "error": null,
627
+ "errorCode": null,
628
+ "isSuccess": true,
629
+ "paging": null
630
+ }
631
+ }
632
+ }
633
+ }
634
+ ```
635
+
636
+ #### Usage Example
637
+
638
+ ```typescript
639
+ import { useCallback } from 'react';
640
+ import { EventType, SseResponse } from '@asgard-js/core';
641
+
642
+ const handleToolCall = useCallback(
643
+ (response: SseResponse<EventType.TOOL_CALL_START | EventType.TOOL_CALL_COMPLETE>): void => {
644
+ if (response.eventType === EventType.TOOL_CALL_COMPLETE) {
645
+ const { processId, callSeq, toolCall, toolCallResult } = response.fact.toolCallComplete;
646
+ console.log(`Tool call completed: ${toolCall.toolsetName}.${toolCall.toolName}`);
647
+
648
+ if (toolCallResult.isSuccess) {
649
+ console.log('Tool call succeeded. Data:', toolCallResult.data);
650
+ // Process successful results
651
+ } else {
652
+ console.error('Tool call failed:', toolCallResult.error);
653
+ console.error('Error code:', toolCallResult.errorCode);
654
+ // Handle errors
655
+ }
656
+
657
+ // You can process results, update UI, or trigger follow-up actions
658
+ }
659
+ },
660
+ [],
661
+ );
662
+
663
+ // Pass the handler to Chatbot config
664
+ <Chatbot
665
+ config={{
666
+ apiKey: 'your-api-key',
667
+ botProviderEndpoint: 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
668
+ onToolCall: handleToolCall,
669
+ }}
670
+ customChannelId="your-channel-id"
671
+ />;
672
+ ```
673
+
674
+ <a id="emit-action"></a>
675
+ <br/>
676
+
677
+ ### EMIT Action
678
+
679
+ EMIT buttons allow you to handle custom actions in your application. Implement the `onTemplateBtnClick` callback to process these events. See the [EMIT Action documentation](https://www.asgard-ai.com/docs/developer-reference/asgard-builtin/message-template-action-object-emit) for details.
680
+
681
+ The callback receives the following parameters:
682
+
683
+ 1. `payload` (optional): Custom data from the button action
684
+ 2. `eventName` (required): Event name specified in the button action
685
+ 3. `raw` (required): Complete SSE response data as JSON string. Use this when you need information beyond `payload` and `eventName`. Parse it to access additional fields from the original SSE response. See [SSE Response documentation](https://www.asgard-ai.com/docs/developer-reference/api-doc/send-message/sse-response/message-complete) for the complete response structure.
686
+
687
+ Configure EMIT buttons in your backend SSE response:
688
+
689
+ ```json
690
+ {
691
+ "template": {
692
+ "type": "BUTTON",
693
+ "title": "Action Menu",
694
+ "text": "Please select an action:",
695
+ "buttons": [
696
+ {
697
+ "label": "Support Request",
698
+ "action": {
699
+ "type": "EMIT",
700
+ "eventName": "support_request",
701
+ "payload": {
702
+ "category": "technical",
703
+ "priority": "high"
704
+ }
705
+ }
706
+ }
707
+ ]
708
+ }
709
+ }
710
+ ```
711
+
712
+ #### Usage Example
713
+
714
+ ```typescript
715
+ import { useCallback } from 'react';
716
+
717
+ const handleTemplateBtnClick = useCallback((payload: Record<string, unknown>, eventName: string, raw: string): void => {
718
+ if (eventName === 'support_request') {
719
+ // Access payload data
720
+ const category = payload.category as string;
721
+ const priority = payload.priority as string;
722
+
723
+ // Optionally parse raw SSE data to access additional fields
724
+ let customChannelId: string | undefined;
725
+ try {
726
+ const sseData = JSON.parse(raw);
727
+ customChannelId = sseData.customChannelId;
728
+ } catch {
729
+ // Handle parse error if needed
730
+ }
731
+
732
+ const channelInfo = customChannelId ? `\nChannel ID: ${customChannelId}` : '';
733
+ window.alert(`Support request created\n\nCategory: ${category}\nPriority: ${priority}${channelInfo}`);
734
+ }
735
+ }, []);
736
+
737
+ // Pass the handler to Chatbot
738
+ <Chatbot config={config} customChannelId={nanoid()} onTemplateBtnClick={handleTemplateBtnClick} />;
739
+ ```
740
+
741
+ <a id="testing"></a>
742
+ <br/>
743
+
586
744
  ## Testing
587
745
 
588
746
  The React package includes comprehensive tests using Vitest and React Testing Library.
@@ -645,6 +803,9 @@ describe('Chatbot Component', () => {
645
803
  });
646
804
  ```
647
805
 
806
+ <a id="development"></a>
807
+ <br/>
808
+
648
809
  ## Development
649
810
 
650
811
  To develop the React package locally, follow these steps:
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-message-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/chatbot-body/conversation-message-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,iBAAiB,CAAC;AAe3E,UAAU,gCAAgC;IACxC,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gCAAgC,GAAG,SAAS,CA8C9F"}
1
+ {"version":3,"file":"conversation-message-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/chatbot-body/conversation-message-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,iBAAiB,CAAC;AAgB3E,UAAU,gCAAgC;IACxC,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gCAAgC,GAAG,SAAS,CAgD9F"}
@@ -10,5 +10,6 @@ export * from './audio-template';
10
10
  export * from './location-template';
11
11
  export * from './user-image-template';
12
12
  export * from './tool-call-group';
13
+ export * from './table-template';
13
14
  export * from './quick-replies';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/templates/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './table-template';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/table-template/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ConversationBotMessage } from '../../../../../core/src/index.ts';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface TableTemplateProps {
5
+ message: ConversationBotMessage;
6
+ }
7
+ export declare function TableTemplate(props: TableTemplateProps): ReactNode;
8
+ export {};
9
+ //# sourceMappingURL=table-template.d.ts.map
@@ -0,0 +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"}
@@ -144,6 +144,12 @@ export interface AsgardThemeContextValue {
144
144
  };
145
145
  };
146
146
  }>;
147
+ /**
148
+ * TBD: Fill the necessary properties based on the requirements.
149
+ */
150
+ TableMessageTemplate: Partial<{
151
+ style: CSSProperties;
152
+ }>;
147
153
  }>;
148
154
  }
149
155
  export declare const defaultAsgardThemeContextValue: AsgardThemeContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"asgard-theme-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-theme-context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asgard-theme-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-theme-context.tsx"],"names":[],"mappings":"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"}
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";/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}.absolute{position:absolute}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}._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_1ozig_1{width:100%;display:flex;gap:8px}._template_box--bot_1ozig_7._template_box--horizontal_1ozig_7{flex-direction:row}._template_box--bot_1ozig_7._template_box--vertical_1ozig_10{flex-direction:column}._template_box--user_1ozig_14{flex-direction:row-reverse}._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}._time_h4puu_1{display:flex;align-items:flex-end;font-size:12px;color:#8c8c8c}._bot_avatar_xrs9x_1{flex:0 0 auto;width:24px;height:24px;border-radius:50%}._card_root_1qjc0_1{width:255px;height:368px;max-height:380px;border-radius:8px;background:#333;overflow:hidden;display:grid;grid-template-rows:max-content auto}._card_content_1qjc0_12{display:grid;grid-template-rows:1.5em auto max-content;gap:var(--asg-spacing-2);padding:12px;line-height:1.5em}._card_title_1qjc0_20{color:#fff;margin:0;font-size:15px}._card_description_1qjc0_26{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_1qjc0_41{display:flex;flex-direction:column;gap:8px}._card_actions_1qjc0_41>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_1ooxl_1{display:inline-block;padding:8px 12px;border-radius:8px;color:#fff;word-break:break-all}._text_1ooxl_1>span{word-break:break-all}._text_1ooxl_1 ._md_container_1ooxl_11{display:inline-block;width:100%}._text_1ooxl_1 ._md_container_1ooxl_11 p{margin:0}._text--user_1ooxl_19{max-width:75%;background:#4767eb;border-top-right-radius:0}._text--bot_1ooxl_25{max-width:70%;background:#585858;border-top-left-radius:0}._content_1ooxl_31{display:flex;flex-direction:column;gap:8px}._typing-indicator_1ooxl_37{display:inline-flex;align-items:flex-end;justify-content:center}._typing-indicator_1ooxl_37 ._dot_1ooxl_42{width:2px;height:2px;margin:0 2px;background-color:#fff;border-radius:50%;animation:_blink_1ooxl_1 1.4s infinite ease-in-out both}._typing-indicator_1ooxl_37 ._dot_1ooxl_42:nth-child(1){animation-delay:0s}._typing-indicator_1ooxl_37 ._dot_1ooxl_42:nth-child(2){animation-delay:.2s}._typing-indicator_1ooxl_37 ._dot_1ooxl_42:nth-child(3){animation-delay:.4s}._table_container_1ooxl_60{overflow-x:scroll}._table_container_1ooxl_60 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_1ooxl_60 table thead{position:sticky;top:0;z-index:1;background-color:#141414}._table_container_1ooxl_60 table th,._table_container_1ooxl_60 table td{padding:12px 16px;border-bottom:1px solid #333;text-align:left;white-space:nowrap;transition:background-color .3s,color .3s}._table_container_1ooxl_60 table th{font-weight:600;color:#fffffff2}._table_container_1ooxl_60 table tbody tr:nth-child(odd){background-color:#1c1c1c}._table_container_1ooxl_60 table tbody tr:nth-child(2n){background-color:#111}._table_container_1ooxl_60 table tbody tr:hover td{background-color:#262626}._table_container_1ooxl_60 table tbody tr:last-child td{border-bottom:none}@keyframes _blink_1ooxl_1{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}._carousel_root_sv1hc_1{width:100%;display:flex;flex-wrap:nowrap;overflow-x:scroll;gap:8px}._carousel_root_sv1hc_1>div{flex:0 0 auto}._carousel_time_sv1hc_12{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_19djz_1{width:255px;max-height:380px;border-radius:8px;overflow:hidden;display:grid;grid-template-rows:max-content auto}._map_container_19djz_10{width:100%;height:170px;overflow:hidden;position:relative}._map_iframe_19djz_17{display:block;width:100%;height:100%;border:none;pointer-events:none}._card_content_19djz_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_19djz_35{color:#fff;margin:0;font-size:15px;font-weight:600}._card_description_19djz_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;top:0;left:0;right:0;bottom: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;top:0;left:0;right:0;bottom: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}._chatbot_footer_13y44_1{border-top:1px solid #434343}._chatbot_footer_13y44_1 ._chatbot_footer__content_13y44_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_13y44_1{0%{opacity:0}to{opacity:1}}._chatbot_textarea_13y44_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_13y44_22::placeholder{color:var(--asg-color-text-placeholder)}._chatbot_textarea_13y44_22._chatbot_textarea--focused_13y44_39{animation:_prevent_ios_focus_scroll_13y44_1 .01s}._chatbot_submit_button_13y44_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_13y44_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_13y44_43._chatbot_submit_button__disabled_13y44_68{opacity:.6}._attachment_buttons_13y44_72{display:flex;gap:var(--asg-spacing-2);align-items:center}._attachment_menu_container_13y44_78{position:relative}._attachment_menu_13y44_78{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_13y44_96{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_13y44_96:hover{background:#ffffff1a}._attachment_menu_item_13y44_96>svg{width:18px;height:18px;flex-shrink:0}._attachment_menu_item_13y44_96>span{white-space:nowrap}._attachment_button_13y44_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_13y44_72:disabled{opacity:.6;cursor:not-allowed}._attachment_button_13y44_72>svg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:18px;height:18px}._file_input_hidden_13y44_150{display:none}._file_preview_container_13y44_154{width:100%;max-width:1200px;margin:0 auto;padding:var(--asg-spacing-3, 12px);padding-bottom:0}._file_preview_grid_13y44_162{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--asg-spacing-2, 8px)}@media (max-width: 768px){._file_preview_grid_13y44_162{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}._file_preview_item_13y44_173{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;aspect-ratio:3/2;max-width:250px}._file_preview_image_area_13y44_183{width:100%;height:100%;background:var(--asg-color-bg-dark, #1a1a1a);display:flex;align-items:center;justify-content:center;position:relative}._file_preview_image_13y44_183{max-width:100%;max-height:100%;object-fit:contain;cursor:pointer;transition:opacity .2s ease}._file_preview_image_13y44_183:hover{opacity:.8}._file_remove_button_13y44_204{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_13y44_223{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center}@keyframes _spin_13y44_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._file_upload_spinner_13y44_240{width:24px;height:24px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_spin_13y44_1 .8s linear infinite}._file_preview_item__error_13y44_249{border-color:#ef4444}._file_error_overlay_13y44_253{position:absolute;top:0;right:0;bottom:0;left:0;background:#ef444433;display:flex;align-items:center;justify-content:center}._file_error_icon_13y44_262{width:24px;height:24px;color:#ef4444}._image_modal_13y44_268{position:fixed;top:0;right:0;bottom:0;left: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_13y44_280{display:flex;flex-direction:column;align-items:center;gap:var(--asg-spacing-4, 16px)}._image_modal_image_13y44_287{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_13y44_296{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_13y44_296:hover{background:#fff3;transform:scale(1.1)}._image_modal_close_button_13y44_296:active{transform:scale(.95)}._document_preview_grid_13y44_323{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--asg-spacing-2, 8px)}@media (max-width: 768px){._document_preview_grid_13y44_323{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}._document_preview_item_13y44_334{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_13y44_349{display:flex;align-items:center;justify-content:center;flex:1}._document_preview_icon_13y44_349{width:48px;height:48px;color:var(--asg-color-text-secondary, #a0a0a0)}._document_preview_name_13y44_362{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_84qyk_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}._chatbot_root_84qyk_2 *{line-height:1.5;box-sizing:border-box}._full_screen_84qyk_125{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--asg-color-bg)}._full_screen_84qyk_125 ._chatbot_container_84qyk_130{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_84qyk_130{display:grid;grid-template-rows:max-content auto max-content;background-color:var(--asg-color-bg);overflow:hidden;overscroll-behavior:contain}._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";/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}._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_1ozig_1{width:100%;display:flex;gap:8px}._template_box--bot_1ozig_7._template_box--horizontal_1ozig_7{flex-direction:row}._template_box--bot_1ozig_7._template_box--vertical_1ozig_10{flex-direction:column}._template_box--user_1ozig_14{flex-direction:row-reverse}._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}._time_h4puu_1{display:flex;align-items:flex-end;font-size:12px;color:#8c8c8c}._bot_avatar_xrs9x_1{flex:0 0 auto;width:24px;height:24px;border-radius:50%}._card_root_1qjc0_1{width:255px;height:368px;max-height:380px;border-radius:8px;background:#333;overflow:hidden;display:grid;grid-template-rows:max-content auto}._card_content_1qjc0_12{display:grid;grid-template-rows:1.5em auto max-content;gap:var(--asg-spacing-2);padding:12px;line-height:1.5em}._card_title_1qjc0_20{color:#fff;margin:0;font-size:15px}._card_description_1qjc0_26{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_1qjc0_41{display:flex;flex-direction:column;gap:8px}._card_actions_1qjc0_41>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_1ooxl_1{display:inline-block;padding:8px 12px;border-radius:8px;color:#fff;word-break:break-all}._text_1ooxl_1>span{word-break:break-all}._text_1ooxl_1 ._md_container_1ooxl_11{display:inline-block;width:100%}._text_1ooxl_1 ._md_container_1ooxl_11 p{margin:0}._text--user_1ooxl_19{max-width:75%;background:#4767eb;border-top-right-radius:0}._text--bot_1ooxl_25{max-width:70%;background:#585858;border-top-left-radius:0}._content_1ooxl_31{display:flex;flex-direction:column;gap:8px}._typing-indicator_1ooxl_37{display:inline-flex;align-items:flex-end;justify-content:center}._typing-indicator_1ooxl_37 ._dot_1ooxl_42{width:2px;height:2px;margin:0 2px;background-color:#fff;border-radius:50%;animation:_blink_1ooxl_1 1.4s infinite ease-in-out both}._typing-indicator_1ooxl_37 ._dot_1ooxl_42:nth-child(1){animation-delay:0s}._typing-indicator_1ooxl_37 ._dot_1ooxl_42:nth-child(2){animation-delay:.2s}._typing-indicator_1ooxl_37 ._dot_1ooxl_42:nth-child(3){animation-delay:.4s}._table_container_1ooxl_60{overflow-x:scroll}._table_container_1ooxl_60 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_1ooxl_60 table thead{position:sticky;top:0;z-index:1;background-color:#141414}._table_container_1ooxl_60 table th,._table_container_1ooxl_60 table td{padding:12px 16px;border-bottom:1px solid #333;text-align:left;white-space:nowrap;transition:background-color .3s,color .3s}._table_container_1ooxl_60 table th{font-weight:600;color:#fffffff2}._table_container_1ooxl_60 table tbody tr:nth-child(odd){background-color:#1c1c1c}._table_container_1ooxl_60 table tbody tr:nth-child(2n){background-color:#111}._table_container_1ooxl_60 table tbody tr:hover td{background-color:#262626}._table_container_1ooxl_60 table tbody tr:last-child td{border-bottom:none}@keyframes _blink_1ooxl_1{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}._carousel_root_sv1hc_1{width:100%;display:flex;flex-wrap:nowrap;overflow-x:scroll;gap:8px}._carousel_root_sv1hc_1>div{flex:0 0 auto}._carousel_time_sv1hc_12{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_19djz_1{width:255px;max-height:380px;border-radius:8px;overflow:hidden;display:grid;grid-template-rows:max-content auto}._map_container_19djz_10{width:100%;height:170px;overflow:hidden;position:relative}._map_iframe_19djz_17{display:block;width:100%;height:100%;border:none;pointer-events:none}._card_content_19djz_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_19djz_35{color:#fff;margin:0;font-size:15px;font-weight:600}._card_description_19djz_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;top:0;left:0;right:0;bottom: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;top:0;left:0;right:0;bottom: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_1fibo_1{display:flex;flex-direction:column;gap:8px;width:100%;position:relative}._header_1fibo_9{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px 8px 0 0}._title_1fibo_17{font-size:14px;font-weight:600}._download_button_1fibo_22{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_1fibo_22:hover{background:#fff3}._download_button_1fibo_22:active{background:#ffffff4d}._table_wrapper_1fibo_42{overflow-x:auto;border-radius:8px}._table_1fibo_42{width:100%;border-collapse:collapse;font-size:13px}._table_header_1fibo_53{background:#0003}._table_header_cell_1fibo_57{padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.1)}._table_row_1fibo_65:hover{background:#ffffff0d}._table_row_1fibo_65:not(:last-child){border-bottom:1px solid rgba(255,255,255,.1)}._table_cell_1fibo_72{padding:10px 12px;white-space:nowrap}._pagination_1fibo_77{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px}._pagination_button_1fibo_85{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_1fibo_85:hover:not(:disabled){background:#ffffff1a}._pagination_button_1fibo_85:disabled{opacity:.4;cursor:not-allowed}._pagination_info_1fibo_106{font-size:13px;padding:0 12px}._empty_state_1fibo_111{padding:24px;text-align:center;font-size:13px;opacity:.7}._time_1fibo_118{justify-content:flex-end}._snackbar_1fibo_122{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_1fibo_1 .2s ease-out}@keyframes _slideUp_1fibo_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._snackbar_text_1fibo_147{flex:1;font-size:13px;color:#fff}._snackbar_action_1fibo_153{padding:4px 12px;border:none;border-radius:4px;background:transparent;color:#4fc3f7;font-size:13px;font-weight:500;cursor:pointer}._snackbar_action_1fibo_153:hover{background:#4fc3f71a}._snackbar_close_1fibo_167{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_1fibo_167:hover{background:#ffffff1a;color:#fff}._chatbot_footer_13y44_1{border-top:1px solid #434343}._chatbot_footer_13y44_1 ._chatbot_footer__content_13y44_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_13y44_1{0%{opacity:0}to{opacity:1}}._chatbot_textarea_13y44_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_13y44_22::placeholder{color:var(--asg-color-text-placeholder)}._chatbot_textarea_13y44_22._chatbot_textarea--focused_13y44_39{animation:_prevent_ios_focus_scroll_13y44_1 .01s}._chatbot_submit_button_13y44_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_13y44_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_13y44_43._chatbot_submit_button__disabled_13y44_68{opacity:.6}._attachment_buttons_13y44_72{display:flex;gap:var(--asg-spacing-2);align-items:center}._attachment_menu_container_13y44_78{position:relative}._attachment_menu_13y44_78{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_13y44_96{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_13y44_96:hover{background:#ffffff1a}._attachment_menu_item_13y44_96>svg{width:18px;height:18px;flex-shrink:0}._attachment_menu_item_13y44_96>span{white-space:nowrap}._attachment_button_13y44_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_13y44_72:disabled{opacity:.6;cursor:not-allowed}._attachment_button_13y44_72>svg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:18px;height:18px}._file_input_hidden_13y44_150{display:none}._file_preview_container_13y44_154{width:100%;max-width:1200px;margin:0 auto;padding:var(--asg-spacing-3, 12px);padding-bottom:0}._file_preview_grid_13y44_162{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--asg-spacing-2, 8px)}@media (max-width: 768px){._file_preview_grid_13y44_162{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}._file_preview_item_13y44_173{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;aspect-ratio:3/2;max-width:250px}._file_preview_image_area_13y44_183{width:100%;height:100%;background:var(--asg-color-bg-dark, #1a1a1a);display:flex;align-items:center;justify-content:center;position:relative}._file_preview_image_13y44_183{max-width:100%;max-height:100%;object-fit:contain;cursor:pointer;transition:opacity .2s ease}._file_preview_image_13y44_183:hover{opacity:.8}._file_remove_button_13y44_204{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_13y44_223{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center}@keyframes _spin_13y44_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._file_upload_spinner_13y44_240{width:24px;height:24px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_spin_13y44_1 .8s linear infinite}._file_preview_item__error_13y44_249{border-color:#ef4444}._file_error_overlay_13y44_253{position:absolute;top:0;right:0;bottom:0;left:0;background:#ef444433;display:flex;align-items:center;justify-content:center}._file_error_icon_13y44_262{width:24px;height:24px;color:#ef4444}._image_modal_13y44_268{position:fixed;top:0;right:0;bottom:0;left: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_13y44_280{display:flex;flex-direction:column;align-items:center;gap:var(--asg-spacing-4, 16px)}._image_modal_image_13y44_287{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_13y44_296{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_13y44_296:hover{background:#fff3;transform:scale(1.1)}._image_modal_close_button_13y44_296:active{transform:scale(.95)}._document_preview_grid_13y44_323{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--asg-spacing-2, 8px)}@media (max-width: 768px){._document_preview_grid_13y44_323{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}._document_preview_item_13y44_334{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_13y44_349{display:flex;align-items:center;justify-content:center;flex:1}._document_preview_icon_13y44_349{width:48px;height:48px;color:var(--asg-color-text-secondary, #a0a0a0)}._document_preview_name_13y44_362{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_84qyk_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}._chatbot_root_84qyk_2 *{line-height:1.5;box-sizing:border-box}._full_screen_84qyk_125{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--asg-color-bg)}._full_screen_84qyk_125 ._chatbot_container_84qyk_130{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_84qyk_130{display:grid;grid-template-rows:max-content auto max-content;background-color:var(--asg-color-bg);overflow:hidden;overscroll-behavior:contain}._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}