agentgui 1.0.853 → 1.0.854

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.
@@ -1,47 +1,67 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
2
+
1
3
  *, *::before, *::after { box-sizing: border-box; }
2
4
 
3
5
  :root {
4
- --color-primary: #3b82f6;
5
- --color-primary-dark: #1e40af;
6
+ --color-primary: #6366f1;
7
+ --color-primary-dark: #4f46e5;
8
+ --color-primary-rgb: 99,102,241;
6
9
  --color-bg-primary: #ffffff;
7
- --color-bg-secondary: #f9fafb;
8
- --color-bg-code: #f1f5f9;
9
- --color-code-text: #1e293b;
10
- --color-code-border: #cbd5e1;
11
- --color-thinking-bg: #f5f3ff;
10
+ --color-bg-secondary: #f4f4f5;
11
+ --color-bg-surface: #f9fafb;
12
+ --color-bg-input: #ffffff;
13
+ --color-bg-code: #0d1117;
12
14
  --color-text-primary: #111827;
13
15
  --color-text-secondary: #6b7280;
16
+ --color-text-muted: #9ca3af;
14
17
  --color-border: #e5e7eb;
18
+ --color-border-strong: #d1d5db;
15
19
  --color-success: #10b981;
16
20
  --color-error: #ef4444;
17
21
  --color-warning: #f59e0b;
18
22
  --color-info: #0891b2;
19
- --sidebar-width: 300px;
20
- --header-height: 52px;
23
+ --sidebar-width: 260px;
24
+ --header-height: 48px;
21
25
  --msg-max-width: 800px;
26
+ --radius-sm: 0.375rem;
27
+ --radius-md: 0.75rem;
28
+ --radius-lg: 1rem;
29
+ --radius-xl: 1.25rem;
30
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
31
+ --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
32
+ --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
33
+ --transition-fast: 150ms ease;
34
+ --transition-base: 200ms ease;
22
35
  }
23
36
 
24
37
  html.dark {
25
- --color-bg-primary: #1a1a1a;
26
- --color-bg-secondary: #242424;
27
- --color-text-primary: #e5e5e5;
28
- --color-text-secondary: #a3a3a3;
29
- --color-border: #333333;
30
- --color-primary: #737373;
31
- --color-primary-dark: #525252;
32
- --color-bg-code: #1e293b;
33
- --color-code-text: #e2e8f0;
34
- --color-code-border: #334155;
35
- --color-thinking-bg: #1e1a2e;
38
+ --color-primary: #818cf8;
39
+ --color-primary-dark: #6366f1;
40
+ --color-primary-rgb: 129,140,248;
41
+ --color-bg-primary: #0f0f10;
42
+ --color-bg-secondary: #1a1a1e;
43
+ --color-bg-surface: #18181b;
44
+ --color-bg-input: #1e1e23;
45
+ --color-bg-code: #0d1117;
46
+ --color-text-primary: #e4e4e7;
47
+ --color-text-secondary: #a1a1aa;
48
+ --color-text-muted: #71717a;
49
+ --color-border: #27272a;
50
+ --color-border-strong: #3f3f46;
51
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
52
+ --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
53
+ --shadow-lg: 0 8px 24px rgba(0,0,0,0.5);
36
54
  }
37
55
 
38
56
  html, body {
39
57
  margin: 0;
40
58
  padding: 0;
41
59
  height: 100%;
42
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
60
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
43
61
  background-color: var(--color-bg-primary);
44
62
  color: var(--color-text-primary);
63
+ -webkit-font-smoothing: antialiased;
64
+ -moz-osx-font-smoothing: grayscale;
45
65
  }
46
66
 
47
67
  /* ===== ROOT LAYOUT: sidebar + main, full viewport ===== */
@@ -62,6 +82,7 @@
62
82
  display: flex;
63
83
  flex-direction: column;
64
84
  background-color: var(--color-bg-secondary);
85
+ border-right: 1px solid var(--color-border);
65
86
  overflow: hidden;
66
87
  transition: none !important;
67
88
  animation: none !important;
@@ -76,34 +97,35 @@
76
97
  }
77
98
 
78
99
  .sidebar-header {
79
- padding: 0.75rem 1rem;
100
+ padding: 0.875rem 1rem 0.75rem;
80
101
  display: flex;
81
102
  justify-content: space-between;
82
103
  align-items: center;
83
104
  flex-shrink: 0;
84
105
  min-height: var(--header-height);
106
+ border-bottom: 1px solid var(--color-border);
85
107
  }
