playwright-reborn 0.1.0

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,1147 @@
1
+ @font-face {
2
+ font-family: Geist;
3
+ src: url("fonts/geist-latin-400-normal.woff2") format("woff2");
4
+ font-weight: 400;
5
+ font-style: normal;
6
+ font-display: block;
7
+ }
8
+
9
+ @font-face {
10
+ font-family: Geist;
11
+ src: url("fonts/geist-latin-500-normal.woff2") format("woff2");
12
+ font-weight: 500;
13
+ font-style: normal;
14
+ font-display: block;
15
+ }
16
+
17
+ @font-face {
18
+ font-family: Geist;
19
+ src: url("fonts/geist-latin-600-normal.woff2") format("woff2");
20
+ font-weight: 600;
21
+ font-style: normal;
22
+ font-display: block;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: "JetBrains Mono";
27
+ src: url("fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2");
28
+ font-weight: 500;
29
+ font-style: normal;
30
+ font-display: block;
31
+ }
32
+
33
+ :root {
34
+ color-scheme: dark;
35
+ --base: #080808;
36
+ --surface: #111111;
37
+ --border: #1a1a1a;
38
+ --text: #f0f0f0;
39
+ --subtle: #888888;
40
+ --accent: #00ff88;
41
+ --accent-hover: #00cf6e;
42
+ --wash: rgba(0, 255, 136, 0.16);
43
+ --hairline: rgba(255, 255, 255, 0.08);
44
+ --pass: rgba(255, 255, 255, 0.22);
45
+ --fail: #00ff88;
46
+ --flaky: rgba(0, 255, 136, 0.45);
47
+ --skip: #888888;
48
+ --timeout: #00ff88;
49
+ --interrupted: #888888;
50
+ --sans: Geist, "Segoe UI", sans-serif;
51
+ --display: Geist, "Segoe UI", sans-serif;
52
+ --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
53
+ --ease: cubic-bezier(0.12, 0.23, 0.17, 0.99);
54
+ }
55
+
56
+ body[data-accent="red"] {
57
+ --accent: #ff4d4d;
58
+ --accent-hover: #e03b3b;
59
+ --wash: rgba(255, 77, 77, 0.16);
60
+ --fail: #ff4d4d;
61
+ --timeout: #ff4d4d;
62
+ }
63
+
64
+ body[data-accent="blue"] {
65
+ --accent: #4da3ff;
66
+ --accent-hover: #2f86e0;
67
+ --wash: rgba(77, 163, 255, 0.16);
68
+ --fail: #4da3ff;
69
+ --timeout: #4da3ff;
70
+ }
71
+
72
+ body[data-accent="amber"] {
73
+ --accent: #ffb020;
74
+ --accent-hover: #e09610;
75
+ --wash: rgba(255, 176, 32, 0.16);
76
+ --fail: #ffb020;
77
+ --timeout: #ffb020;
78
+ }
79
+
80
+ body[data-accent="violet"] {
81
+ --accent: #b07cff;
82
+ --accent-hover: #945fe0;
83
+ --wash: rgba(176, 124, 255, 0.16);
84
+ --fail: #b07cff;
85
+ --timeout: #b07cff;
86
+ }
87
+
88
+ * { box-sizing: border-box; }
89
+
90
+ body {
91
+ margin: 0;
92
+ background: #050806;
93
+ color: var(--text);
94
+ font-family: var(--sans);
95
+ font-size: 15px;
96
+ font-weight: 400;
97
+ line-height: 1.5;
98
+ letter-spacing: -0.011em;
99
+ }
100
+
101
+ .light { height: 1px; background: var(--border); }
102
+
103
+ .skip {
104
+ position: absolute;
105
+ left: 12px;
106
+ top: -40px;
107
+ background: var(--accent);
108
+ color: #080808;
109
+ padding: 8px 12px;
110
+ z-index: 2;
111
+ }
112
+
113
+ .skip:focus { top: 12px; }
114
+
115
+ .page {
116
+ width: min(1120px, calc(100% - 48px));
117
+ margin: 0 auto;
118
+ padding: 28px 0 64px;
119
+ }
120
+
121
+ button, input { font: inherit; color: inherit; }
122
+ button { cursor: pointer; }
123
+ :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
124
+ ::selection { background: var(--wash); color: var(--text); }
125
+
126
+ .top {
127
+ display: flex;
128
+ justify-content: space-between;
129
+ gap: 16px;
130
+ align-items: baseline;
131
+ flex-wrap: wrap;
132
+ }
133
+
134
+ .brand {
135
+ margin: 0;
136
+ color: var(--text);
137
+ font-size: 15px;
138
+ font-weight: 500;
139
+ }
140
+
141
+ .meta {
142
+ display: flex;
143
+ flex-wrap: wrap;
144
+ gap: 8px 18px;
145
+ margin: 0;
146
+ color: var(--subtle);
147
+ font-size: 13px;
148
+ font-weight: 400;
149
+ }
150
+
151
+ .tabbar {
152
+ position: relative;
153
+ display: flex;
154
+ flex-wrap: wrap;
155
+ gap: 4px 22px;
156
+ width: 100%;
157
+ margin-top: 22px;
158
+ padding: 0 0 10px;
159
+ border-bottom: 1px solid var(--border);
160
+ background: none;
161
+ border-radius: 0;
162
+ }
163
+
164
+ .tab-glow { display: none; }
165
+
166
+ .tab, .subtab, .attempt, .ghost {
167
+ position: relative;
168
+ background: none;
169
+ border: 0;
170
+ border-radius: 0;
171
+ color: var(--subtle);
172
+ padding: 6px 0;
173
+ font-size: 14px;
174
+ font-weight: 400;
175
+ }
176
+
177
+ .tab[aria-selected="true"],
178
+ .subtab[aria-pressed="true"],
179
+ .attempt[aria-pressed="true"],
180
+ .ghost[aria-pressed="true"] {
181
+ color: var(--text);
182
+ font-weight: 500;
183
+ box-shadow: inset 0 -1px 0 var(--accent);
184
+ }
185
+
186
+ .tab:hover, .subtab:hover, .attempt:hover, .file-link:hover, .open-test:hover {
187
+ color: var(--accent-hover);
188
+ }
189
+
190
+ .subtabs, .attempts {
191
+ display: flex;
192
+ flex-wrap: wrap;
193
+ gap: 8px 20px;
194
+ margin-top: 18px;
195
+ }
196
+
197
+ .panel { margin-top: 28px; }
198
+
199
+ .hero {
200
+ display: flex;
201
+ flex-wrap: wrap;
202
+ align-items: baseline;
203
+ justify-content: space-between;
204
+ gap: 8px 28px;
205
+ animation: rise 1s var(--ease) 0.3s both;
206
+ }
207
+
208
+ .word {
209
+ margin: 0;
210
+ font-weight: 500;
211
+ font-size: clamp(48px, 7vw, 64px);
212
+ line-height: 1;
213
+ letter-spacing: -0.04em;
214
+ color: var(--text);
215
+ }
216
+
217
+ .word[data-status="failed"],
218
+ .word[data-status="timedOut"],
219
+ .word[data-status="interrupted"] { color: var(--text); }
220
+
221
+ .time {
222
+ margin: 0;
223
+ font-weight: 500;
224
+ font-size: clamp(48px, 7vw, 64px);
225
+ line-height: 1;
226
+ letter-spacing: -0.04em;
227
+ color: var(--accent);
228
+ font-variant-numeric: tabular-nums;
229
+ }
230
+
231
+ .summary {
232
+ flex-basis: 100%;
233
+ margin: 8px 0 0;
234
+ color: var(--subtle);
235
+ font-size: 16px;
236
+ font-weight: 400;
237
+ max-width: 36rem;
238
+ }
239
+
240
+ .credit {
241
+ margin: 10px 0 0;
242
+ color: var(--subtle);
243
+ font-size: 13px;
244
+ font-weight: 400;
245
+ }
246
+
247
+ .banner {
248
+ margin-top: 22px;
249
+ border-left: 1px solid var(--accent);
250
+ padding-left: 14px;
251
+ }
252
+
253
+ .banner pre, .error pre, .stack pre, .well pre {
254
+ margin: 0;
255
+ white-space: pre-wrap;
256
+ word-break: break-word;
257
+ }
258
+
259
+ .legend {
260
+ display: flex;
261
+ flex-wrap: wrap;
262
+ align-items: center;
263
+ gap: 8px 20px;
264
+ margin-top: 28px;
265
+ }
266
+
267
+ .count {
268
+ background: none;
269
+ border: 0;
270
+ border-bottom: 1px solid transparent;
271
+ border-radius: 0;
272
+ padding: 4px 0;
273
+ color: var(--subtle);
274
+ font-size: 14px;
275
+ font-weight: 400;
276
+ }
277
+
278
+ .count .n {
279
+ color: var(--text);
280
+ font-weight: 500;
281
+ font-variant-numeric: tabular-nums;
282
+ margin-right: 6px;
283
+ }
284
+
285
+ .count[aria-pressed="true"],
286
+ .count[data-status="passed"][aria-pressed="true"],
287
+ .count[data-status="failed"][aria-pressed="true"],
288
+ .count[data-status="flaky"][aria-pressed="true"],
289
+ .count[data-status="skipped"][aria-pressed="true"],
290
+ .count[data-status="timedOut"][aria-pressed="true"] {
291
+ color: var(--text);
292
+ border-bottom-color: var(--accent);
293
+ }
294
+
295
+ .find-wrap { margin-left: auto; }
296
+
297
+ .find {
298
+ width: 200px;
299
+ max-width: 100%;
300
+ background: transparent;
301
+ border: 0;
302
+ border-bottom: 1px solid var(--border);
303
+ border-radius: 0;
304
+ padding: 6px 0;
305
+ color: var(--text);
306
+ }
307
+
308
+ .find::placeholder { color: var(--subtle); }
309
+
310
+ .strip-window {
311
+ margin-top: 22px;
312
+ background: var(--surface);
313
+ border: 1px solid var(--border);
314
+ border-radius: 0;
315
+ padding: 12px;
316
+ box-shadow: none;
317
+ animation: rise 1s var(--ease) 0.3s both;
318
+ }
319
+
320
+ .strip-scroll { overflow-x: auto; padding: 8px 0; }
321
+
322
+ .strip {
323
+ height: 48px;
324
+ display: flex;
325
+ gap: 2px;
326
+ min-width: 100%;
327
+ }
328
+
329
+ .segment {
330
+ flex: var(--w) 1 0;
331
+ min-width: 7px;
332
+ height: 100%;
333
+ border: 0;
334
+ border-radius: 0;
335
+ padding: 0;
336
+ background: var(--pass);
337
+ transform: none;
338
+ }
339
+
340
+ .segment[data-status="passed"] { background: rgba(255, 255, 255, 0.55); }
341
+ .segment[data-status="failed"],
342
+ .segment[data-status="timedOut"] { background: var(--fail); }
343
+ .segment[data-status="interrupted"] { background: transparent; box-shadow: inset 0 0 0 1px var(--border); }
344
+ .segment[data-status="flaky"] { background: var(--wash); box-shadow: inset 0 0 0 1px var(--accent); }
345
+ .segment[data-status="skipped"] { background: transparent; box-shadow: inset 0 0 0 1px var(--border); }
346
+ .segment.is-dim { opacity: 0.28; }
347
+ .segment:hover { opacity: 1; }
348
+ .segment[aria-current="true"] { outline: 1px solid var(--accent); outline-offset: 2px; }
349
+
350
+ .section-note {
351
+ margin: -4px 0 10px;
352
+ color: var(--subtle);
353
+ font-size: 13px;
354
+ }
355
+
356
+ .range-head {
357
+ display: flex;
358
+ justify-content: space-between;
359
+ align-items: baseline;
360
+ gap: 12px 16px;
361
+ margin: 32px 0 10px;
362
+ }
363
+
364
+ .range-head .section-label { margin: 0; }
365
+
366
+ .views { display: flex; gap: 16px; }
367
+
368
+ .view {
369
+ background: none;
370
+ border: 0;
371
+ padding: 0;
372
+ color: var(--subtle);
373
+ font-size: 14px;
374
+ }
375
+
376
+ .view[aria-pressed="true"] {
377
+ color: var(--text);
378
+ font-weight: 500;
379
+ box-shadow: inset 0 -1px 0 var(--accent);
380
+ }
381
+
382
+ #duration.legend {
383
+ display: grid;
384
+ grid-template-columns: repeat(4, minmax(0, 1fr));
385
+ gap: 1px;
386
+ margin-top: 8px;
387
+ }
388
+
389
+ #duration .band {
390
+ display: flex;
391
+ flex-direction: column;
392
+ align-items: flex-start;
393
+ gap: 6px;
394
+ width: 100%;
395
+ background: transparent;
396
+ border: 0;
397
+ padding: 4px 16px 4px 0;
398
+ color: var(--subtle);
399
+ text-align: left;
400
+ }
401
+
402
+ #duration .band .n {
403
+ color: var(--text);
404
+ font-size: 28px;
405
+ line-height: 1;
406
+ letter-spacing: -0.04em;
407
+ }
408
+
409
+ #duration .band[aria-pressed="true"] .n { color: var(--accent); }
410
+
411
+ .band-label { font-size: 14px; }
412
+
413
+ .band-track {
414
+ width: 100%;
415
+ height: 4px;
416
+ background: var(--hairline);
417
+ }
418
+
419
+ .band-fill {
420
+ display: block;
421
+ height: 100%;
422
+ background: var(--accent);
423
+ }
424
+
425
+ .order {
426
+ display: flex;
427
+ flex-wrap: wrap;
428
+ gap: 8px 18px;
429
+ align-items: baseline;
430
+ margin-top: 14px;
431
+ }
432
+
433
+ .order-label { color: var(--subtle); font-size: 13px; }
434
+
435
+ .order-btn,
436
+ .band-clear {
437
+ background: none;
438
+ border: 0;
439
+ padding: 0;
440
+ color: var(--subtle);
441
+ font-size: 14px;
442
+ }
443
+
444
+ .order-btn[aria-pressed="true"],
445
+ .band-clear[aria-pressed="true"] {
446
+ color: var(--text);
447
+ font-weight: 500;
448
+ box-shadow: inset 0 -1px 0 var(--accent);
449
+ }
450
+
451
+ .run-list { display: flex; flex-direction: column; gap: 8px; min-height: 0; }
452
+
453
+ .run-row {
454
+ display: grid;
455
+ grid-template-columns: 92px minmax(140px, 1.1fr) minmax(80px, 1fr) auto;
456
+ gap: 12px;
457
+ align-items: center;
458
+ width: 100%;
459
+ height: auto;
460
+ min-width: 0;
461
+ flex: none;
462
+ text-align: left;
463
+ background: transparent;
464
+ border: 0;
465
+ border-radius: 0;
466
+ box-shadow: none;
467
+ padding: 7px 0 7px 10px;
468
+ color: var(--text);
469
+ }
470
+
471
+ .run-row[data-status="passed"],
472
+ .run-row[data-status="skipped"],
473
+ .run-row[data-status="interrupted"] {
474
+ background: transparent;
475
+ box-shadow: none;
476
+ }
477
+
478
+ .run-row[data-status="failed"],
479
+ .run-row[data-status="timedOut"],
480
+ .run-row[data-status="flaky"] {
481
+ background: transparent;
482
+ box-shadow: inset 2px 0 0 var(--accent);
483
+ }
484
+
485
+ .run-row.is-dim { opacity: 0.28; }
486
+ .run-row:hover { background: rgba(255, 255, 255, 0.04); }
487
+ .run-row[aria-current="true"] { background: var(--wash); }
488
+
489
+ .run-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
490
+
491
+ .run-track {
492
+ height: 8px;
493
+ background: rgba(255, 255, 255, 0.08);
494
+ overflow: hidden;
495
+ }
496
+
497
+ .run-fill { display: block; height: 100%; background: rgba(255, 255, 255, 0.55); }
498
+ .run-fill[data-status="failed"],
499
+ .run-fill[data-status="timedOut"],
500
+ .run-fill[data-status="flaky"] { background: var(--accent); }
501
+ .run-fill[data-status="skipped"],
502
+ .run-fill[data-status="interrupted"] { background: var(--border); }
503
+
504
+ .run-time {
505
+ font-family: var(--mono);
506
+ font-size: 12px;
507
+ font-weight: 500;
508
+ color: var(--subtle);
509
+ font-variant-numeric: tabular-nums;
510
+ }
511
+
512
+ .run-row[aria-current="true"] .run-name { color: var(--accent); }
513
+
514
+ .file-group { margin-top: 18px; }
515
+ .file-group h3 { margin: 0 0 8px; font-size: 16px; font-weight: 500; }
516
+ .file-row { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; padding: 6px 0; }
517
+ .file-kind { min-width: 88px; color: var(--text); font-weight: 500; }
518
+
519
+ @media (max-width: 800px) {
520
+ .run-row { grid-template-columns: 72px minmax(0, 1fr) auto; }
521
+ .run-track { display: none; }
522
+ }
523
+
524
+ .now {
525
+ min-height: 24px;
526
+ margin: 12px 0 0;
527
+ display: flex;
528
+ flex-wrap: wrap;
529
+ gap: 8px 16px;
530
+ align-items: baseline;
531
+ color: var(--text);
532
+ font-size: 15px;
533
+ }
534
+
535
+ .now-file { color: var(--subtle); font-size: 13px; }
536
+
537
+ .now .name {
538
+ color: var(--text);
539
+ min-width: 0;
540
+ overflow: hidden;
541
+ text-overflow: ellipsis;
542
+ white-space: nowrap;
543
+ font-weight: 500;
544
+ }
545
+
546
+ .split {
547
+ display: grid;
548
+ grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
549
+ gap: 0;
550
+ margin-top: 8px;
551
+ align-items: start;
552
+ border-top: 1px solid var(--border);
553
+ }
554
+
555
+ .file-name {
556
+ margin: 18px 0 6px;
557
+ color: var(--subtle);
558
+ font-size: 12px;
559
+ font-weight: 500;
560
+ }
561
+
562
+ .group:first-child .file-name { margin-top: 14px; }
563
+
564
+ .row {
565
+ width: 100%;
566
+ text-align: left;
567
+ background: transparent;
568
+ border: 0;
569
+ border-left: 1px solid var(--border);
570
+ border-radius: 0;
571
+ padding: 8px 12px;
572
+ display: grid;
573
+ grid-template-columns: minmax(0, 1fr) auto;
574
+ gap: 2px 12px;
575
+ }
576
+
577
+ .row[data-status="passed"] { border-left-color: var(--hairline); }
578
+ .row[data-status="failed"],
579
+ .row[data-status="timedOut"] { border-left-color: var(--accent); }
580
+ .row[data-status="flaky"] { border-left-color: var(--accent); }
581
+ .row[data-status="skipped"],
582
+ .row[data-status="interrupted"] { border-left-color: var(--border); }
583
+ .row[aria-current="true"] { background: var(--hairline); }
584
+ .row:hover { background: rgba(255, 255, 255, 0.04); }
585
+
586
+ .row-title {
587
+ font-weight: 500;
588
+ letter-spacing: -0.014em;
589
+ overflow: hidden;
590
+ text-overflow: ellipsis;
591
+ white-space: nowrap;
592
+ }
593
+
594
+ .row-time {
595
+ font-variant-numeric: tabular-nums;
596
+ color: var(--subtle);
597
+ font-family: var(--mono);
598
+ font-size: 12px;
599
+ font-weight: 500;
600
+ }
601
+
602
+ .row-meta {
603
+ grid-column: 1 / -1;
604
+ display: flex;
605
+ gap: 12px;
606
+ color: var(--subtle);
607
+ font-size: 13px;
608
+ }
609
+
610
+ .sw[data-status="passed"] { color: var(--text); }
611
+ .sw[data-status="failed"],
612
+ .sw[data-status="timedOut"],
613
+ .sw[data-status="flaky"] { color: var(--accent); }
614
+ .sw[data-status="skipped"],
615
+ .sw[data-status="interrupted"] { color: var(--subtle); }
616
+
617
+ .detail {
618
+ position: sticky;
619
+ top: 18px;
620
+ max-height: calc(100vh - 36px);
621
+ overflow: auto;
622
+ padding: 18px 0 24px 28px;
623
+ background: transparent;
624
+ border: 0;
625
+ border-radius: 0;
626
+ box-shadow: none;
627
+ color: var(--text);
628
+ }
629
+
630
+ .kicker { margin: 0 0 6px; color: var(--subtle); font-size: 13px; }
631
+
632
+ .detail h2 {
633
+ margin: 0;
634
+ font-weight: 500;
635
+ font-size: 28px;
636
+ line-height: 1.15;
637
+ letter-spacing: -0.03em;
638
+ }
639
+
640
+ .where {
641
+ display: flex;
642
+ flex-wrap: wrap;
643
+ gap: 8px 14px;
644
+ margin: 8px 0 0;
645
+ color: var(--subtle);
646
+ font-size: 13px;
647
+ }
648
+
649
+ .status-line { margin: 12px 0 0; }
650
+ .note { margin: 8px 0 0; color: var(--accent); }
651
+
652
+ .block {
653
+ margin-top: 20px;
654
+ padding-top: 14px;
655
+ border-top: 1px solid var(--border);
656
+ }
657
+
658
+ .block h3, .log-card h3, .file-card h3 {
659
+ margin: 0 0 10px;
660
+ font-size: 14px;
661
+ font-weight: 500;
662
+ letter-spacing: -0.014em;
663
+ }
664
+
665
+ .block-head {
666
+ display: flex;
667
+ justify-content: space-between;
668
+ align-items: baseline;
669
+ gap: 12px;
670
+ }
671
+
672
+ .error {
673
+ border-left: 1px solid var(--accent);
674
+ padding-left: 12px;
675
+ margin-top: 12px;
676
+ }
677
+
678
+ .error pre {
679
+ font-family: var(--sans);
680
+ font-size: 14px;
681
+ font-weight: 400;
682
+ line-height: 1.5;
683
+ max-height: 240px;
684
+ overflow: auto;
685
+ }
686
+
687
+ .where-error { margin: 6px 0 0; color: var(--subtle); font-size: 13px; }
688
+ .stack { margin-top: 8px; }
689
+ .stack summary { cursor: pointer; color: var(--subtle); }
690
+ .stack pre {
691
+ margin-top: 8px;
692
+ font-family: var(--mono);
693
+ font-size: 12px;
694
+ font-weight: 500;
695
+ line-height: 1.6;
696
+ max-height: 240px;
697
+ overflow: auto;
698
+ color: var(--subtle);
699
+ }
700
+
701
+ .step {
702
+ display: grid;
703
+ grid-template-columns: 10px minmax(0, 1fr) auto;
704
+ gap: 8px;
705
+ align-items: start;
706
+ padding: 6px 0;
707
+ border-top: 1px solid var(--border);
708
+ }
709
+
710
+ .mark {
711
+ width: 6px;
712
+ height: 6px;
713
+ margin-top: 8px;
714
+ border-radius: 0;
715
+ background: var(--pass);
716
+ }
717
+
718
+ .step.bad .mark { background: var(--accent); }
719
+ .step .sub, .step .loc { color: var(--subtle); }
720
+ .step .loc { font-family: var(--mono); font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
721
+ .children { margin-left: 18px; }
722
+
723
+ .well {
724
+ background: transparent;
725
+ border: 0;
726
+ border-radius: 0;
727
+ padding: 0;
728
+ overflow: auto;
729
+ max-height: 320px;
730
+ }
731
+
732
+ .well + .well { margin-top: 10px; }
733
+ .well p { margin: 0 0 8px; color: var(--subtle); font-size: 13px; }
734
+ .well pre {
735
+ font-family: var(--mono);
736
+ font-size: 13px;
737
+ font-weight: 500;
738
+ line-height: 1.6;
739
+ letter-spacing: 0;
740
+ }
741
+
742
+ .shot {
743
+ display: block;
744
+ width: 100%;
745
+ padding: 0;
746
+ border: 1px solid var(--border);
747
+ border-radius: 0;
748
+ overflow: hidden;
749
+ background: var(--base);
750
+ cursor: zoom-in;
751
+ }
752
+
753
+ .shot img { display: block; width: 100%; height: auto; }
754
+ .tile .shot { border: 0; }
755
+ .tile img { height: 160px; object-fit: cover; }
756
+
757
+ .file-link, .open-test {
758
+ background: none;
759
+ border: 0;
760
+ padding: 0;
761
+ color: var(--accent);
762
+ border-radius: 0;
763
+ }
764
+
765
+ .hint { margin: 8px 0 0; color: var(--subtle); font-size: 13px; }
766
+ .hint code { font-family: var(--mono); font-size: 12px; font-weight: 500; color: var(--text); }
767
+
768
+ .video {
769
+ width: 100%;
770
+ border-radius: 0;
771
+ background: var(--base);
772
+ }
773
+
774
+ .empty { color: var(--subtle); margin: 0; }
775
+
776
+ .longest {
777
+ margin-top: 36px;
778
+ padding-top: 18px;
779
+ border-top: 1px solid var(--border);
780
+ }
781
+
782
+ .longest h2, #panel-screenshots h2, #panel-logs h2, #panel-files h2 {
783
+ margin: 0 0 12px;
784
+ font-weight: 500;
785
+ font-size: 28px;
786
+ line-height: 1.15;
787
+ letter-spacing: -0.03em;
788
+ }
789
+
790
+ .bar-row {
791
+ width: 100%;
792
+ display: grid;
793
+ grid-template-columns: minmax(0, 1fr) auto;
794
+ gap: 4px 12px;
795
+ align-items: center;
796
+ background: none;
797
+ border: 0;
798
+ border-radius: 0;
799
+ text-align: left;
800
+ padding: 8px 0;
801
+ }
802
+
803
+ .bar-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
804
+ .bar-time { font-family: var(--mono); font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--subtle); }
805
+
806
+ .track {
807
+ grid-column: 1 / -1;
808
+ height: 4px;
809
+ background: var(--hairline);
810
+ border-radius: 0;
811
+ overflow: hidden;
812
+ }
813
+
814
+ .track span { display: block; height: 100%; }
815
+ .track span[data-status="passed"] { background: var(--pass); }
816
+ .track span[data-status="failed"],
817
+ .track span[data-status="timedOut"] { background: var(--accent); }
818
+ .track span[data-status="flaky"] { background: var(--flaky); }
819
+ .track span[data-status="skipped"],
820
+ .track span[data-status="interrupted"] { background: var(--border); }
821
+
822
+ .gallery {
823
+ display: grid;
824
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
825
+ gap: 12px;
826
+ margin-top: 16px;
827
+ }
828
+
829
+ .tile {
830
+ border: 1px solid rgba(255, 255, 255, 0.08);
831
+ border-radius: 0;
832
+ overflow: hidden;
833
+ background: transparent;
834
+ box-shadow: none;
835
+ }
836
+
837
+ .tile:hover { border-color: var(--accent); }
838
+ .tile-copy { padding: 12px; }
839
+ .tile-title { margin: 0; font-weight: 500; }
840
+ .tile-meta { margin: 4px 0 8px; color: var(--subtle); font-size: 13px; }
841
+
842
+ .log-card, .file-card {
843
+ border: 0;
844
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
845
+ border-radius: 0;
846
+ background: transparent;
847
+ box-shadow: none;
848
+ padding: 16px 0;
849
+ margin-top: 0;
850
+ }
851
+
852
+ .strip-canvas { width: 100%; height: 48px; display: block; cursor: pointer; }
853
+
854
+ .more {
855
+ margin-top: 12px;
856
+ background: none;
857
+ border: 0;
858
+ color: var(--accent);
859
+ padding: 0;
860
+ }
861
+
862
+ .foot {
863
+ margin: 40px 0 0;
864
+ padding-top: 16px;
865
+ border-top: 1px solid var(--border);
866
+ color: var(--subtle);
867
+ font-size: 13px;
868
+ display: flex;
869
+ flex-wrap: wrap;
870
+ gap: 8px 18px;
871
+ }
872
+
873
+ dialog {
874
+ padding: 0;
875
+ border: 0;
876
+ background: var(--base);
877
+ max-width: 92vw;
878
+ }
879
+
880
+ dialog img { display: block; max-width: 92vw; max-height: 86vh; }
881
+ dialog .close-shot {
882
+ margin: 0 0 8px;
883
+ background: var(--text);
884
+ color: var(--base);
885
+ border: 0;
886
+ border-radius: 0;
887
+ padding: 6px 12px;
888
+ }
889
+ dialog::backdrop { background: rgba(8, 8, 8, 0.92); }
890
+
891
+ @keyframes rise {
892
+ from { opacity: 0; transform: translateY(40px); }
893
+ to { opacity: 1; transform: none; }
894
+ }
895
+
896
+ @media (max-width: 800px) {
897
+ .page { width: min(1120px, calc(100% - 32px)); }
898
+ .hero { flex-direction: column; align-items: flex-start; }
899
+ .find-wrap { margin-left: 0; width: 100%; }
900
+ .find { width: 100%; }
901
+ .split { grid-template-columns: 1fr; }
902
+ .detail { position: static; max-height: none; padding-left: 0; }
903
+ }
904
+
905
+ .atmosphere {
906
+ position: fixed;
907
+ inset: 0;
908
+ z-index: 0;
909
+ pointer-events: none;
910
+ background: #050806;
911
+ overflow: hidden;
912
+ }
913
+
914
+ .bands {
915
+ position: absolute;
916
+ left: 0;
917
+ right: 0;
918
+ top: 0;
919
+ width: 100%;
920
+ height: 100%;
921
+ display: block;
922
+ filter: blur(18px) saturate(1.05);
923
+ -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 18%, rgba(0, 0, 0, 0.4) 34%, transparent 52%);
924
+ mask-image: linear-gradient(180deg, #000 0%, #000 18%, rgba(0, 0, 0, 0.4) 34%, transparent 52%);
925
+ }
926
+
927
+ .grain {
928
+ position: absolute;
929
+ inset: -20%;
930
+ opacity: 0.07;
931
+ mix-blend-mode: overlay;
932
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.85'/></svg>");
933
+ background-size: 180px 180px;
934
+ animation: grain 0.7s steps(2) infinite;
935
+ }
936
+
937
+ .veil {
938
+ position: absolute;
939
+ inset: 0;
940
+ background: linear-gradient(180deg, rgba(5, 8, 6, 0) 0%, rgba(5, 8, 6, 0.12) 14%, rgba(5, 8, 6, 0.72) 30%, rgba(5, 8, 6, 0.9) 42%, rgba(5, 8, 6, 0.96) 100%);
941
+ }
942
+
943
+ .shell { position: relative; z-index: 1; }
944
+
945
+ @keyframes grain {
946
+ 0% { transform: translate(0, 0); }
947
+ 100% { transform: translate(-2%, 1%); }
948
+ }
949
+
950
+ .page { width: 100%; max-width: none; margin: 0; padding: 0; }
951
+
952
+ .shell {
953
+ display: flex;
954
+ flex-direction: column;
955
+ min-height: 100vh;
956
+ }
957
+
958
+ .rail {
959
+ position: sticky;
960
+ top: 0;
961
+ z-index: 5;
962
+ height: auto;
963
+ display: flex;
964
+ flex-direction: row;
965
+ align-items: center;
966
+ gap: 28px;
967
+ padding: 12px 16px;
968
+ border-right: 0;
969
+ background: linear-gradient(180deg, rgba(5, 8, 6, 0.72), rgba(5, 8, 6, 0.35) 70%, rgba(5, 8, 6, 0));
970
+ transition: transform 220ms ease;
971
+ }
972
+
973
+ .rail.is-hidden {
974
+ transform: translateY(-110%);
975
+ pointer-events: none;
976
+ }
977
+
978
+ .rail .meta { margin: 0 0 0 auto; flex-direction: row; gap: 16px; }
979
+
980
+ .rail .tabbar {
981
+ flex-direction: row;
982
+ align-items: center;
983
+ gap: 22px;
984
+ margin: 0;
985
+ padding: 0;
986
+ border: 0;
987
+ }
988
+
989
+ .rail .tab {
990
+ text-align: left;
991
+ padding: 8px 0;
992
+ color: rgba(240, 240, 240, 0.72);
993
+ }
994
+
995
+ .rail .tab[aria-selected="true"] {
996
+ background: none;
997
+ color: var(--text);
998
+ box-shadow: inset 0 -1px 0 var(--accent);
999
+ }
1000
+
1001
+ .stage {
1002
+ width: 100%;
1003
+ margin: 0;
1004
+ padding: 20px 16px 48px;
1005
+ }
1006
+
1007
+ .hero { margin: 8px 0 28px; }
1008
+
1009
+ .word {
1010
+ font-size: clamp(64px, 8vw, 96px);
1011
+ font-weight: 500;
1012
+ letter-spacing: -0.045em;
1013
+ max-width: 14ch;
1014
+ }
1015
+
1016
+ .time { display: none; }
1017
+
1018
+ #panel-tests,
1019
+ #panel-screenshots,
1020
+ #panel-logs,
1021
+ #panel-files {
1022
+ background: transparent;
1023
+ border: 0;
1024
+ padding: 0;
1025
+ }
1026
+
1027
+ .console {
1028
+ background: transparent;
1029
+ border: 0;
1030
+ }
1031
+
1032
+ .console-bar {
1033
+ display: flex;
1034
+ justify-content: space-between;
1035
+ gap: 16px;
1036
+ padding: 12px 18px;
1037
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1038
+ color: var(--subtle);
1039
+ font-size: 13px;
1040
+ }
1041
+
1042
+ .console-body { padding: 0; }
1043
+
1044
+ .console .section-label { margin-top: 18px; }
1045
+
1046
+ .console .strip-window,
1047
+ .console .longest {
1048
+ background: transparent;
1049
+ border: 0;
1050
+ box-shadow: none;
1051
+ animation: none;
1052
+ }
1053
+
1054
+ #legend.legend {
1055
+ background: transparent;
1056
+ border: 0;
1057
+ gap: 0;
1058
+ }
1059
+
1060
+ #legend .count {
1061
+ background: transparent;
1062
+ min-height: 0;
1063
+ padding: 8px 18px 8px 0;
1064
+ border-right: 1px solid rgba(255, 255, 255, 0.06);
1065
+ }
1066
+
1067
+ #legend .count:last-child { border-right: 0; }
1068
+
1069
+ .strip.timeline .segment { height: 18px; }
1070
+
1071
+ .section-label {
1072
+ margin: 32px 0 10px;
1073
+ color: var(--subtle);
1074
+ font-size: 13px;
1075
+ font-weight: 500;
1076
+ }
1077
+
1078
+ #legend.legend {
1079
+ display: grid;
1080
+ grid-template-columns: repeat(6, minmax(0, 1fr));
1081
+ gap: 1px;
1082
+ margin-top: 0;
1083
+ background: transparent;
1084
+ border: 0;
1085
+ }
1086
+
1087
+ #legend .count {
1088
+ display: flex;
1089
+ flex-direction: column;
1090
+ align-items: flex-start;
1091
+ gap: 4px;
1092
+ min-height: 0;
1093
+ padding: 4px 16px 4px 0;
1094
+ background: transparent;
1095
+ border: 0;
1096
+ color: var(--subtle);
1097
+ }
1098
+
1099
+ #legend .count .n {
1100
+ font-size: 28px;
1101
+ line-height: 1;
1102
+ letter-spacing: -0.04em;
1103
+ }
1104
+
1105
+ #legend .count[aria-pressed="true"] { background: transparent; }
1106
+
1107
+ .strip.timeline {
1108
+ display: block;
1109
+ position: relative;
1110
+ height: auto;
1111
+ min-width: 0;
1112
+ }
1113
+
1114
+ .strip.timeline .segment {
1115
+ position: absolute;
1116
+ height: 18px;
1117
+ min-width: 0;
1118
+ }
1119
+
1120
+ .evidence {
1121
+ display: grid;
1122
+ grid-template-columns: minmax(0, 1.1fr) minmax(220px, 0.9fr);
1123
+ gap: 20px;
1124
+ align-items: start;
1125
+ }
1126
+
1127
+ .evidence .shot { background: var(--base); }
1128
+
1129
+ #test-tools.legend {
1130
+ margin-top: 0;
1131
+ margin-bottom: 8px;
1132
+ }
1133
+
1134
+ @media (max-width: 800px) {
1135
+ .rail { flex-wrap: wrap; gap: 12px 18px; padding: 16px; }
1136
+ .rail .meta { display: none; }
1137
+ .rail .tabbar { flex-wrap: wrap; width: 100%; }
1138
+ .stage { width: 100%; padding: 12px 16px 40px; }
1139
+ #legend.legend, #duration.legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1140
+ #legend .count { border-right: 0; }
1141
+ .evidence { grid-template-columns: 1fr; }
1142
+ .hero { margin: 24px 0 32px; }
1143
+ }
1144
+
1145
+ @media (prefers-reduced-motion: reduce) {
1146
+ .hero, .strip-window, .bands, .grain, .rail { animation: none; transition: none; }
1147
+ }