main
css 914 lines 20.7 KB
Raw
1 .process-group {
2 display: inline-flex;
3 flex-direction: column;
4 position: relative;
5 z-index: 1;
6 margin: var(--spacing-xs) 0;
7 padding: var(--spacing-xs) 0;
8 min-width: 200px;
9 max-width: 100%;
10 box-sizing: border-box;
11 flex-shrink: 0;
12 }
13
14 .process-group.utility-only {
15 display: none !important;
16 }
17
18 .show-utility-messages .process-group.utility-only {
19 display: flex !important;
20 }
21
22 /* Embedded Process Group inside Response */
23 .process-group.embedded {
24 display: flex;
25 flex-direction: column;
26 width: 100%;
27 margin: 0;
28 border-radius: var(--border-radius) var(--border-radius) 0 0;
29 /* border-bottom: 1px solid rgba(255, 255, 255, 0.08); */
30 background: transparent;
31 }
32
33 /* Message container with embedded process group */
34 .message-container.has-process-group {
35 display: inline-flex;
36 flex-direction: column;
37 padding: 0;
38 overflow: hidden;
39 min-width: 200px;
40 max-width: 100%;
41 }
42
43 .message-container.has-process-group > .message {
44 border: none;
45 background: transparent;
46 margin: 0;
47 }
48
49 /* Process Group Header */
50 .process-group-header {
51 display: flex;
52 align-items: center;
53 padding: 0;
54 cursor: pointer;
55 user-select: none;
56 transition: opacity 0.15s ease;
57 min-height: 22px;
58 gap: 6px;
59 white-space: nowrap;
60 }
61
62 .process-group-header:hover {
63 opacity: 0.85;
64 }
65
66 /* Expand/collapse triangle - CSS-only (no Material Icons) */
67 .process-group-header .expand-icon {
68 display: inline-block;
69 width: 0;
70 height: 0;
71 border-style: solid;
72 border-width: 4px 0 4px 6px;
73 border-color: transparent transparent transparent var(--color-text);
74 opacity: 0.5;
75 transition: transform 0.2s ease, opacity 0.15s ease;
76 flex-shrink: 0;
77 font-size: 0; /* Hide any text content */
78 margin-right: 2px;
79 }
80
81 .process-group-header:hover .expand-icon {
82 opacity: 0.8;
83 }
84
85 .process-group.expanded .process-group-header .expand-icon {
86 transform: rotate(90deg);
87 }
88
89 /* Group icon removed - using status badges */
90 .process-group-header .group-icon {
91 display: none;
92 }
93
94 /* Group title - prominent display */
95 .process-group-header .group-title {
96 flex: 0 1 auto;
97 font-size: var(--font-size-medium);
98 font-weight: 500;
99 color: var(--color-text-muted);
100 opacity: 0.9;
101 white-space: nowrap;
102 overflow: hidden;
103 text-overflow: ellipsis;
104 max-width: 350px;
105 }
106
107 /* Step count badge */
108 .process-group-header .step-count {
109 font-size: 0.65rem;
110 color: var(--color-text);
111 opacity: 0.5;
112 flex-shrink: 0;
113 padding: 1px 6px;
114 font-family: var(--font-family-code);
115 }
116
117 /* ===========================================
118 3-Letter Status Code Badges
119 =========================================== */
120
121 /* Base status badge */
122 .step-badge {
123 display: inline-flex;
124 align-items: center;
125 gap: 3px;
126 padding: 2px 6px;
127 border-radius: 3px;
128 font-size: 0.65rem;
129 font-weight: 600;
130 font-family: var(--font-family-code);
131 text-transform: uppercase;
132 letter-spacing: 0.5px;
133 flex-shrink: 0;
134 line-height: 1;
135 }
136
137 /* Status badge with icon */
138 .step-badge .material-symbols-outlined {
139 font-size: 0.8rem;
140 line-height: 1;
141 }
142
143 /* Badge icon styling */
144 .step-badge .badge-icon {
145 font-size: var(--font-size-xs);
146 margin-right: 2px;
147 opacity: 0.9;
148 }
149
150 /* Status colors */
151 /* Each status defines --step-accent for cascading to internal icons */
152
153 /* GEN - agent type (blue/cyan) */
154 .process-group .GEN {
155 --step-accent: #38bdf8;
156 }
157 .light-mode .process-group .GEN {
158 --step-accent: #0284c7;
159 }
160
161 /* END - response/done type (green) */
162 .process-group .END {
163 --step-accent: #22c55e;
164 }
165 .light-mode .process-group .END {
166 --step-accent: #15803d;
167 }
168
169 /* USE - tool usage (amber/yellow) */
170 .process-group .USE {
171 --step-accent: #fbbf24;
172 }
173 .light-mode .process-group .USE {
174 --step-accent: #b45309;
175 }
176
177 /* MCP - mcp type (amber/yellow) */
178 .process-group .MCP {
179 --step-accent: #fbbf24;
180 }
181 .light-mode .process-group .MCP {
182 --step-accent: #b45309;
183 }
184
185 /* SUB and RES - subagent type and response (teal) */
186 .process-group .SUB {
187 --step-accent: #14b8a6;
188 }
189 .light-mode .process-group .SUB {
190 --step-accent: #0f766e;
191 }
192 .process-group .RES {
193 --step-accent: #14b8a6;
194 }
195 .light-mode .process-group .RES {
196 --step-accent: #0f766e;
197 }
198
199 /* EXE - code_exe type (magenta/purple) */
200 .process-group .EXE {
201 --step-accent: #ba68c8;
202 }
203 .light-mode .process-group .EXE {
204 --step-accent: #7c3aed;
205 }
206
207 /* WWW - browser type (indigo) */
208 .process-group .WWW {
209 --step-accent: #818cf8;
210 }
211 .light-mode .process-group .WWW {
212 --step-accent: #4f46e5;
213 }
214
215 /* WAIT - progress type (slate) */
216 .process-group .HDL {
217 --step-accent: #94a3b8;
218 }
219 .light-mode .process-group .HDL {
220 --step-accent: #475569;
221 }
222
223 /* INF - info type (gray) */
224 .process-group .INF {
225 --step-accent: #94a3b8;
226 }
227 .light-mode .process-group .INF {
228 --step-accent: #475569;
229 }
230
231 /* HNT - hint type (yellow-green) */
232 .process-group .HNT {
233 --step-accent: #a3e635;
234 }
235 .light-mode .process-group .HNT {
236 --step-accent: #65a30d;
237 }
238
239 /* WRN - warning type (orange) */
240 .process-group .WRN {
241 --step-accent: #f97316;
242 }
243 .light-mode .process-group .WRN {
244 --step-accent: #c2410c;
245 }
246
247
248 /* ERR - error type (red) */
249 .process-group .ERR {
250 --step-accent: var(--color-error-text);
251 }
252 .light-mode .process-group .ERR {
253 --step-accent: var(--color-error-text);
254 }
255
256 /* UTL - util type (gray-blue) */
257 .process-group .UTL {
258 --step-accent: #64748b;
259 }
260 .light-mode .process-group .UTL {
261 --step-accent: #334155;
262 }
263
264
265 .process-group .step-badge{
266 color: var(--step-accent);
267 }
268
269 .process-group .kvps-key{
270 color: var(--step-accent);
271 }
272
273
274 /* Completed process group styling */
275 .process-group-completed {
276 opacity: 0.95;
277 }
278
279 .process-group-completed .group-status {
280 font-weight: 700;
281 }
282
283 /* Subtle completion indicator on the expand icon */
284 .process-group-completed .expand-icon {
285 color: #22c55e;
286 }
287
288 /* Group status badge in header */
289 .process-group-header .group-status {
290 margin-left: var(--spacing-xs);
291 }
292
293 /* Metrics row */
294 .process-group-header .group-metrics {
295 display: flex;
296 align-items: center;
297 gap: var(--spacing-sm);
298 /* margin-left: auto; */
299 margin-left: 2em;
300 font-size: 0.65rem;
301 font-family: var(--font-family-code);
302 color: var(--color-text);
303 opacity: 0.8;
304 }
305
306 .process-group-header .group-metrics .material-symbols-outlined {
307 font-size: var(--font-size-xs);
308 opacity: 0.7;
309 }
310
311 .process-group-header .group-metrics span[class^="metric-"] {
312 display: inline-flex;
313 align-items: center;
314 gap: 2px;
315 }
316
317 .process-group-header .group-metrics .metric-notifications {
318 font-weight: 600;
319 }
320
321 .process-group-header .group-metrics .metric-notifications[hidden] {
322 display: none;
323 }
324
325 .process-group-header .group-metrics .metric-notifications .material-symbols-outlined {
326 opacity: 0.85;
327 }
328
329 /* Legacy timestamp/duration (for backwards compatibility) */
330 .process-group-header .group-timestamp {
331 font-size: 0.65rem;
332 color: rgba(255, 255, 255, 0.65);
333 flex-shrink: 0;
334 font-family: var(--font-family-code);
335 display: none; /* Hidden, replaced by metrics */
336 }
337
338 .process-group-header .group-duration {
339 font-size: var(--font-size-xs);
340 color: #81c784;
341 flex-shrink: 0;
342 font-family: var(--font-family-code);
343 min-width: 40px;
344 text-align: right;
345 display: none; /* Hidden, replaced by metrics */
346 }
347
348 /* Process Group Content - Animated expand/collapse */
349 .process-group-content {
350 display: grid;
351 grid-template-rows: 0fr;
352 opacity: 0;
353 margin-top: 0;
354 padding-top: 0;
355 border-top: 1px solid transparent;
356 transition: grid-template-rows 0.25s ease-out,
357 opacity 0.2s ease-out,
358 margin-top 0.25s ease-out,
359 padding-top 0.25s ease-out,
360 border-color 0.2s ease-out;
361 overflow: hidden;
362 color: var(--color-text-muted);
363 max-width: 100%;
364 }
365
366 .process-group-content > .process-steps {
367 min-height: 0;
368 }
369
370 .process-group.expanded .process-group-content {
371 grid-template-rows: 1fr;
372 opacity: 1;
373 margin-top: var(--spacing-xs);
374 padding-top: var(--spacing-xs);
375 /* border-top-color: var(--color-border); */
376 }
377
378 /* Process Steps List */
379 .process-steps {
380 padding: 0;
381 display: flex;
382 flex-direction: column;
383 gap: 2px;
384 max-width: 100%;
385 overflow: hidden;
386 }
387
388 .process-group-show-more {
389 align-self: flex-start;
390 appearance: none;
391 display: inline-flex;
392 align-items: center;
393 border: 0;
394 background: transparent;
395 color: var(--color-text-muted);
396 cursor: pointer;
397 font-family: var(--font-family-main);
398 font-size: var(--font-size-xs);
399 padding: var(--spacing-xs) 0;
400 opacity: 0.7;
401 text-decoration: none;
402 transition: opacity 0.15s ease;
403 }
404
405 .process-group-show-more:hover,
406 .process-group-show-more:focus-visible {
407 opacity: 1;
408 }
409
410 /* Individual Process Step */
411 .process-step {
412 display: flex;
413 flex-direction: column;
414 padding: 0.1em;
415 transition: background-color 0.15s ease;
416 max-width: 100%;
417 overflow: hidden;
418 }
419
420 .process-step.message-util {
421 display: none;
422 }
423
424 .show-utility-messages .process-step.message-util {
425 display: flex;
426 }
427
428 /* Utility/Info/Hint steps have subtle background tint */
429 .process-step[data-type="util"],
430 .process-step[data-type="info"],
431 .process-step[data-type="hint"] {
432 background-color: rgba(120, 115, 100, 0);
433 }
434
435 .process-step[data-type="util"]:hover,
436 .process-step[data-type="info"]:hover,
437 .process-step[data-type="hint"]:hover {
438 background-color: rgba(255, 255, 255, 0.03);
439 }
440
441
442 .light-mode .process-step[data-type="util"]:hover,
443 .light-mode .process-step[data-type="info"]:hover,
444 .light-mode .process-step[data-type="hint"]:hover {
445 background-color: rgba(0, 0, 0, 0.04);
446 }
447
448 /* Step Header (clickable) */
449 .process-step-header {
450 display: flex;
451 align-items: center;
452 cursor: pointer;
453 user-select: none;
454 gap: 4px;
455 min-height: 18px;
456 max-width: 100%;
457 overflow: hidden;
458 }
459
460 /* Step title */
461 .process-step-header .step-title {
462 flex: 1;
463 font-size: 0.8rem;
464 /* color: var(--color-text-muted); */
465 white-space: nowrap;
466 overflow: hidden;
467 text-overflow: ellipsis;
468 margin-left: var(--spacing-xs);
469 min-width: 0;
470 }
471
472 /* Step expand icon - CSS triangle (no Material Icons) */
473 .process-step-header .step-expand-icon {
474 display: inline-block;
475 width: 0;
476 height: 0;
477 border-style: solid;
478 border-width: 3px 0 3px 5px;
479 border-color: transparent transparent transparent var(--color-text);
480 opacity: 0.4;
481 transition: transform 0.2s ease, opacity 0.15s ease;
482 flex-shrink: 0;
483 font-size: 0; /* Hide any text content */
484 margin-right: 2px;
485 }
486
487 .process-step-header:hover .step-expand-icon {
488 opacity: 0.7;
489 }
490
491 /* Use direct child selector to prevent affecting nested steps */
492 .process-step.expanded > .process-step-header > .step-expand-icon {
493 transform: rotate(90deg);
494 }
495
496 /* Step Detail Content - Animated expand/collapse */
497 .process-step-detail {
498 /* display: grid; */
499 grid-template-rows: 0fr;
500 opacity: 0;
501 margin-top: 0;
502 transition: grid-template-rows 0.2s ease-out, opacity 0.15s ease-out, margin-top 0.2s ease-out;
503 overflow: hidden;
504 max-width: 100%;
505 }
506
507 .process-step-detail-content{
508 white-space: pre-wrap;
509 }
510
511 .process-step-detail,
512 .process-step-detail-scroll {
513 scrollbar-width: thin; /* Firefox */
514 -ms-overflow-style: thin; /* IE/Edge */
515 }
516
517 /* Hide scrollbar for Chrome/Safari/Webkit */
518 .process-step-detail::-webkit-scrollbar,
519 .process-step-detail-scroll::-webkit-scrollbar {
520 width: thin;
521 height: thin;
522 }
523
524 .process-step:not(.expanded) > .process-step-detail {
525 margin-top: 0;
526 }
527
528 .process-step:not(.expanded) > .process-step-detail > .process-step-detail-scroll {
529 padding: 0;
530 margin-top: 0;
531 max-height: 0;
532 overflow: hidden;
533 }
534
535 .process-step-detail > .process-step-detail-scroll {
536 min-height: 0;
537 }
538
539 /* Use direct child selector (>) to prevent cascading to nested steps */
540 .process-step.expanded > .process-step-detail {
541 /* grid-template-rows: 1fr; */
542 opacity: 1;
543 overflow: hidden;
544 margin-top: var(--spacing-xs);
545 max-width: 100%;
546 padding-left: 17px;
547 padding-right: 1em;
548 }
549
550 .process-step.expanded > .process-step-detail > .process-step-detail-scroll {
551 max-height: 40em;
552 overflow: auto;
553 max-width: 100%;
554 width: fit-content;
555 box-sizing: content-box;
556 border-radius: var(--border-radius-sm);
557 -webkit-overflow-scrolling: touch;
558 scrollbar-width: thin;
559 -ms-overflow-style: thin;
560 scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
561 /* overscroll-behavior: contain; */
562 }
563
564 .process-step.expanded > .process-step-detail > .process-step-detail-scroll > .process-step-detail-scroll {
565 scrollbar-width: thin;
566 -ms-overflow-style: thin;
567 scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
568 }
569
570 .process-step-detail-scroll {
571 transition: max-height 0.2s ease-out, padding 0.2s ease-out, margin-top 0.2s ease-out;
572 padding: var(--spacing-xs) 0;
573 margin-top: var(--spacing-xxs);
574 /* margin-left: 28px; */
575 background-color: transparent;
576 font-size: var(--font-size-xs);
577 line-height: 1.5;
578 -webkit-overflow-scrolling: touch; /* smooth scrolling on iOS */
579 overscroll-behavior-x: contain;
580 }
581
582 /* .process-step-detail-scroll pre {
583 margin: 0;
584 white-space: pre-wrap;
585 word-break: break-word;
586 font-family: var(--font-family-code);
587 font-size: var(--font-size-xs);
588 color: var(--color-text);
589 opacity: 0.8;
590 } */
591
592 /* KVPs in step detail - CSS Grid for aligned columns */
593 .process-step-detail-scroll .step-kvps {
594 display: grid;
595 grid-template-columns: auto minmax(0, 1fr);
596 gap: var(--spacing-xs) var(--spacing-sm);
597 align-items: start;
598 }
599
600 .process-step-detail-scroll .step-kvp {
601 display: contents; /* Children participate in parent grid */
602 }
603
604 .process-step-detail-scroll .step-kvp-key {
605 color: var(--step-accent, var(--color-primary));
606 font-weight: 500;
607 opacity: 0.8;
608 display: flex;
609 align-items: center;
610 justify-content: end;
611 white-space: nowrap;
612 }
613
614 .process-step-detail-scroll .step-kvp-key .material-symbols-outlined {
615 font-size: 0.9rem;
616 color: var(--step-accent, var(--color-primary)) !important;
617 }
618
619 .process-step-detail-scroll .step-kvp-value {
620 /* color: var(--color-text); */
621 opacity: 0.85;
622 word-break: break-word;
623 overflow-wrap: anywhere;
624 white-space: pre-wrap;
625 font-size: 0.75rem;
626 line-height: 1.5;
627 min-width: 0;
628 }
629
630 .process-step-detail-scroll .step-kvp-value p {
631 margin: 0;
632 word-break: break-word;
633 overflow-wrap: anywhere;
634 }
635
636
637 /* Tool arguments - CSS Grid for aligned columns */
638 /* .process-step-detail-scroll .step-tool-args {
639 display: grid;
640 grid-template-columns: auto 1fr;
641 gap: 4px 8px;
642 margin: var(--spacing-xs) 0;
643 align-items: baseline;
644 } */
645
646 /* .process-step-detail-scroll .tool-arg-row {
647 display: contents;
648 } */
649
650 /* .process-step-detail-scroll .tool-arg-label {
651 font-size: 0.68rem;
652 font-weight: 600;
653 color: var(--step-accent, var(--color-primary));
654 display: flex;
655 align-items: center;
656 justify-content: end;
657 } */
658
659 /* .process-step-detail-scroll .tool-arg-label .material-symbols-outlined {
660 font-size: 0.9rem;
661 opacity: 0.85;
662 color: var(--step-accent, var(--color-primary));
663 } */
664
665 /* .process-step-detail-scroll .tool-arg-value {
666 font-size: var(--font-size-xs);
667 color: var(--color-text);
668 opacity: 0.85;
669 word-break: break-word;
670 font-family: var(--font-family-code);
671 } */
672
673 /* Light mode tool args - transparent like dark mode */
674 /* .light-mode .process-step-detail-scroll .step-tool-args {
675 background: transparent;
676 border-left-color: transparent;
677 } */
678
679 /* .process-step-detail-scroll .step-tool-header .tool-icon {
680 font-size: 0.85rem;
681 color: var(--step-accent, var(--color-warning));
682 opacity: 0.85;
683 } */
684
685 /* .process-step-detail-scroll .step-tool-header .tool-label {
686 font-size: 0.68rem;
687 font-weight: 600;
688 color: var(--step-accent, var(--color-warning));
689 opacity: 0.85;
690 } */
691
692 /* .process-step-detail-scroll .step-tool-header .tool-name {
693 font-size: 0.72rem;
694 color: var(--color-text);
695 opacity: 0.85;
696 } */
697
698
699 /* Terminal output - self-contained scrollable block */
700 .process-step-detail .terminal-output {
701 margin: var(--spacing-xs) 0 0 0;
702 padding: var(--spacing-xs);
703 background: rgba(0, 0, 0, 0.8);
704 min-height: 5em;
705 min-width: 20em;
706 width: max-content;
707 border-radius: var(--border-radius-sm);
708 color: #c9d1d9;
709 white-space: pre;
710 font-family: monospace;
711 /* max-width: fit-content; */
712 /* overflow: auto; */
713 /* -webkit-overflow-scrolling: touch; */
714 /* scrollbar-width: thin; */
715 /* scrollbar-color: rgba(255,255,255,0.2) transparent; */
716 /* overscroll-behavior: contain; */
717 }
718
719 .process-step-detail .terminal-output::-webkit-scrollbar {
720 width: 4px;
721 height: 4px;
722 }
723
724 .process-step-detail .terminal-output::-webkit-scrollbar-track {
725 background: transparent;
726 }
727
728 .process-step-detail .terminal-output::-webkit-scrollbar-thumb {
729 background: rgba(255, 255, 255, 0.2);
730 border-radius: 2px;
731 }
732
733 .process-step-detail .terminal-output::-webkit-scrollbar-thumb:hover {
734 background: rgba(255, 255, 255, 0.35);
735 }
736
737 /* Light mode terminal */
738 .light-mode .process-step-detail .terminal-output {
739 background: rgba(0, 0, 0, 0.05);
740 color: black;
741 scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
742 }
743
744 .light-mode .process-step-detail .terminal-output::-webkit-scrollbar-thumb {
745 background: rgba(0, 0, 0, 0.15);
746 }
747
748 .light-mode .process-step-detail .terminal-output::-webkit-scrollbar-thumb:hover {
749 background: rgba(0, 0, 0, 0.3);
750 }
751
752 /* Light mode adjustments */
753 .light-mode .process-group.expanded .process-group-content {
754 border-top-color: rgba(0, 0, 0, 0.06);
755 }
756
757 .light-mode .process-step-detail-scroll {
758 background-color: transparent;
759 }
760
761 /* Light mode text colors for process group */
762 .light-mode .process-group-header .group-title,
763 .light-mode .process-step-header .step-title {
764 color: var(--color-text-muted);
765 }
766
767
768
769 /* Animation for loading state */
770 @keyframes pulse-step {
771 0%, 100% { opacity: 0.5; }
772 50% { opacity: 0.8; }
773 }
774
775 .step-title.shiny-text { color: transparent !important; -webkit-background-clip: text; background-clip: text; animation: shine 1s linear infinite; }
776 @keyframes shine { to { background-position: -100% center; } }
777
778 /* Responsive adjustments */
779 @media (max-width: 768px) {
780 .process-group {
781 padding: var(--spacing-xs) var(--spacing-sm);
782 }
783
784 .process-step-header .step-title {
785 font-size: var(--font-size-xs);
786 }
787
788 .process-step-detail-scroll {
789 margin-left: 0;
790 }
791 }
792
793 /* ===========================================
794 Preferences Visibility Controls
795 These rules work with preferences-store toggles
796 =========================================== */
797
798 /* .process-step.message-util {
799 display: none;
800 }
801
802 .step-kvp.msg-thoughts {
803 display: none;
804 }
805
806 .process-step-detail-scroll pre.msg-json {
807 display: none;
808 } */
809
810 /* Nested Process Steps (Subordinate Agents) */
811
812 .process-nested-container {
813 display: grid;
814 grid-template-rows: 0fr;
815 opacity: 0;
816 overflow: hidden;
817 transition: grid-template-rows 0.25s ease-out, opacity 0.2s ease-out;
818 gap: 2px;
819 max-width: 100%;
820 }
821
822 /* Only show nested container when parent step is expanded */
823 .process-step.expanded > .process-nested-container {
824 grid-template-rows: 1fr;
825 opacity: 1;
826 margin-top: 2px;
827 /* Keep overflow hidden to allow nested steps to control their own expansion */
828 }
829
830 /* Inner wrapper to handle grid transition content */
831 .process-nested-inner {
832 min-height: 0;
833 display: flex;
834 flex-direction: column;
835 gap: 2px;
836 max-width: 100%;
837 overflow: hidden;
838 }
839
840 /* All nested containers have same indentation (no cascading) */
841 .nested-step .process-nested-container {
842 margin-left: 0;
843 }
844
845 /* Response content in process steps */
846 .process-step-detail-scroll .step-response-content {
847 font-size: 0.75rem;
848 line-height: 1.6;
849 color: var(--color-text);
850 opacity: 0.9;
851 margin: var(--spacing-xs) 0;
852 word-break: break-word;
853 overflow-wrap: anywhere;
854 }
855
856 .process-step-detail-scroll .step-response-content p {
857 margin: 0.5em 0;
858 }
859
860 .process-step-detail-scroll .step-response-content ul,
861 .process-step-detail-scroll .step-response-content ol {
862 margin: 0.5em 0;
863 padding-left: 1.5em;
864 }
865
866 /* Warning/error content in process steps */
867 .process-step-detail-scroll .step-warning-content {
868 font-size: 0.72rem;
869 line-height: 1.5;
870 color: var(--color-warning);
871 opacity: 0.9;
872 margin: var(--spacing-xs) 0;
873 padding: var(--spacing-xs);
874 border-left: 2px solid var(--color-warning);
875 border-radius: 3px;
876 }
877
878 /* Browser screenshot content in process steps */
879 .process-step-detail-scroll .screenshot-img {
880 max-width: 100%;
881 max-height: 400px;
882 border-radius: 4px;
883 border: 1px solid rgba(255, 255, 255, 0.1);
884 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
885 transition: box-shadow 0.2s ease, filter 0.2s ease;
886 object-fit: contain;
887 }
888
889 .process-step-detail-scroll .screenshot-img:hover {
890 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
891 filter: brightness(1.02);
892 }
893
894 /* Light mode screenshot border */
895 .light-mode .process-step-detail-scroll .screenshot-img {
896 border: 1px solid rgba(0, 0, 0, 0.15);
897 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
898 }
899
900 .light-mode .process-step-detail-scroll .screenshot-img:hover {
901 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
902 }
903
904 /* View Details button in step detail */
905 .step-detail-actions {
906 display: flex;
907 padding-left: 18px;
908 min-height: 0; /* Required for grid collapse animation */
909 }
910
911 /* Hide View Details button when step is collapsed */
912 .process-step:not(.expanded) > .process-step-detail > .step-detail-actions {
913 display: none;
914 }