@proveanything/smartlinks-utils-ui 0.9.1 → 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.
@@ -1,3 +1,2153 @@
1
+ /* src/components/RecordsAdmin/shell/tokens.css */
2
+ :root {
3
+ --ra-status-own: var(--ra-emerald, 142 71% 45%);
4
+ --ra-status-shared: var(--ra-amber, 38 92% 50%);
5
+ --ra-status-missing: var(--muted-foreground, 220 9% 46%);
6
+ --ra-accent: var(--primary, 222 47% 11%);
7
+ --ra-surface: var(--card, 0 0% 100%);
8
+ --ra-border: var(--border, 220 13% 91%);
9
+ --ra-text: var(--foreground, 222 47% 11%);
10
+ --ra-muted: var(--muted, 220 14% 96%);
11
+ --ra-muted-text: var(--muted-foreground, 220 9% 46%);
12
+ --ra-radius: var(--radius, 0.625rem);
13
+ --ra-dot-size: 0.5rem;
14
+ --ra-page-bg: var(--background, 220 14% 98%);
15
+ --ra-card-shadow: 0 1px 2px hsl(var(--ra-accent) / 0.04), 0 4px 12px hsl(var(--ra-accent) / 0.05);
16
+ --ra-card-shadow-hover: 0 2px 4px hsl(var(--ra-accent) / 0.06), 0 8px 24px hsl(var(--ra-accent) / 0.08);
17
+ --ra-row-hover: hsl(var(--ra-accent) / 0.05);
18
+ --ra-row-active-bg: hsl(var(--ra-accent) / 0.10);
19
+ --ra-row-active-bd: hsl(var(--ra-accent) / 0.45);
20
+ --ra-focus-ring: hsl(var(--ra-accent) / 0.35);
21
+ --ra-font-display: var(--font-display, var(--font-sans, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif));
22
+ --ra-font-ui: var(--font-sans, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
23
+ --ra-title-weight: 600;
24
+ --ra-display-weight: 700;
25
+ --ra-info: var(--ra-blue, 214 95% 55%);
26
+ --ra-success: var(--ra-emerald, 142 71% 45%);
27
+ --ra-warning: var(--ra-amber, 38 92% 50%);
28
+ --ra-danger: var(--destructive, 0 72% 51%);
29
+ }
30
+ :root {
31
+ --sl-control-bg: var(--muted, 220 14% 96%);
32
+ --sl-control-fg: var(--muted-foreground, 220 9% 40%);
33
+ --sl-control-border: var(--border, 220 13% 88%);
34
+ --sl-control-active-bg: var(--primary, 222 47% 11%);
35
+ --sl-control-active-fg: var(--primary-foreground, 0 0% 100%);
36
+ --sl-control-active-bd: var(--primary, 222 47% 11%);
37
+ --sl-control-hover-bg: var(--sl-control-active-bg, 222 47% 11%);
38
+ --sl-control-hover-fg: var(--foreground, 222 47% 11%);
39
+ --sl-control-focus-ring: var(--sl-control-active-bg, 222 47% 11%);
40
+ --sl-control-radius: var(--radius, 0.5rem);
41
+ --sl-control-weight: 500;
42
+ --sl-control-active-weight: 600;
43
+ }
44
+ .ra-status-dot {
45
+ display: inline-block;
46
+ width: var(--ra-dot-size);
47
+ height: var(--ra-dot-size);
48
+ border-radius: 9999px;
49
+ flex-shrink: 0;
50
+ }
51
+ .ra-status-own {
52
+ background: hsl(var(--ra-status-own));
53
+ }
54
+ .ra-status-shared {
55
+ background: hsl(var(--ra-status-shared));
56
+ }
57
+ .ra-status-missing {
58
+ background: hsl(var(--ra-status-missing) / 0.4);
59
+ border: 1px solid hsl(var(--ra-status-missing) / 0.6);
60
+ }
61
+ .ra-row-active {
62
+ background: var(--ra-row-active-bg);
63
+ border-color: var(--ra-row-active-bd) !important;
64
+ }
65
+
66
+ /* src/components/RecordsAdmin/shell/shell.css */
67
+ .ra-shell {
68
+ color: hsl(var(--ra-text));
69
+ background: hsl(var(--ra-page-bg));
70
+ font-family: var(--ra-font-ui);
71
+ }
72
+ .ra-shell *,
73
+ .ra-shell *::before,
74
+ .ra-shell *::after {
75
+ box-sizing: border-box;
76
+ }
77
+ .ra-shell .ra-card {
78
+ background: hsl(var(--ra-surface));
79
+ border: 1px solid hsl(var(--ra-border));
80
+ border-radius: var(--ra-radius);
81
+ box-shadow: var(--ra-card-shadow);
82
+ }
83
+ .ra-shell .ra-card-hover {
84
+ transition:
85
+ box-shadow .18s ease,
86
+ transform .18s ease,
87
+ border-color .18s ease;
88
+ }
89
+ .ra-shell .ra-card-hover:hover {
90
+ box-shadow: var(--ra-card-shadow-hover);
91
+ }
92
+ .ra-shell .ra-display {
93
+ font-family: var(--ra-font-display);
94
+ font-weight: var(--ra-display-weight);
95
+ letter-spacing: -0.01em;
96
+ }
97
+ .ra-shell .ra-title {
98
+ font-weight: var(--ra-title-weight);
99
+ }
100
+ .ra-shell :where(button, [role=button], input, select, textarea, a):focus-visible {
101
+ outline: none;
102
+ box-shadow: 0 0 0 3px var(--ra-focus-ring);
103
+ border-radius: calc(var(--ra-radius) * 0.6);
104
+ }
105
+ .ra-shell .ra-header {
106
+ display: block;
107
+ width: 100%;
108
+ }
109
+ .ra-shell .ra-header__main {
110
+ flex: 1;
111
+ min-width: 0;
112
+ display: flex;
113
+ align-items: flex-start;
114
+ gap: 0.55rem;
115
+ }
116
+ .ra-shell .ra-header-aside {
117
+ display: flex;
118
+ align-items: flex-start;
119
+ gap: 0.5rem;
120
+ flex-shrink: 0;
121
+ }
122
+ .ra-shell .ra-header-icon {
123
+ flex-shrink: 0;
124
+ display: inline-flex;
125
+ align-items: center;
126
+ justify-content: flex-start;
127
+ background: transparent;
128
+ color: hsl(var(--ra-text));
129
+ border: 0;
130
+ padding: 0;
131
+ margin-top: 0.1rem;
132
+ }
133
+ .ra-shell .ra-header-icon > svg {
134
+ width: 1.05rem;
135
+ height: 1.05rem;
136
+ }
137
+ .ra-shell .ra-header-text {
138
+ flex: 1;
139
+ min-width: 0;
140
+ }
141
+ .ra-shell .ra-header-title {
142
+ font-family: var(--ra-font-display);
143
+ font-weight: 700;
144
+ font-size: 1.2rem;
145
+ line-height: 1.2;
146
+ color: hsl(var(--ra-text));
147
+ letter-spacing: -0.015em;
148
+ margin: 0;
149
+ display: inline-flex;
150
+ align-items: center;
151
+ gap: 0.5rem;
152
+ }
153
+ .ra-shell .ra-header-subtitle {
154
+ font-size: 0.78rem;
155
+ color: hsl(var(--ra-muted-text));
156
+ margin-top: 0.1rem;
157
+ line-height: 1.3;
158
+ }
159
+ .ra-shell .ra-header-stats {
160
+ display: flex;
161
+ align-items: stretch;
162
+ gap: 0.15rem;
163
+ padding: 0.15rem 0.4rem;
164
+ border-radius: calc(var(--ra-radius) * 0.75);
165
+ background: hsl(var(--ra-surface) / 0.7);
166
+ border: 1px solid hsl(var(--ra-border));
167
+ }
168
+ .ra-shell .ra-header-stats--titled {
169
+ flex-direction: column;
170
+ align-items: stretch;
171
+ padding: 0.4rem 0.55rem;
172
+ gap: 0.3rem;
173
+ }
174
+ .ra-shell .ra-header-stats .ra-stats-items {
175
+ display: flex;
176
+ align-items: stretch;
177
+ gap: 0.15rem;
178
+ }
179
+ .ra-shell .ra-header-stats .ra-stats-heading {
180
+ display: flex;
181
+ align-items: center;
182
+ gap: 0.35rem;
183
+ color: hsl(var(--ra-muted-text));
184
+ font-size: 0.65rem;
185
+ text-transform: uppercase;
186
+ letter-spacing: 0.06em;
187
+ }
188
+ .ra-shell .ra-header-stats .ra-stats-heading-icon {
189
+ display: inline-flex;
190
+ align-items: center;
191
+ color: hsl(var(--ra-text));
192
+ opacity: 0.75;
193
+ }
194
+ .ra-shell .ra-header-stats .ra-stats-heading-icon > svg {
195
+ width: 0.85rem;
196
+ height: 0.85rem;
197
+ }
198
+ .ra-shell .ra-stat {
199
+ display: flex;
200
+ flex-direction: column;
201
+ align-items: center;
202
+ padding: 0.15rem 0.45rem;
203
+ min-width: 2.5rem;
204
+ }
205
+ .ra-shell .ra-stat-value {
206
+ font-family: var(--ra-font-display);
207
+ font-weight: var(--ra-display-weight);
208
+ font-size: 0.85rem;
209
+ color: hsl(var(--ra-text));
210
+ line-height: 1;
211
+ }
212
+ .ra-shell .ra-stat-label {
213
+ font-size: 0.6rem;
214
+ text-transform: uppercase;
215
+ letter-spacing: 0.04em;
216
+ color: hsl(var(--ra-muted-text));
217
+ margin-top: 0.15rem;
218
+ }
219
+ .ra-shell .ra-stat-divider {
220
+ width: 1px;
221
+ background: hsl(var(--ra-border));
222
+ margin: 0.25rem 0;
223
+ }
224
+ .ra-shell .ra-header-actions {
225
+ display: flex;
226
+ align-items: center;
227
+ gap: 0.5rem;
228
+ }
229
+ .ra-shell .ra-tabs {
230
+ display: flex;
231
+ gap: 0.25rem;
232
+ padding: 0.25rem;
233
+ background: hsl(var(--sl-control-bg));
234
+ border-radius: var(--sl-control-radius);
235
+ border: 1px solid hsl(var(--sl-control-border));
236
+ }
237
+ .ra-shell .ra-tab {
238
+ display: inline-flex;
239
+ align-items: center;
240
+ gap: 0.4rem;
241
+ padding: 0.4rem 0.7rem;
242
+ border-radius: calc(var(--sl-control-radius) - 2px);
243
+ font-size: 0.78rem;
244
+ font-weight: var(--sl-control-weight);
245
+ color: hsl(var(--sl-control-fg));
246
+ background: transparent;
247
+ border: 0;
248
+ cursor: pointer;
249
+ transition:
250
+ background .15s ease,
251
+ color .15s ease,
252
+ transform .15s ease;
253
+ white-space: nowrap;
254
+ }
255
+ .ra-shell .ra-tab:hover {
256
+ background: hsl(var(--sl-control-hover-bg) / 0.10);
257
+ color: hsl(var(--sl-control-hover-fg));
258
+ }
259
+ .ra-shell .ra-tab:focus-visible {
260
+ outline: none;
261
+ box-shadow: 0 0 0 2px hsl(var(--sl-control-focus-ring) / 0.45);
262
+ }
263
+ .ra-shell .ra-tab[aria-selected=true] {
264
+ background: hsl(var(--sl-control-active-bg));
265
+ color: hsl(var(--sl-control-active-fg));
266
+ border-color: hsl(var(--sl-control-active-bd));
267
+ font-weight: var(--sl-control-active-weight);
268
+ box-shadow: 0 1px 2px hsl(var(--sl-control-active-bg) / 0.25);
269
+ }
270
+ .ra-shell .ra-tab[aria-selected=true]:hover {
271
+ background: hsl(var(--sl-control-active-bg) / 0.92);
272
+ color: hsl(var(--sl-control-active-fg));
273
+ }
274
+ .ra-shell .ra-tab[aria-selected=true] .ra-tab-icon {
275
+ color: hsl(var(--sl-control-active-fg));
276
+ }
277
+ .ra-shell .ra-tab[disabled] {
278
+ opacity: .5;
279
+ cursor: not-allowed;
280
+ }
281
+ .ra-shell .ra-tab-count {
282
+ display: inline-flex;
283
+ align-items: center;
284
+ justify-content: center;
285
+ min-width: 1.25rem;
286
+ padding: 0 0.35rem;
287
+ height: 1.1rem;
288
+ border-radius: 999px;
289
+ background: hsl(var(--sl-control-active-fg) / 0.20);
290
+ color: hsl(var(--sl-control-active-fg));
291
+ font-size: 0.625rem;
292
+ font-weight: 600;
293
+ line-height: 1;
294
+ }
295
+ .ra-shell .ra-tab[aria-selected=false] .ra-tab-count {
296
+ background: hsl(var(--sl-control-fg) / 0.15);
297
+ color: hsl(var(--sl-control-fg));
298
+ }
299
+ .ra-shell[data-density=compact] .ra-row {
300
+ padding-block: 0.4rem;
301
+ }
302
+ .ra-shell .ra-row {
303
+ display: flex;
304
+ align-items: center;
305
+ gap: 0.55rem;
306
+ width: 100%;
307
+ text-align: left;
308
+ padding: 0.45rem 0.75rem;
309
+ border-left: 3px solid transparent;
310
+ background: transparent;
311
+ border-bottom: 1px solid transparent;
312
+ transition: background .12s ease, border-color .12s ease;
313
+ cursor: pointer;
314
+ color: hsl(var(--ra-text));
315
+ font-family: inherit;
316
+ }
317
+ .ra-shell .ra-row + .ra-row {
318
+ border-top: 1px solid hsl(var(--ra-border) / 0.6);
319
+ }
320
+ .ra-shell .ra-row:hover {
321
+ background: var(--ra-row-hover);
322
+ }
323
+ .ra-shell .ra-row[data-selected=true] {
324
+ background: var(--ra-row-active-bg);
325
+ border-left-color: var(--ra-row-active-bd);
326
+ }
327
+ .ra-shell .ra-row-compact {
328
+ padding-block: 0.3rem;
329
+ }
330
+ .ra-shell .ra-row-icon {
331
+ display: inline-flex;
332
+ align-items: center;
333
+ justify-content: center;
334
+ width: 1.5rem;
335
+ height: 1.5rem;
336
+ border-radius: calc(var(--ra-radius) * 0.6);
337
+ background: hsl(var(--ra-muted));
338
+ color: hsl(var(--ra-muted-text));
339
+ flex-shrink: 0;
340
+ }
341
+ .ra-shell .ra-row[data-selected=true] .ra-row-icon {
342
+ background: hsl(var(--ra-accent) / 0.15);
343
+ color: hsl(var(--ra-accent));
344
+ }
345
+ .ra-shell .ra-row-body {
346
+ flex: 1;
347
+ min-width: 0;
348
+ }
349
+ .ra-shell .ra-row-title {
350
+ font-weight: var(--ra-title-weight);
351
+ font-size: 0.8125rem;
352
+ line-height: 1.2;
353
+ color: hsl(var(--ra-text));
354
+ white-space: nowrap;
355
+ overflow: hidden;
356
+ text-overflow: ellipsis;
357
+ }
358
+ .ra-shell .ra-row-sub {
359
+ font-size: 0.6875rem;
360
+ color: hsl(var(--ra-muted-text));
361
+ margin-top: 0.05rem;
362
+ white-space: nowrap;
363
+ overflow: hidden;
364
+ text-overflow: ellipsis;
365
+ }
366
+ .ra-shell .ra-row-rule-chips {
367
+ display: flex;
368
+ flex-wrap: wrap;
369
+ gap: 0.2rem;
370
+ margin-top: 0.2rem;
371
+ }
372
+ .ra-shell .ra-rule-chip {
373
+ display: inline-flex;
374
+ align-items: center;
375
+ max-width: 100%;
376
+ padding: 0.05rem 0.4rem;
377
+ border-radius: 999px;
378
+ font-size: 0.625rem;
379
+ font-weight: 500;
380
+ line-height: 1.4;
381
+ background: hsl(var(--ra-accent) / 0.10);
382
+ color: hsl(var(--ra-accent));
383
+ border: 1px solid hsl(var(--ra-accent) / 0.20);
384
+ white-space: nowrap;
385
+ overflow: hidden;
386
+ text-overflow: ellipsis;
387
+ }
388
+ .ra-shell .ra-rule-chip-more {
389
+ background: hsl(var(--ra-muted));
390
+ color: hsl(var(--ra-muted-text));
391
+ border-color: hsl(var(--ra-border));
392
+ }
393
+ .ra-shell[data-density=compact] .ra-row-rule-chips {
394
+ margin-top: 0.15rem;
395
+ gap: 0.15rem;
396
+ }
397
+ .ra-shell[data-density=compact] .ra-rule-chip {
398
+ font-size: 0.6rem;
399
+ padding: 0.02rem 0.35rem;
400
+ }
401
+ .ra-shell .ra-rule-filters {
402
+ display: flex;
403
+ flex-direction: column;
404
+ gap: 0.3rem;
405
+ }
406
+ .ra-shell .ra-rule-filters-row {
407
+ display: flex;
408
+ flex-wrap: wrap;
409
+ gap: 0.25rem;
410
+ }
411
+ .ra-shell .ra-rule-filter-chip {
412
+ display: inline-flex;
413
+ align-items: center;
414
+ gap: 0.3rem;
415
+ padding: 0.15rem 0.5rem;
416
+ border-radius: 999px;
417
+ font-size: 0.65rem;
418
+ font-weight: 500;
419
+ line-height: 1.4;
420
+ background: hsl(var(--ra-muted));
421
+ color: hsl(var(--ra-muted-text));
422
+ border: 1px solid hsl(var(--ra-border));
423
+ cursor: pointer;
424
+ transition:
425
+ background .12s ease,
426
+ color .12s ease,
427
+ border-color .12s ease;
428
+ max-width: 100%;
429
+ }
430
+ .ra-shell .ra-rule-filter-chip:hover {
431
+ background: hsl(var(--ra-accent) / 0.10);
432
+ color: hsl(var(--ra-text));
433
+ border-color: hsl(var(--ra-accent) / 0.25);
434
+ }
435
+ .ra-shell .ra-rule-filter-chip[data-active=true] {
436
+ background: hsl(var(--ra-accent) / 0.15);
437
+ color: hsl(var(--ra-accent));
438
+ border-color: hsl(var(--ra-accent) / 0.40);
439
+ }
440
+ .ra-shell .ra-rule-filter-chip[data-tone=complexity][data-active=true] {
441
+ background: hsl(var(--ra-info) / 0.15);
442
+ color: hsl(var(--ra-info));
443
+ border-color: hsl(var(--ra-info) / 0.40);
444
+ }
445
+ .ra-shell .ra-rule-filter-chip-label {
446
+ white-space: nowrap;
447
+ overflow: hidden;
448
+ text-overflow: ellipsis;
449
+ max-width: 9rem;
450
+ }
451
+ .ra-shell .ra-rule-filter-chip-count {
452
+ display: inline-flex;
453
+ align-items: center;
454
+ justify-content: center;
455
+ min-width: 1.1rem;
456
+ height: 1rem;
457
+ padding: 0 0.3rem;
458
+ border-radius: 999px;
459
+ background: hsl(var(--ra-surface));
460
+ color: hsl(var(--ra-muted-text));
461
+ font-size: 0.6rem;
462
+ font-weight: 600;
463
+ }
464
+ .ra-shell .ra-rule-filter-chip[data-active=true] .ra-rule-filter-chip-count {
465
+ background: hsl(var(--ra-accent) / 0.18);
466
+ color: hsl(var(--ra-accent));
467
+ }
468
+ .ra-shell .ra-rule-filter-clear {
469
+ align-self: flex-start;
470
+ background: transparent;
471
+ border: 0;
472
+ padding: 0;
473
+ color: hsl(var(--ra-muted-text));
474
+ font-size: 0.65rem;
475
+ cursor: pointer;
476
+ text-decoration: underline;
477
+ text-decoration-style: dotted;
478
+ }
479
+ .ra-shell .ra-rule-filter-clear:hover {
480
+ color: hsl(var(--ra-text));
481
+ }
482
+ .ra-shell[data-density=compact] .ra-row {
483
+ padding-block: 0.3rem;
484
+ gap: 0.45rem;
485
+ }
486
+ .ra-shell[data-density=compact] .ra-row-title {
487
+ font-size: 0.78125rem;
488
+ }
489
+ .ra-shell .ra-row-actions {
490
+ display: inline-flex;
491
+ align-items: center;
492
+ gap: 0.15rem;
493
+ margin-left: auto;
494
+ opacity: 0;
495
+ transition: opacity .15s ease;
496
+ }
497
+ .ra-shell .ra-row:hover .ra-row-actions,
498
+ .ra-shell .ra-row:focus-within .ra-row-actions {
499
+ opacity: 1;
500
+ }
501
+ .ra-shell .ra-row-action {
502
+ width: 1.6rem;
503
+ height: 1.6rem;
504
+ display: inline-flex;
505
+ align-items: center;
506
+ justify-content: center;
507
+ border-radius: 999px;
508
+ background: transparent;
509
+ color: hsl(var(--ra-muted-text));
510
+ border: 0;
511
+ cursor: pointer;
512
+ transition: background .15s ease, color .15s ease;
513
+ }
514
+ .ra-shell .ra-row-action:hover {
515
+ background: hsl(var(--ra-accent) / 0.10);
516
+ color: hsl(var(--ra-text));
517
+ }
518
+ .ra-shell .ra-row-action[data-tone=danger]:hover {
519
+ background: hsl(var(--ra-danger) / 0.12);
520
+ color: hsl(var(--ra-danger));
521
+ }
522
+ .ra-shell .ra-chip {
523
+ display: inline-flex;
524
+ align-items: center;
525
+ gap: 0.3rem;
526
+ padding: 0.15rem 0.5rem;
527
+ border-radius: 999px;
528
+ font-size: 0.6875rem;
529
+ font-weight: 500;
530
+ background: hsl(var(--ra-muted));
531
+ color: hsl(var(--ra-muted-text));
532
+ border: 1px solid hsl(var(--ra-border));
533
+ white-space: nowrap;
534
+ max-width: 14rem;
535
+ overflow: hidden;
536
+ text-overflow: ellipsis;
537
+ }
538
+ .ra-shell .ra-chip[data-tone=success] {
539
+ background: hsl(var(--ra-success) / 0.12);
540
+ color: hsl(var(--ra-success));
541
+ border-color: hsl(var(--ra-success) / 0.30);
542
+ }
543
+ .ra-shell .ra-chip[data-tone=warning] {
544
+ background: hsl(var(--ra-warning) / 0.14);
545
+ color: hsl(var(--ra-warning));
546
+ border-color: hsl(var(--ra-warning) / 0.35);
547
+ }
548
+ .ra-shell .ra-chip[data-tone=info] {
549
+ background: hsl(var(--ra-info) / 0.10);
550
+ color: hsl(var(--ra-info));
551
+ border-color: hsl(var(--ra-info) / 0.30);
552
+ }
553
+ .ra-shell .ra-chip[data-tone=danger] {
554
+ background: hsl(var(--ra-danger) / 0.10);
555
+ color: hsl(var(--ra-danger));
556
+ border-color: hsl(var(--ra-danger) / 0.30);
557
+ }
558
+ .ra-shell .ra-chip[data-tone=muted] {
559
+ background: transparent;
560
+ color: hsl(var(--ra-muted-text));
561
+ border-style: dashed;
562
+ }
563
+ .ra-shell .ra-group {
564
+ border-bottom: 1px solid hsl(var(--ra-border));
565
+ }
566
+ .ra-shell .ra-group:last-child {
567
+ border-bottom: 0;
568
+ }
569
+ .ra-shell .ra-group-summary {
570
+ display: flex;
571
+ align-items: center;
572
+ gap: 0.5rem;
573
+ width: 100%;
574
+ padding: 0.5rem 0.85rem;
575
+ background: hsl(var(--ra-muted) / 0.6);
576
+ font-size: 0.7rem;
577
+ font-weight: 600;
578
+ text-transform: uppercase;
579
+ letter-spacing: 0.04em;
580
+ color: hsl(var(--ra-muted-text));
581
+ border: 0;
582
+ cursor: pointer;
583
+ transition: background .12s ease;
584
+ }
585
+ .ra-shell .ra-group-summary:hover {
586
+ background: hsl(var(--ra-muted));
587
+ }
588
+ .ra-shell .ra-group-summary .ra-group-chevron {
589
+ transition: transform .15s ease;
590
+ }
591
+ .ra-shell .ra-group[data-open=false] .ra-group-chevron {
592
+ transform: rotate(-90deg);
593
+ }
594
+ .ra-shell .ra-group-name {
595
+ flex: 1;
596
+ text-align: left;
597
+ }
598
+ .ra-shell .ra-group-count {
599
+ font-size: 0.65rem;
600
+ font-weight: 600;
601
+ color: hsl(var(--ra-muted-text));
602
+ background: hsl(var(--ra-surface));
603
+ border: 1px solid hsl(var(--ra-border));
604
+ border-radius: 999px;
605
+ padding: 0.05rem 0.4rem;
606
+ }
607
+ .ra-shell .ra-group[data-open=false] .ra-group-body {
608
+ display: none;
609
+ }
610
+ .ra-shell .ra-empty {
611
+ display: flex;
612
+ flex-direction: column;
613
+ align-items: center;
614
+ justify-content: center;
615
+ text-align: center;
616
+ padding: 2.5rem 1.5rem;
617
+ gap: 0.75rem;
618
+ }
619
+ .ra-shell .ra-empty-icon {
620
+ display: inline-flex;
621
+ align-items: center;
622
+ justify-content: center;
623
+ width: 3.25rem;
624
+ height: 3.25rem;
625
+ border-radius: 999px;
626
+ background: hsl(var(--ra-accent) / 0.08);
627
+ color: hsl(var(--ra-accent));
628
+ margin-bottom: 0.25rem;
629
+ }
630
+ .ra-shell .ra-empty-title {
631
+ font-family: var(--ra-font-display);
632
+ font-weight: var(--ra-display-weight);
633
+ font-size: 1rem;
634
+ color: hsl(var(--ra-text));
635
+ margin: 0;
636
+ letter-spacing: -0.01em;
637
+ }
638
+ .ra-shell .ra-empty-body {
639
+ font-size: 0.8125rem;
640
+ color: hsl(var(--ra-muted-text));
641
+ max-width: 22rem;
642
+ line-height: 1.45;
643
+ }
644
+ .ra-shell .ra-empty-actions {
645
+ display: flex;
646
+ align-items: center;
647
+ gap: 0.5rem;
648
+ margin-top: 0.25rem;
649
+ flex-wrap: wrap;
650
+ justify-content: center;
651
+ }
652
+ .ra-shell .ra-btn {
653
+ display: inline-flex;
654
+ align-items: center;
655
+ gap: 0.4rem;
656
+ padding: 0.45rem 0.85rem;
657
+ border-radius: calc(var(--ra-radius) * 0.7);
658
+ font-size: 0.8125rem;
659
+ font-weight: 500;
660
+ border: 1px solid hsl(var(--ra-border));
661
+ background: hsl(var(--ra-surface));
662
+ color: hsl(var(--ra-text));
663
+ cursor: pointer;
664
+ transition:
665
+ background .15s ease,
666
+ border-color .15s ease,
667
+ box-shadow .15s ease,
668
+ transform .1s ease;
669
+ }
670
+ .ra-shell .ra-btn:hover {
671
+ background: hsl(var(--ra-muted));
672
+ box-shadow: var(--ra-card-shadow);
673
+ }
674
+ .ra-shell .ra-btn:active {
675
+ transform: translateY(1px);
676
+ }
677
+ .ra-shell .ra-btn[data-variant=primary] {
678
+ background: hsl(var(--ra-accent));
679
+ color: hsl(var(--ra-surface));
680
+ border-color: hsl(var(--ra-accent));
681
+ }
682
+ .ra-shell .ra-btn[data-variant=primary]:hover {
683
+ background: hsl(var(--ra-accent) / 0.92);
684
+ }
685
+ .ra-shell .ra-btn[data-variant=ghost] {
686
+ background: transparent;
687
+ border-color: transparent;
688
+ color: hsl(var(--ra-muted-text));
689
+ }
690
+ .ra-shell .ra-btn[data-variant=ghost]:hover {
691
+ background: hsl(var(--ra-muted));
692
+ color: hsl(var(--ra-text));
693
+ }
694
+ .ra-shell .ra-btn[data-variant=danger] {
695
+ color: hsl(var(--ra-danger));
696
+ }
697
+ .ra-shell .ra-btn[data-variant=danger]:hover {
698
+ background: hsl(var(--ra-danger) / 0.10);
699
+ border-color: hsl(var(--ra-danger) / 0.40);
700
+ }
701
+ .ra-shell .ra-intro {
702
+ position: relative;
703
+ display: flex;
704
+ align-items: center;
705
+ gap: 0.55rem;
706
+ padding: 0.4rem 2rem 0.4rem 0.5rem;
707
+ border-radius: var(--ra-radius);
708
+ border: 1px solid hsl(var(--ra-info) / 0.30);
709
+ background: hsl(var(--ra-info) / 0.08);
710
+ }
711
+ .ra-shell .ra-intro[data-tone=success] {
712
+ border-color: hsl(var(--ra-success) / 0.30);
713
+ background: hsl(var(--ra-success) / 0.08);
714
+ }
715
+ .ra-shell .ra-intro[data-tone=warning] {
716
+ border-color: hsl(var(--ra-warning) / 0.35);
717
+ background: hsl(var(--ra-warning) / 0.10);
718
+ }
719
+ .ra-shell .ra-intro-icon {
720
+ flex-shrink: 0;
721
+ width: 1.5rem;
722
+ height: 1.5rem;
723
+ border-radius: 999px;
724
+ display: inline-flex;
725
+ align-items: center;
726
+ justify-content: center;
727
+ background: hsl(var(--ra-info) / 0.18);
728
+ color: hsl(var(--ra-info));
729
+ }
730
+ .ra-shell .ra-intro[data-tone=success] .ra-intro-icon {
731
+ background: hsl(var(--ra-success) / 0.18);
732
+ color: hsl(var(--ra-success));
733
+ }
734
+ .ra-shell .ra-intro[data-tone=warning] .ra-intro-icon {
735
+ background: hsl(var(--ra-warning) / 0.20);
736
+ color: hsl(var(--ra-warning));
737
+ }
738
+ .ra-shell .ra-intro-body {
739
+ flex: 1;
740
+ min-width: 0;
741
+ }
742
+ .ra-shell .ra-intro-title {
743
+ font-family: var(--ra-font-display);
744
+ font-weight: var(--ra-title-weight);
745
+ font-size: 0.8rem;
746
+ color: hsl(var(--ra-text));
747
+ margin: 0;
748
+ line-height: 1.2;
749
+ display: inline;
750
+ }
751
+ .ra-shell .ra-intro-text {
752
+ font-size: 0.78rem;
753
+ color: hsl(var(--ra-text) / 0.85);
754
+ line-height: 1.35;
755
+ display: inline;
756
+ margin-left: 0.4rem;
757
+ }
758
+ .ra-shell .ra-intro-dismiss {
759
+ position: absolute;
760
+ top: 50%;
761
+ right: 0.35rem;
762
+ transform: translateY(-50%);
763
+ width: 1.4rem;
764
+ height: 1.4rem;
765
+ border-radius: 999px;
766
+ display: inline-flex;
767
+ align-items: center;
768
+ justify-content: center;
769
+ background: transparent;
770
+ border: 0;
771
+ color: hsl(var(--ra-muted-text));
772
+ cursor: pointer;
773
+ padding: 0;
774
+ flex-shrink: 0;
775
+ }
776
+ .ra-shell .ra-intro-dismiss:hover {
777
+ background: hsl(var(--ra-text) / 0.06);
778
+ color: hsl(var(--ra-text));
779
+ }
780
+ .ra-shell .ra-bulk-menu {
781
+ min-width: 12rem;
782
+ background: hsl(var(--ra-surface));
783
+ border: 1px solid hsl(var(--ra-border));
784
+ border-radius: calc(var(--ra-radius) * 0.85);
785
+ box-shadow: var(--ra-card-shadow-hover);
786
+ padding: 0.3rem;
787
+ z-index: 60;
788
+ }
789
+ .ra-shell .ra-bulk-item {
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 0.55rem;
793
+ width: 100%;
794
+ padding: 0.45rem 0.6rem;
795
+ border-radius: calc(var(--ra-radius) * 0.6);
796
+ font-size: 0.8125rem;
797
+ color: hsl(var(--ra-text));
798
+ background: transparent;
799
+ border: 0;
800
+ cursor: pointer;
801
+ text-align: left;
802
+ transition: background .12s ease, color .12s ease;
803
+ }
804
+ .ra-shell .ra-bulk-item:hover {
805
+ background: hsl(var(--ra-muted));
806
+ }
807
+ .ra-shell .ra-bulk-item[data-tone=danger] {
808
+ color: hsl(var(--ra-danger));
809
+ }
810
+ .ra-shell .ra-bulk-item[data-tone=danger]:hover {
811
+ background: hsl(var(--ra-danger) / 0.10);
812
+ }
813
+ .ra-shell .ra-bulk-divider {
814
+ height: 1px;
815
+ background: hsl(var(--ra-border));
816
+ margin: 0.25rem 0;
817
+ }
818
+ .ra-shell .ra-preview-rail {
819
+ background: hsl(var(--ra-surface));
820
+ border-left: 1px solid hsl(var(--ra-border));
821
+ box-shadow: -4px 0 16px hsl(var(--ra-accent) / 0.04);
822
+ display: flex;
823
+ flex-direction: column;
824
+ height: 100%;
825
+ overflow: hidden;
826
+ }
827
+ .ra-shell .ra-preview-rail-header {
828
+ position: sticky;
829
+ top: 0;
830
+ z-index: 1;
831
+ display: flex;
832
+ align-items: center;
833
+ gap: 0.5rem;
834
+ padding: 0.75rem 1rem;
835
+ background:
836
+ linear-gradient(
837
+ 180deg,
838
+ hsl(var(--ra-surface)) 0%,
839
+ hsl(var(--ra-surface) / 0.92) 100%);
840
+ border-bottom: 1px solid hsl(var(--ra-border));
841
+ backdrop-filter: blur(6px);
842
+ }
843
+ .ra-shell .ra-preview-rail-title {
844
+ display: inline-flex;
845
+ align-items: center;
846
+ gap: 0.4rem;
847
+ font-size: 0.7rem;
848
+ font-weight: 600;
849
+ text-transform: uppercase;
850
+ letter-spacing: 0.06em;
851
+ color: hsl(var(--ra-muted-text));
852
+ }
853
+ .ra-shell .ra-preview-rail-body {
854
+ flex: 1;
855
+ overflow-y: auto;
856
+ padding: 1rem;
857
+ }
858
+ .ra-confirm-root {
859
+ position: fixed;
860
+ inset: 0;
861
+ z-index: 2147483000;
862
+ display: flex;
863
+ align-items: center;
864
+ justify-content: center;
865
+ padding: 1rem;
866
+ background: transparent;
867
+ }
868
+ .ra-confirm-root .ra-confirm-backdrop {
869
+ position: absolute;
870
+ inset: 0;
871
+ background: hsl(0 0% 0% / 0.45);
872
+ backdrop-filter: blur(2px);
873
+ animation: ra-confirm-fade .12s ease-out;
874
+ }
875
+ .ra-confirm-root .ra-confirm-card {
876
+ position: relative;
877
+ width: min(440px, 100%);
878
+ background: hsl(var(--ra-surface));
879
+ color: hsl(var(--ra-text));
880
+ border: 1px solid hsl(var(--ra-border));
881
+ border-radius: var(--ra-radius);
882
+ box-shadow: 0 1px 2px hsl(0 0% 0% / 0.08), 0 24px 48px -12px hsl(0 0% 0% / 0.32);
883
+ padding: 1.25rem;
884
+ animation: ra-confirm-pop .14s ease-out;
885
+ }
886
+ .ra-confirm-root .ra-confirm-header {
887
+ display: flex;
888
+ align-items: center;
889
+ gap: 0.6rem;
890
+ margin-bottom: 0.5rem;
891
+ }
892
+ .ra-confirm-root .ra-confirm-icon {
893
+ display: inline-flex;
894
+ align-items: center;
895
+ justify-content: center;
896
+ width: 1.75rem;
897
+ height: 1.75rem;
898
+ border-radius: 999px;
899
+ background: hsl(var(--ra-warning, 38 92% 50%) / 0.12);
900
+ color: hsl(var(--ra-warning, 38 92% 50%));
901
+ }
902
+ .ra-confirm-root .ra-confirm-title {
903
+ font-family: var(--ra-font-display);
904
+ font-weight: 600;
905
+ font-size: 1rem;
906
+ margin: 0;
907
+ }
908
+ .ra-confirm-root .ra-confirm-body {
909
+ font-size: 0.875rem;
910
+ color: hsl(var(--ra-muted-text));
911
+ margin: 0 0 1.1rem;
912
+ line-height: 1.45;
913
+ }
914
+ .ra-confirm-root .ra-confirm-actions {
915
+ display: flex;
916
+ justify-content: flex-end;
917
+ gap: 0.5rem;
918
+ flex-wrap: wrap;
919
+ }
920
+ .ra-confirm-root .ra-confirm-btn {
921
+ -webkit-appearance: none;
922
+ -moz-appearance: none;
923
+ appearance: none;
924
+ border: 1px solid transparent;
925
+ border-radius: calc(var(--ra-radius) - 2px);
926
+ padding: 0.45rem 0.85rem;
927
+ font-size: 0.8125rem;
928
+ font-weight: 500;
929
+ cursor: pointer;
930
+ transition:
931
+ background-color .12s ease,
932
+ border-color .12s ease,
933
+ color .12s ease;
934
+ }
935
+ .ra-confirm-root .ra-confirm-btn:focus-visible {
936
+ outline: none;
937
+ box-shadow: 0 0 0 3px var(--ra-focus-ring);
938
+ }
939
+ .ra-confirm-root .ra-confirm-btn-ghost {
940
+ background: transparent;
941
+ color: hsl(var(--ra-muted-text));
942
+ border-color: hsl(var(--ra-border));
943
+ }
944
+ .ra-confirm-root .ra-confirm-btn-ghost:hover {
945
+ background: hsl(var(--ra-muted));
946
+ color: hsl(var(--ra-text));
947
+ }
948
+ .ra-confirm-root .ra-confirm-btn-danger {
949
+ background: transparent;
950
+ color: hsl(var(--ra-danger, 0 72% 51%));
951
+ border-color: hsl(var(--ra-danger, 0 72% 51%) / 0.45);
952
+ }
953
+ .ra-confirm-root .ra-confirm-btn-danger:hover {
954
+ background: hsl(var(--ra-danger, 0 72% 51%) / 0.08);
955
+ border-color: hsl(var(--ra-danger, 0 72% 51%));
956
+ }
957
+ .ra-confirm-root .ra-confirm-btn-primary {
958
+ background: hsl(var(--ra-accent));
959
+ color: hsl(var(--ra-accent-fg, 0 0% 100%));
960
+ border-color: hsl(var(--ra-accent));
961
+ }
962
+ .ra-confirm-root .ra-confirm-btn-primary:hover {
963
+ filter: brightness(0.95);
964
+ }
965
+ @keyframes ra-confirm-fade {
966
+ from {
967
+ opacity: 0;
968
+ }
969
+ to {
970
+ opacity: 1;
971
+ }
972
+ }
973
+ @keyframes ra-confirm-pop {
974
+ from {
975
+ opacity: 0;
976
+ transform: translateY(4px) scale(.98);
977
+ }
978
+ to {
979
+ opacity: 1;
980
+ transform: translateY(0) scale(1);
981
+ }
982
+ }
983
+ .ra-shell .ra-unsaved-banner {
984
+ display: flex;
985
+ align-items: center;
986
+ gap: 0.6rem;
987
+ padding: 0.5rem 0.75rem;
988
+ border: 1px solid hsl(var(--ra-warning, 38 92% 50%) / 0.35);
989
+ background: hsl(var(--ra-warning, 38 92% 50%) / 0.08);
990
+ border-radius: var(--ra-radius);
991
+ font-size: 0.8125rem;
992
+ color: hsl(var(--ra-text));
993
+ animation: ra-unsaved-slide .14s ease-out;
994
+ }
995
+ .ra-shell .ra-unsaved-icon {
996
+ display: inline-flex;
997
+ align-items: center;
998
+ justify-content: center;
999
+ color: hsl(var(--ra-warning, 38 92% 50%));
1000
+ flex-shrink: 0;
1001
+ }
1002
+ .ra-shell .ra-unsaved-text {
1003
+ flex: 1;
1004
+ min-width: 0;
1005
+ overflow: hidden;
1006
+ text-overflow: ellipsis;
1007
+ white-space: nowrap;
1008
+ }
1009
+ .ra-shell .ra-unsaved-context {
1010
+ color: hsl(var(--ra-muted-text));
1011
+ font-weight: 400;
1012
+ }
1013
+ .ra-shell .ra-unsaved-error {
1014
+ color: hsl(var(--ra-danger, 0 72% 51%));
1015
+ font-size: 0.75rem;
1016
+ text-transform: uppercase;
1017
+ letter-spacing: 0.04em;
1018
+ font-weight: 500;
1019
+ }
1020
+ .ra-shell .ra-unsaved-actions {
1021
+ display: inline-flex;
1022
+ gap: 0.4rem;
1023
+ flex-shrink: 0;
1024
+ }
1025
+ .ra-shell .ra-unsaved-btn {
1026
+ display: inline-flex;
1027
+ align-items: center;
1028
+ gap: 0.3rem;
1029
+ -webkit-appearance: none;
1030
+ -moz-appearance: none;
1031
+ appearance: none;
1032
+ border: 1px solid transparent;
1033
+ border-radius: calc(var(--ra-radius) - 2px);
1034
+ padding: 0.3rem 0.6rem;
1035
+ font-size: 0.75rem;
1036
+ font-weight: 500;
1037
+ cursor: pointer;
1038
+ transition:
1039
+ background-color .12s ease,
1040
+ border-color .12s ease,
1041
+ color .12s ease,
1042
+ opacity .12s ease;
1043
+ }
1044
+ .ra-shell .ra-unsaved-btn:disabled {
1045
+ opacity: 0.5;
1046
+ cursor: not-allowed;
1047
+ }
1048
+ .ra-shell .ra-unsaved-btn:focus-visible {
1049
+ outline: none;
1050
+ box-shadow: 0 0 0 3px var(--ra-focus-ring);
1051
+ }
1052
+ .ra-shell .ra-unsaved-btn-ghost {
1053
+ background: transparent;
1054
+ color: hsl(var(--ra-muted-text));
1055
+ border-color: hsl(var(--ra-border));
1056
+ }
1057
+ .ra-shell .ra-unsaved-btn-ghost:hover:not(:disabled) {
1058
+ background: hsl(var(--ra-muted));
1059
+ color: hsl(var(--ra-text));
1060
+ }
1061
+ .ra-shell .ra-unsaved-btn-primary {
1062
+ background: hsl(var(--ra-accent));
1063
+ color: hsl(var(--ra-accent-fg, 0 0% 100%));
1064
+ border-color: hsl(var(--ra-accent));
1065
+ }
1066
+ .ra-shell .ra-unsaved-btn-primary:hover:not(:disabled) {
1067
+ filter: brightness(0.95);
1068
+ }
1069
+ .sl-aph .ra-unsaved-btn {
1070
+ display: inline-flex;
1071
+ align-items: center;
1072
+ gap: 0.3rem;
1073
+ -webkit-appearance: none;
1074
+ -moz-appearance: none;
1075
+ appearance: none;
1076
+ border: 1px solid transparent;
1077
+ border-radius: calc(var(--ra-radius, 8px) - 2px);
1078
+ padding: 0.3rem 0.6rem;
1079
+ font-size: 0.75rem;
1080
+ font-weight: 500;
1081
+ cursor: pointer;
1082
+ transition:
1083
+ background-color .12s ease,
1084
+ border-color .12s ease,
1085
+ color .12s ease,
1086
+ opacity .12s ease;
1087
+ }
1088
+ .sl-aph .ra-unsaved-btn:disabled {
1089
+ opacity: 0.5;
1090
+ cursor: not-allowed;
1091
+ }
1092
+ .sl-aph .ra-unsaved-btn:focus-visible {
1093
+ outline: none;
1094
+ box-shadow: 0 0 0 3px var(--ra-focus-ring, 0 0 0 3px hsl(var(--ra-accent) / 0.35));
1095
+ }
1096
+ .sl-aph .ra-unsaved-btn-ghost {
1097
+ background: transparent;
1098
+ color: hsl(var(--ra-muted-text));
1099
+ border-color: hsl(var(--ra-border));
1100
+ }
1101
+ .sl-aph .ra-unsaved-btn-ghost:hover:not(:disabled) {
1102
+ background: hsl(var(--ra-muted));
1103
+ color: hsl(var(--ra-text));
1104
+ }
1105
+ .sl-aph .ra-unsaved-btn-primary {
1106
+ background: hsl(var(--ra-accent));
1107
+ color: hsl(var(--ra-accent-fg, 0 0% 100%));
1108
+ border-color: hsl(var(--ra-accent));
1109
+ }
1110
+ .sl-aph .ra-unsaved-btn-primary:hover:not(:disabled) {
1111
+ filter: brightness(0.95);
1112
+ }
1113
+ .sl-aph .ra-unsaved-icon {
1114
+ display: inline-flex;
1115
+ align-items: center;
1116
+ justify-content: center;
1117
+ color: hsl(var(--ra-warning, 38 92% 50%));
1118
+ flex-shrink: 0;
1119
+ }
1120
+ @keyframes ra-unsaved-slide {
1121
+ from {
1122
+ opacity: 0;
1123
+ transform: translateY(-3px);
1124
+ }
1125
+ to {
1126
+ opacity: 1;
1127
+ transform: translateY(0);
1128
+ }
1129
+ }
1130
+ .ra-shell .ra-unsaved-pill,
1131
+ .sl-aph .ra-unsaved-pill {
1132
+ display: inline-flex;
1133
+ align-items: center;
1134
+ gap: 0.4rem;
1135
+ padding: 0.25rem 0.5rem 0.25rem 0.6rem;
1136
+ border: 1px solid hsl(var(--ra-warning, 38 92% 50%) / 0.35);
1137
+ background: hsl(var(--ra-warning, 38 92% 50%) / 0.08);
1138
+ border-radius: 999px;
1139
+ animation: ra-unsaved-slide .14s ease-out;
1140
+ }
1141
+ .ra-shell .ra-unsaved-pill .ra-unsaved-pill-text,
1142
+ .sl-aph .ra-unsaved-pill .ra-unsaved-pill-text {
1143
+ font-size: 0.75rem;
1144
+ font-weight: 500;
1145
+ color: hsl(var(--ra-text));
1146
+ white-space: nowrap;
1147
+ margin-right: 0.15rem;
1148
+ }
1149
+ .ra-shell .ra-clipboard-toast {
1150
+ position: fixed;
1151
+ bottom: 1.25rem;
1152
+ left: 50%;
1153
+ transform: translateX(-50%);
1154
+ z-index: 90;
1155
+ display: inline-flex;
1156
+ align-items: center;
1157
+ gap: 0.5rem;
1158
+ max-width: min(28rem, calc(100vw - 2rem));
1159
+ padding: 0.55rem 0.85rem;
1160
+ border-radius: 999px;
1161
+ background: hsl(var(--ra-text));
1162
+ color: hsl(var(--ra-surface));
1163
+ font-size: 0.75rem;
1164
+ line-height: 1;
1165
+ box-shadow: 0 8px 24px -10px hsl(0 0% 0% / 0.45);
1166
+ animation: ra-clipboard-pop 0.18s ease-out both;
1167
+ pointer-events: none;
1168
+ }
1169
+ @keyframes ra-clipboard-pop {
1170
+ from {
1171
+ opacity: 0;
1172
+ transform: translate(-50%, 6px);
1173
+ }
1174
+ to {
1175
+ opacity: 1;
1176
+ transform: translate(-50%, 0);
1177
+ }
1178
+ }
1179
+ .ra-shell .ra-row-menu-wrap {
1180
+ display: inline-flex;
1181
+ align-items: center;
1182
+ margin-left: 0.25rem;
1183
+ }
1184
+ .ra-shell .ra-row-menu-trigger {
1185
+ display: inline-flex;
1186
+ align-items: center;
1187
+ justify-content: center;
1188
+ width: 1.5rem;
1189
+ height: 1.5rem;
1190
+ border-radius: 0.35rem;
1191
+ background: transparent;
1192
+ color: hsl(var(--ra-muted-text));
1193
+ opacity: 0;
1194
+ transition:
1195
+ opacity .15s ease,
1196
+ background .15s ease,
1197
+ color .15s ease;
1198
+ border: 1px solid transparent;
1199
+ }
1200
+ .ra-shell .ra-row:hover .ra-row-menu-trigger,
1201
+ .ra-shell .ra-card-hover:hover .ra-row-menu-trigger,
1202
+ .ra-shell .ra-row-menu-trigger:focus-visible,
1203
+ .ra-shell .ra-row-menu-trigger[aria-expanded=true] {
1204
+ opacity: 1;
1205
+ }
1206
+ .ra-shell .ra-row-menu-trigger:hover {
1207
+ background: hsl(var(--ra-muted));
1208
+ color: hsl(var(--ra-text));
1209
+ }
1210
+ .ra-shell .ra-row-menu {
1211
+ position: absolute;
1212
+ right: 0;
1213
+ top: calc(100% + 4px);
1214
+ z-index: 50;
1215
+ min-width: 11rem;
1216
+ padding: 0.25rem;
1217
+ border-radius: 0.5rem;
1218
+ background: hsl(var(--ra-surface));
1219
+ border: 1px solid hsl(var(--ra-border));
1220
+ box-shadow: 0 12px 28px -10px hsl(0 0% 0% / 0.25);
1221
+ display: flex;
1222
+ flex-direction: column;
1223
+ gap: 0.125rem;
1224
+ }
1225
+ .ra-shell .ra-row-menu-item {
1226
+ display: inline-flex;
1227
+ align-items: center;
1228
+ gap: 0.5rem;
1229
+ padding: 0.4rem 0.55rem;
1230
+ border-radius: 0.35rem;
1231
+ font-size: 0.75rem;
1232
+ color: hsl(var(--ra-text));
1233
+ background: transparent;
1234
+ border: 0;
1235
+ text-align: left;
1236
+ width: 100%;
1237
+ cursor: pointer;
1238
+ }
1239
+ .ra-shell .ra-row-menu-item:hover:not(:disabled) {
1240
+ background: hsl(var(--ra-muted));
1241
+ }
1242
+ .ra-shell .ra-row-menu-item:disabled {
1243
+ opacity: 0.45;
1244
+ cursor: not-allowed;
1245
+ }
1246
+ .ra-shell .ra-item-list {
1247
+ display: flex;
1248
+ flex-direction: column;
1249
+ height: 100%;
1250
+ min-height: 0;
1251
+ }
1252
+ .ra-shell .ra-item-list-body {
1253
+ flex: 1;
1254
+ min-height: 0;
1255
+ overflow: auto;
1256
+ padding: 1rem 1.25rem 1.5rem;
1257
+ }
1258
+ .ra-shell .ra-item-toolbar {
1259
+ display: flex;
1260
+ align-items: center;
1261
+ justify-content: space-between;
1262
+ gap: 0.75rem;
1263
+ padding: 0.75rem 1.25rem;
1264
+ border-bottom: 1px solid hsl(var(--ra-border));
1265
+ background: hsl(var(--ra-surface));
1266
+ }
1267
+ .ra-shell .ra-item-toolbar-title {
1268
+ display: flex;
1269
+ align-items: baseline;
1270
+ gap: 0.5rem;
1271
+ min-width: 0;
1272
+ }
1273
+ .ra-shell .ra-item-toolbar-count {
1274
+ font-size: 0.7rem;
1275
+ font-weight: 600;
1276
+ color: hsl(var(--ra-muted-text));
1277
+ background: hsl(var(--ra-muted));
1278
+ border: 1px solid hsl(var(--ra-border));
1279
+ border-radius: 999px;
1280
+ padding: 0.05rem 0.45rem;
1281
+ }
1282
+ .ra-shell .ra-item-toolbar-actions {
1283
+ display: flex;
1284
+ align-items: center;
1285
+ gap: 0.5rem;
1286
+ flex-shrink: 0;
1287
+ }
1288
+ .ra-shell .ra-item-table-wrap {
1289
+ border: 1px solid hsl(var(--ra-border));
1290
+ border-radius: var(--ra-radius);
1291
+ background: hsl(var(--ra-surface));
1292
+ overflow: hidden;
1293
+ box-shadow: var(--ra-card-shadow);
1294
+ }
1295
+ .ra-shell .ra-item-table {
1296
+ width: 100%;
1297
+ border-collapse: collapse;
1298
+ font-size: 0.85rem;
1299
+ color: hsl(var(--ra-text));
1300
+ }
1301
+ .ra-shell .ra-item-table thead th {
1302
+ text-align: left;
1303
+ font-size: 0.7rem;
1304
+ font-weight: 600;
1305
+ text-transform: uppercase;
1306
+ letter-spacing: 0.04em;
1307
+ color: hsl(var(--ra-muted-text));
1308
+ padding: 0.65rem 0.85rem;
1309
+ background: hsl(var(--ra-muted) / 0.55);
1310
+ border-bottom: 1px solid hsl(var(--ra-border));
1311
+ }
1312
+ .ra-shell .ra-item-table tbody td {
1313
+ padding: 0.65rem 0.85rem;
1314
+ border-bottom: 1px solid hsl(var(--ra-border) / 0.7);
1315
+ vertical-align: middle;
1316
+ }
1317
+ .ra-shell .ra-item-table tbody tr:last-child td {
1318
+ border-bottom: 0;
1319
+ }
1320
+ .ra-shell .ra-item-row {
1321
+ cursor: pointer;
1322
+ transition: background .12s ease;
1323
+ }
1324
+ .ra-shell .ra-item-row:hover {
1325
+ background: var(--ra-row-hover);
1326
+ }
1327
+ .ra-shell .ra-item-row[data-selected=true] {
1328
+ background: var(--ra-row-active-bg);
1329
+ }
1330
+ .ra-shell .ra-item-row-title {
1331
+ font-weight: var(--ra-title-weight);
1332
+ color: hsl(var(--ra-text));
1333
+ }
1334
+ .ra-shell .ra-item-row-sub {
1335
+ font-size: 0.75rem;
1336
+ color: hsl(var(--ra-muted-text));
1337
+ margin-top: 0.15rem;
1338
+ }
1339
+ .ra-shell .ra-item-row-meta {
1340
+ font-size: 0.78rem;
1341
+ color: hsl(var(--ra-muted-text));
1342
+ }
1343
+ .ra-shell .ra-item-row-actions {
1344
+ text-align: right;
1345
+ white-space: nowrap;
1346
+ }
1347
+ .ra-shell .ra-item-row-actions .ra-row-action + .ra-row-action {
1348
+ margin-left: 0.15rem;
1349
+ }
1350
+ .ra-shell .ra-item-cards {
1351
+ display: grid;
1352
+ grid-template-columns: repeat(auto-fill, minmax(var(--ra-item-card-min, 240px), 1fr));
1353
+ gap: 0.85rem;
1354
+ }
1355
+ .ra-shell .ra-item-gallery {
1356
+ display: grid;
1357
+ grid-template-columns: repeat(auto-fill, minmax(var(--ra-item-gallery-min, 320px), 1fr));
1358
+ gap: 1rem;
1359
+ }
1360
+ .ra-shell .ra-item-cards[data-card-size=sm] {
1361
+ --ra-item-card-min: 180px;
1362
+ }
1363
+ .ra-shell .ra-item-cards[data-card-size=md] {
1364
+ --ra-item-card-min: 240px;
1365
+ }
1366
+ .ra-shell .ra-item-cards[data-card-size=lg] {
1367
+ --ra-item-card-min: 320px;
1368
+ gap: 1rem;
1369
+ }
1370
+ .ra-shell .ra-item-gallery[data-card-size=sm] {
1371
+ --ra-item-gallery-min: 240px;
1372
+ }
1373
+ .ra-shell .ra-item-gallery[data-card-size=md] {
1374
+ --ra-item-gallery-min: 320px;
1375
+ }
1376
+ .ra-shell .ra-item-gallery[data-card-size=lg] {
1377
+ --ra-item-gallery-min: 420px;
1378
+ gap: 1.25rem;
1379
+ }
1380
+ .ra-shell .ra-item-cards[data-card-size=lg] .ra-item-card-title,
1381
+ .ra-shell .ra-item-gallery[data-card-size=lg] .ra-item-card-title {
1382
+ font-size: 0.95rem;
1383
+ white-space: normal;
1384
+ display: -webkit-box;
1385
+ -webkit-line-clamp: 2;
1386
+ -webkit-box-orient: vertical;
1387
+ }
1388
+ .ra-shell .ra-item-cards[data-card-size=lg] .ra-item-card-body,
1389
+ .ra-shell .ra-item-gallery[data-card-size=lg] .ra-item-card-body {
1390
+ padding: 0.85rem 1rem 1rem;
1391
+ }
1392
+ .ra-shell .ra-item-card {
1393
+ position: relative;
1394
+ display: flex;
1395
+ flex-direction: column;
1396
+ align-items: stretch;
1397
+ text-align: left;
1398
+ padding: 0;
1399
+ background: hsl(var(--ra-surface));
1400
+ border: 1px solid hsl(var(--ra-border));
1401
+ border-radius: var(--ra-radius);
1402
+ overflow: hidden;
1403
+ cursor: pointer;
1404
+ transition:
1405
+ box-shadow .18s ease,
1406
+ transform .12s ease,
1407
+ border-color .15s ease;
1408
+ box-shadow: var(--ra-card-shadow);
1409
+ font-family: inherit;
1410
+ color: inherit;
1411
+ }
1412
+ .ra-shell .ra-item-card:hover {
1413
+ box-shadow: var(--ra-card-shadow-hover);
1414
+ border-color: hsl(var(--ra-accent) / 0.30);
1415
+ }
1416
+ .ra-shell .ra-item-card[data-selected=true] {
1417
+ border-color: hsl(var(--ra-accent) / 0.55);
1418
+ box-shadow: var(--ra-card-shadow-hover);
1419
+ }
1420
+ .ra-shell .ra-item-card-thumb {
1421
+ width: 100%;
1422
+ aspect-ratio: 1 / 1;
1423
+ background:
1424
+ linear-gradient(
1425
+ 135deg,
1426
+ hsl(var(--ra-accent) / 0.12),
1427
+ hsl(var(--ra-accent) / 0.04));
1428
+ display: flex;
1429
+ align-items: center;
1430
+ justify-content: center;
1431
+ color: hsl(var(--ra-accent));
1432
+ overflow: hidden;
1433
+ }
1434
+ .ra-shell .ra-item-card-thumb--gallery {
1435
+ aspect-ratio: 16 / 9;
1436
+ }
1437
+ .ra-shell .ra-item-card-thumb img {
1438
+ width: 100%;
1439
+ height: 100%;
1440
+ -o-object-fit: cover;
1441
+ object-fit: cover;
1442
+ }
1443
+ .ra-shell .ra-item-card-initials {
1444
+ font-family: var(--ra-font-display);
1445
+ font-weight: var(--ra-display-weight);
1446
+ font-size: 1.5rem;
1447
+ letter-spacing: 0.02em;
1448
+ }
1449
+ .ra-shell .ra-item-card-body {
1450
+ padding: 0.65rem 0.8rem 0.85rem;
1451
+ min-width: 0;
1452
+ }
1453
+ .ra-shell .ra-item-card-title {
1454
+ font-weight: var(--ra-title-weight);
1455
+ font-size: 0.85rem;
1456
+ white-space: nowrap;
1457
+ overflow: hidden;
1458
+ text-overflow: ellipsis;
1459
+ }
1460
+ .ra-shell .ra-item-card-sub {
1461
+ font-size: 0.75rem;
1462
+ color: hsl(var(--ra-muted-text));
1463
+ margin-top: 0.15rem;
1464
+ white-space: nowrap;
1465
+ overflow: hidden;
1466
+ text-overflow: ellipsis;
1467
+ }
1468
+ .ra-shell .ra-item-card-delete {
1469
+ position: absolute;
1470
+ top: 0.4rem;
1471
+ right: 0.4rem;
1472
+ background: hsl(var(--ra-surface) / 0.85);
1473
+ backdrop-filter: blur(4px);
1474
+ opacity: 0;
1475
+ transition: opacity .15s ease;
1476
+ }
1477
+ .ra-shell .ra-item-card:hover .ra-item-card-delete,
1478
+ .ra-shell .ra-item-card:focus-within .ra-item-card-delete {
1479
+ opacity: 1;
1480
+ }
1481
+ .ra-shell .ra-item-nav {
1482
+ display: flex;
1483
+ align-items: center;
1484
+ gap: 0.6rem;
1485
+ padding: 0.5rem 1.25rem;
1486
+ border-bottom: 1px solid hsl(var(--ra-border));
1487
+ background: hsl(var(--ra-surface));
1488
+ }
1489
+ .ra-shell .ra-item-nav-position {
1490
+ font-size: 0.72rem;
1491
+ color: hsl(var(--ra-muted-text));
1492
+ font-variant-numeric: tabular-nums;
1493
+ }
1494
+ .ra-shell .ra-item-nav-arrows {
1495
+ margin-left: auto;
1496
+ display: inline-flex;
1497
+ align-items: center;
1498
+ gap: 0.15rem;
1499
+ }
1500
+ .ra-shell .ra-item-nav-arrows .ra-row-action[disabled] {
1501
+ opacity: 0.35;
1502
+ cursor: not-allowed;
1503
+ }
1504
+ .ra-shell .ra-sibling-rail {
1505
+ display: flex;
1506
+ flex-direction: column;
1507
+ height: 100%;
1508
+ min-height: 0;
1509
+ }
1510
+ .ra-shell .ra-sibling-back {
1511
+ display: inline-flex;
1512
+ align-items: center;
1513
+ gap: 0.4rem;
1514
+ padding: 0.6rem 0.85rem;
1515
+ font-size: 0.75rem;
1516
+ font-weight: 500;
1517
+ color: hsl(var(--ra-muted-text));
1518
+ background: hsl(var(--ra-muted) / 0.5);
1519
+ border: 0;
1520
+ border-bottom: 1px solid hsl(var(--ra-border));
1521
+ cursor: pointer;
1522
+ text-align: left;
1523
+ transition: background .12s ease, color .12s ease;
1524
+ }
1525
+ .ra-shell .ra-sibling-back:hover {
1526
+ background: hsl(var(--ra-muted));
1527
+ color: hsl(var(--ra-text));
1528
+ }
1529
+ .ra-shell .ra-sibling-heading {
1530
+ padding: 0.6rem 0.85rem 0.4rem;
1531
+ font-size: 0.65rem;
1532
+ font-weight: 600;
1533
+ text-transform: uppercase;
1534
+ letter-spacing: 0.06em;
1535
+ color: hsl(var(--ra-muted-text));
1536
+ }
1537
+ .ra-shell .ra-sibling-body {
1538
+ flex: 1;
1539
+ min-height: 0;
1540
+ overflow-y: auto;
1541
+ }
1542
+ .ra-shell .ra-sibling-list {
1543
+ list-style: none;
1544
+ margin: 0;
1545
+ padding: 0;
1546
+ }
1547
+ .ra-shell .ra-status-icon {
1548
+ display: inline-flex;
1549
+ align-items: center;
1550
+ justify-content: center;
1551
+ flex-shrink: 0;
1552
+ border-radius: 9999px;
1553
+ }
1554
+ .ra-shell .ra-status-icon > svg {
1555
+ width: 100%;
1556
+ height: 100%;
1557
+ display: block;
1558
+ }
1559
+ .ra-shell .ra-status-icon--own {
1560
+ color: hsl(var(--ra-status-own));
1561
+ }
1562
+ .ra-shell .ra-status-icon--shared {
1563
+ color: hsl(var(--ra-status-shared));
1564
+ }
1565
+ .ra-shell .ra-status-icon--missing {
1566
+ color: hsl(var(--ra-status-missing) / 0.7);
1567
+ }
1568
+ .ra-shell .ra-row-status {
1569
+ display: inline-flex;
1570
+ align-items: center;
1571
+ justify-content: center;
1572
+ width: 1.5rem;
1573
+ height: 1.5rem;
1574
+ flex-shrink: 0;
1575
+ }
1576
+ .ra-shell .ra-row-scope {
1577
+ display: inline-flex;
1578
+ align-items: center;
1579
+ justify-content: center;
1580
+ width: 1.25rem;
1581
+ height: 1.25rem;
1582
+ border-radius: calc(var(--ra-radius) * 0.5);
1583
+ background: hsl(var(--ra-muted));
1584
+ color: hsl(var(--ra-muted-text));
1585
+ flex-shrink: 0;
1586
+ margin-left: auto;
1587
+ opacity: 0.55;
1588
+ transition:
1589
+ opacity .12s ease,
1590
+ color .12s ease,
1591
+ background .12s ease;
1592
+ }
1593
+ .ra-shell .ra-row:hover .ra-row-scope {
1594
+ opacity: 0.85;
1595
+ }
1596
+ .ra-shell .ra-row[data-selected=true] .ra-row-scope {
1597
+ opacity: 1;
1598
+ background: hsl(var(--ra-accent) / 0.12);
1599
+ color: hsl(var(--ra-accent));
1600
+ }
1601
+ .ra-shell .ra-row-rule-pip {
1602
+ display: inline-flex;
1603
+ align-items: center;
1604
+ justify-content: center;
1605
+ width: 1.1rem;
1606
+ height: 1.1rem;
1607
+ flex-shrink: 0;
1608
+ color: hsl(var(--ra-accent));
1609
+ opacity: 0.7;
1610
+ }
1611
+ .ra-shell .ra-row:hover .ra-row-rule-pip {
1612
+ opacity: 1;
1613
+ }
1614
+ .ra-shell .ra-row[data-tone=own] .ra-row-sub {
1615
+ color: hsl(var(--ra-status-own));
1616
+ }
1617
+ .ra-shell .ra-row[data-tone=shared] .ra-row-sub {
1618
+ color: hsl(var(--ra-status-shared));
1619
+ }
1620
+ .ra-shell .ra-row[data-selected=true] {
1621
+ background:
1622
+ linear-gradient(
1623
+ 90deg,
1624
+ hsl(var(--ra-accent) / 0.10) 0%,
1625
+ hsl(var(--ra-accent) / 0.04) 100%);
1626
+ border-left-width: 3px;
1627
+ border-left-color: hsl(var(--ra-accent));
1628
+ }
1629
+ .ra-shell .ra-dirty-pip {
1630
+ display: inline-block;
1631
+ width: 0.45rem;
1632
+ height: 0.45rem;
1633
+ border-radius: 9999px;
1634
+ background: hsl(var(--ra-warning));
1635
+ box-shadow: 0 0 0 2px hsl(var(--ra-warning) / 0.18);
1636
+ flex-shrink: 0;
1637
+ }
1638
+ .ra-shell .ra-error-pip {
1639
+ display: inline-block;
1640
+ width: 0.45rem;
1641
+ height: 0.45rem;
1642
+ border-radius: 9999px;
1643
+ background: hsl(var(--ra-danger, 0 72% 51%));
1644
+ box-shadow: 0 0 0 2px hsl(var(--ra-danger, 0 72% 51%) / 0.22);
1645
+ flex-shrink: 0;
1646
+ }
1647
+ .ra-shell .ra-group-summary {
1648
+ background: transparent;
1649
+ }
1650
+ .ra-shell {
1651
+ position: relative;
1652
+ }
1653
+ .ra-shell .ra-help-float {
1654
+ position: absolute;
1655
+ top: 0.65rem;
1656
+ right: 0.85rem;
1657
+ z-index: 5;
1658
+ display: inline-flex;
1659
+ align-items: center;
1660
+ justify-content: center;
1661
+ width: 1.6rem;
1662
+ height: 1.6rem;
1663
+ padding: 0;
1664
+ color: hsl(var(--ra-muted-text));
1665
+ background: hsl(var(--ra-surface) / 0.85);
1666
+ backdrop-filter: blur(6px);
1667
+ border: 1px solid hsl(var(--ra-border));
1668
+ border-radius: 999px;
1669
+ cursor: pointer;
1670
+ transition:
1671
+ color .12s ease,
1672
+ background .12s ease,
1673
+ border-color .12s ease;
1674
+ }
1675
+ .ra-shell .ra-help-float:hover {
1676
+ color: hsl(var(--ra-accent));
1677
+ border-color: hsl(var(--ra-accent) / 0.4);
1678
+ background: hsl(var(--ra-surface));
1679
+ }
1680
+ .ra-shell .ra-help-float svg {
1681
+ width: 0.95rem;
1682
+ height: 0.95rem;
1683
+ }
1684
+ .ra-shell .ra-help-float > span {
1685
+ position: absolute;
1686
+ width: 1px;
1687
+ height: 1px;
1688
+ padding: 0;
1689
+ margin: -1px;
1690
+ overflow: hidden;
1691
+ clip: rect(0, 0, 0, 0);
1692
+ white-space: nowrap;
1693
+ border: 0;
1694
+ }
1695
+ .ra-shell .ra-preview-reopen {
1696
+ position: absolute;
1697
+ top: 50%;
1698
+ right: 0.5rem;
1699
+ transform: translateY(-50%);
1700
+ z-index: 4;
1701
+ display: inline-flex;
1702
+ align-items: center;
1703
+ justify-content: center;
1704
+ gap: 0.4rem;
1705
+ padding: 0.75rem 0.55rem;
1706
+ background: hsl(var(--ra-accent));
1707
+ color: hsl(var(--ra-accent-fg, 0 0% 100%));
1708
+ border: 1px solid hsl(var(--ra-accent));
1709
+ border-radius: 999px;
1710
+ box-shadow: 0 1px 2px hsl(0 0% 0% / 0.08), 0 8px 18px -8px hsl(var(--ra-accent) / 0.55);
1711
+ cursor: pointer;
1712
+ transition:
1713
+ transform .14s ease,
1714
+ box-shadow .14s ease,
1715
+ background .12s ease,
1716
+ right .14s ease,
1717
+ filter .12s ease;
1718
+ writing-mode: vertical-rl;
1719
+ font-size: 0.7rem;
1720
+ font-weight: 600;
1721
+ letter-spacing: 0.06em;
1722
+ text-transform: uppercase;
1723
+ }
1724
+ .ra-shell .ra-preview-reopen:hover {
1725
+ right: 0.65rem;
1726
+ transform: translateY(-50%) translateX(0);
1727
+ filter: brightness(0.95);
1728
+ box-shadow: 0 2px 4px hsl(0 0% 0% / 0.10), 0 12px 24px -8px hsl(var(--ra-accent) / 0.65);
1729
+ }
1730
+ .ra-shell .ra-preview-reopen:focus-visible {
1731
+ outline: none;
1732
+ box-shadow: 0 0 0 3px var(--ra-focus-ring), 0 8px 18px -8px hsl(var(--ra-accent) / 0.55);
1733
+ }
1734
+ .ra-shell .ra-preview-reopen svg {
1735
+ width: 0.85rem;
1736
+ height: 0.85rem;
1737
+ writing-mode: horizontal-tb;
1738
+ }
1739
+ .ra-shell .ra-unsaved-tray {
1740
+ position: relative;
1741
+ display: flex;
1742
+ align-items: center;
1743
+ gap: 0.6rem;
1744
+ padding: 0.5rem 0.75rem;
1745
+ border: 1px solid hsl(var(--ra-warning, 38 92% 50%) / 0.35);
1746
+ background: hsl(var(--ra-warning, 38 92% 50%) / 0.08);
1747
+ border-radius: var(--ra-radius);
1748
+ font-size: 0.8125rem;
1749
+ color: hsl(var(--ra-text));
1750
+ animation: ra-unsaved-slide .14s ease-out;
1751
+ }
1752
+ .ra-shell .ra-unsaved-count {
1753
+ flex: 1;
1754
+ min-width: 0;
1755
+ display: inline-flex;
1756
+ align-items: center;
1757
+ gap: 0.3rem;
1758
+ padding: 0.15rem 0.4rem;
1759
+ margin: -0.15rem -0.4rem;
1760
+ background: transparent;
1761
+ border: 0;
1762
+ color: inherit;
1763
+ font: inherit;
1764
+ font-weight: 500;
1765
+ text-align: left;
1766
+ cursor: pointer;
1767
+ border-radius: calc(var(--ra-radius) - 4px);
1768
+ }
1769
+ .ra-shell .ra-unsaved-count:hover {
1770
+ background: hsl(var(--ra-muted) / 0.6);
1771
+ }
1772
+ .ra-shell .ra-unsaved-error-chip {
1773
+ -webkit-appearance: none;
1774
+ -moz-appearance: none;
1775
+ appearance: none;
1776
+ border: 1px solid hsl(var(--ra-danger, 0 72% 51%) / 0.35);
1777
+ background: hsl(var(--ra-danger, 0 72% 51%) / 0.08);
1778
+ color: hsl(var(--ra-danger, 0 72% 51%));
1779
+ border-radius: 999px;
1780
+ padding: 0.15rem 0.55rem;
1781
+ font-size: 0.7rem;
1782
+ font-weight: 500;
1783
+ cursor: pointer;
1784
+ }
1785
+ .ra-shell .ra-unsaved-error-chip:hover {
1786
+ filter: brightness(0.97);
1787
+ }
1788
+ .ra-shell .ra-unsaved-popover {
1789
+ position: absolute;
1790
+ top: calc(100% + 6px);
1791
+ left: 0;
1792
+ z-index: 60;
1793
+ min-width: 18rem;
1794
+ max-height: 18rem;
1795
+ overflow: auto;
1796
+ background: hsl(var(--ra-surface));
1797
+ border: 1px solid hsl(var(--ra-border));
1798
+ border-radius: var(--ra-radius);
1799
+ box-shadow: 0 12px 30px -10px hsl(0 0% 0% / 0.25);
1800
+ padding: 0.3rem;
1801
+ display: flex;
1802
+ flex-direction: column;
1803
+ gap: 0.15rem;
1804
+ }
1805
+ .ra-shell .ra-unsaved-popover-row {
1806
+ display: flex;
1807
+ align-items: center;
1808
+ gap: 0.5rem;
1809
+ padding: 0.4rem 0.55rem;
1810
+ background: transparent;
1811
+ border: 0;
1812
+ border-radius: calc(var(--ra-radius) - 2px);
1813
+ cursor: pointer;
1814
+ text-align: left;
1815
+ font: inherit;
1816
+ color: hsl(var(--ra-text));
1817
+ }
1818
+ .ra-shell .ra-unsaved-popover-row:hover {
1819
+ background: hsl(var(--ra-muted));
1820
+ }
1821
+ .ra-shell .ra-unsaved-popover-dot {
1822
+ width: 0.5rem;
1823
+ height: 0.5rem;
1824
+ border-radius: 999px;
1825
+ flex-shrink: 0;
1826
+ }
1827
+ .ra-shell .ra-unsaved-popover-label {
1828
+ flex: 1;
1829
+ min-width: 0;
1830
+ white-space: nowrap;
1831
+ overflow: hidden;
1832
+ text-overflow: ellipsis;
1833
+ font-size: 0.8125rem;
1834
+ }
1835
+ .ra-shell .ra-unsaved-popover-ctx {
1836
+ color: hsl(var(--ra-muted-text));
1837
+ font-size: 0.7rem;
1838
+ text-transform: uppercase;
1839
+ letter-spacing: 0.04em;
1840
+ }
1841
+ .ra-shell .ra-unsaved-popover-err {
1842
+ color: hsl(var(--ra-danger, 0 72% 51%));
1843
+ font-size: 0.7rem;
1844
+ font-weight: 500;
1845
+ }
1846
+ .ra-saveall-overlay {
1847
+ position: fixed;
1848
+ inset: 0;
1849
+ z-index: 100;
1850
+ background: hsl(0 0% 0% / 0.45);
1851
+ display: flex;
1852
+ align-items: center;
1853
+ justify-content: center;
1854
+ padding: 1rem;
1855
+ animation: ra-confirm-fade .12s ease-out;
1856
+ }
1857
+ .ra-saveall-card {
1858
+ background: hsl(var(--ra-surface));
1859
+ color: hsl(var(--ra-text));
1860
+ border: 1px solid hsl(var(--ra-border));
1861
+ border-radius: var(--ra-radius);
1862
+ box-shadow: 0 24px 48px -16px hsl(0 0% 0% / 0.45);
1863
+ width: min(28rem, 100%);
1864
+ max-height: min(80vh, 36rem);
1865
+ display: flex;
1866
+ flex-direction: column;
1867
+ animation: ra-confirm-pop .14s ease-out;
1868
+ }
1869
+ .ra-saveall-header {
1870
+ padding: 1rem 1rem 0.5rem;
1871
+ display: flex;
1872
+ flex-direction: column;
1873
+ gap: 0.5rem;
1874
+ }
1875
+ .ra-saveall-title {
1876
+ font-weight: 600;
1877
+ font-size: 0.95rem;
1878
+ }
1879
+ .ra-saveall-progress {
1880
+ height: 4px;
1881
+ background: hsl(var(--ra-muted));
1882
+ border-radius: 999px;
1883
+ overflow: hidden;
1884
+ }
1885
+ .ra-saveall-progress-bar {
1886
+ height: 100%;
1887
+ background: hsl(var(--ra-accent));
1888
+ transition: width .2s ease;
1889
+ }
1890
+ .ra-saveall-counter {
1891
+ color: hsl(var(--ra-muted-text));
1892
+ font-size: 0.75rem;
1893
+ font-variant-numeric: tabular-nums;
1894
+ }
1895
+ .ra-saveall-list {
1896
+ list-style: none;
1897
+ margin: 0;
1898
+ padding: 0.25rem 0.5rem;
1899
+ overflow: auto;
1900
+ flex: 1;
1901
+ }
1902
+ .ra-saveall-row {
1903
+ display: flex;
1904
+ align-items: center;
1905
+ gap: 0.6rem;
1906
+ padding: 0.45rem 0.5rem;
1907
+ border-radius: calc(var(--ra-radius) - 4px);
1908
+ font-size: 0.8125rem;
1909
+ }
1910
+ .ra-saveall-row[data-status=saving] {
1911
+ background: hsl(var(--ra-accent) / 0.06);
1912
+ }
1913
+ .ra-saveall-row[data-status=saved] {
1914
+ color: hsl(var(--ra-muted-text));
1915
+ }
1916
+ .ra-saveall-row[data-status=error] {
1917
+ background: hsl(var(--ra-danger, 0 72% 51%) / 0.06);
1918
+ }
1919
+ .ra-saveall-icon {
1920
+ display: inline-flex;
1921
+ align-items: center;
1922
+ justify-content: center;
1923
+ flex-shrink: 0;
1924
+ color: hsl(var(--ra-muted-text));
1925
+ }
1926
+ .ra-saveall-row[data-status=saved] .ra-saveall-icon {
1927
+ color: hsl(var(--ra-success, 142 71% 45%));
1928
+ }
1929
+ .ra-saveall-row[data-status=saving] .ra-saveall-icon {
1930
+ color: hsl(var(--ra-accent));
1931
+ }
1932
+ .ra-saveall-row[data-status=error] .ra-saveall-icon {
1933
+ color: hsl(var(--ra-danger, 0 72% 51%));
1934
+ }
1935
+ .ra-saveall-label {
1936
+ flex: 1;
1937
+ min-width: 0;
1938
+ white-space: nowrap;
1939
+ overflow: hidden;
1940
+ text-overflow: ellipsis;
1941
+ }
1942
+ .ra-saveall-err {
1943
+ color: hsl(var(--ra-danger, 0 72% 51%));
1944
+ font-size: 0.7rem;
1945
+ max-width: 12rem;
1946
+ white-space: nowrap;
1947
+ overflow: hidden;
1948
+ text-overflow: ellipsis;
1949
+ }
1950
+ .ra-saveall-actions {
1951
+ padding: 0.75rem 1rem 1rem;
1952
+ display: flex;
1953
+ justify-content: flex-end;
1954
+ gap: 0.4rem;
1955
+ border-top: 1px solid hsl(var(--ra-border));
1956
+ }
1957
+ .ra-spin {
1958
+ animation: ra-spin 1s linear infinite;
1959
+ }
1960
+ @keyframes ra-spin {
1961
+ to {
1962
+ transform: rotate(360deg);
1963
+ }
1964
+ }
1965
+ .sl-ui-records-admin-styles-loaded {
1966
+ --sl-ui-records-admin-styles: loaded;
1967
+ }
1968
+
1969
+ /* src/components/AdminPageHeader/admin-page-header.css */
1970
+ .sl-aph {
1971
+ width: 100%;
1972
+ font-family: var(--ra-font-ui, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
1973
+ color: hsl(var(--ra-text, 222 47% 11%));
1974
+ display: flex;
1975
+ flex-direction: column;
1976
+ gap: 0.5rem;
1977
+ }
1978
+ .sl-aph *,
1979
+ .sl-aph *::before,
1980
+ .sl-aph *::after {
1981
+ box-sizing: border-box;
1982
+ }
1983
+ .sl-aph__row {
1984
+ position: relative;
1985
+ display: flex;
1986
+ align-items: flex-start;
1987
+ gap: 0.6rem;
1988
+ padding: 0.25rem 0.25rem 0.5rem;
1989
+ }
1990
+ .sl-aph__main {
1991
+ flex: 1;
1992
+ min-width: 0;
1993
+ display: flex;
1994
+ align-items: flex-start;
1995
+ gap: 0.55rem;
1996
+ }
1997
+ .sl-aph__aside {
1998
+ display: flex;
1999
+ align-items: center;
2000
+ gap: 0.5rem;
2001
+ flex-shrink: 0;
2002
+ }
2003
+ .sl-aph__text {
2004
+ flex: 1;
2005
+ min-width: 0;
2006
+ }
2007
+ .sl-aph__title {
2008
+ font-family: var(--ra-font-display, var(--ra-font-ui, ui-sans-serif, system-ui, sans-serif));
2009
+ font-weight: 700;
2010
+ font-size: 1.2rem;
2011
+ line-height: 1.2;
2012
+ color: hsl(var(--ra-text, 222 47% 11%));
2013
+ letter-spacing: -0.015em;
2014
+ margin: 0;
2015
+ display: inline-flex;
2016
+ align-items: center;
2017
+ gap: 0.5rem;
2018
+ }
2019
+ .sl-aph__icon {
2020
+ flex-shrink: 0;
2021
+ display: inline-flex;
2022
+ align-items: center;
2023
+ justify-content: flex-start;
2024
+ background: transparent;
2025
+ color: hsl(var(--ra-text, 222 47% 11%));
2026
+ border: 0;
2027
+ padding: 0;
2028
+ }
2029
+ .sl-aph__icon > svg {
2030
+ width: 1.05rem;
2031
+ height: 1.05rem;
2032
+ }
2033
+ .sl-aph__subtitle {
2034
+ font-size: 0.78rem;
2035
+ color: hsl(var(--ra-muted-text, 220 9% 46%));
2036
+ margin: 0.1rem 0 0;
2037
+ line-height: 1.3;
2038
+ }
2039
+ .sl-aph__icon-btn {
2040
+ display: inline-flex;
2041
+ align-items: center;
2042
+ justify-content: center;
2043
+ width: 2rem;
2044
+ height: 2rem;
2045
+ padding: 0;
2046
+ border-radius: 999px;
2047
+ background: transparent;
2048
+ border: 1px solid transparent;
2049
+ color: hsl(var(--ra-muted-text, 220 9% 46%));
2050
+ cursor: pointer;
2051
+ transition:
2052
+ background .15s ease,
2053
+ color .15s ease,
2054
+ border-color .15s ease;
2055
+ text-decoration: none;
2056
+ }
2057
+ .sl-aph__icon-btn:hover {
2058
+ background: hsl(var(--ra-text, 222 47% 11%) / 0.06);
2059
+ color: hsl(var(--ra-text, 222 47% 11%));
2060
+ }
2061
+ .sl-aph__icon-btn:focus-visible {
2062
+ outline: none;
2063
+ box-shadow: 0 0 0 3px var(--ra-focus-ring, hsl(222 47% 11% / 0.35));
2064
+ }
2065
+ .sl-aph__icon-btn > svg {
2066
+ width: 1rem;
2067
+ height: 1rem;
2068
+ }
2069
+ .sl-aph__intro {
2070
+ position: relative;
2071
+ display: flex;
2072
+ align-items: center;
2073
+ gap: 0.55rem;
2074
+ padding: 0.4rem 2rem 0.4rem 0.5rem;
2075
+ border-radius: var(--ra-radius, 0.625rem);
2076
+ border: 1px solid hsl(var(--ra-info, 214 95% 55%) / 0.30);
2077
+ background: hsl(var(--ra-info, 214 95% 55%) / 0.08);
2078
+ }
2079
+ .sl-aph__intro[data-tone=success] {
2080
+ border-color: hsl(var(--ra-success, 142 71% 45%) / 0.30);
2081
+ background: hsl(var(--ra-success, 142 71% 45%) / 0.08);
2082
+ }
2083
+ .sl-aph__intro[data-tone=warning] {
2084
+ border-color: hsl(var(--ra-warning, 38 92% 50%) / 0.35);
2085
+ background: hsl(var(--ra-warning, 38 92% 50%) / 0.10);
2086
+ }
2087
+ .sl-aph__intro-icon {
2088
+ flex-shrink: 0;
2089
+ width: 1.5rem;
2090
+ height: 1.5rem;
2091
+ border-radius: 999px;
2092
+ display: inline-flex;
2093
+ align-items: center;
2094
+ justify-content: center;
2095
+ background: hsl(var(--ra-info, 214 95% 55%) / 0.18);
2096
+ color: hsl(var(--ra-info, 214 95% 55%));
2097
+ }
2098
+ .sl-aph__intro[data-tone=success] .sl-aph__intro-icon {
2099
+ background: hsl(var(--ra-success, 142 71% 45%) / 0.18);
2100
+ color: hsl(var(--ra-success, 142 71% 45%));
2101
+ }
2102
+ .sl-aph__intro[data-tone=warning] .sl-aph__intro-icon {
2103
+ background: hsl(var(--ra-warning, 38 92% 50%) / 0.20);
2104
+ color: hsl(var(--ra-warning, 38 92% 50%));
2105
+ }
2106
+ .sl-aph__intro-body {
2107
+ flex: 1;
2108
+ min-width: 0;
2109
+ }
2110
+ .sl-aph__intro-title {
2111
+ font-family: var(--ra-font-display, var(--ra-font-ui, ui-sans-serif, system-ui, sans-serif));
2112
+ font-weight: var(--ra-title-weight, 600);
2113
+ font-size: 0.8rem;
2114
+ color: hsl(var(--ra-text, 222 47% 11%));
2115
+ margin: 0;
2116
+ line-height: 1.2;
2117
+ display: inline;
2118
+ }
2119
+ .sl-aph__intro-text {
2120
+ font-size: 0.78rem;
2121
+ color: hsl(var(--ra-text, 222 47% 11%) / 0.85);
2122
+ line-height: 1.35;
2123
+ display: inline;
2124
+ margin-left: 0.4rem;
2125
+ }
2126
+ .sl-aph__intro-action {
2127
+ margin-left: 0.375rem;
2128
+ }
2129
+ .sl-aph__intro-dismiss {
2130
+ position: absolute;
2131
+ top: 50%;
2132
+ right: 0.35rem;
2133
+ transform: translateY(-50%);
2134
+ width: 1.4rem;
2135
+ height: 1.4rem;
2136
+ border-radius: 999px;
2137
+ display: inline-flex;
2138
+ align-items: center;
2139
+ justify-content: center;
2140
+ background: transparent;
2141
+ border: 0;
2142
+ color: hsl(var(--ra-muted-text, 220 9% 46%));
2143
+ cursor: pointer;
2144
+ padding: 0;
2145
+ }
2146
+ .sl-aph__intro-dismiss:hover {
2147
+ background: hsl(var(--ra-text, 222 47% 11%) / 0.06);
2148
+ color: hsl(var(--ra-text, 222 47% 11%));
2149
+ }
2150
+
1
2151
  /* src/styles.css */
2
2152
  .sr-only {
3
2153
  position: absolute;
@@ -321,15 +2471,15 @@
321
2471
  .max-w-4xl {
322
2472
  max-width: 56rem;
323
2473
  }
324
- .max-w-\[12rem\] {
325
- max-width: 12rem;
326
- }
327
2474
  .max-w-\[14rem\] {
328
2475
  max-width: 14rem;
329
2476
  }
330
2477
  .max-w-\[160px\] {
331
2478
  max-width: 160px;
332
2479
  }
2480
+ .max-w-\[18rem\] {
2481
+ max-width: 18rem;
2482
+ }
333
2483
  .max-w-\[200px\] {
334
2484
  max-width: 200px;
335
2485
  }