86
108
 
87
109
  .sidebar-header h2 {
88
110
  margin: 0;
89
- font-size: 0.875rem;
90
- font-weight: 600;
91
- text-transform: uppercase;
92
- letter-spacing: 0.05em;
93
- color: var(--color-text-secondary);
111
+ font-size: 1rem;
112
+ font-weight: 700;
113
+ letter-spacing: -0.01em;
114
+ color: var(--color-text-primary);
94
115
  white-space: nowrap;
95
116
  overflow: hidden;
96
117
  }
97
118
 
98
119
  .sidebar-new-btn {
99
- padding: 0.375rem 0.625rem;
100
- font-size: 0.75rem;
120
+ padding: 0.375rem 0.75rem;
121
+ font-size: 0.8rem;
122
+ font-weight: 600;
101
123
  background-color: var(--color-primary);
102
124
  color: white;
103
125
  border: none;
104
- border-radius: 0.375rem;
126
+ border-radius: var(--radius-md);
105
127
  cursor: pointer;
106
- transition: background-color 0.2s;
128
+ transition: background-color var(--transition-fast);
107
129
  white-space: nowrap;
108
130
  flex-shrink: 0;
109
131
  }
@@ -132,6 +154,57 @@
132
154
 
133
155
  .sidebar-clone-btn:hover { border-color: var(--color-primary); color: var(--color-primary); }
134
156
 
157
+ /* Sidebar overflow menu */
158
+ .sidebar-overflow-btn {
159
+ width: 28px;
160
+ height: 28px;
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ background: none;
165
+ border: none;
166
+ border-radius: var(--radius-sm);
167
+ cursor: pointer;
168
+ color: var(--color-text-secondary);
169
+ font-size: 1.1rem;
170
+ letter-spacing: 1px;
171
+ transition: background-color var(--transition-fast);
172
+ flex-shrink: 0;
173
+ }
174
+ .sidebar-overflow-btn:hover { background: var(--color-bg-primary); color: var(--color-text-primary); }
175
+
176
+ .sidebar-overflow-menu {
177
+ position: absolute;
178
+ top: calc(100% + 4px);
179
+ right: 0;
180
+ background: var(--color-bg-primary);
181
+ border: 1px solid var(--color-border);
182
+ border-radius: var(--radius-md);
183
+ box-shadow: var(--shadow-lg);
184
+ min-width: 180px;
185
+ z-index: 100;
186
+ padding: 0.25rem 0;
187
+ display: none;
188
+ }
189
+ .sidebar-overflow-menu.open { display: block; }
190
+ .sidebar-overflow-menu-item {
191
+ display: flex;
192
+ align-items: center;
193
+ gap: 0.625rem;
194
+ padding: 0.5rem 0.875rem;
195
+ font-size: 0.825rem;
196
+ color: var(--color-text-primary);
197
+ cursor: pointer;
198
+ transition: background-color var(--transition-fast);
199
+ border: none;
200
+ background: none;
201
+ width: 100%;
202
+ text-align: left;
203
+ }
204
+ .sidebar-overflow-menu-item:hover { background: var(--color-bg-secondary); }
205
+ .sidebar-overflow-menu-item.danger { color: var(--color-error); }
206
+ .sidebar-overflow-menu-wrapper { position: relative; }
207
+
135
208
  .clone-input-bar {
136
209
  display: flex;
137
210
  align-items: center;
@@ -212,22 +285,22 @@
212
285
  }
213
286
 
214
287
  .conversation-item {
215
- padding: 0.75rem 0.75rem;
288
+ padding: 0.625rem 0.75rem;
216
289
  margin: 0.125rem 0.5rem;
217
- border-radius: 0.375rem;
290
+ border-radius: var(--radius-md);
218
291
  cursor: pointer;
219
- transition: background-color 0.15s;
220
- border-left: 3px solid transparent;
292
+ transition: background-color var(--transition-fast);
293
+ border-left: none;
221
294
  user-select: none;
222
295
  }
223
296
 
224
- .conversation-item:hover { background-color: var(--color-bg-primary); }
297
+ .conversation-item:hover { background-color: rgba(var(--color-primary-rgb),0.06); }
225
298
 
