agentgui 1.0.896 → 1.0.898

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,378 +1,663 @@
1
1
  /*
2
- * gmail-skin.css — Gmail-inspired visual theme built on RippleUI tokens.
3
- * Loaded LAST so it wins over main.css and ui-fixes*.css.
4
- * Intentionally token-heavy: components pick these up automatically via RippleUI.
2
+ * gmail-skin.css — Gmail-inspired layout and visual theme.
3
+ * Loaded LAST wins over brand-bible.css.
5
4
  */
6
5
 
7
- /* ---------- Design tokens (Gmail palette) ---------- */
8
- :root, [data-theme] {
9
- /* Gmail accent: blue #1a73e8 = 26 115 232. Compose red: #ea4335 = 234 67 53. */
10
- --primary: 26 115 232;
11
- --secondary: 234 67 53;
12
- --success: 52 168 83;
13
- --warning: 251 188 4;
14
- --error: 234 67 53;
15
-
16
- /* Gmail light: warm-white canvas, paper panels */
17
- --backgroundPrimary: 248 250 253; /* #f8fafd body */
18
- --backgroundSecondary: 255 255 255; /* #ffffff panels */
19
- --content1: 32 33 36; /* #202124 primary text */
20
- --content2: 95 99 104; /* #5f6368 secondary text */
21
- --content3: 154 160 166; /* #9aa0a6 muted */
22
- --border: 218 220 224; /* #dadce0 hairline */
23
-
24
- /* AgentGUI legacy variables that many custom rules still target */
25
- --color-primary: #1a73e8;
26
- --color-primary-hover: #1557b0;
27
- --color-bg-primary: #ffffff;
28
- --color-bg-secondary: #f8fafd;
29
- --color-bg-tertiary: #f1f3f4;
30
- --color-text-primary: #202124;
31
- --color-text-secondary: #5f6368;
32
- --color-text-muted: #9aa0a6;
33
- --color-border: #dadce0;
34
- --color-border-hover: #c4c7c5;
35
-
36
- /* Gmail-style radii + typography */
37
- --radius-sm: 4px;
38
- --radius-md: 8px;
39
- --radius-lg: 16px;
40
- --radius-pill: 9999px;
41
- --font-sans: 'Google Sans', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
42
-
43
- /* Elevations */
44
- --elev-0: none;
45
- --elev-1: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);
46
- --elev-2: 0 1px 3px 0 rgba(60, 64, 67, .3), 0 4px 8px 3px rgba(60, 64, 67, .15);
47
- }
48
-
49
- html.dark, [data-theme=dark] {
50
- --backgroundPrimary: 32 33 36; /* #202124 body */
51
- --backgroundSecondary: 40 42 46; /* #282a2e panels */
52
- --content1: 232 234 237; /* primary text */
53
- --content2: 189 193 198; /* secondary */
54
- --content3: 154 160 166; /* muted */
55
- --border: 63 67 73; /* #3f4349 */
56
-
57
- --color-bg-primary: #202124;
58
- --color-bg-secondary: #282a2e;
59
- --color-bg-tertiary: #35363a;
60
- --color-text-primary: #e8eaed;
61
- --color-text-secondary: #bdc1c6;
62
- --color-text-muted: #9aa0a6;
63
- --color-border: #3f4349;
64
- --color-border-hover: #5f6368;
65
- }
66
-
67
- /* ---------- Base typography ---------- */
6
+ /* ── Design tokens ─────────────────────────────────────────── */
7
+ :root {
8
+ --gm-blue: #1a73e8;
9
+ --gm-blue-hover: #1557b0;
10
+ --gm-red: #ea4335;
11
+ --gm-surface: #f6f8fc;
12
+ --gm-panel: #ffffff;
13
+ --gm-hover: #f1f3f4;
14
+ --gm-active-bg: #d3e3fd;
15
+ --gm-active-text: #0b57d0;
16
+ --gm-border: #e0e0e0;
17
+ --gm-text-1: #202124;
18
+ --gm-text-2: #5f6368;
19
+ --gm-text-3: #9aa0a6;
20
+ --gm-rail-w: 72px;
21
+ --gm-sidebar-w: 280px;
22
+ --gm-header-h: 64px;
23
+ --gm-radius-pill: 9999px;
24
+ --gm-radius-lg: 16px;
25
+ --gm-radius-md: 8px;
26
+ --gm-shadow-1: 0 1px 2px rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15);
27
+ --gm-shadow-2: 0 1px 3px rgba(60,64,67,.3), 0 4px 8px 3px rgba(60,64,67,.15);
28
+ --gm-font: 'Google Sans', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
29
+ }
30
+
31
+ html.dark, [data-theme="dark"] {
32
+ --gm-surface: #202124;
33
+ --gm-panel: #292a2d;
34
+ --gm-hover: #35363a;
35
+ --gm-active-bg: #1e3a5f;
36
+ --gm-active-text: #8ab4f8;
37
+ --gm-border: #3c4043;
38
+ --gm-text-1: #e8eaed;
39
+ --gm-text-2: #bdc1c6;
40
+ --gm-text-3: #9aa0a6;
41
+ --gm-shadow-1: 0 1px 2px rgba(0,0,0,.4), 0 1px 3px 1px rgba(0,0,0,.2);
42
+ --gm-shadow-2: 0 1px 3px rgba(0,0,0,.4), 0 4px 8px 3px rgba(0,0,0,.2);
43
+ }
44
+
45
+ /* ── Base ───────────────────────────────────────────────────── */
68
46
  html, body {
69
- font-family: var(--font-sans);
70
- font-size: 14px; /* Gmail's density baseline */
71
- color: var(--color-text-primary);
72
- background: var(--color-bg-secondary);
73
- -webkit-font-smoothing: antialiased;
47
+ font-family: var(--gm-font) !important;
48
+ background: var(--gm-surface) !important;
49
+ color: var(--gm-text-1) !important;
50
+ -webkit-font-smoothing: antialiased;
74
51
  }
