@fusioni/client-sdk 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +389 -0
  3. package/dist/assets/logo-base64.d.ts +2 -0
  4. package/dist/assets/logo-base64.d.ts.map +1 -0
  5. package/dist/browser.d.ts +28 -0
  6. package/dist/browser.d.ts.map +1 -0
  7. package/dist/components/AudioRecorder.d.ts +9 -0
  8. package/dist/components/AudioRecorder.d.ts.map +1 -0
  9. package/dist/components/ChatInput.d.ts +6 -0
  10. package/dist/components/ChatInput.d.ts.map +1 -0
  11. package/dist/components/ChatLoader.d.ts +3 -0
  12. package/dist/components/ChatLoader.d.ts.map +1 -0
  13. package/dist/components/ChatPanel.d.ts +13 -0
  14. package/dist/components/ChatPanel.d.ts.map +1 -0
  15. package/dist/components/ChatWidget.d.ts +5 -0
  16. package/dist/components/ChatWidget.d.ts.map +1 -0
  17. package/dist/components/ConfirmationDialog.d.ts +14 -0
  18. package/dist/components/ConfirmationDialog.d.ts.map +1 -0
  19. package/dist/components/ConversationList.d.ts +4 -0
  20. package/dist/components/ConversationList.d.ts.map +1 -0
  21. package/dist/components/FileUpload.d.ts +11 -0
  22. package/dist/components/FileUpload.d.ts.map +1 -0
  23. package/dist/components/FloatingButton.d.ts +16 -0
  24. package/dist/components/FloatingButton.d.ts.map +1 -0
  25. package/dist/components/ImageGallery.d.ts +14 -0
  26. package/dist/components/ImageGallery.d.ts.map +1 -0
  27. package/dist/components/LanguageSwitcher.d.ts +10 -0
  28. package/dist/components/LanguageSwitcher.d.ts.map +1 -0
  29. package/dist/components/Map.d.ts +14 -0
  30. package/dist/components/Map.d.ts.map +1 -0
  31. package/dist/components/Map.example.d.ts +4 -0
  32. package/dist/components/Map.example.d.ts.map +1 -0
  33. package/dist/components/Message.d.ts +4 -0
  34. package/dist/components/Message.d.ts.map +1 -0
  35. package/dist/components/MessageList.d.ts +25 -0
  36. package/dist/components/MessageList.d.ts.map +1 -0
  37. package/dist/components/PaginatedGalleryStrip.d.ts +20 -0
  38. package/dist/components/PaginatedGalleryStrip.d.ts.map +1 -0
  39. package/dist/components/Spotlight.d.ts +7 -0
  40. package/dist/components/Spotlight.d.ts.map +1 -0
  41. package/dist/components/UrlPreview.d.ts +20 -0
  42. package/dist/components/UrlPreview.d.ts.map +1 -0
  43. package/dist/fusioni-sdk.umd.js +41642 -0
  44. package/dist/fusioni-sdk.umd.js.map +1 -0
  45. package/dist/hooks/useChatState.d.ts +26 -0
  46. package/dist/hooks/useChatState.d.ts.map +1 -0
  47. package/dist/hooks/useSSE.d.ts +2 -0
  48. package/dist/hooks/useSSE.d.ts.map +1 -0
  49. package/dist/hooks/useTheme.d.ts +8 -0
  50. package/dist/hooks/useTheme.d.ts.map +1 -0
  51. package/dist/hooks/useTranslation.d.ts +12 -0
  52. package/dist/hooks/useTranslation.d.ts.map +1 -0
  53. package/dist/i18n/el.d.ts +90 -0
  54. package/dist/i18n/el.d.ts.map +1 -0
  55. package/dist/i18n/en.d.ts +90 -0
  56. package/dist/i18n/en.d.ts.map +1 -0
  57. package/dist/i18n/index.d.ts +190 -0
  58. package/dist/i18n/index.d.ts.map +1 -0
  59. package/dist/index.css +1 -0
  60. package/dist/index.d.ts +495 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.esm.css +1 -0
  63. package/dist/index.esm.js +6458 -0
  64. package/dist/index.esm.js.map +1 -0
  65. package/dist/index.js +6492 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/services/ApiClient.d.ts +17 -0
  68. package/dist/services/ApiClient.d.ts.map +1 -0
  69. package/dist/services/ConversationService.d.ts +45 -0
  70. package/dist/services/ConversationService.d.ts.map +1 -0
  71. package/dist/services/MessageService.d.ts +18 -0
  72. package/dist/services/MessageService.d.ts.map +1 -0
  73. package/dist/services/PipelineService.d.ts +16 -0
  74. package/dist/services/PipelineService.d.ts.map +1 -0
  75. package/dist/services/SDKClientService.d.ts +31 -0
  76. package/dist/services/SDKClientService.d.ts.map +1 -0
  77. package/dist/test.d.ts +4 -0
  78. package/dist/test.d.ts.map +1 -0
  79. package/dist/types/index.d.ts +163 -0
  80. package/dist/types/index.d.ts.map +1 -0
  81. package/package.json +77 -0
