@appoly/multiagent-chat 1.0.3 → 1.0.7

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.
package/styles.css CHANGED
@@ -5,41 +5,50 @@
5
5
  --bg-app: #0b0e11;
6
6
  --bg-surface: #15191e;
7
7
  --bg-surface-elevated: #1e2329;
8
-
8
+
9
+ /* Terminal */
10
+ --terminal-bg: #0b0e11;
11
+ --terminal-fg: #e0e0e0;
12
+ --terminal-cursor: #e0e0e0;
13
+ --terminal-selection: #264f78;
14
+
9
15
  /* Colors - Accents */
10
16
  --accent-primary: #14f195; /* Mint/Teal */
11
17
  --accent-secondary: #22d3ee; /* Cyan */
12
18
  --accent-warning: #f59e0b; /* Amber */
13
19
  --accent-danger: #ff453a; /* Red */
14
-
20
+
15
21
  /* Colors - Agent Identity */
16
22
  --color-claude: #3b82f6;
17
23
  --color-codex: #22c55e;
18
24
  --color-gemini: #f59e0b;
19
25
  --color-gpt: #10b981;
20
26
  --color-user: #94a3b8;
21
-
27
+
22
28
  /* Text */
23
29
  --text-main: #e3e6eb;
24
30
  --text-muted: #94a3b8;
25
31
  --text-dim: #64748b;
26
-
32
+
27
33
  /* Borders & Shadows */
28
34
  --border-subtle: rgba(255, 255, 255, 0.08);
29
35
  --border-strong: rgba(255, 255, 255, 0.15);
30
36
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2);
31
37
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
32
38
  --shadow-lg: 0 12px 24px rgba(0, 0, 0, 0.4);
33
-
39
+
34
40
  /* Spacing & Radius */
35
41
  --space-unit: 4px;
36
42
  --radius-sm: 4px;
37
43
  --radius-md: 8px;
38
44
  --radius-lg: 12px;
39
-
45
+
40
46
  /* Transitions */
41
47
  --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
42
48
  --transition-base: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
49
+
50
+ /* Layout */
51
+ --sidebar-width: 260px;
43
52
  }
44
53
 
45
54
  * {
@@ -48,6 +57,10 @@
48
57
  box-sizing: border-box;
49
58
  }
50
59
 
