loadtoagent 1.1.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.ko.md +7 -0
  2. package/README.md +7 -0
  3. package/README.zh-CN.md +7 -0
  4. package/docs/PROVIDER-CONTRACTS.md +23 -1
  5. package/docs/UI-AUDIT-100.md +118 -0
  6. package/docs/UI-AUDIT-101-200.md +120 -0
  7. package/docs/UI-AUDIT-201-300.md +120 -0
  8. package/main.js +135 -38
  9. package/package.json +13 -4
  10. package/preload.js +6 -0
  11. package/renderer/app-agent-actions.js +125 -53
  12. package/renderer/app-bootstrap.js +54 -19
  13. package/renderer/app-dashboard.js +190 -55
  14. package/renderer/app-drawer-content.js +48 -44
  15. package/renderer/app-drawer-data.js +26 -13
  16. package/renderer/app-drawer.js +72 -54
  17. package/renderer/app-events-dialogs.js +146 -37
  18. package/renderer/app-events-filters.js +172 -13
  19. package/renderer/app-events-navigation.js +77 -30
  20. package/renderer/app-events-sessions.js +156 -9
  21. package/renderer/app-events.js +2 -1
  22. package/renderer/app-graph-model.js +20 -38
  23. package/renderer/app-graph-orchestration.js +15 -13
  24. package/renderer/app-graph-view.js +228 -113
  25. package/renderer/app-management.js +211 -0
  26. package/renderer/app-provider-visibility.js +124 -0
  27. package/renderer/app-quality.js +568 -0
  28. package/renderer/app-run-modal.js +103 -33
  29. package/renderer/app-runtime-overview.js +312 -0
  30. package/renderer/app-session-render.js +94 -37
  31. package/renderer/app-tmux-render.js +52 -44
  32. package/renderer/app.js +153 -75
  33. package/renderer/i18n-messages.js +833 -16
  34. package/renderer/i18n.js +104 -0
  35. package/renderer/index.html +145 -59
  36. package/renderer/shared.js +17 -0
  37. package/renderer/styles-agent-map.css +6 -0
  38. package/renderer/styles-cards.css +26 -0
  39. package/renderer/styles-components.css +86 -9
  40. package/renderer/styles-management.css +355 -0
  41. package/renderer/styles-overlays.css +8 -2
  42. package/renderer/styles-product.css +24 -16
  43. package/renderer/styles-quality.css +312 -0
  44. package/renderer/styles-readability.css +862 -0
  45. package/renderer/styles-responsive-product.css +84 -12
  46. package/renderer/styles-responsive-runtime.css +22 -14
  47. package/renderer/styles-responsive-shell.css +44 -48
  48. package/renderer/styles-responsive-workflows.css +37 -3
  49. package/renderer/styles-run-composer.css +5 -0
  50. package/renderer/styles-runtime-overview.css +285 -0
  51. package/renderer/styles-settings.css +160 -0
  52. package/renderer/styles-terminal.css +339 -2
  53. package/renderer/styles-workflow-map.css +362 -15
  54. package/renderer/styles-workflows.css +69 -2
  55. package/renderer/styles.css +27 -12
  56. package/renderer/terminal-agent.js +17 -13
  57. package/renderer/terminal-events.js +233 -40
  58. package/renderer/terminal-workbench.js +165 -77
  59. package/renderer/terminal.js +341 -34
  60. package/src/agentMonitor/claudeParser.js +96 -7
  61. package/src/agentMonitor/codexParser.js +59 -4
  62. package/src/agentMonitor/executionActivity.js +282 -0
  63. package/src/agentMonitor/genericParser.js +56 -13
  64. package/src/agentMonitor/hierarchy.js +17 -0
  65. package/src/agentMonitor/responseIntent.js +51 -0
  66. package/src/agentMonitor.js +21 -3
  67. package/src/agentRunner.js +66 -1
  68. package/src/attentionNotifier.js +14 -10
  69. package/src/automationMonitor.js +258 -0
  70. package/src/contracts.js +10 -1
  71. package/src/ipc/registerAgentIpc.js +9 -3
  72. package/src/ipc/registerAppIpc.js +4 -1
  73. package/src/ipc/registerTerminalIpc.js +12 -6
  74. package/src/macUpdateHelper.js +210 -0
  75. package/src/monitorWorker.js +65 -6
  76. package/src/platformPath.js +80 -0
  77. package/src/processMonitor.js +80 -22
  78. package/src/providerVisibilityStore.js +45 -0
  79. package/src/sessionIntelligence.js +247 -0
  80. package/src/terminalHost.js +381 -0
  81. package/src/terminalHostDaemon.js +60 -0
  82. package/src/terminalManager.js +158 -3
  83. package/src/updateInstaller.js +175 -0