226
299
  .conversation-item.active {
227
- background-color: var(--color-primary);
228
- color: white;
229
- border-left-color: var(--color-primary-dark);
300
+ background-color: rgba(var(--color-primary-rgb),0.1);
301
+ color: var(--color-primary);
230
302
  }
303
+ .conversation-item.active .conversation-item-meta { color: var(--color-primary); opacity: 0.7; }
231
304
 
232
305
  .conversation-item-title {
233
306
  font-weight: 500;
@@ -247,7 +320,7 @@
247
320
  text-overflow: ellipsis;
248
321
  }
249
322
 
250
- .conversation-item.active .conversation-item-meta { color: rgba(255,255,255,0.7); }
323
+ /* conversation-item.active meta color handled in active block */
251
324
 
252
325
  .conversation-streaming-badge {
253
326
  display: inline-flex;
@@ -258,15 +331,37 @@
258
331
 
259
332
  .streaming-dot {
260
333
  display: inline-block;
261
- width: 0.5rem;
262
- height: 0.5rem;
334
+ width: 0.4rem;
335
+ height: 0.4rem;
263
336
  border-radius: 50%;
264
337
  background-color: var(--color-success);
265
338
  animation: pulse 1.5s ease-in-out infinite;
266
339
  }
267
340
 
268
341
  .conversation-item.active .streaming-dot {
269
- background-color: #fff;
342
+ background-color: var(--color-success);
343
+ }
344
+
345
+ /* Typing dots for streaming indicator */
346
+ .typing-dots {
347
+ display: inline-flex;
348
+ align-items: center;
349
+ gap: 3px;
350
+ padding: 0 2px;
351
+ }
352
+ .typing-dots span {
353
+ display: inline-block;
354
+ width: 5px;
355
+ height: 5px;
356
+ border-radius: 50%;
357
+ background-color: var(--color-text-muted);
358
+ animation: typing-bounce 1.4s ease-in-out infinite;
359
+ }
360
+ .typing-dots span:nth-child(2) { animation-delay: 0.2s; }
361
+ .typing-dots span:nth-child(3) { animation-delay: 0.4s; }
362
+ @keyframes typing-bounce {
363
+ 0%, 80%, 100% { transform: scale(0.7); opacity: 0.5; }
364
+ 40% { transform: scale(1); opacity: 1; }
270
365
  }
271
366
 
272
367
  .conversation-item {
@@ -282,6 +377,31 @@
282
377
  overflow: hidden;
283
378
  }
284
379
 
380
+ /* Date group headers in sidebar */
381
+ .conv-date-group-header {
382
+ padding: 0.5rem 1.25rem 0.25rem;
383
+ font-size: 0.7rem;
384
+ font-weight: 600;
385
+ text-transform: uppercase;
386
+ letter-spacing: 0.06em;
387
+ color: var(--color-text-muted);
388
+ position: sticky;
389
+ top: 0;
390
+ background: var(--color-bg-secondary);
391
+ z-index: 1;
392
+ margin-top: 0.5rem;
393
+ }
394
+ .conv-date-group-header:first-child { margin-top: 0; }
395
+
396
+ /* Agent color dot */
397
+ .agent-color-dot {
398
+ width: 8px;
399
+ height: 8px;
400
+ border-radius: 50%;
401
+ flex-shrink: 0;
402
+ margin-right: 0.375rem;
403
+ }
404
+
285
405
  .conversation-item.pinned { cursor: grab; }
286
406
  .conversation-item.pinned:active { cursor: grabbing; }
287
407
  .conversation-item-checkbox {
@@ -339,14 +459,16 @@
339
459
  .conversation-item.active .conversation-item-delete,
340
460
  .conversation-item.active .conversation-item-archive,
341
461
  .conversation-item.active .conversation-item-export {
342
- color: rgba(255,255,255,0.8);
462
+ color: var(--color-primary);
463
+ opacity: 0.7;
343
464
  }
344
465
 
345
466
  .conversation-item.active .conversation-item-delete:hover,
346
467
  .conversation-item.active .conversation-item-archive:hover,
347
468
  .conversation-item.active .conversation-item-export:hover {
348
- background-color: rgba(255,255,255,0.2);
349
- color: white;
469
+ background-color: rgba(var(--color-primary-rgb),0.15);
470
+ color: var(--color-primary);
471
+ opacity: 1;
350
472
  }
351
473
 
352
474
  .sidebar-empty {
@@ -372,10 +494,11 @@
372
494
  align-items: center;
373
495
  gap: 0.75rem;
374
496
  padding: 0 1rem;
375
- height: var(--header-height);
376
- min-height: var(--header-height);
497
+ height: 48px;
498
+ min-height: 48px;
377
499
  flex-shrink: 0;
378
- background-color: var(--color-bg-secondary);
500
+ background: var(--color-bg-primary);
501
+ border-bottom: 1px solid var(--color-border);
379
502
  }
380
503
 
381
504
  .sidebar-toggle-btn {
@@ -405,8 +528,9 @@
405
528
  }
406
529
 
407
530
  .header-title {
408
- font-size: 1.125rem;
531
+ font-size: 0.9375rem;
409
532
  font-weight: 600;
533
+ letter-spacing: -0.01em;
410
534
  margin: 0;
411
535
  flex: 1;
412
536
  min-width: 0;
@@ -569,6 +693,84 @@
569
693
  flex-direction: column;
570
694
  }
571
695
 
696
+ /* ===== MESSAGE BUBBLES ===== */
697
+ .message-user-bubble {
698
+ display: flex;
699
+ justify-content: flex-end;
700
+ margin: 0.75rem 0;
701
+ padding: 0 1rem;
702
+ }
703
+
704
+ .message-user-bubble .bubble-content {
705
+ max-width: 75%;
706
+ background: var(--color-primary);
707
+ color: white;
708
+ padding: 0.625rem 0.875rem;
709
+ border-radius: 18px 18px 4px 18px;
710
+ font-size: 0.9375rem;
711
+ line-height: 1.5;
712
+ word-break: break-word;
713
+ }
714
+
715
+ html.dark .message-user-bubble .bubble-content {
716
+ background: var(--color-primary);
717
+ }
718
+
719
+ .message-agent-row {
720
+ display: flex;
721
+ align-items: flex-start;
722
+ gap: 0.625rem;
723
+ margin: 0.5rem 0;
724
+ padding: 0 0.5rem;
725
+ }
726
+
727
+ .message-agent-icon {
728
+ width: 28px;
729
+ height: 28px;
730
+ border-radius: 50%;
731
+ display: flex;
732
+ align-items: center;
733
+ justify-content: center;
734
+ font-size: 0.75rem;
735
+ font-weight: 700;
736
+ color: white;
737
+ flex-shrink: 0;
738
+ margin-top: 2px;
739
+ }
740
+
741
+ /* Per-message hover actions */
742
+ .message-actions {
743
+ position: absolute;
744
+ top: -12px;
745
+ right: 8px;
746
+ display: flex;
747
+ gap: 0.25rem;
748
+ opacity: 0;
749
+ transition: opacity var(--transition-fast);
750
+ background: var(--color-bg-primary);
751
+ border: 1px solid var(--color-border);
752
+ border-radius: var(--radius-sm);
753
+ padding: 0.125rem 0.25rem;
754
+ box-shadow: var(--shadow-sm);
755
+ }
756
+ .message-wrapper:hover .message-actions { opacity: 1; }
757
+ .message-action-btn {
758
+ width: 24px;
759
+ height: 24px;
760
+ display: flex;
761
+ align-items: center;
762
+ justify-content: center;
763
+ background: none;
764
+ border: none;
765
+ cursor: pointer;
766
+ color: var(--color-text-secondary);
767
+ border-radius: 3px;
768
+ transition: background-color var(--transition-fast);
769
+ }
770
+ .message-action-btn:hover { background: var(--color-bg-secondary); color: var(--color-text-primary); }
771
+ .message-action-btn svg { width: 13px; height: 13px; }
772
+ .message-wrapper { position: relative; }
773
+
572
774
  #output {
573
775
  display: flex;
574
776
  flex-direction: column;
@@ -815,13 +1017,128 @@
815
1017
  white-space: nowrap;
816
1018
  }
817
1019
 
818
- /* --- Input area: fixed at bottom --- */
1020
+ /* ===== INPUT AREA REDESIGN ===== */
819
1021
  .input-section {
820
1022
  flex-shrink: 0;
821
- background-color: var(--color-bg-primary);
822
- padding: 0.75rem 1rem;
1023
+ padding: 0.75rem 1rem 1rem;
1024
+ background: var(--color-bg-primary);
1025
+ border-top: 1px solid var(--color-border);
823
1026
  }
824
1027
 
1028
+ .input-card {
1029
+ max-width: var(--msg-max-width);
1030
+ margin: 0 auto;
1031
+ background: var(--color-bg-input);
1032
+ border: 1px solid var(--color-border-strong);
1033
+ border-radius: var(--radius-xl);
1034
+ box-shadow: var(--shadow-md);
1035
+ overflow: hidden;
1036
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
1037
+ }
1038
+
1039
+ .input-card:focus-within {
1040
+ border-color: var(--color-primary);
1041
+ box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb),0.12), var(--shadow-md);
1042
+ }
1043
+
1044
+ .input-card-textarea {
1045
+ width: 100%;
1046
+ padding: 0.875rem 1rem 0.5rem;
1047
+ background: transparent;
1048
+ border: none;
1049
+ outline: none;
1050
+ resize: none;
1051
+ font-size: 0.9375rem;
1052
+ font-family: inherit;
1053
+ color: var(--color-text-primary);
1054
+ line-height: 1.6;
1055
+ max-height: 180px;
1056
+ overflow-y: auto;
1057
+ }
1058
+
1059
+ .input-card-textarea::placeholder { color: var(--color-text-muted); }
1060
+
1061
+ .input-card-toolbar {
1062
+ display: flex;
1063
+ align-items: center;
1064
+ padding: 0.5rem 0.75rem 0.625rem;
1065
+ gap: 0.5rem;
1066
+ border-top: 1px solid var(--color-border);
1067
+ }
1068
+
1069
+ .input-card-selectors {
1070
+ display: flex;
1071
+ align-items: center;
1072
+ gap: 0.375rem;
1073
+ flex: 1;
1074
+ min-width: 0;
1075
+ overflow: hidden;
1076
+ }
1077
+
1078
+ .input-chip-select {
1079
+ padding: 0.3rem 0.5rem;
1080
+ font-size: 0.775rem;
1081
+ font-weight: 500;
1082
+ border: 1px solid var(--color-border);
1083
+ border-radius: 999px;
1084
+ background: var(--color-bg-secondary);
1085
+ color: var(--color-text-secondary);
1086
+ cursor: pointer;
1087
+ outline: none;
1088
+ transition: border-color var(--transition-fast), background-color var(--transition-fast);
1089
+ max-width: 130px;
1090
+ white-space: nowrap;
1091
+ overflow: hidden;
1092
+ text-overflow: ellipsis;
1093
+ }
1094
+
1095
+ .input-chip-select:hover, .input-chip-select:focus {
1096
+ border-color: var(--color-primary);
1097
+ color: var(--color-text-primary);
1098
+ }
1099
+
1100
+ .input-card-actions {
1101
+ display: flex;
1102
+ align-items: center;
1103
+ gap: 0.375rem;
1104
+ flex-shrink: 0;
1105
+ }
1106
+
1107
+ .input-icon-btn {
1108
+ width: 32px;
1109
+ height: 32px;
1110
+ display: flex;
1111
+ align-items: center;
1112
+ justify-content: center;
1113
+ background: none;
1114
+ border: none;
1115
+ border-radius: var(--radius-sm);
1116
+ cursor: pointer;
1117
+ color: var(--color-text-secondary);
1118
+ transition: background-color var(--transition-fast), color var(--transition-fast);
1119
+ }
1120
+ .input-icon-btn:hover { background: var(--color-bg-secondary); color: var(--color-text-primary); }
1121
+ .input-icon-btn svg { width: 16px; height: 16px; }
1122
+
1123
+ .input-send-btn {
1124
+ width: 34px;
1125
+ height: 34px;
1126
+ display: flex;
1127
+ align-items: center;
1128
+ justify-content: center;
1129
+ background: var(--color-primary);
1130
+ border: none;
1131
+ border-radius: var(--radius-md);
1132
+ cursor: pointer;
1133
+ color: white;
1134
+ transition: background-color var(--transition-fast), transform 0.1s;
1135
+ flex-shrink: 0;
1136
+ }
1137
+ .input-send-btn:hover { background: var(--color-primary-dark); }
1138
+ .input-send-btn:active { transform: scale(0.95); }
1139
+ .input-send-btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }
1140
+ .input-send-btn svg { width: 16px; height: 16px; }
1141
+
825
1142
  .input-wrapper {
826
1143
  max-width: var(--msg-max-width);
827
1144
  margin: 0 auto;
@@ -1084,9 +1401,9 @@
1084
1401
  .permanently-expanded > summary::marker { display: none; content: ''; }
1085
1402
 
1086
1403
  /* ===== Folder Browser Modal ===== */
1087
- .folder-modal-overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); z-index:2000; align-items:center; justify-content:center; }
1404
+ .folder-modal-overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); z-index:2000; align-items:center; justify-content:center; transition:opacity 0.15s ease; animation:fadeIn 0.15s ease; }
1088
1405
  .folder-modal-overlay.visible { display:flex; }
