banko-ai-assistant 1.0.0__py3-none-any.whl → 1.0.3__py3-none-any.whl

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 (128) hide show
  1. banko_ai/static/creditcard_files/0dbda187ceb472a466dff54b7015b1d4.jpg +0 -0
  2. banko_ai/static/creditcard_files/10903-7f8736e237ced107.mjs +2 -0
  3. banko_ai/static/creditcard_files/10966-809952783184ae4b.mjs +4 -0
  4. banko_ai/static/creditcard_files/13351-8a7dda060266efff.mjs +2 -0
  5. banko_ai/static/creditcard_files/1342-c79d3d17da82f23c.mjs +11 -0
  6. banko_ai/static/creditcard_files/16142-bdecf7bfdd6d70ae.mjs +2 -0
  7. banko_ai/static/creditcard_files/16550-e89f65017860221d.mjs +2 -0
  8. banko_ai/static/creditcard_files/17492-942c70b114fdcce1.mjs +10 -0
  9. banko_ai/static/creditcard_files/18352-481d67e871cc6985.mjs +2 -0
  10. banko_ai/static/creditcard_files/18555-0d9763eb744f7a77.mjs +2 -0
  11. banko_ai/static/creditcard_files/19437-575ba467ea85e866.mjs +2 -0
  12. banko_ai/static/creditcard_files/1aca1669c3b4a07f0966c4733c939d6d.jpg +0 -0
  13. banko_ai/static/creditcard_files/20126-602c15db592cf3c4.mjs +26 -0
  14. banko_ai/static/creditcard_files/20224-b6de2c08cc8ad497.mjs +66 -0
  15. banko_ai/static/creditcard_files/2029a63f9af76541f860b6a6a4ec0c90.jpg +0 -0
  16. banko_ai/static/creditcard_files/21662-1214728138c72aa2.css +1 -0
  17. banko_ai/static/creditcard_files/22517-5f7ab2631d424b77.mjs +9 -0
  18. banko_ai/static/creditcard_files/23019-be3b8956cee94725.mjs +2 -0
  19. banko_ai/static/creditcard_files/26067-cb77f2673c5f757c.mjs +2 -0
  20. banko_ai/static/creditcard_files/27405-880a12623820964d.mjs +9 -0
  21. banko_ai/static/creditcard_files/27503-82078c18034012ed.mjs +38 -0
  22. banko_ai/static/creditcard_files/28090-8e4b5fd6c88f8eb2.mjs +6 -0
  23. banko_ai/static/creditcard_files/2c66dacf04db64cc1099835f2e2328d5.jpg +0 -0
  24. banko_ai/static/creditcard_files/30090868cb2b559a7093999fec5fbcc8.jpg +0 -0
  25. banko_ai/static/creditcard_files/30102-608e861dccc907f1.mjs +2 -0
  26. banko_ai/static/creditcard_files/31600-ca2e152d871d51d5.mjs +2 -0
  27. banko_ai/static/creditcard_files/31d5156a9cc5fe5fd780c2d9e59db98f.jpg +0 -0
  28. banko_ai/static/creditcard_files/34713-54729fd9c7517d50.mjs +2 -0
  29. banko_ai/static/creditcard_files/35074-d765c14dc3e8eafc.mjs +77 -0
  30. banko_ai/static/creditcard_files/38230-4d6eb1a608eecdeb.mjs +7 -0
  31. banko_ai/static/creditcard_files/40566-e2dbb4226dd2ab42.mjs +6 -0
  32. banko_ai/static/creditcard_files/42298-668aa166e1146c6c.mjs +2 -0
  33. banko_ai/static/creditcard_files/43203-3a1e46e5259313c8.mjs +14 -0
  34. banko_ai/static/creditcard_files/44429-6534f772a6bd895b.mjs +13 -0
  35. banko_ai/static/creditcard_files/48327-48fb70091d7ac731.mjs +2 -0
  36. banko_ai/static/creditcard_files/49923-dc71193d54a0b99c.mjs +2 -0
  37. banko_ai/static/creditcard_files/49c3cac3c5a09ca104a2efea48536d14.jpg +0 -0
  38. banko_ai/static/creditcard_files/50040-3c27b1fe14ca588b.mjs +2 -0
  39. banko_ai/static/creditcard_files/5047473e06297bbccfae9c43ca36bd93.jpg +0 -0
  40. banko_ai/static/creditcard_files/51531-253e8d8f8f527d9c.mjs +26 -0
  41. banko_ai/static/creditcard_files/58103-d6be57f2d624e7b4.mjs +2 -0
  42. banko_ai/static/creditcard_files/58822-d1779ebe9d4fab59.mjs +51 -0
  43. banko_ai/static/creditcard_files/61b440e4366b35d7213172be53d3864e.jpg +0 -0
  44. banko_ai/static/creditcard_files/61d121a699367070f3988f633ed6ac7d.jpg +0 -0
  45. banko_ai/static/creditcard_files/65610-15f55d146aa3cc6f.mjs +2 -0
  46. banko_ai/static/creditcard_files/65662-2b7065d2ddcf6a0c.mjs +2 -0
  47. banko_ai/static/creditcard_files/67631-9d4d7f4aab06e79c.mjs +2 -0
  48. banko_ai/static/creditcard_files/68445-8aae26e83c03d9bc.mjs +7 -0
  49. banko_ai/static/creditcard_files/6863-da15e99ca946f07a.mjs +2 -0
  50. banko_ai/static/creditcard_files/71526-518cf6126a32651b.mjs +2 -0
  51. banko_ai/static/creditcard_files/72268-8f69a6e8585b9af2.mjs +2 -0
  52. banko_ai/static/creditcard_files/76f1a52015cf2a243ed085586f3d44e8.jpg +0 -0
  53. banko_ai/static/creditcard_files/80538-65bd348271403336.mjs +2 -0
  54. banko_ai/static/creditcard_files/81505-387f6ddb644ae967.mjs +38 -0
  55. banko_ai/static/creditcard_files/8151-1a0cf04ea45ad513.mjs +2 -0
  56. banko_ai/static/creditcard_files/83119-1cf7ca2f5ba0e1ab.mjs +9 -0
  57. banko_ai/static/creditcard_files/83485-27ce97f9e7369ed7.mjs +5 -0
  58. banko_ai/static/creditcard_files/8575-e1977ceb3b34da9c.mjs +2 -0
  59. banko_ai/static/creditcard_files/8962-664b3c9b21ec2e0f.mjs +2 -0
  60. banko_ai/static/creditcard_files/90123-40fd5c2d5dc1c0a1.mjs +2 -0
  61. banko_ai/static/creditcard_files/91846-55cc5635c18159a0.mjs +47 -0
  62. banko_ai/static/creditcard_files/91936-56d11562a38b3f77.mjs +2 -0
  63. banko_ai/static/creditcard_files/96833-fbcb1ab8436924d4.mjs +36 -0
  64. banko_ai/static/creditcard_files/99246-889e96fc0a42e07a.mjs +2 -0
  65. banko_ai/static/creditcard_files/99961-ee8d9a1207a9db7a.mjs +2 -0
  66. banko_ai/static/creditcard_files/DefaultPinRep-78e567622e9cb382.mjs +27 -0
  67. banko_ai/static/creditcard_files/DesktopUnauthPageWrapper-26b3c2c050f09d27.css +1 -0
  68. banko_ai/static/creditcard_files/DesktopUnauthPageWrapper-a120f0b0faa773a2.mjs +252 -0
  69. banko_ai/static/creditcard_files/KkWFeSURekXGycdprVC-UY6ED-ZF5ll2JCMiHhJE2Rk.js +1 -0
  70. banko_ai/static/creditcard_files/MobileAndUnauthPinPage-0083f61f79e906d2.mjs +400 -0
  71. banko_ai/static/creditcard_files/UnauthCloseupRelatedPins-d98c713ac2e141a7.mjs +2 -0
  72. banko_ai/static/creditcard_files/[id]-87f8f6f1f81e3a8a.mjs +2 -0
  73. banko_ai/static/creditcard_files/_client-49638f60bdf5658e.mjs +43 -0
  74. banko_ai/static/creditcard_files/a7ee24644496b7a3131cd4e13b8c6edb.jpg +0 -0
  75. banko_ai/static/creditcard_files/a8ada9395c00dffc8fb81a7b76bd34b5.jpg +0 -0
  76. banko_ai/static/creditcard_files/abbf5a82906bef8c6be49ab38eaeea7c.jpg +0 -0
  77. banko_ai/static/creditcard_files/ad910641231bb413f6a985e4e9961efb.jpg +0 -0
  78. banko_ai/static/creditcard_files/anchor.html +186 -0
  79. banko_ai/static/creditcard_files/b6083df3cfa26856caef114c51a8d21e.jpg +0 -0
  80. banko_ai/static/creditcard_files/b957829ac112a8c28b313307e5ff0df6.jpg +0 -0
  81. banko_ai/static/creditcard_files/bb2d3d28e3421d901d8d431c33f0c6ed.jpg +0 -0
  82. banko_ai/static/creditcard_files/bb2d3d28e3421d901d8d431c33f0c6ed.png +0 -0
  83. banko_ai/static/creditcard_files/c3031b4a938377789e00d3d2f3b2438c.jpg +0 -0
  84. banko_ai/static/creditcard_files/client +300 -0
  85. banko_ai/static/creditcard_files/ct.html +3 -0
  86. banko_ai/static/creditcard_files/d03e6db9649ea3479b799d5a21008ac2.jpg +0 -0
  87. banko_ai/static/creditcard_files/d3d38fd9aa0c808a28ff5bd9ae5b5576.jpg +0 -0
  88. banko_ai/static/creditcard_files/de7cb9e198b4ebc9430824132ccfce2e.jpg +0 -0
  89. banko_ai/static/creditcard_files/e4330b4a4e71a3f77dd0682b99037cad.jpg +0 -0
  90. banko_ai/static/creditcard_files/ecdf72d4d54e70608e9416020f8ad67d.jpg +0 -0
  91. banko_ai/static/creditcard_files/eef64355b9f10e89c355b138adbae1e9.jpg +0 -0
  92. banko_ai/static/creditcard_files/enterprise.js +1 -0
  93. banko_ai/static/creditcard_files/f1354f6bb993409ea12235a01a978936.jpg +0 -0
  94. banko_ai/static/creditcard_files/f7c30e2615fe0e57d9ab6e41aac5e738.jpg +0 -0
  95. banko_ai/static/creditcard_files/fa72fa1ae9bb3ec93f41595333d22d16.jpg +0 -0
  96. banko_ai/static/creditcard_files/fb09ce3b0feb4931402867cf109cd618.jpg +0 -0
  97. banko_ai/static/creditcard_files/i +0 -0
  98. banko_ai/static/creditcard_files/locale-en_US-lite-js-d0d346142714beb1.mjs +2 -0
  99. banko_ai/static/creditcard_files/login-3c695aa28fdc27a5.mjs +161 -0
  100. banko_ai/static/creditcard_files/login-e161a84cea9cd0a3.css +1 -0
  101. banko_ai/static/creditcard_files/packages-rich-snippet-LeafSnippet-b7f61038a4431021.mjs +2 -0
  102. banko_ai/static/creditcard_files/polyfills-c5ca6e711f8975ec.mjs +2 -0
  103. banko_ai/static/creditcard_files/recaptcha__en.js +1011 -0
  104. banko_ai/static/creditcard_files/repin-62bbd4d7c8e22f17.css +1 -0
  105. banko_ai/static/creditcard_files/repin-d49f19d89ddd3cbe.mjs +292 -0
  106. banko_ai/static/creditcard_files/runtime-505e4380476a458b.mjs +2 -0
  107. banko_ai/static/creditcard_files/saved_resource(1).html +7 -0
  108. banko_ai/static/creditcard_files/saved_resource(2).html +3 -0
  109. banko_ai/static/creditcard_files/saved_resource.html +3 -0
  110. banko_ai/static/creditcard_files/sdk(1).js +22 -0
  111. banko_ai/static/creditcard_files/sdk.js +228 -0
  112. banko_ai/static/creditcard_files/select.html +387 -0
  113. banko_ai/static/creditcard_files/style +1 -0
  114. banko_ai/static/creditcard_files/styles__ltr.css +1 -0
  115. banko_ai/static/creditcard_files/unnamed.jpg +0 -0
  116. banko_ai/static/creditcard_files/vendor-react-76e71fd67c83934b.mjs +54 -0
  117. banko_ai/static/creditcard_files/visual-search-fe95849c7568d600.mjs +123 -0
  118. banko_ai/static/css/style.css +1274 -0
  119. banko_ai/templates/dashboard.html +5 -5
  120. banko_ai/templates/index.html +6 -6
  121. banko_ai/web/app.py +18 -4
  122. {banko_ai_assistant-1.0.0.dist-info → banko_ai_assistant-1.0.3.dist-info}/METADATA +2 -2
  123. banko_ai_assistant-1.0.3.dist-info/RECORD +164 -0
  124. banko_ai_assistant-1.0.0.dist-info/RECORD +0 -46
  125. {banko_ai_assistant-1.0.0.dist-info → banko_ai_assistant-1.0.3.dist-info}/WHEEL +0 -0
  126. {banko_ai_assistant-1.0.0.dist-info → banko_ai_assistant-1.0.3.dist-info}/entry_points.txt +0 -0
  127. {banko_ai_assistant-1.0.0.dist-info → banko_ai_assistant-1.0.3.dist-info}/licenses/LICENSE +0 -0
  128. {banko_ai_assistant-1.0.0.dist-info → banko_ai_assistant-1.0.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1274 @@
1
+ /* Modern Cockroach Labs-inspired styling for Banko AI Assistant */
2
+
3
+ /* Base styles */
4
+ * {
5
+ font-family: 'Inter', system-ui, sans-serif;
6
+ }
7
+
8
+ body {
9
+ background-color: #F8FAFC;
10
+ color: #1E293B;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+
15
+ /* Custom scrollbar */
16
+ ::-webkit-scrollbar {
17
+ width: 8px;
18
+ }
19
+
20
+ ::-webkit-scrollbar-track {
21
+ background: #F1F5F9;
22
+ border-radius: 4px;
23
+ }
24
+
25
+ ::-webkit-scrollbar-thumb {
26
+ background: #CBD5E1;
27
+ border-radius: 4px;
28
+ }
29
+
30
+ ::-webkit-scrollbar-thumb:hover {
31
+ background: #94A3B8;
32
+ }
33
+
34
+ /* Layout */
35
+ .chat-container {
36
+ display: flex;
37
+ height: 100vh;
38
+ overflow: hidden;
39
+ position: relative;
40
+ }
41
+
42
+ /* Sidebar */
43
+ .sidebar {
44
+ width: 288px;
45
+ background-color: #FFFFFF;
46
+ border-right: 1px solid #E2E8F0;
47
+ display: flex;
48
+ flex-direction: column;
49
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
50
+ z-index: 50;
51
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
52
+ }
53
+
54
+ .sidebar.hidden {
55
+ transform: translateX(-100%);
56
+ }
57
+
58
+ .sidebar.visible {
59
+ transform: translateX(0);
60
+ }
61
+
62
+ .sidebar-header {
63
+ padding: 1.5rem;
64
+ border-bottom: 1px solid #E2E8F0;
65
+ background: linear-gradient(135deg, #6933FF 0%, #8B5CF6 100%);
66
+ }
67
+
68
+ .sidebar-title {
69
+ font-size: 1.5rem;
70
+ font-weight: 700;
71
+ color: #FFFFFF;
72
+ margin: 0;
73
+ }
74
+
75
+ .sidebar-subtitle {
76
+ font-size: 0.875rem;
77
+ color: rgba(255, 255, 255, 0.9);
78
+ margin: 0.25rem 0 0 0;
79
+ }
80
+
81
+ .sidebar-nav {
82
+ flex: 1;
83
+ padding: 1.5rem;
84
+ display: flex;
85
+ flex-direction: column;
86
+ }
87
+
88
+ .sidebar-nav .space-y-2 {
89
+ display: flex;
90
+ flex-direction: column;
91
+ gap: 0.5rem;
92
+ }
93
+
94
+ .sidebar-item {
95
+ display: flex;
96
+ align-items: center;
97
+ padding: 0.75rem 1rem;
98
+ border-radius: 0.5rem;
99
+ color: #1E293B;
100
+ text-decoration: none;
101
+ transition: all 0.2s ease;
102
+ cursor: pointer;
103
+ font-weight: 500;
104
+ width: 100%;
105
+ box-sizing: border-box;
106
+ }
107
+
108
+ .sidebar-item:hover {
109
+ background-color: #EEF2FF;
110
+ transform: translateX(8px) scale(1.02);
111
+ box-shadow: 0 4px 12px rgba(105, 51, 255, 0.1);
112
+ }
113
+
114
+ .sidebar-item.active {
115
+ background-color: #6933FF;
116
+ color: white;
117
+ box-shadow: 0 4px 12px rgba(105, 51, 255, 0.3);
118
+ }
119
+
120
+ .sidebar-item i {
121
+ width: 1.25rem;
122
+ height: 1.25rem;
123
+ margin-right: 0.75rem;
124
+ color: inherit;
125
+ flex-shrink: 0;
126
+ }
127
+
128
+ .sidebar-item span {
129
+ flex: 1;
130
+ white-space: nowrap;
131
+ }
132
+
133
+ .sidebar-footer {
134
+ padding: 1.5rem;
135
+ border-top: 1px solid #E2E8F0;
136
+ font-size: 0.75rem;
137
+ color: #64748B;
138
+ background-color: #F8FAFC;
139
+ }
140
+
141
+ /* Main content */
142
+ .main-content {
143
+ flex: 1;
144
+ display: flex;
145
+ flex-direction: column;
146
+ background-color: #F8FAFC;
147
+ transition: margin-left 0.3s ease;
148
+ }
149
+
150
+ .main-content.with-sidebar {
151
+ margin-left: 18rem; /* 288px */
152
+ }
153
+
154
+ .main-content.without-sidebar {
155
+ margin-left: 0;
156
+ }
157
+
158
+ /* Main content should take remaining space in flexbox */
159
+ #main-content {
160
+ margin-left: 0;
161
+ }
162
+
163
+ /* Header */
164
+ .header {
165
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
166
+ color: white;
167
+ padding: 1.5rem 2rem;
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: space-between;
171
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
172
+ backdrop-filter: blur(10px);
173
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
174
+ min-height: 88px; /* Match sidebar header height */
175
+ }
176
+
177
+ .header-left {
178
+ display: flex;
179
+ align-items: center;
180
+ gap: 1.5rem;
181
+ }
182
+
183
+ .sidebar-toggle {
184
+ display: none;
185
+ background-color: #FFFFFF;
186
+ border: 1px solid #E2E8F0;
187
+ color: #1E293B;
188
+ padding: 0.5rem 0.75rem;
189
+ border-radius: 0.5rem;
190
+ cursor: pointer;
191
+ transition: all 0.2s ease;
192
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
193
+ }
194
+
195
+ .sidebar-toggle:hover {
196
+ background-color: #F8FAFC;
197
+ transform: translateY(-1px);
198
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
199
+ }
200
+
201
+ .header-title {
202
+ font-size: 1.5rem;
203
+ font-weight: 700;
204
+ color: #1E293B;
205
+ margin: 0;
206
+ }
207
+
208
+ .provider-badges {
209
+ display: flex;
210
+ align-items: center;
211
+ gap: 0.75rem;
212
+ margin: 0; /* Remove margin-top to align with header */
213
+ }
214
+
215
+ .provider-badge {
216
+ display: inline-flex;
217
+ align-items: center;
218
+ padding: 0.25rem 0.75rem;
219
+ border-radius: 9999px;
220
+ font-size: 0.75rem;
221
+ font-weight: 500;
222
+ border: 1px solid;
223
+ height: 2rem;
224
+ }
225
+
226
+ .badge-ai {
227
+ background-color: #DBEAFE;
228
+ color: #1E40AF;
229
+ border-color: #93C5FD;
230
+ }
231
+
232
+ .badge-db {
233
+ background-color: #DCFCE7;
234
+ color: #166534;
235
+ border-color: #86EFAC;
236
+ }
237
+
238
+ .provider-badge img {
239
+ width: 1rem;
240
+ height: 1rem;
241
+ margin-right: 0.5rem;
242
+ flex-shrink: 0;
243
+ }
244
+
245
+ .header-right {
246
+ display: flex;
247
+ align-items: center;
248
+ gap: 1rem;
249
+ }
250
+
251
+ .control-button {
252
+ background-color: #FFFFFF;
253
+ border: 1px solid #E2E8F0;
254
+ color: #1E293B;
255
+ padding: 0.5rem 0.75rem;
256
+ border-radius: 0.5rem;
257
+ font-size: 0.875rem;
258
+ cursor: pointer;
259
+ transition: all 0.2s ease;
260
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
261
+ }
262
+
263
+ .control-button:hover {
264
+ background-color: #F8FAFC;
265
+ transform: translateY(-1px);
266
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
267
+ }
268
+
269
+ .profile-pic {
270
+ width: 3rem;
271
+ height: 3rem;
272
+ border-radius: 50%;
273
+ overflow: hidden;
274
+ border: 2px solid #E2E8F0;
275
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
276
+ }
277
+
278
+ .profile-pic img {
279
+ width: 100%;
280
+ height: 100%;
281
+ object-fit: cover;
282
+ }
283
+
284
+ /* Database operations panel */
285
+ .db-panel {
286
+ background-color: #F8FAFC;
287
+ border-bottom: 1px solid #E2E8F0;
288
+ padding: 1.5rem;
289
+ display: none;
290
+ }
291
+
292
+ .db-panel.visible {
293
+ display: block;
294
+ }
295
+
296
+ .db-panel-header {
297
+ display: flex;
298
+ align-items: center;
299
+ justify-content: space-between;
300
+ margin-bottom: 1rem;
301
+ }
302
+
303
+ .db-panel-title {
304
+ font-size: 1.125rem;
305
+ font-weight: 600;
306
+ color: #1E293B;
307
+ margin: 0;
308
+ }
309
+
310
+ .db-panel-close {
311
+ color: #64748B;
312
+ cursor: pointer;
313
+ transition: color 0.2s ease;
314
+ font-size: 1.125rem;
315
+ }
316
+
317
+ .db-panel-close:hover {
318
+ color: #1E293B;
319
+ }
320
+
321
+ .db-operations {
322
+ display: flex;
323
+ flex-direction: column;
324
+ gap: 0.75rem;
325
+ font-size: 0.875rem;
326
+ }
327
+
328
+ .db-operation {
329
+ display: flex;
330
+ align-items: center;
331
+ gap: 0.75rem;
332
+ padding: 1rem;
333
+ border-radius: 0.5rem;
334
+ transition: all 0.3s ease;
335
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
336
+ }
337
+
338
+ .db-operation.info {
339
+ background-color: #DBEAFE;
340
+ color: #1E40AF;
341
+ border-left: 4px solid #3B82F6;
342
+ }
343
+
344
+ .db-operation.success {
345
+ background-color: #DCFCE7;
346
+ color: #166534;
347
+ border-left: 4px solid #22C55E;
348
+ }
349
+
350
+ .db-operation.warning {
351
+ background-color: #FEF3C7;
352
+ color: #92400E;
353
+ border-left: 4px solid #F59E0B;
354
+ }
355
+
356
+ .db-operation.error {
357
+ background-color: #FEE2E2;
358
+ color: #991B1B;
359
+ border-left: 4px solid #EF4444;
360
+ }
361
+
362
+ .operation-timestamp {
363
+ font-size: 0.75rem;
364
+ color: #6B7280;
365
+ font-family: monospace;
366
+ }
367
+
368
+ .operation-step {
369
+ font-weight: 600;
370
+ }
371
+
372
+ .operation-description {
373
+ flex: 1;
374
+ }
375
+
376
+ /* Chat messages */
377
+ .chat-container {
378
+ flex: 1;
379
+ overflow-y: auto;
380
+ padding: 1.5rem;
381
+ display: flex;
382
+ flex-direction: column;
383
+ gap: 1.5rem;
384
+ min-height: 400px;
385
+ max-height: calc(100vh - 300px);
386
+ }
387
+
388
+ .message {
389
+ display: flex;
390
+ align-items: flex-start;
391
+ gap: 1rem;
392
+ animation: messageSlideIn 0.3s ease-out;
393
+ margin-bottom: 1.5rem;
394
+ }
395
+
396
+ .message.user {
397
+ justify-content: flex-end;
398
+ }
399
+
400
+ .message.assistant {
401
+ justify-content: flex-start;
402
+ }
403
+
404
+ .message-container {
405
+ position: relative;
406
+ margin-bottom: 1.5rem;
407
+ }
408
+
409
+ .message-container:hover .copy-button {
410
+ opacity: 1;
411
+ }
412
+
413
+ .message-avatar {
414
+ width: 2.5rem;
415
+ height: 2.5rem;
416
+ border-radius: 50%;
417
+ display: flex;
418
+ align-items: center;
419
+ justify-content: center;
420
+ flex-shrink: 0;
421
+ color: white;
422
+ font-size: 0.875rem;
423
+ font-weight: 500;
424
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
425
+ }
426
+
427
+ .message-avatar.user {
428
+ background-color: #6933FF;
429
+ }
430
+
431
+ .message-avatar.assistant {
432
+ background-color: #6933FF;
433
+ }
434
+
435
+ .message-bubble {
436
+ max-width: 64rem;
437
+ padding: 1.5rem;
438
+ border-radius: 1.25rem;
439
+ word-wrap: break-word;
440
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
441
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
442
+ position: relative;
443
+ overflow: hidden;
444
+ }
445
+
446
+ .message-bubble::before {
447
+ content: '';
448
+ position: absolute;
449
+ top: 0;
450
+ left: 0;
451
+ right: 0;
452
+ height: 1px;
453
+ background: linear-gradient(90deg, transparent, rgba(16, 185, 129, 0.3), transparent);
454
+ }
455
+
456
+ .message-bubble.user {
457
+ background-color: #6933FF;
458
+ color: white;
459
+ margin-left: auto;
460
+ }
461
+
462
+ .message-bubble.assistant {
463
+ background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
464
+ color: #1E293B;
465
+ border: 1px solid #e2e8f0;
466
+ }
467
+
468
+ .message-bubble:hover {
469
+ transform: translateY(-4px) scale(1.005);
470
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
471
+ }
472
+
473
+ .message-content {
474
+ line-height: 1.7;
475
+ }
476
+
477
+ /* Copy button styling */
478
+ .copy-button {
479
+ position: absolute;
480
+ top: 1rem;
481
+ right: 1rem;
482
+ padding: 0.5rem;
483
+ border-radius: 0.5rem;
484
+ background-color: #F3F4F6;
485
+ color: #6B7280;
486
+ border: 1px solid #E5E7EB;
487
+ cursor: pointer;
488
+ transition: all 0.2s ease;
489
+ opacity: 0;
490
+ z-index: 10;
491
+ width: 2rem;
492
+ height: 2rem;
493
+ display: flex;
494
+ align-items: center;
495
+ justify-content: center;
496
+ }
497
+
498
+ .copy-button:hover {
499
+ background-color: #E5E7EB;
500
+ color: #374151;
501
+ transform: scale(1.05);
502
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
503
+ }
504
+
505
+ .copy-button.copied {
506
+ background-color: #DCFCE7;
507
+ color: #166534;
508
+ border-color: #22C55E;
509
+ }
510
+
511
+ .copy-button i {
512
+ font-size: 0.875rem;
513
+ }
514
+
515
+ /* Chat messages section */
516
+ #chat-container {
517
+ flex: 1;
518
+ overflow-y: auto;
519
+ padding: 1.5rem;
520
+ space-y: 1.5rem;
521
+ background-color: #FFFFFF;
522
+ scroll-behavior: smooth;
523
+ }
524
+
525
+ #chat-container::-webkit-scrollbar {
526
+ width: 8px;
527
+ }
528
+
529
+ #chat-container::-webkit-scrollbar-track {
530
+ background: #F1F5F9;
531
+ border-radius: 4px;
532
+ }
533
+
534
+ #chat-container::-webkit-scrollbar-thumb {
535
+ background: #CBD5E1;
536
+ border-radius: 4px;
537
+ }
538
+
539
+ #chat-container::-webkit-scrollbar-thumb:hover {
540
+ background: #94A3B8;
541
+ }
542
+
543
+ /* Loading dots animation (ChatGPT-style) */
544
+ .loading-dots {
545
+ display: flex;
546
+ align-items: center;
547
+ gap: 0.25rem;
548
+ padding: 1rem 0;
549
+ min-height: 2rem;
550
+ }
551
+
552
+ .loading-dots .dot {
553
+ width: 0.6rem;
554
+ height: 0.6rem;
555
+ border-radius: 50%;
556
+ background: linear-gradient(135deg, #6933FF, #8B5CF6);
557
+ animation: loadingDot 1.4s infinite ease-in-out;
558
+ box-shadow: 0 2px 8px rgba(105, 51, 255, 0.3);
559
+ }
560
+
561
+ .loading-dots .dot:nth-child(1) {
562
+ animation-delay: -0.32s;
563
+ }
564
+
565
+ .loading-dots .dot:nth-child(2) {
566
+ animation-delay: -0.16s;
567
+ }
568
+
569
+ .loading-dots .dot:nth-child(3) {
570
+ animation-delay: 0s;
571
+ }
572
+
573
+ @keyframes loadingDot {
574
+ 0%, 80%, 100% {
575
+ transform: scale(0.6) translateY(0);
576
+ opacity: 0.4;
577
+ box-shadow: 0 2px 8px rgba(105, 51, 255, 0.1);
578
+ }
579
+ 40% {
580
+ transform: scale(1.2) translateY(-4px);
581
+ opacity: 1;
582
+ box-shadow: 0 8px 20px rgba(105, 51, 255, 0.4);
583
+ }
584
+ }
585
+
586
+ .loading-dots .dot {
587
+ width: 0.6rem;
588
+ height: 0.6rem;
589
+ border-radius: 50%;
590
+ background: linear-gradient(135deg, #6933FF, #8B5CF6);
591
+ animation: loadingDot 1.4s infinite ease-in-out;
592
+ box-shadow: 0 2px 8px rgba(105, 51, 255, 0.3);
593
+ }
594
+
595
+ .loading-dots .dot:nth-child(1) {
596
+ animation-delay: -0.32s;
597
+ }
598
+
599
+ .loading-dots .dot:nth-child(2) {
600
+ animation-delay: -0.16s;
601
+ }
602
+
603
+ .loading-dots .dot:nth-child(3) {
604
+ animation-delay: 0s;
605
+ }
606
+
607
+ @keyframes loadingDot {
608
+ 0%, 80%, 100% {
609
+ transform: scale(0.6) translateY(0);
610
+ opacity: 0.4;
611
+ box-shadow: 0 2px 8px rgba(105, 51, 255, 0.1);
612
+ }
613
+ 40% {
614
+ transform: scale(1.2) translateY(-4px);
615
+ opacity: 1;
616
+ box-shadow: 0 8px 20px rgba(105, 51, 255, 0.4);
617
+ }
618
+ }
619
+
620
+ /* Markdown content styling */
621
+ .markdown-content h1,
622
+ .markdown-content h2,
623
+ .markdown-content h3 {
624
+ font-weight: 600;
625
+ margin: 1rem 0 0.75rem 0;
626
+ color: #1E293B;
627
+ }
628
+
629
+ .markdown-content h1 {
630
+ font-size: 1.25rem;
631
+ }
632
+
633
+ .markdown-content h2 {
634
+ font-size: 1.125rem;
635
+ }
636
+
637
+ .markdown-content h3 {
638
+ font-size: 1rem;
639
+ }
640
+
641
+ .markdown-content p {
642
+ margin: 0.75rem 0;
643
+ color: #374151;
644
+ }
645
+
646
+ .markdown-content ul,
647
+ .markdown-content ol {
648
+ margin: 0.75rem 0;
649
+ padding-left: 1.5rem;
650
+ }
651
+
652
+ .markdown-content li {
653
+ margin: 0.375rem 0;
654
+ color: #374151;
655
+ }
656
+
657
+ .markdown-content code {
658
+ background-color: #F3F4F6;
659
+ padding: 0.125rem 0.25rem;
660
+ border-radius: 0.25rem;
661
+ font-family: monospace;
662
+ font-size: 0.875em;
663
+ color: #1F2937;
664
+ }
665
+
666
+ .markdown-content pre {
667
+ background-color: #F3F4F6;
668
+ padding: 1rem;
669
+ border-radius: 0.5rem;
670
+ overflow-x: auto;
671
+ margin: 1rem 0;
672
+ border: 1px solid #E5E7EB;
673
+ }
674
+
675
+ .markdown-content pre code {
676
+ background: none;
677
+ padding: 0;
678
+ }
679
+
680
+ .markdown-content table {
681
+ border-collapse: collapse;
682
+ width: 100%;
683
+ margin: 1rem 0;
684
+ border: 1px solid #E5E7EB;
685
+ border-radius: 0.5rem;
686
+ overflow: hidden;
687
+ }
688
+
689
+ .markdown-content th,
690
+ .markdown-content td {
691
+ border: 1px solid #E5E7EB;
692
+ padding: 0.75rem;
693
+ text-align: left;
694
+ }
695
+
696
+ .markdown-content th {
697
+ background-color: #F9FAFB;
698
+ font-weight: 600;
699
+ color: #374151;
700
+ }
701
+
702
+ .markdown-content blockquote {
703
+ border-left: 4px solid #6933FF;
704
+ margin: 1rem 0;
705
+ padding-left: 1rem;
706
+ color: #6B7280;
707
+ font-style: italic;
708
+ }
709
+
710
+ /* Input area */
711
+ .input-area {
712
+ position: sticky;
713
+ bottom: 0;
714
+ background: white;
715
+ border-top: 1px solid #e5e7eb;
716
+ padding: 1rem;
717
+ box-shadow: 0 -4px 6px rgba(0, 0, 0, 0.05);
718
+ width: 100%;
719
+ z-index: 10;
720
+ }
721
+
722
+ .input-form {
723
+ max-width: 100%;
724
+ margin: 0 auto;
725
+ width: 100%;
726
+ padding: 0 1rem;
727
+ }
728
+
729
+ .input-container {
730
+ background: white;
731
+ border: 1px solid #d1d5db;
732
+ border-radius: 1.5rem;
733
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
734
+ overflow: hidden;
735
+ transition: all 0.2s ease;
736
+ }
737
+
738
+ .input-container:focus-within {
739
+ border-color: #10b981;
740
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
741
+ }
742
+
743
+ .input-wrapper {
744
+ display: flex;
745
+ align-items: center;
746
+ position: relative;
747
+ min-height: 3.5rem;
748
+ }
749
+
750
+ .input-controls {
751
+ display: flex;
752
+ align-items: center;
753
+ gap: 0.5rem;
754
+ padding: 0.75rem;
755
+ flex-shrink: 0;
756
+ }
757
+
758
+ .input-modern {
759
+ flex: 1;
760
+ background: transparent;
761
+ border: none;
762
+ outline: none;
763
+ padding: 1rem 1.5rem;
764
+ font-size: 1rem;
765
+ line-height: 1.5;
766
+ resize: none;
767
+ font-family: inherit;
768
+ color: #374151;
769
+ min-height: 3rem;
770
+ max-height: 200px;
771
+ overflow-y: auto;
772
+ box-sizing: border-box;
773
+ }
774
+
775
+ .input-modern::placeholder {
776
+ color: #9ca3af;
777
+ }
778
+
779
+ /* Modern Control Buttons */
780
+ .control-btn {
781
+ width: 2.5rem;
782
+ height: 2.5rem;
783
+ border: none;
784
+ background: #f3f4f6;
785
+ border-radius: 50%;
786
+ display: flex;
787
+ align-items: center;
788
+ justify-content: center;
789
+ color: #6b7280;
790
+ cursor: pointer;
791
+ transition: all 0.2s ease;
792
+ flex-shrink: 0;
793
+ }
794
+
795
+ .control-btn:hover {
796
+ background: #e5e7eb;
797
+ color: #6933FF;
798
+ transform: scale(1.1);
799
+ box-shadow: 0 8px 20px rgba(105, 51, 255, 0.2);
800
+ }
801
+
802
+ .control-btn:active {
803
+ transform: scale(0.95);
804
+ }
805
+
806
+ .control-btn.active {
807
+ background: #10b981;
808
+ color: white;
809
+ }
810
+
811
+ .send-btn {
812
+ width: 2.5rem;
813
+ height: 2.5rem;
814
+ border: none;
815
+ background: #10b981;
816
+ border-radius: 50%;
817
+ display: flex;
818
+ align-items: center;
819
+ justify-content: center;
820
+ color: white;
821
+ cursor: pointer;
822
+ transition: all 0.2s ease;
823
+ flex-shrink: 0;
824
+ }
825
+
826
+ .send-btn:hover {
827
+ background: #059669;
828
+ transform: scale(1.05);
829
+ }
830
+
831
+ .send-btn:disabled {
832
+ background: #d1d5db;
833
+ cursor: not-allowed;
834
+ transform: none;
835
+ }
836
+
837
+ .language-select {
838
+ border: none;
839
+ background: #f3f4f6;
840
+ border-radius: 1rem;
841
+ padding: 0.5rem 0.75rem;
842
+ font-size: 0.875rem;
843
+ color: #374151;
844
+ cursor: pointer;
845
+ transition: all 0.2s ease;
846
+ }
847
+
848
+ .language-select:hover {
849
+ background: #e5e7eb;
850
+ }
851
+
852
+ .audio-controls {
853
+ display: flex;
854
+ align-items: center;
855
+ gap: 0.5rem;
856
+ }
857
+
858
+ /* Voice toggle states */
859
+ #voice-toggle.btn-secondary {
860
+ background: #10b981;
861
+ color: white;
862
+ border-color: #10b981;
863
+ }
864
+
865
+ #voice-toggle.bg-red-600 {
866
+ background: #dc2626 !important;
867
+ color: white !important;
868
+ border-color: #dc2626 !important;
869
+ }
870
+
871
+ #voice-toggle:hover.bg-red-600 {
872
+ background: #b91c1c !important;
873
+ }
874
+
875
+ /* Recording pulse animation */
876
+ .recording-pulse {
877
+ animation: pulse-red 1.5s infinite;
878
+ }
879
+
880
+ @keyframes pulse-red {
881
+ 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
882
+ 70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
883
+ 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
884
+ }
885
+
886
+ .voice-input-btn {
887
+ position: absolute;
888
+ right: 1rem;
889
+ top: 50%;
890
+ transform: translateY(-50%);
891
+ background-color: #FFFFFF;
892
+ border: 1px solid #E2E8F0;
893
+ color: #1E293B;
894
+ padding: 0.75rem;
895
+ border-radius: 0.75rem;
896
+ cursor: pointer;
897
+ transition: all 0.2s ease;
898
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
899
+ z-index: 10;
900
+ width: 2.5rem;
901
+ height: 2.5rem;
902
+ display: flex;
903
+ align-items: center;
904
+ justify-content: center;
905
+ }
906
+
907
+ /* Fix audio controls positioning */
908
+ .audio-control {
909
+ padding: 0.75rem;
910
+ border-radius: 0.75rem;
911
+ background-color: #FFFFFF;
912
+ border: 1px solid #E2E8F0;
913
+ color: #1E293B;
914
+ transition: all 0.2s ease;
915
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
916
+ cursor: pointer;
917
+ width: 2.5rem;
918
+ height: 2.5rem;
919
+ display: flex;
920
+ align-items: center;
921
+ justify-content: center;
922
+ flex-shrink: 0;
923
+ }
924
+
925
+ .voice-input-btn:hover {
926
+ background-color: #F8FAFC;
927
+ transform: translateY(-50%) scale(1.05);
928
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
929
+ }
930
+
931
+ .audio-control:hover {
932
+ background-color: #F8FAFC;
933
+ transform: translateY(-1px);
934
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
935
+ }
936
+
937
+ .language-selector:hover {
938
+ background-color: #F8FAFC;
939
+ border-color: #CBD5E1;
940
+ transform: translateY(-1px);
941
+ }
942
+
943
+ .voice-input-btn.recording {
944
+ background-color: #EF4444;
945
+ color: white;
946
+ animation: recordingPulse 1.5s infinite;
947
+ }
948
+
949
+ .voice-input-btn.active {
950
+ background-color: #6933FF;
951
+ color: white;
952
+ border-color: #6933FF;
953
+ }
954
+
955
+ .audio-controls {
956
+ display: flex;
957
+ align-items: center;
958
+ gap: 1rem;
959
+ margin-left: 1rem;
960
+ flex-shrink: 0;
961
+ }
962
+
963
+ /* Audio controls */
964
+ .audio-control {
965
+ padding: 0.75rem;
966
+ border-radius: 0.75rem;
967
+ background-color: #FFFFFF;
968
+ border: 1px solid #E2E8F0;
969
+ color: #1E293B;
970
+ transition: all 0.2s ease;
971
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
972
+ cursor: pointer;
973
+ width: 2.75rem;
974
+ height: 2.75rem;
975
+ display: flex;
976
+ align-items: center;
977
+ justify-content: center;
978
+ }
979
+
980
+
981
+
982
+ .audio-control.active {
983
+ @apply bg-cockroach-primary text-white border-cockroach-primary;
984
+ }
985
+
986
+ /* Language selector */
987
+ .language-selector {
988
+ background-color: #FFFFFF;
989
+ border: 1px solid #E2E8F0;
990
+ border-radius: 0.75rem;
991
+ padding: 0.75rem 1rem;
992
+ color: #1E293B;
993
+ font-size: 0.875rem;
994
+ transition: all 0.2s ease;
995
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
996
+ cursor: pointer;
997
+ min-width: 4rem;
998
+ height: 2.5rem;
999
+ display: flex;
1000
+ align-items: center;
1001
+ justify-content: center;
1002
+ }
1003
+
1004
+ .language-selector:focus {
1005
+ outline: none;
1006
+ border-color: #6933FF;
1007
+ box-shadow: 0 0 0 3px rgba(105, 51, 255, 0.1);
1008
+ }
1009
+
1010
+ .send-button {
1011
+ background-color: #6933FF;
1012
+ color: white;
1013
+ border: none;
1014
+ padding: 1rem 1.5rem;
1015
+ border-radius: 0.5rem;
1016
+ font-weight: 500;
1017
+ cursor: pointer;
1018
+ transition: all 0.2s ease;
1019
+ display: flex;
1020
+ align-items: center;
1021
+ gap: 0.5rem;
1022
+ font-size: 1.125rem;
1023
+ box-shadow: 0 4px 12px rgba(105, 51, 255, 0.3);
1024
+ }
1025
+
1026
+ .send-button:hover {
1027
+ background-color: #5B21B6;
1028
+ transform: translateY(-2px);
1029
+ box-shadow: 0 6px 16px rgba(105, 51, 255, 0.4);
1030
+ }
1031
+
1032
+ /* Animations */
1033
+ @keyframes messageSlideIn {
1034
+ from {
1035
+ opacity: 0;
1036
+ transform: translateY(10px);
1037
+ }
1038
+ to {
1039
+ opacity: 1;
1040
+ transform: translateY(0);
1041
+ }
1042
+ }
1043
+
1044
+ @keyframes recordingPulse {
1045
+ 0%, 100% {
1046
+ box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
1047
+ }
1048
+ 50% {
1049
+ box-shadow: 0 0 0 10px rgba(239, 68, 68, 0);
1050
+ }
1051
+ }
1052
+
1053
+ /* Mobile overlay */
1054
+ .mobile-overlay {
1055
+ position: fixed;
1056
+ inset: 0;
1057
+ background-color: rgba(0, 0, 0, 0.5);
1058
+ z-index: 40;
1059
+ display: none;
1060
+ }
1061
+
1062
+ .mobile-overlay.visible {
1063
+ display: block;
1064
+ }
1065
+
1066
+ /* Responsive design */
1067
+ @media (max-width: 1024px) {
1068
+ .sidebar {
1069
+ position: fixed;
1070
+ left: 0;
1071
+ top: 0;
1072
+ height: 100vh;
1073
+ z-index: 50;
1074
+ }
1075
+
1076
+ .sidebar-toggle {
1077
+ display: block;
1078
+ }
1079
+
1080
+ .main-content {
1081
+ margin-left: 0 !important;
1082
+ }
1083
+ }
1084
+
1085
+ @media (max-width: 768px) {
1086
+ .header {
1087
+ padding: 1rem;
1088
+ }
1089
+
1090
+ .header-title {
1091
+ font-size: 1.25rem;
1092
+ }
1093
+
1094
+ .provider-badges {
1095
+ flex-direction: column;
1096
+ align-items: flex-start;
1097
+ gap: 0.5rem;
1098
+ }
1099
+
1100
+ .input-area {
1101
+ padding: 1rem;
1102
+ }
1103
+
1104
+ .input-container {
1105
+ flex-direction: column;
1106
+ gap: 0.75rem;
1107
+ }
1108
+
1109
+ .audio-controls {
1110
+ justify-content: center;
1111
+ }
1112
+
1113
+ .chat-container {
1114
+ padding: 1rem;
1115
+ gap: 1rem;
1116
+ }
1117
+
1118
+ .message {
1119
+ gap: 0.75rem;
1120
+ }
1121
+
1122
+ .message-bubble {
1123
+ padding: 1rem;
1124
+ }
1125
+
1126
+ .sidebar-nav {
1127
+ padding: 1rem;
1128
+ }
1129
+
1130
+ .sidebar-item {
1131
+ padding: 0.5rem 0.75rem;
1132
+ }
1133
+
1134
+ .copy-button {
1135
+ top: 0.5rem;
1136
+ right: 0.5rem;
1137
+ width: 1.75rem;
1138
+ height: 1.75rem;
1139
+ }
1140
+ }
1141
+
1142
+ /* Utility classes */
1143
+ .hidden {
1144
+ display: none !important;
1145
+ }
1146
+
1147
+ /* Ensure loading message is hidden by default */
1148
+ #loading-message.hidden {
1149
+ display: none !important;
1150
+ }
1151
+
1152
+ /* Force loading message to be visible when not hidden */
1153
+ #loading-message:not(.hidden) {
1154
+ display: block !important;
1155
+ }
1156
+
1157
+ .visible {
1158
+ display: block !important;
1159
+ }
1160
+
1161
+ /* Focus states for accessibility */
1162
+ button:focus,
1163
+ input:focus,
1164
+ select:focus {
1165
+ outline: 2px solid #6933FF;
1166
+ outline-offset: 2px;
1167
+ }
1168
+
1169
+ /* High contrast mode support */
1170
+ @media (prefers-contrast: high) {
1171
+ .message-bubble.user {
1172
+ background-color: #5B21B6;
1173
+ }
1174
+
1175
+ .message-bubble.assistant {
1176
+ background-color: #F1F5F9;
1177
+ border-color: #475569;
1178
+ }
1179
+
1180
+ .sidebar-item.active {
1181
+ background-color: #5B21B6;
1182
+ }
1183
+ }
1184
+
1185
+ /* Modern button styles */
1186
+ .btn-modern {
1187
+ padding: 0.875rem 1.75rem;
1188
+ border-radius: 1rem;
1189
+ font-weight: 600;
1190
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1191
+ cursor: pointer;
1192
+ border: none;
1193
+ display: inline-flex;
1194
+ align-items: center;
1195
+ justify-content: center;
1196
+ gap: 0.5rem;
1197
+ text-decoration: none;
1198
+ font-size: 0.875rem;
1199
+ position: relative;
1200
+ overflow: hidden;
1201
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
1202
+ backdrop-filter: blur(10px);
1203
+ }
1204
+
1205
+
1206
+
1207
+ .btn-modern::before {
1208
+ content: '';
1209
+ position: absolute;
1210
+ top: 0;
1211
+ left: -100%;
1212
+ width: 100%;
1213
+ height: 100%;
1214
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
1215
+ transition: left 0.5s;
1216
+ }
1217
+
1218
+ .btn-modern:hover::before {
1219
+ left: 100%;
1220
+ }
1221
+
1222
+ .btn-modern:hover {
1223
+ transform: translateY(-2px);
1224
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
1225
+ }
1226
+
1227
+ .btn-primary {
1228
+ background: linear-gradient(135deg, #6933FF 0%, #8B5CF6 100%);
1229
+ color: white;
1230
+ }
1231
+
1232
+ .btn-primary:hover {
1233
+ background: linear-gradient(135deg, #5B21B6 0%, #7C3AED 100%);
1234
+ }
1235
+
1236
+ .btn-secondary {
1237
+ background: #FFFFFF;
1238
+ color: #1E293B;
1239
+ border: 2px solid #E2E8F0;
1240
+ }
1241
+
1242
+ .btn-secondary:hover {
1243
+ background: #F8FAFC;
1244
+ border-color: #CBD5E1;
1245
+ }
1246
+
1247
+ /* Enhanced input focus states */
1248
+ .message-input:focus {
1249
+ outline: none;
1250
+ border-color: #6933FF;
1251
+ box-shadow: 0 0 0 4px rgba(105, 51, 255, 0.15);
1252
+ transform: translateY(-2px);
1253
+ }
1254
+
1255
+ /* Modern card shadows */
1256
+ .message-bubble {
1257
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
1258
+ transition: all 0.3s ease;
1259
+ }
1260
+
1261
+ .message-bubble:hover {
1262
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
1263
+ transform: translateY(-1px);
1264
+ }
1265
+
1266
+ /* Reduced motion support */
1267
+ @media (prefers-reduced-motion: reduce) {
1268
+ * {
1269
+ animation-duration: 0.01ms !important;
1270
+ animation-iteration-count: 1 !important;
1271
+ transition-duration: 0.01ms !important;
1272
+ }
1273
+ }
1274
+