rohit-chat-widget 1.0.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 (293) hide show
  1. package/README.md +455 -0
  2. package/lib/components/ChatContainer/ChatContainer.d.ts +10 -0
  3. package/lib/components/ChatContainer/ChatContainer.d.ts.map +1 -0
  4. package/lib/components/ChatContainer/ChatContainer.js +9 -0
  5. package/lib/components/ChatContainer/ChatContainer.js.map +1 -0
  6. package/lib/components/ChatContainer/index.d.ts +2 -0
  7. package/lib/components/ChatContainer/index.d.ts.map +1 -0
  8. package/lib/components/ChatContainer/index.js +2 -0
  9. package/lib/components/ChatContainer/index.js.map +1 -0
  10. package/lib/components/ChatHeader/ChatHeader.d.ts +12 -0
  11. package/lib/components/ChatHeader/ChatHeader.d.ts.map +1 -0
  12. package/lib/components/ChatHeader/ChatHeader.js +25 -0
  13. package/lib/components/ChatHeader/ChatHeader.js.map +1 -0
  14. package/lib/components/ChatHeader/index.d.ts +2 -0
  15. package/lib/components/ChatHeader/index.d.ts.map +1 -0
  16. package/lib/components/ChatHeader/index.js +2 -0
  17. package/lib/components/ChatHeader/index.js.map +1 -0
  18. package/lib/components/ChatWidget/ChatWidget.d.ts +13 -0
  19. package/lib/components/ChatWidget/ChatWidget.d.ts.map +1 -0
  20. package/lib/components/ChatWidget/ChatWidget.js +69 -0
  21. package/lib/components/ChatWidget/ChatWidget.js.map +1 -0
  22. package/lib/components/ChatWidget/index.d.ts +2 -0
  23. package/lib/components/ChatWidget/index.d.ts.map +1 -0
  24. package/lib/components/ChatWidget/index.js +2 -0
  25. package/lib/components/ChatWidget/index.js.map +1 -0
  26. package/lib/components/DropdownMenu/DropdownMenu.d.ts +16 -0
  27. package/lib/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  28. package/lib/components/DropdownMenu/DropdownMenu.js +78 -0
  29. package/lib/components/DropdownMenu/DropdownMenu.js.map +1 -0
  30. package/lib/components/DropdownMenu/index.d.ts +3 -0
  31. package/lib/components/DropdownMenu/index.d.ts.map +1 -0
  32. package/lib/components/DropdownMenu/index.js +2 -0
  33. package/lib/components/DropdownMenu/index.js.map +1 -0
  34. package/lib/components/ErrorBoundary/ErrorBoundary.d.ts +21 -0
  35. package/lib/components/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  36. package/lib/components/ErrorBoundary/ErrorBoundary.js +40 -0
  37. package/lib/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  38. package/lib/components/ErrorBoundary/index.d.ts +2 -0
  39. package/lib/components/ErrorBoundary/index.d.ts.map +1 -0
  40. package/lib/components/ErrorBoundary/index.js +2 -0
  41. package/lib/components/ErrorBoundary/index.js.map +1 -0
  42. package/lib/components/ErrorDisplay/ErrorDisplay.d.ts +9 -0
  43. package/lib/components/ErrorDisplay/ErrorDisplay.d.ts.map +1 -0
  44. package/lib/components/ErrorDisplay/ErrorDisplay.js +11 -0
  45. package/lib/components/ErrorDisplay/ErrorDisplay.js.map +1 -0
  46. package/lib/components/ErrorDisplay/index.d.ts +3 -0
  47. package/lib/components/ErrorDisplay/index.d.ts.map +1 -0
  48. package/lib/components/ErrorDisplay/index.js +3 -0
  49. package/lib/components/ErrorDisplay/index.js.map +1 -0
  50. package/lib/components/LoadingIndicator/LoadingIndicator.d.ts +10 -0
  51. package/lib/components/LoadingIndicator/LoadingIndicator.d.ts.map +1 -0
  52. package/lib/components/LoadingIndicator/LoadingIndicator.js +10 -0
  53. package/lib/components/LoadingIndicator/LoadingIndicator.js.map +1 -0
  54. package/lib/components/LoadingIndicator/index.d.ts +2 -0
  55. package/lib/components/LoadingIndicator/index.d.ts.map +1 -0
  56. package/lib/components/LoadingIndicator/index.js +3 -0
  57. package/lib/components/LoadingIndicator/index.js.map +1 -0
  58. package/lib/components/MenuButton/MenuButton.d.ts +10 -0
  59. package/lib/components/MenuButton/MenuButton.d.ts.map +1 -0
  60. package/lib/components/MenuButton/MenuButton.js +7 -0
  61. package/lib/components/MenuButton/MenuButton.js.map +1 -0
  62. package/lib/components/MenuButton/index.d.ts +2 -0
  63. package/lib/components/MenuButton/index.d.ts.map +1 -0
  64. package/lib/components/MenuButton/index.js +2 -0
  65. package/lib/components/MenuButton/index.js.map +1 -0
  66. package/lib/components/MenuItem/MenuItem.d.ts +12 -0
  67. package/lib/components/MenuItem/MenuItem.d.ts.map +1 -0
  68. package/lib/components/MenuItem/MenuItem.js +12 -0
  69. package/lib/components/MenuItem/MenuItem.js.map +1 -0
  70. package/lib/components/MenuItem/index.d.ts +2 -0
  71. package/lib/components/MenuItem/index.d.ts.map +1 -0
  72. package/lib/components/MenuItem/index.js +2 -0
  73. package/lib/components/MenuItem/index.js.map +1 -0
  74. package/lib/components/MessageBubble/MessageBubble.d.ts +17 -0
  75. package/lib/components/MessageBubble/MessageBubble.d.ts.map +1 -0
  76. package/lib/components/MessageBubble/MessageBubble.js +111 -0
  77. package/lib/components/MessageBubble/MessageBubble.js.map +1 -0
  78. package/lib/components/MessageBubble/index.d.ts +2 -0
  79. package/lib/components/MessageBubble/index.d.ts.map +1 -0
  80. package/lib/components/MessageBubble/index.js +2 -0
  81. package/lib/components/MessageBubble/index.js.map +1 -0
  82. package/lib/components/MessageInput/MessageInput.d.ts +9 -0
  83. package/lib/components/MessageInput/MessageInput.d.ts.map +1 -0
  84. package/lib/components/MessageInput/MessageInput.js +75 -0
  85. package/lib/components/MessageInput/MessageInput.js.map +1 -0
  86. package/lib/components/MessageInput/index.d.ts +2 -0
  87. package/lib/components/MessageInput/index.d.ts.map +1 -0
  88. package/lib/components/MessageInput/index.js +2 -0
  89. package/lib/components/MessageInput/index.js.map +1 -0
  90. package/lib/components/MessageList/MessageList.d.ts +21 -0
  91. package/lib/components/MessageList/MessageList.d.ts.map +1 -0
  92. package/lib/components/MessageList/MessageList.js +61 -0
  93. package/lib/components/MessageList/MessageList.js.map +1 -0
  94. package/lib/components/MessageList/index.d.ts +2 -0
  95. package/lib/components/MessageList/index.d.ts.map +1 -0
  96. package/lib/components/MessageList/index.js +2 -0
  97. package/lib/components/MessageList/index.js.map +1 -0
  98. package/lib/components/StatusIndicator/StatusIndicator.d.ts +10 -0
  99. package/lib/components/StatusIndicator/StatusIndicator.d.ts.map +1 -0
  100. package/lib/components/StatusIndicator/StatusIndicator.js +19 -0
  101. package/lib/components/StatusIndicator/StatusIndicator.js.map +1 -0
  102. package/lib/components/StatusIndicator/index.d.ts +2 -0
  103. package/lib/components/StatusIndicator/index.d.ts.map +1 -0
  104. package/lib/components/StatusIndicator/index.js +2 -0
  105. package/lib/components/StatusIndicator/index.js.map +1 -0
  106. package/lib/components/index.d.ts +21 -0
  107. package/lib/components/index.d.ts.map +1 -0
  108. package/lib/components/index.js +13 -0
  109. package/lib/components/index.js.map +1 -0
  110. package/lib/config/api.d.ts +79 -0
  111. package/lib/config/api.d.ts.map +1 -0
  112. package/lib/config/api.js +10 -0
  113. package/lib/config/api.js.map +1 -0
  114. package/lib/config/constants.d.ts +5 -0
  115. package/lib/config/constants.d.ts.map +1 -0
  116. package/lib/config/constants.js +5 -0
  117. package/lib/config/constants.js.map +1 -0
  118. package/lib/hooks/index.d.ts +2 -0
  119. package/lib/hooks/index.d.ts.map +1 -0
  120. package/lib/hooks/index.js +2 -0
  121. package/lib/hooks/index.js.map +1 -0
  122. package/lib/hooks/useChatInit.d.ts +21 -0
  123. package/lib/hooks/useChatInit.d.ts.map +1 -0
  124. package/lib/hooks/useChatInit.js +66 -0
  125. package/lib/hooks/useChatInit.js.map +1 -0
  126. package/lib/index.d.ts +14 -0
  127. package/lib/index.d.ts.map +1 -0
  128. package/lib/index.esm.js +21148 -0
  129. package/lib/index.esm.js.map +1 -0
  130. package/lib/index.js +16 -0
  131. package/lib/index.js.map +1 -0
  132. package/lib/services/acs/acsClient.d.ts +29 -0
  133. package/lib/services/acs/acsClient.d.ts.map +1 -0
  134. package/lib/services/acs/acsClient.js +101 -0
  135. package/lib/services/acs/acsClient.js.map +1 -0
  136. package/lib/services/acs/index.d.ts +2 -0
  137. package/lib/services/acs/index.d.ts.map +1 -0
  138. package/lib/services/acs/index.js +2 -0
  139. package/lib/services/acs/index.js.map +1 -0
  140. package/lib/services/api/backendApi.d.ts +842 -0
  141. package/lib/services/api/backendApi.d.ts.map +1 -0
  142. package/lib/services/api/backendApi.js +70 -0
  143. package/lib/services/api/backendApi.js.map +1 -0
  144. package/lib/services/api/index.d.ts +3 -0
  145. package/lib/services/api/index.d.ts.map +1 -0
  146. package/lib/services/api/index.js +3 -0
  147. package/lib/services/api/index.js.map +1 -0
  148. package/lib/services/chatService.d.ts +51 -0
  149. package/lib/services/chatService.d.ts.map +1 -0
  150. package/lib/services/chatService.js +232 -0
  151. package/lib/services/chatService.js.map +1 -0
  152. package/lib/services/index.d.ts +4 -0
  153. package/lib/services/index.d.ts.map +1 -0
  154. package/lib/services/index.js +4 -0
  155. package/lib/services/index.js.map +1 -0
  156. package/lib/src/components/ChatContainer/ChatContainer.d.ts +10 -0
  157. package/lib/src/components/ChatContainer/ChatContainer.d.ts.map +1 -0
  158. package/lib/src/components/ChatContainer/index.d.ts +2 -0
  159. package/lib/src/components/ChatContainer/index.d.ts.map +1 -0
  160. package/lib/src/components/ChatHeader/ChatHeader.d.ts +12 -0
  161. package/lib/src/components/ChatHeader/ChatHeader.d.ts.map +1 -0
  162. package/lib/src/components/ChatHeader/index.d.ts +2 -0
  163. package/lib/src/components/ChatHeader/index.d.ts.map +1 -0
  164. package/lib/src/components/ChatWidget/ChatWidget.d.ts +13 -0
  165. package/lib/src/components/ChatWidget/ChatWidget.d.ts.map +1 -0
  166. package/lib/src/components/ChatWidget/index.d.ts +2 -0
  167. package/lib/src/components/ChatWidget/index.d.ts.map +1 -0
  168. package/lib/src/components/DropdownMenu/DropdownMenu.d.ts +16 -0
  169. package/lib/src/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  170. package/lib/src/components/DropdownMenu/index.d.ts +3 -0
  171. package/lib/src/components/DropdownMenu/index.d.ts.map +1 -0
  172. package/lib/src/components/ErrorBoundary/ErrorBoundary.d.ts +21 -0
  173. package/lib/src/components/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  174. package/lib/src/components/ErrorBoundary/index.d.ts +2 -0
  175. package/lib/src/components/ErrorBoundary/index.d.ts.map +1 -0
  176. package/lib/src/components/ErrorDisplay/ErrorDisplay.d.ts +9 -0
  177. package/lib/src/components/ErrorDisplay/ErrorDisplay.d.ts.map +1 -0
  178. package/lib/src/components/ErrorDisplay/index.d.ts +3 -0
  179. package/lib/src/components/ErrorDisplay/index.d.ts.map +1 -0
  180. package/lib/src/components/LoadingIndicator/LoadingIndicator.d.ts +10 -0
  181. package/lib/src/components/LoadingIndicator/LoadingIndicator.d.ts.map +1 -0
  182. package/lib/src/components/LoadingIndicator/index.d.ts +2 -0
  183. package/lib/src/components/LoadingIndicator/index.d.ts.map +1 -0
  184. package/lib/src/components/MenuButton/MenuButton.d.ts +10 -0
  185. package/lib/src/components/MenuButton/MenuButton.d.ts.map +1 -0
  186. package/lib/src/components/MenuButton/index.d.ts +2 -0
  187. package/lib/src/components/MenuButton/index.d.ts.map +1 -0
  188. package/lib/src/components/MenuItem/MenuItem.d.ts +12 -0
  189. package/lib/src/components/MenuItem/MenuItem.d.ts.map +1 -0
  190. package/lib/src/components/MenuItem/index.d.ts +2 -0
  191. package/lib/src/components/MenuItem/index.d.ts.map +1 -0
  192. package/lib/src/components/MessageBubble/MessageBubble.d.ts +17 -0
  193. package/lib/src/components/MessageBubble/MessageBubble.d.ts.map +1 -0
  194. package/lib/src/components/MessageBubble/index.d.ts +2 -0
  195. package/lib/src/components/MessageBubble/index.d.ts.map +1 -0
  196. package/lib/src/components/MessageInput/MessageInput.d.ts +9 -0
  197. package/lib/src/components/MessageInput/MessageInput.d.ts.map +1 -0
  198. package/lib/src/components/MessageInput/index.d.ts +2 -0
  199. package/lib/src/components/MessageInput/index.d.ts.map +1 -0
  200. package/lib/src/components/MessageList/MessageList.d.ts +21 -0
  201. package/lib/src/components/MessageList/MessageList.d.ts.map +1 -0
  202. package/lib/src/components/MessageList/index.d.ts +2 -0
  203. package/lib/src/components/MessageList/index.d.ts.map +1 -0
  204. package/lib/src/components/StatusIndicator/StatusIndicator.d.ts +10 -0
  205. package/lib/src/components/StatusIndicator/StatusIndicator.d.ts.map +1 -0
  206. package/lib/src/components/StatusIndicator/index.d.ts +2 -0
  207. package/lib/src/components/StatusIndicator/index.d.ts.map +1 -0
  208. package/lib/src/components/index.d.ts +21 -0
  209. package/lib/src/components/index.d.ts.map +1 -0
  210. package/lib/src/config/api.d.ts +79 -0
  211. package/lib/src/config/api.d.ts.map +1 -0
  212. package/lib/src/config/constants.d.ts +5 -0
  213. package/lib/src/config/constants.d.ts.map +1 -0
  214. package/lib/src/hooks/index.d.ts +2 -0
  215. package/lib/src/hooks/index.d.ts.map +1 -0
  216. package/lib/src/hooks/useChatInit.d.ts +21 -0
  217. package/lib/src/hooks/useChatInit.d.ts.map +1 -0
  218. package/lib/src/index.d.ts +14 -0
  219. package/lib/src/index.d.ts.map +1 -0
  220. package/lib/src/services/acs/acsClient.d.ts +29 -0
  221. package/lib/src/services/acs/acsClient.d.ts.map +1 -0
  222. package/lib/src/services/acs/index.d.ts +2 -0
  223. package/lib/src/services/acs/index.d.ts.map +1 -0
  224. package/lib/src/services/api/backendApi.d.ts +842 -0
  225. package/lib/src/services/api/backendApi.d.ts.map +1 -0
  226. package/lib/src/services/api/index.d.ts +3 -0
  227. package/lib/src/services/api/index.d.ts.map +1 -0
  228. package/lib/src/services/chatService.d.ts +51 -0
  229. package/lib/src/services/chatService.d.ts.map +1 -0
  230. package/lib/src/services/index.d.ts +4 -0
  231. package/lib/src/services/index.d.ts.map +1 -0
  232. package/lib/src/store/index.d.ts +36 -0
  233. package/lib/src/store/index.d.ts.map +1 -0
  234. package/lib/src/store/slices/index.d.ts +5 -0
  235. package/lib/src/store/slices/index.d.ts.map +1 -0
  236. package/lib/src/store/slices/messagesSlice.d.ts +73 -0
  237. package/lib/src/store/slices/messagesSlice.d.ts.map +1 -0
  238. package/lib/src/store/slices/threadSlice.d.ts +42 -0
  239. package/lib/src/store/slices/threadSlice.d.ts.map +1 -0
  240. package/lib/src/store/store.d.ts +36 -0
  241. package/lib/src/store/store.d.ts.map +1 -0
  242. package/lib/src/types/index.d.ts +29 -0
  243. package/lib/src/types/index.d.ts.map +1 -0
  244. package/lib/src/utils/dateUtils.d.ts +13 -0
  245. package/lib/src/utils/dateUtils.d.ts.map +1 -0
  246. package/lib/src/utils/index.d.ts +4 -0
  247. package/lib/src/utils/index.d.ts.map +1 -0
  248. package/lib/src/utils/styleManager.d.ts +45 -0
  249. package/lib/src/utils/styleManager.d.ts.map +1 -0
  250. package/lib/src/utils/validation.d.ts +17 -0
  251. package/lib/src/utils/validation.d.ts.map +1 -0
  252. package/lib/store/index.d.ts +36 -0
  253. package/lib/store/index.d.ts.map +1 -0
  254. package/lib/store/index.js +9 -0
  255. package/lib/store/index.js.map +1 -0
  256. package/lib/store/slices/index.d.ts +5 -0
  257. package/lib/store/slices/index.d.ts.map +1 -0
  258. package/lib/store/slices/index.js +7 -0
  259. package/lib/store/slices/index.js.map +1 -0
  260. package/lib/store/slices/messagesSlice.d.ts +73 -0
  261. package/lib/store/slices/messagesSlice.d.ts.map +1 -0
  262. package/lib/store/slices/messagesSlice.js +81 -0
  263. package/lib/store/slices/messagesSlice.js.map +1 -0
  264. package/lib/store/slices/threadSlice.d.ts +42 -0
  265. package/lib/store/slices/threadSlice.d.ts.map +1 -0
  266. package/lib/store/slices/threadSlice.js +54 -0
  267. package/lib/store/slices/threadSlice.js.map +1 -0
  268. package/lib/store/store.d.ts +36 -0
  269. package/lib/store/store.d.ts.map +1 -0
  270. package/lib/store/store.js +17 -0
  271. package/lib/store/store.js.map +1 -0
  272. package/lib/styles.css +3534 -0
  273. package/lib/types/index.d.ts +29 -0
  274. package/lib/types/index.d.ts.map +1 -0
  275. package/lib/types/index.js +2 -0
  276. package/lib/types/index.js.map +1 -0
  277. package/lib/utils/dateUtils.d.ts +13 -0
  278. package/lib/utils/dateUtils.d.ts.map +1 -0
  279. package/lib/utils/dateUtils.js +33 -0
  280. package/lib/utils/dateUtils.js.map +1 -0
  281. package/lib/utils/index.d.ts +4 -0
  282. package/lib/utils/index.d.ts.map +1 -0
  283. package/lib/utils/index.js +5 -0
  284. package/lib/utils/index.js.map +1 -0
  285. package/lib/utils/styleManager.d.ts +45 -0
  286. package/lib/utils/styleManager.d.ts.map +1 -0
  287. package/lib/utils/styleManager.js +69 -0
  288. package/lib/utils/styleManager.js.map +1 -0
  289. package/lib/utils/validation.d.ts +17 -0
  290. package/lib/utils/validation.d.ts.map +1 -0
  291. package/lib/utils/validation.js +32 -0
  292. package/lib/utils/validation.js.map +1 -0
  293. package/package.json +93 -0