75
52
 
76
- /* ---------- Top bar (main-header) Gmail style ---------- */
77
- .main-header {
78
- background: var(--color-bg-primary) !important;
79
- border-bottom: 1px solid var(--color-border) !important;
80
- box-shadow: none !important;
81
- height: 64px;
82
- padding: 0 16px !important;
83
- gap: 12px;
84
- }
85
- .main-header .header-title {
86
- font-family: 'Product Sans', 'Google Sans', var(--font-sans);
87
- font-size: 20px;
88
- font-weight: 400;
89
- color: var(--color-text-secondary);
90
- letter-spacing: 0;
91
- }
92
- .main-header .sidebar-toggle-btn,
93
- .main-header .header-icon-btn,
94
- .main-header .theme-toggle-btn {
95
- width: 40px;
96
- height: 40px;
97
- border-radius: var(--radius-pill) !important;
98
- background: transparent !important;
99
- color: var(--color-text-secondary) !important;
100
- transition: background-color .15s;
101
- }
102
- .main-header .sidebar-toggle-btn:hover,
103
- .main-header .header-icon-btn:hover,
104
- .main-header .theme-toggle-btn:hover {
105
- background: var(--color-bg-tertiary) !important;
106
- }
107
-
108
- /* ---------- Sidebar — Gmail-style folder list ---------- */
53
+ /* Kill brand-bible flat border mandate for gmail layout elements */
54
+ .app-shell,
55
+ .nav-rail,
56
+ .sidebar,
57
+ .main-header,
58
+ .main-panel,
59
+ .sidebar-header,
60
+ .sidebar-search-bar,
61
+ .input-section,
62
+ .input-card,
63
+ .status-badge,
64
+ .sidebar-list,
65
+ .streaming-status-bar {
66
+ border: none !important;
67
+ border-radius: 0 !important;
68
+ box-shadow: none !important;
69
+ }
70
+
71
+ /* ── App shell: rail + sidebar + main ──────────────────────── */
72
+ .app-shell {
73
+ display: grid !important;
74
+ grid-template-columns: var(--gm-rail-w) var(--gm-sidebar-w) 1fr;
75
+ grid-template-rows: 1fr;
76
+ background: var(--gm-surface) !important;
77
+ }
78
+
79
+ /* When sidebar collapsed: collapse the sidebar column */
80
+ .app-shell:has(.sidebar.collapsed) {
81
+ grid-template-columns: var(--gm-rail-w) 0 1fr;
82
+ }
83
+
84
+ /* ── Nav Rail ───────────────────────────────────────────────── */
85
+ .nav-rail {
86
+ width: var(--gm-rail-w);
87
+ display: flex !important;
88
+ flex-direction: column;
89
+ align-items: center;
90
+ padding: 8px 0;
91
+ background: var(--gm-surface) !important;
92
+ border-right: none !important;
93
+ gap: 4px;
94
+ overflow: hidden;
95
+ flex-shrink: 0;
96
+ }
97
+
98
+ .nav-rail-item {
99
+ display: flex;
100
+ flex-direction: column;
101
+ align-items: center;
102
+ justify-content: center;
103
+ gap: 4px;
104
+ width: 56px;
105
+ min-height: 56px;
106
+ padding: 8px 4px;
107
+ background: transparent;
108
+ border: none !important;
109
+ border-radius: var(--gm-radius-lg) !important;
110
+ cursor: pointer;
111
+ color: var(--gm-text-2);
112
+ transition: background-color 0.15s;
113
+ }
114
+
115
+ .nav-rail-item:hover {
116
+ background: var(--gm-hover) !important;
117
+ color: var(--gm-text-1);
118
+ }
119
+
120
+ .nav-rail-item.active {
121
+ background: var(--gm-active-bg) !important;
122
+ color: var(--gm-active-text);
123
+ }
124
+
125
+ .nav-rail-item svg {
126
+ width: 20px;
127
+ height: 20px;
128
+ flex-shrink: 0;
129
+ }
130
+
131
+ .nav-rail-label {
132
+ font-size: 10px;
133
+ font-family: var(--gm-font);
134
+ font-weight: 500;
135
+ letter-spacing: 0;
136
+ line-height: 1;
137
+ text-align: center;
138
+ white-space: nowrap;
139
+ }
140
+
141
+ /* Compose button: pill FAB style */
142
+ .nav-rail-compose {
143
+ width: 56px;
144
+ min-height: 56px;
145
+ background: var(--gm-panel) !important;
146
+ box-shadow: var(--gm-shadow-1) !important;
147
+ border-radius: var(--gm-radius-lg) !important;
148
+ margin-bottom: 8px;
149
+ color: var(--gm-text-1) !important;
150
+ }
151
+
152
+ .nav-rail-compose:hover {
153
+ box-shadow: var(--gm-shadow-2) !important;
154
+ background: var(--gm-hover) !important;
155
+ }
156
+
157
+ /* ── Sidebar ────────────────────────────────────────────────── */
109
158
  .sidebar {
110
- background: var(--color-bg-secondary) !important;
111
- border-right: 0 !important;
112
- padding-top: 8px;
159
+ width: var(--gm-sidebar-w) !important;
160
+ background: var(--gm-surface) !important;
161
+ border-right: none !important;
162
+ padding-top: 4px;
163
+ overflow: hidden;
113
164
  }