@@ -0,0 +1,862 @@
1
+ /*
2
+ * Readability system
3
+ * ------------------
4
+ * Final, cross-view legibility layer. This file intentionally loads last so
5
+ * every screen shares the same readable type floor, contrast, and focus cues.
6
+ */
7
+
8
+ :root {
9
+ --sidebar: 272px;
10
+ --text: #f6f9fb;
11
+ --muted: #c3ced7;
12
+ --dim: #aab8c4;
13
+ --line: #344554;
14
+ --line-soft: #253542;
15
+ --panel: #0c151f;
16
+ --panel-2: #121d28;
17
+ --panel-3: #172532;
18
+ --focus: #99ebff;
19
+ }
20
+
21
+ html,
22
+ body {
23
+ font-size: 15px;
24
+ line-height: 1.55;
25
+ text-rendering: optimizeLegibility;
26
+ }
27
+
28
+ body {
29
+ letter-spacing: -.005em;
30
+ }
31
+
32
+ /* Small copy carries real product meaning here, so it must remain readable. */
33
+ body small {
34
+ font-size: 12px !important;
35
+ line-height: 1.5;
36
+ color: #b9c6d0 !important;
37
+ }
38
+
39
+ body :is(time, dt, dd) {
40
+ color: #b9c6d0 !important;
41
+ font-size: 12px !important;
42
+ line-height: 1.5;
43
+ }
44
+
45
+ body :is(
46
+ [class*="-meta"],
47
+ [class*="-label"],
48
+ [class*="-caption"],
49
+ [class*="-status"],
50
+ [class*="-hint"],
51
+ [class*="-summary"],
52
+ [class*="-time"],
53
+ [class*="-count"],
54
+ [class*="-kicker"]
55
+ ) {
56
+ font-size: 12px;
57
+ line-height: 1.5;
58
+ }
59
+
60
+ body :is(p, li, dd, dt, label, input, textarea, select, button) {
61
+ line-height: 1.5;
62
+ }
63
+
64
+ body :is(.subtitle, .section-explain, .run-modal-intro, .settings-head p) {
65
+ color: var(--muted);
66
+ font-size: 15px;
67
+ line-height: 1.7;
68
+ }
69
+
70
+ .global-stat > span,
71
+ .global-stat > em {
72
+ font-size: 12px;
73
+ }
74
+
75
+ .global-stat > span {
76
+ color: #cbd6de !important;
77
+ }
78
+
79
+ body :is(.eyebrow, .nav-group-label, .section-title, .field-label) {
80
+ color: #a9b8c5;
81
+ font-size: 12px;
82
+ line-height: 1.4;
83
+ letter-spacing: .08em;
84
+ }
85
+
86
+ .main-stage {
87
+ display: flex;
88
+ flex-direction: column;
89
+ padding-top: 34px;
90
+ }
91
+
92
+ .main-stage > * {
93
+ width: 100%;
94
+ flex: 0 0 auto;
95
+ }
96
+
97
+ /* Home starts with decisions, then live work; reference material comes later. */
98
+ body[data-current-view="all"] .topbar { order: 0; }
99
+ body[data-current-view="all"] #appErrorBanner { order: 1; }
100
+ body[data-current-view="all"] #operationsOverview { order: 2; margin-top: 20px; }
101
+ body[data-current-view="all"] #liveSection { order: 3; }
102
+ body[data-current-view="all"] #updateNotice { order: 4; }
103
+ body[data-current-view="all"] #globalStats { order: 5; }
104
+ body[data-current-view="all"] #providerOverview { order: 6; }
105
+ body[data-current-view="all"] #beginnerGuide { order: 7; }
106
+ body[data-current-view="all"] #sessionSection { order: 8; }
107
+
108
+ .topbar {
109
+ align-items: center;
110
+ margin: 0 auto;
111
+ }
112
+
113
+ .topbar h1 {
114
+ line-height: 1.16;
115
+ }
116
+
117
+ .top-actions :is(button, .sync-state) {
118
+ min-height: 48px;
119
+ }
120
+
121
+ .sync-state.connection-error > span {
122
+ background: var(--red, #ff7373);
123
+ box-shadow: 0 0 9px rgba(255, 115, 115, .55);
124
+ animation: none;
125
+ }
126
+
127
+ .sync-state.connection-error small {
128
+ color: #ff9b9b !important;
129
+ font-weight: 750;
130
+ }
131
+
132
+ /* Navigation: labels and counts should be scannable without leaning in. */
133
+ .sidebar {
134
+ padding-inline: 19px;
135
+ }
136
+
137
+ .brand small {
138
+ color: #95a6b7;
139
+ font-size: 12px !important;
140
+ }
141
+
142
+ .nav-item {
143
+ min-height: 48px;
144
+ color: #c0ccd7;
145
+ font-size: 14px;
146
+ font-weight: 620;
147
+ }
148
+
149
+ .nav-item:hover {
150
+ background: #182331;
151
+ color: #f4f8fb;
152
+ }
153
+
154
+ .nav-item.active {
155
+ background: linear-gradient(90deg, rgba(89, 216, 255, .2), rgba(89, 216, 255, .07));
156
+ color: #fff;
157
+ box-shadow: inset 3px 0 var(--cyan);
158
+ }
159
+
160
+ .nav-item b {
161
+ min-width: 42px;
162
+ display: inline-flex;
163
+ align-items: baseline;
164
+ justify-content: center;
165
+ gap: 3px;
166
+ padding: 4px 7px;
167
+ color: #d3dce5;
168
+ font-size: 12px;
169
+ }
170
+
171
+ .nav-item b small,
172
+ .advanced-tools-nav > summary b small {
173
+ color: #9eb0bd;
174
+ font-size: 11.5px !important;
175
+ font-weight: 700;
176
+ }
177
+
178
+ .advanced-tools-nav > summary b {
179
+ min-width: 48px;
180
+ display: inline-flex;
181
+ align-items: baseline;
182
+ justify-content: center;
183
+ gap: 3px;
184
+ }
185
+
186
+ .nav-icon {
187
+ font-size: 16px;
188
+ }
189
+
190
+ .sidebar-footer strong,
191
+ .sidebar-footer small,
192
+ .sidebar-app-version {
193
+ color: #aebdca;
194
+ font-size: 12px !important;
195
+ }
196
+
197
+ .provider-rail-item,
198
+ .workspace-item {
199
+ min-height: 44px;
200
+ color: #c5d0da;
201
+ font-size: 13px;
202
+ }
203
+
204
+ .provider-mini-mark {
205
+ width: 25px;
206
+ height: 25px;
207
+ font-size: 12px;
208
+ }
209
+
210
+ /* Shared surfaces: stronger separation makes dense screens easier to chunk. */
211
+ body :is(
212
+ .beginner-guide,
213
+ .provider-overview-card,
214
+ .session-card,
215
+ .settings-card,
216
+ .language-settings-card,
217
+ .provider-visibility-card,
218
+ .update-center,
219
+ .terminal-workbench,
220
+ .tmux-map-shell,
221
+ .automation-overview,
222
+ .operations-overview,
223
+ .attention-inbox
224
+ ) {
225
+ border-color: var(--line);
226
+ }
227
+
228
+ body :is(.provider-overview-card, .session-card, .runtime-schedule-card, .terminal-session-item) {
229
+ box-shadow: 0 10px 28px rgba(0, 0, 0, .13);
230
+ }
231
+
232
+ body :is(button, input, select, textarea, summary, [tabindex]):focus-visible {
233
+ outline: 3px solid var(--focus);
234
+ outline-offset: 3px;
235
+ }
236
+
237
+ .app-error-banner {
238
+ max-width: 1640px;
239
+ display: grid;
240
+ grid-template-columns: 44px minmax(0, 1fr) auto;
241
+ align-items: center;
242
+ gap: 14px;
243
+ margin: 20px auto 0;
244
+ padding: 16px 18px;
245
+ border: 1px solid #8b4b55;
246
+ border-radius: 14px;
247
+ background: linear-gradient(100deg, rgba(111, 39, 51, .34), rgba(35, 18, 24, .9));
248
+ }
249
+
250
+ .app-error-icon {
251
+ width: 44px;
252
+ height: 44px;
253
+ display: grid;
254
+ place-items: center;
255
+ border-radius: 12px;
256
+ background: #4c2029;
257
+ color: #ffb0ba;
258
+ font-size: 20px;
259
+ font-weight: 850;
260
+ }
261
+
262
+ .app-error-banner b { color: #fff3f5; font-size: 15px; }
263
+ .app-error-banner p { margin: 4px 0 0; color: #e7c8cd; font-size: 13px; }
264
+ .app-error-actions { display: flex; flex-wrap: wrap; gap: 8px; }
265
+ .app-error-actions button {
266
+ min-height: 44px;
267
+ padding: 0 14px;
268
+ border: 1px solid #8b5961;
269
+ border-radius: 10px;
270
+ background: #301b21;
271
+ color: #ffe8ec;
272
+ font-weight: 720;
273
+ }
274
+ .app-error-actions button:first-child { border-color: #e47b89; background: #6b2f3a; }
275
+
276
+ body :is(input, select, textarea) {
277
+ color: #f3f7fa;
278
+ }
279
+
280
+ body :is(input, textarea)::placeholder {
281
+ color: #8293a3;
282
+ opacity: 1;
283
+ }
284
+
285
+ /* First-use guide: each step reads as a clear action, not fine print. */
286
+ .beginner-guide {
287
+ grid-template-columns: minmax(240px, .75fr) minmax(0, 2.7fr);
288
+ gap: 20px;
289
+ padding: 22px 56px 22px 22px;
290
+ }
291
+
292
+ .beginner-guide-intro b {
293
+ font-size: 17px;
294
+ line-height: 1.35;
295
+ }
296
+
297
+ .beginner-guide-intro > span:not(.guide-time) {
298
+ color: #becbd6;
299
+ font-size: 13px;
300
+ line-height: 1.6;
301
+ }
302
+
303
+ .guide-time {
304
+ font-size: 12px !important;
305
+ }
306
+
307
+ .beginner-guide ol {
308
+ gap: 10px;
309
+ }
310
+
311
+ .beginner-guide li button {
312
+ min-height: 118px;
313
+ padding: 15px;
314
+ }
315
+
316
+ .beginner-guide li b {
317
+ font-size: 14px;
318
+ line-height: 1.35;
319
+ }
320
+
321
+ .beginner-guide li small {
322
+ color: #acbac7;
323
+ font-size: 12px !important;
324
+ line-height: 1.55;
325
+ }
326
+
327
+ .beginner-guide li em {
328
+ font-size: 12px;
329
+ font-weight: 760;
330
+ }
331
+
332
+ /* Home and task cards: strengthen the title > current state > metadata order. */
333
+ .provider-overview-card {
334
+ min-height: 142px;
335
+ padding: 20px;
336
+ }
337
+
338
+ .provider-overview-card strong {
339
+ font-size: 16px;
340
+ }
341
+
342
+ .provider-overview-card :is(span, small) {
343
+ color: #adbac6;
344
+ font-size: 12px;
345
+ }
346
+
347
+ .sessions-heading h2,
348
+ .live-section h2,
349
+ .terminal-section h2,
350
+ .tmux-section h2 {
351
+ line-height: 1.25;
352
+ }
353
+
354
+ .session-card h3,
355
+ .card-title {
356
+ color: #f4f8fb;
357
+ font-size: 17px;
358
+ line-height: 1.35;
359
+ }
360
+
361
+ .session-card :is(.card-subtitle, .activity-copy span, .conversation-preview p, .now-strip p) {
362
+ color: #b5c2cd;
363
+ font-size: 13px;
364
+ line-height: 1.6;
365
+ }
366
+
367
+ .session-card :is(.status-pill, .meta-chip, time) {
368
+ font-size: 12px;
369
+ }
370
+
371
+ .card-provider-line span {
372
+ font-size: 12px;
373
+ }
374
+
375
+ .session-result-summary {
376
+ color: #9faebb;
377
+ font-size: 12px;
378
+ }
379
+
380
+ /* Runtime view: labels were the smallest text in the product. */
381
+ .runtime-overview-title > div > span,
382
+ .runtime-loop-detail header p,
383
+ .runtime-now-strip p,
384
+ .runtime-schedule-card small,
385
+ .runtime-loop-phase > small,
386
+ .runtime-current-signal p {
387
+ color: #adbec7;
388
+ font-size: 12px;
389
+ line-height: 1.55;
390
+ }
391
+
392
+ .runtime-overview-counts span,
393
+ .runtime-schedule-time,
394
+ .runtime-loop-tab small,
395
+ .runtime-active-phase small,
396
+ .runtime-now-strip small,
397
+ .runtime-loop-phase-index,
398
+ .runtime-loop-footer dt,
399
+ .runtime-current-signal b {
400
+ font-size: 12px;
401
+ line-height: 1.45;
402
+ }
403
+
404
+ .runtime-schedule-card {
405
+ min-height: 104px;
406
+ padding: 18px;
407
+ }
408
+
409
+ .runtime-schedule-card strong,
410
+ .runtime-loop-phase > b {
411
+ font-size: 14px;
412
+ line-height: 1.4;
413
+ }
414
+
415
+ .runtime-loop-tab {
416
+ min-height: 58px;
417
+ }
418
+
419
+ .runtime-loop-tabs {
420
+ padding-right: 18px;
421
+ border-right: 2px solid #58cdb0;
422
+ box-shadow: inset -20px 0 18px -20px rgba(89, 216, 255, .9);
423
+ scrollbar-width: auto;
424
+ scrollbar-color: #5a7f7a #0a1721;
425
+ }
426
+
427
+ .runtime-loop-tabs::after {
428
+ content: "→";
429
+ position: sticky;
430
+ right: 0;
431
+ align-self: center;
432
+ color: #8de6cd;
433
+ font-size: 15px;
434
+ font-weight: 800;
435
+ }
436
+
437
+ .runtime-loop-tab b {
438
+ font-size: 13px;
439
+ }
440
+
441
+ .runtime-loop-detail h3 {
442
+ font-size: 20px;
443
+ line-height: 1.3;
444
+ }
445
+
446
+ .runtime-now-strip b {
447
+ font-size: 15px;
448
+ line-height: 1.45;
449
+ }
450
+
451
+ .runtime-open-task {
452
+ font-size: 12px;
453
+ }
454
+
455
+ /* Terminal/tmux: preserve console density while making surrounding controls clear. */
456
+ .terminal-section-head,
457
+ .tmux-section-head {
458
+ align-items: center;
459
+ }
460
+
461
+ .terminal-workbench :is(.terminal-target-meta small, .terminal-session-item small, .terminal-resource-tip small) {
462
+ color: #aab9c6;
463
+ font-size: 12px !important;
464
+ }
465
+
466
+ .terminal-session-item strong,
467
+ .terminal-target-meta b {
468
+ font-size: 14px;
469
+ line-height: 1.4;
470
+ }
471
+
472
+ .terminal-workbench :is(button, label, .terminal-command-status) {
473
+ font-size: 12px;
474
+ }
475
+
476
+ .terminal-session-row {
477
+ grid-template-columns: minmax(0, 1fr) 44px;
478
+ gap: 7px;
479
+ }
480
+
481
+ .terminal-reorder-actions button {
482
+ min-width: 44px;
483
+ min-height: 44px;
484
+ font-size: 16px;
485
+ }
486
+
487
+ .terminal-font-controls {
488
+ grid-template-columns: 44px 52px 44px;
489
+ min-height: 44px;
490
+ }
491
+
492
+ .terminal-font-controls button {
493
+ min-width: 44px;
494
+ height: 44px;
495
+ }
496
+
497
+ .terminal-font-controls output { font-size: 12px; }
498
+
499
+ .terminal-session-tools { position: relative; }
500
+
501
+ .terminal-session-tools > summary {
502
+ min-width: 112px;
503
+ min-height: 44px;
504
+ display: flex;
505
+ align-items: center;
506
+ justify-content: space-between;
507
+ gap: 10px;
508
+ padding: 0 12px;
509
+ border: 1px solid #35505d;
510
+ border-radius: 9px;
511
+ background: #111d27;
512
+ color: #c7d4dc;
513
+ font-size: 12px;
514
+ font-weight: 750;
515
+ cursor: pointer;
516
+ list-style: none;
517
+ }
518
+
519
+ .terminal-session-tools > summary::-webkit-details-marker { display: none; }
520
+ .terminal-session-tools > summary i { font-style: normal; transition: transform .18s ease; }
521
+ .terminal-session-tools[open] > summary i { transform: rotate(180deg); }
522
+ .terminal-session-tools .terminal-key-actions {
523
+ position: absolute;
524
+ z-index: 8;
525
+ top: calc(100% + 8px);
526
+ right: 0;
527
+ min-width: 440px;
528
+ display: grid;
529
+ grid-template-columns: repeat(2, minmax(0, 1fr));
530
+ gap: 7px;
531
+ padding: 10px;
532
+ border: 1px solid #3a4f5d;
533
+ border-radius: 12px;
534
+ background: #0c151e;
535
+ box-shadow: 0 18px 44px rgba(0, 0, 0, .48);
536
+ }
537
+
538
+ .terminal-session-tools:not([open]) > .terminal-key-actions { display: none; }
539
+
540
+ .terminal-controlbar .terminal-session-tools .terminal-key-actions button {
541
+ min-height: 44px;
542
+ height: auto;
543
+ justify-content: space-between;
544
+ font-size: 12px;
545
+ }
546
+
547
+ .terminal-command-form textarea,
548
+ .terminal-screen .xterm {
549
+ font-size: 14px;
550
+ line-height: 1.5;
551
+ }
552
+
553
+ .terminal-command-form textarea {
554
+ min-height: 72px;
555
+ }
556
+
557
+ .tmux-pane-node :is(small, span),
558
+ .tmux-map-shell :is(.tmux-map-legend, .tmux-map-help) {
559
+ color: #afbdc9;
560
+ }
561
+
562
+ /* Settings: version metadata and explanations are primary, not decorative. */
563
+ .settings-section :is(p, small, dt) {
564
+ color: #b5c3cc;
565
+ }
566
+
567
+ .settings-section :is(.language-settings-copy p, .provider-visibility-copy p, .update-state-copy p) {
568
+ font-size: 13px;
569
+ line-height: 1.65;
570
+ }
571
+
572
+ .settings-section :is(.language-settings-card, .provider-visibility-card) {
573
+ padding: 24px;
574
+ }
575
+
576
+ .provider-visibility-item {
577
+ min-height: 72px;
578
+ }
579
+
580
+ .version-card small,
581
+ .version-route small,
582
+ .update-fact p,
583
+ .update-step p {
584
+ font-size: 12px !important;
585
+ line-height: 1.55;
586
+ }
587
+
588
+ /* Drawers, dialogs, and menus must be as readable as the main views. */
589
+ .detail-drawer {
590
+ width: min(610px, 94vw);
591
+ }
592
+
593
+ .drawer-tabs .drawer-tab {
594
+ min-height: 48px;
595
+ font-size: 13px;
596
+ }
597
+
598
+ .drawer-content :is(p, li, dd, dt, span) {
599
+ line-height: 1.6;
600
+ }
601
+
602
+ .quality-command-list button small,
603
+ .quality-dialog-status,
604
+ .shortcut-help-list dd {
605
+ color: #aebcc8;
606
+ font-size: 12px;
607
+ }
608
+
609
+ .run-step-head b,
610
+ .field-label {
611
+ font-size: 13px;
612
+ }
613
+
614
+ .run-step-head small,
615
+ .run-advanced small,
616
+ .permission-toggle small {
617
+ color: #b0beca;
618
+ font-size: 12px !important;
619
+ }
620
+
621
+ /* Keep compact product metadata readable without changing structural sizing. */
622
+ .provider-mark,
623
+ .sync-state b,
624
+ .guide-dismiss,
625
+ .update-notice button span,
626
+ .source-tag,
627
+ .runtime-segment-icon,
628
+ .runtime-segment > header em,
629
+ .live-tmux-overview-open {
630
+ font-size: 12px;
631
+ }
632
+
633
+ .new-run-cta-copy b,
634
+ .new-run-cta-icon {
635
+ color: #102733;
636
+ }
637
+
638
+ .new-run-cta {
639
+ background-color: #b8d2e1;
640
+ }
641
+
642
+ .new-run-cta-copy small,
643
+ .new-run-cta-copy kbd {
644
+ background-color: #b8d2e1;
645
+ color: #102733 !important;
646
+ }
647
+
648
+ .runtime-segment > header em,
649
+ .runtime-disclosure > summary em,
650
+ .agent-flow-copy em,
651
+ .agent-flow-provider em,
652
+ .agent-identity em,
653
+ .live-tmux-card-head em,
654
+ .tmux-agent-block em {
655
+ color: #b7c5cf;
656
+ font-size: 12px;
657
+ }
658
+
659
+ .operations-metrics span {
660
+ color: #d1dbe2 !important;
661
+ }
662
+
663
+ .poc-state,
664
+ .poc-metrics span,
665
+ .poc-head small,
666
+ .provider-overview-card .status-pill {
667
+ font-size: 12px;
668
+ }
669
+
670
+ .execution-mode-badge,
671
+ .execution-mode-badge b,
672
+ .execution-mode-badge small,
673
+ .execution-mode-badge i {
674
+ font-size: 12px !important;
675
+ }
676
+
677
+ .runtime-schedule-lane > header em {
678
+ color: #9db2bd;
679
+ }
680
+
681
+ .runtime-loop-phase-index em {
682
+ color: #adbbc4;
683
+ font-size: 12px;
684
+ }
685
+
686
+ .runtime-overview-title p,
687
+ .runtime-schedule-lane > header span,
688
+ .runtime-loop-lane-head > div > span,
689
+ .runtime-overview-counts > span,
690
+ .runtime-overview-counts > b {
691
+ font-size: 12px;
692
+ }
693
+
694
+ .settings-section :is(
695
+ .language-settings-copy > span,
696
+ .language-select > span,
697
+ .provider-visibility-copy > span,
698
+ .version-node span,
699
+ .update-fact > span,
700
+ .update-step > span
701
+ ) {
702
+ color: #a8bac4;
703
+ font-size: 12px;
704
+ }
705
+
706
+ .terminal-section :is(
707
+ button,
708
+ small,
709
+ em,
710
+ .terminal-resource-live,
711
+ .terminal-session-icon,
712
+ .terminal-target-icon,
713
+ .terminal-console-state,
714
+ .terminal-command-label > span,
715
+ .terminal-notice
716
+ ) {
717
+ font-size: 12px;
718
+ }
719
+
720
+ #terminalSessionSummary,
721
+ .terminal-resource-tip b,
722
+ .terminal-target-meta span,
723
+ .terminal-connection-state span,
724
+ .terminal-command-form .terminal-command-label label {
725
+ font-size: 12px;
726
+ }
727
+
728
+ .tmux-section :is(
729
+ button,
730
+ small,
731
+ em,
732
+ .tmux-stats span,
733
+ .tmux-distro-node > span,
734
+ .tmux-distro-node > b,
735
+ .tmux-pane-node span
736
+ ) {
737
+ font-size: 12px;
738
+ }
739
+
740
+ .tmux-pane-head i {
741
+ font-size: 12px;
742
+ }
743
+
744
+ .live-tmux-shortcut {
745
+ min-height: 44px;
746
+ }
747
+
748
+ @media (max-width: 1280px) {
749
+ .beginner-guide {
750
+ grid-template-columns: 1fr;
751
+ }
752
+
753
+ .beginner-guide ol {
754
+ grid-template-columns: repeat(2, minmax(0, 1fr));
755
+ }
756
+
757
+ .beginner-guide li button {
758
+ min-height: 104px;
759
+ }
760
+ }
761
+
762
+ @media (max-width: 980px) {
763
+ :root {
764
+ --sidebar: 220px;
765
+ }
766
+
767
+ .sidebar {
768
+ padding-inline: 14px;
769
+ }
770
+ }
771
+
772
+ @media (max-width: 720px) {
773
+ :root {
774
+ --sidebar: 0px;
775
+ }
776
+
777
+ html,
778
+ body {
779
+ font-size: 14px;
780
+ }
781
+
782
+ .main-stage {
783
+ padding-top: 22px;
784
+ }
785
+
786
+ .subtitle {
787
+ font-size: 14px;
788
+ }
789
+
790
+ .beginner-guide {
791
+ padding: 18px;
792
+ }
793
+
794
+ .beginner-guide ol {
795
+ grid-template-columns: 1fr;
796
+ }
797
+
798
+ .beginner-guide li button {
799
+ min-height: 96px;
800
+ }
801
+
802
+ .sidebar .nav-item > span:nth-child(2) {
803
+ font-size: 12px;
804
+ }
805
+
806
+ .guide-dismiss {
807
+ font-size: 0;
808
+ }
809
+
810
+ .detail-drawer {
811
+ width: 100vw;
812
+ }
813
+
814
+ .app-error-banner {
815
+ grid-template-columns: 40px minmax(0, 1fr);
816
+ }
817
+
818
+ .app-error-actions {
819
+ grid-column: 1 / -1;
820
+ display: grid;
821
+ grid-template-columns: repeat(2, minmax(0, 1fr));
822
+ }
823
+
824
+ .run-modal-actions .run-submit-button {
825
+ grid-column: 1 / -1;
826
+ white-space: nowrap;
827
+ }
828
+
829
+ .run-submit-button #runSubmitLabel {
830
+ white-space: nowrap;
831
+ }
832
+
833
+ .terminal-session-tools .terminal-key-actions {
834
+ position: absolute;
835
+ top: calc(100% + 8px);
836
+ right: auto;
837
+ bottom: auto;
838
+ left: 0;
839
+ width: min(440px, calc(100vw - 28px));
840
+ min-width: 0;
841
+ }
842
+ }
843
+
844
+ @media (prefers-contrast: more) {
845
+ :root {
846
+ --line: #5b6f80;
847
+ --line-soft: #435666;
848
+ --muted: #d5dee5;
849
+ --dim: #c2ced7;
850
+ }
851
+ }
852
+
853
+ @media (prefers-reduced-motion: reduce) {
854
+ *,
855
+ *::before,
856
+ *::after {
857
+ scroll-behavior: auto !important;
858
+ animation-duration: .01ms !important;
859
+ animation-iteration-count: 1 !important;
860
+ transition-duration: .01ms !important;
861
+ }
862
+ }