package/lib/styles.css ADDED
@@ -0,0 +1,3534 @@
1
+ :root {
2
+ --chat-primary-color: #FA5B4C;
3
+ --chat-primary-color-rgb: 250, 91, 76;
4
+ --chat-bg-color: #ffffff;
5
+ --chat-secondary-color: #f5f5f5;
6
+ --message-user-bg: var(--chat-primary-color);
7
+ --message-user-text: #ffffff;
8
+ --message-agent-bg: var(--chat-secondary-color);
9
+ --message-agent-text: #333333;
10
+ --header-bg: var(--chat-bg-color);
11
+ --header-text: #333333;
12
+ --header-border: #e0e0e0;
13
+ --input-bg: var(--chat-bg-color);
14
+ --input-border: #e0e0e0;
15
+ --input-focus-border: var(--chat-primary-color);
16
+ --input-text: #333333;
17
+ --input-placeholder: #999999;
18
+ --button-primary-bg: var(--chat-primary-color);
19
+ --button-primary-text: #ffffff;
20
+ --button-hover-opacity: 0.9;
21
+ --status-online: #4caf50;
22
+ --status-offline: #9e9e9e;
23
+ --status-typing: #ff9800;
24
+ --text-primary: #333333;
25
+ --text-secondary: #666666;
26
+ --text-muted: #999999;
27
+ --border-light: #e0e0e0;
28
+ --shadow-light: rgba(0, 0, 0, 0.1);
29
+ --shadow-medium: rgba(0, 0, 0, 0.15);
30
+ --spacing-xs: 4px;
31
+ --spacing-sm: 8px;
32
+ --spacing-md: 12px;
33
+ --spacing-lg: 16px;
34
+ --spacing-xl: 20px;
35
+ --spacing-xxl: 24px;
36
+ --radius-sm: 4px;
37
+ --radius-md: 8px;
38
+ --radius-lg: 12px;
39
+ --radius-xl: 16px;
40
+ --radius-full: 50%;
41
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
42
+ --font-size-xs: 11px;
43
+ --font-size-sm: 12px;
44
+ --font-size-md: 14px;
45
+ --font-size-lg: 16px;
46
+ --font-weight-normal: 400;
47
+ --font-weight-medium: 500;
48
+ --font-weight-semibold: 600;
49
+ --transition-fast: 0.15s ease-in-out;
50
+ --transition-normal: 0.3s ease-in-out;
51
+ --widget-min-width: 300px;
52
+ --widget-min-height: 400px;
53
+ --widget-mobile-min-width: 280px;
54
+ --widget-mobile-min-height: 350px;
55
+ --widget-mobile-max-width: 350px;
56
+ --widget-mobile-max-height: 500px;
57
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
58
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
59
+ --state-initializing-bg: #f8f9fa;
60
+ --state-initializing-text: #6c757d;
61
+ --state-error-bg: #fff5f5;
62
+ --state-error-border: #fed7d7;
63
+ --state-error-title: #e53e3e;
64
+ --state-error-text: #744210;
65
+ --state-error-details-bg: #f7f7f7;
66
+ --state-waiting-bg: #f0f8ff;
67
+ --state-waiting-text: #4a90e2;
68
+ --spinner-size: 40px;
69
+ --spinner-border-width: 3px;
70
+ --toggle-button-size: 60px;
71
+ --toggle-icon-size: 24px;
72
+ --mobile-breakpoint: 768px;
73
+ --mobile-spacing: 10px;
74
+ --mobile-offset: 20px;
75
+ --mobile-top-offset: 100px;
76
+ --input-height: 48px;
77
+ --input-disabled-opacity: 0.6;
78
+ --header-height: 63px;
79
+ --text-input: #1F2937;
80
+ --text-powered-by: #6B7280;
81
+ --text-encrypted: #6B7280;
82
+ --dropdown-min-width: 200px;
83
+ --dropdown-max-width: 280px;
84
+ --dropdown-mobile-max-width: 250px;
85
+ --dropdown-offset: 12px;
86
+ --dropdown-z-index: 1000;
87
+ --status-dot-size: 8px;
88
+ --status-typing-width: 12px;
89
+ --status-typing-height: 8px;
90
+ --status-typing-dot-size: 2px;
91
+ --status-typing-gap: 1px;
92
+ --menu-item-padding-vertical: 14px;
93
+ --menu-item-padding-horizontal: 20px;
94
+ --menu-item-min-height: 44px;
95
+ --menu-item-icon-size: 20px;
96
+ --menu-item-icon-svg-size: 18px;
97
+ --menu-item-icon-margin: 16px;
98
+ --menu-item-disabled-opacity: 0.5;
99
+ --menu-item-text: #333333;
100
+ --menu-item-icon: #666666;
101
+ --menu-item-hover-bg: #f5f5f5;
102
+ --menu-item-active-bg: #e8e8e8;
103
+ --menu-item-destructive: #f44336;
104
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
105
+ --animation-slide-distance: 10px;
106
+ --empty-state-mobile-height: 150px;
107
+ }
108
+
109
+ .chatWidget {
110
+ color-scheme: light !important;
111
+ background-color: var(--chat-bg-color);
112
+ color: var(--text-primary);
113
+ }
114
+ .chatWidget * {
115
+ box-sizing: border-box;
116
+ }
117
+ .chatWidget *, .chatWidget *::before, .chatWidget *::after {
118
+ color-scheme: light !important;
119
+ }
120
+
121
+ .chatWidget {
122
+ position: relative;
123
+ width: 100%;
124
+ height: 100%;
125
+ min-width: var(--widget-min-width);
126
+ min-height: var(--widget-min-height);
127
+ font-family: var(--font-family);
128
+ display: flex;
129
+ flex-direction: column;
130
+ align-items: stretch;
131
+ justify-content: stretch;
132
+ overflow: visible;
133
+ min-height: 0;
134
+ }
135
+
136
+ .chatWindow {
137
+ width: 100%;
138
+ flex: 1 1 auto;
139
+ min-width: var(--widget-min-width);
140
+ min-height: var(--widget-min-height);
141
+ background: var(--chat-bg-color);
142
+ border-radius: var(--radius-lg);
143
+ box-shadow: var(--shadow-widget);
144
+ display: flex;
145
+ flex-direction: column;
146
+ overflow: hidden;
147
+ border: 1px solid var(--border-light);
148
+ position: relative;
149
+ }
150
+
151
+ .initializingState,
152
+ .errorState,
153
+ .waitingState {
154
+ width: 100%;
155
+ height: 100%;
156
+ min-width: var(--widget-min-width);
157
+ min-height: var(--widget-min-height);
158
+ background: var(--chat-bg-color);
159
+ border-radius: var(--radius-lg);
160
+ box-shadow: var(--shadow-widget);
161
+ display: flex;
162
+ flex-direction: column;
163
+ align-items: center;
164
+ justify-content: center;
165
+ text-align: center;
166
+ padding: var(--spacing-xl);
167
+ border: 1px solid var(--border-light);
168
+ }
169
+
170
+ .initializingState {
171
+ background: var(--state-initializing-bg);
172
+ }
173
+
174
+ .errorState {
175
+ background: var(--state-error-bg);
176
+ border-color: var(--state-error-border);
177
+ }
178
+ .errorState h3 {
179
+ margin: 0 0 var(--spacing-sm) 0;
180
+ color: var(--state-error-title);
181
+ font-size: var(--font-size-lg);
182
+ font-weight: var(--font-weight-semibold);
183
+ }
184
+ .errorState p {
185
+ margin: var(--spacing-xs) 0;
186
+ color: var(--state-error-text);
187
+ font-size: var(--font-size-md);
188
+ line-height: 1.4;
189
+ }
190
+
191
+ .errorDetails {
192
+ font-family: monospace;
193
+ font-size: var(--font-size-sm) !important;
194
+ color: var(--text-muted) !important;
195
+ margin-top: var(--spacing-lg) !important;
196
+ padding: var(--spacing-sm);
197
+ background: var(--state-error-details-bg);
198
+ border-radius: var(--radius-sm);
199
+ max-height: 100px;
200
+ overflow-y: auto;
201
+ }
202
+
203
+ .waitingState {
204
+ background: var(--state-waiting-bg);
205
+ }
206
+ .waitingState p {
207
+ margin: 0;
208
+ color: var(--state-waiting-text);
209
+ font-size: var(--font-size-md);
210
+ }
211
+
212
+ .spinner {
213
+ width: var(--spinner-size);
214
+ height: var(--spinner-size);
215
+ border: var(--spinner-border-width) solid var(--chat-secondary-color);
216
+ border-top: var(--spinner-border-width) solid var(--chat-primary-color);
217
+ border-radius: var(--radius-full);
218
+ animation: spin 1s linear infinite;
219
+ }
220
+
221
+ @keyframes spin {
222
+ 0% {
223
+ transform: rotate(0deg);
224
+ }
225
+ 100% {
226
+ transform: rotate(360deg);
227
+ }
228
+ }
229
+ .chatToggle {
230
+ width: var(--toggle-button-size);
231
+ height: var(--toggle-button-size);
232
+ border-radius: var(--radius-full);
233
+ background: var(--button-primary-bg);
234
+ border: none;
235
+ cursor: pointer;
236
+ display: flex;
237
+ align-items: center;
238
+ justify-content: center;
239
+ box-shadow: var(--shadow-button);
240
+ transition: var(--transition-normal);
241
+ }
242
+ .chatToggle:hover {
243
+ background: var(--button-primary-bg);
244
+ opacity: var(--button-hover-opacity);
245
+ transform: scale(1.05);
246
+ }
247
+
248
+ .chatIcon {
249
+ font-size: var(--toggle-icon-size);
250
+ color: var(--button-primary-text);
251
+ }
252
+
253
+ @media (max-width: var(--mobile-breakpoint)) {
254
+ .chatWidget {
255
+ bottom: var(--mobile-spacing);
256
+ right: var(--mobile-spacing);
257
+ min-width: var(--widget-mobile-min-width);
258
+ min-height: var(--widget-mobile-min-height);
259
+ }
260
+ .chatWindow {
261
+ width: calc(100vw - var(--mobile-offset));
262
+ height: calc(100vh - var(--mobile-top-offset));
263
+ overflow: hidden;
264
+ flex: 1 1 auto;
265
+ min-height: 0;
266
+ min-height: var(--widget-mobile-min-height);
267
+ max-width: var(--widget-mobile-max-width);
268
+ max-height: var(--widget-mobile-max-height);
269
+ }
270
+ .initializingState,
271
+ .errorState,
272
+ .waitingState {
273
+ min-width: var(--widget-mobile-min-width);
274
+ min-height: var(--widget-mobile-min-height);
275
+ }
276
+ }
277
+ .chatHeader {
278
+ background-color: var(--header-bg);
279
+ border-bottom: 1px solid var(--header-border);
280
+ padding: var(--spacing-md) var(--spacing-lg);
281
+ height: 63px;
282
+ box-sizing: border-box;
283
+ width: 100%;
284
+ }
285
+
286
+ .headerContent {
287
+ display: flex;
288
+ align-items: center;
289
+ justify-content: space-between;
290
+ height: 100%;
291
+ }
292
+
293
+ .leftSection {
294
+ display: flex;
295
+ align-items: center;
296
+ gap: var(--spacing-md);
297
+ color: var(--chat-primary-color);
298
+ }
299
+
300
+ .leftSection svg {
301
+ background-color: rgba(var(--chat-primary-color-rgb), 0.1);
302
+ border-radius: var(--radius-sm, 4px);
303
+ padding: var(--spacing-sm);
304
+ width: 32px;
305
+ height: 32px;
306
+ box-sizing: border-box;
307
+ transition: transform 160ms ease, background-color 160ms ease, opacity 160ms ease;
308
+ }
309
+
310
+ .title {
311
+ font-size: var(--font-size-lg);
312
+ font-weight: var(--font-weight-semibold);
313
+ color: var(--header-text);
314
+ margin: 0;
315
+ line-height: var(--spacing-xxl);
316
+ }
317
+
318
+ .headerActions {
319
+ display: flex;
320
+ align-items: center;
321
+ margin-left: auto;
322
+ }
323
+
324
+ .menuButtonContainer {
325
+ position: relative;
326
+ }
327
+
328
+ .actionButton {
329
+ background-color: rgba(var(--chat-primary-color-rgb), 0.1);
330
+ border: none;
331
+ padding: var(--spacing-sm);
332
+ margin-right: var(--spacing-xs);
333
+ cursor: pointer;
334
+ display: flex;
335
+ align-items: center;
336
+ justify-content: center;
337
+ width: 32px;
338
+ height: 32px;
339
+ border-radius: var(--radius-sm, 4px);
340
+ color: var(--chat-primary-color);
341
+ transition: transform 160ms ease, background-color 160ms ease, opacity 160ms ease;
342
+ }
343
+
344
+ .actionButton:hover {
345
+ opacity: 1;
346
+ transform: scale(1.06);
347
+ background-color: rgba(var(--chat-primary-color-rgb), 0.12);
348
+ }
349
+
350
+ .leftSection svg:hover {
351
+ opacity: 1;
352
+ transform: scale(1.06);
353
+ }
354
+
355
+ .menuButtonContainer button svg,
356
+ .headerActions button svg {
357
+ transition: opacity 160ms ease, transform 160ms ease;
358
+ }
359
+
360
+ .chatContainer {
361
+ display: flex;
362
+ flex-direction: column;
363
+ height: 100%;
364
+ background-color: #FFFFFF;
365
+ overflow: hidden;
366
+ }
367
+ .chatContainer .chat-header {
368
+ flex-shrink: 0;
369
+ height: 63px;
370
+ }
371
+ .chatContainer .messagesSection {
372
+ flex: 1 1 auto;
373
+ min-height: 0;
374
+ position: relative;
375
+ overflow: hidden;
376
+ }
377
+ .chatContainer .disclaimer {
378
+ flex-shrink: 0;
379
+ padding: 8px 16px;
380
+ font-size: 12px;
381
+ color: #6B7280; /* gray-500 */
382
+ text-align: center;
383
+ }
384
+ .chatContainer .chatInputWrapper {
385
+ flex-shrink: 0;
386
+ background: #FFFFFF;
387
+ padding: 16px;
388
+ border-top: 1px solid #E5E7EB;
389
+ }
390
+
391
+ .messageList {
392
+ height: 100%;
393
+ position: relative;
394
+ min-height: 0;
395
+ overflow: auto;
396
+ scrollbar-width: none; /* Firefox */
397
+ -ms-overflow-style: none; /* IE and Edge */
398
+ scroll-behavior: smooth;
399
+ padding: 16px;
400
+ }
401
+ .messageList::-webkit-scrollbar {
402
+ display: none; /* Chrome, Safari and Opera */
403
+ }
404
+
405
+ .loadingOverlay {
406
+ position: absolute;
407
+ top: 0;
408
+ left: 0;
409
+ right: 0;
410
+ bottom: 0;
411
+ background: rgba(255, 255, 255, 0.9);
412
+ display: flex;
413
+ align-items: center;
414
+ justify-content: center;
415
+ z-index: 1;
416
+ }
417
+
418
+ .messagesContainer {
419
+ display: flex;
420
+ flex-direction: column;
421
+ gap: 12px;
422
+ width: 100%;
423
+ padding-bottom: 16px;
424
+ overflow-y: auto;
425
+ -ms-overflow-style: none; /* IE and Edge */
426
+ scrollbar-width: none; /* Firefox */
427
+ }
428
+ .messagesContainer::-webkit-scrollbar {
429
+ display: none;
430
+ }
431
+ .messagesContainer {
432
+ flex: 1 1 auto;
433
+ }
434
+
435
+ .messageBubbleWrapper {
436
+ animation: messageSlideIn 0.3s ease-out;
437
+ }
438
+
439
+ .messagesEnd {
440
+ height: 1px;
441
+ flex-shrink: 0;
442
+ }
443
+
444
+ .emptyState {
445
+ display: flex;
446
+ flex-direction: column;
447
+ align-items: center;
448
+ justify-content: center;
449
+ height: 200px;
450
+ text-align: center;
451
+ opacity: 0.6;
452
+ }
453
+
454
+ .emptyIcon {
455
+ font-size: 48px;
456
+ margin-bottom: var(--spacing-md);
457
+ opacity: 0.5;
458
+ }
459
+
460
+ .emptyText {
461
+ font-size: var(--font-size-lg);
462
+ color: var(--text-primary);
463
+ margin: 0 0 var(--spacing-xs) 0;
464
+ font-weight: var(--font-weight-medium);
465
+ }
466
+
467
+ .emptySubtext {
468
+ font-size: var(--font-size-md);
469
+ color: var(--text-secondary);
470
+ margin: 0;
471
+ }
472
+
473
+ @keyframes messageSlideIn {
474
+ from {
475
+ opacity: 0;
476
+ transform: translateY(var(--animation-slide-distance));
477
+ }
478
+ to {
479
+ opacity: 1;
480
+ transform: translateY(0);
481
+ }
482
+ }
483
+ @media (max-width: var(--mobile-breakpoint)) {
484
+ .emptyState {
485
+ height: var(--empty-state-mobile-height);
486
+ }
487
+ .emptyIcon {
488
+ font-size: 36px;
489
+ margin-bottom: var(--spacing-sm);
490
+ }
491
+ .emptyText {
492
+ font-size: var(--font-size-md);
493
+ }
494
+ .emptySubtext {
495
+ font-size: var(--font-size-sm);
496
+ }
497
+ }
498
+ .messageWrapper {
499
+ display: flex;
500
+ width: 100%;
501
+ gap: 10px;
502
+ }
503
+
504
+ .messageContainer {
505
+ display: flex;
506
+ flex-direction: column;
507
+ max-width: 70%;
508
+ min-width: 0;
509
+ position: relative;
510
+ }
511
+
512
+ .senderName {
513
+ font-family: "Inter", sans-serif !important;
514
+ font-weight: 600 !important;
515
+ font-style: normal !important;
516
+ font-size: 14px !important;
517
+ line-height: 150% !important;
518
+ letter-spacing: 0 !important;
519
+ color: var(--text-secondary) !important;
520
+ margin-bottom: var(--spacing-xs) !important;
521
+ }
522
+
523
+ .messageBubble {
524
+ padding: var(--spacing-sm) var(--spacing-md);
525
+ font-family: "Inter", sans-serif;
526
+ font-weight: 400;
527
+ font-style: normal;
528
+ font-size: 14px;
529
+ line-height: 150%;
530
+ letter-spacing: 0;
531
+ word-wrap: break-word;
532
+ position: relative;
533
+ max-width: 100%;
534
+ width: fit-content;
535
+ }
536
+
537
+ .messageText {
538
+ font-family: "Inter", sans-serif;
539
+ font-weight: 400;
540
+ font-style: normal;
541
+ font-size: 14px;
542
+ line-height: 150%;
543
+ letter-spacing: 0;
544
+ margin: 0;
545
+ white-space: pre-wrap;
546
+ word-break: break-word;
547
+ }
548
+
549
+ .messageWrapperLeft {
550
+ justify-content: flex-start;
551
+ }
552
+ .messageWrapperLeft .messageContainer {
553
+ align-items: flex-start;
554
+ }
555
+ .messageWrapperLeft .messageBubble {
556
+ background-color: var(--message-agent-bg);
557
+ color: var(--message-agent-text);
558
+ border-radius: 0 var(--radius-md) var(--radius-md) var(--radius-md);
559
+ }
560
+
561
+ .messageWrapperRight {
562
+ justify-content: flex-end;
563
+ }
564
+ .messageWrapperRight .messageContainer {
565
+ align-items: flex-end;
566
+ }
567
+ .messageWrapperRight .messageBubble {
568
+ background-color: var(--message-user-bg);
569
+ color: var(--message-user-text);
570
+ border-radius: var(--radius-md) 0 var(--radius-md) var(--radius-md);
571
+ }
572
+
573
+ .messageAvatar {
574
+ width: 32px;
575
+ height: 32px;
576
+ border-radius: 50%;
577
+ display: flex;
578
+ align-items: center;
579
+ justify-content: center;
580
+ font-weight: bold;
581
+ color: black;
582
+ font-size: 12px;
583
+ font-weight: 500;
584
+ position: relative;
585
+ background: #EAEAEB;
586
+ /* For absolute badge inside */
587
+ }
588
+
589
+ .messageBubble {
590
+ display: inline-block;
591
+ padding: var(--spacing-md) var(--spacing-lg);
592
+ border-radius: var(--radius-lg);
593
+ word-wrap: break-word;
594
+ position: relative;
595
+ font-family: var(--font-family);
596
+ line-height: 1.4;
597
+ max-width: 100%;
598
+ }
599
+
600
+ .userMessage {
601
+ background-color: var(--message-user-bg);
602
+ color: var(--message-user-text);
603
+ margin-left: auto;
604
+ }
605
+
606
+ .agentMessage {
607
+ background-color: var(--message-agent-bg);
608
+ color: var(--message-agent-text);
609
+ border: 1px solid var(--border-light);
610
+ }
611
+
612
+ .messageText {
613
+ font-size: var(--font-size-md);
614
+ line-height: 1.4;
615
+ margin: 0;
616
+ white-space: pre-wrap;
617
+ word-break: break-word;
618
+ }
619
+
620
+ .timestamp {
621
+ font-size: var(--font-size-xs);
622
+ color: var(--text-muted);
623
+ margin-top: var(--spacing-xs);
624
+ font-weight: var(--font-weight-normal);
625
+ position: relative;
626
+ cursor: default;
627
+ }
628
+
629
+ .timestamp:hover::after,
630
+ .timestamp:focus::after,
631
+ .timestamp:focus-visible::after {
632
+ content: attr(aria-label);
633
+ position: absolute;
634
+ background: var(--tooltip-bg, #f3f4f6);
635
+ color: var(--tooltip-text, #111827);
636
+ padding: 6px 8px;
637
+ border-radius: 4px;
638
+ font-size: 12px;
639
+ white-space: nowrap;
640
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
641
+ z-index: 40;
642
+ top: -40px;
643
+ transform: none;
644
+ }
645
+
646
+ .timestampLeft:hover::after,
647
+ .timestampLeft:focus::after,
648
+ .timestampLeft:focus-visible::after {
649
+ left: 0;
650
+ right: auto;
651
+ }
652
+
653
+ .timestampRight:hover::after,
654
+ .timestampRight:focus::after,
655
+ .timestampRight:focus-visible::after {
656
+ right: 0;
657
+ left: auto;
658
+ }
659
+
660
+ .resendContainer {
661
+ margin-top: var(--spacing-xs);
662
+ display: flex;
663
+ justify-content: flex-end;
664
+ align-items: center;
665
+ }
666
+
667
+ .resendButton {
668
+ background: transparent;
669
+ border: none;
670
+ color: var(--chat-primary-color);
671
+ cursor: pointer;
672
+ font-size: 16px;
673
+ padding: 4px 6px;
674
+ border-radius: 4px;
675
+ }
676
+
677
+ .resendButton:hover {
678
+ background: rgba(var(--chat-primary-color-rgb), 0.08);
679
+ }
680
+
681
+ .resendText {
682
+ color: var(--text-muted);
683
+ font-size: 12px;
684
+ margin-left: 8px;
685
+ cursor: pointer;
686
+ }
687
+
688
+ .resendText:focus,
689
+ .resendText:active {
690
+ outline: none;
691
+ text-decoration: underline;
692
+ }
693
+
694
+ @keyframes fadeInUp {
695
+ from {
696
+ opacity: 0;
697
+ transform: translateY(var(--animation-slide-distance));
698
+ }
699
+ to {
700
+ opacity: 1;
701
+ transform: translateY(0);
702
+ }
703
+ }
704
+ @media (max-width: var(--mobile-breakpoint)) {
705
+ .messageContainer {
706
+ max-width: 85%;
707
+ }
708
+ .messageBubble {
709
+ padding: var(--spacing-sm) var(--spacing-md);
710
+ }
711
+ }
712
+ .messageInputContainer {
713
+ width: 100%;
714
+ box-sizing: border-box;
715
+ padding: 8px 12px;
716
+ }
717
+
718
+ .messageInputForm {
719
+ width: 100%;
720
+ }
721
+
722
+ .inputWrapper {
723
+ display: flex;
724
+ align-items: center;
725
+ background-color: var(--input-bg);
726
+ border: 1px solid var(--input-border);
727
+ border-radius: var(--radius-md);
728
+ padding: 0;
729
+ transition: border-color var(--transition-fast);
730
+ height: var(--input-height);
731
+ overflow: hidden;
732
+ }
733
+ .inputWrapper:focus-within {
734
+ border-color: var(--input-border);
735
+ }
736
+
737
+ .messageInput {
738
+ flex: 1;
739
+ border: none;
740
+ background: transparent;
741
+ padding: 8px var(--spacing-lg);
742
+ font-size: var(--font-size-md);
743
+ color: var(--text-input);
744
+ font-family: var(--font-family);
745
+ line-height: 1.4;
746
+ outline: none;
747
+ height: 24px;
748
+ overflow-y: auto;
749
+ /* Hide scrollbar for Chrome, Safari and Opera */
750
+ }
751
+ .messageInput::-webkit-scrollbar {
752
+ display: none;
753
+ }
754
+ .messageInput {
755
+ /* Hide scrollbar for IE, Edge and Firefox */
756
+ -ms-overflow-style: none;
757
+ scrollbar-width: none;
758
+ }
759
+ .messageInput::placeholder {
760
+ color: var(--input-placeholder);
761
+ }
762
+ .messageInput.disabled {
763
+ opacity: var(--input-disabled-opacity);
764
+ cursor: not-allowed;
765
+ }
766
+
767
+ .sendButton {
768
+ display: flex;
769
+ align-items: center;
770
+ justify-content: center;
771
+ width: var(--input-height);
772
+ height: var(--input-height);
773
+ background-color: var(--chat-primary-color);
774
+ border: none;
775
+ border-radius: 0;
776
+ cursor: pointer;
777
+ transition: opacity var(--transition-fast);
778
+ padding: var(--spacing-sm);
779
+ }
780
+ .sendButton:hover {
781
+ opacity: var(--button-hover-opacity);
782
+ }
783
+ .sendButton:active {
784
+ opacity: 0.8;
785
+ }
786
+ .sendButton:focus, .sendButton:focus-visible {
787
+ outline: none;
788
+ box-shadow: none;
789
+ }
790
+
791
+ .sendIcon {
792
+ width: 100%;
793
+ height: 100%;
794
+ display: block;
795
+ }
796
+
797
+ .poweredBy {
798
+ font-family: "Urbanist", sans-serif;
799
+ font-weight: 400;
800
+ font-size: 12px;
801
+ line-height: 150%;
802
+ letter-spacing: 0;
803
+ text-align: center;
804
+ color: var(--text-powered-by);
805
+ display: flex;
806
+ align-items: center;
807
+ justify-content: center;
808
+ gap: var(--spacing-xs);
809
+ padding-top: var(--spacing-sm);
810
+ }
811
+
812
+ .smarterEmr {
813
+ color: var(--chat-primary-color);
814
+ font-weight: 400;
815
+ }
816
+
817
+ .encrypted {
818
+ color: var(--text-encrypted);
819
+ font-weight: 400;
820
+ }
821
+
822
+ .loadingIndicator {
823
+ display: flex;
824
+ align-items: center;
825
+ gap: var(--spacing-sm);
826
+ max-width: 100%;
827
+ width: fit-content;
828
+ overflow: hidden;
829
+ position: relative;
830
+ }
831
+ .loadingIndicator.small {
832
+ --indicator-size: 16px;
833
+ --dot-size: 3px;
834
+ --avatar-size: 24px;
835
+ --bubble-padding: var(--spacing-sm);
836
+ }
837
+ .loadingIndicator.medium {
838
+ --indicator-size: 20px;
839
+ --dot-size: 4px;
840
+ --avatar-size: 32px;
841
+ --bubble-padding: var(--spacing-md);
842
+ }
843
+ .loadingIndicator.large {
844
+ --indicator-size: 24px;
845
+ --dot-size: 5px;
846
+ --avatar-size: 40px;
847
+ --bubble-padding: var(--spacing-lg);
848
+ }
849
+
850
+ .typingIndicator {
851
+ display: flex;
852
+ align-items: flex-end;
853
+ gap: var(--spacing-sm);
854
+ animation: fadeInUp 0.3s ease-out;
855
+ }
856
+
857
+ .avatar {
858
+ width: var(--avatar-size);
859
+ height: var(--avatar-size);
860
+ background-color: var(--chat-primary-color);
861
+ border-radius: var(--radius-full);
862
+ display: flex;
863
+ align-items: center;
864
+ justify-content: center;
865
+ flex-shrink: 0;
866
+ }
867
+
868
+ .avatarIcon {
869
+ color: white;
870
+ font-size: calc(var(--avatar-size) * 0.5);
871
+ }
872
+
873
+ .typingBubble {
874
+ background-color: var(--message-agent-bg);
875
+ border: 1px solid var(--border-light);
876
+ border-radius: var(--radius-lg);
877
+ border-bottom-left-radius: var(--spacing-xs);
878
+ padding: var(--bubble-padding);
879
+ position: relative;
880
+ animation: bubblePulse 2s infinite ease-in-out;
881
+ }
882
+ .typingBubble::before {
883
+ content: "";
884
+ position: absolute;
885
+ left: -8px;
886
+ bottom: 0;
887
+ width: 0;
888
+ height: 0;
889
+ border-style: solid;
890
+ border-width: 0 0 8px 8px;
891
+ border-color: transparent transparent var(--message-agent-bg) transparent;
892
+ }
893
+ .typingBubble::after {
894
+ content: "";
895
+ position: absolute;
896
+ left: -9px;
897
+ bottom: 0;
898
+ width: 0;
899
+ height: 0;
900
+ border-style: solid;
901
+ border-width: 0 0 8px 8px;
902
+ border-color: transparent transparent var(--border-light) transparent;
903
+ z-index: -1;
904
+ }
905
+
906
+ .typingDots {
907
+ display: flex;
908
+ gap: 2px;
909
+ align-items: center;
910
+ }
911
+ .typingDots span {
912
+ width: var(--dot-size);
913
+ height: var(--dot-size);
914
+ background-color: var(--text-secondary);
915
+ border-radius: var(--radius-full);
916
+ animation: typingDot 1.4s infinite;
917
+ }
918
+ .typingDots span:nth-child(1) {
919
+ animation-delay: 0s;
920
+ }
921
+ .typingDots span:nth-child(2) {
922
+ animation-delay: 0.2s;
923
+ }
924
+ .typingDots span:nth-child(3) {
925
+ animation-delay: 0.4s;
926
+ }
927
+
928
+ .dotsIndicator {
929
+ display: flex;
930
+ gap: var(--spacing-xs);
931
+ align-items: center;
932
+ }
933
+ .dotsIndicator span {
934
+ width: var(--dot-size);
935
+ height: var(--dot-size);
936
+ background-color: var(--chat-primary-color);
937
+ border-radius: var(--radius-full);
938
+ animation: dotPulse 1.4s infinite;
939
+ }
940
+ .dotsIndicator span:nth-child(1) {
941
+ animation-delay: 0s;
942
+ }
943
+ .dotsIndicator span:nth-child(2) {
944
+ animation-delay: 0.2s;
945
+ }
946
+ .dotsIndicator span:nth-child(3) {
947
+ animation-delay: 0.4s;
948
+ }
949
+
950
+ .spinnerIndicator {
951
+ display: flex;
952
+ align-items: center;
953
+ justify-content: center;
954
+ }
955
+
956
+ .spinner {
957
+ width: var(--indicator-size);
958
+ height: var(--indicator-size);
959
+ border: 2px solid var(--border-light);
960
+ border-top: 2px solid var(--chat-primary-color);
961
+ border-radius: var(--radius-full);
962
+ animation: spin 1s linear infinite;
963
+ }
964
+
965
+ .loadingText {
966
+ font-size: var(--font-size-sm);
967
+ color: var(--text-secondary);
968
+ font-weight: var(--font-weight-medium);
969
+ }
970
+
971
+ @keyframes fadeInUp {
972
+ from {
973
+ opacity: 0;
974
+ transform: translateY(10px);
975
+ }
976
+ to {
977
+ opacity: 1;
978
+ transform: translateY(0);
979
+ }
980
+ }
981
+ @keyframes typingDot {
982
+ 0%, 60%, 100% {
983
+ transform: translateY(0);
984
+ opacity: 0.4;
985
+ }
986
+ 30% {
987
+ transform: translateY(-4px);
988
+ opacity: 1;
989
+ }
990
+ }
991
+ @keyframes dotPulse {
992
+ 0%, 60%, 100% {
993
+ transform: scale(1);
994
+ opacity: 0.4;
995
+ }
996
+ 30% {
997
+ transform: scale(1.2);
998
+ opacity: 1;
999
+ }
1000
+ }
1001
+ @keyframes bubblePulse {
1002
+ 0%, 100% {
1003
+ opacity: 1;
1004
+ }
1005
+ 50% {
1006
+ opacity: 0.8;
1007
+ }
1008
+ }
1009
+ @keyframes spin {
1010
+ from {
1011
+ transform: rotate(0deg);
1012
+ }
1013
+ to {
1014
+ transform: rotate(360deg);
1015
+ }
1016
+ }
1017
+ .errorBoundary {
1018
+ width: 100%;
1019
+ height: 100%;
1020
+ background: var(--chat-bg-color);
1021
+ display: flex;
1022
+ flex-direction: column;
1023
+ align-items: center;
1024
+ justify-content: center;
1025
+ text-align: center;
1026
+ padding: var(--spacing-md);
1027
+ overflow: hidden;
1028
+ }
1029
+
1030
+ .errorContainer {
1031
+ display: flex;
1032
+ flex-direction: column;
1033
+ align-items: center;
1034
+ justify-content: center;
1035
+ width: 100%;
1036
+ max-height: 100%;
1037
+ overflow: auto;
1038
+ padding: var(--spacing-md);
1039
+ }
1040
+
1041
+ .errorIcon {
1042
+ width: 48px;
1043
+ height: 48px;
1044
+ border-radius: var(--radius-full);
1045
+ display: flex;
1046
+ align-items: center;
1047
+ justify-content: center;
1048
+ margin-bottom: var(--spacing-xl);
1049
+ }
1050
+ .errorIcon svg {
1051
+ width: 24px;
1052
+ height: 24px;
1053
+ }
1054
+
1055
+ .errorTitle {
1056
+ color: var(--text-primary);
1057
+ font-size: var(--font-size-lg);
1058
+ font-weight: var(--font-weight-semibold);
1059
+ margin: 0 0 var(--spacing-lg) 0;
1060
+ font-family: var(--font-family);
1061
+ }
1062
+
1063
+ .errorMessage {
1064
+ color: var(--text-secondary);
1065
+ font-size: var(--font-size-md);
1066
+ line-height: 1.5;
1067
+ margin: 0 0 var(--spacing-xl) 0;
1068
+ font-family: var(--font-family);
1069
+ text-align: center;
1070
+ }
1071
+
1072
+ .retryButton {
1073
+ display: flex;
1074
+ align-items: center;
1075
+ justify-content: center;
1076
+ gap: var(--spacing-sm);
1077
+ color: var(--button-primary-text);
1078
+ border: none;
1079
+ border-radius: var(--radius-md);
1080
+ padding: var(--spacing-md) var(--spacing-xl);
1081
+ font-size: var(--font-size-md);
1082
+ font-weight: var(--font-weight-medium);
1083
+ font-family: var(--font-family);
1084
+ cursor: pointer;
1085
+ transition: opacity var(--transition-fast);
1086
+ }
1087
+ .retryButton:hover {
1088
+ opacity: var(--button-hover-opacity);
1089
+ }
1090
+ .retryButton:focus {
1091
+ outline: none;
1092
+ box-shadow: 0 0 0 2px rgba(255, 87, 34, 0.25);
1093
+ }
1094
+ .retryButton svg {
1095
+ width: 16px;
1096
+ height: 16px;
1097
+ }
1098
+
1099
+ @media (max-width: var(--mobile-breakpoint)) {
1100
+ .errorBoundary {
1101
+ min-width: var(--widget-mobile-min-width);
1102
+ min-height: var(--widget-mobile-min-height);
1103
+ padding: var(--spacing-lg);
1104
+ }
1105
+ .errorIcon {
1106
+ width: 60px;
1107
+ height: 60px;
1108
+ margin-bottom: var(--spacing-lg);
1109
+ }
1110
+ .errorIcon svg {
1111
+ width: 32px;
1112
+ height: 32px;
1113
+ }
1114
+ .errorTitle {
1115
+ font-size: var(--font-size-lg);
1116
+ }
1117
+ .errorMessage {
1118
+ font-size: var(--font-size-sm);
1119
+ }
1120
+ }
1121
+ .menuButton {
1122
+ display: flex;
1123
+ align-items: center;
1124
+ justify-content: center;
1125
+ width: 32px;
1126
+ height: 32px;
1127
+ background: transparent;
1128
+ border: none;
1129
+ border-radius: var(--radius-sm);
1130
+ cursor: pointer;
1131
+ transition: all var(--transition-fast);
1132
+ }
1133
+ .menuButton:hover:not(.disabled) {
1134
+ background-color: rgba(0, 0, 0, 0.05);
1135
+ }
1136
+ .menuButton:active:not(.disabled) {
1137
+ background-color: rgba(0, 0, 0, 0.1);
1138
+ transform: scale(0.95);
1139
+ }
1140
+ .menuButton.active {
1141
+ background-color: rgba(0, 0, 0, 0.1);
1142
+ }
1143
+ .menuButton.disabled {
1144
+ opacity: 0.5;
1145
+ cursor: not-allowed;
1146
+ }
1147
+
1148
+ .dotsContainer {
1149
+ display: flex;
1150
+ align-items: center;
1151
+ justify-content: center;
1152
+ gap: 2px;
1153
+ }
1154
+
1155
+ .dot {
1156
+ width: 4px;
1157
+ height: 4px;
1158
+ background-color: var(--text-secondary);
1159
+ border-radius: var(--radius-full);
1160
+ transition: background-color var(--transition-fast);
1161
+ }
1162
+ .menuButton:hover:not(.disabled) .dot {
1163
+ background-color: var(--text-primary);
1164
+ }
1165
+ .menuButton.active .dot {
1166
+ background-color: var(--chat-primary-color);
1167
+ }
1168
+
1169
+ .dropdownMenu {
1170
+ position: absolute;
1171
+ z-index: var(--dropdown-z-index);
1172
+ min-width: var(--dropdown-min-width);
1173
+ max-width: var(--dropdown-max-width);
1174
+ width: max-content;
1175
+ }
1176
+ .dropdownMenu.bottomRight {
1177
+ top: 100%;
1178
+ right: var(--dropdown-offset);
1179
+ margin-top: var(--spacing-sm);
1180
+ transform: translateX(0);
1181
+ }
1182
+ .dropdownMenu.bottomLeft {
1183
+ top: 100%;
1184
+ left: var(--dropdown-offset);
1185
+ margin-top: var(--spacing-sm);
1186
+ }
1187
+ .dropdownMenu.topRight {
1188
+ bottom: 100%;
1189
+ right: var(--dropdown-offset);
1190
+ margin-bottom: var(--spacing-sm);
1191
+ }
1192
+ .dropdownMenu.topLeft {
1193
+ bottom: 100%;
1194
+ left: var(--dropdown-offset);
1195
+ margin-bottom: var(--spacing-sm);
1196
+ }
1197
+
1198
+ .menuContent {
1199
+ background-color: var(--chat-bg-color);
1200
+ border: 1px solid var(--border-light);
1201
+ border-radius: var(--radius-lg);
1202
+ box-shadow: var(--shadow-widget);
1203
+ padding: var(--spacing-sm) 0;
1204
+ overflow: hidden;
1205
+ }
1206
+
1207
+ @media (max-width: var(--mobile-breakpoint)) {
1208
+ .dropdownMenu {
1209
+ min-width: var(--dropdown-min-width);
1210
+ max-width: var(--dropdown-mobile-max-width);
1211
+ }
1212
+ .dropdownMenu.bottomRight, .dropdownMenu.bottomLeft {
1213
+ margin-top: var(--spacing-xs);
1214
+ }
1215
+ .dropdownMenu.topRight, .dropdownMenu.topLeft {
1216
+ margin-bottom: var(--spacing-xs);
1217
+ }
1218
+ }
1219
+ .menuItem {
1220
+ display: flex;
1221
+ align-items: center;
1222
+ width: 100%;
1223
+ padding: var(--menu-item-padding-vertical) var(--menu-item-padding-horizontal);
1224
+ background: transparent;
1225
+ border: none;
1226
+ cursor: pointer;
1227
+ font-family: var(--font-family);
1228
+ font-size: var(--font-size-md);
1229
+ font-weight: var(--font-weight-normal);
1230
+ color: var(--menu-item-text);
1231
+ text-align: left;
1232
+ transition: background-color var(--transition-fast);
1233
+ white-space: nowrap;
1234
+ min-height: var(--menu-item-min-height);
1235
+ }
1236
+ .menuItem:hover:not(.disabled) {
1237
+ background-color: var(--menu-item-hover-bg);
1238
+ }
1239
+ .menuItem:active:not(.disabled) {
1240
+ background-color: var(--menu-item-active-bg);
1241
+ }
1242
+ .menuItem.destructive {
1243
+ color: var(--menu-item-destructive);
1244
+ }
1245
+ .menuItem.destructive:hover:not(.disabled) {
1246
+ background-color: var(--menu-item-destructive-hover-bg);
1247
+ }
1248
+ .menuItem.destructive .icon {
1249
+ color: var(--menu-item-destructive);
1250
+ }
1251
+ .menuItem.disabled {
1252
+ opacity: var(--menu-item-disabled-opacity);
1253
+ cursor: not-allowed;
1254
+ }
1255
+ .menuItem:focus-visible {
1256
+ outline: none;
1257
+ background-color: var(--menu-item-hover-bg);
1258
+ }
1259
+ .menuItem:focus {
1260
+ outline: none;
1261
+ background-color: var(--menu-item-hover-bg);
1262
+ }
1263
+
1264
+ .icon {
1265
+ display: flex;
1266
+ align-items: center;
1267
+ justify-content: center;
1268
+ width: var(--menu-item-icon-size);
1269
+ height: var(--menu-item-icon-size);
1270
+ margin-right: var(--menu-item-icon-margin);
1271
+ color: var(--menu-item-icon);
1272
+ flex-shrink: 0;
1273
+ }
1274
+ .icon svg {
1275
+ width: var(--menu-item-icon-svg-size);
1276
+ height: var(--menu-item-icon-svg-size);
1277
+ }
1278
+
1279
+ .label {
1280
+ flex: 1;
1281
+ font-weight: var(--font-weight-normal);
1282
+ line-height: 1.4;
1283
+ color: var(--menu-item-text);
1284
+ font-size: var(--font-size-md);
1285
+ }
1286
+
1287
+ .statusIndicator {
1288
+ display: flex;
1289
+ align-items: center;
1290
+ gap: var(--spacing-xs);
1291
+ }
1292
+
1293
+ .statusDot {
1294
+ width: var(--status-dot-size);
1295
+ height: var(--status-dot-size);
1296
+ border-radius: var(--radius-full);
1297
+ flex-shrink: 0;
1298
+ position: relative;
1299
+ }
1300
+ .statusDot.online {
1301
+ background-color: var(--status-online);
1302
+ box-shadow: 0 0 var(--spacing-xs) rgba(76, 175, 80, 0.5);
1303
+ }
1304
+ .statusDot.offline {
1305
+ background-color: var(--status-offline);
1306
+ }
1307
+ .statusDot.typing {
1308
+ background-color: var(--status-typing);
1309
+ display: flex;
1310
+ align-items: center;
1311
+ justify-content: center;
1312
+ width: var(--status-typing-width);
1313
+ height: var(--status-typing-height);
1314
+ border-radius: var(--radius-sm);
1315
+ }
1316
+
1317
+ .statusText {
1318
+ font-size: var(--font-size-sm);
1319
+ font-weight: var(--font-weight-medium);
1320
+ line-height: 1;
1321
+ }
1322
+ .statusText.online {
1323
+ color: var(--status-online);
1324
+ }
1325
+ .statusText.offline {
1326
+ color: var(--status-offline);
1327
+ }
1328
+ .statusText.typing {
1329
+ color: var(--status-typing);
1330
+ }
1331
+
1332
+ .typingAnimation {
1333
+ display: flex;
1334
+ gap: var(--status-typing-gap);
1335
+ align-items: center;
1336
+ }
1337
+ .typingAnimation span {
1338
+ width: var(--status-typing-dot-size);
1339
+ height: var(--status-typing-dot-size);
1340
+ background-color: white;
1341
+ border-radius: var(--radius-full);
1342
+ animation: typing 1.4s infinite;
1343
+ }
1344
+ .typingAnimation span:nth-child(1) {
1345
+ animation-delay: 0s;
1346
+ }
1347
+ .typingAnimation span:nth-child(2) {
1348
+ animation-delay: 0.2s;
1349
+ }
1350
+ .typingAnimation span:nth-child(3) {
1351
+ animation-delay: 0.4s;
1352
+ }
1353
+
1354
+ @keyframes typing {
1355
+ 0%, 60%, 100% {
1356
+ transform: translateY(0);
1357
+ opacity: 0.4;
1358
+ }
1359
+ 30% {
1360
+ transform: translateY(calc(-1 * var(--status-typing-dot-size)));
1361
+ opacity: 1;
1362
+ }
1363
+ }
1364
+ :root {
1365
+ --chat-primary-color: #FA5B4C;
1366
+ --chat-primary-color-rgb: 250, 91, 76;
1367
+ --chat-bg-color: #ffffff;
1368
+ --chat-secondary-color: #f5f5f5;
1369
+ --message-user-bg: var(--chat-primary-color);
1370
+ --message-user-text: #ffffff;
1371
+ --message-agent-bg: var(--chat-secondary-color);
1372
+ --message-agent-text: #333333;
1373
+ --header-bg: var(--chat-bg-color);
1374
+ --header-text: #333333;
1375
+ --header-border: #e0e0e0;
1376
+ --input-bg: var(--chat-bg-color);
1377
+ --input-border: #e0e0e0;
1378
+ --input-focus-border: var(--chat-primary-color);
1379
+ --input-text: #333333;
1380
+ --input-placeholder: #999999;
1381
+ --button-primary-bg: var(--chat-primary-color);
1382
+ --button-primary-text: #ffffff;
1383
+ --button-hover-opacity: 0.9;
1384
+ --status-online: #4caf50;
1385
+ --status-offline: #9e9e9e;
1386
+ --status-typing: #ff9800;
1387
+ --text-primary: #333333;
1388
+ --text-secondary: #666666;
1389
+ --text-muted: #999999;
1390
+ --border-light: #e0e0e0;
1391
+ --shadow-light: rgba(0, 0, 0, 0.1);
1392
+ --shadow-medium: rgba(0, 0, 0, 0.15);
1393
+ --spacing-xs: 4px;
1394
+ --spacing-sm: 8px;
1395
+ --spacing-md: 12px;
1396
+ --spacing-lg: 16px;
1397
+ --spacing-xl: 20px;
1398
+ --spacing-xxl: 24px;
1399
+ --radius-sm: 4px;
1400
+ --radius-md: 8px;
1401
+ --radius-lg: 12px;
1402
+ --radius-xl: 16px;
1403
+ --radius-full: 50%;
1404
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
1405
+ --font-size-xs: 11px;
1406
+ --font-size-sm: 12px;
1407
+ --font-size-md: 14px;
1408
+ --font-size-lg: 16px;
1409
+ --font-weight-normal: 400;
1410
+ --font-weight-medium: 500;
1411
+ --font-weight-semibold: 600;
1412
+ --transition-fast: 0.15s ease-in-out;
1413
+ --transition-normal: 0.3s ease-in-out;
1414
+ --widget-min-width: 300px;
1415
+ --widget-min-height: 400px;
1416
+ --widget-mobile-min-width: 280px;
1417
+ --widget-mobile-min-height: 350px;
1418
+ --widget-mobile-max-width: 350px;
1419
+ --widget-mobile-max-height: 500px;
1420
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
1421
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
1422
+ --state-initializing-bg: #f8f9fa;
1423
+ --state-initializing-text: #6c757d;
1424
+ --state-error-bg: #fff5f5;
1425
+ --state-error-border: #fed7d7;
1426
+ --state-error-title: #e53e3e;
1427
+ --state-error-text: #744210;
1428
+ --state-error-details-bg: #f7f7f7;
1429
+ --state-waiting-bg: #f0f8ff;
1430
+ --state-waiting-text: #4a90e2;
1431
+ --spinner-size: 40px;
1432
+ --spinner-border-width: 3px;
1433
+ --toggle-button-size: 60px;
1434
+ --toggle-icon-size: 24px;
1435
+ --mobile-breakpoint: 768px;
1436
+ --mobile-spacing: 10px;
1437
+ --mobile-offset: 20px;
1438
+ --mobile-top-offset: 100px;
1439
+ --input-height: 48px;
1440
+ --input-disabled-opacity: 0.6;
1441
+ --header-height: 63px;
1442
+ --text-input: #1F2937;
1443
+ --text-powered-by: #6B7280;
1444
+ --text-encrypted: #6B7280;
1445
+ --dropdown-min-width: 200px;
1446
+ --dropdown-max-width: 280px;
1447
+ --dropdown-mobile-max-width: 250px;
1448
+ --dropdown-offset: 12px;
1449
+ --dropdown-z-index: 1000;
1450
+ --status-dot-size: 8px;
1451
+ --status-typing-width: 12px;
1452
+ --status-typing-height: 8px;
1453
+ --status-typing-dot-size: 2px;
1454
+ --status-typing-gap: 1px;
1455
+ --menu-item-padding-vertical: 14px;
1456
+ --menu-item-padding-horizontal: 20px;
1457
+ --menu-item-min-height: 44px;
1458
+ --menu-item-icon-size: 20px;
1459
+ --menu-item-icon-svg-size: 18px;
1460
+ --menu-item-icon-margin: 16px;
1461
+ --menu-item-disabled-opacity: 0.5;
1462
+ --menu-item-text: #333333;
1463
+ --menu-item-icon: #666666;
1464
+ --menu-item-hover-bg: #f5f5f5;
1465
+ --menu-item-active-bg: #e8e8e8;
1466
+ --menu-item-destructive: #f44336;
1467
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
1468
+ --animation-slide-distance: 10px;
1469
+ --empty-state-mobile-height: 150px;
1470
+ }
1471
+
1472
+ .ChatWidget-module_chatWidget__wqmsb {
1473
+ position: relative;
1474
+ width: 100%;
1475
+ height: 100%;
1476
+ min-width: var(--widget-min-width);
1477
+ min-height: var(--widget-min-height);
1478
+ font-family: var(--font-family);
1479
+ display: flex;
1480
+ flex-direction: column;
1481
+ align-items: stretch;
1482
+ justify-content: stretch;
1483
+ overflow: visible;
1484
+ min-height: 0;
1485
+ }
1486
+
1487
+ .ChatWidget-module_chatWindow__TxiTp {
1488
+ width: 100%;
1489
+ flex: 1 1 auto;
1490
+ min-width: var(--widget-min-width);
1491
+ min-height: var(--widget-min-height);
1492
+ background: var(--chat-bg-color);
1493
+ border-radius: var(--radius-lg);
1494
+ box-shadow: var(--shadow-widget);
1495
+ display: flex;
1496
+ flex-direction: column;
1497
+ overflow: hidden;
1498
+ border: 1px solid var(--border-light);
1499
+ position: relative;
1500
+ }
1501
+
1502
+ .ChatWidget-module_initializingState__38TIk,
1503
+ .ChatWidget-module_errorState__SkHh8,
1504
+ .ChatWidget-module_waitingState__8jS75 {
1505
+ width: 100%;
1506
+ height: 100%;
1507
+ min-width: var(--widget-min-width);
1508
+ min-height: var(--widget-min-height);
1509
+ background: var(--chat-bg-color);
1510
+ border-radius: var(--radius-lg);
1511
+ box-shadow: var(--shadow-widget);
1512
+ display: flex;
1513
+ flex-direction: column;
1514
+ align-items: center;
1515
+ justify-content: center;
1516
+ text-align: center;
1517
+ padding: var(--spacing-xl);
1518
+ border: 1px solid var(--border-light);
1519
+ }
1520
+
1521
+ .ChatWidget-module_initializingState__38TIk {
1522
+ background: var(--state-initializing-bg);
1523
+ }
1524
+
1525
+ .ChatWidget-module_errorState__SkHh8 {
1526
+ background: var(--state-error-bg);
1527
+ border-color: var(--state-error-border);
1528
+ }
1529
+ .ChatWidget-module_errorState__SkHh8 h3 {
1530
+ margin: 0 0 var(--spacing-sm) 0;
1531
+ color: var(--state-error-title);
1532
+ font-size: var(--font-size-lg);
1533
+ font-weight: var(--font-weight-semibold);
1534
+ }
1535
+ .ChatWidget-module_errorState__SkHh8 p {
1536
+ margin: var(--spacing-xs) 0;
1537
+ color: var(--state-error-text);
1538
+ font-size: var(--font-size-md);
1539
+ line-height: 1.4;
1540
+ }
1541
+
1542
+ .ChatWidget-module_errorDetails__cnz-0 {
1543
+ font-family: monospace;
1544
+ font-size: var(--font-size-sm) !important;
1545
+ color: var(--text-muted) !important;
1546
+ margin-top: var(--spacing-lg) !important;
1547
+ padding: var(--spacing-sm);
1548
+ background: var(--state-error-details-bg);
1549
+ border-radius: var(--radius-sm);
1550
+ max-height: 100px;
1551
+ overflow-y: auto;
1552
+ }
1553
+
1554
+ .ChatWidget-module_waitingState__8jS75 {
1555
+ background: var(--state-waiting-bg);
1556
+ }
1557
+ .ChatWidget-module_waitingState__8jS75 p {
1558
+ margin: 0;
1559
+ color: var(--state-waiting-text);
1560
+ font-size: var(--font-size-md);
1561
+ }
1562
+
1563
+ .ChatWidget-module_spinner__DaEd9 {
1564
+ width: var(--spinner-size);
1565
+ height: var(--spinner-size);
1566
+ border: var(--spinner-border-width) solid var(--chat-secondary-color);
1567
+ border-top: var(--spinner-border-width) solid var(--chat-primary-color);
1568
+ border-radius: var(--radius-full);
1569
+ animation: ChatWidget-module_spin__nnWB6 1s linear infinite;
1570
+ }
1571
+
1572
+ @keyframes ChatWidget-module_spin__nnWB6 {
1573
+ 0% {
1574
+ transform: rotate(0deg);
1575
+ }
1576
+ 100% {
1577
+ transform: rotate(360deg);
1578
+ }
1579
+ }
1580
+ .ChatWidget-module_chatToggle__DyAY- {
1581
+ width: var(--toggle-button-size);
1582
+ height: var(--toggle-button-size);
1583
+ border-radius: var(--radius-full);
1584
+ background: var(--button-primary-bg);
1585
+ border: none;
1586
+ cursor: pointer;
1587
+ display: flex;
1588
+ align-items: center;
1589
+ justify-content: center;
1590
+ box-shadow: var(--shadow-button);
1591
+ transition: var(--transition-normal);
1592
+ }
1593
+ .ChatWidget-module_chatToggle__DyAY-:hover {
1594
+ background: var(--button-primary-bg);
1595
+ opacity: var(--button-hover-opacity);
1596
+ transform: scale(1.05);
1597
+ }
1598
+
1599
+ .ChatWidget-module_chatIcon__1uwXf {
1600
+ font-size: var(--toggle-icon-size);
1601
+ color: var(--button-primary-text);
1602
+ }
1603
+
1604
+ @media (max-width: var(--mobile-breakpoint)) {
1605
+ .ChatWidget-module_chatWidget__wqmsb {
1606
+ bottom: var(--mobile-spacing);
1607
+ right: var(--mobile-spacing);
1608
+ min-width: var(--widget-mobile-min-width);
1609
+ min-height: var(--widget-mobile-min-height);
1610
+ }
1611
+ .ChatWidget-module_chatWindow__TxiTp {
1612
+ width: calc(100vw - var(--mobile-offset));
1613
+ height: calc(100vh - var(--mobile-top-offset));
1614
+ overflow: hidden;
1615
+ flex: 1 1 auto;
1616
+ min-height: 0;
1617
+ min-height: var(--widget-mobile-min-height);
1618
+ max-width: var(--widget-mobile-max-width);
1619
+ max-height: var(--widget-mobile-max-height);
1620
+ }
1621
+ .ChatWidget-module_initializingState__38TIk,
1622
+ .ChatWidget-module_errorState__SkHh8,
1623
+ .ChatWidget-module_waitingState__8jS75 {
1624
+ min-width: var(--widget-mobile-min-width);
1625
+ min-height: var(--widget-mobile-min-height);
1626
+ }
1627
+ }
1628
+ :root {
1629
+ --chat-primary-color: #FA5B4C;
1630
+ --chat-primary-color-rgb: 250, 91, 76;
1631
+ --chat-bg-color: #ffffff;
1632
+ --chat-secondary-color: #f5f5f5;
1633
+ --message-user-bg: var(--chat-primary-color);
1634
+ --message-user-text: #ffffff;
1635
+ --message-agent-bg: var(--chat-secondary-color);
1636
+ --message-agent-text: #333333;
1637
+ --header-bg: var(--chat-bg-color);
1638
+ --header-text: #333333;
1639
+ --header-border: #e0e0e0;
1640
+ --input-bg: var(--chat-bg-color);
1641
+ --input-border: #e0e0e0;
1642
+ --input-focus-border: var(--chat-primary-color);
1643
+ --input-text: #333333;
1644
+ --input-placeholder: #999999;
1645
+ --button-primary-bg: var(--chat-primary-color);
1646
+ --button-primary-text: #ffffff;
1647
+ --button-hover-opacity: 0.9;
1648
+ --status-online: #4caf50;
1649
+ --status-offline: #9e9e9e;
1650
+ --status-typing: #ff9800;
1651
+ --text-primary: #333333;
1652
+ --text-secondary: #666666;
1653
+ --text-muted: #999999;
1654
+ --border-light: #e0e0e0;
1655
+ --shadow-light: rgba(0, 0, 0, 0.1);
1656
+ --shadow-medium: rgba(0, 0, 0, 0.15);
1657
+ --spacing-xs: 4px;
1658
+ --spacing-sm: 8px;
1659
+ --spacing-md: 12px;
1660
+ --spacing-lg: 16px;
1661
+ --spacing-xl: 20px;
1662
+ --spacing-xxl: 24px;
1663
+ --radius-sm: 4px;
1664
+ --radius-md: 8px;
1665
+ --radius-lg: 12px;
1666
+ --radius-xl: 16px;
1667
+ --radius-full: 50%;
1668
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
1669
+ --font-size-xs: 11px;
1670
+ --font-size-sm: 12px;
1671
+ --font-size-md: 14px;
1672
+ --font-size-lg: 16px;
1673
+ --font-weight-normal: 400;
1674
+ --font-weight-medium: 500;
1675
+ --font-weight-semibold: 600;
1676
+ --transition-fast: 0.15s ease-in-out;
1677
+ --transition-normal: 0.3s ease-in-out;
1678
+ --widget-min-width: 300px;
1679
+ --widget-min-height: 400px;
1680
+ --widget-mobile-min-width: 280px;
1681
+ --widget-mobile-min-height: 350px;
1682
+ --widget-mobile-max-width: 350px;
1683
+ --widget-mobile-max-height: 500px;
1684
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
1685
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
1686
+ --state-initializing-bg: #f8f9fa;
1687
+ --state-initializing-text: #6c757d;
1688
+ --state-error-bg: #fff5f5;
1689
+ --state-error-border: #fed7d7;
1690
+ --state-error-title: #e53e3e;
1691
+ --state-error-text: #744210;
1692
+ --state-error-details-bg: #f7f7f7;
1693
+ --state-waiting-bg: #f0f8ff;
1694
+ --state-waiting-text: #4a90e2;
1695
+ --spinner-size: 40px;
1696
+ --spinner-border-width: 3px;
1697
+ --toggle-button-size: 60px;
1698
+ --toggle-icon-size: 24px;
1699
+ --mobile-breakpoint: 768px;
1700
+ --mobile-spacing: 10px;
1701
+ --mobile-offset: 20px;
1702
+ --mobile-top-offset: 100px;
1703
+ --input-height: 48px;
1704
+ --input-disabled-opacity: 0.6;
1705
+ --header-height: 63px;
1706
+ --text-input: #1F2937;
1707
+ --text-powered-by: #6B7280;
1708
+ --text-encrypted: #6B7280;
1709
+ --dropdown-min-width: 200px;
1710
+ --dropdown-max-width: 280px;
1711
+ --dropdown-mobile-max-width: 250px;
1712
+ --dropdown-offset: 12px;
1713
+ --dropdown-z-index: 1000;
1714
+ --status-dot-size: 8px;
1715
+ --status-typing-width: 12px;
1716
+ --status-typing-height: 8px;
1717
+ --status-typing-dot-size: 2px;
1718
+ --status-typing-gap: 1px;
1719
+ --menu-item-padding-vertical: 14px;
1720
+ --menu-item-padding-horizontal: 20px;
1721
+ --menu-item-min-height: 44px;
1722
+ --menu-item-icon-size: 20px;
1723
+ --menu-item-icon-svg-size: 18px;
1724
+ --menu-item-icon-margin: 16px;
1725
+ --menu-item-disabled-opacity: 0.5;
1726
+ --menu-item-text: #333333;
1727
+ --menu-item-icon: #666666;
1728
+ --menu-item-hover-bg: #f5f5f5;
1729
+ --menu-item-active-bg: #e8e8e8;
1730
+ --menu-item-destructive: #f44336;
1731
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
1732
+ --animation-slide-distance: 10px;
1733
+ --empty-state-mobile-height: 150px;
1734
+ }
1735
+
1736
+ .ChatContainer-module_chatContainer__96ZLx {
1737
+ display: flex;
1738
+ flex-direction: column;
1739
+ height: 100%;
1740
+ background-color: #FFFFFF;
1741
+ overflow: hidden;
1742
+ }
1743
+ .ChatContainer-module_chatContainer__96ZLx .ChatContainer-module_chat-header__GRRoF {
1744
+ flex-shrink: 0;
1745
+ height: 63px;
1746
+ }
1747
+ .ChatContainer-module_chatContainer__96ZLx .ChatContainer-module_messagesSection__-Nf-D {
1748
+ flex: 1 1 auto;
1749
+ min-height: 0;
1750
+ position: relative;
1751
+ overflow: hidden;
1752
+ }
1753
+ .ChatContainer-module_chatContainer__96ZLx .ChatContainer-module_disclaimer__XbIku {
1754
+ flex-shrink: 0;
1755
+ padding: 8px 16px;
1756
+ font-size: 12px;
1757
+ color: #6B7280; /* gray-500 */
1758
+ text-align: center;
1759
+ }
1760
+ .ChatContainer-module_chatContainer__96ZLx .ChatContainer-module_chatInputWrapper__1gctp {
1761
+ flex-shrink: 0;
1762
+ background: #FFFFFF;
1763
+ padding: 16px;
1764
+ border-top: 1px solid #E5E7EB;
1765
+ }
1766
+ :root {
1767
+ --chat-primary-color: #FA5B4C;
1768
+ --chat-primary-color-rgb: 250, 91, 76;
1769
+ --chat-bg-color: #ffffff;
1770
+ --chat-secondary-color: #f5f5f5;
1771
+ --message-user-bg: var(--chat-primary-color);
1772
+ --message-user-text: #ffffff;
1773
+ --message-agent-bg: var(--chat-secondary-color);
1774
+ --message-agent-text: #333333;
1775
+ --header-bg: var(--chat-bg-color);
1776
+ --header-text: #333333;
1777
+ --header-border: #e0e0e0;
1778
+ --input-bg: var(--chat-bg-color);
1779
+ --input-border: #e0e0e0;
1780
+ --input-focus-border: var(--chat-primary-color);
1781
+ --input-text: #333333;
1782
+ --input-placeholder: #999999;
1783
+ --button-primary-bg: var(--chat-primary-color);
1784
+ --button-primary-text: #ffffff;
1785
+ --button-hover-opacity: 0.9;
1786
+ --status-online: #4caf50;
1787
+ --status-offline: #9e9e9e;
1788
+ --status-typing: #ff9800;
1789
+ --text-primary: #333333;
1790
+ --text-secondary: #666666;
1791
+ --text-muted: #999999;
1792
+ --border-light: #e0e0e0;
1793
+ --shadow-light: rgba(0, 0, 0, 0.1);
1794
+ --shadow-medium: rgba(0, 0, 0, 0.15);
1795
+ --spacing-xs: 4px;
1796
+ --spacing-sm: 8px;
1797
+ --spacing-md: 12px;
1798
+ --spacing-lg: 16px;
1799
+ --spacing-xl: 20px;
1800
+ --spacing-xxl: 24px;
1801
+ --radius-sm: 4px;
1802
+ --radius-md: 8px;
1803
+ --radius-lg: 12px;
1804
+ --radius-xl: 16px;
1805
+ --radius-full: 50%;
1806
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
1807
+ --font-size-xs: 11px;
1808
+ --font-size-sm: 12px;
1809
+ --font-size-md: 14px;
1810
+ --font-size-lg: 16px;
1811
+ --font-weight-normal: 400;
1812
+ --font-weight-medium: 500;
1813
+ --font-weight-semibold: 600;
1814
+ --transition-fast: 0.15s ease-in-out;
1815
+ --transition-normal: 0.3s ease-in-out;
1816
+ --widget-min-width: 300px;
1817
+ --widget-min-height: 400px;
1818
+ --widget-mobile-min-width: 280px;
1819
+ --widget-mobile-min-height: 350px;
1820
+ --widget-mobile-max-width: 350px;
1821
+ --widget-mobile-max-height: 500px;
1822
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
1823
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
1824
+ --state-initializing-bg: #f8f9fa;
1825
+ --state-initializing-text: #6c757d;
1826
+ --state-error-bg: #fff5f5;
1827
+ --state-error-border: #fed7d7;
1828
+ --state-error-title: #e53e3e;
1829
+ --state-error-text: #744210;
1830
+ --state-error-details-bg: #f7f7f7;
1831
+ --state-waiting-bg: #f0f8ff;
1832
+ --state-waiting-text: #4a90e2;
1833
+ --spinner-size: 40px;
1834
+ --spinner-border-width: 3px;
1835
+ --toggle-button-size: 60px;
1836
+ --toggle-icon-size: 24px;
1837
+ --mobile-breakpoint: 768px;
1838
+ --mobile-spacing: 10px;
1839
+ --mobile-offset: 20px;
1840
+ --mobile-top-offset: 100px;
1841
+ --input-height: 48px;
1842
+ --input-disabled-opacity: 0.6;
1843
+ --header-height: 63px;
1844
+ --text-input: #1F2937;
1845
+ --text-powered-by: #6B7280;
1846
+ --text-encrypted: #6B7280;
1847
+ --dropdown-min-width: 200px;
1848
+ --dropdown-max-width: 280px;
1849
+ --dropdown-mobile-max-width: 250px;
1850
+ --dropdown-offset: 12px;
1851
+ --dropdown-z-index: 1000;
1852
+ --status-dot-size: 8px;
1853
+ --status-typing-width: 12px;
1854
+ --status-typing-height: 8px;
1855
+ --status-typing-dot-size: 2px;
1856
+ --status-typing-gap: 1px;
1857
+ --menu-item-padding-vertical: 14px;
1858
+ --menu-item-padding-horizontal: 20px;
1859
+ --menu-item-min-height: 44px;
1860
+ --menu-item-icon-size: 20px;
1861
+ --menu-item-icon-svg-size: 18px;
1862
+ --menu-item-icon-margin: 16px;
1863
+ --menu-item-disabled-opacity: 0.5;
1864
+ --menu-item-text: #333333;
1865
+ --menu-item-icon: #666666;
1866
+ --menu-item-hover-bg: #f5f5f5;
1867
+ --menu-item-active-bg: #e8e8e8;
1868
+ --menu-item-destructive: #f44336;
1869
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
1870
+ --animation-slide-distance: 10px;
1871
+ --empty-state-mobile-height: 150px;
1872
+ }
1873
+
1874
+ .MessageList-module_messageList__KNVpc {
1875
+ height: 100%;
1876
+ position: relative;
1877
+ min-height: 0;
1878
+ overflow: auto;
1879
+ scrollbar-width: none; /* Firefox */
1880
+ -ms-overflow-style: none; /* IE and Edge */
1881
+ scroll-behavior: smooth;
1882
+ padding: 16px;
1883
+ }
1884
+ .MessageList-module_messageList__KNVpc::-webkit-scrollbar {
1885
+ display: none; /* Chrome, Safari and Opera */
1886
+ }
1887
+
1888
+ .MessageList-module_loadingOverlay__GMXlG {
1889
+ position: absolute;
1890
+ top: 0;
1891
+ left: 0;
1892
+ right: 0;
1893
+ bottom: 0;
1894
+ background: rgba(255, 255, 255, 0.9);
1895
+ display: flex;
1896
+ align-items: center;
1897
+ justify-content: center;
1898
+ z-index: 1;
1899
+ }
1900
+
1901
+ .MessageList-module_messagesContainer__ZDIIH {
1902
+ display: flex;
1903
+ flex-direction: column;
1904
+ gap: 12px;
1905
+ width: 100%;
1906
+ padding-bottom: 16px;
1907
+ overflow-y: auto;
1908
+ -ms-overflow-style: none; /* IE and Edge */
1909
+ scrollbar-width: none; /* Firefox */
1910
+ }
1911
+ .MessageList-module_messagesContainer__ZDIIH::-webkit-scrollbar {
1912
+ display: none;
1913
+ }
1914
+ .MessageList-module_messagesContainer__ZDIIH {
1915
+ flex: 1 1 auto;
1916
+ }
1917
+
1918
+ .MessageList-module_messageBubbleWrapper__pNM3z {
1919
+ animation: MessageList-module_messageSlideIn__A4iWc 0.3s ease-out;
1920
+ }
1921
+
1922
+ .MessageList-module_messagesEnd__qYzpz {
1923
+ height: 1px;
1924
+ flex-shrink: 0;
1925
+ }
1926
+
1927
+ .MessageList-module_emptyState__-x8KC {
1928
+ display: flex;
1929
+ flex-direction: column;
1930
+ align-items: center;
1931
+ justify-content: center;
1932
+ height: 200px;
1933
+ text-align: center;
1934
+ opacity: 0.6;
1935
+ }
1936
+
1937
+ .MessageList-module_emptyIcon__oCafg {
1938
+ font-size: 48px;
1939
+ margin-bottom: var(--spacing-md);
1940
+ opacity: 0.5;
1941
+ }
1942
+
1943
+ .MessageList-module_emptyText__-85a2 {
1944
+ font-size: var(--font-size-lg);
1945
+ color: var(--text-primary);
1946
+ margin: 0 0 var(--spacing-xs) 0;
1947
+ font-weight: var(--font-weight-medium);
1948
+ }
1949
+
1950
+ .MessageList-module_emptySubtext__-RWpt {
1951
+ font-size: var(--font-size-md);
1952
+ color: var(--text-secondary);
1953
+ margin: 0;
1954
+ }
1955
+
1956
+ @keyframes MessageList-module_messageSlideIn__A4iWc {
1957
+ from {
1958
+ opacity: 0;
1959
+ transform: translateY(var(--animation-slide-distance));
1960
+ }
1961
+ to {
1962
+ opacity: 1;
1963
+ transform: translateY(0);
1964
+ }
1965
+ }
1966
+ @media (max-width: var(--mobile-breakpoint)) {
1967
+ .MessageList-module_emptyState__-x8KC {
1968
+ height: var(--empty-state-mobile-height);
1969
+ }
1970
+ .MessageList-module_emptyIcon__oCafg {
1971
+ font-size: 36px;
1972
+ margin-bottom: var(--spacing-sm);
1973
+ }
1974
+ .MessageList-module_emptyText__-85a2 {
1975
+ font-size: var(--font-size-md);
1976
+ }
1977
+ .MessageList-module_emptySubtext__-RWpt {
1978
+ font-size: var(--font-size-sm);
1979
+ }
1980
+ }
1981
+ :root {
1982
+ --chat-primary-color: #FA5B4C;
1983
+ --chat-primary-color-rgb: 250, 91, 76;
1984
+ --chat-bg-color: #ffffff;
1985
+ --chat-secondary-color: #f5f5f5;
1986
+ --message-user-bg: var(--chat-primary-color);
1987
+ --message-user-text: #ffffff;
1988
+ --message-agent-bg: var(--chat-secondary-color);
1989
+ --message-agent-text: #333333;
1990
+ --header-bg: var(--chat-bg-color);
1991
+ --header-text: #333333;
1992
+ --header-border: #e0e0e0;
1993
+ --input-bg: var(--chat-bg-color);
1994
+ --input-border: #e0e0e0;
1995
+ --input-focus-border: var(--chat-primary-color);
1996
+ --input-text: #333333;
1997
+ --input-placeholder: #999999;
1998
+ --button-primary-bg: var(--chat-primary-color);
1999
+ --button-primary-text: #ffffff;
2000
+ --button-hover-opacity: 0.9;
2001
+ --status-online: #4caf50;
2002
+ --status-offline: #9e9e9e;
2003
+ --status-typing: #ff9800;
2004
+ --text-primary: #333333;
2005
+ --text-secondary: #666666;
2006
+ --text-muted: #999999;
2007
+ --border-light: #e0e0e0;
2008
+ --shadow-light: rgba(0, 0, 0, 0.1);
2009
+ --shadow-medium: rgba(0, 0, 0, 0.15);
2010
+ --spacing-xs: 4px;
2011
+ --spacing-sm: 8px;
2012
+ --spacing-md: 12px;
2013
+ --spacing-lg: 16px;
2014
+ --spacing-xl: 20px;
2015
+ --spacing-xxl: 24px;
2016
+ --radius-sm: 4px;
2017
+ --radius-md: 8px;
2018
+ --radius-lg: 12px;
2019
+ --radius-xl: 16px;
2020
+ --radius-full: 50%;
2021
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
2022
+ --font-size-xs: 11px;
2023
+ --font-size-sm: 12px;
2024
+ --font-size-md: 14px;
2025
+ --font-size-lg: 16px;
2026
+ --font-weight-normal: 400;
2027
+ --font-weight-medium: 500;
2028
+ --font-weight-semibold: 600;
2029
+ --transition-fast: 0.15s ease-in-out;
2030
+ --transition-normal: 0.3s ease-in-out;
2031
+ --widget-min-width: 300px;
2032
+ --widget-min-height: 400px;
2033
+ --widget-mobile-min-width: 280px;
2034
+ --widget-mobile-min-height: 350px;
2035
+ --widget-mobile-max-width: 350px;
2036
+ --widget-mobile-max-height: 500px;
2037
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
2038
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
2039
+ --state-initializing-bg: #f8f9fa;
2040
+ --state-initializing-text: #6c757d;
2041
+ --state-error-bg: #fff5f5;
2042
+ --state-error-border: #fed7d7;
2043
+ --state-error-title: #e53e3e;
2044
+ --state-error-text: #744210;
2045
+ --state-error-details-bg: #f7f7f7;
2046
+ --state-waiting-bg: #f0f8ff;
2047
+ --state-waiting-text: #4a90e2;
2048
+ --spinner-size: 40px;
2049
+ --spinner-border-width: 3px;
2050
+ --toggle-button-size: 60px;
2051
+ --toggle-icon-size: 24px;
2052
+ --mobile-breakpoint: 768px;
2053
+ --mobile-spacing: 10px;
2054
+ --mobile-offset: 20px;
2055
+ --mobile-top-offset: 100px;
2056
+ --input-height: 48px;
2057
+ --input-disabled-opacity: 0.6;
2058
+ --header-height: 63px;
2059
+ --text-input: #1F2937;
2060
+ --text-powered-by: #6B7280;
2061
+ --text-encrypted: #6B7280;
2062
+ --dropdown-min-width: 200px;
2063
+ --dropdown-max-width: 280px;
2064
+ --dropdown-mobile-max-width: 250px;
2065
+ --dropdown-offset: 12px;
2066
+ --dropdown-z-index: 1000;
2067
+ --status-dot-size: 8px;
2068
+ --status-typing-width: 12px;
2069
+ --status-typing-height: 8px;
2070
+ --status-typing-dot-size: 2px;
2071
+ --status-typing-gap: 1px;
2072
+ --menu-item-padding-vertical: 14px;
2073
+ --menu-item-padding-horizontal: 20px;
2074
+ --menu-item-min-height: 44px;
2075
+ --menu-item-icon-size: 20px;
2076
+ --menu-item-icon-svg-size: 18px;
2077
+ --menu-item-icon-margin: 16px;
2078
+ --menu-item-disabled-opacity: 0.5;
2079
+ --menu-item-text: #333333;
2080
+ --menu-item-icon: #666666;
2081
+ --menu-item-hover-bg: #f5f5f5;
2082
+ --menu-item-active-bg: #e8e8e8;
2083
+ --menu-item-destructive: #f44336;
2084
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
2085
+ --animation-slide-distance: 10px;
2086
+ --empty-state-mobile-height: 150px;
2087
+ }
2088
+
2089
+ .MessageBubble-module_messageWrapper__SMMZu {
2090
+ display: flex;
2091
+ width: 100%;
2092
+ gap: 10px;
2093
+ }
2094
+
2095
+ .MessageBubble-module_messageContainer__KnPtl {
2096
+ display: flex;
2097
+ flex-direction: column;
2098
+ max-width: 70%;
2099
+ min-width: 0;
2100
+ position: relative;
2101
+ }
2102
+
2103
+ .MessageBubble-module_senderName__h5pr2 {
2104
+ font-family: "Inter", sans-serif !important;
2105
+ font-weight: 600 !important;
2106
+ font-style: normal !important;
2107
+ font-size: 14px !important;
2108
+ line-height: 150% !important;
2109
+ letter-spacing: 0 !important;
2110
+ color: var(--text-secondary) !important;
2111
+ margin-bottom: var(--spacing-xs) !important;
2112
+ }
2113
+
2114
+ .MessageBubble-module_messageBubble__Vu3D- {
2115
+ padding: var(--spacing-sm) var(--spacing-md);
2116
+ font-family: "Inter", sans-serif;
2117
+ font-weight: 400;
2118
+ font-style: normal;
2119
+ font-size: 14px;
2120
+ line-height: 150%;
2121
+ letter-spacing: 0;
2122
+ word-wrap: break-word;
2123
+ position: relative;
2124
+ max-width: 100%;
2125
+ width: fit-content;
2126
+ }
2127
+
2128
+ .MessageBubble-module_messageText__D70bc {
2129
+ font-family: "Inter", sans-serif;
2130
+ font-weight: 400;
2131
+ font-style: normal;
2132
+ font-size: 14px;
2133
+ line-height: 150%;
2134
+ letter-spacing: 0;
2135
+ margin: 0;
2136
+ white-space: pre-wrap;
2137
+ word-break: break-word;
2138
+ }
2139
+
2140
+ .MessageBubble-module_messageWrapperLeft__xv7-7 {
2141
+ justify-content: flex-start;
2142
+ }
2143
+ .MessageBubble-module_messageWrapperLeft__xv7-7 .MessageBubble-module_messageContainer__KnPtl {
2144
+ align-items: flex-start;
2145
+ }
2146
+ .MessageBubble-module_messageWrapperLeft__xv7-7 .MessageBubble-module_messageBubble__Vu3D- {
2147
+ background-color: var(--message-agent-bg);
2148
+ color: var(--message-agent-text);
2149
+ border-radius: 0 var(--radius-md) var(--radius-md) var(--radius-md);
2150
+ }
2151
+
2152
+ .MessageBubble-module_messageWrapperRight__CUlgL {
2153
+ justify-content: flex-end;
2154
+ }
2155
+ .MessageBubble-module_messageWrapperRight__CUlgL .MessageBubble-module_messageContainer__KnPtl {
2156
+ align-items: flex-end;
2157
+ }
2158
+ .MessageBubble-module_messageWrapperRight__CUlgL .MessageBubble-module_messageBubble__Vu3D- {
2159
+ background-color: var(--message-user-bg);
2160
+ color: var(--message-user-text);
2161
+ border-radius: var(--radius-md) 0 var(--radius-md) var(--radius-md);
2162
+ }
2163
+
2164
+ .MessageBubble-module_messageAvatar__sqfKI {
2165
+ width: 32px;
2166
+ height: 32px;
2167
+ border-radius: 50%;
2168
+ display: flex;
2169
+ align-items: center;
2170
+ justify-content: center;
2171
+ font-weight: bold;
2172
+ color: black;
2173
+ font-size: 12px;
2174
+ font-weight: 500;
2175
+ position: relative;
2176
+ background: #EAEAEB;
2177
+ /* For absolute badge inside */
2178
+ }
2179
+
2180
+ .MessageBubble-module_messageBubble__Vu3D- {
2181
+ display: inline-block;
2182
+ padding: var(--spacing-md) var(--spacing-lg);
2183
+ border-radius: var(--radius-lg);
2184
+ word-wrap: break-word;
2185
+ position: relative;
2186
+ font-family: var(--font-family);
2187
+ line-height: 1.4;
2188
+ max-width: 100%;
2189
+ }
2190
+
2191
+ .MessageBubble-module_userMessage__t1sZf {
2192
+ background-color: var(--message-user-bg);
2193
+ color: var(--message-user-text);
2194
+ margin-left: auto;
2195
+ }
2196
+
2197
+ .MessageBubble-module_agentMessage__tCe5z {
2198
+ background-color: var(--message-agent-bg);
2199
+ color: var(--message-agent-text);
2200
+ border: 1px solid var(--border-light);
2201
+ }
2202
+
2203
+ .MessageBubble-module_messageText__D70bc {
2204
+ font-size: var(--font-size-md);
2205
+ line-height: 1.4;
2206
+ margin: 0;
2207
+ white-space: pre-wrap;
2208
+ word-break: break-word;
2209
+ }
2210
+
2211
+ .MessageBubble-module_timestamp__g--Ep {
2212
+ font-size: var(--font-size-xs);
2213
+ color: var(--text-muted);
2214
+ margin-top: var(--spacing-xs);
2215
+ font-weight: var(--font-weight-normal);
2216
+ position: relative;
2217
+ cursor: default;
2218
+ }
2219
+
2220
+ .MessageBubble-module_timestamp__g--Ep:hover::after,
2221
+ .MessageBubble-module_timestamp__g--Ep:focus::after,
2222
+ .MessageBubble-module_timestamp__g--Ep:focus-visible::after {
2223
+ content: attr(aria-label);
2224
+ position: absolute;
2225
+ background: var(--tooltip-bg, #f3f4f6);
2226
+ color: var(--tooltip-text, #111827);
2227
+ padding: 6px 8px;
2228
+ border-radius: 4px;
2229
+ font-size: 12px;
2230
+ white-space: nowrap;
2231
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
2232
+ z-index: 40;
2233
+ top: -40px;
2234
+ transform: none;
2235
+ }
2236
+
2237
+ .MessageBubble-module_timestampLeft__JhYDx:hover::after,
2238
+ .MessageBubble-module_timestampLeft__JhYDx:focus::after,
2239
+ .MessageBubble-module_timestampLeft__JhYDx:focus-visible::after {
2240
+ left: 0;
2241
+ right: auto;
2242
+ }
2243
+
2244
+ .MessageBubble-module_timestampRight__q-wih:hover::after,
2245
+ .MessageBubble-module_timestampRight__q-wih:focus::after,
2246
+ .MessageBubble-module_timestampRight__q-wih:focus-visible::after {
2247
+ right: 0;
2248
+ left: auto;
2249
+ }
2250
+
2251
+ .MessageBubble-module_resendContainer__TXscy {
2252
+ margin-top: var(--spacing-xs);
2253
+ display: flex;
2254
+ justify-content: flex-end;
2255
+ align-items: center;
2256
+ }
2257
+
2258
+ .MessageBubble-module_resendButton__h2uAL {
2259
+ background: transparent;
2260
+ border: none;
2261
+ color: var(--chat-primary-color);
2262
+ cursor: pointer;
2263
+ font-size: 16px;
2264
+ padding: 4px 6px;
2265
+ border-radius: 4px;
2266
+ }
2267
+
2268
+ .MessageBubble-module_resendButton__h2uAL:hover {
2269
+ background: rgba(var(--chat-primary-color-rgb), 0.08);
2270
+ }
2271
+
2272
+ .MessageBubble-module_resendText__wYm2L {
2273
+ color: var(--text-muted);
2274
+ font-size: 12px;
2275
+ margin-left: 8px;
2276
+ cursor: pointer;
2277
+ }
2278
+
2279
+ .MessageBubble-module_resendText__wYm2L:focus,
2280
+ .MessageBubble-module_resendText__wYm2L:active {
2281
+ outline: none;
2282
+ text-decoration: underline;
2283
+ }
2284
+
2285
+ @keyframes MessageBubble-module_fadeInUp__ZpGRA {
2286
+ from {
2287
+ opacity: 0;
2288
+ transform: translateY(var(--animation-slide-distance));
2289
+ }
2290
+ to {
2291
+ opacity: 1;
2292
+ transform: translateY(0);
2293
+ }
2294
+ }
2295
+ @media (max-width: var(--mobile-breakpoint)) {
2296
+ .MessageBubble-module_messageContainer__KnPtl {
2297
+ max-width: 85%;
2298
+ }
2299
+ .MessageBubble-module_messageBubble__Vu3D- {
2300
+ padding: var(--spacing-sm) var(--spacing-md);
2301
+ }
2302
+ }
2303
+ :root {
2304
+ --chat-primary-color: #FA5B4C;
2305
+ --chat-primary-color-rgb: 250, 91, 76;
2306
+ --chat-bg-color: #ffffff;
2307
+ --chat-secondary-color: #f5f5f5;
2308
+ --message-user-bg: var(--chat-primary-color);
2309
+ --message-user-text: #ffffff;
2310
+ --message-agent-bg: var(--chat-secondary-color);
2311
+ --message-agent-text: #333333;
2312
+ --header-bg: var(--chat-bg-color);
2313
+ --header-text: #333333;
2314
+ --header-border: #e0e0e0;
2315
+ --input-bg: var(--chat-bg-color);
2316
+ --input-border: #e0e0e0;
2317
+ --input-focus-border: var(--chat-primary-color);
2318
+ --input-text: #333333;
2319
+ --input-placeholder: #999999;
2320
+ --button-primary-bg: var(--chat-primary-color);
2321
+ --button-primary-text: #ffffff;
2322
+ --button-hover-opacity: 0.9;
2323
+ --status-online: #4caf50;
2324
+ --status-offline: #9e9e9e;
2325
+ --status-typing: #ff9800;
2326
+ --text-primary: #333333;
2327
+ --text-secondary: #666666;
2328
+ --text-muted: #999999;
2329
+ --border-light: #e0e0e0;
2330
+ --shadow-light: rgba(0, 0, 0, 0.1);
2331
+ --shadow-medium: rgba(0, 0, 0, 0.15);
2332
+ --spacing-xs: 4px;
2333
+ --spacing-sm: 8px;
2334
+ --spacing-md: 12px;
2335
+ --spacing-lg: 16px;
2336
+ --spacing-xl: 20px;
2337
+ --spacing-xxl: 24px;
2338
+ --radius-sm: 4px;
2339
+ --radius-md: 8px;
2340
+ --radius-lg: 12px;
2341
+ --radius-xl: 16px;
2342
+ --radius-full: 50%;
2343
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
2344
+ --font-size-xs: 11px;
2345
+ --font-size-sm: 12px;
2346
+ --font-size-md: 14px;
2347
+ --font-size-lg: 16px;
2348
+ --font-weight-normal: 400;
2349
+ --font-weight-medium: 500;
2350
+ --font-weight-semibold: 600;
2351
+ --transition-fast: 0.15s ease-in-out;
2352
+ --transition-normal: 0.3s ease-in-out;
2353
+ --widget-min-width: 300px;
2354
+ --widget-min-height: 400px;
2355
+ --widget-mobile-min-width: 280px;
2356
+ --widget-mobile-min-height: 350px;
2357
+ --widget-mobile-max-width: 350px;
2358
+ --widget-mobile-max-height: 500px;
2359
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
2360
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
2361
+ --state-initializing-bg: #f8f9fa;
2362
+ --state-initializing-text: #6c757d;
2363
+ --state-error-bg: #fff5f5;
2364
+ --state-error-border: #fed7d7;
2365
+ --state-error-title: #e53e3e;
2366
+ --state-error-text: #744210;
2367
+ --state-error-details-bg: #f7f7f7;
2368
+ --state-waiting-bg: #f0f8ff;
2369
+ --state-waiting-text: #4a90e2;
2370
+ --spinner-size: 40px;
2371
+ --spinner-border-width: 3px;
2372
+ --toggle-button-size: 60px;
2373
+ --toggle-icon-size: 24px;
2374
+ --mobile-breakpoint: 768px;
2375
+ --mobile-spacing: 10px;
2376
+ --mobile-offset: 20px;
2377
+ --mobile-top-offset: 100px;
2378
+ --input-height: 48px;
2379
+ --input-disabled-opacity: 0.6;
2380
+ --header-height: 63px;
2381
+ --text-input: #1F2937;
2382
+ --text-powered-by: #6B7280;
2383
+ --text-encrypted: #6B7280;
2384
+ --dropdown-min-width: 200px;
2385
+ --dropdown-max-width: 280px;
2386
+ --dropdown-mobile-max-width: 250px;
2387
+ --dropdown-offset: 12px;
2388
+ --dropdown-z-index: 1000;
2389
+ --status-dot-size: 8px;
2390
+ --status-typing-width: 12px;
2391
+ --status-typing-height: 8px;
2392
+ --status-typing-dot-size: 2px;
2393
+ --status-typing-gap: 1px;
2394
+ --menu-item-padding-vertical: 14px;
2395
+ --menu-item-padding-horizontal: 20px;
2396
+ --menu-item-min-height: 44px;
2397
+ --menu-item-icon-size: 20px;
2398
+ --menu-item-icon-svg-size: 18px;
2399
+ --menu-item-icon-margin: 16px;
2400
+ --menu-item-disabled-opacity: 0.5;
2401
+ --menu-item-text: #333333;
2402
+ --menu-item-icon: #666666;
2403
+ --menu-item-hover-bg: #f5f5f5;
2404
+ --menu-item-active-bg: #e8e8e8;
2405
+ --menu-item-destructive: #f44336;
2406
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
2407
+ --animation-slide-distance: 10px;
2408
+ --empty-state-mobile-height: 150px;
2409
+ }
2410
+
2411
+ .LoadingIndicator-module_loadingIndicator__phmyb {
2412
+ display: flex;
2413
+ align-items: center;
2414
+ gap: var(--spacing-sm);
2415
+ max-width: 100%;
2416
+ width: fit-content;
2417
+ overflow: hidden;
2418
+ position: relative;
2419
+ }
2420
+ .LoadingIndicator-module_loadingIndicator__phmyb.LoadingIndicator-module_small__5rLUm {
2421
+ --indicator-size: 16px;
2422
+ --dot-size: 3px;
2423
+ --avatar-size: 24px;
2424
+ --bubble-padding: var(--spacing-sm);
2425
+ }
2426
+ .LoadingIndicator-module_loadingIndicator__phmyb.LoadingIndicator-module_medium__Mrmmz {
2427
+ --indicator-size: 20px;
2428
+ --dot-size: 4px;
2429
+ --avatar-size: 32px;
2430
+ --bubble-padding: var(--spacing-md);
2431
+ }
2432
+ .LoadingIndicator-module_loadingIndicator__phmyb.LoadingIndicator-module_large__f-NZK {
2433
+ --indicator-size: 24px;
2434
+ --dot-size: 5px;
2435
+ --avatar-size: 40px;
2436
+ --bubble-padding: var(--spacing-lg);
2437
+ }
2438
+
2439
+ .LoadingIndicator-module_typingIndicator__MKD5N {
2440
+ display: flex;
2441
+ align-items: flex-end;
2442
+ gap: var(--spacing-sm);
2443
+ animation: LoadingIndicator-module_fadeInUp__EOj1f 0.3s ease-out;
2444
+ }
2445
+
2446
+ .LoadingIndicator-module_avatar__ENBiM {
2447
+ width: var(--avatar-size);
2448
+ height: var(--avatar-size);
2449
+ background-color: var(--chat-primary-color);
2450
+ border-radius: var(--radius-full);
2451
+ display: flex;
2452
+ align-items: center;
2453
+ justify-content: center;
2454
+ flex-shrink: 0;
2455
+ }
2456
+
2457
+ .LoadingIndicator-module_avatarIcon__b5dcn {
2458
+ color: white;
2459
+ font-size: calc(var(--avatar-size) * 0.5);
2460
+ }
2461
+
2462
+ .LoadingIndicator-module_typingBubble__ZVgpL {
2463
+ background-color: var(--message-agent-bg);
2464
+ border: 1px solid var(--border-light);
2465
+ border-radius: var(--radius-lg);
2466
+ border-bottom-left-radius: var(--spacing-xs);
2467
+ padding: var(--bubble-padding);
2468
+ position: relative;
2469
+ animation: LoadingIndicator-module_bubblePulse__kxvPK 2s infinite ease-in-out;
2470
+ }
2471
+ .LoadingIndicator-module_typingBubble__ZVgpL::before {
2472
+ content: "";
2473
+ position: absolute;
2474
+ left: -8px;
2475
+ bottom: 0;
2476
+ width: 0;
2477
+ height: 0;
2478
+ border-style: solid;
2479
+ border-width: 0 0 8px 8px;
2480
+ border-color: transparent transparent var(--message-agent-bg) transparent;
2481
+ }
2482
+ .LoadingIndicator-module_typingBubble__ZVgpL::after {
2483
+ content: "";
2484
+ position: absolute;
2485
+ left: -9px;
2486
+ bottom: 0;
2487
+ width: 0;
2488
+ height: 0;
2489
+ border-style: solid;
2490
+ border-width: 0 0 8px 8px;
2491
+ border-color: transparent transparent var(--border-light) transparent;
2492
+ z-index: -1;
2493
+ }
2494
+
2495
+ .LoadingIndicator-module_typingDots__l592e {
2496
+ display: flex;
2497
+ gap: 2px;
2498
+ align-items: center;
2499
+ }
2500
+ .LoadingIndicator-module_typingDots__l592e span {
2501
+ width: var(--dot-size);
2502
+ height: var(--dot-size);
2503
+ background-color: var(--text-secondary);
2504
+ border-radius: var(--radius-full);
2505
+ animation: LoadingIndicator-module_typingDot__JTeLv 1.4s infinite;
2506
+ }
2507
+ .LoadingIndicator-module_typingDots__l592e span:nth-child(1) {
2508
+ animation-delay: 0s;
2509
+ }
2510
+ .LoadingIndicator-module_typingDots__l592e span:nth-child(2) {
2511
+ animation-delay: 0.2s;
2512
+ }
2513
+ .LoadingIndicator-module_typingDots__l592e span:nth-child(3) {
2514
+ animation-delay: 0.4s;
2515
+ }
2516
+
2517
+ .LoadingIndicator-module_dotsIndicator__vO9tb {
2518
+ display: flex;
2519
+ gap: var(--spacing-xs);
2520
+ align-items: center;
2521
+ }
2522
+ .LoadingIndicator-module_dotsIndicator__vO9tb span {
2523
+ width: var(--dot-size);
2524
+ height: var(--dot-size);
2525
+ background-color: var(--chat-primary-color);
2526
+ border-radius: var(--radius-full);
2527
+ animation: LoadingIndicator-module_dotPulse__qCfXV 1.4s infinite;
2528
+ }
2529
+ .LoadingIndicator-module_dotsIndicator__vO9tb span:nth-child(1) {
2530
+ animation-delay: 0s;
2531
+ }
2532
+ .LoadingIndicator-module_dotsIndicator__vO9tb span:nth-child(2) {
2533
+ animation-delay: 0.2s;
2534
+ }
2535
+ .LoadingIndicator-module_dotsIndicator__vO9tb span:nth-child(3) {
2536
+ animation-delay: 0.4s;
2537
+ }
2538
+
2539
+ .LoadingIndicator-module_spinnerIndicator__u9Kqq {
2540
+ display: flex;
2541
+ align-items: center;
2542
+ justify-content: center;
2543
+ }
2544
+
2545
+ .LoadingIndicator-module_spinner__zyuLO {
2546
+ width: var(--indicator-size);
2547
+ height: var(--indicator-size);
2548
+ border: 2px solid var(--border-light);
2549
+ border-top: 2px solid var(--chat-primary-color);
2550
+ border-radius: var(--radius-full);
2551
+ animation: LoadingIndicator-module_spin__2DdOr 1s linear infinite;
2552
+ }
2553
+
2554
+ .LoadingIndicator-module_loadingText__9cTaI {
2555
+ font-size: var(--font-size-sm);
2556
+ color: var(--text-secondary);
2557
+ font-weight: var(--font-weight-medium);
2558
+ }
2559
+
2560
+ @keyframes LoadingIndicator-module_fadeInUp__EOj1f {
2561
+ from {
2562
+ opacity: 0;
2563
+ transform: translateY(10px);
2564
+ }
2565
+ to {
2566
+ opacity: 1;
2567
+ transform: translateY(0);
2568
+ }
2569
+ }
2570
+ @keyframes LoadingIndicator-module_typingDot__JTeLv {
2571
+ 0%, 60%, 100% {
2572
+ transform: translateY(0);
2573
+ opacity: 0.4;
2574
+ }
2575
+ 30% {
2576
+ transform: translateY(-4px);
2577
+ opacity: 1;
2578
+ }
2579
+ }
2580
+ @keyframes LoadingIndicator-module_dotPulse__qCfXV {
2581
+ 0%, 60%, 100% {
2582
+ transform: scale(1);
2583
+ opacity: 0.4;
2584
+ }
2585
+ 30% {
2586
+ transform: scale(1.2);
2587
+ opacity: 1;
2588
+ }
2589
+ }
2590
+ @keyframes LoadingIndicator-module_bubblePulse__kxvPK {
2591
+ 0%, 100% {
2592
+ opacity: 1;
2593
+ }
2594
+ 50% {
2595
+ opacity: 0.8;
2596
+ }
2597
+ }
2598
+ @keyframes LoadingIndicator-module_spin__2DdOr {
2599
+ from {
2600
+ transform: rotate(0deg);
2601
+ }
2602
+ to {
2603
+ transform: rotate(360deg);
2604
+ }
2605
+ }
2606
+ .MessageInput-module_messageInputContainer__THG-x {
2607
+ width: 100%;
2608
+ box-sizing: border-box;
2609
+ padding: 8px 12px;
2610
+ }
2611
+
2612
+ .MessageInput-module_messageInputForm__vjBfB {
2613
+ width: 100%;
2614
+ }
2615
+
2616
+ .MessageInput-module_inputWrapper__ETe-C {
2617
+ display: flex;
2618
+ align-items: center;
2619
+ background-color: var(--input-bg);
2620
+ border: 1px solid var(--input-border);
2621
+ border-radius: var(--radius-md);
2622
+ padding: 0;
2623
+ transition: border-color var(--transition-fast);
2624
+ height: var(--input-height);
2625
+ overflow: hidden;
2626
+ }
2627
+ .MessageInput-module_inputWrapper__ETe-C:focus-within {
2628
+ border-color: var(--input-border);
2629
+ }
2630
+
2631
+ .MessageInput-module_messageInput__Z-zjf {
2632
+ flex: 1;
2633
+ border: none;
2634
+ background: transparent;
2635
+ padding: 8px var(--spacing-lg);
2636
+ font-size: var(--font-size-md);
2637
+ color: var(--text-input);
2638
+ font-family: var(--font-family);
2639
+ line-height: 1.4;
2640
+ outline: none;
2641
+ height: 24px;
2642
+ overflow-y: auto;
2643
+ /* Hide scrollbar for Chrome, Safari and Opera */
2644
+ }
2645
+ .MessageInput-module_messageInput__Z-zjf::-webkit-scrollbar {
2646
+ display: none;
2647
+ }
2648
+ .MessageInput-module_messageInput__Z-zjf {
2649
+ /* Hide scrollbar for IE, Edge and Firefox */
2650
+ -ms-overflow-style: none;
2651
+ scrollbar-width: none;
2652
+ }
2653
+ .MessageInput-module_messageInput__Z-zjf::placeholder {
2654
+ color: var(--input-placeholder);
2655
+ }
2656
+ .MessageInput-module_messageInput__Z-zjf.MessageInput-module_disabled__PK1Rz {
2657
+ opacity: var(--input-disabled-opacity);
2658
+ cursor: not-allowed;
2659
+ }
2660
+
2661
+ .MessageInput-module_sendButton__HLC4z {
2662
+ display: flex;
2663
+ align-items: center;
2664
+ justify-content: center;
2665
+ width: var(--input-height);
2666
+ height: var(--input-height);
2667
+ background-color: var(--chat-primary-color);
2668
+ border: none;
2669
+ border-radius: 0;
2670
+ cursor: pointer;
2671
+ transition: opacity var(--transition-fast);
2672
+ padding: var(--spacing-sm);
2673
+ }
2674
+ .MessageInput-module_sendButton__HLC4z:hover {
2675
+ opacity: var(--button-hover-opacity);
2676
+ }
2677
+ .MessageInput-module_sendButton__HLC4z:active {
2678
+ opacity: 0.8;
2679
+ }
2680
+ .MessageInput-module_sendButton__HLC4z:focus, .MessageInput-module_sendButton__HLC4z:focus-visible {
2681
+ outline: none;
2682
+ box-shadow: none;
2683
+ }
2684
+
2685
+ .MessageInput-module_sendIcon__9IKHz {
2686
+ width: 100%;
2687
+ height: 100%;
2688
+ display: block;
2689
+ }
2690
+
2691
+ .MessageInput-module_poweredBy__jV9dG {
2692
+ font-family: "Urbanist", sans-serif;
2693
+ font-weight: 400;
2694
+ font-size: 12px;
2695
+ line-height: 150%;
2696
+ letter-spacing: 0;
2697
+ text-align: center;
2698
+ color: var(--text-powered-by);
2699
+ display: flex;
2700
+ align-items: center;
2701
+ justify-content: center;
2702
+ gap: var(--spacing-xs);
2703
+ padding-top: var(--spacing-sm);
2704
+ }
2705
+
2706
+ .MessageInput-module_smarterEmr__W1-SZ {
2707
+ color: var(--chat-primary-color);
2708
+ font-weight: 400;
2709
+ }
2710
+
2711
+ .MessageInput-module_encrypted__1zrE9 {
2712
+ color: var(--text-encrypted);
2713
+ font-weight: 400;
2714
+ }
2715
+ .ChatHeader-module_chatHeader__PKeNX {
2716
+ background-color: var(--header-bg);
2717
+ border-bottom: 1px solid var(--header-border);
2718
+ padding: var(--spacing-md) var(--spacing-lg);
2719
+ height: 63px;
2720
+ box-sizing: border-box;
2721
+ width: 100%;
2722
+ }
2723
+
2724
+ .ChatHeader-module_headerContent__aUGqQ {
2725
+ display: flex;
2726
+ align-items: center;
2727
+ justify-content: space-between;
2728
+ height: 100%;
2729
+ }
2730
+
2731
+ .ChatHeader-module_leftSection__rch5v {
2732
+ display: flex;
2733
+ align-items: center;
2734
+ gap: var(--spacing-md);
2735
+ color: var(--chat-primary-color);
2736
+ }
2737
+
2738
+ .ChatHeader-module_leftSection__rch5v svg {
2739
+ background-color: rgba(var(--chat-primary-color-rgb), 0.1);
2740
+ border-radius: var(--radius-sm, 4px);
2741
+ padding: var(--spacing-sm);
2742
+ width: 32px;
2743
+ height: 32px;
2744
+ box-sizing: border-box;
2745
+ transition: transform 160ms ease, background-color 160ms ease, opacity 160ms ease;
2746
+ }
2747
+
2748
+ .ChatHeader-module_title__RNVxR {
2749
+ font-size: var(--font-size-lg);
2750
+ font-weight: var(--font-weight-semibold);
2751
+ color: var(--header-text);
2752
+ margin: 0;
2753
+ line-height: var(--spacing-xxl);
2754
+ }
2755
+
2756
+ .ChatHeader-module_headerActions__2Q0dr {
2757
+ display: flex;
2758
+ align-items: center;
2759
+ margin-left: auto;
2760
+ }
2761
+
2762
+ .ChatHeader-module_menuButtonContainer__n-Yl1 {
2763
+ position: relative;
2764
+ }
2765
+
2766
+ .ChatHeader-module_actionButton__MXRK1 {
2767
+ background-color: rgba(var(--chat-primary-color-rgb), 0.1);
2768
+ border: none;
2769
+ padding: var(--spacing-sm);
2770
+ margin-right: var(--spacing-xs);
2771
+ cursor: pointer;
2772
+ display: flex;
2773
+ align-items: center;
2774
+ justify-content: center;
2775
+ width: 32px;
2776
+ height: 32px;
2777
+ border-radius: var(--radius-sm, 4px);
2778
+ color: var(--chat-primary-color);
2779
+ transition: transform 160ms ease, background-color 160ms ease, opacity 160ms ease;
2780
+ }
2781
+
2782
+ .ChatHeader-module_actionButton__MXRK1:hover {
2783
+ opacity: 1;
2784
+ transform: scale(1.06);
2785
+ background-color: rgba(var(--chat-primary-color-rgb), 0.12);
2786
+ }
2787
+
2788
+ .ChatHeader-module_leftSection__rch5v svg:hover {
2789
+ opacity: 1;
2790
+ transform: scale(1.06);
2791
+ }
2792
+
2793
+ .ChatHeader-module_menuButtonContainer__n-Yl1 button svg,
2794
+ .ChatHeader-module_headerActions__2Q0dr button svg {
2795
+ transition: opacity 160ms ease, transform 160ms ease;
2796
+ }
2797
+ :root {
2798
+ --chat-primary-color: #FA5B4C;
2799
+ --chat-primary-color-rgb: 250, 91, 76;
2800
+ --chat-bg-color: #ffffff;
2801
+ --chat-secondary-color: #f5f5f5;
2802
+ --message-user-bg: var(--chat-primary-color);
2803
+ --message-user-text: #ffffff;
2804
+ --message-agent-bg: var(--chat-secondary-color);
2805
+ --message-agent-text: #333333;
2806
+ --header-bg: var(--chat-bg-color);
2807
+ --header-text: #333333;
2808
+ --header-border: #e0e0e0;
2809
+ --input-bg: var(--chat-bg-color);
2810
+ --input-border: #e0e0e0;
2811
+ --input-focus-border: var(--chat-primary-color);
2812
+ --input-text: #333333;
2813
+ --input-placeholder: #999999;
2814
+ --button-primary-bg: var(--chat-primary-color);
2815
+ --button-primary-text: #ffffff;
2816
+ --button-hover-opacity: 0.9;
2817
+ --status-online: #4caf50;
2818
+ --status-offline: #9e9e9e;
2819
+ --status-typing: #ff9800;
2820
+ --text-primary: #333333;
2821
+ --text-secondary: #666666;
2822
+ --text-muted: #999999;
2823
+ --border-light: #e0e0e0;
2824
+ --shadow-light: rgba(0, 0, 0, 0.1);
2825
+ --shadow-medium: rgba(0, 0, 0, 0.15);
2826
+ --spacing-xs: 4px;
2827
+ --spacing-sm: 8px;
2828
+ --spacing-md: 12px;
2829
+ --spacing-lg: 16px;
2830
+ --spacing-xl: 20px;
2831
+ --spacing-xxl: 24px;
2832
+ --radius-sm: 4px;
2833
+ --radius-md: 8px;
2834
+ --radius-lg: 12px;
2835
+ --radius-xl: 16px;
2836
+ --radius-full: 50%;
2837
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
2838
+ --font-size-xs: 11px;
2839
+ --font-size-sm: 12px;
2840
+ --font-size-md: 14px;
2841
+ --font-size-lg: 16px;
2842
+ --font-weight-normal: 400;
2843
+ --font-weight-medium: 500;
2844
+ --font-weight-semibold: 600;
2845
+ --transition-fast: 0.15s ease-in-out;
2846
+ --transition-normal: 0.3s ease-in-out;
2847
+ --widget-min-width: 300px;
2848
+ --widget-min-height: 400px;
2849
+ --widget-mobile-min-width: 280px;
2850
+ --widget-mobile-min-height: 350px;
2851
+ --widget-mobile-max-width: 350px;
2852
+ --widget-mobile-max-height: 500px;
2853
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
2854
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
2855
+ --state-initializing-bg: #f8f9fa;
2856
+ --state-initializing-text: #6c757d;
2857
+ --state-error-bg: #fff5f5;
2858
+ --state-error-border: #fed7d7;
2859
+ --state-error-title: #e53e3e;
2860
+ --state-error-text: #744210;
2861
+ --state-error-details-bg: #f7f7f7;
2862
+ --state-waiting-bg: #f0f8ff;
2863
+ --state-waiting-text: #4a90e2;
2864
+ --spinner-size: 40px;
2865
+ --spinner-border-width: 3px;
2866
+ --toggle-button-size: 60px;
2867
+ --toggle-icon-size: 24px;
2868
+ --mobile-breakpoint: 768px;
2869
+ --mobile-spacing: 10px;
2870
+ --mobile-offset: 20px;
2871
+ --mobile-top-offset: 100px;
2872
+ --input-height: 48px;
2873
+ --input-disabled-opacity: 0.6;
2874
+ --header-height: 63px;
2875
+ --text-input: #1F2937;
2876
+ --text-powered-by: #6B7280;
2877
+ --text-encrypted: #6B7280;
2878
+ --dropdown-min-width: 200px;
2879
+ --dropdown-max-width: 280px;
2880
+ --dropdown-mobile-max-width: 250px;
2881
+ --dropdown-offset: 12px;
2882
+ --dropdown-z-index: 1000;
2883
+ --status-dot-size: 8px;
2884
+ --status-typing-width: 12px;
2885
+ --status-typing-height: 8px;
2886
+ --status-typing-dot-size: 2px;
2887
+ --status-typing-gap: 1px;
2888
+ --menu-item-padding-vertical: 14px;
2889
+ --menu-item-padding-horizontal: 20px;
2890
+ --menu-item-min-height: 44px;
2891
+ --menu-item-icon-size: 20px;
2892
+ --menu-item-icon-svg-size: 18px;
2893
+ --menu-item-icon-margin: 16px;
2894
+ --menu-item-disabled-opacity: 0.5;
2895
+ --menu-item-text: #333333;
2896
+ --menu-item-icon: #666666;
2897
+ --menu-item-hover-bg: #f5f5f5;
2898
+ --menu-item-active-bg: #e8e8e8;
2899
+ --menu-item-destructive: #f44336;
2900
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
2901
+ --animation-slide-distance: 10px;
2902
+ --empty-state-mobile-height: 150px;
2903
+ }
2904
+
2905
+ .MenuItem-module_menuItem__QpfB0 {
2906
+ display: flex;
2907
+ align-items: center;
2908
+ width: 100%;
2909
+ padding: var(--menu-item-padding-vertical) var(--menu-item-padding-horizontal);
2910
+ background: transparent;
2911
+ border: none;
2912
+ cursor: pointer;
2913
+ font-family: var(--font-family);
2914
+ font-size: var(--font-size-md);
2915
+ font-weight: var(--font-weight-normal);
2916
+ color: var(--menu-item-text);
2917
+ text-align: left;
2918
+ transition: background-color var(--transition-fast);
2919
+ white-space: nowrap;
2920
+ min-height: var(--menu-item-min-height);
2921
+ }
2922
+ .MenuItem-module_menuItem__QpfB0:hover:not(.MenuItem-module_disabled__ZQrfJ) {
2923
+ background-color: var(--menu-item-hover-bg);
2924
+ }
2925
+ .MenuItem-module_menuItem__QpfB0:active:not(.MenuItem-module_disabled__ZQrfJ) {
2926
+ background-color: var(--menu-item-active-bg);
2927
+ }
2928
+ .MenuItem-module_menuItem__QpfB0.MenuItem-module_destructive__zWngt {
2929
+ color: var(--menu-item-destructive);
2930
+ }
2931
+ .MenuItem-module_menuItem__QpfB0.MenuItem-module_destructive__zWngt:hover:not(.MenuItem-module_disabled__ZQrfJ) {
2932
+ background-color: var(--menu-item-destructive-hover-bg);
2933
+ }
2934
+ .MenuItem-module_menuItem__QpfB0.MenuItem-module_destructive__zWngt .MenuItem-module_icon__KFOxe {
2935
+ color: var(--menu-item-destructive);
2936
+ }
2937
+ .MenuItem-module_menuItem__QpfB0.MenuItem-module_disabled__ZQrfJ {
2938
+ opacity: var(--menu-item-disabled-opacity);
2939
+ cursor: not-allowed;
2940
+ }
2941
+ .MenuItem-module_menuItem__QpfB0:focus-visible {
2942
+ outline: none;
2943
+ background-color: var(--menu-item-hover-bg);
2944
+ }
2945
+ .MenuItem-module_menuItem__QpfB0:focus {
2946
+ outline: none;
2947
+ background-color: var(--menu-item-hover-bg);
2948
+ }
2949
+
2950
+ .MenuItem-module_icon__KFOxe {
2951
+ display: flex;
2952
+ align-items: center;
2953
+ justify-content: center;
2954
+ width: var(--menu-item-icon-size);
2955
+ height: var(--menu-item-icon-size);
2956
+ margin-right: var(--menu-item-icon-margin);
2957
+ color: var(--menu-item-icon);
2958
+ flex-shrink: 0;
2959
+ }
2960
+ .MenuItem-module_icon__KFOxe svg {
2961
+ width: var(--menu-item-icon-svg-size);
2962
+ height: var(--menu-item-icon-svg-size);
2963
+ }
2964
+
2965
+ .MenuItem-module_label__QvnsS {
2966
+ flex: 1;
2967
+ font-weight: var(--font-weight-normal);
2968
+ line-height: 1.4;
2969
+ color: var(--menu-item-text);
2970
+ font-size: var(--font-size-md);
2971
+ }
2972
+ :root {
2973
+ --chat-primary-color: #FA5B4C;
2974
+ --chat-primary-color-rgb: 250, 91, 76;
2975
+ --chat-bg-color: #ffffff;
2976
+ --chat-secondary-color: #f5f5f5;
2977
+ --message-user-bg: var(--chat-primary-color);
2978
+ --message-user-text: #ffffff;
2979
+ --message-agent-bg: var(--chat-secondary-color);
2980
+ --message-agent-text: #333333;
2981
+ --header-bg: var(--chat-bg-color);
2982
+ --header-text: #333333;
2983
+ --header-border: #e0e0e0;
2984
+ --input-bg: var(--chat-bg-color);
2985
+ --input-border: #e0e0e0;
2986
+ --input-focus-border: var(--chat-primary-color);
2987
+ --input-text: #333333;
2988
+ --input-placeholder: #999999;
2989
+ --button-primary-bg: var(--chat-primary-color);
2990
+ --button-primary-text: #ffffff;
2991
+ --button-hover-opacity: 0.9;
2992
+ --status-online: #4caf50;
2993
+ --status-offline: #9e9e9e;
2994
+ --status-typing: #ff9800;
2995
+ --text-primary: #333333;
2996
+ --text-secondary: #666666;
2997
+ --text-muted: #999999;
2998
+ --border-light: #e0e0e0;
2999
+ --shadow-light: rgba(0, 0, 0, 0.1);
3000
+ --shadow-medium: rgba(0, 0, 0, 0.15);
3001
+ --spacing-xs: 4px;
3002
+ --spacing-sm: 8px;
3003
+ --spacing-md: 12px;
3004
+ --spacing-lg: 16px;
3005
+ --spacing-xl: 20px;
3006
+ --spacing-xxl: 24px;
3007
+ --radius-sm: 4px;
3008
+ --radius-md: 8px;
3009
+ --radius-lg: 12px;
3010
+ --radius-xl: 16px;
3011
+ --radius-full: 50%;
3012
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
3013
+ --font-size-xs: 11px;
3014
+ --font-size-sm: 12px;
3015
+ --font-size-md: 14px;
3016
+ --font-size-lg: 16px;
3017
+ --font-weight-normal: 400;
3018
+ --font-weight-medium: 500;
3019
+ --font-weight-semibold: 600;
3020
+ --transition-fast: 0.15s ease-in-out;
3021
+ --transition-normal: 0.3s ease-in-out;
3022
+ --widget-min-width: 300px;
3023
+ --widget-min-height: 400px;
3024
+ --widget-mobile-min-width: 280px;
3025
+ --widget-mobile-min-height: 350px;
3026
+ --widget-mobile-max-width: 350px;
3027
+ --widget-mobile-max-height: 500px;
3028
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
3029
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
3030
+ --state-initializing-bg: #f8f9fa;
3031
+ --state-initializing-text: #6c757d;
3032
+ --state-error-bg: #fff5f5;
3033
+ --state-error-border: #fed7d7;
3034
+ --state-error-title: #e53e3e;
3035
+ --state-error-text: #744210;
3036
+ --state-error-details-bg: #f7f7f7;
3037
+ --state-waiting-bg: #f0f8ff;
3038
+ --state-waiting-text: #4a90e2;
3039
+ --spinner-size: 40px;
3040
+ --spinner-border-width: 3px;
3041
+ --toggle-button-size: 60px;
3042
+ --toggle-icon-size: 24px;
3043
+ --mobile-breakpoint: 768px;
3044
+ --mobile-spacing: 10px;
3045
+ --mobile-offset: 20px;
3046
+ --mobile-top-offset: 100px;
3047
+ --input-height: 48px;
3048
+ --input-disabled-opacity: 0.6;
3049
+ --header-height: 63px;
3050
+ --text-input: #1F2937;
3051
+ --text-powered-by: #6B7280;
3052
+ --text-encrypted: #6B7280;
3053
+ --dropdown-min-width: 200px;
3054
+ --dropdown-max-width: 280px;
3055
+ --dropdown-mobile-max-width: 250px;
3056
+ --dropdown-offset: 12px;
3057
+ --dropdown-z-index: 1000;
3058
+ --status-dot-size: 8px;
3059
+ --status-typing-width: 12px;
3060
+ --status-typing-height: 8px;
3061
+ --status-typing-dot-size: 2px;
3062
+ --status-typing-gap: 1px;
3063
+ --menu-item-padding-vertical: 14px;
3064
+ --menu-item-padding-horizontal: 20px;
3065
+ --menu-item-min-height: 44px;
3066
+ --menu-item-icon-size: 20px;
3067
+ --menu-item-icon-svg-size: 18px;
3068
+ --menu-item-icon-margin: 16px;
3069
+ --menu-item-disabled-opacity: 0.5;
3070
+ --menu-item-text: #333333;
3071
+ --menu-item-icon: #666666;
3072
+ --menu-item-hover-bg: #f5f5f5;
3073
+ --menu-item-active-bg: #e8e8e8;
3074
+ --menu-item-destructive: #f44336;
3075
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
3076
+ --animation-slide-distance: 10px;
3077
+ --empty-state-mobile-height: 150px;
3078
+ }
3079
+
3080
+ .DropdownMenu-module_dropdownMenu__Cq5jV {
3081
+ position: absolute;
3082
+ z-index: var(--dropdown-z-index);
3083
+ min-width: var(--dropdown-min-width);
3084
+ max-width: var(--dropdown-max-width);
3085
+ width: max-content;
3086
+ }
3087
+ .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_bottomRight__vQdqK {
3088
+ top: 100%;
3089
+ right: var(--dropdown-offset);
3090
+ margin-top: var(--spacing-sm);
3091
+ transform: translateX(0);
3092
+ }
3093
+ .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_bottomLeft__zCDkF {
3094
+ top: 100%;
3095
+ left: var(--dropdown-offset);
3096
+ margin-top: var(--spacing-sm);
3097
+ }
3098
+ .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_topRight__HcHr- {
3099
+ bottom: 100%;
3100
+ right: var(--dropdown-offset);
3101
+ margin-bottom: var(--spacing-sm);
3102
+ }
3103
+ .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_topLeft__dE9tT {
3104
+ bottom: 100%;
3105
+ left: var(--dropdown-offset);
3106
+ margin-bottom: var(--spacing-sm);
3107
+ }
3108
+
3109
+ .DropdownMenu-module_menuContent__hKufK {
3110
+ background-color: var(--chat-bg-color);
3111
+ border: 1px solid var(--border-light);
3112
+ border-radius: var(--radius-lg);
3113
+ box-shadow: var(--shadow-widget);
3114
+ padding: var(--spacing-sm) 0;
3115
+ overflow: hidden;
3116
+ }
3117
+
3118
+ @media (max-width: var(--mobile-breakpoint)) {
3119
+ .DropdownMenu-module_dropdownMenu__Cq5jV {
3120
+ min-width: var(--dropdown-min-width);
3121
+ max-width: var(--dropdown-mobile-max-width);
3122
+ }
3123
+ .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_bottomRight__vQdqK, .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_bottomLeft__zCDkF {
3124
+ margin-top: var(--spacing-xs);
3125
+ }
3126
+ .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_topRight__HcHr-, .DropdownMenu-module_dropdownMenu__Cq5jV.DropdownMenu-module_topLeft__dE9tT {
3127
+ margin-bottom: var(--spacing-xs);
3128
+ }
3129
+ }
3130
+ :root {
3131
+ --chat-primary-color: #FA5B4C;
3132
+ --chat-primary-color-rgb: 250, 91, 76;
3133
+ --chat-bg-color: #ffffff;
3134
+ --chat-secondary-color: #f5f5f5;
3135
+ --message-user-bg: var(--chat-primary-color);
3136
+ --message-user-text: #ffffff;
3137
+ --message-agent-bg: var(--chat-secondary-color);
3138
+ --message-agent-text: #333333;
3139
+ --header-bg: var(--chat-bg-color);
3140
+ --header-text: #333333;
3141
+ --header-border: #e0e0e0;
3142
+ --input-bg: var(--chat-bg-color);
3143
+ --input-border: #e0e0e0;
3144
+ --input-focus-border: var(--chat-primary-color);
3145
+ --input-text: #333333;
3146
+ --input-placeholder: #999999;
3147
+ --button-primary-bg: var(--chat-primary-color);
3148
+ --button-primary-text: #ffffff;
3149
+ --button-hover-opacity: 0.9;
3150
+ --status-online: #4caf50;
3151
+ --status-offline: #9e9e9e;
3152
+ --status-typing: #ff9800;
3153
+ --text-primary: #333333;
3154
+ --text-secondary: #666666;
3155
+ --text-muted: #999999;
3156
+ --border-light: #e0e0e0;
3157
+ --shadow-light: rgba(0, 0, 0, 0.1);
3158
+ --shadow-medium: rgba(0, 0, 0, 0.15);
3159
+ --spacing-xs: 4px;
3160
+ --spacing-sm: 8px;
3161
+ --spacing-md: 12px;
3162
+ --spacing-lg: 16px;
3163
+ --spacing-xl: 20px;
3164
+ --spacing-xxl: 24px;
3165
+ --radius-sm: 4px;
3166
+ --radius-md: 8px;
3167
+ --radius-lg: 12px;
3168
+ --radius-xl: 16px;
3169
+ --radius-full: 50%;
3170
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
3171
+ --font-size-xs: 11px;
3172
+ --font-size-sm: 12px;
3173
+ --font-size-md: 14px;
3174
+ --font-size-lg: 16px;
3175
+ --font-weight-normal: 400;
3176
+ --font-weight-medium: 500;
3177
+ --font-weight-semibold: 600;
3178
+ --transition-fast: 0.15s ease-in-out;
3179
+ --transition-normal: 0.3s ease-in-out;
3180
+ --widget-min-width: 300px;
3181
+ --widget-min-height: 400px;
3182
+ --widget-mobile-min-width: 280px;
3183
+ --widget-mobile-min-height: 350px;
3184
+ --widget-mobile-max-width: 350px;
3185
+ --widget-mobile-max-height: 500px;
3186
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
3187
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
3188
+ --state-initializing-bg: #f8f9fa;
3189
+ --state-initializing-text: #6c757d;
3190
+ --state-error-bg: #fff5f5;
3191
+ --state-error-border: #fed7d7;
3192
+ --state-error-title: #e53e3e;
3193
+ --state-error-text: #744210;
3194
+ --state-error-details-bg: #f7f7f7;
3195
+ --state-waiting-bg: #f0f8ff;
3196
+ --state-waiting-text: #4a90e2;
3197
+ --spinner-size: 40px;
3198
+ --spinner-border-width: 3px;
3199
+ --toggle-button-size: 60px;
3200
+ --toggle-icon-size: 24px;
3201
+ --mobile-breakpoint: 768px;
3202
+ --mobile-spacing: 10px;
3203
+ --mobile-offset: 20px;
3204
+ --mobile-top-offset: 100px;
3205
+ --input-height: 48px;
3206
+ --input-disabled-opacity: 0.6;
3207
+ --header-height: 63px;
3208
+ --text-input: #1F2937;
3209
+ --text-powered-by: #6B7280;
3210
+ --text-encrypted: #6B7280;
3211
+ --dropdown-min-width: 200px;
3212
+ --dropdown-max-width: 280px;
3213
+ --dropdown-mobile-max-width: 250px;
3214
+ --dropdown-offset: 12px;
3215
+ --dropdown-z-index: 1000;
3216
+ --status-dot-size: 8px;
3217
+ --status-typing-width: 12px;
3218
+ --status-typing-height: 8px;
3219
+ --status-typing-dot-size: 2px;
3220
+ --status-typing-gap: 1px;
3221
+ --menu-item-padding-vertical: 14px;
3222
+ --menu-item-padding-horizontal: 20px;
3223
+ --menu-item-min-height: 44px;
3224
+ --menu-item-icon-size: 20px;
3225
+ --menu-item-icon-svg-size: 18px;
3226
+ --menu-item-icon-margin: 16px;
3227
+ --menu-item-disabled-opacity: 0.5;
3228
+ --menu-item-text: #333333;
3229
+ --menu-item-icon: #666666;
3230
+ --menu-item-hover-bg: #f5f5f5;
3231
+ --menu-item-active-bg: #e8e8e8;
3232
+ --menu-item-destructive: #f44336;
3233
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
3234
+ --animation-slide-distance: 10px;
3235
+ --empty-state-mobile-height: 150px;
3236
+ }
3237
+
3238
+ .ErrorBoundary-module_errorBoundary__iSLs0 {
3239
+ width: 100%;
3240
+ height: 100%;
3241
+ background: var(--chat-bg-color);
3242
+ display: flex;
3243
+ flex-direction: column;
3244
+ align-items: center;
3245
+ justify-content: center;
3246
+ text-align: center;
3247
+ padding: var(--spacing-md);
3248
+ overflow: hidden;
3249
+ }
3250
+
3251
+ .ErrorBoundary-module_errorContainer__BsTFv {
3252
+ display: flex;
3253
+ flex-direction: column;
3254
+ align-items: center;
3255
+ justify-content: center;
3256
+ width: 100%;
3257
+ max-height: 100%;
3258
+ overflow: auto;
3259
+ padding: var(--spacing-md);
3260
+ }
3261
+
3262
+ .ErrorBoundary-module_errorIcon__eTqA3 {
3263
+ width: 48px;
3264
+ height: 48px;
3265
+ border-radius: var(--radius-full);
3266
+ display: flex;
3267
+ align-items: center;
3268
+ justify-content: center;
3269
+ margin-bottom: var(--spacing-xl);
3270
+ }
3271
+ .ErrorBoundary-module_errorIcon__eTqA3 svg {
3272
+ width: 24px;
3273
+ height: 24px;
3274
+ }
3275
+
3276
+ .ErrorBoundary-module_errorTitle__NIyOc {
3277
+ color: var(--text-primary);
3278
+ font-size: var(--font-size-lg);
3279
+ font-weight: var(--font-weight-semibold);
3280
+ margin: 0 0 var(--spacing-lg) 0;
3281
+ font-family: var(--font-family);
3282
+ }
3283
+
3284
+ .ErrorBoundary-module_errorMessage__8uokP {
3285
+ color: var(--text-secondary);
3286
+ font-size: var(--font-size-md);
3287
+ line-height: 1.5;
3288
+ margin: 0 0 var(--spacing-xl) 0;
3289
+ font-family: var(--font-family);
3290
+ text-align: center;
3291
+ }
3292
+
3293
+ .ErrorBoundary-module_retryButton__UwJ1t {
3294
+ display: flex;
3295
+ align-items: center;
3296
+ justify-content: center;
3297
+ gap: var(--spacing-sm);
3298
+ color: var(--button-primary-text);
3299
+ border: none;
3300
+ border-radius: var(--radius-md);
3301
+ padding: var(--spacing-md) var(--spacing-xl);
3302
+ font-size: var(--font-size-md);
3303
+ font-weight: var(--font-weight-medium);
3304
+ font-family: var(--font-family);
3305
+ cursor: pointer;
3306
+ transition: opacity var(--transition-fast);
3307
+ }
3308
+ .ErrorBoundary-module_retryButton__UwJ1t:hover {
3309
+ opacity: var(--button-hover-opacity);
3310
+ }
3311
+ .ErrorBoundary-module_retryButton__UwJ1t:focus {
3312
+ outline: none;
3313
+ box-shadow: 0 0 0 2px rgba(255, 87, 34, 0.25);
3314
+ }
3315
+ .ErrorBoundary-module_retryButton__UwJ1t svg {
3316
+ width: 16px;
3317
+ height: 16px;
3318
+ }
3319
+
3320
+ @media (max-width: var(--mobile-breakpoint)) {
3321
+ .ErrorBoundary-module_errorBoundary__iSLs0 {
3322
+ min-width: var(--widget-mobile-min-width);
3323
+ min-height: var(--widget-mobile-min-height);
3324
+ padding: var(--spacing-lg);
3325
+ }
3326
+ .ErrorBoundary-module_errorIcon__eTqA3 {
3327
+ width: 60px;
3328
+ height: 60px;
3329
+ margin-bottom: var(--spacing-lg);
3330
+ }
3331
+ .ErrorBoundary-module_errorIcon__eTqA3 svg {
3332
+ width: 32px;
3333
+ height: 32px;
3334
+ }
3335
+ .ErrorBoundary-module_errorTitle__NIyOc {
3336
+ font-size: var(--font-size-lg);
3337
+ }
3338
+ .ErrorBoundary-module_errorMessage__8uokP {
3339
+ font-size: var(--font-size-sm);
3340
+ }
3341
+ }
3342
+ :root {
3343
+ --chat-primary-color: #FA5B4C;
3344
+ --chat-primary-color-rgb: 250, 91, 76;
3345
+ --chat-bg-color: #ffffff;
3346
+ --chat-secondary-color: #f5f5f5;
3347
+ --message-user-bg: var(--chat-primary-color);
3348
+ --message-user-text: #ffffff;
3349
+ --message-agent-bg: var(--chat-secondary-color);
3350
+ --message-agent-text: #333333;
3351
+ --header-bg: var(--chat-bg-color);
3352
+ --header-text: #333333;
3353
+ --header-border: #e0e0e0;
3354
+ --input-bg: var(--chat-bg-color);
3355
+ --input-border: #e0e0e0;
3356
+ --input-focus-border: var(--chat-primary-color);
3357
+ --input-text: #333333;
3358
+ --input-placeholder: #999999;
3359
+ --button-primary-bg: var(--chat-primary-color);
3360
+ --button-primary-text: #ffffff;
3361
+ --button-hover-opacity: 0.9;
3362
+ --status-online: #4caf50;
3363
+ --status-offline: #9e9e9e;
3364
+ --status-typing: #ff9800;
3365
+ --text-primary: #333333;
3366
+ --text-secondary: #666666;
3367
+ --text-muted: #999999;
3368
+ --border-light: #e0e0e0;
3369
+ --shadow-light: rgba(0, 0, 0, 0.1);
3370
+ --shadow-medium: rgba(0, 0, 0, 0.15);
3371
+ --spacing-xs: 4px;
3372
+ --spacing-sm: 8px;
3373
+ --spacing-md: 12px;
3374
+ --spacing-lg: 16px;
3375
+ --spacing-xl: 20px;
3376
+ --spacing-xxl: 24px;
3377
+ --radius-sm: 4px;
3378
+ --radius-md: 8px;
3379
+ --radius-lg: 12px;
3380
+ --radius-xl: 16px;
3381
+ --radius-full: 50%;
3382
+ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
3383
+ --font-size-xs: 11px;
3384
+ --font-size-sm: 12px;
3385
+ --font-size-md: 14px;
3386
+ --font-size-lg: 16px;
3387
+ --font-weight-normal: 400;
3388
+ --font-weight-medium: 500;
3389
+ --font-weight-semibold: 600;
3390
+ --transition-fast: 0.15s ease-in-out;
3391
+ --transition-normal: 0.3s ease-in-out;
3392
+ --widget-min-width: 300px;
3393
+ --widget-min-height: 400px;
3394
+ --widget-mobile-min-width: 280px;
3395
+ --widget-mobile-min-height: 350px;
3396
+ --widget-mobile-max-width: 350px;
3397
+ --widget-mobile-max-height: 500px;
3398
+ --shadow-widget: 0 8px 32px rgba(0, 0, 0, 0.12);
3399
+ --shadow-button: 0 4px 16px rgba(0, 123, 255, 0.3);
3400
+ --state-initializing-bg: #f8f9fa;
3401
+ --state-initializing-text: #6c757d;
3402
+ --state-error-bg: #fff5f5;
3403
+ --state-error-border: #fed7d7;
3404
+ --state-error-title: #e53e3e;
3405
+ --state-error-text: #744210;
3406
+ --state-error-details-bg: #f7f7f7;
3407
+ --state-waiting-bg: #f0f8ff;
3408
+ --state-waiting-text: #4a90e2;
3409
+ --spinner-size: 40px;
3410
+ --spinner-border-width: 3px;
3411
+ --toggle-button-size: 60px;
3412
+ --toggle-icon-size: 24px;
3413
+ --mobile-breakpoint: 768px;
3414
+ --mobile-spacing: 10px;
3415
+ --mobile-offset: 20px;
3416
+ --mobile-top-offset: 100px;
3417
+ --input-height: 48px;
3418
+ --input-disabled-opacity: 0.6;
3419
+ --header-height: 63px;
3420
+ --text-input: #1F2937;
3421
+ --text-powered-by: #6B7280;
3422
+ --text-encrypted: #6B7280;
3423
+ --dropdown-min-width: 200px;
3424
+ --dropdown-max-width: 280px;
3425
+ --dropdown-mobile-max-width: 250px;
3426
+ --dropdown-offset: 12px;
3427
+ --dropdown-z-index: 1000;
3428
+ --status-dot-size: 8px;
3429
+ --status-typing-width: 12px;
3430
+ --status-typing-height: 8px;
3431
+ --status-typing-dot-size: 2px;
3432
+ --status-typing-gap: 1px;
3433
+ --menu-item-padding-vertical: 14px;
3434
+ --menu-item-padding-horizontal: 20px;
3435
+ --menu-item-min-height: 44px;
3436
+ --menu-item-icon-size: 20px;
3437
+ --menu-item-icon-svg-size: 18px;
3438
+ --menu-item-icon-margin: 16px;
3439
+ --menu-item-disabled-opacity: 0.5;
3440
+ --menu-item-text: #333333;
3441
+ --menu-item-icon: #666666;
3442
+ --menu-item-hover-bg: #f5f5f5;
3443
+ --menu-item-active-bg: #e8e8e8;
3444
+ --menu-item-destructive: #f44336;
3445
+ --menu-item-destructive-hover-bg: rgba(244, 67, 54, 0.05);
3446
+ --animation-slide-distance: 10px;
3447
+ --empty-state-mobile-height: 150px;
3448
+ }
3449
+
3450
+ .ErrorDisplay-module_errorDisplay__hE8Ex {
3451
+ width: 100%;
3452
+ height: 100%;
3453
+ background: var(--chat-bg-color);
3454
+ display: flex;
3455
+ flex-direction: column;
3456
+ align-items: center;
3457
+ justify-content: center;
3458
+ text-align: center;
3459
+ padding: var(--spacing-md);
3460
+ overflow: hidden;
3461
+ }
3462
+
3463
+ .ErrorDisplay-module_errorContainer__48iQ6 {
3464
+ display: flex;
3465
+ flex-direction: column;
3466
+ align-items: center;
3467
+ justify-content: center;
3468
+ width: 100%;
3469
+ max-height: 100%;
3470
+ overflow: auto;
3471
+ padding: var(--spacing-md);
3472
+ }
3473
+
3474
+ .ErrorDisplay-module_errorIcon__Mfk4B {
3475
+ width: 48px;
3476
+ height: 48px;
3477
+ border-radius: var(--radius-full);
3478
+ display: flex;
3479
+ align-items: center;
3480
+ justify-content: center;
3481
+ margin-bottom: var(--spacing-xl);
3482
+ }
3483
+ .ErrorDisplay-module_errorIcon__Mfk4B svg {
3484
+ width: 24px;
3485
+ height: 24px;
3486
+ }
3487
+
3488
+ .ErrorDisplay-module_errorTitle__shFZJ {
3489
+ color: var(--text-primary);
3490
+ font-size: var(--font-size-lg);
3491
+ font-weight: var(--font-weight-semibold);
3492
+ margin: 0 0 var(--spacing-lg) 0;
3493
+ font-family: var(--font-family);
3494
+ }
3495
+
3496
+ .ErrorDisplay-module_errorMessage__Q8vCT {
3497
+ color: var(--text-secondary);
3498
+ font-size: var(--font-size-md);
3499
+ line-height: var(--line-height-relaxed);
3500
+ margin: 0 0 var(--spacing-xl) 0;
3501
+ text-align: center;
3502
+ font-family: var(--font-family);
3503
+ }
3504
+
3505
+ .ErrorDisplay-module_retryButton__pP0M6 {
3506
+ display: inline-flex;
3507
+ align-items: center;
3508
+ justify-content: center;
3509
+ gap: var(--spacing-sm);
3510
+ padding: var(--spacing-md) var(--spacing-lg);
3511
+ background-color: var(--chat-primary-color);
3512
+ color: white;
3513
+ border: none;
3514
+ border-radius: var(--radius-md);
3515
+ font-size: var(--font-size-md);
3516
+ font-weight: var(--font-weight-medium);
3517
+ font-family: var(--font-family);
3518
+ cursor: pointer;
3519
+ transition: opacity var(--transition-base);
3520
+ min-width: 120px;
3521
+ }
3522
+ .ErrorDisplay-module_retryButton__pP0M6:hover {
3523
+ opacity: var(--button-hover-opacity);
3524
+ }
3525
+ .ErrorDisplay-module_retryButton__pP0M6:focus {
3526
+ outline: 2px solid var(--chat-primary-color);
3527
+ outline-offset: 2px;
3528
+ }
3529
+ .ErrorDisplay-module_retryButton__pP0M6:active {
3530
+ transform: translateY(1px);
3531
+ }
3532
+ .ErrorDisplay-module_retryButton__pP0M6 svg {
3533
+ flex-shrink: 0;
3534
+ }