165
+
166
+ .sidebar.collapsed {
167
+ width: 0 !important;
168
+ min-width: 0 !important;
169
+ }
170
+
114
171
  .sidebar-header {
115
- padding: 8px 16px 16px !important;
116
- border-bottom: 0 !important;
172
+ padding: 12px 8px 8px !important;
173
+ background: transparent !important;
174
+ min-height: unset !important;
175
+ border: none !important;
117
176
  }
118
- .sidebar-header h2 {
119
- font-family: 'Product Sans', 'Google Sans', var(--font-sans);
120
- font-weight: 500;
121
- font-size: 18px;
122
- color: var(--color-text-primary);
177
+
178
+ .sidebar-header h2, .sidebar-header .brand-line {
179
+ font-family: var(--gm-font) !important;
180
+ font-size: 18px !important;
181
+ font-weight: 400 !important;
182
+ color: var(--gm-text-2) !important;
183
+ letter-spacing: 0 !important;
184
+ text-transform: none !important;
123
185
  }
186
+
187
+ /* Hide the new-conversation button in sidebar header — compose is in rail */
124
188
  .sidebar-new-btn {
125
- background: var(--color-bg-primary) !important;
126
- color: var(--color-text-primary) !important;
127
- border-radius: var(--radius-lg) !important;
128
- box-shadow: var(--elev-1) !important;
129
- padding: 14px 24px !important;
130
- font-weight: 500 !important;
131
- letter-spacing: .2px;
132
- transition: box-shadow .15s, background-color .15s;
133
- border: 0 !important;
189
+ display: none !important;
190
+ }
191
+
192
+ /* Sidebar overflow button */
193
+ .sidebar-overflow-btn {
194
+ background: transparent !important;
195
+ border: none !important;
196
+ border-radius: var(--gm-radius-pill) !important;
197
+ width: 32px;
198
+ height: 32px;
199
+ color: var(--gm-text-2) !important;
200
+ }
201
+ .sidebar-overflow-btn:hover {
202
+ background: var(--gm-hover) !important;
203
+ }
204
+
205
+ .sidebar-overflow-menu {
206
+ background: var(--gm-panel) !important;
207
+ box-shadow: var(--gm-shadow-2) !important;
208
+ border: none !important;
209
+ border-radius: var(--gm-radius-md) !important;
210
+ padding: 8px 0 !important;
211
+ }
212
+
213
+ .sidebar-overflow-menu-item {
214
+ padding: 8px 16px !important;
215
+ font-size: 13px !important;
216
+ font-family: var(--gm-font) !important;
217
+ color: var(--gm-text-1) !important;
218
+ border-radius: 0 !important;
219
+ border: none !important;
134
220
  }
135
- .sidebar-new-btn:hover {
136
- box-shadow: var(--elev-2) !important;
137
- background: var(--color-bg-tertiary) !important;
221
+ .sidebar-overflow-menu-item:hover {
222
+ background: var(--gm-hover) !important;
138
223
  }
224
+ .sidebar-overflow-menu-item.danger { color: var(--gm-red) !important; }
139
225
 
226
+ /* Sidebar search */
140
227
  .sidebar-search-bar {
141
- padding: 8px 16px !important;
142
- background: var(--color-bg-secondary) !important;
143
- border-bottom: 0 !important;
228
+ padding: 4px 12px 8px !important;
229
+ background: transparent !important;
230
+ border: none !important;
144
231
  }
232
+
145
233
  .sidebar-search-input {
146
- background: var(--color-bg-tertiary) !important;
147
- border: 0 !important;
148
- border-radius: var(--radius-md) !important;
149
- height: 36px;
150
- padding: 0 14px !important;
151
- font-size: 13px !important;
234
+ background: var(--gm-panel) !important;
235
+ border: 1px solid var(--gm-border) !important;
236
+ border-radius: var(--gm-radius-pill) !important;
237
+ height: 36px !important;
238
+ padding: 0 16px !important;
239
+ font-size: 13px !important;
240
+ font-family: var(--gm-font) !important;
241
+ color: var(--gm-text-1) !important;
242
+ box-shadow: var(--gm-shadow-1) !important;
243
+ transition: box-shadow 0.15s;
152
244
  }
153
245
  .sidebar-search-input:focus {
154
- background: var(--color-bg-primary) !important;
155
- box-shadow: var(--elev-1) !important;
156
- outline: 0 !important;
246
+ outline: none !important;
247
+ box-shadow: var(--gm-shadow-2) !important;
157
248
  }
158
249
 
159
- /* Sidebar list: Gmail's pill-selected row shape */
250
+ /* ── Conversation list ─────────────────────────────────────── */
160
251
  .sidebar-list {
161
- padding: 4px 8px !important;
162
- gap: 0 !important;
252
+ padding: 4px 0 !important;
253
+ border: none !important;
163
254
  }
164
- .sidebar-list li,
165
- .sidebar-list > *,
255
+
166
256
  .conversation-item {
167
- border-radius: 0 var(--radius-pill) var(--radius-pill) 0 !important;
168
- margin: 0 !important;
169
- padding: 8px 16px 8px 20px !important;
170
- font-size: 13px !important;
171
- line-height: 1.35;
172
- color: var(--color-text-primary) !important;
173
- transition: background-color .1s;
174
- cursor: pointer;
175
- }
176
- .sidebar-list li:hover,
257
+ display: grid !important;
258
+ grid-template-columns: 1fr auto auto auto auto !important;
259
+ align-items: center;
260
+ padding: 0 16px !important;
261
+ margin: 0 8px !important;
262
+ height: 56px;
263
+ border-radius: var(--gm-radius-pill) !important;
264
+ border: none !important;
265
+ border-left: none !important;
266
+ cursor: pointer;
267
+ gap: 0;
268
+ transition: background-color 0.1s;
269
+ }
270
+
177
271
  .conversation-item:hover {
178
- background: var(--color-bg-tertiary) !important;
272
+ background: var(--gm-hover) !important;
273
+ transform: none !important;
179
274
  }
180
- .sidebar-list li.active,
181
- .sidebar-list li[aria-selected="true"],
275
+
182
276
  .conversation-item.active {
183
- background: #fce8e6 !important; /* Gmail red-tinted active: light */
184
- color: #d93025 !important; /* Gmail red text on active */
185
- font-weight: 500 !important;
277
+ background: var(--gm-active-bg) !important;
278
+ color: var(--gm-active-text) !important;
186
279
  }
187
- html.dark .sidebar-list li.active,
188
- html.dark .sidebar-list li[aria-selected="true"],
189
- html.dark .conversation-item.active,
190
- [data-theme=dark] .sidebar-list li.active,
191
- [data-theme=dark] .conversation-item.active {
192
- background: rgba(234,67,53,.15) !important;
193
- color: #f28b82 !important;
280
+
281
+ .conversation-item-content {
282
+ flex: 1;
283
+ min-width: 0;
284
+ overflow: hidden;
285
+ padding-right: 8px;
194
286
  }
195
287
 
196
- .sidebar-empty {
197
- padding: 24px 20px !important;
198
- color: var(--color-text-muted) !important;
199
- font-size: 13px !important;
200
- text-align: center;
288
+ .conversation-item-title {
289
+ font-size: 13px !important;
290
+ font-family: var(--gm-font) !important;
291
+ font-weight: 600 !important;
292
+ color: var(--gm-text-1);
293
+ white-space: nowrap;
294
+ overflow: hidden;
295
+ text-overflow: ellipsis;
296
+ line-height: 1.4;
201
297
  }
202
298
 
203
- /* ---------- Input area — Gmail compose card ---------- */
204
- .input-section {
205
- padding: 16px 24px 24px !important;
206
- background: transparent !important;
207
- border-top: 0 !important;
299
+ .conversation-item.active .conversation-item-title {
300
+ color: var(--gm-active-text);
208
301
  }
209
- .input-card {
210
- background: var(--color-bg-primary) !important;
211
- border: 1px solid var(--color-border) !important;
212
- border-radius: var(--radius-lg) !important;
213
- box-shadow: var(--elev-1) !important;
214
- overflow: hidden;
215
- transition: box-shadow .15s;
302
+
303
+ .conversation-item-meta {
304
+ font-size: 11px !important;
305
+ font-family: var(--gm-font) !important;
306
+ color: var(--gm-text-3) !important;
307
+ white-space: nowrap;
308
+ overflow: hidden;
309
+ text-overflow: ellipsis;
310
+ margin-top: 2px;
216
311
  }
217
- .input-card:focus-within {
218
- box-shadow: var(--elev-2) !important;
219
- border-color: transparent !important;
312
+
313
+ .conversation-item.active .conversation-item-meta {
314
+ color: var(--gm-active-text) !important;
315
+ opacity: 0.75;
220
316
  }
221
- .input-card-textarea {
222
- background: transparent !important;
223
- border: 0 !important;
224
- padding: 16px 20px !important;
225
- font-size: 14px !important;
226
- font-family: var(--font-sans) !important;
227
- color: var(--color-text-primary) !important;
228
- min-height: 52px;
229
- }
230
- .input-card-textarea:focus {
231
- outline: 0 !important;
232
- box-shadow: none !important;
317
+
318
+ /* Action buttons on conversation items */
319
+ .conversation-item-delete,
320
+ .conversation-item-archive,
321
+ .conversation-item-export {
322
+ width: 24px !important;
323
+ height: 24px !important;
324
+ border-radius: var(--gm-radius-pill) !important;
325
+ border: none !important;
326
+ }
327
+ .conversation-item-delete:hover { background: rgba(234,67,53,.15) !important; color: var(--gm-red) !important; }
328
+ .conversation-item-archive:hover { background: rgba(251,188,4,.15) !important; color: #b36f00 !important; }
329
+ .conversation-item-export:hover { background: rgba(26,115,232,.15) !important; color: var(--gm-blue) !important; }
330
+
331
+ .conversation-item.active .conversation-item-delete,
332
+ .conversation-item.active .conversation-item-archive,
333
+ .conversation-item.active .conversation-item-export {
334
+ color: var(--gm-active-text) !important;
233
335
  }
234
- .input-card-toolbar {
235
- padding: 8px 12px !important;
236
- border-top: 1px solid var(--color-bg-tertiary) !important;
237
- background: transparent !important;
336
+
337
+ .sidebar-empty {
338
+ padding: 32px 16px !important;
339
+ font-size: 13px !important;
340
+ font-family: var(--gm-font) !important;
341
+ color: var(--gm-text-3) !important;
342
+ border: none !important;
238
343
  }
239
- .input-icon-btn {
240
- width: 36px !important;
241
- height: 36px !important;
242
- border-radius: var(--radius-pill) !important;
243
- background: transparent !important;
244
- color: var(--color-text-secondary) !important;
344
+
345
+ /* ── Main header ────────────────────────────────────────────── */
346
+ .main-header {
347
+ height: var(--gm-header-h) !important;
348
+ min-height: var(--gm-header-h) !important;
349
+ background: var(--gm-surface) !important;
350
+ border-bottom: 1px solid var(--gm-border) !important;
351
+ padding: 0 16px !important;
352
+ gap: 8px !important;
353
+ display: flex;
354
+ align-items: center;
245
355
  }
246
- .input-icon-btn:hover {
247
- background: var(--color-bg-tertiary) !important;
356
+
357
+ /* Search bar in header — Gmail style, centered, expands */
358
+ .header-search-wrap {
359
+ flex: 1;
360
+ max-width: 720px;
361
+ margin: 0 auto;
362
+ position: relative;
363
+ display: flex;
364
+ align-items: center;
248
365
  }
249
- .input-send-btn {
250
- background: rgb(var(--primary)) !important;
251
- color: white !important;
252
- border-radius: var(--radius-pill) !important;
253
- width: auto !important;
254
- min-width: 40px;
255
- padding: 0 16px !important;
366
+
367
+ .header-search-icon {
368
+ position: absolute;
369
+ left: 12px;
370
+ width: 18px;
371
+ height: 18px;
372
+ color: var(--gm-text-2);
373
+ pointer-events: none;
256
374
  }
257
- .input-send-btn:hover {
258
- background: rgb(var(--primary) / .85) !important;
259
- box-shadow: var(--elev-1) !important;
375
+
376
+ .header-search-input {
377
+ width: 100%;
378
+ height: 40px;
379
+ background: var(--gm-panel) !important;
380
+ border: 1px solid var(--gm-border) !important;
381
+ border-radius: var(--gm-radius-pill) !important;
382
+ padding: 0 16px 0 42px !important;
383
+ font-size: 14px !important;
384
+ font-family: var(--gm-font) !important;
385
+ color: var(--gm-text-1) !important;
386
+ outline: none;
387
+ box-shadow: var(--gm-shadow-1) !important;
388
+ transition: box-shadow 0.15s, background 0.15s;
260
389
  }
261
390
 
262
- /* Chip selects (agent/model) */
263
- .input-chip-select {
264
- background: var(--color-bg-tertiary) !important;
265
- border: 0 !important;
266
- border-radius: var(--radius-pill) !important;
267
- height: 32px;
268
- padding: 0 12px !important;
269
- font-size: 12px !important;
270
- color: var(--color-text-primary) !important;
391
+ .header-search-input:focus {
392
+ box-shadow: var(--gm-shadow-2) !important;
393
+ background: var(--gm-panel) !important;
271
394
  }
272
395
 
273
- /* ---------- Welcome screen Google-y centered logo ---------- */
274
- .welcome-logo {
275
- background: linear-gradient(135deg, #4285f4 0%, #34a853 33%, #fbbc04 66%, #ea4335 100%) !important;
276
- color: white !important;
277
- width: 96px;
278
- height: 96px;
279
- border-radius: 50%;
280
- font-family: 'Product Sans', 'Google Sans', var(--font-sans);
281
- font-size: 56px;
282
- font-weight: 500;
396
+ /* Hide the brand title in header when search is present */
397
+ .header-title {
398
+ display: none !important;
283
399
  }
284
- .welcome-title {
285
- font-family: 'Product Sans', 'Google Sans', var(--font-sans);
286
- font-weight: 400;
287
- font-size: 32px !important;
288
- color: var(--color-text-primary) !important;
289
- margin-top: 16px !important;
400
+
401
+ .sidebar-toggle-btn,
402
+ .theme-toggle-btn,
403
+ .header-icon-btn {
404
+ width: 40px !important;
405
+ height: 40px !important;
406
+ border-radius: var(--gm-radius-pill) !important;
407
+ background: transparent !important;
408
+ border: none !important;
409
+ color: var(--gm-text-2) !important;
410
+ flex-shrink: 0;
290
411
  }
291
- .welcome-subtitle {
292
- color: var(--color-text-secondary) !important;
293
- font-size: 14px !important;
412
+
413
+ .sidebar-toggle-btn:hover,
414
+ .theme-toggle-btn:hover,
415
+ .header-icon-btn:hover {
416
+ background: var(--gm-hover) !important;
417
+ color: var(--gm-text-1) !important;
294
418
  }
295
419
 
296
- /* ---------- Status / connection badge ---------- */
297
420
  .status-badge {
298
- background: transparent !important;
299
- border: 0 !important;
300
- font-size: 11px !important;
301
- color: var(--color-text-muted) !important;
302
- gap: 6px;
421
+ background: transparent !important;
422
+ border: none !important;
423
+ font-size: 11px !important;
424
+ font-family: var(--gm-font) !important;
425
+ color: var(--gm-text-3) !important;
303
426
  }
304
427
 
305
- /* ---------- Streaming status bar (floating pill) ---------- */
306
- .streaming-status-bar {
307
- background: #202124 !important;
308
- color: #e8eaed !important;
309
- border-radius: var(--radius-pill) !important;
310
- box-shadow: var(--elev-2) !important;
311
- padding: 10px 20px !important;
312
- border: 0 !important;
428
+ /* ── View toggle bar ────────────────────────────────────────── */
429
+ .view-toggle-bar {
430
+ background: var(--gm-panel) !important;
431
+ border-bottom: 1px solid var(--gm-border) !important;
432
+ padding: 0 16px !important;
313
433
  }
314
- .status-cancel-btn {
315
- background: transparent !important;
316
- color: #8ab4f8 !important;
317
- border: 0 !important;
318
- font-weight: 500;
434
+
435
+ .view-toggle-btn {
436
+ border-radius: 0 !important;
437
+ border: none !important;
438
+ border-bottom: 2px solid transparent !important;
439
+ color: var(--gm-text-2) !important;
440
+ font-family: var(--gm-font) !important;
441
+ font-size: 13px !important;
442
+ }
443
+ .view-toggle-btn:hover { color: var(--gm-text-1) !important; background: transparent !important; }
444
+ .view-toggle-btn.active {
445
+ color: var(--gm-blue) !important;
446
+ border-bottom-color: var(--gm-blue) !important;
447
+ background: transparent !important;
448
+ }
449
+
450
+ /* ── Messages area ──────────────────────────────────────────── */
451
+ .main-panel {
452
+ background: var(--gm-panel) !important;
319
453
  }
320
454
 
321
- /* ---------- Messages area background ---------- */
322
455
  #output-scroll,
323
456
  .messages-wrapper {
324
- background: var(--color-bg-secondary) !important;
457
+ background: var(--gm-panel) !important;
458
+ border: none !important;
325
459
  }
460
+
326
461
  #output {
327
- max-width: 900px;
328
- margin: 0 auto;
329
- padding: 24px 16px;
462
+ max-width: 860px;
463
+ margin: 0 auto;
464
+ padding: 16px 24px 24px;
330
465
  }
331
466
 
332
- /* ---------- Overflow menu (3-dot dropdown) ---------- */
333
- .sidebar-overflow-btn {
334
- width: 32px;
335
- height: 32px;
336
- border-radius: var(--radius-pill) !important;
337
- background: transparent !important;
338
- color: var(--color-text-secondary) !important;
467
+ /* Messages: Gmail thread-like, no chat bubbles */
468
+ .message {
469
+ margin-bottom: 8px !important;
470
+ padding: 12px 16px !important;
471
+ border: 1px solid var(--gm-border) !important;
472
+ border-radius: var(--gm-radius-md) !important;
473
+ background: var(--gm-panel) !important;
474
+ max-width: 100% !important;
475
+ box-shadow: var(--gm-shadow-1) !important;
339
476
  }
340
- .sidebar-overflow-btn:hover {
341
- background: var(--color-bg-tertiary) !important;
477
+
478
+ .message-user {
479
+ background: #e8f0fe !important;
480
+ border-color: #c5d6f9 !important;
481
+ margin-left: auto;
482
+ max-width: 80% !important;
342
483
  }
343
- .sidebar-overflow-menu {
344
- background: var(--color-bg-primary) !important;
345
- box-shadow: var(--elev-2) !important;
346
- border: 0 !important;
347
- border-radius: var(--radius-md) !important;
348
- padding: 8px 0 !important;
484
+ html.dark .message-user {
485
+ background: #1e3a5f !important;
486
+ border-color: #2d5a9e !important;
349
487
  }
350
- .sidebar-overflow-menu-item {
351
- padding: 8px 20px !important;
352
- font-size: 13px !important;
353
- color: var(--color-text-primary) !important;
354
- border-radius: 0 !important;
488
+
489
+ .message-assistant {
490
+ margin-right: auto;
491
+ max-width: 100% !important;
355
492
  }
356
- .sidebar-overflow-menu-item:hover {
357
- background: var(--color-bg-tertiary) !important;
493
+
494
+ .message-role {
495
+ font-size: 11px !important;
496
+ font-family: var(--gm-font) !important;
497
+ font-weight: 600 !important;
498
+ text-transform: uppercase !important;
499
+ letter-spacing: 0.05em !important;
500
+ color: var(--gm-text-2) !important;
501
+ }
502
+
503
+ .message-content, .message-text {
504
+ font-family: var(--gm-font) !important;
505
+ font-size: 14px !important;
506
+ line-height: 1.6 !important;
507
+ color: var(--gm-text-1) !important;
508
+ }
509
+
510
+ /* ── Input area ─────────────────────────────────────────────── */
511
+ .input-section {
512
+ padding: 12px 24px 20px !important;
513
+ background: var(--gm-panel) !important;
514
+ border-top: 1px solid var(--gm-border) !important;
515
+ }
516
+
517
+ .input-card {
518
+ background: var(--gm-panel) !important;
519
+ border: 1px solid var(--gm-border) !important;
520
+ border-radius: var(--gm-radius-lg) !important;
521
+ box-shadow: var(--gm-shadow-1) !important;
522
+ overflow: hidden;
523
+ transition: box-shadow 0.15s;
524
+ }
525
+
526
+ .input-card:focus-within {
527
+ box-shadow: var(--gm-shadow-2) !important;
528
+ border-color: transparent !important;
529
+ }
530
+
531
+ .input-card-textarea {
532
+ background: transparent !important;
533
+ border: none !important;
534
+ padding: 14px 16px !important;
535
+ font-size: 14px !important;
536
+ font-family: var(--gm-font) !important;
537
+ color: var(--gm-text-1) !important;
538
+ min-height: 52px;
539
+ }
540
+ .input-card-textarea::placeholder { color: var(--gm-text-3) !important; }
541
+ .input-card-textarea:focus { outline: none !important; box-shadow: none !important; }
542
+
543
+ .input-card-toolbar {
544
+ padding: 6px 10px !important;
545
+ border-top: 1px solid var(--gm-hover) !important;
546
+ background: transparent !important;
547
+ }
548
+
549
+ .input-icon-btn {
550
+ width: 36px !important;
551
+ height: 36px !important;
552
+ border-radius: var(--gm-radius-pill) !important;
553
+ background: transparent !important;
554
+ border: none !important;
555
+ color: var(--gm-text-2) !important;
556
+ }
557
+ .input-icon-btn:hover { background: var(--gm-hover) !important; color: var(--gm-text-1) !important; }
558
+
559
+ .input-send-btn {
560
+ background: var(--gm-blue) !important;
561
+ color: #fff !important;
562
+ border-radius: var(--gm-radius-pill) !important;
563
+ width: auto !important;
564
+ min-width: 40px !important;
565
+ padding: 0 16px !important;
566
+ border: none !important;
567
+ }
568
+ .input-send-btn:hover { filter: brightness(1.1); box-shadow: var(--gm-shadow-1) !important; }
569
+
570
+ .input-chip-select {
571
+ background: var(--gm-hover) !important;
572
+ border: none !important;
573
+ border-radius: var(--gm-radius-pill) !important;
574
+ height: 28px !important;
575
+ padding: 0 10px !important;
576
+ font-size: 12px !important;
577
+ font-family: var(--gm-font) !important;
578
+ color: var(--gm-text-1) !important;
358
579
  }
359
- .sidebar-overflow-menu-item.danger {
360
- color: #d93025 !important;
580
+
581
+ /* ── Streaming status bar ───────────────────────────────────── */
582
+ .streaming-status-bar {
583
+ background: var(--gm-text-1) !important;
584
+ color: var(--gm-surface) !important;
585
+ border: none !important;
586
+ border-radius: var(--gm-radius-pill) !important;
587
+ box-shadow: var(--gm-shadow-2) !important;
588
+ padding: 10px 20px !important;
589
+ font-family: var(--gm-font) !important;
590
+ font-size: 13px !important;
591
+ }
592
+ .status-agent-name { color: #8ab4f8 !important; }
593
+ .status-cancel-btn {
594
+ background: transparent !important;
595
+ border: none !important;
596
+ color: #8ab4f8 !important;
597
+ font-weight: 500;
598
+ font-family: var(--gm-font) !important;
361
599
  }
362
600
 
363
- /* ---------- Modals (folder browser, tools popup) ---------- */
601
+ /* ── Modals ─────────────────────────────────────────────────── */
364
602
  .folder-modal,
365
603
  .tools-popup-content {
366
- border-radius: var(--radius-lg) !important;
367
- box-shadow: var(--elev-2) !important;
368
- border: 0 !important;
604
+ border-radius: var(--gm-radius-lg) !important;
605
+ box-shadow: var(--gm-shadow-2) !important;
606
+ border: none !important;
607
+ font-family: var(--gm-font) !important;
369
608
  }
370
609
 
371
- /* ---------- Small cleanup: remove double borders ---------- */
372
- .sidebar, .sidebar-header, .main-header { border-right: 0; }
610
+ /* ── Scrollbars ─────────────────────────────────────────────── */
611
+ .sidebar-list::-webkit-scrollbar { width: 8px; }
612
+ .sidebar-list::-webkit-scrollbar-thumb { background: var(--gm-border); border-radius: 4px; }
613
+ #output-scroll::-webkit-scrollbar { width: 8px; }
614
+ #output-scroll::-webkit-scrollbar-thumb { background: var(--gm-border); border-radius: 4px; }
615
+
616
+ /* ── Welcome screen ─────────────────────────────────────────── */
617
+ .welcome-logo {
618
+ background: linear-gradient(135deg, #4285f4 0%, #34a853 33%, #fbbc04 66%, #ea4335 100%) !important;
619
+ color: #fff !important;
620
+ width: 80px;
621
+ height: 80px;
622
+ border-radius: 50% !important;
623
+ font-family: var(--gm-font) !important;
624
+ font-size: 48px !important;
625
+ border: none !important;
626
+ }
627
+ .welcome-title {
628
+ font-family: var(--gm-font) !important;
629
+ font-weight: 400 !important;
630
+ font-size: 28px !important;
631
+ color: var(--gm-text-1) !important;
632
+ }
633
+ .welcome-subtitle {
634
+ font-family: var(--gm-font) !important;
635
+ font-size: 14px !important;
636
+ color: var(--gm-text-2) !important;
637
+ }
373
638
 
374
- /* ---------- RippleUI preflight recovery: restore list/heading defaults for content ---------- */
375
- #output h1, #output h2, #output h3, #output h4 { font-weight: 500; margin: 1em 0 .5em; }
639
+ /* ── Typography fixes in output ─────────────────────────────── */
640
+ #output h1, #output h2, #output h3, #output h4 {
641
+ font-family: var(--gm-font) !important;
642
+ font-weight: 500;
643
+ margin: 1em 0 .5em;
644
+ }
645
+ #output p { margin: .5em 0; font-family: var(--gm-font) !important; }
376
646
  #output ul { list-style: disc; padding-left: 1.5em; }
377
647
  #output ol { list-style: decimal; padding-left: 1.5em; }
378
- #output p { margin: .5em 0; }
648
+ #output a { color: var(--gm-blue); text-decoration: none; }
649
+ #output a:hover { text-decoration: underline; }
650
+
651
+ /* ── Focus ring ─────────────────────────────────────────────── */
652
+ :focus-visible {
653
+ outline: 2px solid var(--gm-blue) !important;
654
+ outline-offset: 2px;
655
+ }
656
+
657
+ /* ── Mobile: hide nav rail ──────────────────────────────────── */
658
+ @media (max-width: 768px) {
659
+ .app-shell {
660
+ grid-template-columns: 0 1fr !important;
661
+ }
662
+ .nav-rail { display: none !important; }
663
+ }