@@ -0,0 +1,26 @@
1
+ import { Conversation, FusioniMemoryMessage } from '../types';
2
+ /** Set on `extra_data` for the local user bubble before pipeline exec; used to drop it when the server echoes the turn. */
3
+ export declare const FUSIONI_SDK_OPTIMISTIC_USER: "fusion_sdk_optimistic_user";
4
+ export declare function isFusioniSdkOptimisticUserMessage(m: FusioniMemoryMessage): boolean;
5
+ export declare const useChatState: (agencyId: string) => {
6
+ conversations: Conversation[];
7
+ currentConversation: Conversation | null;
8
+ messages: FusioniMemoryMessage[];
9
+ streamMessages: string[];
10
+ isLoading: boolean;
11
+ setCurrentConversation: import("react").Dispatch<import("react").SetStateAction<Conversation | null>>;
12
+ setStreamMessages: import("react").Dispatch<import("react").SetStateAction<string[]>>;
13
+ addMessage: (message: FusioniMemoryMessage) => void;
14
+ updateMessage: (messageId: string, updates: Partial<FusioniMemoryMessage>) => void;
15
+ removeMessage: (messageId: string) => void;
16
+ removeOptimisticUserMessages: () => void;
17
+ truncateMessagesAt: (messageId: string) => void;
18
+ addConversation: (conversation: Conversation) => void;
19
+ updateConversation: (conversationId: string | null, updatedConversation: Conversation) => void;
20
+ removeConversation: (conversationId: string) => void;
21
+ loadConversations: (page?: number, size?: number) => Promise<void>;
22
+ loadMessages: (conversationId: string) => Promise<void>;
23
+ clearStreamMessages: () => void;
24
+ clearMessages: () => void;
25
+ };
26
+ //# sourceMappingURL=useChatState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatState.d.ts","sourceRoot":"","sources":["../../src/hooks/useChatState.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAI5D,2HAA2H;AAC3H,eAAO,MAAM,2BAA2B,EAAG,4BAAqC,CAAC;AAEjF,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAElF;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM;;;;;;;;0BA+CF,oBAAoB;+BAIf,MAAM,WAAW,OAAO,CAAC,oBAAoB,CAAC;+BAM9C,MAAM;;oCAUD,MAAM;oCAUN,YAAY;yCAYP,MAAM,GAAG,IAAI,uBAAuB,YAAY;yCARhD,MAAM;+BA1EX,MAAM,SAAY,MAAM;mCAiBnB,MAAM;;;CAoG/D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useSSE: (agencyId: string, onMessage: (data: any) => void, isConnected?: boolean, accessToken?: string) => EventSource | null;
2
+ //# sourceMappingURL=useSSE.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSSE.d.ts","sourceRoot":"","sources":["../../src/hooks/useSSE.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,GAAI,UAAU,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,cAAa,OAAc,EAAE,cAAc,MAAM,uBA4EzH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Theme } from '../types';
2
+ export declare const useTheme: (initialTheme?: Theme) => {
3
+ theme: "light" | "dark";
4
+ toggleTheme: () => void;
5
+ isManualOverride: boolean;
6
+ };
7
+ export declare const clearSavedTheme: () => void;
8
+ //# sourceMappingURL=useTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,eAAO,MAAM,QAAQ,GAAI,eAAe,KAAK;;;;CAqE5C,CAAC;AAGF,eAAO,MAAM,eAAe,YAM3B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Language } from '../i18n';
2
+ export declare const useTranslation: (defaultLanguage?: Language) => {
3
+ t: (key: string) => string;
4
+ currentLanguage: Language;
5
+ changeLanguage: (language: Language) => void;
6
+ availableLanguages: {
7
+ code: Language;
8
+ name: string;
9
+ }[];
10
+ isValidLanguage: (lang: string) => lang is Language;
11
+ };
12
+ //# sourceMappingURL=useTranslation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation.d.ts","sourceRoot":"","sources":["../../src/hooks/useTranslation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA0D,MAAM,SAAS,CAAC;AAE3F,eAAO,MAAM,cAAc,GAAI,kBAAiB,QAAe;aAQjC,MAAM,KAAG,MAAM;;+BAIG,QAAQ;;;;;4BAMf,MAAM,KAAG,IAAI,IAAI,QAAQ;CAWjE,CAAC"}
@@ -0,0 +1,90 @@
1
+ export declare const el: {
2
+ readonly chat: {
3
+ readonly title: "Fusioni AI";
4
+ readonly subtitle: "AI Βοηθός";
5
+ readonly welcome: {
6
+ readonly title: "Καλώς ήρθατε στο Fusioni AI";
7
+ readonly description: "Ξεκινήστε μια νέα συνομιλία για να αρχίσετε να συνομιλείτε με AI";
8
+ readonly startButton: "Ξεκινήστε Νέα Συνομιλία";
9
+ readonly creating: "Δημιουργία...";
10
+ };
11
+ readonly input: {
12
+ readonly placeholder: "Πληκτρολογήστε το μήνυμά σας...";
13
+ readonly send: "Αποστολή";
14
+ readonly upload: "Ανέβασμα";
15
+ readonly record: "Εγγραφή";
16
+ };
17
+ readonly conversations: {
18
+ readonly title: "Συνομιλίες";
19
+ readonly search: "Αναζήτηση συνομιλιών...";
20
+ readonly newConversation: "Νέα Συνομιλία";
21
+ readonly noConversations: "Δεν υπάρχουν συνομιλίες ακόμα";
22
+ readonly delete: "Διαγραφή συνομιλίας";
23
+ readonly newIndicator: "Νέα συνομιλία - θα αποθηκευτεί όταν στείλετε μήνυμα";
24
+ readonly deleteConfirm: {
25
+ readonly title: "Διαγραφή Συνομιλίας";
26
+ readonly message: "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη συνομιλία; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.";
27
+ readonly confirm: "Διαγραφή";
28
+ readonly cancel: "Ακύρωση";
29
+ };
30
+ };
31
+ readonly attachedImages: "Εικόνες";
32
+ readonly messages: {
33
+ readonly loading: "Εργάζομαι...";
34
+ readonly error: "Ουπς! Κάτι πήγε στραβά. Παρακαλώ δοκιμάστε ξανά αργότερα.";
35
+ readonly delete: "Διαγραφή μηνύματος";
36
+ readonly deleteConfirm: {
37
+ readonly title: "Διαγραφή Μηνύματος";
38
+ readonly message: "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μήνυμα; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.";
39
+ readonly confirm: "Διαγραφή";
40
+ readonly cancel: "Ακύρωση";
41
+ };
42
+ };
43
+ readonly connection: {
44
+ readonly connected: "Συνδεδεμένο για ενημερώσεις σε πραγματικό χρόνο";
45
+ readonly disconnected: "Αποσυνδεδεμένο από ενημερώσεις σε πραγματικό χρόνο";
46
+ };
47
+ readonly fullscreen: {
48
+ readonly enter: "Πλήρης οθόνη";
49
+ readonly exit: "Έξοδος από πλήρη οθόνη";
50
+ };
51
+ readonly theme: {
52
+ readonly light: "Εναλλαγή σε φωτεινό θέμα";
53
+ readonly dark: "Εναλλαγή σε σκοτεινό θέμα";
54
+ };
55
+ readonly errors: {
56
+ readonly failedToCreateConversation: "Αποτυχία δημιουργίας συνομιλίας";
57
+ readonly failedToLoadConversation: "Αποτυχία φόρτωσης συνομιλίας";
58
+ readonly failedToDeleteConversation: "Αποτυχία διαγραφής συνομιλίας";
59
+ readonly failedToSendMessage: "Αποτυχία αποστολής μηνύματος";
60
+ readonly failedToDeleteMessage: "Αποτυχία διαγραφής μηνύματος";
61
+ readonly failedToUploadFile: "Αποτυχία ανεβάσματος αρχείου";
62
+ readonly failedToInitialize: "Αποτυχία αρχικοποίησης υπηρεσίας συνομιλίας";
63
+ readonly retry: "Επανάληψη";
64
+ };
65
+ };
66
+ readonly language: {
67
+ readonly english: "English";
68
+ readonly greek: "Ελληνικά";
69
+ readonly switchLanguage: "Αλλαγή Γλώσσας";
70
+ };
71
+ readonly common: {
72
+ readonly close: "Κλείσιμο";
73
+ readonly open: "Άνοιγμα";
74
+ readonly cancel: "Ακύρωση";
75
+ readonly confirm: "Επιβεβαίωση";
76
+ readonly save: "Αποθήκευση";
77
+ readonly delete: "Διαγραφή";
78
+ readonly edit: "Επεξεργασία";
79
+ readonly search: "Αναζήτηση";
80
+ readonly clear: "Εκκαθάριση";
81
+ readonly loading: "Φόρτωση...";
82
+ readonly error: "Σφάλμα";
83
+ readonly success: "Επιτυχία";
84
+ readonly warning: "Προειδοποίηση";
85
+ readonly info: "Πληροφορία";
86
+ readonly yes: "Ναι";
87
+ readonly no: "Όχι";
88
+ };
89
+ };
90
+ //# sourceMappingURL=el.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"el.d.ts","sourceRoot":"","sources":["../../src/i18n/el.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FL,CAAC"}
@@ -0,0 +1,90 @@
1
+ export declare const en: {
2
+ readonly chat: {
3
+ readonly title: "Fusioni AI";
4
+ readonly subtitle: "AI Assistant";
5
+ readonly welcome: {
6
+ readonly title: "Welcome to Fusioni";
7
+ readonly description: "Start a new conversation to begin chatting with AI";
8
+ readonly startButton: "Start New Conversation";
9
+ readonly creating: "Creating...";
10
+ };
11
+ readonly input: {
12
+ readonly placeholder: "Type your message...";
13
+ readonly send: "Send";
14
+ readonly upload: "Upload";
15
+ readonly record: "Record";
16
+ };
17
+ readonly conversations: {
18
+ readonly title: "Conversations";
19
+ readonly search: "Search conversations...";
20
+ readonly newConversation: "New Conversation";
21
+ readonly noConversations: "No conversations yet";
22
+ readonly delete: "Delete conversation";
23
+ readonly newIndicator: "New conversation - will be saved when you send a message";
24
+ readonly deleteConfirm: {
25
+ readonly title: "Delete Conversation";
26
+ readonly message: "Are you sure you want to delete this conversation? This action cannot be undone.";
27
+ readonly confirm: "Delete";
28
+ readonly cancel: "Cancel";
29
+ };
30
+ };
31
+ readonly attachedImages: "Images";
32
+ readonly messages: {
33
+ readonly loading: "Working on it...";
34
+ readonly error: "Oops! Something went wrong. Please try again later.";
35
+ readonly delete: "Delete message";
36
+ readonly deleteConfirm: {
37
+ readonly title: "Delete Message";
38
+ readonly message: "Are you sure you want to delete this message? This action cannot be undone.";
39
+ readonly confirm: "Delete";
40
+ readonly cancel: "Cancel";
41
+ };
42
+ };
43
+ readonly connection: {
44
+ readonly connected: "Real-time updates connected";
45
+ readonly disconnected: "Real-time updates disconnected";
46
+ };
47
+ readonly fullscreen: {
48
+ readonly enter: "Enter fullscreen";
49
+ readonly exit: "Exit fullscreen";
50
+ };
51
+ readonly theme: {
52
+ readonly light: "Switch to light theme";
53
+ readonly dark: "Switch to dark theme";
54
+ };
55
+ readonly errors: {
56
+ readonly failedToCreateConversation: "Failed to create conversation";
57
+ readonly failedToLoadConversation: "Failed to load conversation";
58
+ readonly failedToDeleteConversation: "Failed to delete conversation";
59
+ readonly failedToSendMessage: "Failed to send message";
60
+ readonly failedToDeleteMessage: "Failed to delete message";
61
+ readonly failedToUploadFile: "Failed to upload file";
62
+ readonly failedToInitialize: "Failed to initialize chat service";
63
+ readonly retry: "Retry";
64
+ };
65
+ };
66
+ readonly language: {
67
+ readonly english: "English";
68
+ readonly greek: "Ελληνικά";
69
+ readonly switchLanguage: "Switch Language";
70
+ };
71
+ readonly common: {
72
+ readonly close: "Close";
73
+ readonly open: "Open";
74
+ readonly cancel: "Cancel";
75
+ readonly confirm: "Confirm";
76
+ readonly save: "Save";
77
+ readonly delete: "Delete";
78
+ readonly edit: "Edit";
79
+ readonly search: "Search";
80
+ readonly clear: "Clear";
81
+ readonly loading: "Loading...";
82
+ readonly error: "Error";
83
+ readonly success: "Success";
84
+ readonly warning: "Warning";
85
+ readonly info: "Info";
86
+ readonly yes: "Yes";
87
+ readonly no: "No";
88
+ };
89
+ };
90
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FL,CAAC"}
@@ -0,0 +1,190 @@
1
+ import { en } from './en';
2
+ export type Language = 'en' | 'el';
3
+ export type TranslationKeys = typeof en;
4
+ export declare const translations: {
5
+ readonly en: {
6
+ readonly chat: {
7
+ readonly title: "Fusioni AI";
8
+ readonly subtitle: "AI Assistant";
9
+ readonly welcome: {
10
+ readonly title: "Welcome to Fusioni";
11
+ readonly description: "Start a new conversation to begin chatting with AI";
12
+ readonly startButton: "Start New Conversation";
13
+ readonly creating: "Creating...";
14
+ };
15
+ readonly input: {
16
+ readonly placeholder: "Type your message...";
17
+ readonly send: "Send";
18
+ readonly upload: "Upload";
19
+ readonly record: "Record";
20
+ };
21
+ readonly conversations: {
22
+ readonly title: "Conversations";
23
+ readonly search: "Search conversations...";
24
+ readonly newConversation: "New Conversation";
25
+ readonly noConversations: "No conversations yet";
26
+ readonly delete: "Delete conversation";
27
+ readonly newIndicator: "New conversation - will be saved when you send a message";
28
+ readonly deleteConfirm: {
29
+ readonly title: "Delete Conversation";
30
+ readonly message: "Are you sure you want to delete this conversation? This action cannot be undone.";
31
+ readonly confirm: "Delete";
32
+ readonly cancel: "Cancel";
33
+ };
34
+ };
35
+ readonly attachedImages: "Images";
36
+ readonly messages: {
37
+ readonly loading: "Working on it...";
38
+ readonly error: "Oops! Something went wrong. Please try again later.";
39
+ readonly delete: "Delete message";
40
+ readonly deleteConfirm: {
41
+ readonly title: "Delete Message";
42
+ readonly message: "Are you sure you want to delete this message? This action cannot be undone.";
43
+ readonly confirm: "Delete";
44
+ readonly cancel: "Cancel";
45
+ };
46
+ };
47
+ readonly connection: {
48
+ readonly connected: "Real-time updates connected";
49
+ readonly disconnected: "Real-time updates disconnected";
50
+ };
51
+ readonly fullscreen: {
52
+ readonly enter: "Enter fullscreen";
53
+ readonly exit: "Exit fullscreen";
54
+ };
55
+ readonly theme: {
56
+ readonly light: "Switch to light theme";
57
+ readonly dark: "Switch to dark theme";
58
+ };
59
+ readonly errors: {
60
+ readonly failedToCreateConversation: "Failed to create conversation";
61
+ readonly failedToLoadConversation: "Failed to load conversation";
62
+ readonly failedToDeleteConversation: "Failed to delete conversation";
63
+ readonly failedToSendMessage: "Failed to send message";
64
+ readonly failedToDeleteMessage: "Failed to delete message";
65
+ readonly failedToUploadFile: "Failed to upload file";
66
+ readonly failedToInitialize: "Failed to initialize chat service";
67
+ readonly retry: "Retry";
68
+ };
69
+ };
70
+ readonly language: {
71
+ readonly english: "English";
72
+ readonly greek: "Ελληνικά";
73
+ readonly switchLanguage: "Switch Language";
74
+ };
75
+ readonly common: {
76
+ readonly close: "Close";
77
+ readonly open: "Open";
78
+ readonly cancel: "Cancel";
79
+ readonly confirm: "Confirm";
80
+ readonly save: "Save";
81
+ readonly delete: "Delete";
82
+ readonly edit: "Edit";
83
+ readonly search: "Search";
84
+ readonly clear: "Clear";
85
+ readonly loading: "Loading...";
86
+ readonly error: "Error";
87
+ readonly success: "Success";
88
+ readonly warning: "Warning";
89
+ readonly info: "Info";
90
+ readonly yes: "Yes";
91
+ readonly no: "No";
92
+ };
93
+ };
94
+ readonly el: {
95
+ readonly chat: {
96
+ readonly title: "Fusioni AI";
97
+ readonly subtitle: "AI Βοηθός";
98
+ readonly welcome: {
99
+ readonly title: "Καλώς ήρθατε στο Fusioni AI";
100
+ readonly description: "Ξεκινήστε μια νέα συνομιλία για να αρχίσετε να συνομιλείτε με AI";
101
+ readonly startButton: "Ξεκινήστε Νέα Συνομιλία";
102
+ readonly creating: "Δημιουργία...";
103
+ };
104
+ readonly input: {
105
+ readonly placeholder: "Πληκτρολογήστε το μήνυμά σας...";
106
+ readonly send: "Αποστολή";
107
+ readonly upload: "Ανέβασμα";
108
+ readonly record: "Εγγραφή";
109
+ };
110
+ readonly conversations: {
111
+ readonly title: "Συνομιλίες";
112
+ readonly search: "Αναζήτηση συνομιλιών...";
113
+ readonly newConversation: "Νέα Συνομιλία";
114
+ readonly noConversations: "Δεν υπάρχουν συνομιλίες ακόμα";
115
+ readonly delete: "Διαγραφή συνομιλίας";
116
+ readonly newIndicator: "Νέα συνομιλία - θα αποθηκευτεί όταν στείλετε μήνυμα";
117
+ readonly deleteConfirm: {
118
+ readonly title: "Διαγραφή Συνομιλίας";
119
+ readonly message: "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη συνομιλία; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.";
120
+ readonly confirm: "Διαγραφή";
121
+ readonly cancel: "Ακύρωση";
122
+ };
123
+ };
124
+ readonly attachedImages: "Εικόνες";
125
+ readonly messages: {
126
+ readonly loading: "Εργάζομαι...";
127
+ readonly error: "Ουπς! Κάτι πήγε στραβά. Παρακαλώ δοκιμάστε ξανά αργότερα.";
128
+ readonly delete: "Διαγραφή μηνύματος";
129
+ readonly deleteConfirm: {
130
+ readonly title: "Διαγραφή Μηνύματος";
131
+ readonly message: "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μήνυμα; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.";
132
+ readonly confirm: "Διαγραφή";
133
+ readonly cancel: "Ακύρωση";
134
+ };
135
+ };
136
+ readonly connection: {
137
+ readonly connected: "Συνδεδεμένο για ενημερώσεις σε πραγματικό χρόνο";
138
+ readonly disconnected: "Αποσυνδεδεμένο από ενημερώσεις σε πραγματικό χρόνο";
139
+ };
140
+ readonly fullscreen: {
141
+ readonly enter: "Πλήρης οθόνη";
142
+ readonly exit: "Έξοδος από πλήρη οθόνη";
143
+ };
144
+ readonly theme: {
145
+ readonly light: "Εναλλαγή σε φωτεινό θέμα";
146
+ readonly dark: "Εναλλαγή σε σκοτεινό θέμα";
147
+ };
148
+ readonly errors: {
149
+ readonly failedToCreateConversation: "Αποτυχία δημιουργίας συνομιλίας";
150
+ readonly failedToLoadConversation: "Αποτυχία φόρτωσης συνομιλίας";
151
+ readonly failedToDeleteConversation: "Αποτυχία διαγραφής συνομιλίας";
152
+ readonly failedToSendMessage: "Αποτυχία αποστολής μηνύματος";
153
+ readonly failedToDeleteMessage: "Αποτυχία διαγραφής μηνύματος";
154
+ readonly failedToUploadFile: "Αποτυχία ανεβάσματος αρχείου";
155
+ readonly failedToInitialize: "Αποτυχία αρχικοποίησης υπηρεσίας συνομιλίας";
156
+ readonly retry: "Επανάληψη";
157
+ };
158
+ };
159
+ readonly language: {
160
+ readonly english: "English";
161
+ readonly greek: "Ελληνικά";
162
+ readonly switchLanguage: "Αλλαγή Γλώσσας";
163
+ };
164
+ readonly common: {
165
+ readonly close: "Κλείσιμο";
166
+ readonly open: "Άνοιγμα";
167
+ readonly cancel: "Ακύρωση";
168
+ readonly confirm: "Επιβεβαίωση";
169
+ readonly save: "Αποθήκευση";
170
+ readonly delete: "Διαγραφή";
171
+ readonly edit: "Επεξεργασία";
172
+ readonly search: "Αναζήτηση";
173
+ readonly clear: "Εκκαθάριση";
174
+ readonly loading: "Φόρτωση...";
175
+ readonly error: "Σφάλμα";
176
+ readonly success: "Επιτυχία";
177
+ readonly warning: "Προειδοποίηση";
178
+ readonly info: "Πληροφορία";
179
+ readonly yes: "Ναι";
180
+ readonly no: "Όχι";
181
+ };
182
+ };
183
+ };
184
+ export declare const getTranslation: (language: Language, key: string) => string;
185
+ export declare const getAvailableLanguages: () => Array<{
186
+ code: Language;
187
+ name: string;
188
+ }>;
189
+ export declare const isValidLanguage: (language: string) => language is Language;
190
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAG1B,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC;AAExC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGf,CAAC;AAEX,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,EAAE,KAAK,MAAM,KAAG,MAsBhE,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,KAAK,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK9E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,QAAQ,IAAI,QAE9D,CAAC"}
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ :root{--fusioni-primary:#2563eb;--fusioni-primary-light:#3b82f6;--fusioni-primary-dark:#1d4ed8;--fusioni-secondary:#64748b;--fusioni-success:#059669;--fusioni-warning:#d97706;--fusioni-error:#dc2626;--fusioni-info:#0284c7;--fusioni-bg-primary:#fff;--fusioni-bg-secondary:#e7e7e7;--fusioni-bg-tertiary:#f1f5f9;--fusioni-bg-accent:#f0f9ff;--fusioni-bg-dark:#0f172a;--fusioni-bg-darker:#020617;--fusioni-text-primary:#0f172a;--fusioni-text-secondary:#475569;--fusioni-text-muted:#94a3b8;--fusioni-text-light:#fff;--fusioni-border:#e2e8f0;--fusioni-border-light:#f1f5f9;--fusioni-border-dark:#334155;--fusioni-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--fusioni-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--fusioni-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--fusioni-shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--fusioni-shadow-2xl:0 25px 50px -12px rgba(0,0,0,.25);--fusioni-radius:0.375rem;--fusioni-radius-md:0.5rem;--fusioni-radius-lg:0.75rem;--fusioni-radius-xl:1rem;--fusioni-radius-2xl:1.5rem;--fusioni-transition:all 0.2s cubic-bezier(0.4,0,0.2,1);--fusioni-transition-fast:all 0.15s cubic-bezier(0.4,0,0.2,1)}.fusioni-chat-widget{--fusioni-primary:var(--primary-color,#2563eb);--fusioni-primary-light:var(--primary-color,#3b82f6);--fusioni-primary-dark:var(--primary-color,#1d4ed8)}.fusioni-chat-widget.dark{--fusioni-primary:var(--primary-color,#3b82f6);--fusioni-primary-light:var(--primary-color,#60a5fa);--fusioni-primary-dark:var(--primary-color,#2563eb);--fusioni-secondary:#64748b;--fusioni-success:#10b981;--fusioni-warning:#f59e0b;--fusioni-error:#ef4444;--fusioni-info:#06b6d4;--fusioni-bg-primary:#0f172a;--fusioni-bg-secondary:#1e293b;--fusioni-bg-tertiary:#334155;--fusioni-bg-accent:#1e293b;--fusioni-bg-dark:#020617;--fusioni-bg-darker:#000;--fusioni-text-primary:#f8fafc;--fusioni-text-secondary:#cbd5e1;--fusioni-text-muted:#64748b;--fusioni-text-light:#fff;--fusioni-border:#334155;--fusioni-border-light:#475569;--fusioni-border-dark:#1e293b}.fusioni-chat-widget{background-color:var(--fusioni-bg-primary);color:var(--fusioni-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5}.fusioni-floating-button{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,var(--fusioni-primary) 0,var(--fusioni-primary-light) 100%);border:none;border:2px solid hsla(0,0%,100%,.1);border-radius:50%;box-shadow:var(--fusioni-shadow-2xl);cursor:pointer;display:flex;height:64px;justify-content:center;overflow:visible;position:fixed;width:64px;z-index:1000}.fusioni-floating-button:hover{background:linear-gradient(135deg,var(--fusioni-primary-dark) 0,var(--fusioni-primary) 100%);box-shadow:0 25px 50px -12px rgba(37,99,235,.4);transform:translateY(-2px) scale(1.05)}.fusioni-floating-button:active{transform:translateY(0) scale(.98)}.fusioni-floating-button-glass{backdrop-filter:blur(20px);background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 8px 32px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.4)}@supports not (backdrop-filter:blur(20px)){.fusioni-floating-button-glass{background:hsla(0,0%,100%,.9);border:1px solid rgba(0,0,0,.1)}}.fusioni-floating-button-minimal{background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);box-shadow:0 4px 12px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.1)}.fusioni-floating-button-solid{background:linear-gradient(135deg,var(--fusioni-primary) 0,var(--fusioni-primary-light) 100%);box-shadow:0 4px 12px rgba(37,99,235,.15),0 1px 3px rgba(37,99,235,.1)}.fusioni-floating-button-content{align-items:center;display:flex;justify-content:center}.fusioni-floating-button-icon{transition:all .3s cubic-bezier(.4,0,.2,1)}.fusioni-floating-button-glass .fusioni-floating-button-icon{color:var(--fusioni-text-primary);filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.fusioni-floating-button-minimal .fusioni-floating-button-icon{color:var(--fusioni-text-primary)}.fusioni-floating-button-solid .fusioni-floating-button-icon{color:#fff}.fusioni-floating-button-attention-ring{animation:attentionRingPulse 3s ease-in-out infinite;border:2px solid var(--fusioni-primary);border-radius:50%;bottom:-8px;left:-8px;opacity:0;pointer-events:none;position:absolute;right:-8px;top:-8px}.fusioni-floating-button-attention-ring-2{animation:attentionRingPulse 3s ease-in-out .5s infinite;border:1px solid var(--fusioni-primary-light);border-radius:50%;bottom:-16px;left:-16px;opacity:0;pointer-events:none;position:absolute;right:-16px;top:-16px}.fusioni-floating-button-attention-ring-3{animation:attentionRingPulse 3s ease-in-out 1s infinite;border:1px solid rgba(99,102,241,.3);border-radius:50%;bottom:-24px;left:-24px;opacity:0;pointer-events:none;position:absolute;right:-24px;top:-24px}.fusioni-floating-button-neural-particles{bottom:0;left:0;overflow:visible;pointer-events:none;position:absolute;right:0;top:0}.fusioni-neural-particle{animation:neuralParticleFloat 4s ease-in-out infinite;background:var(--fusioni-primary-light);border-radius:50%;box-shadow:0 0 6px var(--fusioni-primary-light);height:3px;opacity:0;position:absolute;width:3px}.fusioni-neural-particle:first-child{animation-delay:0s;left:15%;top:20%}.fusioni-neural-particle:nth-child(2){animation-delay:.8s;right:20%;top:15%}.fusioni-neural-particle:nth-child(3){animation-delay:1.6s;bottom:25%;left:25%}.fusioni-neural-particle:nth-child(4){animation-delay:2.4s;bottom:20%;right:15%}.fusioni-neural-particle:nth-child(5){animation-delay:3.2s;left:5%;top:50%}.fusioni-neural-particle:nth-child(6){animation-delay:.4s;right:5%;top:50%}.fusioni-floating-button-brain-activity{animation:brainActivityPulse 2.5s ease-in-out infinite;background:linear-gradient(45deg,#10b981,#059669);border-radius:50%;box-shadow:0 0 8px rgba(16,185,129,.6);height:16px;opacity:0;pointer-events:none;position:absolute;right:-2px;top:-2px;width:16px}.fusioni-floating-button-brain-activity:before{animation:brainCorePulse 1s ease-in-out infinite;background:#fff;border-radius:50%;content:"";height:6px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:6px}.fusioni-floating-button-attention-sequence{height:100px;left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:100px}.fusioni-attention-wave{animation:attentionWaveExpand 2s ease-out infinite;border:2px solid var(--fusioni-primary);border-radius:50%;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.fusioni-attention-wave:nth-child(2){animation-delay:.3s}.fusioni-attention-wave:nth-child(3){animation-delay:.6s}.fusioni-floating-button-periodic-pulse{animation:periodicAttentionPulse 8s ease-in-out infinite;background:radial-gradient(circle,rgba(99,102,241,.1) 0,transparent 70%);border-radius:50%;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.fusioni-floating-button-glow{animation:enhancedGlowPulse 3s ease-in-out infinite;background:radial-gradient(circle,rgba(99,102,241,.3) 0,transparent 70%);border-radius:50%;bottom:-4px;left:-4px;opacity:0;pointer-events:none;position:absolute;right:-4px;top:-4px}.fusioni-floating-button-magnetic-field{animation:magneticFieldRotate 6s linear infinite;border:1px solid rgba(99,102,241,.2);border-radius:50%;bottom:-12px;left:-12px;opacity:0;pointer-events:none;position:absolute;right:-12px;top:-12px}.fusioni-floating-button-magnetic-field:after,.fusioni-floating-button-magnetic-field:before{background:var(--fusioni-primary-light);border-radius:50%;box-shadow:0 0 4px var(--fusioni-primary-light);content:"";height:4px;position:absolute;width:4px}.fusioni-floating-button-magnetic-field:before{left:50%;top:0;transform:translateX(-50%)}.fusioni-floating-button-magnetic-field:after{bottom:0;left:50%;transform:translateX(-50%)}.fusioni-floating-button-bottom-right{bottom:1rem;right:1rem}.fusioni-floating-button-bottom-left{bottom:1rem;left:1rem}.fusioni-floating-button-top-right{right:1rem;top:1rem}.fusioni-floating-button-top-left{left:1rem;top:1rem}.fusioni-chat-panel{backdrop-filter:blur(20px);background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border-light);border-radius:var(--fusioni-radius-2xl);box-shadow:var(--fusioni-shadow-2xl);box-sizing:border-box;display:flex;flex-direction:column;height:640px;max-height:calc(100vh - 2rem);max-width:calc(100vw - 2rem);overflow:hidden;position:fixed;width:480px;z-index:50}.fusioni-chat-widget:not(.dark) .fusioni-chat-panel{background:hsla(0,0%,100%,.95)}.fusioni-chat-widget.dark .fusioni-chat-panel{background:rgba(15,23,42,.95)}.fusioni-chat-panel-content{box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.fusioni-chat-panel-bottom-right{bottom:5rem;right:1rem}.fusioni-chat-panel-bottom-left{bottom:5rem;left:1rem}.fusioni-chat-panel-top-right{right:1rem;top:5rem}.fusioni-chat-panel-top-left{left:1rem;top:5rem}.fusioni-chat-panel-fullscreen{border-radius:0!important;bottom:0!important;height:100vh!important;left:0!important;max-height:none!important;max-width:none!important;position:fixed!important;right:0!important;top:0!important;width:100vw!important;z-index:9999!important}.fusioni-chat-backdrop{background:rgba(0,0,0,.5);bottom:0;left:0;position:fixed;right:0;top:0;z-index:40}.fusioni-chat-container{box-sizing:border-box}.fusioni-chat-container,.fusioni-chat-main{display:flex;height:100%;overflow:hidden;width:100%}.fusioni-chat-main{flex:1;flex-direction:column;min-width:0;position:relative;transition:width var(--fusioni-transition)}.fusioni-conversation-list{backdrop-filter:blur(10px);background:var(--fusioni-bg-secondary);border-right:1px solid var(--fusioni-border-light);bottom:0;box-shadow:var(--fusioni-shadow-lg);display:flex;flex-direction:column;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transform:translateX(-100%) scale(.95);transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:10}.fusioni-chat-widget:not(.dark) .fusioni-conversation-list{background:linear-gradient(180deg,var(--fusioni-bg-accent) 0,var(--fusioni-bg-secondary) 100%)}.fusioni-conversation-list.open{opacity:1;transform:translateX(0) scale(1)}.fusioni-conversation-backdrop{backdrop-filter:blur(2px);background:rgba(0,0,0,.3);bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s cubic-bezier(.4,0,.2,1),visibility .3s cubic-bezier(.4,0,.2,1);visibility:hidden;z-index:5}.fusioni-conversation-backdrop.open{opacity:1;visibility:visible}.fusioni-conversation-header{align-items:center;backdrop-filter:blur(10px);background:var(--fusioni-bg-tertiary);border-bottom:1px solid var(--fusioni-border-light);display:flex;justify-content:space-between;padding:1.25rem 1rem}.fusioni-chat-widget:not(.dark) .fusioni-conversation-header{background:hsla(0,0%,100%,.8)}.fusioni-conversation-title{align-items:center;display:flex;gap:.75rem}.fusioni-conversation-logo{align-items:center;border:2px solid hsla(0,0%,100%,.2);border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow-md);color:#fff;display:flex;height:44px;justify-content:center;width:44px}.fusioni-conversation-info h3{color:var(--fusioni-text-primary);font-size:1rem;font-weight:600;margin:0}.fusioni-conversation-info p{color:var(--fusioni-text-secondary);font-size:.75rem;margin:0}.fusioni-conversation-search{padding:1rem}.fusioni-search-input{position:relative}.fusioni-input{border:1px solid var(--fusioni-border-light);border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow);color:var(--fusioni-text-primary);font-size:.875rem;padding:.75rem 2.5rem .75rem 1rem;transition:var(--fusioni-transition);width:100%}.fusioni-input,.fusioni-input:focus{background:var(--fusioni-bg-secondary)}.fusioni-input:focus{border-color:var(--fusioni-primary);box-shadow:0 0 0 3px rgba(59,130,246,.1),var(--fusioni-shadow-md);outline:none}.fusioni-chat-widget:not(.dark) .fusioni-input{background:var(--fusioni-bg-primary)}.fusioni-chat-widget:not(.dark) .fusioni-input:focus{background:var(--fusioni-bg-primary);box-shadow:0 0 0 3px rgba(37,99,235,.1),var(--fusioni-shadow-md)}.fusioni-search-icon{color:var(--fusioni-text-muted);pointer-events:none;position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.fusioni-divider{background:var(--fusioni-border);height:1px;margin:0 1rem}.fusioni-conversations{flex:1;overflow-y:auto;padding:.5rem}.fusioni-conversation-item{backdrop-filter:blur(10px);background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border-light);border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow);cursor:pointer;margin-bottom:.5rem;overflow:hidden;padding:1rem .5rem 1rem 1rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.fusioni-conversation-item:before{background:linear-gradient(135deg,rgba(37,99,235,.02),rgba(59,130,246,.05) 50%,rgba(37,99,235,.02));bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease;z-index:1}.fusioni-conversation-item:hover{background:var(--fusioni-bg-secondary);border-color:var(--fusioni-primary);box-shadow:var(--fusioni-shadow-lg);transform:translateY(-2px) scale(1.02)}.fusioni-conversation-item:hover:before{opacity:1}.fusioni-conversation-item.active{background:linear-gradient(135deg,var(--fusioni-primary) 0,var(--fusioni-primary-light) 100%);border-color:var(--fusioni-primary);box-shadow:0 8px 32px rgba(37,99,235,.3);color:#fff;transform:translateY(-1px)}.fusioni-conversation-item.active:before{opacity:0}.fusioni-conversation-neural-bg{bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .4s ease;z-index:0}.fusioni-conversation-item:hover .fusioni-conversation-neural-bg{opacity:.6}.fusioni-conversation-item.active .fusioni-conversation-neural-bg{opacity:.8}.fusioni-neural-node{animation:neuralPulse 3s ease-in-out infinite;background:var(--fusioni-primary);border-radius:50%;box-shadow:0 0 8px var(--fusioni-primary);height:4px;position:absolute;width:4px}.fusioni-neural-node-1{animation-delay:0s;left:15%;top:20%}.fusioni-neural-node-2{animation-delay:1s;right:20%;top:60%}.fusioni-neural-node-3{animation-delay:2s;bottom:25%;left:40%}.fusioni-neural-connection{animation:neuralFlow 4s ease-in-out infinite;background:linear-gradient(90deg,transparent 0,var(--fusioni-primary) 50%,transparent 100%);height:1px;position:absolute}.fusioni-neural-connection-1{animation-delay:.5s;left:15%;top:30%;transform:rotate(15deg);width:60%}.fusioni-neural-connection-2{animation-delay:1.5s;bottom:40%;left:25%;transform:rotate(-20deg);width:45%}.fusioni-ai-pulse-ring{animation:aiPulse 2s ease-in-out infinite;border:2px solid var(--fusioni-primary);border-radius:50%;height:100%;opacity:.6;position:absolute;width:100%}.fusioni-ai-core{align-items:center;animation:aiRotate 4s linear infinite;color:var(--fusioni-primary);display:flex;justify-content:center;position:relative;z-index:1}.fusioni-conversation-item.active .fusioni-ai-core{color:#fff}.fusioni-conversation-item.active .fusioni-ai-pulse-ring{border-color:#fff}.fusioni-conversation-content{display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:2}.fusioni-conversation-main{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.fusioni-conversation-title-section{display:flex;flex:1;flex-direction:column;gap:.5rem;min-width:0}.fusioni-conversation-title-text{align-items:center;color:var(--fusioni-text-primary);display:flex;flex-wrap:wrap;font-size:.95rem;font-weight:600;gap:.5rem;line-height:1.3;margin:0;word-break:break-word}.fusioni-conversation-item.active .fusioni-conversation-title-text{color:#fff}.fusioni-conversation-meta{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-top:.25rem}.fusioni-conversation-status{align-items:center;color:var(--fusioni-text-muted);display:flex;font-size:.75rem;font-weight:500;gap:.375rem}.fusioni-conversation-item.active .fusioni-conversation-status{color:hsla(0,0%,100%,.8)}.fusioni-status-dot{animation:statusPulse 2s ease-in-out infinite;background:var(--fusioni-success);border-radius:50%;box-shadow:0 0 4px var(--fusioni-success);height:6px;width:6px}.fusioni-conversation-temp-indicator{flex-shrink:0}.fusioni-new-badge{align-items:center;animation:newBadgePulse 2s ease-in-out infinite;background:linear-gradient(135deg,var(--fusioni-warning) 0,#f59e0b 100%);border-radius:var(--fusioni-radius);box-shadow:0 2px 8px rgba(217,119,6,.3);color:#fff;display:inline-flex;font-size:.625rem;font-weight:700;letter-spacing:.05em;padding:.25rem .5rem;position:relative;text-transform:uppercase}.fusioni-new-text{position:relative;z-index:2}.fusioni-new-pulse{animation:newPulseRing 2s ease-in-out infinite;background:linear-gradient(135deg,var(--fusioni-warning) 0,#f59e0b 100%);border-radius:var(--fusioni-radius);bottom:0;left:0;opacity:.6;position:absolute;right:0;top:0}.fusioni-conversation-actions{align-items:flex-start;display:flex;gap:.25rem;margin-top:.25rem}.fusioni-delete-btn{opacity:0;transform:scale(.8);transition:all .3s cubic-bezier(.4,0,.2,1)}.fusioni-conversation-item:hover .fusioni-delete-btn{opacity:1;transform:scale(1)}.fusioni-conversation-item.active .fusioni-delete-btn{background:hsla(0,0%,100%,.2);color:#fff;opacity:1;transform:scale(1)}.fusioni-conversation-item.active .fusioni-delete-btn:hover{background:hsla(0,0%,100%,.3);transform:scale(1.1)}.fusioni-conversation-date{color:var(--fusioni-text-muted);font-size:.75rem;font-weight:500;margin:0}.fusioni-conversation-item.active .fusioni-conversation-date{color:hsla(0,0%,100%,.8)}.fusioni-conversation-data-flow{bottom:0;height:2px;left:0;opacity:0;overflow:hidden;position:absolute;right:0;transition:opacity .3s ease}.fusioni-conversation-item.active .fusioni-conversation-data-flow,.fusioni-conversation-item:hover .fusioni-conversation-data-flow{opacity:1}.fusioni-data-stream{animation:dataFlow 3s ease-in-out infinite;background:linear-gradient(90deg,transparent 0,var(--fusioni-primary) 20%,var(--fusioni-primary-light) 50%,var(--fusioni-primary) 80%,transparent 100%);height:100%;left:-100%;position:absolute;top:0;width:100%}.fusioni-conversation-item.active .fusioni-data-stream{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3) 20%,hsla(0,0%,100%,.6) 50%,hsla(0,0%,100%,.3) 80%,transparent)}.fusioni-empty-state{color:var(--fusioni-text-muted);padding:2rem;text-align:center}.fusioni-message-list{background:var(--fusioni-bg-primary);display:flex;flex:1;flex-direction:column;overflow-y:auto;padding:1rem}.fusioni-messages-container{display:flex;flex-direction:column;gap:1rem;height:100%}.fusioni-empty-messages,.fusioni-empty-messages-content{align-items:center;display:flex;height:100%;justify-content:center}.fusioni-empty-messages-content{color:var(--fusioni-text-muted);flex-direction:column;text-align:center}.fusioni-empty-icon{color:var(--fusioni-text-muted);height:64px;margin:0 auto 1rem;width:64px}.fusioni-messages{gap:1rem}.fusioni-message-wrapper,.fusioni-messages{display:flex;flex-direction:column}.fusioni-message{align-items:flex-start;display:flex;gap:5px}.fusioni-message.user{flex-direction:row-reverse}.fusioni-message-avatar{align-items:center;background:var(--fusioni-bg-tertiary);border-radius:8px;color:var(--fusioni-text-secondary);display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.fusioni-message.user .fusioni-message-avatar{background:var(--fusioni-primary);color:#fff}.fusioni-message-content{flex:1;min-width:0}.fusioni-message-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.25rem}.fusioni-message-role{color:var(--fusioni-text-secondary);font-size:.75rem;font-weight:500;margin-left:5px}.fusioni-message-time{color:var(--fusioni-text-muted);font-size:.75rem}.fusioni-message-body{margin-bottom:0}.fusioni-message-bubble{word-wrap:break-word;border-radius:var(--fusioni-radius-lg);max-width:100%;padding:.75rem 1rem;position:relative;transition:var(--fusioni-transition)}.fusioni-message-bubble:hover{box-shadow:var(--fusioni-shadow)}.fusioni-message-user{background:var(--fusioni-primary);border-bottom-right-radius:.25rem;color:#fff}.fusioni-message-assistant{background:var(--fusioni-bg-secondary);border-bottom-left-radius:.25rem;color:var(--fusioni-text-primary)}.fusioni-message-error{background:var(--fusioni-error);color:#fff}.fusioni-message-text{line-height:1.5}.fusioni-message-text h1,.fusioni-message-text h2,.fusioni-message-text h3{line-height:1.25;margin:.5rem 0 .25rem}.fusioni-message-text p{margin:.5rem 0}.fusioni-message-text ol,.fusioni-message-text ul{margin:.5rem 0;padding-left:1.5rem}.fusioni-message-text code{background:var(--fusioni-bg-tertiary);border-radius:.25rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875em;padding:.125rem .25rem}.fusioni-message-text pre{background:var(--fusioni-bg-dark);border-radius:var(--fusioni-radius);color:var(--fusioni-text-light);margin:.5rem 0;overflow-x:auto;padding:.75rem}.fusioni-message-text a{color:var(--fusioni-primary);text-decoration:underline}.fusioni-message-extra,.fusioni-message-image{margin-top:.5rem}.fusioni-image{border-radius:var(--fusioni-radius);box-shadow:var(--fusioni-shadow);height:auto;max-width:100%}.fusioni-message-audio{background:var(--fusioni-bg-tertiary);border-radius:var(--fusioni-radius);margin-top:.5rem;padding:.75rem}.fusioni-audio-header{align-items:center;color:var(--fusioni-text-secondary);display:flex;font-size:.875rem;gap:.5rem;margin-bottom:.5rem}.fusioni-audio-duration{color:var(--fusioni-text-muted);font-size:.75rem}.fusioni-audio-player{height:32px;width:100%}.fusioni-message-map{margin-top:.5rem}.fusioni-map-placeholder{background:var(--fusioni-bg-tertiary);border-radius:var(--fusioni-radius);color:var(--fusioni-text-secondary);padding:1rem;text-align:center}.fusioni-map-container{border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius);box-shadow:var(--fusioni-shadow);margin-top:.5rem;overflow:hidden}.fusioni-map-interactive,.fusioni-map-static{height:auto;position:relative;width:100%}.fusioni-map-image{border-radius:var(--fusioni-radius);display:block;height:auto;width:100%}.fusioni-map-iframe{border:none;border-radius:var(--fusioni-radius);height:400px;width:100%}.fusioni-map-loading{align-items:center;background:var(--fusioni-bg-tertiary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius);display:flex;justify-content:center;padding:2rem}.fusioni-map-loading-content{align-items:center;color:var(--fusioni-text-secondary);display:flex;flex-direction:column;gap:.75rem}.fusioni-map-loading-spinner{animation:spin 1s linear infinite;border-top:2px solid var(--fusioni-border);border:2px solid var(--fusioni-border);border-radius:50%;border-top-color:var(--fusioni-primary);height:24px;width:24px}.fusioni-map-error{align-items:center;background:rgba(220,38,38,.05);border:1px solid rgba(220,38,38,.2);border-radius:var(--fusioni-radius);color:var(--fusioni-error);display:flex;justify-content:center;padding:1rem}.fusioni-map-error-content{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.fusioni-chat-widget.dark .fusioni-map-container{border-color:var(--fusioni-border-dark)}.fusioni-chat-widget.dark .fusioni-map-loading{background:var(--fusioni-bg-dark);border-color:var(--fusioni-border-dark)}.fusioni-chat-widget.dark .fusioni-map-error{background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.3)}.fusioni-message-thoughts{color:var(--fusioni-text-muted);font-size:.75rem;margin-top:.5rem}.fusioni-message-thoughts details{cursor:pointer}.fusioni-message-thoughts summary{font-weight:500}.fusioni-message-actions{align-items:center;align-self:center;display:flex;flex-direction:column;gap:.25rem;opacity:0;transition:var(--fusioni-transition)}.fusioni-message:hover .fusioni-message-actions{opacity:1}.fusioni-message-error-indicator{align-items:center;color:var(--fusioni-error);display:flex;font-size:.75rem;gap:.25rem;margin-top:.25rem}.fusioni-stream-message{align-items:center;display:flex;gap:.75rem;margin-bottom:.5rem}.fusioni-stream-message:last-child{margin-bottom:0}.fusioni-stream-indicator{align-items:center;display:flex;justify-content:center}.fusioni-stream-dot{animation:dotPulse 1.5s infinite;background:var(--fusioni-primary);border-radius:50%;box-shadow:0 0 8px rgba(99,102,241,.4);height:6px;width:6px}.fusioni-stream-text{color:var(--fusioni-text-secondary);font-size:.875rem;line-height:1.4}.fusioni-chat-input{background:var(--fusioni-bg-primary);border-top:1px solid var(--fusioni-border);padding:1rem}.fusioni-image-preview{margin-bottom:.75rem}.fusioni-image-preview-content{display:inline-block;position:relative}.fusioni-preview-image{border-radius:var(--fusioni-radius);box-shadow:var(--fusioni-shadow);max-height:200px;max-width:200px}.fusioni-image-preview-content .fusioni-btn{position:absolute;right:.5rem;top:.5rem}.fusioni-audio-preview{background:var(--fusioni-bg-secondary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius);margin-bottom:.75rem;padding:.75rem}.fusioni-audio-preview-content{display:flex;flex-direction:column;gap:.5rem}.fusioni-audio-preview-header{align-items:center;color:var(--fusioni-text-secondary);display:flex;font-size:.875rem;justify-content:space-between}.fusioni-audio-preview-player{height:32px;width:100%}.fusioni-audio-preview-text{color:var(--fusioni-text-muted);font-size:.75rem;margin:0;text-align:center}.fusioni-input-container{width:100%}.fusioni-input-wrapper{align-items:flex-end;background:var(--fusioni-bg-secondary);border:2px solid var(--fusioni-border);border-radius:var(--fusioni-radius-xl);display:flex;gap:.5rem;padding:.5rem;transition:var(--fusioni-transition)}.fusioni-input-wrapper:focus-within{border-color:var(--fusioni-primary);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.fusioni-textarea{background:transparent;border:none;color:var(--fusioni-text-primary);flex:1;font-family:inherit;font-size:.875rem;line-height:1.5;max-height:120px;min-height:20px;outline:none;padding:.5rem;resize:none}.fusioni-textarea::placeholder{color:var(--fusioni-text-muted)}.fusioni-input-actions{align-items:center;display:flex;gap:.25rem}.fusioni-btn{align-items:center;background:transparent;border:none;border-radius:var(--fusioni-radius);color:var(--fusioni-text-secondary);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.5rem;text-decoration:none;transition:var(--fusioni-transition)}.fusioni-btn:hover{background:var(--fusioni-bg-tertiary);color:var(--fusioni-text-primary)}.fusioni-btn:disabled{cursor:not-allowed;opacity:.5}.fusioni-btn-icon-primary{background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);box-shadow:var(--fusioni-shadow)}.fusioni-btn-icon-primary:hover{background:var(--fusioni-primary-dark);border-color:var(--fusioni-primary-dark);color:#fff}.fusioni-btn-icon{border-radius:50%;height:25px;padding:0;transition:var(--fusioni-transition-fast);width:28px}.fusioni-btn-icon:hover{background:var(--fusioni-primary);border-color:var(--fusioni-primary);color:#fff;transform:scale(1.05)}.fusioni-btn-primary{background:linear-gradient(135deg,var(--fusioni-primary) 0,var(--fusioni-primary-light) 100%);border:none;border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow-md);color:#fff;font-weight:600;padding:.75rem 1.5rem;transition:var(--fusioni-transition)}.fusioni-btn-primary:hover{background:linear-gradient(135deg,var(--fusioni-primary-dark) 0,var(--fusioni-primary) 100%);box-shadow:var(--fusioni-shadow-lg);color:#fff;transform:translateY(-1px)}.fusioni-btn-danger{color:var(--fusioni-error)}.fusioni-btn-danger:hover{background:var(--fusioni-error);color:#fff}.fusioni-btn-text{background:transparent;color:var(--fusioni-primary);padding:.25rem .5rem}.fusioni-btn-text:hover{background:var(--fusioni-bg-tertiary);color:var(--fusioni-primary)}.fusioni-btn-send{background:var(--fusioni-primary);color:#fff}.fusioni-btn-send:hover{background:var(--fusioni-primary-dark);color:#fff}.fusioni-btn-send:disabled{background:var(--fusioni-text-muted);color:var(--fusioni-text-light)}.fusioni-btn-send-audio{background:var(--fusioni-success)}.fusioni-btn-send-audio:hover{background:#059669}.fusioni-btn-recording{animation:recordingPulse 2s ease-in-out infinite;background:var(--fusioni-error);color:#fff}.fusioni-btn-recording:hover{background:#dc2626;color:#fff}.fusioni-confirmation-widget{display:flex;gap:.75rem;padding-top:1.25rem}.fusioni-btn-confirm{background:linear-gradient(135deg,var(--fusioni-primary) 0,var(--fusioni-primary-light) 100%);border:none;border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow-md);color:#fff;font-size:.875rem;font-weight:600;padding:.75rem 1.5rem;transition:var(--fusioni-transition)}.fusioni-btn-confirm:hover:not(:disabled){background:linear-gradient(135deg,var(--fusioni-primary-dark) 0,var(--fusioni-primary) 100%);box-shadow:var(--fusioni-shadow-lg);color:#fff;transform:translateY(-1px) scale(1.05)}.fusioni-btn-confirm:active:not(:disabled){transform:translateY(0) scale(1)}.fusioni-btn-confirm:disabled{background:var(--fusioni-primary);cursor:not-allowed;opacity:.5;transform:none}.fusioni-btn-cancel{background:var(--fusioni-secondary);border:none;border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow-md);color:#fff;font-size:.875rem;font-weight:600;padding:.75rem 1.5rem;transition:var(--fusioni-transition)}.fusioni-btn-cancel:hover:not(:disabled){background:var(--fusioni-secondary);box-shadow:var(--fusioni-shadow-lg);color:#fff;transform:translateY(-1px) scale(1.05)}.fusioni-btn-cancel:active:not(:disabled){transform:translateY(0) scale(1)}.fusioni-btn-cancel:disabled{cursor:not-allowed;opacity:.5;transform:none}.dark .fusioni-btn-cancel,.dark .fusioni-btn-cancel:hover:not(:disabled),.fusioni-btn-cancel:disabled{background:var(--fusioni-secondary)}.fusioni-audio-recorder{align-items:center;display:flex;gap:.5rem}.fusioni-recording-indicator{align-items:center;display:flex;justify-content:center}.fusioni-recording-dot{animation:recordingPulse 1.5s ease-in-out infinite;background:#fff;border-radius:50%;height:8px;width:8px}.fusioni-recording-timer{color:var(--fusioni-error);font-size:.75rem;font-weight:500;min-width:3rem;text-align:center}.fusioni-audio-error{background:var(--fusioni-error);border-radius:var(--fusioni-radius);bottom:100%;color:#fff;font-size:.75rem;left:0;margin-bottom:.5rem;padding:.5rem;position:absolute;right:0}.fusioni-audio-error p{margin:0 0 .25rem}.fusioni-audio-error button{background:transparent;border:1px solid #fff;border-radius:var(--fusioni-radius);color:#fff;cursor:pointer;font-size:.75rem;padding:.25rem .5rem}.fusioni-chat-loader{padding:1rem;text-align:center}.fusioni-loader-content{align-items:center;display:flex;gap:.75rem;justify-content:center}.fusioni-loader-dots{display:flex;gap:.25rem}.fusioni-loader-dot{animation:dotPulse 1.5s ease-in-out infinite;background:var(--fusioni-primary);border-radius:50%;height:6px;width:6px}.fusioni-loader-dot:nth-child(2){animation-delay:.2s}.fusioni-loader-dot:nth-child(3){animation-delay:.4s}.fusioni-loader-text{color:var(--fusioni-text-secondary);font-size:.875rem}.fusioni-chat-main-header{align-items:center;backdrop-filter:blur(10px);background:var(--fusioni-bg-tertiary);border-bottom:1px solid var(--fusioni-border-light);display:flex;justify-content:space-between;padding:1rem;position:relative;z-index:5}.fusioni-chat-widget:not(.dark) .fusioni-chat-main-header{background:hsla(0,0%,100%,.8)}.fusioni-header-actions{align-items:center;display:flex;gap:.75rem}.fusioni-conversation-toggle{align-items:center;background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius-lg);color:var(--fusioni-text-secondary);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem .75rem;transition:var(--fusioni-transition)}.fusioni-conversation-toggle:hover{background:var(--fusioni-primary);border-color:var(--fusioni-primary);color:#fff}.fusioni-conversation-toggle-icon{height:16px;transition:transform var(--fusioni-transition);width:16px}.fusioni-conversation-toggle.open .fusioni-conversation-toggle-icon{transform:rotate(180deg)}.fusioni-connection-indicator,.fusioni-connection-status{align-items:center;display:flex}.fusioni-connection-indicator{border-radius:var(--fusioni-radius);padding:.25rem;transition:var(--fusioni-transition)}.fusioni-connection-dot{border-radius:50%;height:8px;transition:var(--fusioni-transition);width:8px}.fusioni-connection-indicator.connected .fusioni-connection-dot{background:var(--fusioni-success);box-shadow:0 0 0 2px rgba(16,185,129,.2)}.fusioni-connection-indicator.disconnected .fusioni-connection-dot{background:var(--fusioni-text-muted);box-shadow:0 0 0 2px rgba(148,163,184,.2)}.fusioni-language-switcher{display:inline-block;position:relative}.fusioni-language-button{align-items:center;background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius-lg);color:var(--fusioni-text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;min-width:120px;padding:.5rem .75rem;transition:var(--fusioni-transition)}.fusioni-language-button:hover{background:var(--fusioni-bg-secondary);border-color:var(--fusioni-primary)}.fusioni-language-flag{font-size:1rem;line-height:1}.fusioni-language-name{flex:1;font-weight:500;text-align:left}.fusioni-language-arrow{transition:transform var(--fusioni-transition)}.fusioni-language-arrow.open{transform:rotate(180deg)}.fusioni-language-dropdown{background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow-lg);left:0;margin-top:.25rem;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}.fusioni-language-option{align-items:center;background:transparent;border:none;color:var(--fusioni-text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.75rem;text-align:left;transition:var(--fusioni-transition);width:100%}.fusioni-language-option:hover{background:var(--fusioni-bg-secondary)}.fusioni-language-option.active{background:var(--fusioni-primary);color:#fff}.fusioni-language-check{margin-left:auto;opacity:.8}.fusioni-chat-welcome{align-items:center;background:var(--fusioni-bg-primary);bottom:0;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;overflow:hidden;padding:3rem 2rem;position:absolute;right:0;top:0;width:100%}.fusioni-chat-widget:not(.dark) .fusioni-chat-welcome{background:linear-gradient(135deg,var(--fusioni-bg-accent) 0,var(--fusioni-bg-primary) 100%)}.fusioni-chat-welcome-content{box-sizing:border-box;margin:0 auto;max-width:320px;text-align:center;width:100%}.fusioni-chat-welcome-content h3{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,var(--fusioni-primary) 0,var(--fusioni-primary-light) 100%);-webkit-background-clip:text;background-clip:text;color:var(--fusioni-text-primary);font-size:1.5rem;font-weight:700;margin:0 0 1rem}.fusioni-chat-welcome-content p{color:var(--fusioni-text-secondary);font-size:1rem;line-height:1.6;margin:0 0 2rem}.fusioni-chat-error{background:var(--fusioni-error);border-radius:var(--fusioni-radius);color:#fff;margin:1rem;padding:1rem}.fusioni-chat-error p{margin:0 0 .5rem}.fusioni-chat-error button{background:transparent;border:1px solid #fff;border-radius:var(--fusioni-radius);color:#fff;cursor:pointer;padding:.25rem .5rem}.fusioni-spinner{animation:spin 1s linear infinite;border-top:2px solid var(--fusioni-border);border:2px solid var(--fusioni-border);border-radius:50%;border-top-color:var(--fusioni-primary);height:16px;width:16px}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}@keyframes recordingPulse{0%,to{box-shadow:0 0 5px rgba(239,68,68,.5)}50%{box-shadow:0 0 20px rgba(239,68,68,.8),0 0 30px rgba(239,68,68,.6)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes neuralPulse{0%,to{box-shadow:0 0 8px var(--fusioni-primary);opacity:.6;transform:scale(1)}50%{box-shadow:0 0 16px var(--fusioni-primary);opacity:1;transform:scale(1.5)}}@keyframes neuralFlow{0%{opacity:0;transform:scaleX(0)}50%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes aiPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes aiRotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes statusPulse{0%,to{box-shadow:0 0 4px var(--fusioni-success);opacity:1;transform:scale(1)}50%{box-shadow:0 0 8px var(--fusioni-success);opacity:.8;transform:scale(1.2)}}@keyframes newBadgePulse{0%,to{box-shadow:0 2px 8px rgba(217,119,6,.3);transform:scale(1)}50%{box-shadow:0 4px 16px rgba(217,119,6,.5);transform:scale(1.05)}}@keyframes newPulseRing{0%{opacity:.6;transform:scale(1)}50%{opacity:.2;transform:scale(1.3)}to{opacity:0;transform:scale(1.6)}}@keyframes dataFlow{0%{left:-100%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:100%;opacity:0}}@keyframes magneticHover{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}to{transform:translateY(-1px) scale(1.01)}}@keyframes neuralGlow{0%,to{filter:brightness(1) saturate(1)}50%{filter:brightness(1.2) saturate(1.3)}}@media (max-width:768px){.fusioni-chat-panel{height:calc(100vh - 1rem);max-height:none;max-width:none;width:calc(100vw - 1rem)}.fusioni-chat-panel-bottom-left,.fusioni-chat-panel-bottom-right,.fusioni-chat-panel-top-left,.fusioni-chat-panel-top-right{bottom:.5rem;height:calc(100vh - 1rem);top:.5rem}.fusioni-conversation-list{border-bottom:1px solid var(--fusioni-border);border-right:none;width:100%}.fusioni-chat-container{flex-direction:column}.fusioni-message-bubble:hover{transform:scale(1.01)}}.fusioni-conversations::-webkit-scrollbar,.fusioni-message-list::-webkit-scrollbar{width:6px}.fusioni-conversations::-webkit-scrollbar-track,.fusioni-message-list::-webkit-scrollbar-track{background:var(--fusioni-bg-tertiary)}.fusioni-conversations::-webkit-scrollbar-thumb,.fusioni-message-list::-webkit-scrollbar-thumb{background:var(--fusioni-text-muted);border-radius:3px}.fusioni-conversations::-webkit-scrollbar-thumb:hover,.fusioni-message-list::-webkit-scrollbar-thumb:hover{background:var(--fusioni-text-secondary)}.fusioni-url-preview{background:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius);box-shadow:var(--fusioni-shadow);margin:.5rem 0;overflow:hidden;transition:var(--fusioni-transition)}.fusioni-url-preview:hover{box-shadow:var(--fusioni-shadow-md);transform:translateY(-1px)}.fusioni-url-preview-compact{margin:.25rem 0}.fusioni-url-preview-loading{align-items:center;color:var(--fusioni-text-secondary);display:flex;font-size:.875rem;gap:.5rem;padding:.75rem}.fusioni-url-preview-spinner{animation:fusioni-spin 1s linear infinite;border-top:2px solid var(--fusioni-border);border:2px solid var(--fusioni-border);border-radius:50%;border-top-color:var(--fusioni-primary);height:16px;width:16px}@keyframes fusioni-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fusioni-url-preview-error{align-items:center;background:rgba(220,38,38,.05);color:var(--fusioni-error);display:flex;font-size:.875rem;justify-content:space-between;padding:.75rem}.fusioni-url-preview-content{position:relative}.fusioni-url-preview-close{align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:24px;justify-content:center;line-height:1;position:absolute;right:.5rem;top:.5rem;transition:var(--fusioni-transition);width:24px;z-index:10}.fusioni-url-preview-close:hover{background:rgba(0,0,0,.7)}.fusioni-url-preview-link{display:flex;transition:var(--fusioni-transition)}.fusioni-url-preview-link,.fusioni-url-preview-link:hover{color:inherit;text-decoration:none}.fusioni-url-preview-image{flex-shrink:0;height:80px;overflow:hidden;width:120px}.fusioni-url-preview-compact .fusioni-url-preview-image{height:60px;width:80px}.fusioni-url-preview-image img{height:100%;object-fit:cover;transition:var(--fusioni-transition);width:100%}.fusioni-url-preview-link:hover .fusioni-url-preview-image img{transform:scale(1.05)}.fusioni-url-preview-text{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-width:0;padding:.75rem}.fusioni-url-preview-compact .fusioni-url-preview-text{padding:.5rem}.fusioni-url-preview-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--fusioni-text-primary);display:-webkit-box;font-size:.875rem;font-weight:600;line-height:1.25;margin-bottom:.25rem;overflow:hidden}.fusioni-url-preview-compact .fusioni-url-preview-title{-webkit-line-clamp:1;line-clamp:1;font-size:.8125rem}.fusioni-url-preview-description{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--fusioni-text-secondary);display:-webkit-box;font-size:.8125rem;line-height:1.4;margin-bottom:.25rem;overflow:hidden}.fusioni-url-preview-compact .fusioni-url-preview-description{-webkit-line-clamp:1;line-clamp:1;font-size:.75rem}.fusioni-url-preview-domain{color:var(--fusioni-text-muted);font-size:.75rem;letter-spacing:.025em;text-transform:uppercase}.fusioni-message-url-previews{margin-top:.5rem}.fusioni-chat-widget.dark .fusioni-url-preview{background:var(--fusioni-bg-dark);border-color:var(--fusioni-border-dark)}.fusioni-chat-widget.dark .fusioni-url-preview-title{color:var(--fusioni-text-light)}.fusioni-chat-widget.dark .fusioni-url-preview-description{color:var(--fusioni-text-secondary)}.fusioni-chat-widget.dark .fusioni-url-preview-error{background:rgba(220,38,38,.1)}.fusioni-stream-messages{display:flex;flex-direction:column;gap:8px;margin-top:8px}.fusioni-stream-message-item{align-items:flex-start;display:flex;gap:8px}.fusioni-stream-message-logo-wrap{flex-shrink:0}.fusioni-stream-message-logo-frame{align-items:center;background:linear-gradient(to bottom right,#f3f4f6,#e5e7eb);border-radius:12px;box-shadow:var(--fusioni-shadow-lg);display:flex;height:32px;justify-content:center;overflow:hidden;width:32px}.fusioni-chat-widget.dark .fusioni-stream-message-logo-frame{background:linear-gradient(to bottom right,#1f2937,#111827)}.fusioni-stream-message-logo-img{animation:fusioni-spin 1s linear infinite;height:32px;margin:0;object-fit:contain;padding:4px;width:32px}.fusioni-stream-message-spotlight{margin-top:4px;min-width:0}.fusioni-spotlight{--mask-x:0%;--mask-y:50%;--text-spotlight-size:100px;display:block}.fusioni-spotlight-title{color:inherit;display:inline-block;position:relative}.fusioni-spotlight-text-base,.fusioni-spotlight-text-overlay,.fusioni-spotlight-title{font-family:inherit;font-size:16px;font-weight:inherit;letter-spacing:inherit;line-height:1.2}.fusioni-spotlight-text-base,.fusioni-spotlight-text-overlay{white-space:nowrap}.fusioni-spotlight-text-base{opacity:.2}.fusioni-spotlight-text-base,.fusioni-spotlight-text-overlay{-webkit-text-fill-color:transparent;background:currentColor;-webkit-background-clip:text;background-clip:text}.fusioni-spotlight-text-overlay{left:0;mask:radial-gradient(circle var(--text-spotlight-size) at var(--mask-x) var(--mask-y),#000 0,transparent 70%);-webkit-mask:radial-gradient(circle var(--text-spotlight-size) at var(--mask-x) var(--mask-y),#000 0,transparent 70%);opacity:1;pointer-events:none;position:absolute;top:0}@keyframes fusioni-dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.fusioni-chat-widget.dark .fusioni-conversation-item{background:var(--fusioni-bg-dark);border-color:var(--fusioni-border-dark)}.fusioni-chat-widget.dark .fusioni-conversation-item:before{background:linear-gradient(135deg,rgba(59,130,246,.05),rgba(37,99,235,.1) 50%,rgba(59,130,246,.05))}.fusioni-chat-widget.dark .fusioni-conversation-item:hover{background:var(--fusioni-bg-secondary);border-color:var(--fusioni-primary-light)}.fusioni-chat-widget.dark .fusioni-neural-node{background:var(--fusioni-primary-light);box-shadow:0 0 8px var(--fusioni-primary-light)}.fusioni-chat-widget.dark .fusioni-neural-connection{background:linear-gradient(90deg,transparent 0,var(--fusioni-primary-light) 50%,transparent 100%)}.fusioni-chat-widget.dark .fusioni-ai-core{color:var(--fusioni-primary-light)}.fusioni-chat-widget.dark .fusioni-ai-pulse-ring{border-color:var(--fusioni-primary-light)}.fusioni-chat-widget.dark .fusioni-data-stream{background:linear-gradient(90deg,transparent 0,var(--fusioni-primary-light) 20%,var(--fusioni-primary) 50%,var(--fusioni-primary-light) 80%,transparent 100%)}.fusioni-chat-widget.dark .fusioni-conversation-title-text{color:var(--fusioni-text-light)}.fusioni-chat-widget.dark .fusioni-conversation-status{color:var(--fusioni-text-secondary)}.fusioni-chat-widget.dark .fusioni-conversation-date{color:var(--fusioni-text-muted)}@media (prefers-reduced-motion:reduce){.fusioni-ai-core,.fusioni-ai-pulse-ring,.fusioni-conversation-item,.fusioni-data-stream,.fusioni-neural-connection,.fusioni-neural-node,.fusioni-new-badge,.fusioni-new-pulse,.fusioni-status-dot{animation:none!important;transition:none!important}.fusioni-conversation-item:hover{transform:none!important}}@media (prefers-contrast:high){.fusioni-conversation-item{border-width:2px}.fusioni-conversation-item.active{border-width:3px}.fusioni-ai-pulse-ring,.fusioni-neural-node,.fusioni-status-dot{border:1px solid;box-shadow:none}}.fusioni-conversation-item:focus-visible{outline:2px solid var(--fusioni-primary);outline-offset:2px}.fusioni-conversation-item.active:focus-visible{outline-color:#fff}.fusioni-conversation-item{contain:layout style paint;will-change:transform,box-shadow}.fusioni-ai-pulse-ring,.fusioni-data-stream,.fusioni-neural-connection,.fusioni-neural-node{contain:layout style paint;will-change:transform,opacity}.fusioni-ai-core,.fusioni-conversation-item,.fusioni-data-stream,.fusioni-neural-node{backface-visibility:hidden;perspective:1000px;transform:translateZ(0)}@keyframes attentionRingPulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes neuralParticleFloat{0%,to{opacity:0;transform:scale(.5) translateY(0)}25%{opacity:.6;transform:scale(1) translateY(-10px)}50%{opacity:1;transform:scale(1.2) translateY(-20px)}75%{opacity:.6;transform:scale(1) translateY(-10px)}}@keyframes brainActivityPulse{0%,to{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes brainCorePulse{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.7;transform:translate(-50%,-50%) scale(1.3)}}@keyframes attentionWaveExpand{0%{opacity:.8;transform:scale(.5)}50%{opacity:.4;transform:scale(1.2)}to{opacity:0;transform:scale(2)}}@keyframes periodicAttentionPulse{0%,90%{opacity:0;transform:scale(1)}95%{opacity:.6;transform:scale(1.3)}to{opacity:0;transform:scale(1.5)}}@keyframes enhancedGlowPulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:.4;transform:scale(1.1)}}@keyframes magneticFieldRotate{0%{opacity:.3;transform:rotate(0deg)}50%{opacity:.6}to{opacity:.3;transform:rotate(1turn)}}@keyframes floatingButtonEntrance{0%{transform:scale(1)}20%{transform:scale(6)}40%{transform:scale(1.1)}70%{transform:scale(.8)}to{transform:scale(1)}}@keyframes attentionSequenceTrigger{0%{opacity:0;transform:scale(.8)}20%{opacity:1;transform:scale(1.2)}40%{opacity:.8;transform:scale(1)}60%{opacity:1;transform:scale(1.1)}80%{opacity:.6;transform:scale(.9)}to{opacity:0;transform:scale(1)}}@keyframes floatingButtonHover{0%{transform:translateY(0) scale(1) rotate(0deg)}25%{transform:translateY(-3px) scale(1.05) rotate(1deg)}50%{transform:translateY(-5px) scale(1.08) rotate(0deg)}75%{transform:translateY(-2px) scale(1.03) rotate(-1deg)}to{transform:translateY(0) scale(1) rotate(0deg)}}@keyframes aiProcessingIndicator{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}@keyframes neuralConnectionFlow{0%{opacity:0;transform:scaleX(0)}20%{opacity:.8;transform:scaleX(.3)}50%{opacity:1;transform:scaleX(1)}80%{opacity:.8;transform:scaleX(.7)}to{opacity:0;transform:scaleX(0)}}.fusioni-floating-button-attention-active .fusioni-floating-button-attention-ring,.fusioni-floating-button-attention-active .fusioni-floating-button-attention-ring-2,.fusioni-floating-button-attention-active .fusioni-floating-button-attention-ring-3,.fusioni-floating-button-attention-active .fusioni-floating-button-attention-sequence,.fusioni-floating-button-attention-active .fusioni-floating-button-brain-activity,.fusioni-floating-button-attention-active .fusioni-floating-button-glow,.fusioni-floating-button-attention-active .fusioni-floating-button-magnetic-field,.fusioni-floating-button-attention-active .fusioni-floating-button-neural-particles,.fusioni-floating-button-attention-active .fusioni-floating-button-periodic-pulse{opacity:1}.fusioni-floating-button-entering{animation:floatingButtonEntrance 1.2s ease-in-out forwards}@media (prefers-reduced-motion:reduce){.fusioni-attention-wave,.fusioni-floating-button-attention-ring,.fusioni-floating-button-attention-ring-2,.fusioni-floating-button-attention-ring-3,.fusioni-floating-button-brain-activity,.fusioni-floating-button-glow,.fusioni-floating-button-magnetic-field,.fusioni-floating-button-periodic-pulse,.fusioni-floating-button:hover,.fusioni-neural-particle{animation:none!important}}.fusioni-dialog-backdrop{animation:fadeIn .2s ease-out;backdrop-filter:blur(4px);background-color:rgba(0,0,0,.5);z-index:9998}.fusioni-dialog-backdrop,.fusioni-dialog-container{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0}.fusioni-dialog-container{pointer-events:none;z-index:9999}.fusioni-dialog{animation:dialogSlideIn .3s cubic-bezier(.4,0,.2,1);background-color:var(--fusioni-bg-primary);border:1px solid var(--fusioni-border);border-radius:var(--fusioni-radius-lg);box-shadow:var(--fusioni-shadow-2xl);max-width:420px;overflow:hidden;pointer-events:auto;width:90%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fusioni-dialog-header{border-bottom:1px solid var(--fusioni-border);padding:1.5rem 1.5rem 1rem}.fusioni-dialog-title{color:var(--fusioni-text-primary);font-size:1.25rem;font-weight:600;line-height:1.5;margin:0}.fusioni-dialog-body{padding:1.5rem}.fusioni-dialog-message{color:var(--fusioni-text-secondary);font-size:.9375rem;line-height:1.6;margin:0}.fusioni-dialog-footer{border-top:1px solid var(--fusioni-border);display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem 1.5rem}.fusioni-dialog-cancel,.fusioni-dialog-confirm{min-width:80px}.fusioni-dialog-confirm-danger{background-color:var(--fusioni-error);border-color:var(--fusioni-error);color:var(--fusioni-text-light)}.fusioni-dialog-confirm-danger:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c;box-shadow:var(--fusioni-shadow-md);transform:translateY(-1px)}.fusioni-dialog-confirm-danger:active:not(:disabled){box-shadow:var(--fusioni-shadow);transform:translateY(0)}.fusioni-dialog-confirm-warning{background-color:var(--fusioni-warning);border-color:var(--fusioni-warning);color:var(--fusioni-text-light)}.fusioni-dialog-confirm-warning:hover:not(:disabled){background-color:#b45309;border-color:#b45309;box-shadow:var(--fusioni-shadow-md);transform:translateY(-1px)}.fusioni-dialog-confirm-info{background-color:var(--fusioni-info);border-color:var(--fusioni-info);color:var(--fusioni-text-light)}.fusioni-dialog-confirm-info:hover:not(:disabled){background-color:#0369a1;border-color:#0369a1;box-shadow:var(--fusioni-shadow-md);transform:translateY(-1px)}.fusioni-chat-widget.dark .fusioni-dialog{background-color:var(--fusioni-bg-secondary);border-color:var(--fusioni-border)}.fusioni-chat-widget.dark .fusioni-dialog-header{border-bottom-color:var(--fusioni-border)}.fusioni-chat-widget.dark .fusioni-dialog-footer{border-top-color:var(--fusioni-border)}.fusioni-image-gallery-overlay{--fusioni-ig-img-offset:8rem;align-items:stretch;animation:fusionImageGalleryFadeIn .2s ease-out;box-sizing:border-box;display:flex;flex-direction:column;inset:0;justify-content:flex-start;overflow:hidden;position:fixed;z-index:100000}.fusioni-image-gallery-overlay.fusioni-image-gallery-has-thumbs{--fusioni-ig-img-offset:14rem}.fusioni-image-gallery-body{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;width:100%}.fusioni-image-gallery-stage{align-items:center;display:flex;flex:1 1 0;justify-content:center;min-height:0;min-width:0;position:relative;width:100%}.fusioni-image-gallery-overlay.fusioni-image-gallery-theme-light{background:linear-gradient(180deg,#374151 0,#9ca3af)}.fusioni-image-gallery-overlay.fusioni-image-gallery-theme-dark{background:linear-gradient(180deg,#111827 0,#1f2937)}@keyframes fusionImageGalleryFadeIn{0%{opacity:0}to{opacity:1}}.fusioni-image-gallery-topbar{align-items:center;background:linear-gradient(180deg,rgba(0,0,0,.7),transparent);display:flex;justify-content:space-between;left:0;padding:.75rem 1rem;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.fusioni-image-gallery-topbar-spacer{width:2.5rem}.fusioni-image-gallery-counter{color:hsla(0,0%,100%,.9);font-size:.875rem;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:.025em}.fusioni-image-gallery-close{align-items:center;background-color:hsla(0,0%,100%,.1);border:none;border-radius:9999px;color:#fff;cursor:pointer;display:flex;height:2.5rem;justify-content:center;pointer-events:auto;transition:background-color .15s ease;width:2.5rem}.fusioni-image-gallery-close:hover{background-color:hsla(0,0%,100%,.2)}.fusioni-image-gallery-close:focus{outline:none}.fusioni-image-gallery-close:focus-visible{box-shadow:0 0 0 2px hsla(0,0%,100%,.5)}.fusioni-image-gallery-icon{height:1.25rem;width:1.25rem}.fusioni-image-gallery-icon-lg{height:2rem;width:2rem}.fusioni-image-gallery-content{align-items:center;box-sizing:border-box;display:flex;flex:1 1 0;justify-content:center;max-width:100%;min-height:0;min-width:0;padding:4rem 4.5rem;width:100%}.fusioni-image-gallery-img{animation:fusionImageGalleryZoomIn .25s ease-out;border-radius:.5rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.5);display:block;height:auto;max-height:calc(100vh - var(--fusioni-ig-img-offset, 8rem));max-height:calc(100dvh - var(--fusioni-ig-img-offset, 8rem));max-width:100%;object-fit:contain;width:auto}.fusioni-image-gallery-thumbs-wrap{box-sizing:border-box;flex:0 0 auto;margin:0 auto;max-height:12.5rem;max-width:min(100vw - 2rem,42rem);overflow:hidden;padding:0 1rem .75rem;width:100%}.fusioni-image-gallery-thumbs-wrap .fusioni-gallery-strip--lightbox .fusioni-gallery-strip-grid{gap:.5rem}.fusioni-image-gallery-thumbs-wrap .fusioni-gallery-strip--lightbox .fusioni-gallery-strip-cell{align-items:center;display:flex;justify-content:center;max-height:3.75rem}.fusioni-image-gallery-thumb{background:rgba(0,0,0,.35);border:2px solid transparent;border-radius:var(--fusioni-radius-md);box-sizing:border-box;cursor:pointer;display:block;flex-shrink:0;height:3.5rem;margin:0 auto;max-width:5.5rem;overflow:hidden;padding:0;transition:border-color .15s ease,transform .15s ease;width:100%}.fusioni-image-gallery-thumb:hover{border-color:hsla(0,0%,100%,.45)}.fusioni-image-gallery-thumb:focus{outline:none}.fusioni-image-gallery-thumb:focus-visible{box-shadow:0 0 0 2px hsla(0,0%,100%,.55)}.fusioni-image-gallery-thumb-selected{border-color:hsla(0,0%,100%,.9)}.fusioni-image-gallery-thumb img{display:block;height:100%;object-fit:cover;width:100%}.fusioni-image-gallery-thumbs-wrap .fusioni-gallery-strip-dots{margin-top:.5rem}@keyframes fusionImageGalleryZoomIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.fusioni-image-gallery-nav{align-items:center;background-color:hsla(0,0%,100%,.12);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:3rem;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:background-color .15s ease,transform .15s ease;width:3rem;z-index:10}.fusioni-image-gallery-nav:hover{background-color:hsla(0,0%,100%,.22);transform:translateY(-50%) scale(1.05)}.fusioni-image-gallery-nav:active{transform:translateY(-50%) scale(.98)}.fusioni-image-gallery-nav:focus{outline:none}.fusioni-image-gallery-nav:focus-visible{box-shadow:0 0 0 2px hsla(0,0%,100%,.5)}.fusioni-image-gallery-nav-prev{left:1rem}.fusioni-image-gallery-nav-next{right:1rem}@media (min-width:640px){.fusioni-image-gallery-nav{height:3.5rem;width:3.5rem}.fusioni-image-gallery-nav-prev{left:1.5rem}.fusioni-image-gallery-nav-next{right:1.5rem}}.fusioni-image.fusioni-image-clickable{cursor:pointer}.fusioni-image-clickable-wrap{background:none;border:none;border-radius:var(--fusioni-radius);cursor:pointer;display:block;margin:0;padding:0;text-align:left;width:100%}.fusioni-image-clickable-wrap:focus-visible{outline:2px solid var(--fusioni-primary);outline-offset:2px}.fusioni-gallery-strip{width:100%}.fusioni-gallery-strip-viewport{max-width:100%;overflow:hidden;width:100%}.fusioni-gallery-strip-track{display:flex;transition:margin-left .3s ease-in-out;width:100%}.fusioni-gallery-strip-page{box-sizing:border-box;flex:0 0 100%;max-width:100%;min-width:0}.fusioni-gallery-strip-grid{display:grid;gap:.75rem}.fusioni-gallery-strip-cell{min-width:0}.fusioni-gallery-strip-dots{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-top:1rem}.fusioni-gallery-strip-dot{border:none;border-radius:9999px;cursor:pointer;height:.625rem;padding:0;transition:background-color .15s ease,transform .15s ease;width:.625rem}.fusioni-gallery-strip--document .fusioni-gallery-strip-dot{background-color:#d1d5db}.fusioni-chat-widget.dark .fusioni-gallery-strip--document .fusioni-gallery-strip-dot{background-color:#475569}.fusioni-gallery-strip--document .fusioni-gallery-strip-dot-active{background-color:var(--fusioni-primary)}.fusioni-chat-widget.dark .fusioni-gallery-strip--document .fusioni-gallery-strip-dot-active{background-color:var(--fusioni-primary-light)}.fusioni-gallery-strip--lightbox .fusioni-gallery-strip-dot{background-color:hsla(0,0%,100%,.35)}.fusioni-gallery-strip--lightbox .fusioni-gallery-strip-dot-active{background-color:hsla(0,0%,100%,.95);transform:scale(1.15)}.fusioni-gallery-strip-dot:focus-visible{outline:2px solid var(--fusioni-primary);outline-offset:2px}.fusioni-gallery-strip--lightbox .fusioni-gallery-strip-dot:focus-visible{outline-color:hsla(0,0%,100%,.85)}.fusioni-document-images{margin-top:.25rem;max-width:100%;min-width:0;position:relative;width:100%}.fusioni-document-images-header{align-items:center;display:flex;justify-content:center;margin-bottom:.75rem;min-height:1.25rem;position:relative}.fusioni-document-images-header:before{background:var(--fusioni-border);content:"";height:1px;left:0;position:absolute;right:0;top:50%;z-index:0}.fusioni-chat-widget.dark .fusioni-document-images-header:before{background:hsla(0,0%,100%,.12)}.fusioni-document-images-header-label{align-items:center;background:var(--fusioni-bg-secondary);color:var(--fusioni-text-secondary);display:inline-flex;font-size:.8125rem;font-weight:600;gap:.375rem;padding:0 .625rem;position:relative;z-index:1}.fusioni-document-images-header-icon{flex-shrink:0;height:1rem;opacity:.9;width:1rem}.fusioni-document-image-btn{background:hsla(0,0%,100%,.4);border:1px solid rgba(0,0,0,.1);border-radius:var(--fusioni-radius-xl);box-shadow:var(--fusioni-shadow);cursor:pointer;display:block;overflow:hidden;padding:0;position:relative;transition:transform .2s ease,box-shadow .2s ease;width:100%}.fusioni-chat-widget.dark .fusioni-document-image-btn{background:hsla(0,0%,100%,.05);border-color:hsla(0,0%,100%,.1)}.fusioni-document-image-btn:hover{box-shadow:var(--fusioni-shadow-md);transform:translateY(-2px)}.fusioni-document-image-btn:focus{outline:none}.fusioni-document-image-btn:focus-visible{box-shadow:0 0 0 2px rgba(37,99,235,.5)}.fusioni-document-image-aspect{aspect-ratio:4/3;width:100%}.fusioni-document-image-aspect img{display:block;height:100%;object-fit:cover;transition:transform .2s ease;width:100%}.fusioni-document-image-btn:hover .fusioni-document-image-aspect img{transform:scale(1.02)}