60
+ html {
61
+ background: var(--bg-app);
62
+ }
63
+
51
64
  body {
52
65
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
53
66
  background: var(--bg-app);
@@ -64,229 +77,195 @@ h1, h2, h3, h4, h5, h6 {
64
77
  letter-spacing: -0.02em;
65
78
  }
66
79
 
67
- /* Screen Management */
68
- .screen {
69
- display: none;
70
- width: 100%;
71
- height: 100vh;
72
- transition: opacity var(--transition-base);
73
- }
80
+ /* ═══════════════════════════════════════════════════════════
81
+ App Layout - Sidebar + Main + Right Panel
82
+ ═══════════════════════════════════════════════════════════ */
74
83
 
75
- .screen.active {
84
+ .app-layout {
76
85
  display: flex;
77
- flex-direction: column;
86
+ height: 100vh;
87
+ overflow: hidden;
78
88
  }
79
89
 
80
- /* Challenge Input Screen */
81
- #challenge-screen {
82
- justify-content: center;
83
- align-items: center;
84
- background-color: var(--bg-app);
85
- background-image:
86
- radial-gradient(at 0% 0%, rgba(20, 241, 149, 0.05) 0px, transparent 50%),
87
- radial-gradient(at 100% 100%, rgba(34, 211, 238, 0.05) 0px, transparent 50%);
88
- }
90
+ /* ═══════════════════════════════════════════════════════════
91
+ Sidebar
92
+ ═══════════════════════════════════════════════════════════ */
89
93
 
90
- /* Challenge Layout - Sidebar + Main Card */
91
- .challenge-layout {
92
- display: flex;
93
- gap: 24px;
94
- width: 100%;
95
- max-width: 1200px;
96
- padding: 24px;
97
- align-items: flex-start;
98
- }
99
-
100
- /* Workspace Sidebar */
101
- .workspace-sidebar {
102
- flex: 0 0 280px;
94
+ .sidebar {
95
+ flex: 0 0 var(--sidebar-width);
96
+ width: var(--sidebar-width);
103
97
  background: var(--bg-surface);
104
- border-radius: var(--radius-lg);
105
- border: 1px solid var(--border-subtle);
106
- box-shadow: var(--shadow-md);
98
+ border-right: 1px solid var(--border-subtle);
107
99
  display: flex;
108
100
  flex-direction: column;
109
- max-height: 80vh;
110
101
  overflow: hidden;
111
102
  }
112
103
 
113
- .workspace-sidebar-header {
114
- padding: 16px 20px;
104
+ .sidebar-header {
105
+ padding: 16px 16px 12px;
115
106
  border-bottom: 1px solid var(--border-subtle);
116
- background: var(--bg-surface-elevated);
117
- }
118
-
119
- .workspace-sidebar-header h3 {
120
- font-size: 0.9em;
121
- color: var(--accent-primary);
122
- text-transform: uppercase;
123
- letter-spacing: 0.1em;
124
- margin: 0;
125
107
  }
126
108
 
127
- .workspace-list-container {
128
- flex: 1;
129
- overflow-y: auto;
130
- min-height: 200px;
131
- max-height: 400px;
109
+ /* macOS hidden title bar — drag region and traffic light safe area */
110
+ body.platform-darwin .sidebar-header {
111
+ padding-top: 42px;
112
+ -webkit-app-region: drag;
132
113
  }
133
114
 
134
- .workspace-list {
135
- list-style: none;
136
- margin: 0;
137
- padding: 8px 0;
115
+ body.platform-darwin .sidebar-header button,
116
+ body.platform-darwin .sidebar-header input,
117
+ body.platform-darwin .sidebar-header textarea,
118
+ body.platform-darwin .sidebar-header select,
119
+ body.platform-darwin .sidebar-header a {
120
+ -webkit-app-region: no-drag;
138
121
  }
139
122
 
140
- .workspace-item {
141
- padding: 12px 16px;
142
- cursor: pointer;
143
- border-left: 3px solid transparent;
144
- transition: all var(--transition-fast);
145
- display: flex;
146
- flex-direction: column;
147
- gap: 4px;
148
- }
149
-
150
- .workspace-item:hover {
151
- background: var(--bg-surface-elevated);
152
- border-left-color: var(--border-strong);
153
- }
154
-
155
- .workspace-item.selected {
156
- background: var(--bg-surface-elevated);
157
- border-left-color: var(--accent-primary);
158
- }
159
-
160
- .workspace-item.missing {
161
- opacity: 0.5;
162
- }
163
-
164
- .workspace-item.missing:hover {
165
- opacity: 0.8;
166
- }
167
-
168
- .workspace-item-header {
169
- display: flex;
170
- align-items: center;
171
- gap: 8px;
172
- }
173
-
174
- .workspace-name {
123
+ .sidebar-workspace-name {
175
124
  font-family: 'Space Grotesk', sans-serif;
176
- font-weight: 600;
177
- font-size: 14px;
125
+ font-weight: 700;
126
+ font-size: 15px;
178
127
  color: var(--text-main);
179
128
  white-space: nowrap;
180
129
  overflow: hidden;
181
130
  text-overflow: ellipsis;
182
131
  }
183
132
 
184
- .workspace-item.selected .workspace-name {
185
- color: var(--accent-primary);
186
- }
187
-
188
- .workspace-badge {
189
- font-size: 10px;
190
- padding: 2px 6px;
191
- border-radius: 4px;
192
- font-weight: 600;
193
- text-transform: uppercase;
194
- }
195
-
196
- .workspace-badge.missing {
197
- background: rgba(239, 68, 68, 0.2);
198
- color: #ef4444;
199
- }
200
-
201
- .workspace-path {
133
+ .sidebar-workspace-path {
202
134
  font-family: 'IBM Plex Mono', monospace;
203
135
  font-size: 11px;
204
136
  color: var(--text-dim);
205
137
  white-space: nowrap;
206
138
  overflow: hidden;
207
139
  text-overflow: ellipsis;
140
+ margin-top: 4px;
208
141
  }
209
142
 
210
- .workspace-time {
211
- font-size: 11px;
212
- color: var(--text-dim);
213
- }
214
-
215
- .workspace-missing-actions {
216
- display: flex;
217
- gap: 8px;
218
- margin-top: 8px;
143
+ .sidebar-new-session {
144
+ padding: 12px 16px;
219
145
  }
220
146
 
221
- .workspace-missing-actions button {
222
- padding: 4px 10px;
223
- font-size: 10px;
224
- background: var(--bg-app);
147
+ .new-session-btn {
148
+ width: 100%;
149
+ padding: 8px 14px;
150
+ background: transparent;
225
151
  border: 1px solid var(--border-subtle);
226
- border-radius: var(--radius-sm);
152
+ border-radius: var(--radius-md);
227
153
  color: var(--text-muted);
154
+ font-size: 13px;
155
+ font-family: 'Space Grotesk', sans-serif;
156
+ font-weight: 500;
228
157
  cursor: pointer;
158
+ transition: all var(--transition-fast);
159
+ text-align: left;
160
+ }
161
+
162
+ .new-session-btn:hover {
163
+ background: var(--bg-surface-elevated);
164
+ color: var(--text-main);
165
+ }
166
+
167
+ .sidebar-section-label {
168
+ padding: 8px 16px 6px;
229
169
  font-family: 'Space Grotesk', sans-serif;
170
+ font-size: 11px;
230
171
  font-weight: 600;
231
172
  text-transform: uppercase;
232
- transition: all var(--transition-fast);
173
+ letter-spacing: 0.1em;
174
+ color: var(--text-dim);
233
175
  }
234
176
 
235
- .workspace-missing-actions button:hover {
236
- border-color: var(--accent-primary);
237
- color: var(--accent-primary);
177
+ .session-list-container {
178
+ flex: 1;
179
+ overflow-y: auto;
180
+ min-height: 0;
238
181
  }
239
182
 
240
- .workspace-empty {
183
+ .session-list {
184
+ padding: 4px 0;
185
+ }
186
+
187
+ .session-list-empty {
241
188
  padding: 24px 16px;
242
189
  text-align: center;
243
190
  color: var(--text-dim);
244
191
  font-size: 13px;
245
192
  }
246
193
 
247
- .workspace-actions {
248
- padding: 12px 16px;
249
- border-top: 1px solid var(--border-subtle);
194
+ .session-group-label {
195
+ padding: 8px 16px 4px;
196
+ font-size: 10px;
197
+ font-weight: 600;
198
+ text-transform: uppercase;
199
+ letter-spacing: 0.08em;
200
+ color: var(--text-dim);
201
+ font-family: 'Space Grotesk', sans-serif;
202
+ }
203
+
204
+ .session-item {
205
+ padding: 8px 16px;
206
+ cursor: pointer;
207
+ transition: all var(--transition-fast);
250
208
  display: flex;
251
209
  flex-direction: column;
252
- gap: 8px;
210
+ gap: 2px;
211
+ border-radius: var(--radius-sm);
212
+ margin: 0 8px;
213
+ }
214
+
215
+ .session-item:hover {
216
+ background: var(--bg-surface-elevated);
217
+ }
218
+
219
+ .session-item.active {
220
+ background: var(--bg-surface-elevated);
221
+ border-left: 2px solid var(--accent-primary);
222
+ }
223
+
224
+ .session-item-title {
225
+ font-family: 'Space Grotesk', sans-serif;
226
+ font-weight: 500;
227
+ font-size: 13px;
228
+ color: var(--text-muted);
229
+ white-space: nowrap;
230
+ overflow: hidden;
231
+ text-overflow: ellipsis;
232
+ }
233
+
234
+ .session-item:hover .session-item-title,
235
+ .session-item.active .session-item-title {
236
+ color: var(--text-main);
253
237
  }
254
238
 
255
- .workspace-action-button {
239
+ .session-item-meta {
256
240
  display: flex;
257
241
  align-items: center;
258
242
  gap: 8px;
259
- padding: 10px 14px;
260
- background: var(--bg-app);
261
- border: 1px solid var(--border-subtle);
262
- border-radius: var(--radius-md);
263
- color: var(--text-main);
264
- font-size: 13px;
265
- font-family: 'Space Grotesk', sans-serif;
266
- font-weight: 500;
267
- cursor: pointer;
268
- transition: all var(--transition-fast);
269
- width: 100%;
270
- text-align: left;
243
+ font-size: 11px;
244
+ color: var(--text-dim);
271
245
  }
272
246
 
273
- .workspace-action-button:hover {
274
- border-color: var(--accent-primary);
275
- color: var(--accent-primary);
276
- background: var(--bg-surface-elevated);
247
+ .session-item-status {
248
+ display: inline-block;
249
+ width: 6px;
250
+ height: 6px;
251
+ border-radius: 50%;
252
+ background: var(--text-dim);
277
253
  }
278
254
 
279
- .action-icon {
280
- font-size: 14px;
255
+ .session-item-status.active {
256
+ background: var(--accent-primary);
257
+ box-shadow: 0 0 6px var(--accent-primary);
281
258
  }
282
259
 
283
- .workspace-footer {
260
+ .sidebar-footer {
284
261
  padding: 12px 16px;
285
262
  border-top: 1px solid var(--border-subtle);
286
- background: var(--bg-surface-elevated);
263
+ display: flex;
264
+ flex-direction: column;
265
+ gap: 6px;
287
266
  }
288
267
 
289
- .config-link-button {
268
+ .sidebar-footer-btn {
290
269
  background: none;
291
270
  border: none;
292
271
  color: var(--text-dim);
@@ -294,261 +273,236 @@ h1, h2, h3, h4, h5, h6 {
294
273
  cursor: pointer;
295
274
  font-family: 'IBM Plex Mono', monospace;
296
275
  transition: color var(--transition-fast);
297
- padding: 0;
276
+ padding: 4px 0;
277
+ text-align: left;
298
278
  }
299
279
 
300
- .config-link-button:hover {
280
+ .sidebar-footer-btn:hover {
301
281
  color: var(--accent-primary);
302
282
  }
303
283
 
304
- /* Selected Workspace Info */
305
- .selected-workspace-info {
284
+ /* ═══════════════════════════════════════════════════════════
285
+ Main Area
286
+ ═══════════════════════════════════════════════════════════ */
287
+
288
+ .main-area {
289
+ flex: 1;
290
+ min-width: 0;
306
291
  display: flex;
307
- align-items: center;
308
- gap: 8px;
309
- padding: 12px 16px;
310
- background: var(--bg-surface-elevated);
311
- border-radius: var(--radius-md);
312
- margin-bottom: 20px;
313
- border: 1px solid var(--border-subtle);
292
+ flex-direction: column;
293
+ overflow: hidden;
314
294
  }
315
295
 
316
- .selected-label {
317
- color: var(--text-dim);
318
- font-size: 12px;
319
- font-weight: 500;
296
+ .drag-bar {
297
+ display: none;
320
298
  }
321
299
 
322
- .selected-path {
323
- font-family: 'IBM Plex Mono', monospace;
324
- font-size: 12px;
325
- color: var(--accent-primary);
326
- white-space: nowrap;
327
- overflow: hidden;
328
- text-overflow: ellipsis;
329
- flex: 1;
300
+ body.platform-darwin .drag-bar {
301
+ display: block;
302
+ height: 42px;
303
+ flex-shrink: 0;
304
+ -webkit-app-region: drag;
330
305
  }
331
306
 
332
- .cli-badge {
333
- font-size: 10px;
334
- padding: 2px 8px;
335
- background: rgba(20, 241, 149, 0.15);
336
- color: var(--accent-primary);
337
- border-radius: 4px;
338
- font-weight: 600;
339
- font-family: 'Space Grotesk', sans-serif;
340
- text-transform: uppercase;
307
+ /* Welcome View */
308
+ .welcome-view {
309
+ flex: 1;
310
+ display: flex;
311
+ flex-direction: column;
312
+ justify-content: center;
313
+ overflow: hidden;
341
314
  }
342
315
 
343
- /* Responsive - Stack on narrow screens */
344
- @media (max-width: 768px) {
345
- .challenge-layout {
346
- flex-direction: column;
347
- padding: 16px;
348
- }
316
+ .welcome-content {
317
+ flex: 1;
318
+ display: flex;
319
+ flex-direction: column;
320
+ justify-content: center;
321
+ align-items: center;
322
+ padding: 40px;
323
+ }
349
324
 
350
- .workspace-sidebar {
351
- flex: none;
352
- width: 100%;
353
- max-height: 300px;
354
- }
325
+ .welcome-icon {
326
+ width: 64px;
327
+ height: 64px;
328
+ margin-bottom: 20px;
329
+ filter: drop-shadow(0 0 12px rgba(20, 241, 149, 0.3));
330
+ }
355
331
 
356
- .workspace-list-container {
357
- max-height: 150px;
358
- }
332
+ .welcome-title {
333
+ font-size: 2em;
334
+ color: var(--text-main);
335
+ text-align: center;
336
+ margin-bottom: 8px;
337
+ font-weight: 500;
338
+ }
359
339
 
360
- .container {
361
- width: 100%;
362
- }
340
+ .welcome-subtitle {
341
+ text-align: center;
342
+ color: var(--text-muted);
343
+ margin-bottom: 24px;
344
+ font-size: 1.1em;
363
345
  }
364
346
 
365
- .container {
347
+ .welcome-config-info {
348
+ padding: 16px 20px;
366
349
  background: var(--bg-surface);
367
- border-radius: var(--radius-lg);
368
- padding: 40px;
369
- max-width: 800px;
370
- width: 100%;
371
- flex: 1;
372
- box-shadow: var(--shadow-lg);
350
+ border-radius: var(--radius-md);
373
351
  border: 1px solid var(--border-subtle);
352
+ max-width: 400px;
353
+ width: 100%;
374
354
  }
375
355
 
376
- h1 {
377
- font-size: 2.5em;
378
- margin-bottom: 10px;
379
- text-align: center;
380
- color: var(--accent-primary);
356
+ #config-details {
357
+ color: var(--text-muted);
358
+ font-size: 13px;
359
+ line-height: 1.6;
381
360
  }
382
361
 
383
- .subtitle {
384
- text-align: center;
385
- color: var(--text-muted);
386
- margin-bottom: 30px;
387
- font-size: 1.1em;
362
+ /* Session View */
363
+ .session-view {
364
+ flex: 1;
365
+ display: flex;
366
+ flex-direction: column;
367
+ overflow: hidden;
388
368
  }
389
369
 
390
- .challenge-input-container {
391
- margin-bottom: 20px;
370
+ .chat-area {
371
+ flex: 1;
372
+ display: flex;
373
+ flex-direction: column;
374
+ overflow: hidden;
375
+ position: relative;
392
376
  }
393
377
 
394
- textarea {
395
- width: 100%;
396
- padding: 15px;
397
- background: var(--bg-app);
378
+ /* Prompt Input Bar (shared by welcome and session views) */
379
+ .prompt-input-bar {
380
+ padding: 12px 16px;
381
+ display: flex;
382
+ gap: 10px;
383
+ align-items: flex-end;
384
+ }
385
+
386
+ .prompt-textarea {
387
+ flex: 1;
388
+ min-height: 40px;
389
+ max-height: 150px;
390
+ padding: 10px 14px;
391
+ background: var(--bg-surface);
398
392
  border: 1px solid var(--border-subtle);
399
- border-radius: var(--radius-md);
393
+ border-radius: var(--radius-lg);
400
394
  color: var(--text-main);
401
395
  font-size: 14px;
402
- font-family: 'IBM Plex Mono', monospace;
396
+ font-family: 'Manrope', sans-serif;
403
397
  resize: vertical;
404
398
  transition: all var(--transition-fast);
405
399
  }
406
400
 
407
- textarea:focus {
401
+ .prompt-textarea:focus {
408
402
  outline: none;
409
- border-color: var(--accent-primary);
410
- box-shadow: 0 0 0 2px rgba(20, 241, 149, 0.1);
403
+ border-color: var(--border-strong);
411
404
  }
412
405
 
413
- .primary-button {
414
- width: 100%;
415
- padding: 15px;
416
- background: var(--accent-primary);
406
+ .prompt-send-btn {
407
+ width: 36px;
408
+ height: 36px;
409
+ min-width: 36px;
410
+ padding: 0;
411
+ background: var(--text-dim);
417
412
  color: var(--bg-app);
418
413
  border: none;
419
- border-radius: var(--radius-md);
414
+ border-radius: 50%;
420
415
  font-size: 16px;
421
- font-weight: 700;
422
- font-family: 'Space Grotesk', sans-serif;
416
+ line-height: 1;
423
417
  cursor: pointer;
424
418
  transition: all var(--transition-fast);
425
- text-transform: uppercase;
426
- letter-spacing: 0.05em;
427
- }
428
-
429
- .primary-button:hover {
430
- transform: translateY(-1px);
431
- box-shadow: 0 4px 12px rgba(20, 241, 149, 0.3);
432
- filter: brightness(1.1);
419
+ display: flex;
420
+ align-items: center;
421
+ justify-content: center;
433
422
  }
434
423
 
435
- .primary-button:active {
436
- transform: translateY(0);
424
+ .prompt-send-btn:hover {
425
+ background: var(--text-main);
437
426
  }
438
427
 
439
- .config-info {
440
- margin-top: 30px;
441
- padding: 20px;
442
- background: var(--bg-surface-elevated);
443
- border-radius: var(--radius-md);
444
- border: 1px solid var(--border-subtle);
428
+ .prompt-send-btn:active {
429
+ transform: scale(0.95);
445
430
  }
446
431
 
447
- .config-info h3 {
448
- margin-bottom: 10px;
449
- color: var(--accent-primary);
450
- font-size: 0.9em;
451
- text-transform: uppercase;
452
- letter-spacing: 0.1em;
432
+ .prompt-send-btn:disabled {
433
+ opacity: 0.3;
434
+ cursor: not-allowed;
453
435
  }
454
436
 
455
- #config-details {
456
- color: var(--text-muted);
457
- font-size: 13px;
458
- line-height: 1.6;
437
+ .prompt-send-btn.loading {
438
+ opacity: 0.6;
439
+ animation: send-pulse 1.2s ease-in-out infinite;
459
440
  }
460
441
 
461
- /* Session Screen */
462
- #session-screen {
463
- display: flex;
464
- flex-direction: column;
442
+ @keyframes send-pulse {
443
+ 0%, 100% { opacity: 0.4; }
444
+ 50% { opacity: 0.8; }
465
445
  }
466
446
 
467
- .header {
468
- background: var(--bg-surface);
469
- padding: 12px 24px;
470
- border-bottom: 1px solid var(--border-subtle);
471
- display: flex;
472
- justify-content: space-between;
473
- align-items: center;
474
- box-shadow: var(--shadow-sm);
475
- z-index: 100;
476
- }
447
+ /* ═══════════════════════════════════════════════════════════
448
+ Right Panel
449
+ ═══════════════════════════════════════════════════════════ */
477
450
 
478
- .header h2 {
479
- font-size: 1.25em;
480
- color: var(--accent-primary);
451
+ .right-panel {
452
+ flex: 0 0 45%;
481
453
  display: flex;
482
- align-items: center;
483
- gap: 12px;
484
- }
485
-
486
- .divider {
487
- color: var(--border-strong);
488
- font-weight: 300;
489
- }
490
-
491
- .subtext {
492
- color: var(--text-dim);
493
- font-size: 0.8em;
494
- text-transform: uppercase;
495
- letter-spacing: 0.1em;
496
- }
497
-
498
- .icon {
499
- font-style: normal;
500
- filter: drop-shadow(0 0 8px rgba(20, 241, 149, 0.3));
454
+ background: var(--bg-surface);
455
+ border-left: 1px solid var(--border-subtle);
456
+ overflow: hidden;
457
+ position: relative;
501
458
  }
502
459
 
503
- .header-icon {
504
- height: 1.2em;
505
- width: auto;
506
- vertical-align: middle;
507
- margin-right: 0.3em;
508
- filter: drop-shadow(0 0 8px rgba(20, 241, 149, 0.3));
460
+ body.platform-darwin .right-panel {
461
+ padding-top: 42px; /* Safe area for macOS hidden title bar */
509
462
  }
510
463
 
511
- .header-info {
464
+ .right-panel-inner {
465
+ flex: 1;
512
466
  display: flex;
513
- align-items: center;
514
- gap: 24px;
467
+ flex-direction: column;
468
+ overflow: hidden;
515
469
  }
516
470
 
517
- #workspace-path {
518
- color: var(--text-dim);
519
- font-size: 12px;
520
- font-family: 'IBM Plex Mono', monospace;
521
- background: var(--bg-app);
522
- padding: 4px 10px;
523
- border-radius: var(--radius-sm);
524
- border: 1px solid var(--border-subtle);
525
- }
471
+ /* ═══════════════════════════════════════════════════════════
472
+ Buttons
473
+ ═══════════════════════════════════════════════════════════ */
526
474
 
527
- .danger-button {
528
- padding: 8px 16px;
529
- background: transparent;
530
- color: var(--accent-danger);
531
- border: 1px solid var(--accent-danger);
475
+ .primary-button {
476
+ width: 100%;
477
+ padding: 12px;
478
+ background: var(--text-main);
479
+ color: var(--bg-app);
480
+ border: none;
532
481
  border-radius: var(--radius-md);
533
- font-size: 12px;
482
+ font-size: 14px;
534
483
  font-weight: 600;
535
484
  font-family: 'Space Grotesk', sans-serif;
536
485
  cursor: pointer;
537
486
  transition: all var(--transition-fast);
538
- text-transform: uppercase;
539
- letter-spacing: 0.05em;
540
487
  }
541
488
 
542
- .danger-button:hover {
543
- background: var(--accent-danger);
544
- color: white;
545
- box-shadow: 0 0 12px rgba(255, 69, 58, 0.3);
489
+ .primary-button:hover {
490
+ background: var(--accent-primary);
491
+ }
492
+
493
+ .primary-button:active {
494
+ transform: translateY(0);
495
+ }
496
+
497
+ .primary-button:disabled {
498
+ opacity: 0.5;
499
+ cursor: not-allowed;
546
500
  }
547
501
 
548
502
  .secondary-button {
549
503
  padding: 8px 16px;
550
504
  background: var(--bg-surface-elevated);
551
- color: var(--text-main);
505
+ color: var(--text-muted);
552
506
  border: 1px solid var(--border-subtle);
553
507
  border-radius: var(--radius-md);
554
508
  font-size: 12px;
@@ -556,28 +510,24 @@ textarea:focus {
556
510
  font-family: 'Space Grotesk', sans-serif;
557
511
  cursor: pointer;
558
512
  transition: all var(--transition-fast);
559
- text-transform: uppercase;
560
- letter-spacing: 0.05em;
561
513
  }
562
514
 
563
515
  .secondary-button:hover {
564
- border-color: var(--accent-primary);
565
- color: var(--accent-primary);
566
- box-shadow: 0 0 8px rgba(20, 241, 149, 0.2);
516
+ color: var(--text-main);
517
+ border-color: var(--border-strong);
567
518
  }
568
519
 
569
520
  .small-button {
570
- padding: 6px 12px;
521
+ padding: 5px 10px;
571
522
  background: var(--bg-surface-elevated);
572
- color: var(--text-main);
523
+ color: var(--text-muted);
573
524
  border: 1px solid var(--border-subtle);
574
525
  border-radius: var(--radius-md);
575
526
  font-size: 11px;
576
- font-weight: 600;
527
+ font-weight: 500;
577
528
  font-family: 'Space Grotesk', sans-serif;
578
529
  cursor: pointer;
579
530
  transition: all var(--transition-fast);
580
- text-transform: uppercase;
581
531
  }
582
532
 
583
533
  .small-button:hover {
@@ -596,31 +546,9 @@ textarea:focus {
596
546
  box-shadow: 0 0 8px rgba(20, 241, 149, 0.3);
597
547
  }
598
548
 
599
- /* Main Content Layout */
600
- .main-content {
601
- display: flex;
602
- flex: 1;
603
- overflow: hidden;
604
- background: var(--bg-app);
605
- gap: 1px; /* Subtle gap to show background as border */
606
- }
607
-
608
- .left-panel {
609
- flex: 0 0 55%;
610
- display: flex;
611
- flex-direction: column;
612
- background: var(--bg-surface);
613
- overflow: hidden;
614
- }
615
-
616
- .right-panel {
617
- flex: 0 0 45%;
618
- display: flex;
619
- flex-direction: column;
620
- background: var(--bg-surface);
621
- border-left: 1px solid var(--border-subtle);
622
- overflow: hidden;
623
- }
549
+ /* ═══════════════════════════════════════════════════════════
550
+ Panel Header
551
+ ═══════════════════════════════════════════════════════════ */
624
552
 
625
553
  .panel-header {
626
554
  background: var(--bg-surface);
@@ -634,13 +562,69 @@ textarea:focus {
634
562
 
635
563
  .panel-header h3 {
636
564
  font-size: 0.85em;
637
- color: var(--text-dim);
638
- text-transform: uppercase;
639
- letter-spacing: 0.1em;
565
+ color: var(--text-muted);
566
+ font-weight: 500;
567
+ font-family: 'Space Grotesk', sans-serif;
568
+ }
569
+
570
+ .panel-header-actions {
571
+ display: flex;
572
+ gap: 8px;
573
+ align-items: center;
574
+ }
575
+
576
+ /* ═══════════════════════════════════════════════════════════
577
+ Main Tabs (Right Panel: Terminal / Plan / Diff)
578
+ ═══════════════════════════════════════════════════════════ */
579
+
580
+ .main-tabs {
581
+ display: flex;
582
+ background: var(--bg-app);
583
+ padding: 0;
584
+ border-bottom: 1px solid var(--border-subtle);
585
+ flex-shrink: 0;
586
+ }
587
+
588
+ .main-tab {
589
+ flex: 1;
590
+ padding: 10px 16px;
591
+ background: transparent;
592
+ border: none;
593
+ border-bottom: 2px solid transparent;
594
+ color: var(--text-muted);
595
+ font-size: 13px;
596
+ font-weight: 500;
640
597
  font-family: 'Space Grotesk', sans-serif;
598
+ cursor: pointer;
599
+ transition: all var(--transition-fast);
600
+ position: relative;
601
+ }
602
+
603
+ .main-tab:hover {
604
+ color: var(--text-main);
605
+ }
606
+
607
+ .main-tab.active {
608
+ color: var(--text-main);
609
+ border-bottom-color: var(--accent-primary);
610
+ }
611
+
612
+ /* Tab Content Areas */
613
+ .tab-content {
614
+ display: none;
615
+ flex: 1;
616
+ flex-direction: column;
617
+ overflow: hidden;
618
+ }
619
+
620
+ .tab-content.active {
621
+ display: flex;
641
622
  }
642
623
 
643
- /* Agent Tabs */
624
+ /* ═══════════════════════════════════════════════════════════
625
+ Agent Tabs & Terminal
626
+ ═══════════════════════════════════════════════════════════ */
627
+
644
628
  .tabs {
645
629
  display: flex;
646
630
  background: var(--bg-app);
@@ -677,7 +661,6 @@ textarea:focus {
677
661
  margin-bottom: -1px;
678
662
  }
679
663
 
680
- /* Agent Outputs */
681
664
  .agent-outputs {
682
665
  flex: 1;
683
666
  overflow: hidden;
@@ -712,28 +695,19 @@ textarea:focus {
712
695
  height: calc(100% - 30px);
713
696
  overflow: hidden;
714
697
  position: relative;
715
- border-radius: var(--radius-md);
716
- border: 1px solid var(--border-subtle);
717
- background: var(--bg-app);
718
- box-shadow: inset 0 2px 8px rgba(0,0,0,0.4);
719
- }
720
-
721
- .agent-output.active .terminal-container {
722
- border-color: var(--accent-primary);
723
- box-shadow: 0 0 15px rgba(20, 241, 149, 0.1), inset 0 2px 8px rgba(0,0,0,0.4);
698
+ border-radius: var(--radius-sm);
699
+ background: var(--terminal-bg);
724
700
  }
725
701
 
726
702
  .agent-status {
727
703
  display: inline-flex;
728
704
  align-items: center;
729
- gap: 8px;
730
- padding: 4px 10px;
705
+ gap: 6px;
706
+ padding: 3px 8px;
731
707
  border-radius: 100px;
732
708
  font-size: 11px;
733
- font-weight: 700;
734
- margin-bottom: 12px;
735
- text-transform: uppercase;
736
- letter-spacing: 0.05em;
709
+ font-weight: 500;
710
+ margin-bottom: 8px;
737
711
  font-family: 'Space Grotesk', sans-serif;
738
712
  }
739
713
 
@@ -756,6 +730,17 @@ textarea:focus {
756
730
  animation: pulse 2s infinite;
757
731
  }
758
732
 
733
+ .agent-status.restarting {
734
+ background: rgba(245, 158, 11, 0.1);
735
+ color: #f59e0b;
736
+ }
737
+
738
+ .agent-status.restarting::before {
739
+ background: #f59e0b;
740
+ box-shadow: 0 0 8px #f59e0b;
741
+ animation: pulse 1s infinite;
742
+ }
743
+
759
744
  .agent-status.stopped {
760
745
  background: var(--bg-surface-elevated);
761
746
  color: var(--text-muted);
@@ -780,32 +765,30 @@ textarea:focus {
780
765
  100% { transform: scale(0.95); opacity: 0.8; }
781
766
  }
782
767
 
783
- /* Input Lock Toggle Button */
768
+ /* Input Lock Toggle */
784
769
  .input-lock-toggle {
785
770
  position: absolute;
786
- bottom: 12px;
787
- right: 12px;
788
- padding: 6px 14px;
771
+ bottom: 8px;
772
+ right: 8px;
773
+ padding: 4px 10px;
789
774
  background: var(--bg-surface-elevated);
790
775
  border: 1px solid var(--border-subtle);
791
776
  border-radius: 100px;
792
- color: var(--text-muted);
793
- font-size: 11px;
794
- font-weight: 700;
777
+ color: var(--text-dim);
778
+ font-size: 10px;
779
+ font-weight: 500;
795
780
  font-family: 'Space Grotesk', sans-serif;
796
781
  cursor: pointer;
797
782
  z-index: 10;
798
783
  transition: all var(--transition-fast);
799
- text-transform: uppercase;
800
- letter-spacing: 0.05em;
801
784
  display: flex;
802
785
  align-items: center;
803
- gap: 6px;
786
+ gap: 4px;
787
+ opacity: 0.7;
804
788
  }
805
789
 
806
790
  .input-lock-toggle:hover {
807
- border-color: var(--text-muted);
808
- color: var(--text-main);
791
+ opacity: 1;
809
792
  }
810
793
 
811
794
  .input-lock-toggle.unlocked {
@@ -818,65 +801,9 @@ textarea:focus {
818
801
  background: rgba(20, 241, 149, 0.2);
819
802
  }
820
803
 
821
-
822
- /* Main Tabs (Top-Level Navigation) */
823
- .main-tabs {
824
- display: flex;
825
- background: var(--bg-app);
826
- padding: 0;
827
- border-bottom: 1px solid var(--border-subtle);
828
- flex-shrink: 0;
829
- }
830
-
831
- .main-tab {
832
- flex: 1;
833
- padding: 12px 16px;
834
- background: transparent;
835
- border: none;
836
- border-bottom: 2px solid transparent;
837
- color: var(--text-muted);
838
- font-size: 13px;
839
- font-weight: 600;
840
- font-family: 'Space Grotesk', sans-serif;
841
- cursor: pointer;
842
- transition: all var(--transition-fast);
843
- text-transform: uppercase;
844
- letter-spacing: 0.05em;
845
- position: relative;
846
- }
847
-
848
- .main-tab:hover {
849
- color: var(--text-main);
850
- background: var(--bg-surface-elevated);
851
- }
852
-
853
- .main-tab.active {
854
- color: var(--accent-primary);
855
- border-bottom-color: var(--accent-primary);
856
- background: var(--bg-surface);
857
- }
858
-
859
- /* Tab Content Areas */
860
- .tab-content {
861
- display: none;
862
- flex: 1;
863
- flex-direction: column;
864
- overflow: hidden;
865
- }
866
-
867
- .tab-content.active {
868
- display: flex;
869
- }
870
-
871
- /* Chat Section */
872
- .chat-section {
873
- flex: 1;
874
- display: flex;
875
- flex-direction: column;
876
- overflow: hidden;
877
- border-bottom: 1px solid var(--border-subtle);
878
- position: relative;
879
- }
804
+ /* ═══════════════════════════════════════════════════════════
805
+ Chat
806
+ ═══════════════════════════════════════════════════════════ */
880
807
 
881
808
  .chat-viewer {
882
809
  flex: 1;
@@ -908,7 +835,6 @@ textarea:focus {
908
835
  box-shadow: var(--shadow-sm);
909
836
  }
910
837
 
911
- /* Chat Messages */
912
838
  .chat-message {
913
839
  display: flex;
914
840
  max-width: 90%;
@@ -932,14 +858,13 @@ textarea:focus {
932
858
  background: var(--bg-surface);
933
859
  border-radius: var(--radius-lg);
934
860
  padding: 10px 14px;
935
- box-shadow: var(--shadow-sm);
936
- border-left: 4px solid var(--agent-color, var(--accent-primary));
861
+ border-left: 2px solid var(--agent-color, var(--accent-primary));
937
862
  }
938
863
 
939
864
  .chat-message-right .chat-bubble {
940
865
  border-left: none;
941
- border-right: 4px solid var(--agent-color, var(--color-user));
942
- background: var(--bg-surface-elevated);
866
+ border-right: 2px solid var(--agent-color, var(--color-user));
867
+ background: var(--bg-surface);
943
868
  }
944
869
 
945
870
  .chat-header {
@@ -952,10 +877,8 @@ textarea:focus {
952
877
 
953
878
  .chat-agent {
954
879
  font-family: 'Space Grotesk', sans-serif;
955
- font-weight: 700;
880
+ font-weight: 600;
956
881
  font-size: 12px;
957
- text-transform: uppercase;
958
- letter-spacing: 0.05em;
959
882
  }
960
883
 
961
884
  .chat-time {
@@ -978,7 +901,10 @@ textarea:focus {
978
901
  font-size: 13px;
979
902
  }
980
903
 
981
- /* Markdown content styling */
904
+ /* ═══════════════════════════════════════════════════════════
905
+ Markdown content
906
+ ═══════════════════════════════════════════════════════════ */
907
+
982
908
  .markdown-content {
983
909
  color: var(--text-main);
984
910
  }
@@ -1049,34 +975,10 @@ textarea:focus {
1049
975
 
1050
976
  .markdown-content a:hover { text-decoration: underline; }
1051
977
 
1052
- /* Message Section */
1053
- .message-section {
1054
- flex: 0 0 auto;
1055
- }
1056
-
1057
- .message-input-container {
1058
- padding: 12px 16px;
1059
- background: var(--bg-surface);
1060
- display: flex;
1061
- gap: 12px;
1062
- align-items: flex-end;
1063
- }
1064
-
1065
- .message-input-container textarea {
1066
- flex: 1;
1067
- min-height: 44px;
1068
- max-height: 120px;
1069
- background: var(--bg-app);
1070
- border: 1px solid var(--border-subtle);
1071
- }
1072
-
1073
- .message-input-container .primary-button {
1074
- width: auto;
1075
- padding: 10px 20px;
1076
- height: 44px;
1077
- }
978
+ /* ═══════════════════════════════════════════════════════════
979
+ Plan Section
980
+ ═══════════════════════════════════════════════════════════ */
1078
981
 
1079
- /* Plan Section */
1080
982
  .plan-section {
1081
983
  flex: 1;
1082
984
  display: flex;
@@ -1085,10 +987,6 @@ textarea:focus {
1085
987
  background: var(--bg-surface);
1086
988
  }
1087
989
 
1088
- .plan-section .panel-header {
1089
- background: var(--bg-surface);
1090
- }
1091
-
1092
990
  .plan-viewer {
1093
991
  flex: 1;
1094
992
  overflow-y: auto;
@@ -1114,7 +1012,10 @@ textarea:focus {
1114
1012
  font-size: 15px;
1115
1013
  }
1116
1014
 
1117
- /* Diff Section */
1015
+ /* ═══════════════════════════════════════════════════════════
1016
+ Diff Section
1017
+ ═══════════════════════════════════════════════════════════ */
1018
+
1118
1019
  .diff-section {
1119
1020
  flex: 1;
1120
1021
  display: flex;
@@ -1178,47 +1079,133 @@ textarea:focus {
1178
1079
  color: var(--text-main);
1179
1080
  }
1180
1081
 
1181
- .file-list-item.active {
1082
+ .file-list-item.active {
1083
+ background: var(--bg-app);
1084
+ color: var(--accent-primary);
1085
+ border-left-color: var(--accent-primary);
1086
+ }
1087
+
1088
+ .file-list-item.all-files {
1089
+ font-weight: 600;
1090
+ color: var(--text-main);
1091
+ }
1092
+
1093
+ .file-list-item .file-status {
1094
+ font-size: 10px;
1095
+ font-weight: 700;
1096
+ }
1097
+
1098
+ .file-list-item .file-status.added { color: #22c55e; }
1099
+ .file-list-item .file-status.modified { color: var(--accent-secondary); }
1100
+ .file-list-item .file-status.deleted { color: #ef4444; }
1101
+
1102
+ .diff-content-pane {
1103
+ flex: 1;
1104
+ overflow: hidden;
1105
+ display: flex;
1106
+ flex-direction: column;
1107
+ background: var(--bg-app);
1108
+ }
1109
+
1110
+ .diff-resize {
1111
+ flex-shrink: 0;
1112
+ }
1113
+
1114
+ .diff-badge {
1115
+ display: inline-block;
1116
+ background: var(--accent-danger);
1117
+ color: white;
1118
+ font-size: 10px;
1119
+ font-weight: 700;
1120
+ padding: 2px 6px;
1121
+ border-radius: 10px;
1122
+ margin-left: 6px;
1123
+ min-width: 18px;
1124
+ text-align: center;
1125
+ }
1126
+
1127
+ .diff-stats {
1128
+ display: flex;
1129
+ gap: 16px;
1130
+ padding: 8px 12px;
1131
+ background: var(--bg-app);
1132
+ border-radius: var(--radius-md);
1133
+ font-family: 'IBM Plex Mono', monospace;
1134
+ font-size: 12px;
1135
+ }
1136
+
1137
+ .diff-stat-files { color: var(--text-muted); }
1138
+ .diff-stat-insertions { color: #22c55e; font-weight: 600; }
1139
+ .diff-stat-deletions { color: #ef4444; font-weight: 600; }
1140
+ .diff-stat-none { color: var(--text-dim); font-style: italic; }
1141
+
1142
+ .diff-content {
1143
+ flex: 1;
1144
+ overflow-y: auto;
1145
+ padding: 12px;
1146
+ }
1147
+
1148
+ .diff-output {
1149
+ margin: 0;
1150
+ padding: 12px;
1182
1151
  background: var(--bg-app);
1183
- color: var(--accent-primary);
1184
- border-left-color: var(--accent-primary);
1152
+ border-radius: var(--radius-md);
1153
+ font-family: 'IBM Plex Mono', monospace;
1154
+ font-size: 12px;
1155
+ line-height: 1.2;
1156
+ white-space: pre;
1157
+ overflow-x: auto;
1158
+ border: 1px solid var(--border-subtle);
1185
1159
  }
1186
1160
 
1187
- .file-list-item.all-files {
1161
+ .diff-added { color: #22c55e; background: rgba(34, 197, 94, 0.08); display: block; padding: 0 4px; }
1162
+ .diff-removed { color: #ef4444; background: rgba(239, 68, 68, 0.08); display: block; padding: 0 4px; }
1163
+ .diff-context { display: block; padding: 0 4px; }
1164
+ .diff-file-header { color: var(--accent-secondary); font-weight: 600; display: block; }
1165
+ .diff-hunk-header { color: var(--accent-primary); background: rgba(20, 241, 149, 0.1); display: block; }
1166
+
1167
+ .diff-file-separator {
1168
+ color: var(--text-dim);
1188
1169
  font-weight: 600;
1189
- color: var(--text-main);
1170
+ display: block;
1171
+ margin-top: 16px;
1172
+ padding-top: 8px;
1173
+ border-top: 1px solid var(--border-subtle);
1190
1174
  }
1191
1175
 
1192
- .file-list-item .file-status {
1193
- font-size: 10px;
1194
- font-weight: 700;
1176
+ .diff-file-separator:first-child {
1177
+ margin-top: 0;
1178
+ padding-top: 0;
1179
+ border-top: none;
1195
1180
  }
1196
1181
 
1197
- .file-list-item .file-status.added {
1198
- color: #22c55e;
1182
+ .diff-empty,
1183
+ .diff-no-repo,
1184
+ .diff-error {
1185
+ color: var(--text-dim);
1186
+ display: block;
1187
+ padding: 24px;
1188
+ text-align: center;
1199
1189
  }
1200
1190
 
1201
- .file-list-item .file-status.modified {
1202
- color: var(--accent-secondary);
1203
- }
1191
+ .diff-error { color: var(--accent-danger); }
1204
1192
 
1205
- .file-list-item .file-status.deleted {
1206
- color: #ef4444;
1207
- }
1193
+ .diff-untracked { margin-top: 8px; }
1208
1194
 
1209
- .diff-content-pane {
1210
- flex: 1;
1211
- overflow: hidden;
1212
- display: flex;
1213
- flex-direction: column;
1214
- background: var(--bg-app);
1195
+ .diff-untracked-header {
1196
+ font-family: 'Space Grotesk', sans-serif;
1197
+ font-size: 11px;
1198
+ font-weight: 600;
1199
+ text-transform: uppercase;
1200
+ letter-spacing: 0.05em;
1201
+ color: var(--accent-warning);
1202
+ margin-bottom: 8px;
1215
1203
  }
1216
1204
 
1217
- .diff-resize {
1218
- flex-shrink: 0;
1219
- }
1205
+ /* ═══════════════════════════════════════════════════════════
1206
+ Scrollbar
1207
+ ═══════════════════════════════════════════════════════════ */
1220
1208
 
1221
- /* Scrollbar Styling */
1222
1209
  ::-webkit-scrollbar {
1223
1210
  width: 8px;
1224
1211
  height: 8px;
@@ -1237,7 +1224,10 @@ textarea:focus {
1237
1224
  background: var(--text-dim);
1238
1225
  }
1239
1226
 
1240
- /* Resize Handles */
1227
+ /* ═══════════════════════════════════════════════════════════
1228
+ Resize Handles
1229
+ ═══════════════════════════════════════════════════════════ */
1230
+
1241
1231
  .resize-handle {
1242
1232
  flex-shrink: 0;
1243
1233
  background: transparent;
@@ -1271,20 +1261,6 @@ textarea:focus {
1271
1261
  width: 2px;
1272
1262
  }
1273
1263
 
1274
- .resize-handle-v {
1275
- height: 8px;
1276
- cursor: row-resize;
1277
- margin: -3px 0;
1278
- }
1279
-
1280
- .resize-handle-v::after {
1281
- top: 3px;
1282
- left: 0;
1283
- right: 0;
1284
- height: 2px;
1285
- }
1286
-
1287
- /* Prevent text selection during resize */
1288
1264
  body.resizing {
1289
1265
  user-select: none;
1290
1266
  -webkit-user-select: none;
@@ -1294,16 +1270,15 @@ body.resizing-h {
1294
1270
  cursor: col-resize;
1295
1271
  }
1296
1272
 
1297
- body.resizing-v {
1298
- cursor: row-resize;
1299
- }
1300
-
1301
1273
  body.resizing iframe,
1302
1274
  body.resizing .terminal-container {
1303
1275
  pointer-events: none;
1304
1276
  }
1305
1277
 
1306
- /* Modal Styles */
1278
+ /* ═══════════════════════════════════════════════════════════
1279
+ Modal
1280
+ ═══════════════════════════════════════════════════════════ */
1281
+
1307
1282
  .modal {
1308
1283
  position: fixed;
1309
1284
  top: 0;
@@ -1407,220 +1382,32 @@ body.resizing .terminal-container {
1407
1382
  font-size: 12px;
1408
1383
  }
1409
1384
 
1410
- /* Synthesis Tabs (Plan/Diff) */
1411
- .synthesis-tabs {
1412
- display: flex;
1413
- gap: 4px;
1414
- }
1415
-
1416
- .synthesis-tab {
1417
- padding: 6px 14px;
1418
- background: transparent;
1419
- border: 1px solid var(--border-subtle);
1420
- border-radius: var(--radius-md);
1421
- color: var(--text-muted);
1422
- font-size: 12px;
1423
- font-weight: 600;
1424
- font-family: 'Space Grotesk', sans-serif;
1425
- cursor: pointer;
1426
- transition: all var(--transition-fast);
1427
- text-transform: uppercase;
1428
- letter-spacing: 0.05em;
1429
- position: relative;
1430
- }
1431
-
1432
- .synthesis-tab:hover {
1433
- color: var(--text-main);
1434
- border-color: var(--text-muted);
1435
- }
1436
-
1437
- .synthesis-tab.active {
1438
- background: var(--accent-primary);
1439
- color: var(--bg-app);
1440
- border-color: var(--accent-primary);
1441
- }
1442
-
1443
- .panel-header-actions {
1444
- display: flex;
1445
- gap: 8px;
1446
- align-items: center;
1447
- }
1448
-
1449
- /* Diff Badge */
1450
- .diff-badge {
1451
- display: inline-block;
1452
- background: var(--accent-danger);
1453
- color: white;
1454
- font-size: 10px;
1455
- font-weight: 700;
1456
- padding: 2px 6px;
1457
- border-radius: 10px;
1458
- margin-left: 6px;
1459
- min-width: 18px;
1460
- text-align: center;
1461
- }
1462
-
1463
- .synthesis-tab.active .diff-badge {
1464
- background: var(--bg-app);
1465
- color: var(--accent-primary);
1466
- }
1467
-
1468
- /* Synthesis Content Areas */
1469
- .synthesis-content {
1470
- display: none;
1471
- flex: 1;
1472
- overflow-y: auto;
1473
- padding: 16px;
1474
- font-size: 13px;
1475
- line-height: 1.6;
1476
- }
1477
-
1478
- .synthesis-content.active {
1479
- display: block;
1480
- }
1481
-
1482
- /* Diff Viewer */
1483
- .diff-viewer {
1484
- flex-direction: column;
1485
- gap: 12px;
1486
- }
1487
-
1488
- .diff-viewer.active {
1489
- display: flex;
1490
- }
1491
-
1492
- .diff-stats {
1493
- display: flex;
1494
- gap: 16px;
1495
- padding: 8px 12px;
1496
- background: var(--bg-app);
1497
- border-radius: var(--radius-md);
1498
- font-family: 'IBM Plex Mono', monospace;
1499
- font-size: 12px;
1500
- }
1501
-
1502
- .diff-stat-files {
1503
- color: var(--text-muted);
1504
- }
1505
-
1506
- .diff-stat-insertions {
1507
- color: #22c55e;
1508
- font-weight: 600;
1509
- }
1510
-
1511
- .diff-stat-deletions {
1512
- color: #ef4444;
1513
- font-weight: 600;
1514
- }
1515
-
1516
- .diff-stat-none {
1517
- color: var(--text-dim);
1518
- font-style: italic;
1519
- }
1520
-
1521
- .diff-content {
1522
- flex: 1;
1523
- overflow-y: auto;
1524
- padding: 12px;
1525
- }
1526
-
1527
- .diff-output {
1528
- margin: 0;
1529
- padding: 12px;
1530
- background: var(--bg-app);
1531
- border-radius: var(--radius-md);
1532
- font-family: 'IBM Plex Mono', monospace;
1533
- font-size: 12px;
1534
- line-height: 1.5;
1535
- white-space: pre;
1536
- overflow-x: auto;
1537
- border: 1px solid var(--border-subtle);
1538
- }
1539
-
1540
- .diff-added {
1541
- color: #22c55e;
1542
- background: rgba(34, 197, 94, 0.1);
1543
- display: block;
1544
- }
1545
-
1546
- .diff-removed {
1547
- color: #ef4444;
1548
- background: rgba(239, 68, 68, 0.1);
1549
- display: block;
1550
- }
1551
-
1552
- .diff-file-header {
1553
- color: var(--accent-secondary);
1554
- font-weight: 600;
1555
- display: block;
1556
- }
1557
-
1558
- .diff-hunk-header {
1559
- color: var(--accent-primary);
1560
- background: rgba(20, 241, 149, 0.1);
1561
- display: block;
1562
- }
1563
-
1564
- .diff-file-separator {
1565
- color: var(--text-dim);
1566
- font-weight: 600;
1567
- display: block;
1568
- margin-top: 16px;
1569
- padding-top: 8px;
1570
- border-top: 1px solid var(--border-subtle);
1571
- }
1572
-
1573
- .diff-file-separator:first-child {
1574
- margin-top: 0;
1575
- padding-top: 0;
1576
- border-top: none;
1577
- }
1578
-
1579
- .diff-empty,
1580
- .diff-no-repo,
1581
- .diff-error {
1582
- color: var(--text-dim);
1583
- display: block;
1584
- padding: 24px;
1585
- text-align: center;
1586
- }
1587
-
1588
- .diff-error {
1589
- color: var(--accent-danger);
1590
- }
1591
-
1592
- /* Untracked Files */
1593
- .diff-untracked {
1594
- margin-top: 8px;
1595
- }
1385
+ /* ═══════════════════════════════════════════════════════════
1386
+ Header icon (used in welcome)
1387
+ ═══════════════════════════════════════════════════════════ */
1596
1388
 
1597
- .diff-untracked-header {
1598
- font-family: 'Space Grotesk', sans-serif;
1599
- font-size: 11px;
1600
- font-weight: 600;
1601
- text-transform: uppercase;
1602
- letter-spacing: 0.05em;
1603
- color: var(--accent-warning);
1604
- margin-bottom: 8px;
1389
+ .header-icon {
1390
+ height: 1.2em;
1391
+ width: auto;
1392
+ vertical-align: middle;
1393
+ margin-right: 0.3em;
1394
+ filter: drop-shadow(0 0 8px rgba(20, 241, 149, 0.3));
1605
1395
  }
1606
1396
 
1607
- .diff-untracked-list {
1608
- margin: 0;
1609
- padding: 8px 12px;
1610
- background: var(--bg-app);
1611
- border-radius: var(--radius-md);
1397
+ textarea {
1398
+ width: 100%;
1399
+ padding: 10px 14px;
1400
+ background: var(--bg-surface);
1612
1401
  border: 1px solid var(--border-subtle);
1613
- list-style: none;
1614
- }
1615
-
1616
- .diff-untracked-list li {
1617
- font-family: 'IBM Plex Mono', monospace;
1618
- font-size: 12px;
1619
- color: var(--accent-warning);
1620
- padding: 2px 0;
1402
+ border-radius: var(--radius-lg);
1403
+ color: var(--text-main);
1404
+ font-size: 14px;
1405
+ font-family: 'Manrope', sans-serif;
1406
+ resize: vertical;
1407
+ transition: all var(--transition-fast);
1621
1408
  }
1622
1409
 
1623
- .diff-untracked-list li::before {
1624
- content: '? ';
1625
- color: var(--text-dim);
1410
+ textarea:focus {
1411
+ outline: none;
1412
+ border-color: var(--border-strong);
1626
1413
  }