@ai-digital-factory/state-flow 0.0.0-stage → 0.1.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.
@@ -0,0 +1,781 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --sf-ink: #f1f3f6;
4
+ --sf-muted: #98a1ad;
5
+ --sf-paper: #0e1016;
6
+ --sf-panel: #171a22;
7
+ --sf-line: #2d333f;
8
+ --sf-accent: #f59e0b;
9
+ --sf-accent-strong: #fbbf24;
10
+ --sf-selected: #2a2214;
11
+ --sf-glow: rgba(251, 191, 36, 0.42);
12
+ --sf-warning: #fbbf24;
13
+ --sf-warning-muted: #3d2f10;
14
+ --sf-warning-ink: #fef3c7;
15
+ /* FinalState: distinct hue, paired with a visible "FINAL" kind tag. */
16
+ --sf-final: #38bdf8;
17
+ --sf-final-fill: #0f1d27;
18
+ }
19
+
20
+ .sf-root {
21
+ color: var(--sf-ink);
22
+ font:
23
+ 17px/1.6 system-ui,
24
+ -apple-system,
25
+ BlinkMacSystemFont,
26
+ "Segoe UI",
27
+ sans-serif;
28
+ background: var(--sf-paper);
29
+ padding: 24px;
30
+ border-radius: 8px;
31
+ }
32
+
33
+ .sf-root * {
34
+ box-sizing: border-box;
35
+ }
36
+
37
+ .sf-root button {
38
+ font: inherit;
39
+ color: var(--sf-ink);
40
+ background: var(--sf-panel);
41
+ border: 1px solid var(--sf-line);
42
+ border-radius: 5px;
43
+ min-height: 44px;
44
+ cursor: pointer;
45
+ padding: 10px 14px;
46
+ text-align: left;
47
+ }
48
+
49
+ .sf-root button:hover {
50
+ border-color: var(--sf-accent);
51
+ }
52
+
53
+ .sf-root :focus-visible {
54
+ outline: 2px solid var(--sf-accent);
55
+ outline-offset: 3px;
56
+ }
57
+
58
+ .sf-root button[aria-pressed="true"],
59
+ .sf-root button[aria-selected="true"] {
60
+ background: var(--sf-selected);
61
+ border-color: var(--sf-accent);
62
+ }
63
+
64
+ .sf-eyebrow {
65
+ font-size: 13px;
66
+ color: var(--sf-accent);
67
+ margin: 0 0 8px;
68
+ }
69
+
70
+ .sf-intro {
71
+ max-width: 760px;
72
+ margin: 0 0 24px;
73
+ }
74
+
75
+ .sf-machine-tabs {
76
+ margin-top: 8px;
77
+ }
78
+
79
+ .sf-tablist {
80
+ display: flex;
81
+ gap: 0;
82
+ margin: 0 0 20px;
83
+ border: 1px solid var(--sf-line);
84
+ border-radius: 6px;
85
+ overflow: hidden;
86
+ width: fit-content;
87
+ max-width: 100%;
88
+ }
89
+
90
+ .sf-tab {
91
+ flex: 1;
92
+ min-width: 120px;
93
+ padding: 12px 22px;
94
+ text-align: center;
95
+ font-size: 15px;
96
+ font-weight: 500;
97
+ background: var(--sf-paper);
98
+ border: none;
99
+ border-right: 1px solid var(--sf-line);
100
+ border-radius: 0;
101
+ min-height: 44px;
102
+ }
103
+
104
+ .sf-tab:last-child {
105
+ border-right: none;
106
+ }
107
+
108
+ .sf-tab[aria-selected="true"] {
109
+ background: var(--sf-selected);
110
+ color: var(--sf-ink);
111
+ }
112
+
113
+ .sf-tabpanel {
114
+ min-width: 0;
115
+ }
116
+
117
+ .sf-details-lede {
118
+ font-size: 15px;
119
+ color: var(--sf-muted);
120
+ max-width: 680px;
121
+ margin: 0 0 20px;
122
+ }
123
+
124
+ .sf-flow-page-header {
125
+ display: flex;
126
+ align-items: flex-start;
127
+ gap: 14px;
128
+ margin-bottom: 1.25rem;
129
+ }
130
+
131
+ .sf-flow-page-header-icon {
132
+ display: inline-flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ width: 52px;
136
+ height: 52px;
137
+ border-radius: 12px;
138
+ border: 1px solid color-mix(in srgb, var(--sf-accent) 35%, var(--sf-line));
139
+ background: color-mix(in srgb, var(--sf-selected) 70%, var(--sf-panel));
140
+ color: var(--sf-accent-strong);
141
+ flex-shrink: 0;
142
+ }
143
+
144
+ .sf-flow-page-header-text {
145
+ min-width: 0;
146
+ }
147
+
148
+ .sf-flow-page-header .sf-title {
149
+ margin: 0 0 0.35rem;
150
+ }
151
+
152
+ .sf-flow-page-header .sf-intro {
153
+ margin: 0;
154
+ }
155
+
156
+ .sf-diagram-workspace {
157
+ display: grid;
158
+ gap: 1rem;
159
+ align-items: start;
160
+ }
161
+
162
+ @media (min-width: 960px) {
163
+ .sf-diagram-workspace {
164
+ grid-template-columns: minmax(0, 1.45fr) minmax(280px, 360px);
165
+ gap: 1.15rem;
166
+ }
167
+ }
168
+
169
+ .sf-diagram-workspace-aside {
170
+ display: grid;
171
+ gap: 0.85rem;
172
+ align-content: start;
173
+ }
174
+
175
+ .sf-diagram-overview {
176
+ margin: 0;
177
+ padding: 16px 18px 18px;
178
+ border: 1px solid var(--sf-line);
179
+ border-radius: 12px;
180
+ background: color-mix(in srgb, var(--sf-panel) 95%, black);
181
+ max-width: none;
182
+ }
183
+
184
+ .sf-diagram-overview-label {
185
+ font-size: 13px;
186
+ color: var(--sf-muted);
187
+ margin: 0 0 6px;
188
+ text-transform: uppercase;
189
+ letter-spacing: 0.08em;
190
+ }
191
+
192
+ .sf-diagram-overview-hint {
193
+ font-size: 14px;
194
+ color: var(--sf-muted);
195
+ margin: 0;
196
+ max-width: 680px;
197
+ }
198
+
199
+ .sf-diagram-overview-header {
200
+ display: flex;
201
+ flex-wrap: wrap;
202
+ align-items: flex-start;
203
+ justify-content: space-between;
204
+ gap: 12px 16px;
205
+ margin-bottom: 14px;
206
+ }
207
+
208
+ .sf-diagram-overview-zoom {
209
+ display: inline-flex;
210
+ align-items: center;
211
+ gap: 6px;
212
+ flex-shrink: 0;
213
+ padding: 6px 8px;
214
+ border: 1px solid var(--sf-line);
215
+ border-radius: 8px;
216
+ background: var(--sf-panel);
217
+ }
218
+
219
+ .sf-diagram-zoom-btn {
220
+ font: inherit;
221
+ font-size: 20px;
222
+ font-weight: 600;
223
+ line-height: 1;
224
+ min-width: 40px;
225
+ min-height: 40px;
226
+ padding: 0 12px;
227
+ border: 1px solid var(--sf-line);
228
+ border-radius: 6px;
229
+ background: var(--sf-paper);
230
+ color: var(--sf-ink);
231
+ cursor: pointer;
232
+ box-shadow: 0 1px 0 color-mix(in srgb, var(--sf-line) 80%, transparent);
233
+ }
234
+
235
+ .sf-diagram-zoom-btn:hover:not(:disabled) {
236
+ border-color: var(--sf-accent);
237
+ color: var(--sf-accent);
238
+ }
239
+
240
+ .sf-diagram-zoom-btn:disabled {
241
+ opacity: 0.45;
242
+ cursor: not-allowed;
243
+ }
244
+
245
+ .sf-diagram-zoom-level {
246
+ font-size: 13px;
247
+ color: var(--sf-muted);
248
+ min-width: 3.25rem;
249
+ text-align: center;
250
+ font-variant-numeric: tabular-nums;
251
+ }
252
+
253
+ .sf-diagram-reset-btn {
254
+ font-size: 13px;
255
+ font-weight: 500;
256
+ min-width: auto;
257
+ padding: 0 10px;
258
+ }
259
+
260
+ .sf-diagram-overview-viewport {
261
+ overflow: hidden;
262
+ max-width: 100%;
263
+ max-height: min(72vh, 640px);
264
+ padding: 8px 4px 12px;
265
+ border: 1px solid color-mix(in srgb, var(--sf-line) 65%, transparent);
266
+ border-radius: 4px;
267
+ background: color-mix(in srgb, var(--sf-paper) 40%, transparent);
268
+ cursor: grab;
269
+ touch-action: none;
270
+ user-select: none;
271
+ }
272
+
273
+ .sf-diagram-overview-viewport.is-panning {
274
+ cursor: grabbing;
275
+ }
276
+
277
+ .sf-diagram-overview-figure {
278
+ overflow: visible;
279
+ width: max-content;
280
+ min-width: 100%;
281
+ padding: 4px 8px 8px;
282
+ transform-origin: top left;
283
+ }
284
+
285
+ .sf-diagram-overview-figure svg {
286
+ display: block;
287
+ width: auto;
288
+ min-width: min(100%, 520px);
289
+ height: auto;
290
+ margin: 0;
291
+ overflow: visible;
292
+ }
293
+
294
+ .sf-flow-svg .flow-edge {
295
+ stroke-linecap: square;
296
+ stroke-linejoin: miter;
297
+ opacity: 0.95;
298
+ transition:
299
+ opacity 0.15s ease,
300
+ stroke-width 0.15s ease;
301
+ }
302
+
303
+ .sf-flow-svg.has-edge-selection .flow-edge:not(.is-selected) {
304
+ opacity: 0.28;
305
+ }
306
+
307
+ .sf-flow-svg .flow-edge.is-selected {
308
+ stroke: var(--sf-accent-strong);
309
+ stroke-width: 3.75;
310
+ opacity: 1;
311
+ }
312
+
313
+ .sf-flow-svg .flow-edge.is-guard-blocked {
314
+ stroke: var(--sf-warning);
315
+ stroke-width: 3.75;
316
+ opacity: 1;
317
+ filter: drop-shadow(
318
+ 0 0 10px color-mix(in srgb, var(--sf-warning) 65%, transparent)
319
+ );
320
+ }
321
+
322
+ .sf-flow-svg.has-edge-selection .flow-edge.is-guard-blocked,
323
+ .sf-flow-svg.has-edge-selection .flow-edge.is-guard-blocked.is-selected {
324
+ stroke: var(--sf-warning);
325
+ opacity: 1;
326
+ filter: drop-shadow(
327
+ 0 0 10px color-mix(in srgb, var(--sf-warning) 75%, transparent)
328
+ );
329
+ }
330
+
331
+ .sf-flow-svg .overview-edge-hit.is-guard-blocked .overview-edge-badge,
332
+ .sf-flow-svg
333
+ .overview-edge-hit.is-guard-blocked.is-selected
334
+ .overview-edge-badge {
335
+ fill: var(--sf-warning-muted);
336
+ stroke: var(--sf-warning);
337
+ stroke-width: 3;
338
+ filter: drop-shadow(
339
+ 0 0 8px color-mix(in srgb, var(--sf-warning) 55%, transparent)
340
+ );
341
+ }
342
+
343
+ .sf-flow-svg .overview-edge-hit.is-guard-blocked text,
344
+ .sf-flow-svg .overview-edge-hit.is-guard-blocked.is-selected text {
345
+ fill: var(--sf-warning-ink);
346
+ }
347
+
348
+ .sf-overview-edge-detail.is-guard-blocked {
349
+ border-color: var(--sf-warning);
350
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--sf-warning) 35%, transparent);
351
+ }
352
+
353
+ .sf-overview-guard-blocked-note {
354
+ margin: 0 0 8px;
355
+ font-size: 14px;
356
+ font-weight: 600;
357
+ color: var(--sf-warning);
358
+ }
359
+
360
+ .sf-flow-svg .overview-edge-badge {
361
+ filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.4));
362
+ }
363
+
364
+ .sf-flow-svg .overview-edge-badge + text {
365
+ letter-spacing: 0.01em;
366
+ }
367
+
368
+ .sf-flow-svg .overview-edge-hit {
369
+ cursor: pointer;
370
+ outline: none;
371
+ }
372
+
373
+ .sf-flow-svg .overview-edge-hit:focus-visible .overview-edge-badge {
374
+ stroke-width: 3;
375
+ filter: drop-shadow(0 0 4px var(--sf-glow));
376
+ }
377
+
378
+ .sf-flow-svg .overview-edge-hit.is-selected .overview-edge-badge {
379
+ fill: var(--sf-selected);
380
+ stroke-width: 3;
381
+ }
382
+
383
+ .sf-flow-svg .overview-state-hit {
384
+ cursor: pointer;
385
+ outline: none;
386
+ }
387
+
388
+ .sf-flow-svg .overview-state-hit:focus-visible .overview-state-box {
389
+ stroke-width: 3;
390
+ filter: drop-shadow(0 0 6px var(--sf-glow));
391
+ }
392
+
393
+ .sf-flow-svg.has-state-selection
394
+ .overview-state-hit:not(.is-selected)
395
+ .overview-state-box {
396
+ opacity: 0.45;
397
+ }
398
+
399
+ .sf-flow-svg .overview-state-hit.is-selected .overview-state-box {
400
+ fill: var(--sf-selected);
401
+ stroke: var(--sf-accent-strong);
402
+ stroke-width: 3.5;
403
+ }
404
+
405
+ .sf-overview-edge-detail {
406
+ margin-top: 16px;
407
+ padding: 14px 16px;
408
+ border: 1px solid var(--sf-accent);
409
+ border-radius: 6px;
410
+ background: var(--sf-paper);
411
+ }
412
+
413
+ .sf-overview-legend-title {
414
+ margin: 0 0 6px;
415
+ font-size: 15px;
416
+ line-height: 1.4;
417
+ }
418
+
419
+ .sf-overview-legend-mark {
420
+ display: inline-flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ width: 22px;
424
+ height: 22px;
425
+ border-radius: 50%;
426
+ background: var(--sf-selected);
427
+ border: 1px solid var(--sf-accent);
428
+ font-size: 12px;
429
+ font-weight: 700;
430
+ color: var(--sf-ink);
431
+ vertical-align: middle;
432
+ margin-right: 4px;
433
+ }
434
+
435
+ .sf-overview-legend-route {
436
+ margin: 0 0 6px;
437
+ font-size: 13px;
438
+ color: var(--sf-muted);
439
+ }
440
+
441
+ .sf-overview-legend-event {
442
+ margin: 0 0 4px;
443
+ font-size: 14px;
444
+ font-weight: 500;
445
+ color: var(--sf-ink);
446
+ }
447
+
448
+ .sf-overview-legend-detail {
449
+ margin: 0;
450
+ font-size: 13px;
451
+ color: var(--sf-muted);
452
+ line-height: 1.45;
453
+ }
454
+
455
+ .sf-caption {
456
+ font-size: 13px;
457
+ color: var(--sf-muted);
458
+ }
459
+
460
+ .sf-title {
461
+ font:
462
+ 500 clamp(28px, 4vw, 40px) / 1.18 Georgia,
463
+ serif;
464
+ margin: 7px 0 14px;
465
+ font-weight: 500;
466
+ }
467
+
468
+ .sf-notice {
469
+ border-left: 3px solid var(--sf-accent);
470
+ padding: 12px 18px;
471
+ background: var(--sf-selected);
472
+ font-size: 15px;
473
+ margin: 24px 0;
474
+ }
475
+
476
+ .sf-state-heading {
477
+ display: flex;
478
+ gap: 15px;
479
+ justify-content: space-between;
480
+ align-items: baseline;
481
+ margin-bottom: 10px;
482
+ }
483
+
484
+ .sf-state-heading h3 {
485
+ font-size: 15px;
486
+ margin: 0;
487
+ font-weight: 600;
488
+ }
489
+
490
+ .sf-overview-detail-card {
491
+ border: 1px solid color-mix(in srgb, var(--sf-accent) 55%, var(--sf-line));
492
+ border-radius: 12px;
493
+ background: color-mix(in srgb, var(--sf-panel) 92%, black);
494
+ padding: 14px 16px;
495
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--sf-accent) 12%, transparent);
496
+ }
497
+
498
+ .sf-overview-detail-card.is-guard-blocked {
499
+ border-color: var(--sf-warning);
500
+ }
501
+
502
+ .sf-overview-detail-heading {
503
+ display: flex;
504
+ align-items: center;
505
+ gap: 0.45rem;
506
+ margin: 0 0 0.75rem;
507
+ font-size: 0.8125rem;
508
+ font-weight: 600;
509
+ text-transform: uppercase;
510
+ letter-spacing: 0.05em;
511
+ color: var(--sf-muted);
512
+ }
513
+
514
+ .sf-overview-detail-heading-icon {
515
+ color: var(--sf-accent-strong);
516
+ }
517
+
518
+ .sf-overview-detail-title-row {
519
+ display: flex;
520
+ align-items: center;
521
+ justify-content: space-between;
522
+ gap: 0.75rem;
523
+ flex-wrap: wrap;
524
+ }
525
+
526
+ .sf-overview-detail-kind-tag {
527
+ border: 1px solid color-mix(in srgb, var(--sf-accent) 45%, var(--sf-line));
528
+ border-radius: 999px;
529
+ padding: 0.15rem 0.55rem;
530
+ font-size: 0.6875rem;
531
+ font-weight: 600;
532
+ text-transform: uppercase;
533
+ letter-spacing: 0.04em;
534
+ color: var(--sf-accent-strong);
535
+ background: var(--sf-selected);
536
+ }
537
+
538
+ .sf-overview-legend-route code {
539
+ font:
540
+ 0.75rem ui-monospace,
541
+ SFMono-Regular,
542
+ Menlo,
543
+ monospace;
544
+ color: var(--sf-muted);
545
+ background: color-mix(in srgb, var(--sf-paper) 65%, var(--sf-panel));
546
+ border-radius: 6px;
547
+ padding: 0.2rem 0.45rem;
548
+ }
549
+
550
+ .sf-overview-transitions-card {
551
+ border: 1px solid var(--sf-line);
552
+ border-radius: 12px;
553
+ background: color-mix(in srgb, var(--sf-panel) 90%, black);
554
+ padding: 12px 14px;
555
+ }
556
+
557
+ .sf-overview-transitions-heading {
558
+ margin: 0 0 0.65rem;
559
+ font-size: 0.8125rem;
560
+ font-weight: 600;
561
+ color: var(--sf-muted);
562
+ }
563
+
564
+ .sf-overview-transitions-list {
565
+ list-style: none;
566
+ margin: 0;
567
+ padding: 0;
568
+ display: grid;
569
+ gap: 0.45rem;
570
+ }
571
+
572
+ .sf-overview-transitions-button {
573
+ width: 100%;
574
+ display: grid;
575
+ grid-template-columns: auto 1fr;
576
+ grid-template-rows: auto auto;
577
+ gap: 0.2rem 0.55rem;
578
+ align-items: center;
579
+ text-align: left;
580
+ border: 1px solid var(--sf-line);
581
+ border-radius: 10px;
582
+ background: var(--sf-paper);
583
+ padding: 0.55rem 0.65rem;
584
+ cursor: pointer;
585
+ color: var(--sf-ink);
586
+ }
587
+
588
+ .sf-overview-transitions-button:hover {
589
+ border-color: color-mix(in srgb, var(--sf-accent) 50%, var(--sf-line));
590
+ }
591
+
592
+ .sf-overview-transitions-dot {
593
+ width: 0.45rem;
594
+ height: 0.45rem;
595
+ border-radius: 50%;
596
+ background: var(--sf-accent);
597
+ }
598
+
599
+ .sf-overview-transitions-name {
600
+ font-size: 0.875rem;
601
+ font-weight: 600;
602
+ }
603
+
604
+ .sf-overview-transitions-route {
605
+ grid-column: 2;
606
+ font:
607
+ 0.75rem ui-monospace,
608
+ SFMono-Regular,
609
+ Menlo,
610
+ monospace;
611
+ color: var(--sf-muted);
612
+ }
613
+
614
+ .sf-overview-detail-empty {
615
+ border: 1px dashed var(--sf-line);
616
+ border-radius: 12px;
617
+ padding: 1.25rem 1rem;
618
+ text-align: center;
619
+ color: var(--sf-muted);
620
+ }
621
+
622
+ .sf-overview-detail-empty-title {
623
+ margin: 0 0 0.35rem;
624
+ font-weight: 600;
625
+ color: var(--sf-ink);
626
+ }
627
+
628
+ .sf-overview-detail-empty-hint {
629
+ margin: 0;
630
+ font-size: 0.875rem;
631
+ line-height: 1.45;
632
+ }
633
+
634
+ .sf-diagram-workspace-wrap {
635
+ display: grid;
636
+ gap: 1rem;
637
+ }
638
+
639
+ .sf-diagram-legend {
640
+ margin: 0;
641
+ padding: 1rem 1.1rem;
642
+ border: 1px solid var(--sf-line);
643
+ border-radius: 12px;
644
+ background: color-mix(in srgb, var(--sf-panel) 94%, black);
645
+ }
646
+
647
+ .sf-diagram-legend-title {
648
+ margin: 0 0 0.65rem;
649
+ font-size: 0.8125rem;
650
+ font-weight: 600;
651
+ text-transform: uppercase;
652
+ letter-spacing: 0.05em;
653
+ color: var(--sf-muted);
654
+ }
655
+
656
+ .sf-diagram-legend-list {
657
+ list-style: none;
658
+ margin: 0;
659
+ padding: 0;
660
+ display: grid;
661
+ gap: 0.5rem;
662
+ }
663
+
664
+ @media (min-width: 720px) {
665
+ .sf-diagram-legend-list {
666
+ grid-template-columns: repeat(2, minmax(0, 1fr));
667
+ gap: 0.45rem 1.25rem;
668
+ }
669
+ }
670
+
671
+ .sf-diagram-legend-list li {
672
+ display: flex;
673
+ align-items: center;
674
+ gap: 0.55rem;
675
+ font-size: 0.8125rem;
676
+ color: var(--sf-muted);
677
+ }
678
+
679
+ .sf-diagram-legend-list strong {
680
+ color: var(--sf-ink);
681
+ font-weight: 600;
682
+ }
683
+
684
+ .sf-diagram-legend-swatch {
685
+ flex-shrink: 0;
686
+ width: 2.25rem;
687
+ height: 1.25rem;
688
+ border-radius: 6px;
689
+ border: 1px solid var(--sf-line);
690
+ background: var(--sf-paper);
691
+ }
692
+
693
+ .sf-diagram-legend-swatch.is-active-state {
694
+ border-color: var(--sf-accent-strong);
695
+ background: var(--sf-selected);
696
+ box-shadow: inset 0 0 0 1px
697
+ color-mix(in srgb, var(--sf-accent) 40%, transparent);
698
+ }
699
+
700
+ .sf-diagram-legend-swatch.is-state {
701
+ background: var(--sf-panel);
702
+ }
703
+
704
+ .sf-diagram-legend-swatch.is-connector {
705
+ border: none;
706
+ border-radius: 0;
707
+ width: 2.5rem;
708
+ height: 0;
709
+ border-top: 3px solid var(--sf-accent);
710
+ background: transparent;
711
+ }
712
+
713
+ .sf-diagram-legend-swatch.is-label {
714
+ border-radius: 999px;
715
+ border-color: var(--sf-accent);
716
+ background: var(--sf-selected);
717
+ width: 2.75rem;
718
+ height: 1.1rem;
719
+ }
720
+
721
+ /* Branching transitions (ADR 0087): a shared stem, a split node, then one described branch per To. */
722
+ .sf-flow-svg .flow-edge-branch {
723
+ stroke-dasharray: none;
724
+ }
725
+
726
+ .sf-flow-svg .overview-split-label .overview-edge-badge {
727
+ fill: var(--sf-selected);
728
+ }
729
+
730
+ /* Durable progress: the running transition, then the branch its execution recorded. */
731
+ .sf-flow-svg .flow-edge.is-active-transition {
732
+ stroke: var(--sf-accent-strong);
733
+ stroke-width: 3.5;
734
+ stroke-dasharray: 6 4;
735
+ animation: sf-edge-running 0.9s linear infinite;
736
+ }
737
+
738
+ .sf-flow-svg .flow-edge.is-selected-destination {
739
+ stroke: var(--sf-accent-strong);
740
+ stroke-width: 4;
741
+ filter: drop-shadow(0 0 4px var(--sf-glow));
742
+ }
743
+
744
+ .sf-flow-svg .overview-edge-hit.is-active-transition .overview-edge-badge,
745
+ .sf-flow-svg .overview-edge-hit.is-selected-destination .overview-edge-badge {
746
+ stroke: var(--sf-accent-strong);
747
+ stroke-width: 3;
748
+ }
749
+
750
+ @keyframes sf-edge-running {
751
+ to {
752
+ stroke-dashoffset: -20;
753
+ }
754
+ }
755
+
756
+ @media (prefers-reduced-motion: reduce) {
757
+ .sf-flow-svg .flow-edge.is-active-transition {
758
+ animation: none;
759
+ }
760
+ }
761
+
762
+ .sf-overview-destination-list {
763
+ list-style: none;
764
+ margin: 8px 0 0;
765
+ padding: 0;
766
+ display: grid;
767
+ gap: 6px;
768
+ }
769
+
770
+ .sf-overview-destination-list .is-selected code {
771
+ color: var(--sf-accent-strong);
772
+ }
773
+
774
+ .sf-overview-destination-detail {
775
+ color: var(--sf-muted);
776
+ }
777
+
778
+ .sf-overview-detail-kind-tag.is-final {
779
+ color: var(--sf-final);
780
+ border-color: var(--sf-final);
781
+ }