@conuti-das/prince-ui 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css ADDED
@@ -0,0 +1,4328 @@
1
+ /* src/primitives/forms.css */
2
+ .prn-button {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ gap: 6px;
7
+ min-height: 34px;
8
+ padding: 0 16px;
9
+ border: none;
10
+ border-radius: var(--prn-radius-md);
11
+ font: var(--prn-text-callout);
12
+ font-weight: 600;
13
+ cursor: pointer;
14
+ user-select: none;
15
+ transition: filter var(--prn-dur-fast) var(--prn-ease-standard), background var(--prn-dur-fast) var(--prn-ease-standard);
16
+ }
17
+ .prn-button[data-variant=filled] {
18
+ background: var(--prn-accent);
19
+ color: var(--prn-on-accent);
20
+ }
21
+ .prn-button[data-variant=filled][data-hovered] {
22
+ background: var(--prn-accent-hover);
23
+ }
24
+ .prn-button[data-variant=filled][data-pressed] {
25
+ background: var(--prn-accent-pressed);
26
+ }
27
+ .prn-button[data-variant=tinted] {
28
+ background: var(--prn-accent-soft);
29
+ color: var(--prn-accent-strong);
30
+ }
31
+ .prn-button[data-variant=tinted][data-hovered] {
32
+ filter: brightness(1.05);
33
+ }
34
+ .prn-button[data-variant=plain] {
35
+ background: transparent;
36
+ color: var(--prn-accent-strong);
37
+ padding: 0 8px;
38
+ }
39
+ .prn-button[data-variant=plain][data-hovered] {
40
+ background: var(--prn-fill);
41
+ }
42
+ .prn-button[data-disabled] {
43
+ opacity: 0.5;
44
+ cursor: not-allowed;
45
+ }
46
+ .prn-button[data-variant=filled][data-disabled] {
47
+ background: var(--prn-fill-strong);
48
+ color: var(--prn-label-3);
49
+ opacity: 1;
50
+ }
51
+ .prn-button[data-focus-visible] {
52
+ box-shadow: var(--prn-focus);
53
+ }
54
+ .prn-field {
55
+ display: flex;
56
+ flex-direction: column;
57
+ gap: 5px;
58
+ }
59
+ .prn-field-label {
60
+ font: var(--prn-text-subhead);
61
+ font-weight: 590;
62
+ color: var(--prn-label-2);
63
+ }
64
+ .prn-field-desc {
65
+ font: var(--prn-text-footnote);
66
+ color: var(--prn-label-3);
67
+ }
68
+ .prn-field-error {
69
+ font: var(--prn-text-footnote);
70
+ color: var(--prn-red);
71
+ }
72
+ .prn-input {
73
+ width: 100%;
74
+ min-height: 34px;
75
+ padding: 7px 12px;
76
+ border: none;
77
+ border-radius: var(--prn-radius-md);
78
+ background: var(--prn-fill);
79
+ color: var(--prn-label);
80
+ font: var(--prn-text-body);
81
+ }
82
+ .prn-input::placeholder {
83
+ color: var(--prn-label-3);
84
+ }
85
+ .prn-input[data-focused],
86
+ .prn-input:focus {
87
+ outline: none;
88
+ box-shadow: var(--prn-focus);
89
+ }
90
+ .prn-searchfield .prn-input {
91
+ background-image: none;
92
+ padding-left: 12px;
93
+ }
94
+ .prn-checkbox {
95
+ display: inline-flex;
96
+ align-items: center;
97
+ gap: 9px;
98
+ cursor: pointer;
99
+ font: var(--prn-text-body);
100
+ color: var(--prn-label);
101
+ }
102
+ .prn-checkbox-box {
103
+ width: 20px;
104
+ height: 20px;
105
+ border-radius: 6px;
106
+ background: var(--prn-fill);
107
+ box-shadow: inset 0 0 0 1.5px var(--prn-separator);
108
+ display: grid;
109
+ place-items: center;
110
+ transition: background var(--prn-dur-fast), box-shadow var(--prn-dur-fast);
111
+ }
112
+ .prn-checkbox-check {
113
+ width: 14px;
114
+ height: 14px;
115
+ fill: none;
116
+ stroke: var(--prn-on-accent);
117
+ stroke-width: 2.4;
118
+ stroke-linecap: round;
119
+ stroke-linejoin: round;
120
+ opacity: 0;
121
+ transition: opacity var(--prn-dur-fast);
122
+ }
123
+ .prn-checkbox[data-selected] .prn-checkbox-box,
124
+ .prn-checkbox[data-indeterminate] .prn-checkbox-box {
125
+ background: var(--prn-accent);
126
+ box-shadow: none;
127
+ }
128
+ .prn-checkbox[data-selected] .prn-checkbox-check {
129
+ opacity: 1;
130
+ }
131
+ .prn-checkbox[data-focus-visible] .prn-checkbox-box {
132
+ box-shadow: var(--prn-focus);
133
+ }
134
+ .prn-checkbox[data-disabled] {
135
+ opacity: 0.45;
136
+ cursor: not-allowed;
137
+ }
138
+ .prn-switch {
139
+ display: inline-flex;
140
+ align-items: center;
141
+ gap: 10px;
142
+ cursor: pointer;
143
+ font: var(--prn-text-body);
144
+ color: var(--prn-label);
145
+ }
146
+ .prn-switch-track {
147
+ width: 50px;
148
+ height: 30px;
149
+ border-radius: 999px;
150
+ background: var(--prn-fill-strong);
151
+ padding: 2px;
152
+ transition: background var(--prn-dur) var(--prn-ease-standard);
153
+ flex: none;
154
+ }
155
+ .prn-switch-handle {
156
+ display: block;
157
+ width: 26px;
158
+ height: 26px;
159
+ border-radius: 50%;
160
+ background: #fff;
161
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
162
+ transform: translateX(0);
163
+ transition: transform var(--prn-dur) var(--prn-ease-spring);
164
+ }
165
+ .prn-switch[data-selected] .prn-switch-track {
166
+ background: var(--prn-accent);
167
+ }
168
+ .prn-switch[data-selected] .prn-switch-handle {
169
+ transform: translateX(20px);
170
+ }
171
+ .prn-switch[data-focus-visible] .prn-switch-track {
172
+ box-shadow: var(--prn-focus);
173
+ }
174
+ .prn-switch[data-disabled] {
175
+ opacity: 0.45;
176
+ cursor: not-allowed;
177
+ }
178
+ .prn-select-button {
179
+ display: inline-flex;
180
+ align-items: center;
181
+ justify-content: space-between;
182
+ gap: 8px;
183
+ width: 100%;
184
+ min-height: 34px;
185
+ padding: 7px 12px;
186
+ border: none;
187
+ border-radius: var(--prn-radius-md);
188
+ background: var(--prn-fill);
189
+ color: var(--prn-label);
190
+ font: var(--prn-text-body);
191
+ cursor: pointer;
192
+ }
193
+ .prn-select-button[data-focus-visible] {
194
+ box-shadow: var(--prn-focus);
195
+ }
196
+ .prn-select-value[data-placeholder] {
197
+ color: var(--prn-label-3);
198
+ }
199
+ .prn-select-chevron {
200
+ color: var(--prn-label-2);
201
+ }
202
+
203
+ /* src/primitives/overlays.css */
204
+ .prn-modal-overlay {
205
+ position: fixed;
206
+ inset: 0;
207
+ z-index: 1000;
208
+ display: grid;
209
+ place-items: center;
210
+ padding: 24px;
211
+ background: var(--prn-scrim);
212
+ backdrop-filter: blur(2px);
213
+ }
214
+ .prn-modal-overlay[data-entering] {
215
+ animation: prn-overlay-in var(--prn-dur) var(--prn-ease-out);
216
+ }
217
+ .prn-modal-overlay[data-exiting] {
218
+ animation: prn-overlay-in var(--prn-dur) var(--prn-ease-out) reverse;
219
+ }
220
+ .prn-modal {
221
+ max-width: 560px;
222
+ width: 100%;
223
+ max-height: 85vh;
224
+ overflow: auto;
225
+ background: var(--prn-bg-elevated);
226
+ border: var(--prn-card-border);
227
+ border-radius: var(--prn-radius-lg);
228
+ box-shadow: var(--prn-shadow-pop);
229
+ backdrop-filter: var(--prn-card-blur);
230
+ }
231
+ .prn-modal[data-entering] {
232
+ animation: prn-modal-in var(--prn-dur) var(--prn-ease-spring);
233
+ }
234
+ .prn-dialog {
235
+ padding: 22px;
236
+ outline: none;
237
+ display: flex;
238
+ flex-direction: column;
239
+ gap: 14px;
240
+ }
241
+ .prn-dialog-title {
242
+ margin: 0;
243
+ font: var(--prn-text-title);
244
+ color: var(--prn-label);
245
+ }
246
+ @keyframes prn-overlay-in {
247
+ from {
248
+ opacity: 0;
249
+ }
250
+ to {
251
+ opacity: 1;
252
+ }
253
+ }
254
+ @keyframes prn-modal-in {
255
+ from {
256
+ opacity: 0;
257
+ transform: translateY(8px) scale(0.98);
258
+ }
259
+ to {
260
+ opacity: 1;
261
+ transform: none;
262
+ }
263
+ }
264
+ .prn-popover {
265
+ background: var(--prn-bg-elevated);
266
+ border: var(--prn-card-border);
267
+ border-radius: var(--prn-radius-md);
268
+ box-shadow: var(--prn-shadow-pop);
269
+ backdrop-filter: var(--prn-card-blur);
270
+ padding: 6px;
271
+ min-width: 180px;
272
+ }
273
+ .prn-popover[data-entering] {
274
+ animation: prn-pop-in var(--prn-dur-fast) var(--prn-ease-out);
275
+ }
276
+ @keyframes prn-pop-in {
277
+ from {
278
+ opacity: 0;
279
+ transform: translateY(-4px);
280
+ }
281
+ to {
282
+ opacity: 1;
283
+ transform: none;
284
+ }
285
+ }
286
+ .prn-menu,
287
+ .prn-listbox {
288
+ outline: none;
289
+ display: flex;
290
+ flex-direction: column;
291
+ gap: 2px;
292
+ max-height: inherit;
293
+ }
294
+ .prn-menu-item,
295
+ .prn-option {
296
+ display: flex;
297
+ align-items: center;
298
+ gap: 8px;
299
+ padding: 7px 10px;
300
+ border-radius: var(--prn-radius-sm);
301
+ font: var(--prn-text-body);
302
+ color: var(--prn-label);
303
+ cursor: pointer;
304
+ outline: none;
305
+ }
306
+ .prn-menu-item[data-focused],
307
+ .prn-option[data-focused] {
308
+ background: var(--prn-accent-soft);
309
+ }
310
+ .prn-menu-item[data-disabled],
311
+ .prn-option[data-disabled] {
312
+ opacity: 0.4;
313
+ cursor: default;
314
+ }
315
+ .prn-option[data-selected]::after {
316
+ content: "\2713";
317
+ margin-left: auto;
318
+ color: var(--prn-accent-strong);
319
+ font-weight: 700;
320
+ }
321
+ .prn-tooltip {
322
+ background: var(--prn-label);
323
+ color: var(--prn-bg-elevated);
324
+ padding: 5px 9px;
325
+ border-radius: var(--prn-radius-sm);
326
+ font: var(--prn-text-footnote);
327
+ box-shadow: var(--prn-shadow);
328
+ max-width: 240px;
329
+ }
330
+ .prn-tooltip[data-entering] {
331
+ animation: prn-pop-in var(--prn-dur-fast) var(--prn-ease-out);
332
+ }
333
+ .prn-tooltip-arrow svg {
334
+ fill: var(--prn-label);
335
+ }
336
+ .prn-tooltip-arrow {
337
+ display: block;
338
+ }
339
+ @media (prefers-reduced-motion: reduce) {
340
+ .prn-modal-overlay[data-entering],
341
+ .prn-modal-overlay[data-exiting],
342
+ .prn-modal[data-entering],
343
+ .prn-modal[data-exiting],
344
+ .prn-popover[data-entering],
345
+ .prn-popover[data-exiting],
346
+ .prn-tooltip[data-entering] {
347
+ animation: none;
348
+ }
349
+ }
350
+
351
+ /* src/primitives/navigation.css */
352
+ .prn-segmented {
353
+ display: inline-flex;
354
+ gap: 2px;
355
+ padding: 2px;
356
+ border-radius: var(--prn-radius-md);
357
+ background: rgba(0, 0, 0, 0.2);
358
+ }
359
+ .prn-segment {
360
+ appearance: none;
361
+ border: none;
362
+ background: transparent;
363
+ padding: 5px 14px;
364
+ border-radius: calc(var(--prn-radius-md) - 2px);
365
+ font: var(--prn-text-subhead);
366
+ font-weight: 590;
367
+ color: var(--prn-label-2);
368
+ cursor: pointer;
369
+ transition: background var(--prn-dur-fast), color var(--prn-dur-fast);
370
+ }
371
+ .prn-segment[data-hovered] {
372
+ color: var(--prn-label);
373
+ }
374
+ .prn-segment[data-selected] {
375
+ background: var(--prn-bg-elevated);
376
+ color: var(--prn-label);
377
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
378
+ }
379
+ .prn-segment[data-focus-visible] {
380
+ box-shadow: var(--prn-focus);
381
+ }
382
+ .prn-segment[data-disabled] {
383
+ opacity: 0.45;
384
+ cursor: not-allowed;
385
+ }
386
+ .prn-tabs {
387
+ display: flex;
388
+ flex-direction: column;
389
+ gap: 14px;
390
+ }
391
+ .prn-tablist {
392
+ display: flex;
393
+ gap: 4px;
394
+ border-bottom: 1px solid var(--prn-separator);
395
+ }
396
+ .prn-tab {
397
+ position: relative;
398
+ padding: 8px 12px;
399
+ font: var(--prn-text-subhead);
400
+ font-weight: 590;
401
+ color: var(--prn-label-2);
402
+ cursor: pointer;
403
+ outline: none;
404
+ border-bottom: 2px solid transparent;
405
+ margin-bottom: -1px;
406
+ transition: color var(--prn-dur-fast);
407
+ }
408
+ .prn-tab[data-hovered] {
409
+ color: var(--prn-label);
410
+ }
411
+ .prn-tab[data-selected] {
412
+ color: var(--prn-accent-strong);
413
+ border-bottom-color: var(--prn-accent);
414
+ }
415
+ .prn-tab[data-focus-visible] {
416
+ box-shadow: var(--prn-focus);
417
+ border-radius: var(--prn-radius-sm);
418
+ }
419
+ .prn-tabpanel {
420
+ outline: none;
421
+ }
422
+
423
+ /* src/composites/composites.css */
424
+ .prn-card {
425
+ background: var(--prn-bg-elevated);
426
+ border: var(--prn-card-border);
427
+ border-radius: var(--prn-radius-card);
428
+ box-shadow: var(--prn-shadow);
429
+ -webkit-backdrop-filter: var(--prn-card-blur);
430
+ backdrop-filter: var(--prn-card-blur);
431
+ color: var(--prn-label);
432
+ }
433
+ .prn-card[data-padding=none] {
434
+ padding: 0;
435
+ }
436
+ .prn-card[data-padding=compact] {
437
+ padding: 12px;
438
+ }
439
+ .prn-card[data-padding=regular] {
440
+ padding: 18px;
441
+ }
442
+ .prn-card[data-padding=spacious] {
443
+ padding: 26px;
444
+ }
445
+ .prn-card[data-translucent] {
446
+ background: var(--prn-bg-elevated-translucent);
447
+ -webkit-backdrop-filter: var(--prn-blur);
448
+ backdrop-filter: var(--prn-blur);
449
+ }
450
+ .prn-card-pressable {
451
+ display: block;
452
+ width: 100%;
453
+ text-align: left;
454
+ cursor: pointer;
455
+ font-family: inherit;
456
+ transition: transform var(--prn-dur-fast) var(--prn-ease-out), box-shadow var(--prn-dur-fast) var(--prn-ease-out);
457
+ }
458
+ .prn-card-pressable[data-hovered] {
459
+ transform: translateY(-2px);
460
+ box-shadow: var(--prn-shadow-raised);
461
+ }
462
+ .prn-card-pressable[data-pressed] {
463
+ transform: translateY(0);
464
+ box-shadow: var(--prn-shadow);
465
+ }
466
+ .prn-card-pressable[data-focus-visible] {
467
+ outline: none;
468
+ box-shadow: var(--prn-focus);
469
+ }
470
+ .prn-badge-icon {
471
+ display: inline-flex;
472
+ align-items: center;
473
+ }
474
+ .prn-card-head {
475
+ display: flex;
476
+ align-items: center;
477
+ justify-content: space-between;
478
+ gap: 12px;
479
+ margin-bottom: 14px;
480
+ }
481
+ .prn-card[data-padding=none] .prn-card-head {
482
+ margin: 14px 18px;
483
+ }
484
+ .prn-card-title {
485
+ margin: 0;
486
+ font: var(--prn-text-headline);
487
+ color: var(--prn-label);
488
+ }
489
+ .prn-card-head-slot {
490
+ display: inline-flex;
491
+ align-items: center;
492
+ gap: 8px;
493
+ }
494
+ .prn-kpi {
495
+ display: flex;
496
+ flex-direction: column;
497
+ gap: 6px;
498
+ padding: 18px;
499
+ background: var(--prn-bg-elevated);
500
+ border: var(--prn-card-border);
501
+ border-radius: var(--prn-radius-card);
502
+ box-shadow: var(--prn-shadow);
503
+ -webkit-backdrop-filter: var(--prn-card-blur);
504
+ backdrop-filter: var(--prn-card-blur);
505
+ }
506
+ .prn-kpi-pressable {
507
+ text-align: left;
508
+ cursor: pointer;
509
+ font-family: inherit;
510
+ transition: transform var(--prn-dur-fast) var(--prn-ease-out), box-shadow var(--prn-dur-fast) var(--prn-ease-out);
511
+ }
512
+ .prn-kpi-pressable[data-hovered] {
513
+ transform: translateY(-2px);
514
+ box-shadow: var(--prn-shadow-raised);
515
+ }
516
+ .prn-kpi-pressable[data-pressed] {
517
+ transform: translateY(0);
518
+ box-shadow: var(--prn-shadow);
519
+ }
520
+ .prn-kpi-pressable[data-focus-visible] {
521
+ outline: none;
522
+ box-shadow: var(--prn-focus);
523
+ }
524
+ .prn-kpi[data-accent] {
525
+ background: var(--prn-accent);
526
+ border-color: transparent;
527
+ }
528
+ .prn-kpi[data-accent] .prn-kpi-label,
529
+ .prn-kpi[data-accent] .prn-kpi-value,
530
+ .prn-kpi[data-accent] .prn-kpi-delta {
531
+ color: rgba(0, 0, 0, 0.82);
532
+ }
533
+ .prn-kpi[data-accent] .prn-kpi-icon {
534
+ background: rgba(0, 0, 0, 0.12);
535
+ color: rgba(0, 0, 0, 0.82);
536
+ }
537
+ .prn-kpi[data-accent] .prn-kpi-value[data-tone] {
538
+ color: rgba(0, 0, 0, 0.82);
539
+ }
540
+ .prn-kpi-top {
541
+ display: inline-flex;
542
+ align-items: center;
543
+ gap: 7px;
544
+ }
545
+ .prn-kpi-icon {
546
+ display: inline-flex;
547
+ align-items: center;
548
+ justify-content: center;
549
+ width: 26px;
550
+ height: 26px;
551
+ border-radius: var(--prn-radius-sm);
552
+ background: var(--prn-accent-soft);
553
+ color: var(--prn-accent-strong);
554
+ font-size: 0.95rem;
555
+ }
556
+ .prn-kpi-label {
557
+ font: var(--prn-text-subhead);
558
+ font-weight: 590;
559
+ color: var(--prn-label-2);
560
+ }
561
+ .prn-kpi-value {
562
+ font: var(--prn-text-title);
563
+ color: var(--prn-label);
564
+ letter-spacing: -0.01em;
565
+ }
566
+ .prn-kpi-value[data-tone=positive] {
567
+ color: var(--prn-green);
568
+ }
569
+ .prn-kpi-value[data-tone=critical] {
570
+ color: var(--prn-orange);
571
+ }
572
+ .prn-kpi-value[data-tone=negative] {
573
+ color: var(--prn-red);
574
+ }
575
+ .prn-kpi-delta {
576
+ display: inline-flex;
577
+ align-items: center;
578
+ gap: 3px;
579
+ font: var(--prn-text-footnote);
580
+ font-weight: 590;
581
+ color: var(--prn-label-2);
582
+ }
583
+ .prn-kpi-delta[data-trend=up] {
584
+ color: var(--prn-green);
585
+ }
586
+ .prn-kpi-delta[data-trend=down] {
587
+ color: var(--prn-red);
588
+ }
589
+ .prn-kpi-delta[data-trend=flat] {
590
+ color: var(--prn-label-2);
591
+ }
592
+ .prn-kpi-arrow {
593
+ font-size: 0.9em;
594
+ line-height: 1;
595
+ }
596
+ .prn-badge {
597
+ display: inline-flex;
598
+ align-items: center;
599
+ gap: 4px;
600
+ padding: 2px 9px;
601
+ border-radius: var(--prn-radius-pill);
602
+ font: var(--prn-text-caption);
603
+ font-weight: 600;
604
+ line-height: 1.5;
605
+ white-space: nowrap;
606
+ }
607
+ .prn-badge[data-tone=neutral] {
608
+ background: var(--prn-fill-strong);
609
+ color: var(--prn-label-2);
610
+ }
611
+ .prn-badge[data-tone=gray] {
612
+ background: var(--prn-fill-strong);
613
+ color: var(--prn-label-2);
614
+ }
615
+ .prn-badge[data-tone=green] {
616
+ background: var(--prn-tint-positive);
617
+ color: var(--prn-green);
618
+ }
619
+ .prn-badge[data-tone=red] {
620
+ background: var(--prn-tint-negative);
621
+ color: var(--prn-red);
622
+ }
623
+ .prn-badge[data-tone=orange] {
624
+ background: var(--prn-tint-critical);
625
+ color: var(--prn-orange);
626
+ }
627
+ .prn-badge[data-tone=blue] {
628
+ background: var(--prn-tint-info);
629
+ color: var(--prn-blue);
630
+ }
631
+ .prn-badge[data-tone=teal] {
632
+ background: color-mix(in srgb, var(--prn-teal) 16%, transparent);
633
+ color: var(--prn-teal);
634
+ }
635
+ .prn-badge[data-variant=solid][data-tone=neutral],
636
+ .prn-badge[data-variant=solid][data-tone=gray] {
637
+ background: var(--prn-neutral);
638
+ color: #fff;
639
+ }
640
+ .prn-badge[data-variant=solid][data-tone=green] {
641
+ background: var(--prn-green);
642
+ color: var(--prn-on-status-fill);
643
+ }
644
+ .prn-badge[data-variant=solid][data-tone=red] {
645
+ background: var(--prn-red);
646
+ color: #fff;
647
+ }
648
+ .prn-badge[data-variant=solid][data-tone=orange] {
649
+ background: var(--prn-orange);
650
+ color: var(--prn-on-status-fill);
651
+ }
652
+ .prn-badge[data-variant=solid][data-tone=blue] {
653
+ background: var(--prn-blue);
654
+ color: #fff;
655
+ }
656
+ .prn-badge[data-variant=solid][data-tone=teal] {
657
+ background: var(--prn-teal);
658
+ color: #fff;
659
+ }
660
+ .prn-badge[data-custom-color][data-variant=soft] {
661
+ background: color-mix(in srgb, var(--prn-badge-color) 18%, transparent);
662
+ color: var(--prn-badge-color);
663
+ }
664
+ .prn-badge[data-custom-color][data-variant=solid] {
665
+ background: var(--prn-badge-color);
666
+ color: var(--prn-badge-text-color, #fff);
667
+ }
668
+ .prn-amount {
669
+ font: var(--prn-text-body);
670
+ color: var(--prn-label);
671
+ }
672
+ .prn-amount[data-colored][data-sign=pos] {
673
+ color: var(--prn-green);
674
+ }
675
+ .prn-amount[data-colored][data-sign=neg] {
676
+ color: var(--prn-red);
677
+ }
678
+ .prn-amount[data-colored][data-sign=zero] {
679
+ color: var(--prn-label-2);
680
+ }
681
+ .prn-amount-dec {
682
+ color: var(--prn-label-2);
683
+ font-size: 0.82em;
684
+ font-weight: inherit;
685
+ }
686
+ .prn-amount[data-colored] .prn-amount-dec {
687
+ color: inherit;
688
+ opacity: 0.62;
689
+ }
690
+ .prn-list {
691
+ display: flex;
692
+ flex-direction: column;
693
+ }
694
+ .prn-list-label {
695
+ padding: 0 4px 6px;
696
+ font: var(--prn-text-footnote);
697
+ font-weight: 590;
698
+ text-transform: uppercase;
699
+ letter-spacing: 0.04em;
700
+ color: var(--prn-label-3);
701
+ }
702
+ .prn-list-rows {
703
+ display: flex;
704
+ flex-direction: column;
705
+ background: var(--prn-bg-elevated);
706
+ border: var(--prn-card-border);
707
+ border-radius: var(--prn-radius);
708
+ overflow: hidden;
709
+ }
710
+ .prn-list-rows > .prn-row + .prn-row {
711
+ border-top: 1px solid var(--prn-separator);
712
+ }
713
+ .prn-list[data-inset] .prn-list-rows > .prn-row + .prn-row {
714
+ border-top-color: transparent;
715
+ background-clip: padding-box;
716
+ position: relative;
717
+ }
718
+ .prn-list[data-inset] .prn-list-rows > .prn-row + .prn-row::before {
719
+ content: "";
720
+ position: absolute;
721
+ top: 0;
722
+ left: 16px;
723
+ right: 0;
724
+ border-top: 1px solid var(--prn-separator);
725
+ }
726
+ .prn-row {
727
+ display: flex;
728
+ align-items: center;
729
+ gap: 12px;
730
+ width: 100%;
731
+ padding: 11px 14px;
732
+ text-align: left;
733
+ background: transparent;
734
+ color: var(--prn-label);
735
+ font: var(--prn-text-body);
736
+ }
737
+ .prn-row[data-active] {
738
+ background: var(--prn-accent-soft);
739
+ }
740
+ .prn-row-pressable {
741
+ border: none;
742
+ cursor: pointer;
743
+ font-family: inherit;
744
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
745
+ }
746
+ .prn-row-pressable[data-hovered] {
747
+ background: var(--prn-hover);
748
+ }
749
+ .prn-row-pressable[data-pressed] {
750
+ background: var(--prn-pressed);
751
+ }
752
+ .prn-row-pressable[data-active][data-hovered] {
753
+ background: var(--prn-accent-soft);
754
+ }
755
+ .prn-row-pressable[data-focus-visible] {
756
+ outline: none;
757
+ box-shadow: var(--prn-focus);
758
+ z-index: 1;
759
+ }
760
+ .prn-row-pressable[data-disabled] {
761
+ opacity: 0.45;
762
+ cursor: not-allowed;
763
+ }
764
+ .prn-row-leading {
765
+ display: inline-flex;
766
+ align-items: center;
767
+ justify-content: center;
768
+ flex: none;
769
+ color: var(--prn-label-2);
770
+ }
771
+ .prn-row-main {
772
+ display: flex;
773
+ flex-direction: column;
774
+ gap: 1px;
775
+ min-width: 0;
776
+ flex: 1;
777
+ }
778
+ .prn-row-title {
779
+ font: var(--prn-text-body);
780
+ color: var(--prn-label);
781
+ overflow: hidden;
782
+ text-overflow: ellipsis;
783
+ white-space: nowrap;
784
+ }
785
+ .prn-row-subtitle {
786
+ font: var(--prn-text-footnote);
787
+ color: var(--prn-label-3);
788
+ overflow: hidden;
789
+ text-overflow: ellipsis;
790
+ white-space: nowrap;
791
+ }
792
+ .prn-row-trailing {
793
+ display: inline-flex;
794
+ align-items: center;
795
+ gap: 6px;
796
+ flex: none;
797
+ color: var(--prn-label-2);
798
+ font: var(--prn-text-subhead);
799
+ }
800
+ .prn-sidebar {
801
+ display: flex;
802
+ flex-direction: column;
803
+ width: 248px;
804
+ height: 100%;
805
+ background: var(--prn-bg-sidebar);
806
+ -webkit-backdrop-filter: var(--prn-blur);
807
+ backdrop-filter: var(--prn-blur);
808
+ border-right: 1px solid var(--prn-separator);
809
+ }
810
+ .prn-sidebar-header {
811
+ padding: 14px 16px;
812
+ font: var(--prn-text-headline);
813
+ color: var(--prn-label);
814
+ }
815
+ .prn-sidebar-scroll {
816
+ flex: 1;
817
+ overflow-y: auto;
818
+ padding: 6px 10px;
819
+ display: flex;
820
+ flex-direction: column;
821
+ gap: 14px;
822
+ }
823
+ .prn-sidebar-group {
824
+ display: flex;
825
+ flex-direction: column;
826
+ gap: 1px;
827
+ }
828
+ .prn-sidebar-group-label {
829
+ padding: 4px 8px;
830
+ font: var(--prn-text-footnote);
831
+ font-weight: 590;
832
+ text-transform: uppercase;
833
+ letter-spacing: 0.04em;
834
+ color: var(--prn-label-2);
835
+ }
836
+ .prn-sidebar-group-items {
837
+ display: flex;
838
+ flex-direction: column;
839
+ gap: 1px;
840
+ }
841
+ .prn-sidebar-group-toggle {
842
+ display: flex;
843
+ align-items: center;
844
+ gap: 4px;
845
+ width: 100%;
846
+ border: none;
847
+ background: transparent;
848
+ cursor: pointer;
849
+ text-align: left;
850
+ border-radius: var(--prn-radius-xs);
851
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
852
+ }
853
+ .prn-sidebar-group-toggle[data-hovered] {
854
+ background: var(--prn-hover);
855
+ }
856
+ .prn-sidebar-group-toggle[data-pressed] {
857
+ background: var(--prn-pressed);
858
+ }
859
+ .prn-sidebar-group-toggle[data-focus-visible] {
860
+ outline: none;
861
+ box-shadow: var(--prn-focus);
862
+ }
863
+ .prn-sidebar-group-chevron {
864
+ display: inline-flex;
865
+ flex: none;
866
+ font-size: 0.9em;
867
+ color: var(--prn-label-3);
868
+ transition: transform var(--prn-dur-fast) var(--prn-ease-out);
869
+ transform: rotate(90deg);
870
+ }
871
+ .prn-sidebar-group-toggle[data-collapsed] .prn-sidebar-group-chevron {
872
+ transform: rotate(0deg);
873
+ }
874
+ .prn-sidebar-group-label-text {
875
+ flex: 1;
876
+ min-width: 0;
877
+ }
878
+ .prn-sidebar-item {
879
+ display: flex;
880
+ align-items: center;
881
+ gap: 9px;
882
+ width: 100%;
883
+ padding: 7px 10px;
884
+ border: none;
885
+ border-radius: var(--prn-radius-sm);
886
+ background: transparent;
887
+ color: var(--prn-label);
888
+ font: var(--prn-text-callout);
889
+ font-weight: 500;
890
+ text-align: left;
891
+ cursor: pointer;
892
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
893
+ }
894
+ .prn-sidebar-item[data-hovered] {
895
+ background: var(--prn-hover);
896
+ }
897
+ .prn-sidebar-item[data-pressed] {
898
+ background: var(--prn-pressed);
899
+ }
900
+ .prn-sidebar-item[data-active] {
901
+ background: var(--prn-accent-soft);
902
+ color: var(--prn-accent-strong);
903
+ font-weight: 600;
904
+ }
905
+ .prn-sidebar-item[data-focus-visible] {
906
+ outline: none;
907
+ box-shadow: var(--prn-focus);
908
+ }
909
+ .prn-sidebar-item-icon {
910
+ display: inline-flex;
911
+ align-items: center;
912
+ justify-content: center;
913
+ width: 20px;
914
+ flex: none;
915
+ color: inherit;
916
+ }
917
+ .prn-sidebar-item-label {
918
+ flex: 1;
919
+ min-width: 0;
920
+ overflow: hidden;
921
+ text-overflow: ellipsis;
922
+ white-space: nowrap;
923
+ }
924
+ .prn-sidebar-item-trailing {
925
+ flex: none;
926
+ font: var(--prn-text-caption);
927
+ color: var(--prn-label-3);
928
+ }
929
+ .prn-sidebar-footer {
930
+ padding: 10px 14px;
931
+ border-top: 1px solid var(--prn-separator);
932
+ }
933
+ .prn-toolbar {
934
+ display: flex;
935
+ align-items: center;
936
+ gap: 12px;
937
+ min-height: 52px;
938
+ padding: 8px 18px;
939
+ background: var(--prn-bg-bar);
940
+ -webkit-backdrop-filter: var(--prn-blur);
941
+ backdrop-filter: var(--prn-blur);
942
+ box-shadow: var(--prn-shadow-bar);
943
+ }
944
+ .prn-toolbar-leading {
945
+ display: inline-flex;
946
+ align-items: center;
947
+ flex: none;
948
+ }
949
+ .prn-toolbar-titles {
950
+ display: flex;
951
+ flex-direction: column;
952
+ gap: 1px;
953
+ min-width: 0;
954
+ flex: 1;
955
+ }
956
+ .prn-toolbar-title {
957
+ font: var(--prn-text-title-3);
958
+ color: var(--prn-label);
959
+ overflow: hidden;
960
+ text-overflow: ellipsis;
961
+ white-space: nowrap;
962
+ }
963
+ .prn-toolbar-subtitle {
964
+ font: var(--prn-text-footnote);
965
+ color: var(--prn-label-3);
966
+ }
967
+ .prn-toolbar-actions {
968
+ display: inline-flex;
969
+ align-items: center;
970
+ gap: 8px;
971
+ flex: none;
972
+ }
973
+ .prn-empty {
974
+ display: flex;
975
+ flex-direction: column;
976
+ align-items: center;
977
+ text-align: center;
978
+ gap: 8px;
979
+ padding: 48px 24px;
980
+ }
981
+ .prn-empty-icon {
982
+ display: inline-flex;
983
+ align-items: center;
984
+ justify-content: center;
985
+ width: 56px;
986
+ height: 56px;
987
+ margin-bottom: 4px;
988
+ border-radius: var(--prn-radius-lg);
989
+ background: var(--prn-fill);
990
+ color: var(--prn-label-3);
991
+ font-size: 1.6rem;
992
+ }
993
+ .prn-empty-title {
994
+ font: var(--prn-text-headline);
995
+ color: var(--prn-label);
996
+ }
997
+ .prn-empty-desc {
998
+ max-width: 36ch;
999
+ font: var(--prn-text-callout);
1000
+ color: var(--prn-label-2);
1001
+ }
1002
+ .prn-empty-action {
1003
+ margin-top: 8px;
1004
+ }
1005
+ .prn-notice {
1006
+ display: flex;
1007
+ align-items: flex-start;
1008
+ gap: 10px;
1009
+ padding: 12px 14px;
1010
+ border-radius: var(--prn-radius-md);
1011
+ color: var(--prn-label);
1012
+ }
1013
+ .prn-notice[data-tone=info] {
1014
+ background: var(--prn-tint-info);
1015
+ }
1016
+ .prn-notice[data-tone=positive] {
1017
+ background: var(--prn-tint-positive);
1018
+ }
1019
+ .prn-notice[data-tone=critical] {
1020
+ background: var(--prn-tint-critical);
1021
+ }
1022
+ .prn-notice[data-tone=negative] {
1023
+ background: var(--prn-tint-negative);
1024
+ }
1025
+ .prn-notice-icon {
1026
+ display: inline-flex;
1027
+ align-items: center;
1028
+ justify-content: center;
1029
+ width: 20px;
1030
+ height: 20px;
1031
+ flex: none;
1032
+ border-radius: var(--prn-radius-pill);
1033
+ font-size: 0.78rem;
1034
+ font-weight: 700;
1035
+ line-height: 1;
1036
+ }
1037
+ .prn-notice[data-tone=info] .prn-notice-icon {
1038
+ background: var(--prn-blue);
1039
+ color: #fff;
1040
+ }
1041
+ .prn-notice[data-tone=positive] .prn-notice-icon {
1042
+ background: var(--prn-green);
1043
+ color: #fff;
1044
+ }
1045
+ .prn-notice[data-tone=critical] .prn-notice-icon {
1046
+ background: var(--prn-orange);
1047
+ color: var(--prn-on-status-fill);
1048
+ }
1049
+ .prn-notice[data-tone=negative] .prn-notice-icon {
1050
+ background: var(--prn-red);
1051
+ color: #fff;
1052
+ }
1053
+ .prn-notice-body {
1054
+ display: flex;
1055
+ flex-direction: column;
1056
+ gap: 2px;
1057
+ min-width: 0;
1058
+ }
1059
+ .prn-notice-title {
1060
+ font: var(--prn-text-subhead);
1061
+ font-weight: 600;
1062
+ color: var(--prn-label);
1063
+ }
1064
+ .prn-notice-text {
1065
+ font: var(--prn-text-footnote);
1066
+ color: var(--prn-label-2);
1067
+ }
1068
+ .prn-dl {
1069
+ margin: 0;
1070
+ display: flex;
1071
+ flex-direction: column;
1072
+ gap: 12px;
1073
+ }
1074
+ .prn-dl[data-layout=inline] {
1075
+ gap: 8px;
1076
+ }
1077
+ .prn-field {
1078
+ display: flex;
1079
+ flex-direction: column;
1080
+ gap: 2px;
1081
+ min-width: 0;
1082
+ }
1083
+ .prn-dl[data-layout=inline] .prn-field {
1084
+ flex-direction: row;
1085
+ align-items: baseline;
1086
+ justify-content: space-between;
1087
+ gap: 16px;
1088
+ }
1089
+ .prn-field-label {
1090
+ margin: 0;
1091
+ font: var(--prn-text-footnote);
1092
+ font-weight: 590;
1093
+ color: var(--prn-label-2);
1094
+ }
1095
+ .prn-field-value {
1096
+ margin: 0;
1097
+ font: var(--prn-text-body);
1098
+ color: var(--prn-label);
1099
+ min-width: 0;
1100
+ overflow-wrap: anywhere;
1101
+ }
1102
+ .prn-dl[data-layout=inline] .prn-field-value {
1103
+ text-align: right;
1104
+ }
1105
+
1106
+ /* src/composites/appshell.css */
1107
+ .prn-appshell {
1108
+ display: grid;
1109
+ grid-template-rows: auto 1fr;
1110
+ min-height: 100%;
1111
+ height: 100%;
1112
+ background: var(--prn-app-bg);
1113
+ color: var(--prn-label);
1114
+ }
1115
+ .prn-shellbar {
1116
+ position: sticky;
1117
+ top: 0;
1118
+ z-index: 30;
1119
+ display: flex;
1120
+ align-items: center;
1121
+ gap: 8px;
1122
+ height: 52px;
1123
+ padding: 0 10px;
1124
+ }
1125
+ .prn-shellbar-toggle,
1126
+ .prn-shellbar-btn,
1127
+ .prn-shellbar-searchtoggle {
1128
+ position: relative;
1129
+ display: inline-flex;
1130
+ align-items: center;
1131
+ justify-content: center;
1132
+ width: 36px;
1133
+ height: 36px;
1134
+ flex: 0 0 auto;
1135
+ border: none;
1136
+ border-radius: var(--prn-radius-sm);
1137
+ background: transparent;
1138
+ color: var(--prn-label);
1139
+ cursor: pointer;
1140
+ }
1141
+ .prn-shellbar-toggle:hover,
1142
+ .prn-shellbar-btn:hover,
1143
+ .prn-shellbar-searchtoggle:hover {
1144
+ background: var(--prn-hover);
1145
+ }
1146
+ .prn-shellbar-badge {
1147
+ position: absolute;
1148
+ top: 2px;
1149
+ right: 2px;
1150
+ min-width: 16px;
1151
+ height: 16px;
1152
+ padding: 0 4px;
1153
+ border-radius: var(--prn-radius-pill);
1154
+ background: var(--prn-red);
1155
+ color: #fff;
1156
+ font: var(--prn-text-caption);
1157
+ line-height: 16px;
1158
+ text-align: center;
1159
+ }
1160
+ .prn-shellbar-logo {
1161
+ display: inline-flex;
1162
+ align-items: center;
1163
+ flex: 0 0 auto;
1164
+ }
1165
+ .prn-shellbar-logobtn {
1166
+ border: none;
1167
+ background: transparent;
1168
+ padding: 4px;
1169
+ border-radius: var(--prn-radius-sm);
1170
+ cursor: pointer;
1171
+ color: var(--prn-label);
1172
+ }
1173
+ .prn-shellbar-logobtn:hover {
1174
+ background: var(--prn-hover);
1175
+ }
1176
+ .prn-shellbar-titles {
1177
+ display: flex;
1178
+ flex-direction: column;
1179
+ justify-content: center;
1180
+ min-width: 0;
1181
+ flex: 0 1 auto;
1182
+ }
1183
+ .prn-shellbar-title {
1184
+ font: var(--prn-text-headline);
1185
+ color: var(--prn-label);
1186
+ white-space: nowrap;
1187
+ overflow: hidden;
1188
+ text-overflow: ellipsis;
1189
+ }
1190
+ .prn-shellbar-subtitle {
1191
+ font: var(--prn-text-footnote);
1192
+ color: var(--prn-label-2);
1193
+ white-space: nowrap;
1194
+ overflow: hidden;
1195
+ text-overflow: ellipsis;
1196
+ }
1197
+ .prn-shellbar-titlebtn.prn-button {
1198
+ display: inline-flex;
1199
+ align-items: center;
1200
+ gap: 4px;
1201
+ padding: 2px 6px;
1202
+ min-height: 0;
1203
+ background: transparent;
1204
+ border: none;
1205
+ box-shadow: none;
1206
+ color: var(--prn-label);
1207
+ }
1208
+ .prn-shellbar-titlebtn.prn-button:hover {
1209
+ background: var(--prn-hover);
1210
+ }
1211
+ .prn-shellbar-btn.prn-button {
1212
+ padding: 0;
1213
+ min-height: 0;
1214
+ border: none;
1215
+ box-shadow: none;
1216
+ }
1217
+ .prn-shellbar-search {
1218
+ flex: 0 1 360px;
1219
+ min-width: 0;
1220
+ }
1221
+ .prn-shellbar-spacer {
1222
+ flex: 1 1 auto;
1223
+ }
1224
+ .prn-shellbar-items {
1225
+ display: inline-flex;
1226
+ align-items: center;
1227
+ gap: 2px;
1228
+ }
1229
+ .prn-shellbar-overflow {
1230
+ display: none;
1231
+ }
1232
+ .prn-shellbar-searchtoggle {
1233
+ display: none;
1234
+ }
1235
+ .prn-shellbar-user {
1236
+ display: inline-flex;
1237
+ align-items: center;
1238
+ flex: 0 0 auto;
1239
+ }
1240
+ .prn-shellbar-userbtn {
1241
+ border: none;
1242
+ background: transparent;
1243
+ padding: 2px;
1244
+ border-radius: var(--prn-radius-pill);
1245
+ cursor: pointer;
1246
+ }
1247
+ .prn-shellbar-actions {
1248
+ display: inline-flex;
1249
+ align-items: center;
1250
+ gap: 8px;
1251
+ flex: 0 0 auto;
1252
+ }
1253
+ .prn-menu-item > svg {
1254
+ margin-right: 8px;
1255
+ vertical-align: -3px;
1256
+ }
1257
+ .prn-shellbar-searchrow {
1258
+ padding: 8px 12px;
1259
+ border-bottom: 1px solid var(--prn-glass-border);
1260
+ background: var(--prn-bg-elevated);
1261
+ }
1262
+ .prn-appshell-body {
1263
+ display: grid;
1264
+ grid-template-columns: var(--prn-appshell-sidebar-w, 260px) 1fr;
1265
+ min-height: 0;
1266
+ }
1267
+ .prn-appshell[data-collapsed] .prn-appshell-body {
1268
+ grid-template-columns: 0 1fr;
1269
+ }
1270
+ .prn-appshell-sidebar {
1271
+ overflow: auto;
1272
+ min-height: 0;
1273
+ }
1274
+ .prn-appshell[data-collapsed] .prn-appshell-sidebar {
1275
+ overflow: hidden;
1276
+ }
1277
+ .prn-appshell-sidebar > .prn-sidebar {
1278
+ width: 100%;
1279
+ height: 100%;
1280
+ background: transparent;
1281
+ -webkit-backdrop-filter: none;
1282
+ backdrop-filter: none;
1283
+ border: 0;
1284
+ }
1285
+ .prn-appshell-content {
1286
+ overflow: auto;
1287
+ min-width: 0;
1288
+ min-height: 0;
1289
+ padding: 16px;
1290
+ }
1291
+ .prn-appshell-scrim {
1292
+ display: none;
1293
+ }
1294
+ @media (max-width: 1024px) {
1295
+ .prn-shellbar-subtitle {
1296
+ display: none;
1297
+ }
1298
+ .prn-shellbar-items {
1299
+ display: none;
1300
+ }
1301
+ .prn-shellbar-overflow {
1302
+ display: inline-flex;
1303
+ }
1304
+ }
1305
+ @media (max-width: 767px) {
1306
+ .prn-shellbar-search {
1307
+ display: none;
1308
+ }
1309
+ .prn-shellbar-searchtoggle {
1310
+ display: inline-flex;
1311
+ }
1312
+ .prn-shellbar-actions,
1313
+ .prn-shellbar-productswitch {
1314
+ display: none;
1315
+ }
1316
+ .prn-shellbar {
1317
+ gap: 4px;
1318
+ padding: 0 6px;
1319
+ }
1320
+ .prn-appshell-body {
1321
+ grid-template-columns: 1fr;
1322
+ }
1323
+ .prn-appshell[data-collapsed] .prn-appshell-body {
1324
+ grid-template-columns: 1fr;
1325
+ }
1326
+ .prn-appshell-sidebar {
1327
+ position: fixed;
1328
+ top: 52px;
1329
+ bottom: 0;
1330
+ left: 0;
1331
+ width: 82%;
1332
+ max-width: 320px;
1333
+ z-index: 50;
1334
+ transform: translateX(-100%);
1335
+ transition: transform var(--prn-dur) var(--prn-ease-out);
1336
+ border-right: 1px solid var(--prn-glass-border);
1337
+ }
1338
+ .prn-appshell:not([data-collapsed]) .prn-appshell-sidebar {
1339
+ transform: translateX(0);
1340
+ }
1341
+ .prn-appshell:not([data-collapsed]) .prn-appshell-scrim {
1342
+ display: block;
1343
+ position: fixed;
1344
+ inset: 52px 0 0 0;
1345
+ z-index: 40;
1346
+ background: var(--prn-scrim);
1347
+ }
1348
+ }
1349
+ @media (prefers-reduced-motion: reduce) {
1350
+ .prn-appshell-sidebar {
1351
+ transition: none;
1352
+ }
1353
+ }
1354
+
1355
+ /* src/charts/charts.css */
1356
+ .prn-chart {
1357
+ display: block;
1358
+ width: 100%;
1359
+ height: auto;
1360
+ overflow: visible;
1361
+ }
1362
+ .prn-chart-sparkline {
1363
+ height: 100%;
1364
+ }
1365
+ .prn-chart-grid {
1366
+ stroke: var(--prn-separator);
1367
+ stroke-width: 1;
1368
+ vector-effect: non-scaling-stroke;
1369
+ }
1370
+ .prn-chart-axis {
1371
+ stroke: var(--prn-separator-opaque);
1372
+ stroke-width: 1;
1373
+ vector-effect: non-scaling-stroke;
1374
+ }
1375
+ .prn-chart-axislabel {
1376
+ font: var(--prn-text-caption);
1377
+ fill: var(--prn-label-3);
1378
+ }
1379
+ .prn-chart-donut {
1380
+ display: flex;
1381
+ align-items: center;
1382
+ gap: calc(var(--prn-space) * 2);
1383
+ flex-wrap: wrap;
1384
+ }
1385
+ .prn-chart-donut > .prn-chart {
1386
+ flex: 0 0 auto;
1387
+ width: 160px;
1388
+ max-width: 100%;
1389
+ }
1390
+ .prn-chart-donut-center {
1391
+ display: flex;
1392
+ flex-direction: column;
1393
+ align-items: center;
1394
+ justify-content: center;
1395
+ height: 100%;
1396
+ text-align: center;
1397
+ font: var(--prn-text-title-3);
1398
+ color: var(--prn-label);
1399
+ line-height: 1.1;
1400
+ }
1401
+ .prn-chart-legend {
1402
+ list-style: none;
1403
+ margin: 0;
1404
+ padding: 0;
1405
+ display: flex;
1406
+ flex-direction: column;
1407
+ gap: 6px;
1408
+ min-width: 0;
1409
+ }
1410
+ .prn-chart-legend-item {
1411
+ display: flex;
1412
+ align-items: center;
1413
+ gap: 8px;
1414
+ font: var(--prn-text-subhead);
1415
+ color: var(--prn-label);
1416
+ }
1417
+ .prn-chart-legend-swatch {
1418
+ flex: 0 0 auto;
1419
+ width: 10px;
1420
+ height: 10px;
1421
+ border-radius: 3px;
1422
+ }
1423
+ .prn-chart-legend-label {
1424
+ color: var(--prn-label-2);
1425
+ overflow: hidden;
1426
+ text-overflow: ellipsis;
1427
+ white-space: nowrap;
1428
+ }
1429
+ .prn-chart-legend-value {
1430
+ margin-left: auto;
1431
+ font-weight: 600;
1432
+ color: var(--prn-label);
1433
+ }
1434
+ .prn-chart-empty {
1435
+ display: flex;
1436
+ flex-direction: column;
1437
+ align-items: center;
1438
+ justify-content: center;
1439
+ gap: 8px;
1440
+ min-height: 120px;
1441
+ padding: var(--prn-space);
1442
+ border-radius: var(--prn-radius-md);
1443
+ color: var(--prn-label-3);
1444
+ }
1445
+ .prn-chart-empty--compact {
1446
+ min-height: 0;
1447
+ flex-direction: row;
1448
+ padding: 0;
1449
+ }
1450
+ .prn-chart-empty-icon {
1451
+ width: 40px;
1452
+ height: 40px;
1453
+ fill: var(--prn-label-4);
1454
+ }
1455
+ .prn-chart-empty-text {
1456
+ font: var(--prn-text-footnote);
1457
+ color: var(--prn-label-3);
1458
+ }
1459
+
1460
+ /* src/launchpad/launchpad.css */
1461
+ .prn-launchpad {
1462
+ display: flex;
1463
+ flex-direction: column;
1464
+ gap: 28px;
1465
+ }
1466
+ .prn-lp-section {
1467
+ display: flex;
1468
+ flex-direction: column;
1469
+ gap: 12px;
1470
+ }
1471
+ .prn-lp-section-head {
1472
+ display: flex;
1473
+ align-items: baseline;
1474
+ gap: 8px;
1475
+ padding: 0 2px;
1476
+ }
1477
+ .prn-lp-section-icon {
1478
+ display: inline-flex;
1479
+ align-self: center;
1480
+ color: var(--prn-label-2);
1481
+ }
1482
+ .prn-lp-section-title {
1483
+ font: var(--prn-text-title-3);
1484
+ color: var(--prn-label);
1485
+ margin: 0;
1486
+ }
1487
+ .prn-lp-section-sub {
1488
+ font: var(--prn-text-subhead);
1489
+ color: var(--prn-label-2);
1490
+ }
1491
+ .prn-lp-grid {
1492
+ display: grid;
1493
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1494
+ gap: 16px;
1495
+ outline: none;
1496
+ }
1497
+ .prn-lp-cell {
1498
+ outline: none;
1499
+ min-width: 0;
1500
+ list-style: none;
1501
+ display: flex;
1502
+ flex-direction: column;
1503
+ transition:
1504
+ transform var(--prn-dur) var(--prn-ease-out),
1505
+ box-shadow var(--prn-dur-fast),
1506
+ opacity var(--prn-dur-fast);
1507
+ }
1508
+ .prn-lp-cell[data-focus-visible] {
1509
+ box-shadow: var(--prn-focus);
1510
+ border-radius: var(--prn-radius-card);
1511
+ }
1512
+ .prn-lp-cell[data-dragging] {
1513
+ opacity: 0.9;
1514
+ transform: scale(1.03);
1515
+ box-shadow: var(--prn-shadow-raised);
1516
+ cursor: grabbing;
1517
+ }
1518
+ .prn-launchpad[data-editable] .prn-lp-cell {
1519
+ cursor: grab;
1520
+ }
1521
+ .prn-lp-drop {
1522
+ outline: none;
1523
+ }
1524
+ .prn-lp-drop[data-drop-target] {
1525
+ outline: 2.5px solid var(--prn-accent);
1526
+ outline-offset: 2px;
1527
+ border-radius: var(--prn-radius-card);
1528
+ background: var(--prn-accent-soft);
1529
+ }
1530
+ .prn-lp-cell > * {
1531
+ flex: 1 1 auto;
1532
+ min-height: 0;
1533
+ min-width: 0;
1534
+ }
1535
+ .prn-lp-cell > div:not(.prn-lp-card) {
1536
+ display: flex;
1537
+ flex-direction: column;
1538
+ }
1539
+ .prn-lp-card {
1540
+ flex: 1 1 auto;
1541
+ width: 100%;
1542
+ min-width: 0;
1543
+ box-sizing: border-box;
1544
+ }
1545
+ .prn-lp-card,
1546
+ .prn-lp-card * {
1547
+ min-width: 0;
1548
+ }
1549
+ .prn-lp-card {
1550
+ -webkit-backdrop-filter: none;
1551
+ backdrop-filter: none;
1552
+ }
1553
+ .prn-lp-list .prn-list {
1554
+ width: 100%;
1555
+ }
1556
+ .prn-lp-list .prn-list-rows,
1557
+ .prn-lp-list .prn-row {
1558
+ box-sizing: border-box;
1559
+ }
1560
+ .prn-lp-cell[data-span="2"] {
1561
+ grid-column: span 2;
1562
+ }
1563
+ .prn-lp-cell[data-span="3"] {
1564
+ grid-column: span 3;
1565
+ }
1566
+ .prn-lp-cell[data-span="4"] {
1567
+ grid-column: span 4;
1568
+ }
1569
+ .prn-lp-nav {
1570
+ display: flex;
1571
+ flex-direction: column;
1572
+ gap: 6px;
1573
+ position: relative;
1574
+ }
1575
+ .prn-lp-nav-icon {
1576
+ display: inline-flex;
1577
+ color: var(--prn-label);
1578
+ }
1579
+ .prn-lp-nav-title {
1580
+ font: var(--prn-text-headline);
1581
+ color: var(--prn-label);
1582
+ overflow: hidden;
1583
+ text-overflow: ellipsis;
1584
+ white-space: nowrap;
1585
+ }
1586
+ .prn-lp-nav-desc {
1587
+ font: var(--prn-text-subhead);
1588
+ color: var(--prn-label-2);
1589
+ overflow-wrap: anywhere;
1590
+ }
1591
+ .prn-lp-nav-badge {
1592
+ position: absolute;
1593
+ top: 0;
1594
+ right: 0;
1595
+ }
1596
+ .prn-lp-trend-head {
1597
+ display: flex;
1598
+ align-items: baseline;
1599
+ gap: 8px;
1600
+ margin-bottom: 6px;
1601
+ }
1602
+ .prn-lp-trend-value {
1603
+ font: var(--prn-text-title);
1604
+ color: var(--prn-label);
1605
+ font-variant-numeric: tabular-nums;
1606
+ }
1607
+ .prn-lp-delta {
1608
+ display: inline-flex;
1609
+ align-items: center;
1610
+ gap: 2px;
1611
+ font: var(--prn-text-subhead);
1612
+ color: var(--prn-label-2);
1613
+ }
1614
+ .prn-lp-delta.is-up {
1615
+ color: var(--prn-green);
1616
+ }
1617
+ .prn-lp-delta.is-down {
1618
+ color: var(--prn-red);
1619
+ }
1620
+ .prn-lp-trend-chart {
1621
+ margin: 0 -4px -4px;
1622
+ }
1623
+ .prn-lp-trend-chart svg {
1624
+ width: 100%;
1625
+ height: auto;
1626
+ }
1627
+ .prn-lp-list-title {
1628
+ display: inline-flex;
1629
+ align-items: center;
1630
+ gap: 8px;
1631
+ }
1632
+ .prn-lp-list-count {
1633
+ font: var(--prn-text-footnote);
1634
+ color: var(--prn-label-2);
1635
+ background: var(--prn-fill);
1636
+ border-radius: var(--prn-radius-pill);
1637
+ padding: 1px 8px;
1638
+ }
1639
+ .prn-lp-expand {
1640
+ position: relative;
1641
+ display: inline-flex;
1642
+ align-items: center;
1643
+ justify-content: center;
1644
+ width: 28px;
1645
+ height: 28px;
1646
+ border: none;
1647
+ border-radius: var(--prn-radius-sm);
1648
+ background: transparent;
1649
+ color: var(--prn-label-2);
1650
+ cursor: pointer;
1651
+ outline: none;
1652
+ }
1653
+ .prn-lp-expand::after {
1654
+ content: "";
1655
+ position: absolute;
1656
+ inset: -8px;
1657
+ }
1658
+ .prn-lp-expand:hover {
1659
+ background: var(--prn-hover);
1660
+ color: var(--prn-label);
1661
+ }
1662
+ .prn-lp-expand[data-focus-visible] {
1663
+ box-shadow: var(--prn-focus);
1664
+ }
1665
+ .prn-lp-showall {
1666
+ display: inline-flex;
1667
+ align-items: center;
1668
+ gap: 4px;
1669
+ margin-top: 6px;
1670
+ min-height: var(--prn-hit);
1671
+ padding: 8px 2px;
1672
+ border: none;
1673
+ background: transparent;
1674
+ color: var(--prn-accent);
1675
+ font: var(--prn-text-subhead);
1676
+ cursor: pointer;
1677
+ outline: none;
1678
+ }
1679
+ .prn-lp-showall[data-focus-visible] {
1680
+ box-shadow: var(--prn-focus);
1681
+ border-radius: var(--prn-radius-sm);
1682
+ }
1683
+ .prn-lp-modal {
1684
+ min-width: min(560px, 92vw);
1685
+ }
1686
+ .prn-lp-detail {
1687
+ display: flex;
1688
+ flex-direction: column;
1689
+ gap: 12px;
1690
+ }
1691
+ .prn-lp-detail svg {
1692
+ max-width: 100%;
1693
+ height: auto;
1694
+ }
1695
+ @media (max-width: 1024px) {
1696
+ .prn-lp-grid {
1697
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1698
+ }
1699
+ .prn-lp-cell[data-span="4"] {
1700
+ grid-column: span 3;
1701
+ }
1702
+ }
1703
+ @media (max-width: 900px) {
1704
+ .prn-lp-grid {
1705
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1706
+ }
1707
+ .prn-lp-cell[data-span="3"],
1708
+ .prn-lp-cell[data-span="4"] {
1709
+ grid-column: span 2;
1710
+ }
1711
+ }
1712
+ @media (max-width: 640px) {
1713
+ .prn-launchpad {
1714
+ gap: 22px;
1715
+ }
1716
+ .prn-lp-grid {
1717
+ grid-template-columns: 1fr;
1718
+ gap: 12px;
1719
+ }
1720
+ .prn-lp-cell,
1721
+ .prn-lp-cell[data-span="2"],
1722
+ .prn-lp-cell[data-span="3"],
1723
+ .prn-lp-cell[data-span="4"] {
1724
+ grid-column: 1 / -1;
1725
+ }
1726
+ .prn-lp-cell:hover {
1727
+ transform: none;
1728
+ }
1729
+ }
1730
+ @media (prefers-reduced-motion: reduce) {
1731
+ .prn-lp-cell {
1732
+ transition: none;
1733
+ }
1734
+ .prn-lp-cell[data-dragging] {
1735
+ transform: none;
1736
+ box-shadow: none;
1737
+ }
1738
+ }
1739
+
1740
+ /* src/data/data.css */
1741
+ .prn-table {
1742
+ position: relative;
1743
+ display: flex;
1744
+ flex-direction: column;
1745
+ width: 100%;
1746
+ background: var(--prn-bg-elevated);
1747
+ border: var(--prn-card-border);
1748
+ border-radius: var(--prn-radius);
1749
+ overflow: hidden;
1750
+ font: var(--prn-text-subhead);
1751
+ color: var(--prn-label);
1752
+ }
1753
+ .prn-table-scroll {
1754
+ position: relative;
1755
+ width: 100%;
1756
+ overflow: auto;
1757
+ }
1758
+ .prn-table-grid {
1759
+ display: grid;
1760
+ width: 100%;
1761
+ }
1762
+ .prn-table-head {
1763
+ display: contents;
1764
+ }
1765
+ .prn-th {
1766
+ position: sticky;
1767
+ top: 0;
1768
+ z-index: 2;
1769
+ display: flex;
1770
+ align-items: center;
1771
+ gap: 6px;
1772
+ min-height: 40px;
1773
+ padding: 0 14px;
1774
+ background: var(--prn-bg-head);
1775
+ border-bottom: 1px solid var(--prn-separator);
1776
+ font: var(--prn-text-footnote);
1777
+ font-weight: 600;
1778
+ color: var(--prn-label-2);
1779
+ user-select: none;
1780
+ white-space: nowrap;
1781
+ }
1782
+ .prn-th[data-align=end] {
1783
+ justify-content: flex-end;
1784
+ }
1785
+ .prn-th[data-sortable] {
1786
+ cursor: pointer;
1787
+ }
1788
+ .prn-th[data-sortable]:hover {
1789
+ background: var(--prn-hover);
1790
+ color: var(--prn-label);
1791
+ }
1792
+ .prn-th[data-focus-visible] {
1793
+ box-shadow: var(--prn-focus);
1794
+ border-radius: var(--prn-radius-xs);
1795
+ }
1796
+ .prn-th[data-sorted] {
1797
+ color: var(--prn-label);
1798
+ }
1799
+ .prn-th-sort {
1800
+ display: inline-flex;
1801
+ width: 12px;
1802
+ font-size: 0.85em;
1803
+ line-height: 1;
1804
+ color: var(--prn-accent-strong);
1805
+ opacity: 0;
1806
+ transition: opacity var(--prn-dur-fast) var(--prn-ease-standard);
1807
+ }
1808
+ .prn-th[data-sorted] .prn-th-sort {
1809
+ opacity: 1;
1810
+ }
1811
+ .prn-th[data-sortable]:hover .prn-th-sort:not([data-active]) {
1812
+ opacity: 0.4;
1813
+ color: var(--prn-label-3);
1814
+ }
1815
+ .prn-th-select,
1816
+ .prn-td-select {
1817
+ justify-content: center;
1818
+ padding: 0 8px;
1819
+ }
1820
+ .prn-table-row {
1821
+ display: contents;
1822
+ }
1823
+ .prn-td {
1824
+ display: flex;
1825
+ align-items: center;
1826
+ min-height: 44px;
1827
+ padding: 8px 14px;
1828
+ border-bottom: 1px solid var(--prn-hairline);
1829
+ background: var(--prn-bg-elevated);
1830
+ font: var(--prn-text-subhead);
1831
+ color: var(--prn-label);
1832
+ overflow: hidden;
1833
+ text-overflow: ellipsis;
1834
+ white-space: nowrap;
1835
+ }
1836
+ .prn-td[data-align=end] {
1837
+ justify-content: flex-end;
1838
+ font-variant-numeric: tabular-nums;
1839
+ font-feature-settings: "tnum" 1;
1840
+ }
1841
+ .prn-table-row[data-interactive] .prn-td {
1842
+ cursor: pointer;
1843
+ }
1844
+ .prn-table-row[data-hovered] .prn-td {
1845
+ background: var(--prn-hover);
1846
+ }
1847
+ .prn-table-row[data-selected] .prn-td {
1848
+ background: var(--prn-accent-soft);
1849
+ }
1850
+ .prn-table-row[data-focus-visible] .prn-td {
1851
+ box-shadow: inset 0 0 0 2px var(--prn-accent);
1852
+ }
1853
+ .prn-table-row:last-child .prn-td {
1854
+ border-bottom: none;
1855
+ }
1856
+ .prn-table-row-focus {
1857
+ outline: none;
1858
+ }
1859
+ .prn-skel-line {
1860
+ height: 12px;
1861
+ width: 70%;
1862
+ border-radius: 6px;
1863
+ }
1864
+ .prn-td[data-align=end] .prn-skel-line {
1865
+ margin-left: auto;
1866
+ width: 48%;
1867
+ }
1868
+ .prn-table-empty {
1869
+ grid-column: 1 / -1;
1870
+ display: flex;
1871
+ flex-direction: column;
1872
+ align-items: center;
1873
+ justify-content: center;
1874
+ gap: 6px;
1875
+ padding: 48px 24px;
1876
+ text-align: center;
1877
+ color: var(--prn-label-3);
1878
+ }
1879
+ .prn-table-empty-title {
1880
+ font: var(--prn-text-headline);
1881
+ color: var(--prn-label-2);
1882
+ }
1883
+ .prn-table-empty-desc {
1884
+ font: var(--prn-text-footnote);
1885
+ }
1886
+ .prn-table-group {
1887
+ display: flex;
1888
+ align-items: center;
1889
+ gap: 8px;
1890
+ height: var(--prn-row-h, 44px);
1891
+ padding: 0 14px;
1892
+ font-weight: 600;
1893
+ background: var(--prn-fill);
1894
+ border-bottom: 1px solid var(--prn-separator);
1895
+ cursor: pointer;
1896
+ }
1897
+ .prn-table-group:focus-visible {
1898
+ outline: 2px solid var(--prn-accent);
1899
+ outline-offset: -2px;
1900
+ }
1901
+ .prn-group-chevron {
1902
+ width: 1em;
1903
+ color: var(--prn-label-2);
1904
+ }
1905
+ .prn-group-count {
1906
+ color: var(--prn-label-2);
1907
+ font-weight: 400;
1908
+ }
1909
+ .prn-group-aggs {
1910
+ margin-left: auto;
1911
+ display: flex;
1912
+ gap: 16px;
1913
+ font-variant-numeric: tabular-nums;
1914
+ font-feature-settings: "tnum" 1;
1915
+ }
1916
+ .prn-groupbar {
1917
+ display: flex;
1918
+ align-items: center;
1919
+ gap: 8px;
1920
+ padding: 8px 4px;
1921
+ flex-wrap: wrap;
1922
+ }
1923
+ .prn-groupbar-label {
1924
+ color: var(--prn-label-2);
1925
+ font: var(--prn-text-footnote);
1926
+ }
1927
+ .prn-groupbar-empty {
1928
+ color: var(--prn-label-3);
1929
+ }
1930
+ .prn-group-chip {
1931
+ display: inline-flex;
1932
+ align-items: center;
1933
+ gap: 6px;
1934
+ padding: 2px 8px;
1935
+ border-radius: var(--prn-radius-pill);
1936
+ background: var(--prn-fill);
1937
+ font: var(--prn-text-footnote);
1938
+ font-weight: 590;
1939
+ }
1940
+ .prn-group-chip-remove {
1941
+ border: 0;
1942
+ background: transparent;
1943
+ color: inherit;
1944
+ cursor: pointer;
1945
+ font-size: 15px;
1946
+ line-height: 1;
1947
+ }
1948
+ .prn-group-chip-remove:hover {
1949
+ color: var(--prn-label);
1950
+ }
1951
+ .prn-table-toolbar {
1952
+ display: flex;
1953
+ align-items: center;
1954
+ gap: 8px;
1955
+ padding: 4px 8px;
1956
+ flex-wrap: wrap;
1957
+ }
1958
+ .prn-table-toolbar .prn-groupbar {
1959
+ flex: 1 1 auto;
1960
+ padding: 4px 0;
1961
+ }
1962
+ .prn-colmenu {
1963
+ margin-left: auto;
1964
+ }
1965
+ .prn-colmenu-list {
1966
+ display: flex;
1967
+ flex-direction: column;
1968
+ gap: 2px;
1969
+ min-width: 220px;
1970
+ margin: 0;
1971
+ padding: 4px;
1972
+ list-style: none;
1973
+ }
1974
+ .prn-colmenu-row {
1975
+ display: flex;
1976
+ align-items: center;
1977
+ gap: 8px;
1978
+ padding: 4px 6px;
1979
+ border-radius: var(--prn-radius-xs);
1980
+ }
1981
+ .prn-colmenu-row:hover {
1982
+ background: var(--prn-hover);
1983
+ }
1984
+ .prn-colmenu-label {
1985
+ font: var(--prn-text-subhead);
1986
+ color: var(--prn-label);
1987
+ }
1988
+ .prn-colmenu-actions {
1989
+ margin-left: auto;
1990
+ display: inline-flex;
1991
+ gap: 2px;
1992
+ }
1993
+ .prn-colmenu-btn {
1994
+ display: inline-grid;
1995
+ place-items: center;
1996
+ width: 22px;
1997
+ height: 22px;
1998
+ border: none;
1999
+ border-radius: var(--prn-radius-xs);
2000
+ background: transparent;
2001
+ color: var(--prn-label-2);
2002
+ font-size: 13px;
2003
+ line-height: 1;
2004
+ cursor: pointer;
2005
+ }
2006
+ .prn-colmenu-btn:hover:not(:disabled) {
2007
+ background: var(--prn-fill-strong);
2008
+ color: var(--prn-label);
2009
+ }
2010
+ .prn-colmenu-btn:disabled {
2011
+ opacity: 0.35;
2012
+ cursor: default;
2013
+ }
2014
+ .prn-colmenu-btn[data-active] {
2015
+ color: var(--prn-accent-strong);
2016
+ background: var(--prn-accent-soft);
2017
+ }
2018
+ .prn-th[data-pinned],
2019
+ .prn-td[data-pinned] {
2020
+ background: inherit;
2021
+ }
2022
+ .prn-th[data-pinned] {
2023
+ background: var(--prn-bg-head);
2024
+ }
2025
+ .prn-td[data-pinned] {
2026
+ background: var(--prn-bg-elevated);
2027
+ }
2028
+ .prn-table-row[data-hovered] .prn-td[data-pinned] {
2029
+ background: var(--prn-hover);
2030
+ }
2031
+ .prn-table-row[data-selected] .prn-td[data-pinned] {
2032
+ background: var(--prn-accent-soft);
2033
+ }
2034
+ .prn-th[data-pinned=left],
2035
+ .prn-td[data-pinned=left] {
2036
+ box-shadow: 1px 0 0 var(--prn-separator);
2037
+ }
2038
+ .prn-th[data-pinned=right],
2039
+ .prn-td[data-pinned=right] {
2040
+ box-shadow: -1px 0 0 var(--prn-separator);
2041
+ }
2042
+ .prn-filterbar {
2043
+ display: flex;
2044
+ flex-direction: column;
2045
+ gap: 10px;
2046
+ width: 100%;
2047
+ }
2048
+ .prn-filterbar-row {
2049
+ display: flex;
2050
+ align-items: flex-end;
2051
+ gap: 12px;
2052
+ flex-wrap: wrap;
2053
+ }
2054
+ .prn-filter-field {
2055
+ display: flex;
2056
+ flex-direction: column;
2057
+ gap: 5px;
2058
+ min-width: 160px;
2059
+ }
2060
+ .prn-filter-field-label {
2061
+ font: var(--prn-text-footnote);
2062
+ font-weight: 590;
2063
+ color: var(--prn-label-2);
2064
+ }
2065
+ .prn-filter-field-control {
2066
+ display: flex;
2067
+ align-items: center;
2068
+ }
2069
+ .prn-filterbar-spacer {
2070
+ flex: 1 1 auto;
2071
+ }
2072
+ .prn-filterbar-actions {
2073
+ display: flex;
2074
+ align-items: center;
2075
+ gap: 8px;
2076
+ }
2077
+ .prn-filter-chips {
2078
+ display: flex;
2079
+ align-items: center;
2080
+ flex-wrap: wrap;
2081
+ gap: 8px;
2082
+ }
2083
+ .prn-filter-chip {
2084
+ display: inline-flex;
2085
+ align-items: center;
2086
+ gap: 6px;
2087
+ height: 28px;
2088
+ padding: 0 6px 0 12px;
2089
+ border: none;
2090
+ border-radius: var(--prn-radius-pill);
2091
+ background: var(--prn-accent-soft);
2092
+ color: var(--prn-accent-strong);
2093
+ font: var(--prn-text-footnote);
2094
+ font-weight: 590;
2095
+ white-space: nowrap;
2096
+ }
2097
+ .prn-filter-chip-label {
2098
+ opacity: 0.75;
2099
+ }
2100
+ .prn-filter-chip-value {
2101
+ font-weight: 600;
2102
+ }
2103
+ .prn-filter-chip-remove {
2104
+ display: inline-grid;
2105
+ place-items: center;
2106
+ width: 18px;
2107
+ height: 18px;
2108
+ border: none;
2109
+ border-radius: var(--prn-radius-pill);
2110
+ background: transparent;
2111
+ color: inherit;
2112
+ font-size: 14px;
2113
+ line-height: 1;
2114
+ cursor: pointer;
2115
+ opacity: 0.7;
2116
+ }
2117
+ .prn-filter-chip-remove:hover {
2118
+ background: var(--prn-fill-strong);
2119
+ opacity: 1;
2120
+ }
2121
+ .prn-filter-chip-remove[data-focus-visible] {
2122
+ box-shadow: var(--prn-focus);
2123
+ }
2124
+ .prn-filter-clear {
2125
+ border: none;
2126
+ background: transparent;
2127
+ color: var(--prn-accent-strong);
2128
+ font: var(--prn-text-footnote);
2129
+ font-weight: 590;
2130
+ cursor: pointer;
2131
+ padding: 0 6px;
2132
+ }
2133
+ .prn-filter-clear[data-focus-visible] {
2134
+ box-shadow: var(--prn-focus);
2135
+ border-radius: var(--prn-radius-xs);
2136
+ }
2137
+ .prn-filter-more {
2138
+ display: flex;
2139
+ flex-direction: column;
2140
+ gap: 14px;
2141
+ min-width: 240px;
2142
+ padding: 4px;
2143
+ }
2144
+ .prn-objectpage {
2145
+ display: flex;
2146
+ flex-direction: column;
2147
+ gap: 20px;
2148
+ width: 100%;
2149
+ }
2150
+ .prn-objectpage-head {
2151
+ display: flex;
2152
+ flex-direction: column;
2153
+ gap: 16px;
2154
+ padding: 20px 24px;
2155
+ background: var(--prn-bg-elevated);
2156
+ border: var(--prn-card-border);
2157
+ border-radius: var(--prn-radius);
2158
+ }
2159
+ .prn-objectpage-headrow {
2160
+ display: flex;
2161
+ align-items: flex-start;
2162
+ gap: 16px;
2163
+ flex-wrap: wrap;
2164
+ }
2165
+ .prn-objectpage-titles {
2166
+ display: flex;
2167
+ flex-direction: column;
2168
+ gap: 4px;
2169
+ min-width: 0;
2170
+ }
2171
+ .prn-objectpage-title {
2172
+ margin: 0;
2173
+ font: var(--prn-text-title);
2174
+ color: var(--prn-label);
2175
+ }
2176
+ .prn-objectpage-subtitle {
2177
+ font: var(--prn-text-subhead);
2178
+ color: var(--prn-label-2);
2179
+ }
2180
+ .prn-objectpage-status {
2181
+ margin-left: auto;
2182
+ }
2183
+ .prn-objectpage-actions {
2184
+ display: flex;
2185
+ align-items: center;
2186
+ gap: 8px;
2187
+ }
2188
+ .prn-status-badge {
2189
+ display: inline-flex;
2190
+ align-items: center;
2191
+ gap: 6px;
2192
+ height: 26px;
2193
+ padding: 0 12px;
2194
+ border-radius: var(--prn-radius-pill);
2195
+ font: var(--prn-text-footnote);
2196
+ font-weight: 600;
2197
+ white-space: nowrap;
2198
+ }
2199
+ .prn-status-badge[data-tone=positive] {
2200
+ background: var(--prn-tint-positive);
2201
+ color: var(--prn-green);
2202
+ }
2203
+ .prn-status-badge[data-tone=critical] {
2204
+ background: var(--prn-tint-critical);
2205
+ color: var(--prn-orange);
2206
+ }
2207
+ .prn-status-badge[data-tone=negative] {
2208
+ background: var(--prn-tint-negative);
2209
+ color: var(--prn-red);
2210
+ }
2211
+ .prn-status-badge[data-tone=info] {
2212
+ background: var(--prn-tint-info);
2213
+ color: var(--prn-blue);
2214
+ }
2215
+ .prn-status-badge[data-tone=neutral] {
2216
+ background: var(--prn-fill-strong);
2217
+ color: var(--prn-label-2);
2218
+ }
2219
+ .prn-status-dot {
2220
+ width: 7px;
2221
+ height: 7px;
2222
+ border-radius: 50%;
2223
+ background: currentColor;
2224
+ }
2225
+ .prn-objectpage-kpis {
2226
+ display: grid;
2227
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2228
+ gap: 12px;
2229
+ }
2230
+ .prn-kpi {
2231
+ display: flex;
2232
+ flex-direction: column;
2233
+ gap: 4px;
2234
+ padding: 12px 14px;
2235
+ background: var(--prn-fill);
2236
+ border-radius: var(--prn-radius-md);
2237
+ }
2238
+ .prn-kpi-label {
2239
+ font: var(--prn-text-footnote);
2240
+ color: var(--prn-label-2);
2241
+ }
2242
+ .prn-kpi-value {
2243
+ font: var(--prn-text-title-3);
2244
+ color: var(--prn-label);
2245
+ font-variant-numeric: tabular-nums;
2246
+ font-feature-settings: "tnum" 1;
2247
+ }
2248
+ .prn-kpi-value[data-tone=positive] {
2249
+ color: var(--prn-green);
2250
+ }
2251
+ .prn-kpi-value[data-tone=critical] {
2252
+ color: var(--prn-orange);
2253
+ }
2254
+ .prn-kpi-value[data-tone=negative] {
2255
+ color: var(--prn-red);
2256
+ }
2257
+ .prn-objectpage-sections {
2258
+ display: grid;
2259
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
2260
+ gap: 16px;
2261
+ }
2262
+ .prn-objectpage-section {
2263
+ display: flex;
2264
+ flex-direction: column;
2265
+ gap: 12px;
2266
+ padding: 18px 20px;
2267
+ background: var(--prn-bg-elevated);
2268
+ border: var(--prn-card-border);
2269
+ border-radius: var(--prn-radius);
2270
+ }
2271
+ .prn-objectpage-section-title {
2272
+ margin: 0;
2273
+ font: var(--prn-text-headline);
2274
+ color: var(--prn-label);
2275
+ }
2276
+ .prn-field-grid {
2277
+ display: grid;
2278
+ grid-template-columns: minmax(120px, 0.45fr) 1fr;
2279
+ gap: 8px 16px;
2280
+ }
2281
+ .prn-field-row {
2282
+ display: contents;
2283
+ }
2284
+ .prn-field-key {
2285
+ font: var(--prn-text-subhead);
2286
+ color: var(--prn-label-2);
2287
+ }
2288
+ .prn-field-val {
2289
+ font: var(--prn-text-subhead);
2290
+ font-weight: 500;
2291
+ color: var(--prn-label);
2292
+ word-break: break-word;
2293
+ }
2294
+ .prn-field-val[data-numeric] {
2295
+ font-variant-numeric: tabular-nums;
2296
+ font-feature-settings: "tnum" 1;
2297
+ }
2298
+
2299
+ /* src/data/table.css */
2300
+ .prn-table-title {
2301
+ padding: 12px 16px 8px;
2302
+ font: var(--prn-text-headline);
2303
+ font-weight: 700;
2304
+ color: var(--prn-label);
2305
+ }
2306
+ .prn-table-extension {
2307
+ padding: 8px 12px;
2308
+ border-bottom: 1px solid var(--prn-separator);
2309
+ }
2310
+ .prn-table-viewport-wrap {
2311
+ position: relative;
2312
+ width: 100%;
2313
+ }
2314
+ .prn-th-sortidx {
2315
+ font-size: 0.7em;
2316
+ font-weight: 700;
2317
+ margin-left: 1px;
2318
+ color: var(--prn-accent-strong);
2319
+ }
2320
+ .prn-th-filter {
2321
+ display: inline-flex;
2322
+ align-items: center;
2323
+ margin-left: 2px;
2324
+ }
2325
+ .prn-th-filter-btn {
2326
+ min-width: 0;
2327
+ padding: 0 4px;
2328
+ font-size: 0.9em;
2329
+ line-height: 1;
2330
+ opacity: 0.5;
2331
+ }
2332
+ .prn-th:hover .prn-th-filter-btn {
2333
+ opacity: 0.9;
2334
+ }
2335
+ .prn-th-filter-btn-active {
2336
+ opacity: 1;
2337
+ color: var(--prn-accent-strong);
2338
+ }
2339
+ .prn-th-filter-popover {
2340
+ padding: 12px;
2341
+ min-width: 220px;
2342
+ }
2343
+ .prn-th-filter-body {
2344
+ display: flex;
2345
+ flex-direction: column;
2346
+ gap: 8px;
2347
+ }
2348
+ .prn-th {
2349
+ position: sticky;
2350
+ }
2351
+ .prn-th-resizer {
2352
+ position: absolute;
2353
+ right: 0;
2354
+ top: 0;
2355
+ height: 100%;
2356
+ width: 6px;
2357
+ cursor: col-resize;
2358
+ user-select: none;
2359
+ touch-action: none;
2360
+ z-index: 3;
2361
+ }
2362
+ .prn-th-resizer:hover,
2363
+ .prn-th-resizer[data-resizing] {
2364
+ background: var(--prn-accent);
2365
+ opacity: 0.6;
2366
+ }
2367
+ .prn-th-resizer[data-autoresizable] {
2368
+ cursor: col-resize;
2369
+ }
2370
+ .prn-th[draggable=true] {
2371
+ cursor: grab;
2372
+ }
2373
+ .prn-th-popover {
2374
+ display: inline-flex;
2375
+ align-items: center;
2376
+ margin-left: 2px;
2377
+ }
2378
+ .prn-th-popover-btn {
2379
+ min-width: 0;
2380
+ padding: 0 4px;
2381
+ font-size: 0.9em;
2382
+ line-height: 1;
2383
+ opacity: 0.5;
2384
+ }
2385
+ .prn-th:hover .prn-th-popover-btn {
2386
+ opacity: 0.9;
2387
+ }
2388
+ .prn-th-popover-content {
2389
+ padding: 12px;
2390
+ min-width: 200px;
2391
+ }
2392
+ .prn-table-subrow {
2393
+ display: contents;
2394
+ }
2395
+ .prn-subcomponent {
2396
+ padding: 12px 16px;
2397
+ background: var(--prn-bg-elevated);
2398
+ border-bottom: 1px solid var(--prn-separator);
2399
+ }
2400
+ .prn-subcomponent-toggle {
2401
+ color: var(--prn-accent-strong);
2402
+ }
2403
+ .prn-tree-chevron {
2404
+ display: inline-grid;
2405
+ place-items: center;
2406
+ width: 18px;
2407
+ height: 18px;
2408
+ margin-right: 4px;
2409
+ border: none;
2410
+ background: transparent;
2411
+ color: var(--prn-label-2);
2412
+ cursor: pointer;
2413
+ border-radius: var(--prn-radius-xs);
2414
+ font-size: 12px;
2415
+ line-height: 1;
2416
+ }
2417
+ .prn-tree-chevron:hover {
2418
+ background: var(--prn-fill-strong);
2419
+ color: var(--prn-label);
2420
+ }
2421
+ .prn-td-content {
2422
+ overflow: hidden;
2423
+ text-overflow: ellipsis;
2424
+ white-space: nowrap;
2425
+ min-width: 0;
2426
+ }
2427
+ .prn-td[data-valign=top] {
2428
+ align-items: flex-start;
2429
+ }
2430
+ .prn-td[data-valign=bottom] {
2431
+ align-items: flex-end;
2432
+ }
2433
+ .prn-table-zebra .prn-table-row[data-zebra] .prn-td {
2434
+ background: var(--prn-fill);
2435
+ }
2436
+ .prn-table-zebra .prn-table-row[data-hovered] .prn-td {
2437
+ background: var(--prn-hover);
2438
+ }
2439
+ .prn-table-zebra .prn-table-row[data-selected] .prn-td {
2440
+ background: var(--prn-accent-soft);
2441
+ }
2442
+ .prn-row-highlight {
2443
+ align-self: stretch;
2444
+ width: 3px;
2445
+ background: transparent;
2446
+ border-bottom: 1px solid var(--prn-hairline);
2447
+ }
2448
+ .prn-th-highlight {
2449
+ min-width: 0;
2450
+ padding: 0;
2451
+ background: var(--prn-bg-head);
2452
+ border-bottom: 1px solid var(--prn-separator);
2453
+ }
2454
+ .prn-table-row[data-highlight=information] .prn-row-highlight {
2455
+ background: var(--prn-blue);
2456
+ }
2457
+ .prn-table-row[data-highlight=positive] .prn-row-highlight {
2458
+ background: var(--prn-green);
2459
+ }
2460
+ .prn-table-row[data-highlight=critical] .prn-row-highlight {
2461
+ background: var(--prn-orange);
2462
+ }
2463
+ .prn-table-row[data-highlight=negative] .prn-row-highlight {
2464
+ background: var(--prn-red);
2465
+ }
2466
+ .prn-th-nav,
2467
+ .prn-td-nav {
2468
+ justify-content: center;
2469
+ padding: 0 6px;
2470
+ max-width: 36px;
2471
+ }
2472
+ .prn-nav-arrow {
2473
+ color: var(--prn-label-3);
2474
+ font-size: 1.1em;
2475
+ opacity: 0;
2476
+ }
2477
+ .prn-td-nav[data-navigated] .prn-nav-arrow,
2478
+ .prn-table-row[data-hovered] .prn-td-nav .prn-nav-arrow {
2479
+ opacity: 1;
2480
+ color: var(--prn-accent-strong);
2481
+ }
2482
+ .prn-table-row-empty .prn-td-empty {
2483
+ min-height: 44px;
2484
+ border-bottom: 1px solid var(--prn-hairline);
2485
+ background: var(--prn-bg-elevated);
2486
+ }
2487
+ .prn-td:has(.prn-popin) {
2488
+ flex-direction: column;
2489
+ align-items: flex-start;
2490
+ justify-content: center;
2491
+ white-space: normal;
2492
+ overflow: visible;
2493
+ }
2494
+ .prn-td:has(.prn-popin) .prn-td-content {
2495
+ white-space: nowrap;
2496
+ }
2497
+ .prn-popin {
2498
+ display: flex;
2499
+ flex-direction: column;
2500
+ gap: 2px;
2501
+ margin-top: 2px;
2502
+ font: var(--prn-text-footnote);
2503
+ color: var(--prn-label-2);
2504
+ }
2505
+ .prn-popin-item[data-display=inline] {
2506
+ display: inline;
2507
+ }
2508
+ .prn-popin-label {
2509
+ color: var(--prn-label-3);
2510
+ }
2511
+ .prn-popin-value {
2512
+ color: var(--prn-label);
2513
+ font-weight: 500;
2514
+ }
2515
+ .prn-table-busy {
2516
+ grid-column: 1 / -1;
2517
+ display: flex;
2518
+ align-items: center;
2519
+ justify-content: center;
2520
+ padding: 48px 24px;
2521
+ }
2522
+ .prn-table-overlay {
2523
+ position: absolute;
2524
+ inset: 0;
2525
+ display: flex;
2526
+ align-items: center;
2527
+ justify-content: center;
2528
+ background: color-mix(in srgb, var(--prn-bg-elevated) 60%, transparent);
2529
+ z-index: 5;
2530
+ }
2531
+ .prn-busy-indicator {
2532
+ display: inline-flex;
2533
+ align-items: center;
2534
+ gap: 6px;
2535
+ }
2536
+ .prn-busy-dot {
2537
+ width: 8px;
2538
+ height: 8px;
2539
+ border-radius: 50%;
2540
+ background: var(--prn-accent);
2541
+ animation: prn-busy-pulse 1s infinite ease-in-out;
2542
+ }
2543
+ .prn-busy-dot:nth-child(2) {
2544
+ animation-delay: 0.15s;
2545
+ }
2546
+ .prn-busy-dot:nth-child(3) {
2547
+ animation-delay: 0.3s;
2548
+ }
2549
+ @keyframes prn-busy-pulse {
2550
+ 0%, 80%, 100% {
2551
+ opacity: 0.3;
2552
+ transform: scale(0.8);
2553
+ }
2554
+ 40% {
2555
+ opacity: 1;
2556
+ transform: scale(1);
2557
+ }
2558
+ }
2559
+ .prn-td:focus-visible {
2560
+ outline: 2px solid var(--prn-accent);
2561
+ outline-offset: -2px;
2562
+ border-radius: var(--prn-radius-xs);
2563
+ }
2564
+
2565
+ /* src/data/objectpage.css */
2566
+ .prn-objectpage {
2567
+ position: relative;
2568
+ }
2569
+ .prn-op-top-header {
2570
+ position: relative;
2571
+ z-index: 3;
2572
+ flex: 0 0 auto;
2573
+ }
2574
+ .prn-op-breadcrumbs {
2575
+ margin-bottom: 4px;
2576
+ }
2577
+ .prn-op-image {
2578
+ flex: 0 0 auto;
2579
+ width: 56px;
2580
+ height: 56px;
2581
+ border-radius: var(--prn-radius-md);
2582
+ overflow: hidden;
2583
+ background: var(--prn-fill);
2584
+ display: flex;
2585
+ align-items: center;
2586
+ justify-content: center;
2587
+ }
2588
+ .prn-op-image[data-circle] {
2589
+ border-radius: 50%;
2590
+ }
2591
+ .prn-op-image-img {
2592
+ width: 100%;
2593
+ height: 100%;
2594
+ object-fit: cover;
2595
+ }
2596
+ .prn-objectpage-title[data-clickable] {
2597
+ cursor: pointer;
2598
+ }
2599
+ .prn-op-state-content {
2600
+ margin-top: 6px;
2601
+ font: var(--prn-text-footnote);
2602
+ color: var(--prn-label-2);
2603
+ }
2604
+ .prn-op-navigation-bar {
2605
+ display: flex;
2606
+ align-items: center;
2607
+ gap: 8px;
2608
+ margin-left: auto;
2609
+ }
2610
+ .prn-op-navigation-bar + .prn-objectpage-actions {
2611
+ margin-left: 0;
2612
+ }
2613
+ .prn-op-header-area {
2614
+ display: flex;
2615
+ flex-direction: column;
2616
+ gap: 12px;
2617
+ padding-top: 4px;
2618
+ border-top: 1px solid var(--prn-separator);
2619
+ margin-top: 4px;
2620
+ }
2621
+ .prn-op-pin {
2622
+ flex: 0 0 auto;
2623
+ width: 30px;
2624
+ height: 30px;
2625
+ border: none;
2626
+ border-radius: var(--prn-radius-xs);
2627
+ background: transparent;
2628
+ cursor: pointer;
2629
+ font-size: 15px;
2630
+ line-height: 1;
2631
+ color: var(--prn-label-2);
2632
+ }
2633
+ .prn-op-pin:hover {
2634
+ background: var(--prn-hover);
2635
+ }
2636
+ .prn-op-pin[aria-pressed=true] {
2637
+ background: var(--prn-accent-soft);
2638
+ color: var(--prn-accent-strong);
2639
+ }
2640
+ .prn-objectpage[data-snapped] .prn-op-top-header {
2641
+ padding-top: 12px;
2642
+ padding-bottom: 12px;
2643
+ }
2644
+ .prn-op-anchorbar {
2645
+ position: sticky;
2646
+ top: 0;
2647
+ z-index: 2;
2648
+ flex: 0 0 auto;
2649
+ min-height: max-content;
2650
+ display: flex;
2651
+ align-items: center;
2652
+ gap: 4px;
2653
+ padding: 6px 12px;
2654
+ background: var(--prn-bg-elevated);
2655
+ border: var(--prn-card-border);
2656
+ border-radius: var(--prn-radius);
2657
+ overflow-x: auto;
2658
+ overflow-y: hidden;
2659
+ }
2660
+ .prn-op-anchor {
2661
+ flex: 0 0 auto;
2662
+ appearance: none;
2663
+ border: none;
2664
+ background: transparent;
2665
+ padding: 7px 14px;
2666
+ border-radius: var(--prn-radius-pill);
2667
+ font: var(--prn-text-subhead);
2668
+ font-weight: 500;
2669
+ color: var(--prn-label-2);
2670
+ cursor: pointer;
2671
+ white-space: nowrap;
2672
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard), color var(--prn-dur-fast) var(--prn-ease-standard);
2673
+ }
2674
+ .prn-op-anchor:hover {
2675
+ background: var(--prn-hover);
2676
+ color: var(--prn-label);
2677
+ }
2678
+ .prn-op-anchor[data-selected] {
2679
+ background: var(--prn-accent-soft);
2680
+ color: var(--prn-accent-strong);
2681
+ font-weight: 600;
2682
+ }
2683
+ .prn-op-anchor:focus-visible {
2684
+ outline: none;
2685
+ box-shadow: var(--prn-focus);
2686
+ }
2687
+ .prn-op-scroll {
2688
+ position: relative;
2689
+ flex: 1 1 auto;
2690
+ min-height: 0;
2691
+ max-height: var(--prn-op-scroll-max, none);
2692
+ overflow-y: auto;
2693
+ }
2694
+ .prn-objectpage-sections-stack {
2695
+ display: flex;
2696
+ flex-direction: column;
2697
+ gap: 16px;
2698
+ }
2699
+ .prn-op-section-anchor {
2700
+ scroll-margin-top: 60px;
2701
+ }
2702
+ .prn-objectpage[data-mode=iconTabBar] .prn-op-section-anchor[data-active] {
2703
+ min-height: 100%;
2704
+ }
2705
+ .prn-op-section {
2706
+ display: flex;
2707
+ flex-direction: column;
2708
+ gap: 14px;
2709
+ padding: 18px 20px;
2710
+ background: var(--prn-bg-elevated);
2711
+ border: var(--prn-card-border);
2712
+ border-radius: var(--prn-radius);
2713
+ }
2714
+ .prn-op-section-head {
2715
+ display: flex;
2716
+ align-items: baseline;
2717
+ justify-content: space-between;
2718
+ gap: 12px;
2719
+ }
2720
+ .prn-op-section-title {
2721
+ margin: 0;
2722
+ font: var(--prn-text-headline);
2723
+ color: var(--prn-label);
2724
+ overflow: hidden;
2725
+ text-overflow: ellipsis;
2726
+ white-space: nowrap;
2727
+ }
2728
+ .prn-op-section-title[data-uppercase] {
2729
+ text-transform: uppercase;
2730
+ letter-spacing: 0.04em;
2731
+ }
2732
+ .prn-op-section-title[data-wrap] {
2733
+ white-space: normal;
2734
+ overflow: visible;
2735
+ }
2736
+ .prn-op-section-header-content {
2737
+ flex: 0 0 auto;
2738
+ }
2739
+ .prn-op-section-body {
2740
+ display: flex;
2741
+ flex-direction: column;
2742
+ gap: 16px;
2743
+ }
2744
+ .prn-op-subsection {
2745
+ display: flex;
2746
+ flex-direction: column;
2747
+ gap: 10px;
2748
+ }
2749
+ .prn-op-subsection-head {
2750
+ display: flex;
2751
+ align-items: center;
2752
+ justify-content: space-between;
2753
+ gap: 12px;
2754
+ }
2755
+ .prn-op-subsection-title {
2756
+ margin: 0;
2757
+ font: var(--prn-text-subhead);
2758
+ font-weight: 600;
2759
+ color: var(--prn-label-2);
2760
+ }
2761
+ .prn-op-subsection-actions {
2762
+ display: flex;
2763
+ align-items: center;
2764
+ gap: 8px;
2765
+ }
2766
+ .prn-op-subsection-body {
2767
+ display: flex;
2768
+ flex-direction: column;
2769
+ gap: 12px;
2770
+ }
2771
+ .prn-op-placeholder {
2772
+ display: flex;
2773
+ align-items: center;
2774
+ justify-content: center;
2775
+ min-height: 200px;
2776
+ padding: 40px 24px;
2777
+ background: var(--prn-bg-elevated);
2778
+ border: var(--prn-card-border);
2779
+ border-radius: var(--prn-radius);
2780
+ color: var(--prn-label-2);
2781
+ text-align: center;
2782
+ }
2783
+ .prn-op-footer {
2784
+ position: sticky;
2785
+ bottom: 0;
2786
+ z-index: 4;
2787
+ display: flex;
2788
+ align-items: center;
2789
+ justify-content: flex-end;
2790
+ gap: 8px;
2791
+ padding: 12px 20px;
2792
+ background: var(--prn-bg-elevated);
2793
+ border: var(--prn-card-border);
2794
+ border-radius: var(--prn-radius);
2795
+ box-shadow: var(--prn-shadow-2, 0 -2px 12px rgba(0, 0, 0, 0.08));
2796
+ }
2797
+
2798
+ /* src/primitives/choice.css */
2799
+ .prn-radiogroup-items,
2800
+ .prn-checkboxgroup-items {
2801
+ display: flex;
2802
+ flex-direction: column;
2803
+ gap: 12px;
2804
+ }
2805
+ .prn-radiogroup[data-orientation=horizontal] .prn-radiogroup-items {
2806
+ flex-direction: row;
2807
+ gap: 32px;
2808
+ }
2809
+ .prn-radio {
2810
+ display: inline-flex;
2811
+ align-items: center;
2812
+ gap: 11px;
2813
+ min-height: 32px;
2814
+ cursor: pointer;
2815
+ font: var(--prn-text-body);
2816
+ color: var(--prn-label);
2817
+ }
2818
+ .prn-radio-dot {
2819
+ width: 22px;
2820
+ height: 22px;
2821
+ border-radius: 50%;
2822
+ background: var(--prn-fill);
2823
+ box-shadow: inset 0 0 0 2px var(--prn-label-3);
2824
+ transition: box-shadow var(--prn-dur-fast);
2825
+ }
2826
+ .prn-radio[data-selected] .prn-radio-dot {
2827
+ box-shadow: inset 0 0 0 6px var(--prn-accent);
2828
+ }
2829
+ .prn-radio[data-focus-visible] .prn-radio-dot {
2830
+ box-shadow: var(--prn-focus);
2831
+ }
2832
+ .prn-radio[data-disabled] {
2833
+ opacity: 0.45;
2834
+ cursor: not-allowed;
2835
+ }
2836
+
2837
+ /* src/primitives/numeric.css */
2838
+ .prn-numberfield-group {
2839
+ display: inline-flex;
2840
+ align-items: center;
2841
+ background: var(--prn-fill);
2842
+ border-radius: var(--prn-radius-md);
2843
+ overflow: hidden;
2844
+ }
2845
+ .prn-numberfield-group[data-focus-within],
2846
+ .prn-numberfield-group:focus-within {
2847
+ box-shadow: var(--prn-focus);
2848
+ }
2849
+ .prn-numberfield-step {
2850
+ width: 36px;
2851
+ height: 36px;
2852
+ flex: none;
2853
+ border: none;
2854
+ background: transparent;
2855
+ color: var(--prn-label-2);
2856
+ font-size: 17px;
2857
+ line-height: 1;
2858
+ cursor: pointer;
2859
+ transition: background var(--prn-dur-fast), color var(--prn-dur-fast);
2860
+ }
2861
+ .prn-numberfield-step[data-hovered] {
2862
+ background: var(--prn-fill-strong);
2863
+ color: var(--prn-accent-strong);
2864
+ }
2865
+ .prn-numberfield-step[data-disabled] {
2866
+ opacity: 0.4;
2867
+ cursor: not-allowed;
2868
+ }
2869
+ .prn-numberfield-group .prn-numberfield-input {
2870
+ flex: 1;
2871
+ min-width: 0;
2872
+ background: transparent;
2873
+ text-align: right;
2874
+ box-shadow: none;
2875
+ }
2876
+ .prn-numberfield-group .prn-numberfield-input[data-focused],
2877
+ .prn-numberfield-group .prn-numberfield-input:focus {
2878
+ outline: none;
2879
+ box-shadow: none;
2880
+ }
2881
+ .prn-slider {
2882
+ display: flex;
2883
+ flex-direction: column;
2884
+ gap: 8px;
2885
+ max-width: 320px;
2886
+ }
2887
+ .prn-slider-header {
2888
+ display: flex;
2889
+ justify-content: space-between;
2890
+ align-items: center;
2891
+ }
2892
+ .prn-slider-output {
2893
+ font: var(--prn-text-subhead);
2894
+ color: var(--prn-label-2);
2895
+ font-variant-numeric: tabular-nums;
2896
+ }
2897
+ .prn-slider-track {
2898
+ position: relative;
2899
+ height: 4px;
2900
+ background: var(--prn-fill-strong);
2901
+ border-radius: 999px;
2902
+ width: 100%;
2903
+ margin: 10px 0;
2904
+ cursor: pointer;
2905
+ }
2906
+ .prn-slider-fill {
2907
+ position: absolute;
2908
+ top: 0;
2909
+ left: 0;
2910
+ height: 100%;
2911
+ background: var(--prn-accent);
2912
+ border-radius: inherit;
2913
+ pointer-events: none;
2914
+ }
2915
+ .prn-slider-thumb {
2916
+ width: 24px;
2917
+ height: 24px;
2918
+ border-radius: 50%;
2919
+ background: #fff;
2920
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
2921
+ top: 50%;
2922
+ }
2923
+ .prn-slider-thumb[data-focus-visible] {
2924
+ box-shadow: var(--prn-focus);
2925
+ }
2926
+ .prn-slider-thumb[data-dragging] {
2927
+ transform: translateY(-50%) scale(1.1);
2928
+ }
2929
+ .prn-numberfield {
2930
+ max-width: 200px;
2931
+ }
2932
+
2933
+ /* src/primitives/combobox.css */
2934
+ .prn-combobox-control {
2935
+ position: relative;
2936
+ display: inline-flex;
2937
+ align-items: center;
2938
+ width: 100%;
2939
+ }
2940
+ .prn-combobox-input {
2941
+ padding-right: 34px;
2942
+ }
2943
+ .prn-combobox-button {
2944
+ position: absolute;
2945
+ right: 4px;
2946
+ top: 50%;
2947
+ transform: translateY(-50%);
2948
+ width: 28px;
2949
+ height: 28px;
2950
+ border: none;
2951
+ background: transparent;
2952
+ color: var(--prn-label-3);
2953
+ font-size: 0.8em;
2954
+ cursor: pointer;
2955
+ display: grid;
2956
+ place-items: center;
2957
+ }
2958
+ .prn-combobox-button[data-hovered] {
2959
+ color: var(--prn-label-2);
2960
+ }
2961
+
2962
+ /* src/primitives/form.css */
2963
+ .prn-form {
2964
+ display: flex;
2965
+ flex-direction: column;
2966
+ gap: 16px;
2967
+ max-width: 420px;
2968
+ }
2969
+
2970
+ /* src/primitives/collections.css */
2971
+ .prn-listbox-standalone {
2972
+ background: var(--prn-bg-elevated);
2973
+ border: var(--prn-card-border, 1px solid var(--prn-separator));
2974
+ border-radius: var(--prn-radius-md);
2975
+ padding: 6px;
2976
+ min-width: 200px;
2977
+ max-height: 320px;
2978
+ overflow: auto;
2979
+ }
2980
+ .prn-gridlist {
2981
+ outline: none;
2982
+ display: flex;
2983
+ flex-direction: column;
2984
+ gap: 2px;
2985
+ background: var(--prn-bg-elevated);
2986
+ border-radius: var(--prn-radius-md);
2987
+ padding: 6px;
2988
+ min-width: 200px;
2989
+ }
2990
+ .prn-gridlist-item {
2991
+ display: flex;
2992
+ align-items: center;
2993
+ gap: 10px;
2994
+ min-height: 38px;
2995
+ padding: 8px 12px;
2996
+ border-radius: var(--prn-radius-sm);
2997
+ font: var(--prn-text-body);
2998
+ color: var(--prn-label);
2999
+ cursor: pointer;
3000
+ outline: none;
3001
+ }
3002
+ .prn-gridlist-item[data-hovered] {
3003
+ background: var(--prn-fill);
3004
+ }
3005
+ .prn-gridlist-item[data-focus-visible] {
3006
+ box-shadow: var(--prn-focus);
3007
+ }
3008
+ .prn-gridlist-item[data-selected] {
3009
+ background: var(--prn-accent-soft);
3010
+ }
3011
+ .prn-gridlist-item[data-selected]::after {
3012
+ content: "\2713";
3013
+ margin-left: auto;
3014
+ color: var(--prn-accent-strong);
3015
+ font-weight: 700;
3016
+ }
3017
+ .prn-gridlist-item[data-disabled] {
3018
+ opacity: 0.4;
3019
+ cursor: default;
3020
+ }
3021
+ .prn-taggroup {
3022
+ display: flex;
3023
+ flex-direction: column;
3024
+ gap: 6px;
3025
+ }
3026
+ .prn-taglist {
3027
+ display: flex;
3028
+ flex-wrap: wrap;
3029
+ gap: 8px;
3030
+ outline: none;
3031
+ }
3032
+ .prn-tag {
3033
+ display: inline-flex;
3034
+ align-items: center;
3035
+ gap: 6px;
3036
+ min-height: 28px;
3037
+ padding: 4px 12px;
3038
+ border-radius: 999px;
3039
+ background: var(--prn-fill);
3040
+ color: var(--prn-label);
3041
+ font: var(--prn-text-subhead);
3042
+ cursor: default;
3043
+ outline: none;
3044
+ user-select: none;
3045
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3046
+ }
3047
+ .prn-tag[data-hovered] {
3048
+ background: var(--prn-fill-strong);
3049
+ }
3050
+ .prn-tag[data-focus-visible] {
3051
+ box-shadow: var(--prn-focus);
3052
+ }
3053
+ .prn-tag[data-selected] {
3054
+ background: var(--prn-accent);
3055
+ color: var(--prn-on-accent);
3056
+ }
3057
+ .prn-tag[data-disabled] {
3058
+ opacity: 0.4;
3059
+ }
3060
+ .prn-tag-label {
3061
+ line-height: 1.2;
3062
+ }
3063
+ .prn-tag-remove {
3064
+ display: inline-grid;
3065
+ place-items: center;
3066
+ width: 18px;
3067
+ height: 18px;
3068
+ margin-right: -4px;
3069
+ padding: 0;
3070
+ border: none;
3071
+ border-radius: 50%;
3072
+ background: transparent;
3073
+ color: inherit;
3074
+ cursor: pointer;
3075
+ opacity: 0.6;
3076
+ outline: none;
3077
+ transition: opacity var(--prn-dur-fast), background var(--prn-dur-fast);
3078
+ }
3079
+ .prn-tag-remove[data-hovered] {
3080
+ opacity: 1;
3081
+ background: rgba(127, 127, 127, 0.25);
3082
+ }
3083
+ .prn-tag-remove[data-focus-visible] {
3084
+ box-shadow: var(--prn-focus);
3085
+ opacity: 1;
3086
+ }
3087
+ .prn-tag-remove-icon {
3088
+ width: 11px;
3089
+ height: 11px;
3090
+ fill: none;
3091
+ stroke: currentColor;
3092
+ stroke-width: 1.8;
3093
+ stroke-linecap: round;
3094
+ }
3095
+
3096
+ /* src/primitives/breadcrumbs.css */
3097
+ .prn-breadcrumbs {
3098
+ display: flex;
3099
+ flex-wrap: wrap;
3100
+ align-items: center;
3101
+ gap: 4px;
3102
+ margin: 0;
3103
+ padding: 0;
3104
+ list-style: none;
3105
+ font: var(--prn-text-subhead);
3106
+ }
3107
+ .prn-breadcrumb {
3108
+ display: inline-flex;
3109
+ align-items: center;
3110
+ gap: 4px;
3111
+ color: var(--prn-label-2);
3112
+ }
3113
+ .prn-breadcrumb:not(:last-child)::after {
3114
+ content: "\203a";
3115
+ margin-left: 4px;
3116
+ color: var(--prn-label-3);
3117
+ font-weight: 400;
3118
+ }
3119
+ .prn-breadcrumb[data-current] {
3120
+ color: var(--prn-label);
3121
+ font-weight: 590;
3122
+ }
3123
+ .prn-breadcrumb[data-current] .prn-link {
3124
+ color: var(--prn-label);
3125
+ cursor: default;
3126
+ text-decoration: none;
3127
+ }
3128
+ .prn-breadcrumb[data-disabled] {
3129
+ opacity: 0.45;
3130
+ }
3131
+ .prn-link {
3132
+ color: var(--prn-accent-strong);
3133
+ text-decoration: none;
3134
+ cursor: pointer;
3135
+ border-radius: var(--prn-radius-sm);
3136
+ transition: color var(--prn-dur-fast) var(--prn-ease-standard);
3137
+ }
3138
+ .prn-link[data-hovered] {
3139
+ text-decoration: underline;
3140
+ }
3141
+ .prn-link[data-pressed] {
3142
+ color: var(--prn-accent);
3143
+ }
3144
+ .prn-link[data-focus-visible] {
3145
+ outline: none;
3146
+ box-shadow: var(--prn-focus);
3147
+ }
3148
+ .prn-link[data-disabled] {
3149
+ color: var(--prn-label-3);
3150
+ cursor: not-allowed;
3151
+ text-decoration: none;
3152
+ }
3153
+
3154
+ /* src/primitives/disclosure.css */
3155
+ .prn-disclosure {
3156
+ border-radius: var(--prn-radius-md);
3157
+ overflow: hidden;
3158
+ }
3159
+ .prn-disclosure-heading {
3160
+ margin: 0;
3161
+ font: inherit;
3162
+ font-weight: inherit;
3163
+ }
3164
+ .prn-disclosure-trigger {
3165
+ display: flex;
3166
+ align-items: center;
3167
+ justify-content: space-between;
3168
+ gap: 10px;
3169
+ width: 100%;
3170
+ min-height: 44px;
3171
+ padding: 10px 14px;
3172
+ border: none;
3173
+ border-radius: var(--prn-radius-md);
3174
+ background: transparent;
3175
+ color: var(--prn-label);
3176
+ font: var(--prn-text-body);
3177
+ font-weight: 590;
3178
+ text-align: left;
3179
+ cursor: pointer;
3180
+ outline: none;
3181
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3182
+ }
3183
+ .prn-disclosure-trigger[data-hovered] {
3184
+ background: var(--prn-fill);
3185
+ }
3186
+ .prn-disclosure-trigger[data-pressed] {
3187
+ background: var(--prn-fill-strong);
3188
+ }
3189
+ .prn-disclosure-trigger[data-focus-visible] {
3190
+ box-shadow: var(--prn-focus);
3191
+ }
3192
+ .prn-disclosure-trigger[data-disabled] {
3193
+ opacity: 0.45;
3194
+ cursor: not-allowed;
3195
+ }
3196
+ .prn-disclosure-title {
3197
+ flex: 1;
3198
+ min-width: 0;
3199
+ }
3200
+ .prn-disclosure-chevron {
3201
+ flex: none;
3202
+ width: 16px;
3203
+ height: 16px;
3204
+ fill: none;
3205
+ stroke: var(--prn-label-3);
3206
+ stroke-width: 1.8;
3207
+ stroke-linecap: round;
3208
+ stroke-linejoin: round;
3209
+ transition: transform var(--prn-dur) var(--prn-ease-spring);
3210
+ }
3211
+ .prn-disclosure-trigger[data-expanded] .prn-disclosure-chevron {
3212
+ transform: rotate(90deg);
3213
+ }
3214
+ .prn-disclosure-panel {
3215
+ padding: 4px 14px 14px;
3216
+ font: var(--prn-text-body);
3217
+ color: var(--prn-label-2);
3218
+ outline: none;
3219
+ }
3220
+ .prn-disclosure-group {
3221
+ display: flex;
3222
+ flex-direction: column;
3223
+ border-radius: var(--prn-radius-lg);
3224
+ background: var(--prn-bg-elevated);
3225
+ border: var(--prn-card-border);
3226
+ overflow: hidden;
3227
+ }
3228
+ .prn-disclosure-group .prn-disclosure {
3229
+ border-radius: 0;
3230
+ }
3231
+ .prn-disclosure-group .prn-disclosure + .prn-disclosure {
3232
+ border-top: 1px solid var(--prn-separator);
3233
+ }
3234
+
3235
+ /* src/primitives/tree.css */
3236
+ .prn-tree {
3237
+ outline: none;
3238
+ display: flex;
3239
+ flex-direction: column;
3240
+ gap: 2px;
3241
+ padding: 4px;
3242
+ background: var(--prn-bg-elevated);
3243
+ border-radius: var(--prn-radius-md);
3244
+ color: var(--prn-label);
3245
+ font: var(--prn-text-body);
3246
+ }
3247
+ .prn-tree-item {
3248
+ outline: none;
3249
+ border-radius: var(--prn-radius-sm);
3250
+ --prn-tree-indent: calc((var(--tree-item-level, 1) - 1) * 18px);
3251
+ }
3252
+ .prn-tree-row {
3253
+ display: flex;
3254
+ align-items: center;
3255
+ gap: 6px;
3256
+ min-height: 34px;
3257
+ padding: 0 10px;
3258
+ padding-left: calc(10px + var(--prn-tree-indent));
3259
+ border-radius: var(--prn-radius-sm);
3260
+ cursor: pointer;
3261
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3262
+ }
3263
+ .prn-tree-item[data-hovered] > .prn-tree-row {
3264
+ background: var(--prn-fill);
3265
+ }
3266
+ .prn-tree-item[data-selected] > .prn-tree-row {
3267
+ background: var(--prn-accent-soft);
3268
+ color: var(--prn-accent-strong);
3269
+ }
3270
+ .prn-tree-item[data-focus-visible] > .prn-tree-row {
3271
+ box-shadow: var(--prn-focus);
3272
+ }
3273
+ .prn-tree-item[data-disabled] > .prn-tree-row {
3274
+ opacity: 0.45;
3275
+ cursor: not-allowed;
3276
+ }
3277
+ .prn-tree-chevron {
3278
+ display: inline-flex;
3279
+ align-items: center;
3280
+ justify-content: center;
3281
+ width: 18px;
3282
+ height: 18px;
3283
+ flex: none;
3284
+ border: none;
3285
+ background: transparent;
3286
+ color: var(--prn-label-3);
3287
+ cursor: pointer;
3288
+ padding: 0;
3289
+ border-radius: var(--prn-radius-sm);
3290
+ transition: transform var(--prn-dur-fast) var(--prn-ease-spring), color var(--prn-dur-fast) var(--prn-ease-standard);
3291
+ }
3292
+ .prn-tree-chevron svg {
3293
+ width: 14px;
3294
+ height: 14px;
3295
+ }
3296
+ .prn-tree-chevron[data-hovered] {
3297
+ color: var(--prn-label);
3298
+ }
3299
+ .prn-tree-chevron[data-focus-visible] {
3300
+ box-shadow: var(--prn-focus);
3301
+ }
3302
+ .prn-tree-item[data-expanded] > .prn-tree-row .prn-tree-chevron {
3303
+ transform: rotate(90deg);
3304
+ }
3305
+ .prn-tree-chevron-spacer {
3306
+ cursor: default;
3307
+ }
3308
+ .prn-tree-check {
3309
+ display: inline-flex;
3310
+ align-items: center;
3311
+ flex: none;
3312
+ cursor: pointer;
3313
+ }
3314
+ .prn-tree-check-box {
3315
+ width: 18px;
3316
+ height: 18px;
3317
+ border-radius: 5px;
3318
+ background: var(--prn-fill);
3319
+ box-shadow: inset 0 0 0 1.5px var(--prn-separator);
3320
+ display: grid;
3321
+ place-items: center;
3322
+ transition: background var(--prn-dur-fast), box-shadow var(--prn-dur-fast);
3323
+ }
3324
+ .prn-tree-check-mark {
3325
+ width: 12px;
3326
+ height: 12px;
3327
+ fill: none;
3328
+ stroke: var(--prn-on-accent);
3329
+ stroke-width: 2.4;
3330
+ stroke-linecap: round;
3331
+ stroke-linejoin: round;
3332
+ opacity: 0;
3333
+ transition: opacity var(--prn-dur-fast);
3334
+ }
3335
+ .prn-tree-check[data-selected] .prn-tree-check-box,
3336
+ .prn-tree-check[data-indeterminate] .prn-tree-check-box {
3337
+ background: var(--prn-accent);
3338
+ box-shadow: none;
3339
+ }
3340
+ .prn-tree-check[data-selected] .prn-tree-check-mark {
3341
+ opacity: 1;
3342
+ }
3343
+ .prn-tree-check[data-focus-visible] .prn-tree-check-box {
3344
+ box-shadow: var(--prn-focus);
3345
+ }
3346
+ .prn-tree-label {
3347
+ flex: 1;
3348
+ overflow: hidden;
3349
+ text-overflow: ellipsis;
3350
+ white-space: nowrap;
3351
+ }
3352
+
3353
+ /* src/primitives/table-aria.css */
3354
+ .prn-table {
3355
+ width: 100%;
3356
+ border-collapse: collapse;
3357
+ background: var(--prn-bg-elevated);
3358
+ color: var(--prn-label);
3359
+ font: var(--prn-text-body);
3360
+ text-align: left;
3361
+ }
3362
+ .prn-table-header {
3363
+ color: var(--prn-label-2);
3364
+ }
3365
+ .prn-table-column {
3366
+ padding: 9px 14px;
3367
+ font: var(--prn-text-subhead);
3368
+ font-weight: 590;
3369
+ color: var(--prn-label-2);
3370
+ border-bottom: 1px solid var(--prn-separator);
3371
+ white-space: nowrap;
3372
+ outline: none;
3373
+ vertical-align: middle;
3374
+ }
3375
+ .prn-table-column[data-focus-visible] {
3376
+ box-shadow: inset var(--prn-focus);
3377
+ }
3378
+ .prn-table-column[data-allows-sorting] {
3379
+ cursor: pointer;
3380
+ user-select: none;
3381
+ }
3382
+ .prn-table-column[data-allows-sorting][data-hovered] {
3383
+ color: var(--prn-label);
3384
+ }
3385
+ .prn-table-column-inner {
3386
+ display: inline-flex;
3387
+ align-items: center;
3388
+ gap: 6px;
3389
+ }
3390
+ .prn-table-sort-indicator {
3391
+ font-size: 0.65em;
3392
+ color: var(--prn-accent-strong);
3393
+ line-height: 1;
3394
+ }
3395
+ .prn-table[data-sticky] .prn-table-column {
3396
+ position: sticky;
3397
+ top: 0;
3398
+ z-index: 1;
3399
+ background: var(--prn-bg-elevated);
3400
+ }
3401
+ .prn-table-row {
3402
+ outline: none;
3403
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3404
+ }
3405
+ .prn-table-row[data-hovered] {
3406
+ background: var(--prn-fill);
3407
+ }
3408
+ .prn-table-row[data-pressed] {
3409
+ background: var(--prn-fill-strong);
3410
+ }
3411
+ .prn-table-row[data-selected] {
3412
+ background: var(--prn-accent-soft);
3413
+ }
3414
+ .prn-table-row[data-focus-visible] {
3415
+ box-shadow: inset var(--prn-focus);
3416
+ }
3417
+ .prn-table-row[data-disabled] {
3418
+ opacity: 0.45;
3419
+ }
3420
+ .prn-table-cell {
3421
+ padding: 10px 14px;
3422
+ border-bottom: 1px solid var(--prn-separator);
3423
+ color: var(--prn-label);
3424
+ vertical-align: middle;
3425
+ outline: none;
3426
+ }
3427
+ .prn-table-cell[data-focus-visible] {
3428
+ box-shadow: inset var(--prn-focus);
3429
+ }
3430
+ .prn-table-body[data-empty] {
3431
+ text-align: center;
3432
+ color: var(--prn-label-3);
3433
+ font: var(--prn-text-footnote);
3434
+ }
3435
+ .prn-table-selection-cell {
3436
+ width: 44px;
3437
+ padding-left: 14px;
3438
+ padding-right: 0;
3439
+ }
3440
+ .prn-table-checkbox {
3441
+ gap: 0;
3442
+ }
3443
+
3444
+ /* src/primitives/datefields.css */
3445
+ .prn-dateinput {
3446
+ display: inline-flex;
3447
+ align-items: center;
3448
+ width: 100%;
3449
+ min-height: 34px;
3450
+ padding: 6px 10px;
3451
+ border-radius: var(--prn-radius-md);
3452
+ background: var(--prn-fill);
3453
+ color: var(--prn-label);
3454
+ font: var(--prn-text-body);
3455
+ font-variant-numeric: tabular-nums;
3456
+ white-space: nowrap;
3457
+ }
3458
+ .prn-dateinput[data-focus-within] {
3459
+ box-shadow: var(--prn-focus);
3460
+ }
3461
+ .prn-dateinput[data-disabled] {
3462
+ opacity: 0.45;
3463
+ }
3464
+ .prn-datesegment {
3465
+ padding: 1px 3px;
3466
+ border-radius: var(--prn-radius-sm);
3467
+ outline: none;
3468
+ text-align: center;
3469
+ color: var(--prn-label);
3470
+ font-variant-numeric: tabular-nums;
3471
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard), color var(--prn-dur-fast) var(--prn-ease-standard);
3472
+ }
3473
+ .prn-datesegment[data-type=literal] {
3474
+ padding: 0 1px;
3475
+ color: var(--prn-label-3);
3476
+ }
3477
+ .prn-datesegment[data-placeholder] {
3478
+ color: var(--prn-label-3);
3479
+ }
3480
+ .prn-datesegment[data-focused] {
3481
+ background: var(--prn-accent-soft);
3482
+ color: var(--prn-accent-strong);
3483
+ }
3484
+ .prn-datesegment[data-invalid] {
3485
+ color: var(--prn-red);
3486
+ }
3487
+ .prn-datesegment[data-disabled] {
3488
+ color: var(--prn-label-3);
3489
+ }
3490
+
3491
+ /* src/primitives/calendar.css */
3492
+ .prn-calendar {
3493
+ display: inline-flex;
3494
+ flex-direction: column;
3495
+ gap: 10px;
3496
+ width: max-content;
3497
+ padding: 14px;
3498
+ background: var(--prn-bg-elevated);
3499
+ border-radius: var(--prn-radius-lg);
3500
+ color: var(--prn-label);
3501
+ user-select: none;
3502
+ }
3503
+ .prn-calendar-header {
3504
+ display: flex;
3505
+ align-items: center;
3506
+ justify-content: space-between;
3507
+ gap: 8px;
3508
+ padding: 0 2px;
3509
+ }
3510
+ .prn-calendar-title {
3511
+ margin: 0;
3512
+ flex: 1;
3513
+ text-align: center;
3514
+ font: var(--prn-text-body);
3515
+ font-weight: 600;
3516
+ color: var(--prn-label);
3517
+ }
3518
+ .prn-calendar-nav {
3519
+ display: inline-flex;
3520
+ align-items: center;
3521
+ justify-content: center;
3522
+ width: 34px;
3523
+ height: 34px;
3524
+ border: none;
3525
+ border-radius: var(--prn-radius-md);
3526
+ background: transparent;
3527
+ color: var(--prn-accent-strong);
3528
+ font-size: 22px;
3529
+ line-height: 1;
3530
+ cursor: pointer;
3531
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3532
+ }
3533
+ .prn-calendar-nav[data-hovered] {
3534
+ background: var(--prn-fill);
3535
+ }
3536
+ .prn-calendar-nav[data-pressed] {
3537
+ background: var(--prn-fill-strong);
3538
+ }
3539
+ .prn-calendar-nav[data-focus-visible] {
3540
+ box-shadow: var(--prn-focus);
3541
+ }
3542
+ .prn-calendar-nav[data-disabled] {
3543
+ opacity: 0.35;
3544
+ cursor: not-allowed;
3545
+ }
3546
+ .prn-calendar-grid {
3547
+ border-collapse: collapse;
3548
+ }
3549
+ .prn-calendar-weekday {
3550
+ padding: 4px 0;
3551
+ font: var(--prn-text-footnote);
3552
+ font-weight: 600;
3553
+ color: var(--prn-label-3);
3554
+ text-align: center;
3555
+ text-transform: none;
3556
+ }
3557
+ .prn-calendar-cell {
3558
+ box-sizing: border-box;
3559
+ display: flex;
3560
+ align-items: center;
3561
+ justify-content: center;
3562
+ width: 38px;
3563
+ height: 38px;
3564
+ margin: 1px;
3565
+ border-radius: 50%;
3566
+ font: var(--prn-text-body);
3567
+ color: var(--prn-label);
3568
+ cursor: pointer;
3569
+ outline: none;
3570
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard), color var(--prn-dur-fast) var(--prn-ease-standard);
3571
+ }
3572
+ .prn-calendar-cell[data-hovered] {
3573
+ background: var(--prn-fill);
3574
+ }
3575
+ .prn-calendar-cell[data-pressed] {
3576
+ background: var(--prn-fill-strong);
3577
+ }
3578
+ .prn-calendar-cell[data-focus-visible] {
3579
+ box-shadow: var(--prn-focus);
3580
+ }
3581
+ .prn-calendar-cell[data-today] {
3582
+ box-shadow: inset 0 0 0 1.5px var(--prn-accent);
3583
+ font-weight: 600;
3584
+ }
3585
+ .prn-calendar-cell[data-selected] {
3586
+ background: var(--prn-accent);
3587
+ color: var(--prn-on-accent);
3588
+ box-shadow: none;
3589
+ font-weight: 600;
3590
+ }
3591
+ .prn-calendar-cell[data-outside-month] {
3592
+ color: var(--prn-label-3);
3593
+ opacity: 0.45;
3594
+ }
3595
+ .prn-calendar-cell[data-disabled] {
3596
+ color: var(--prn-label-3);
3597
+ opacity: 0.3;
3598
+ cursor: not-allowed;
3599
+ }
3600
+ .prn-calendar-cell[data-unavailable] {
3601
+ color: var(--prn-label-3);
3602
+ text-decoration: line-through;
3603
+ cursor: default;
3604
+ }
3605
+ .prn-calendar-range .prn-calendar-cell[data-selected] {
3606
+ border-radius: 0;
3607
+ background: var(--prn-accent-soft);
3608
+ color: var(--prn-accent-strong);
3609
+ font-weight: 500;
3610
+ }
3611
+ .prn-calendar-range .prn-calendar-cell[data-selection-start],
3612
+ .prn-calendar-range .prn-calendar-cell[data-selection-end] {
3613
+ background: var(--prn-accent);
3614
+ color: var(--prn-on-accent);
3615
+ font-weight: 600;
3616
+ }
3617
+ .prn-calendar-range .prn-calendar-cell[data-selection-start] {
3618
+ border-radius: 50% 0 0 50%;
3619
+ }
3620
+ .prn-calendar-range .prn-calendar-cell[data-selection-end] {
3621
+ border-radius: 0 50% 50% 0;
3622
+ }
3623
+
3624
+ /* src/primitives/datepicker.css */
3625
+ .prn-dateinput {
3626
+ display: inline-flex;
3627
+ align-items: center;
3628
+ gap: 4px;
3629
+ min-height: 34px;
3630
+ width: 100%;
3631
+ padding: 4px 6px 4px 12px;
3632
+ border-radius: var(--prn-radius-md);
3633
+ background: var(--prn-fill);
3634
+ color: var(--prn-label);
3635
+ font: var(--prn-text-body);
3636
+ }
3637
+ .prn-dateinput[data-focus-within] {
3638
+ box-shadow: var(--prn-focus);
3639
+ }
3640
+ .prn-dateinput-segments {
3641
+ display: inline-flex;
3642
+ align-items: center;
3643
+ flex: 1;
3644
+ padding: 0;
3645
+ white-space: nowrap;
3646
+ }
3647
+ .prn-date-segment {
3648
+ padding: 0 1px;
3649
+ border-radius: 4px;
3650
+ font-variant-numeric: tabular-nums;
3651
+ color: var(--prn-label);
3652
+ outline: none;
3653
+ text-align: center;
3654
+ }
3655
+ .prn-date-segment[data-type=literal] {
3656
+ color: var(--prn-label-3);
3657
+ padding: 0;
3658
+ }
3659
+ .prn-date-segment[data-placeholder] {
3660
+ color: var(--prn-label-3);
3661
+ }
3662
+ .prn-date-segment[data-focused] {
3663
+ background: var(--prn-accent);
3664
+ color: var(--prn-on-accent);
3665
+ }
3666
+ .prn-date-segment[data-disabled] {
3667
+ color: var(--prn-label-3);
3668
+ }
3669
+ .prn-daterange-sep {
3670
+ color: var(--prn-label-3);
3671
+ padding: 0 4px;
3672
+ }
3673
+ .prn-daterange-group .prn-dateinput-segments {
3674
+ flex: none;
3675
+ }
3676
+ .prn-dateinput-trigger {
3677
+ display: inline-grid;
3678
+ place-items: center;
3679
+ margin-left: auto;
3680
+ width: 28px;
3681
+ height: 28px;
3682
+ flex: none;
3683
+ border: none;
3684
+ border-radius: var(--prn-radius-sm);
3685
+ background: transparent;
3686
+ color: var(--prn-label-2);
3687
+ font-size: 15px;
3688
+ cursor: pointer;
3689
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3690
+ }
3691
+ .prn-dateinput-trigger[data-hovered] {
3692
+ background: var(--prn-fill-strong);
3693
+ }
3694
+ .prn-dateinput-trigger[data-pressed] {
3695
+ background: var(--prn-fill-strong);
3696
+ filter: brightness(0.95);
3697
+ }
3698
+ .prn-dateinput-trigger[data-focus-visible] {
3699
+ box-shadow: var(--prn-focus);
3700
+ }
3701
+ .prn-cal-popover {
3702
+ min-width: 0;
3703
+ padding: 12px;
3704
+ }
3705
+ .prn-cal-dialog {
3706
+ outline: none;
3707
+ }
3708
+ .prn-calendar {
3709
+ width: max-content;
3710
+ }
3711
+ .prn-cal-header {
3712
+ display: flex;
3713
+ align-items: center;
3714
+ justify-content: space-between;
3715
+ gap: 8px;
3716
+ margin-bottom: 8px;
3717
+ }
3718
+ .prn-cal-heading {
3719
+ margin: 0;
3720
+ font: var(--prn-text-subhead);
3721
+ font-weight: 600;
3722
+ color: var(--prn-label);
3723
+ }
3724
+ .prn-cal-nav {
3725
+ display: inline-grid;
3726
+ place-items: center;
3727
+ width: 30px;
3728
+ height: 30px;
3729
+ border: none;
3730
+ border-radius: var(--prn-radius-sm);
3731
+ background: transparent;
3732
+ color: var(--prn-accent-strong);
3733
+ font-size: 18px;
3734
+ line-height: 1;
3735
+ cursor: pointer;
3736
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3737
+ }
3738
+ .prn-cal-nav[data-hovered] {
3739
+ background: var(--prn-fill);
3740
+ }
3741
+ .prn-cal-nav[data-focus-visible] {
3742
+ box-shadow: var(--prn-focus);
3743
+ }
3744
+ .prn-cal-grid {
3745
+ border-collapse: collapse;
3746
+ }
3747
+ .prn-cal-weekday {
3748
+ padding: 4px 0;
3749
+ font: var(--prn-text-footnote);
3750
+ font-weight: 600;
3751
+ color: var(--prn-label-3);
3752
+ text-align: center;
3753
+ }
3754
+ .prn-cal-cell {
3755
+ display: grid;
3756
+ place-items: center;
3757
+ width: 34px;
3758
+ height: 34px;
3759
+ margin: 1px;
3760
+ border-radius: 50%;
3761
+ font: var(--prn-text-callout);
3762
+ color: var(--prn-label);
3763
+ cursor: pointer;
3764
+ outline: none;
3765
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
3766
+ }
3767
+ .prn-cal-cell[data-outside-month] {
3768
+ display: none;
3769
+ }
3770
+ .prn-cal-cell[data-hovered] {
3771
+ background: var(--prn-fill);
3772
+ }
3773
+ .prn-cal-cell[data-pressed] {
3774
+ background: var(--prn-fill-strong);
3775
+ }
3776
+ .prn-cal-cell[data-focus-visible] {
3777
+ box-shadow: var(--prn-focus);
3778
+ }
3779
+ .prn-cal-cell[data-today] {
3780
+ color: var(--prn-accent-strong);
3781
+ font-weight: 700;
3782
+ }
3783
+ .prn-cal-cell[data-selected] {
3784
+ background: var(--prn-accent);
3785
+ color: var(--prn-on-accent);
3786
+ font-weight: 600;
3787
+ }
3788
+ .prn-cal-cell[data-disabled],
3789
+ .prn-cal-cell[data-unavailable] {
3790
+ color: var(--prn-label-3);
3791
+ cursor: default;
3792
+ }
3793
+ .prn-cal-cell[data-selection-start],
3794
+ .prn-cal-cell[data-selection-end] {
3795
+ background: var(--prn-accent);
3796
+ color: var(--prn-on-accent);
3797
+ }
3798
+ .prn-cal-cell[data-selected]:not([data-selection-start]):not([data-selection-end]) {
3799
+ background: var(--prn-accent-soft);
3800
+ color: var(--prn-accent-strong);
3801
+ border-radius: 0;
3802
+ }
3803
+
3804
+ /* src/primitives/color.css */
3805
+ .prn-colorfield-input {
3806
+ font-variant-numeric: tabular-nums;
3807
+ letter-spacing: 0.02em;
3808
+ }
3809
+ .prn-colorswatch,
3810
+ .prn-colorswatch-picker-item {
3811
+ --prn-checker: var(--prn-separator);
3812
+ background-image:
3813
+ linear-gradient(
3814
+ 45deg,
3815
+ var(--prn-checker) 25%,
3816
+ transparent 25%),
3817
+ linear-gradient(
3818
+ -45deg,
3819
+ var(--prn-checker) 25%,
3820
+ transparent 25%),
3821
+ linear-gradient(
3822
+ 45deg,
3823
+ transparent 75%,
3824
+ var(--prn-checker) 75%),
3825
+ linear-gradient(
3826
+ -45deg,
3827
+ transparent 75%,
3828
+ var(--prn-checker) 75%);
3829
+ background-size: 10px 10px;
3830
+ background-position:
3831
+ 0 0,
3832
+ 0 5px,
3833
+ 5px -5px,
3834
+ -5px 0;
3835
+ }
3836
+ .prn-colorswatch {
3837
+ width: 36px;
3838
+ height: 36px;
3839
+ border-radius: var(--prn-radius-md);
3840
+ box-shadow: inset 0 0 0 1px var(--prn-separator);
3841
+ }
3842
+ .prn-colorswatch-picker {
3843
+ display: flex;
3844
+ flex-wrap: wrap;
3845
+ gap: 10px;
3846
+ align-items: center;
3847
+ }
3848
+ .prn-colorswatch-picker-item {
3849
+ width: 36px;
3850
+ height: 36px;
3851
+ border-radius: var(--prn-radius-md);
3852
+ cursor: pointer;
3853
+ position: relative;
3854
+ outline: none;
3855
+ transition: transform var(--prn-dur-fast) var(--prn-ease-spring);
3856
+ }
3857
+ .prn-colorswatch-picker-item .prn-colorswatch {
3858
+ width: 100%;
3859
+ height: 100%;
3860
+ border-radius: inherit;
3861
+ }
3862
+ .prn-colorswatch-picker-item[data-hovered] {
3863
+ transform: scale(1.05);
3864
+ }
3865
+ .prn-colorswatch-picker-item[data-pressed] {
3866
+ transform: scale(0.95);
3867
+ }
3868
+ .prn-colorswatch-picker-item[data-selected]::after {
3869
+ content: "";
3870
+ position: absolute;
3871
+ inset: -4px;
3872
+ border-radius: calc(var(--prn-radius-md) + 3px);
3873
+ box-shadow: 0 0 0 2px var(--prn-bg), 0 0 0 4px var(--prn-accent);
3874
+ pointer-events: none;
3875
+ }
3876
+ .prn-colorswatch-picker-item[data-focus-visible] {
3877
+ box-shadow: var(--prn-focus);
3878
+ }
3879
+ .prn-colorswatch-picker-item[data-disabled] {
3880
+ opacity: 0.45;
3881
+ cursor: not-allowed;
3882
+ }
3883
+
3884
+ /* src/primitives/color-pickers.css */
3885
+ .prn-color-thumb {
3886
+ width: 22px;
3887
+ height: 22px;
3888
+ border-radius: 50%;
3889
+ border: 3px solid #fff;
3890
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.35);
3891
+ box-sizing: border-box;
3892
+ }
3893
+ .prn-color-thumb[data-focus-visible] {
3894
+ box-shadow: var(--prn-focus), 0 1px 3px rgba(0, 0, 0, 0.35);
3895
+ }
3896
+ .prn-color-thumb[data-dragging] {
3897
+ cursor: grabbing;
3898
+ }
3899
+ .prn-color-thumb[data-disabled] {
3900
+ opacity: 0.5;
3901
+ }
3902
+ .prn-colorarea {
3903
+ width: 220px;
3904
+ height: 220px;
3905
+ border-radius: var(--prn-radius-lg);
3906
+ flex: none;
3907
+ forced-color-adjust: none;
3908
+ }
3909
+ .prn-colorarea[data-disabled] {
3910
+ opacity: 0.5;
3911
+ }
3912
+ .prn-colorslider {
3913
+ display: flex;
3914
+ flex-direction: column;
3915
+ gap: 6px;
3916
+ width: 220px;
3917
+ }
3918
+ .prn-colorslider-head {
3919
+ display: flex;
3920
+ align-items: baseline;
3921
+ justify-content: space-between;
3922
+ gap: 8px;
3923
+ }
3924
+ .prn-colorslider-output {
3925
+ font: var(--prn-text-footnote);
3926
+ color: var(--prn-label-3);
3927
+ font-variant-numeric: tabular-nums;
3928
+ }
3929
+ .prn-colorslider-track {
3930
+ height: 24px;
3931
+ border-radius: 999px;
3932
+ forced-color-adjust: none;
3933
+ box-shadow: inset 0 0 0 1px var(--prn-separator);
3934
+ }
3935
+ .prn-colorslider[data-orientation=vertical] {
3936
+ width: auto;
3937
+ height: 200px;
3938
+ }
3939
+ .prn-colorslider[data-orientation=vertical] .prn-colorslider-track {
3940
+ width: 24px;
3941
+ height: 100%;
3942
+ }
3943
+ .prn-colorslider[data-disabled] {
3944
+ opacity: 0.5;
3945
+ }
3946
+ .prn-colorwheel {
3947
+ forced-color-adjust: none;
3948
+ }
3949
+ .prn-colorwheel-track {
3950
+ forced-color-adjust: none;
3951
+ }
3952
+ .prn-colorwheel[data-disabled] {
3953
+ opacity: 0.5;
3954
+ }
3955
+ .prn-colorfield .prn-input {
3956
+ font-variant-numeric: tabular-nums;
3957
+ }
3958
+ .prn-colorpicker-trigger {
3959
+ display: inline-flex;
3960
+ align-items: center;
3961
+ gap: 8px;
3962
+ min-height: 34px;
3963
+ padding: 6px 10px 6px 8px;
3964
+ border: none;
3965
+ border-radius: var(--prn-radius-md);
3966
+ background: var(--prn-fill);
3967
+ color: var(--prn-label);
3968
+ font: var(--prn-text-body);
3969
+ cursor: pointer;
3970
+ }
3971
+ .prn-colorpicker-trigger[data-hovered] {
3972
+ background: var(--prn-fill-strong);
3973
+ }
3974
+ .prn-colorpicker-trigger[data-focus-visible] {
3975
+ box-shadow: var(--prn-focus);
3976
+ }
3977
+ .prn-colorpicker-trigger[data-disabled] {
3978
+ opacity: 0.45;
3979
+ cursor: not-allowed;
3980
+ }
3981
+ .prn-colorpicker-swatch {
3982
+ width: 22px;
3983
+ height: 22px;
3984
+ border-radius: 6px;
3985
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
3986
+ forced-color-adjust: none;
3987
+ flex: none;
3988
+ }
3989
+ .prn-colorpicker-label {
3990
+ font: var(--prn-text-subhead);
3991
+ font-weight: 590;
3992
+ color: var(--prn-label-2);
3993
+ }
3994
+ .prn-colorpicker-popover {
3995
+ min-width: 244px;
3996
+ }
3997
+ .prn-colorpicker-dialog {
3998
+ outline: none;
3999
+ display: flex;
4000
+ flex-direction: column;
4001
+ gap: 14px;
4002
+ padding: 6px;
4003
+ }
4004
+ .prn-colorpicker-area {
4005
+ width: 100%;
4006
+ }
4007
+
4008
+ /* src/primitives/status.css */
4009
+ .prn-progressbar {
4010
+ display: flex;
4011
+ flex-direction: column;
4012
+ gap: 6px;
4013
+ width: 100%;
4014
+ }
4015
+ .prn-progressbar-head {
4016
+ display: flex;
4017
+ align-items: baseline;
4018
+ justify-content: space-between;
4019
+ gap: 8px;
4020
+ }
4021
+ .prn-progressbar-value {
4022
+ font: var(--prn-text-footnote);
4023
+ color: var(--prn-label-3);
4024
+ font-variant-numeric: tabular-nums;
4025
+ }
4026
+ .prn-progressbar-track {
4027
+ position: relative;
4028
+ width: 100%;
4029
+ height: 6px;
4030
+ border-radius: 999px;
4031
+ background: var(--prn-fill-strong);
4032
+ overflow: hidden;
4033
+ }
4034
+ .prn-progressbar-fill {
4035
+ height: 100%;
4036
+ border-radius: 999px;
4037
+ background: var(--prn-accent);
4038
+ transition: width var(--prn-dur) var(--prn-ease-standard);
4039
+ }
4040
+ .prn-progressbar-fill[data-indeterminate] {
4041
+ position: absolute;
4042
+ inset: 0 auto 0 0;
4043
+ width: 40%;
4044
+ transition: none;
4045
+ animation: prn-progress-slide 1.1s var(--prn-ease-standard) infinite;
4046
+ background:
4047
+ linear-gradient(
4048
+ 90deg,
4049
+ var(--prn-accent-soft),
4050
+ var(--prn-accent),
4051
+ var(--prn-accent-soft));
4052
+ }
4053
+ @keyframes prn-progress-slide {
4054
+ from {
4055
+ transform: translateX(-120%);
4056
+ }
4057
+ to {
4058
+ transform: translateX(320%);
4059
+ }
4060
+ }
4061
+ .prn-meter {
4062
+ display: flex;
4063
+ flex-direction: column;
4064
+ gap: 6px;
4065
+ width: 100%;
4066
+ }
4067
+ .prn-meter-head {
4068
+ display: flex;
4069
+ align-items: baseline;
4070
+ justify-content: space-between;
4071
+ gap: 8px;
4072
+ }
4073
+ .prn-meter-value {
4074
+ font: var(--prn-text-footnote);
4075
+ color: var(--prn-label-3);
4076
+ font-variant-numeric: tabular-nums;
4077
+ }
4078
+ .prn-meter-track {
4079
+ width: 100%;
4080
+ height: 6px;
4081
+ border-radius: 999px;
4082
+ background: var(--prn-fill-strong);
4083
+ overflow: hidden;
4084
+ }
4085
+ .prn-meter-fill {
4086
+ height: 100%;
4087
+ border-radius: 999px;
4088
+ background: var(--prn-accent);
4089
+ transition: width var(--prn-dur) var(--prn-ease-standard), background var(--prn-dur-fast) var(--prn-ease-standard);
4090
+ }
4091
+ .prn-meter-fill[data-band=low] {
4092
+ background: var(--prn-green);
4093
+ }
4094
+ .prn-meter-fill[data-band=medium] {
4095
+ background: var(--prn-orange);
4096
+ }
4097
+ .prn-meter-fill[data-band=high] {
4098
+ background: var(--prn-red);
4099
+ }
4100
+ .prn-separator {
4101
+ margin: 0;
4102
+ border: none;
4103
+ background: var(--prn-separator);
4104
+ align-self: stretch;
4105
+ flex: none;
4106
+ }
4107
+ .prn-separator:not([aria-orientation=vertical]) {
4108
+ width: 100%;
4109
+ height: 1px;
4110
+ }
4111
+ .prn-separator[aria-orientation=vertical] {
4112
+ width: 1px;
4113
+ height: auto;
4114
+ min-height: 1em;
4115
+ align-self: stretch;
4116
+ }
4117
+ .prn-group {
4118
+ display: flex;
4119
+ align-items: center;
4120
+ gap: 8px;
4121
+ border-radius: var(--prn-radius-md);
4122
+ }
4123
+ .prn-group[data-focus-within] {
4124
+ box-shadow: var(--prn-focus);
4125
+ }
4126
+ .prn-group[data-disabled] {
4127
+ opacity: 0.45;
4128
+ }
4129
+
4130
+ /* src/primitives/toast.css */
4131
+ .prn-toast-region {
4132
+ position: fixed;
4133
+ bottom: 0;
4134
+ left: 0;
4135
+ right: 0;
4136
+ z-index: 9999;
4137
+ display: flex;
4138
+ flex-direction: column;
4139
+ align-items: center;
4140
+ gap: 10px;
4141
+ padding: 16px;
4142
+ pointer-events: none;
4143
+ outline: none;
4144
+ }
4145
+ .prn-toast-region[data-focus-visible] {
4146
+ outline: none;
4147
+ }
4148
+ .prn-toast {
4149
+ pointer-events: auto;
4150
+ display: flex;
4151
+ align-items: flex-start;
4152
+ gap: 12px;
4153
+ width: min(380px, calc(100vw - 32px));
4154
+ padding: 12px 14px;
4155
+ border-radius: var(--prn-radius-lg);
4156
+ background: var(--prn-bg-elevated);
4157
+ border: 0.5px solid var(--prn-separator);
4158
+ box-shadow: var(--prn-shadow-pop);
4159
+ animation: prn-toast-in var(--prn-dur) var(--prn-ease-spring);
4160
+ }
4161
+ .prn-toast[data-focus-visible] {
4162
+ box-shadow: var(--prn-shadow-pop), var(--prn-focus);
4163
+ }
4164
+ @keyframes prn-toast-in {
4165
+ from {
4166
+ opacity: 0;
4167
+ transform: translateY(16px) scale(0.96);
4168
+ }
4169
+ to {
4170
+ opacity: 1;
4171
+ transform: translateY(0) scale(1);
4172
+ }
4173
+ }
4174
+ @media (prefers-reduced-motion: reduce) {
4175
+ .prn-toast {
4176
+ animation: none;
4177
+ }
4178
+ }
4179
+ .prn-toast::before {
4180
+ content: "";
4181
+ align-self: stretch;
4182
+ width: 3px;
4183
+ flex: 0 0 auto;
4184
+ border-radius: 999px;
4185
+ background: var(--prn-accent);
4186
+ }
4187
+ .prn-toast[data-variant=success]::before {
4188
+ background: var(--prn-green);
4189
+ }
4190
+ .prn-toast[data-variant=warning]::before {
4191
+ background: var(--prn-orange);
4192
+ }
4193
+ .prn-toast[data-variant=error]::before {
4194
+ background: var(--prn-red);
4195
+ }
4196
+ .prn-toast-content {
4197
+ display: flex;
4198
+ flex-direction: column;
4199
+ gap: 2px;
4200
+ flex: 1 1 auto;
4201
+ min-width: 0;
4202
+ }
4203
+ .prn-toast-title {
4204
+ font: var(--prn-text-subhead);
4205
+ font-weight: 590;
4206
+ color: var(--prn-label);
4207
+ }
4208
+ .prn-toast-desc {
4209
+ font: var(--prn-text-footnote);
4210
+ color: var(--prn-label-2);
4211
+ }
4212
+ .prn-toast-close {
4213
+ flex: 0 0 auto;
4214
+ display: inline-flex;
4215
+ align-items: center;
4216
+ justify-content: center;
4217
+ width: 22px;
4218
+ height: 22px;
4219
+ margin: -2px -2px 0 0;
4220
+ padding: 0;
4221
+ border: none;
4222
+ border-radius: var(--prn-radius-sm);
4223
+ background: transparent;
4224
+ color: var(--prn-label-3);
4225
+ cursor: pointer;
4226
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard);
4227
+ }
4228
+ .prn-toast-close[data-hovered] {
4229
+ background: var(--prn-fill);
4230
+ }
4231
+ .prn-toast-close[data-pressed] {
4232
+ background: var(--prn-fill-strong);
4233
+ }
4234
+ .prn-toast-close[data-focus-visible] {
4235
+ box-shadow: var(--prn-focus);
4236
+ }
4237
+ .prn-toast-close-icon {
4238
+ width: 14px;
4239
+ height: 14px;
4240
+ stroke: currentColor;
4241
+ stroke-width: 1.6;
4242
+ stroke-linecap: round;
4243
+ fill: none;
4244
+ }
4245
+
4246
+ /* src/primitives/dropzone.css */
4247
+ .prn-dropzone {
4248
+ display: flex;
4249
+ flex-direction: column;
4250
+ align-items: center;
4251
+ justify-content: center;
4252
+ gap: 10px;
4253
+ min-height: 140px;
4254
+ padding: 24px;
4255
+ text-align: center;
4256
+ border: 1.5px dashed var(--prn-separator);
4257
+ border-radius: var(--prn-radius-lg);
4258
+ background: var(--prn-bg);
4259
+ color: var(--prn-label-2);
4260
+ font: var(--prn-text-callout);
4261
+ outline: none;
4262
+ transition: background var(--prn-dur-fast) var(--prn-ease-standard), border-color var(--prn-dur-fast) var(--prn-ease-standard);
4263
+ }
4264
+ .prn-dropzone[data-hovered] {
4265
+ border-color: var(--prn-label-3);
4266
+ }
4267
+ .prn-dropzone[data-drop-target] {
4268
+ border-color: var(--prn-accent);
4269
+ border-style: solid;
4270
+ background: var(--prn-accent-soft);
4271
+ color: var(--prn-accent-strong);
4272
+ }
4273
+ .prn-dropzone[data-focus-visible] {
4274
+ box-shadow: var(--prn-focus);
4275
+ }
4276
+ .prn-dropzone[data-disabled] {
4277
+ opacity: 0.45;
4278
+ }
4279
+
4280
+ /* src/surfaces/glass.css */
4281
+ .prn-glass {
4282
+ background-color: var(--prn-glass-bg-opaque);
4283
+ background-image: linear-gradient(var(--prn-glass-tint, transparent), var(--prn-glass-tint, transparent));
4284
+ color: var(--prn-label);
4285
+ }
4286
+ @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
4287
+ .prn-glass {
4288
+ background-color: var(--prn-glass-bg);
4289
+ -webkit-backdrop-filter: var(--prn-glass-blur);
4290
+ backdrop-filter: var(--prn-glass-blur);
4291
+ }
4292
+ }
4293
+ .prn-glass-bar {
4294
+ border-radius: 0;
4295
+ border-bottom: 1px solid var(--prn-glass-border);
4296
+ }
4297
+ .prn-glass-sidebar {
4298
+ border-radius: 0;
4299
+ border-right: 1px solid var(--prn-glass-border);
4300
+ }
4301
+ .prn-glass-overlay {
4302
+ border: 1px solid var(--prn-glass-border);
4303
+ border-radius: var(--prn-radius-lg);
4304
+ box-shadow: var(--prn-glass-shadow);
4305
+ }
4306
+ .prn-glass-card {
4307
+ border: 1px solid var(--prn-glass-border);
4308
+ border-radius: var(--prn-radius-card);
4309
+ box-shadow: var(--prn-glass-shadow);
4310
+ }
4311
+ .prn-glass-floating {
4312
+ border: 1px solid var(--prn-glass-border);
4313
+ border-radius: var(--prn-radius-pill);
4314
+ box-shadow: var(--prn-glass-shadow);
4315
+ }
4316
+ @media (prefers-reduced-transparency: reduce) {
4317
+ .prn-glass {
4318
+ background-color: var(--prn-glass-bg-opaque);
4319
+ -webkit-backdrop-filter: none;
4320
+ backdrop-filter: none;
4321
+ }
4322
+ }
4323
+ @media (prefers-reduced-motion: reduce) {
4324
+ .prn-glass {
4325
+ transition: none;
4326
+ }
4327
+ }
4328
+ /*# sourceMappingURL=index.css.map */