1089
- .folder-modal { background:var(--color-bg-primary); border-radius:0.5rem; width:500px; max-width:90vw; max-height:80vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,0.3); }
1406
+ .folder-modal { background:var(--color-bg-primary); border-radius:var(--radius-xl); width:500px; max-width:90vw; max-height:80vh; display:flex; flex-direction:column; box-shadow:var(--shadow-lg); animation:scaleIn 0.15s ease; }
1090
1407
  .folder-modal-header { padding:1rem; display:flex; justify-content:space-between; align-items:center; flex-shrink:0; }
1091
1408
  .folder-modal-header h3 { margin:0; font-size:1rem; font-weight:600; }
1092
1409
  .folder-modal-close { background:none; border:none; font-size:1.25rem; cursor:pointer; color:var(--color-text-secondary); padding:0.25rem; line-height:1; }
@@ -1106,6 +1423,15 @@
1106
1423
  .folder-modal-footer { padding:0.75rem 1rem; display:flex; justify-content:flex-end; gap:0.5rem; flex-shrink:0; }
1107
1424
  .folder-modal-footer .btn { padding:0.5rem 1rem; font-size:0.8rem; }
1108
1425
 
1426
+ @keyframes fadeIn {
1427
+ from { opacity: 0; }
1428
+ to { opacity: 1; }
1429
+ }
1430
+ @keyframes scaleIn {
1431
+ from { opacity: 0; transform: scale(0.96); }
1432
+ to { opacity: 1; transform: scale(1); }
1433
+ }
1434
+
1109
1435
  .btn { padding:0.5rem 1rem; border:none; border-radius:0.375rem; font-weight:500; cursor:pointer; transition:all 0.15s; font-size:0.875rem; }
1110
1436
  .btn-primary { background-color:var(--color-primary); color:white; }
1111
1437
  .btn-primary:hover:not(:disabled) { background-color:var(--color-primary-dark); }
@@ -1228,6 +1554,15 @@
1228
1554
  scrollbar-color: #475569 transparent;
1229
1555
  }
1230
1556
 
1557
+ /* Modern thin scrollbars */
1558
+ .sidebar-list, #output-scroll, .message-scroll-area {
1559
+ scrollbar-width: thin;
1560
+ scrollbar-color: transparent transparent;
1561
+ }
1562
+ .sidebar-list:hover, #output-scroll:hover {
1563
+ scrollbar-color: var(--color-border-strong) transparent;
1564
+ }
1565
+
1231
1566
  .voice-mic-btn {
1232
1567
  position: absolute;
1233
1568
  top: 4px;
@@ -1483,6 +1818,130 @@
1483
1818
  .icon-sm svg { width: 1rem !important; height: 1rem !important; }
1484
1819
  .icon-lg svg { width: 1.5rem !important; height: 1.5rem !important; }
1485
1820
 
1821
+ /* ===== STREAMING STATUS BAR ===== */
1822
+ .streaming-status-bar {
1823
+ max-width: var(--msg-max-width);
1824
+ margin: 0 auto 0.5rem;
1825
+ padding: 0.5rem 1rem;
1826
+ background: rgba(var(--color-primary-rgb), 0.06);
1827
+ border: 1px solid rgba(var(--color-primary-rgb), 0.15);
1828
+ border-radius: var(--radius-lg);
1829
+ display: none;
1830
+ align-items: center;
1831
+ gap: 0.625rem;
1832
+ font-size: 0.825rem;
1833
+ color: var(--color-primary);
1834
+ animation: slideUpFade 0.2s ease;
1835
+ }
1836
+ .streaming-status-bar.visible { display: flex; }
1837
+ .streaming-status-bar .status-agent-name { font-weight: 600; }
1838
+ .streaming-status-bar .status-cancel-btn {
1839
+ margin-left: auto;
1840
+ padding: 0.2rem 0.625rem;
1841
+ font-size: 0.75rem;
1842
+ background: none;
1843
+ border: 1px solid rgba(var(--color-primary-rgb), 0.3);
1844
+ border-radius: 999px;
1845
+ cursor: pointer;
1846
+ color: var(--color-primary);
1847
+ transition: background-color var(--transition-fast);
1848
+ }
1849
+ .streaming-status-bar .status-cancel-btn:hover { background: rgba(var(--color-primary-rgb), 0.1); }
1850
+ @keyframes slideUpFade {
1851
+ from { opacity: 0; transform: translateY(4px); }
1852
+ to { opacity: 1; transform: translateY(0); }
1853
+ }
1854
+
1855
+ /* ===== WELCOME EMPTY STATE ===== */
1856
+ .welcome-screen {
1857
+ display: none;
1858
+ flex-direction: column;
1859
+ align-items: center;
1860
+ justify-content: center;
1861
+ flex: 1;
1862
+ padding: 2rem 1.5rem;
1863
+ text-align: center;
1864
+ gap: 1.5rem;
1865
+ }
1866
+ .welcome-screen.visible { display: flex; }
1867
+
1868
+ .welcome-logo {
1869
+ width: 56px;
1870
+ height: 56px;
1871
+ background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
1872
+ border-radius: var(--radius-xl);
1873
+ display: flex;
1874
+ align-items: center;
1875
+ justify-content: center;
1876
+ color: white;
1877
+ font-weight: 800;
1878
+ font-size: 1.5rem;
1879
+ box-shadow: var(--shadow-md);
1880
+ }
1881
+
1882
+ .welcome-title {
1883
+ font-size: 1.5rem;
1884
+ font-weight: 700;
1885
+ color: var(--color-text-primary);
1886
+ letter-spacing: -0.02em;
1887
+ margin: 0;
1888
+ }
1889
+
1890
+ .welcome-subtitle {
1891
+ font-size: 0.9375rem;
1892
+ color: var(--color-text-secondary);
1893
+ margin: -0.75rem 0 0;
1894
+ }
1895
+
1896
+ .welcome-agents-grid {
1897
+ display: grid;
1898
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
1899
+ gap: 0.75rem;
1900
+ width: 100%;
1901
+ max-width: 640px;
1902
+ }
1903
+
1904
+ .welcome-agent-card {
1905
+ padding: 0.875rem 1rem;
1906
+ background: var(--color-bg-secondary);
1907
+ border: 1px solid var(--color-border);
1908
+ border-radius: var(--radius-lg);
1909
+ cursor: pointer;
1910
+ transition: all var(--transition-fast);
1911
+ text-align: left;
1912
+ display: flex;
1913
+ flex-direction: column;
1914
+ gap: 0.375rem;
1915
+ }
1916
+ .welcome-agent-card:hover {
1917
+ border-color: var(--color-primary);
1918
+ background: rgba(var(--color-primary-rgb), 0.04);
1919
+ box-shadow: var(--shadow-sm);
1920
+ }
1921
+
1922
+ .welcome-agent-icon {
1923
+ width: 32px;
1924
+ height: 32px;
1925
+ border-radius: var(--radius-sm);
1926
+ display: flex;
1927
+ align-items: center;
1928
+ justify-content: center;
1929
+ font-size: 1rem;
1930
+ margin-bottom: 0.25rem;
1931
+ }
1932
+
1933
+ .welcome-agent-name {
1934
+ font-size: 0.825rem;
1935
+ font-weight: 600;
1936
+ color: var(--color-text-primary);
1937
+ }
1938
+
1939
+ .welcome-agent-desc {
1940
+ font-size: 0.7375rem;
1941
+ color: var(--color-text-muted);
1942
+ line-height: 1.4;
1943
+ }
1944
+
1486
1945
  /* ===== STREAMING BLOCK STYLES ===== */
1487
1946
  .block-text {
1488
1947
  margin-bottom: 0;