@mshuja288/aksuicore 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/aksui.css ADDED
@@ -0,0 +1,1633 @@
1
+ /* src\theme\aksui.css */
2
+ :root {
3
+ /* Canonical aksui tokens */
4
+ --aks-brand: #1e2735;
5
+ --aks-accent: #e67e22;
6
+ --aks-ink: #1e2735;
7
+ --aks-muted: #667085;
8
+ --aks-line: #e6e4df;
9
+ --aks-field: #f6f5f3;
10
+ --aks-card: #ffffff;
11
+ --aks-danger: #b42318;
12
+ --aks-danger-bg: #fff1f0;
13
+ --aks-ok: #067647;
14
+ --aks-ok-bg: #ecfdf3;
15
+ --aks-radius: 8px;
16
+ --aks-row-height: 34px;
17
+ --aks-table-header-height: 36px;
18
+ --aks-side-rail-collapsed: 52px;
19
+ --aks-side-rail-expanded: 280px;
20
+ --aks-preview-panel-width: 300px;
21
+
22
+ /*
23
+ * Compatibility aliases for apps migrating from aksconfigurator_ui tokens.
24
+ * Prefer --aks-* in new code.
25
+ */
26
+ --brand: var(--aks-brand);
27
+ --accent: var(--aks-accent);
28
+ --ink: var(--aks-ink);
29
+ --muted: var(--aks-muted);
30
+ --line: var(--aks-line);
31
+ --field: var(--aks-field);
32
+ --card: var(--aks-card);
33
+ --danger: var(--aks-danger);
34
+ --danger-bg: var(--aks-danger-bg);
35
+ --ok: var(--aks-ok);
36
+ --ok-bg: var(--aks-ok-bg);
37
+ --radius: var(--aks-radius);
38
+ --row-height: var(--aks-row-height);
39
+ --table-header-height: var(--aks-table-header-height);
40
+ --side-rail-collapsed: var(--aks-side-rail-collapsed);
41
+ --side-rail-expanded: var(--aks-side-rail-expanded);
42
+ --preview-panel-width: var(--aks-preview-panel-width);
43
+
44
+ color-scheme: light;
45
+ }
46
+
47
+ *,
48
+ *::before,
49
+ *::after {
50
+ box-sizing: border-box;
51
+ }
52
+
53
+ html,
54
+ body {
55
+ margin: 0;
56
+ width: 100%;
57
+ min-height: 100%;
58
+ font-family: "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
59
+ }
60
+
61
+ body {
62
+ min-height: 100dvh;
63
+ color: var(--aks-ink);
64
+ background: #f3f2ef;
65
+ }
66
+
67
+ .aksui-root {
68
+ font-family: "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
69
+ color: var(--aks-ink);
70
+ background: #f3f2ef;
71
+ }
72
+
73
+ /* src\theme\primitives.css */
74
+ /* Base controls */
75
+ button,
76
+ .aks-button {
77
+ display: inline-flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ border: 0;
81
+ border-radius: var(--aks-radius);
82
+ padding: 12px 16px;
83
+ background: var(--aks-brand);
84
+ color: #fff;
85
+ font: inherit;
86
+ font-weight: 600;
87
+ cursor: pointer;
88
+ box-shadow: 0 10px 18px rgba(30, 39, 53, 0.18);
89
+ transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
90
+ }
91
+
92
+ button:hover,
93
+ .aks-button:hover {
94
+ transform: translateY(-1px);
95
+ background: #2a3546;
96
+ box-shadow: 0 14px 22px rgba(30, 39, 53, 0.22);
97
+ }
98
+
99
+ /* Keep utility / chrome buttons from picking up the primary filled look */
100
+ button.ghost:hover,
101
+ button.app-select-trigger:hover,
102
+ button.date-field-trigger:hover,
103
+ button.avatar-button:hover,
104
+ button.sort-header:hover,
105
+ button.row-action:hover,
106
+ button.date-picker-day:hover,
107
+ button.side-rail-toggle:hover,
108
+ button.side-rail-icon:hover,
109
+ button.filter-clear:hover,
110
+ button.snackbar-close:hover {
111
+ transform: none;
112
+ }
113
+
114
+ button:active,
115
+ .aks-button:active {
116
+ transform: translateY(0);
117
+ }
118
+
119
+ button:disabled,
120
+ .aks-button:disabled {
121
+ cursor: default;
122
+ transform: none;
123
+ opacity: 0.55;
124
+ }
125
+
126
+ button.secondary,
127
+ .aks-button.secondary {
128
+ background: var(--aks-accent);
129
+ color: #fff;
130
+ box-shadow: 0 10px 18px rgba(230, 126, 34, 0.24);
131
+ }
132
+
133
+ button.secondary:hover,
134
+ .aks-button.secondary:hover {
135
+ background: #d06d16;
136
+ }
137
+
138
+ button.ghost,
139
+ .aks-button.ghost {
140
+ background: transparent;
141
+ color: var(--aks-muted);
142
+ box-shadow: none;
143
+ }
144
+
145
+ button.ghost:hover,
146
+ .aks-button.ghost:hover {
147
+ background: #f4f2ef;
148
+ color: var(--aks-brand);
149
+ }
150
+
151
+ /* Solid danger only for explicit Button variant — not row-action "danger" text links */
152
+ button.aks-button.danger {
153
+ background: var(--aks-danger);
154
+ color: #fff;
155
+ }
156
+
157
+ button.aks-button.danger:hover {
158
+ background: #912018;
159
+ }
160
+
161
+ label {
162
+ display: grid;
163
+ gap: 6px;
164
+ color: var(--aks-muted);
165
+ font-size: 13px;
166
+ font-weight: 600;
167
+ }
168
+
169
+ input,
170
+ textarea,
171
+ select {
172
+ width: 100%;
173
+ min-height: 44px;
174
+ padding: 12px 14px;
175
+ border: 1px solid transparent;
176
+ border-radius: var(--aks-radius);
177
+ background: var(--aks-field);
178
+ color: var(--aks-ink);
179
+ font: inherit;
180
+ }
181
+
182
+ input:hover,
183
+ textarea:hover,
184
+ select:hover {
185
+ background: #fff;
186
+ border-color: #ddd9d3;
187
+ }
188
+
189
+ input:focus,
190
+ textarea:focus,
191
+ select:focus {
192
+ outline: none;
193
+ background: #fff;
194
+ border-color: var(--aks-accent);
195
+ box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.18);
196
+ }
197
+
198
+ input[readonly],
199
+ select:disabled {
200
+ color: var(--aks-brand);
201
+ background: #f3f1ee;
202
+ }
203
+
204
+ .actions {
205
+ display: flex;
206
+ flex-wrap: wrap;
207
+ gap: 10px;
208
+ }
209
+
210
+ /* Topbar */
211
+ .topbar {
212
+ display: flex;
213
+ align-items: center;
214
+ justify-content: space-between;
215
+ gap: 16px;
216
+ padding: 12px 20px;
217
+ background: var(--aks-card);
218
+ border-bottom: 1px solid var(--aks-line);
219
+ }
220
+
221
+ .topbar-brand {
222
+ display: flex;
223
+ align-items: center;
224
+ gap: 12px;
225
+ min-width: 0;
226
+ }
227
+
228
+ .topbar-logo {
229
+ width: 40px;
230
+ height: 40px;
231
+ object-fit: contain;
232
+ }
233
+
234
+ .topbar h1 {
235
+ margin: 0;
236
+ font-size: 20px;
237
+ color: var(--aks-brand);
238
+ }
239
+
240
+ .topbar-actions {
241
+ position: relative;
242
+ display: flex;
243
+ align-items: center;
244
+ gap: 8px;
245
+ }
246
+
247
+ button.avatar-button {
248
+ width: 40px;
249
+ height: 40px;
250
+ padding: 0;
251
+ border-radius: 50%;
252
+ background: transparent;
253
+ box-shadow: none;
254
+ }
255
+
256
+ button.avatar-button:hover {
257
+ transform: none;
258
+ background: transparent;
259
+ }
260
+
261
+ .avatar {
262
+ display: grid;
263
+ place-items: center;
264
+ width: 40px;
265
+ height: 40px;
266
+ border-radius: 50%;
267
+ background: var(--aks-brand);
268
+ color: #fff;
269
+ font-size: 15px;
270
+ font-weight: 700;
271
+ }
272
+
273
+ .avatar-menu {
274
+ position: absolute;
275
+ top: calc(100% + 8px);
276
+ right: 0;
277
+ z-index: 30;
278
+ min-width: 160px;
279
+ padding: 6px;
280
+ border: 1px solid var(--aks-line);
281
+ border-radius: var(--aks-radius);
282
+ background: #fff;
283
+ box-shadow: 0 16px 32px rgba(30, 39, 53, 0.16);
284
+ }
285
+
286
+ .avatar-name {
287
+ margin: 0;
288
+ padding: 6px 10px 4px;
289
+ color: var(--aks-brand);
290
+ font-size: 13px;
291
+ font-weight: 600;
292
+ }
293
+
294
+ .avatar-menu button,
295
+ .avatar-menu .aks-button {
296
+ width: 100%;
297
+ min-height: 34px;
298
+ padding: 6px 10px;
299
+ justify-content: flex-start;
300
+ background: transparent;
301
+ color: var(--aks-muted);
302
+ font-size: 13px;
303
+ font-weight: 600;
304
+ box-shadow: none;
305
+ text-align: left;
306
+ }
307
+
308
+ .avatar-menu button:hover,
309
+ .avatar-menu .aks-button:hover {
310
+ transform: none;
311
+ background: #f4f2ef;
312
+ color: var(--aks-brand);
313
+ }
314
+
315
+ /* Side nav */
316
+ .side-nav {
317
+ display: grid;
318
+ align-content: start;
319
+ gap: 5px;
320
+ padding: 14px 12px;
321
+ background: var(--aks-card);
322
+ border-right: 1px solid var(--aks-line);
323
+ }
324
+
325
+ .side-nav button {
326
+ width: 100%;
327
+ justify-content: flex-start;
328
+ text-align: left;
329
+ min-height: 38px;
330
+ padding: 8px 14px;
331
+ border-radius: var(--aks-radius);
332
+ background: transparent;
333
+ color: var(--aks-muted);
334
+ font-size: 14px;
335
+ font-weight: 600;
336
+ box-shadow: none;
337
+ }
338
+
339
+ .side-nav button:hover {
340
+ transform: none;
341
+ background: #f4f2ef;
342
+ color: var(--aks-brand);
343
+ box-shadow: none;
344
+ }
345
+
346
+ .side-nav button.active {
347
+ background: var(--aks-brand);
348
+ color: #fff;
349
+ }
350
+
351
+ /* Select + DateField */
352
+ .app-select,
353
+ .date-field {
354
+ position: relative;
355
+ width: 100%;
356
+ }
357
+
358
+ .app-select-mirror {
359
+ position: absolute;
360
+ width: 1px;
361
+ height: 1px;
362
+ margin: 0;
363
+ padding: 0;
364
+ border: 0;
365
+ opacity: 0;
366
+ pointer-events: none;
367
+ }
368
+
369
+ button.app-select-trigger,
370
+ button.date-field-trigger {
371
+ display: flex;
372
+ align-items: center;
373
+ justify-content: space-between;
374
+ gap: 10px;
375
+ width: 100%;
376
+ min-height: 44px;
377
+ padding: 12px 14px;
378
+ border: 1px solid transparent;
379
+ border-radius: var(--aks-radius);
380
+ background: var(--aks-field);
381
+ color: var(--aks-ink);
382
+ font: inherit;
383
+ font-weight: 400;
384
+ text-align: left;
385
+ box-shadow: none;
386
+ }
387
+
388
+ button.app-select-trigger:hover,
389
+ button.date-field-trigger:hover {
390
+ transform: none;
391
+ background: #fff;
392
+ border-color: #ddd9d3;
393
+ box-shadow: none;
394
+ }
395
+
396
+ button.app-select-trigger.open,
397
+ button.app-select-trigger:focus-visible,
398
+ button.date-field-trigger.open,
399
+ button.date-field-trigger:focus-visible {
400
+ outline: none;
401
+ background: #fff;
402
+ border-color: var(--aks-accent);
403
+ box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.18);
404
+ }
405
+
406
+ button.app-select-trigger:disabled,
407
+ .date-field.read-only button.date-field-trigger,
408
+ button.date-field-trigger:disabled {
409
+ color: var(--aks-brand);
410
+ background: #f3f1ee;
411
+ cursor: default;
412
+ }
413
+
414
+ .app-select-value,
415
+ .date-field-value,
416
+ .app-select-placeholder,
417
+ .date-field-placeholder {
418
+ display: inline-flex;
419
+ align-items: center;
420
+ gap: 8px;
421
+ min-width: 0;
422
+ overflow: hidden;
423
+ text-overflow: ellipsis;
424
+ white-space: nowrap;
425
+ }
426
+
427
+ .app-select-placeholder,
428
+ .date-field-placeholder {
429
+ color: #98a2b3;
430
+ }
431
+
432
+ .app-select-chevron,
433
+ .date-field-icon {
434
+ width: 18px;
435
+ height: 18px;
436
+ flex: 0 0 auto;
437
+ color: var(--aks-muted);
438
+ }
439
+
440
+ .app-select-menu,
441
+ .date-picker {
442
+ position: fixed;
443
+ z-index: 70;
444
+ overflow: auto;
445
+ padding: 6px;
446
+ border: 1px solid var(--aks-line);
447
+ border-radius: var(--aks-radius);
448
+ background: #fff;
449
+ box-shadow:
450
+ 0 18px 40px rgba(30, 39, 53, 0.16),
451
+ 0 2px 8px rgba(30, 39, 53, 0.06);
452
+ animation: aks-snackbar-in 140ms ease-out;
453
+ }
454
+
455
+ .app-select-empty {
456
+ padding: 8px 10px;
457
+ color: var(--aks-muted);
458
+ font-size: 12px;
459
+ text-align: left;
460
+ }
461
+
462
+ button.app-select-option {
463
+ display: flex;
464
+ align-items: center;
465
+ justify-content: flex-start;
466
+ gap: 8px;
467
+ width: 100%;
468
+ min-height: 34px;
469
+ padding: 6px 10px;
470
+ border-radius: 6px;
471
+ background: transparent;
472
+ color: var(--aks-brand);
473
+ font: inherit;
474
+ font-size: 13px;
475
+ font-weight: 500;
476
+ line-height: 1.3;
477
+ text-align: left;
478
+ box-shadow: none;
479
+ }
480
+
481
+ button.app-select-option > span {
482
+ min-width: 0;
483
+ text-align: left;
484
+ }
485
+
486
+ button.app-select-option:hover {
487
+ transform: none;
488
+ background: #f4f2ef;
489
+ box-shadow: none;
490
+ }
491
+
492
+ button.app-select-option.active {
493
+ background: rgba(230, 126, 34, 0.12);
494
+ color: var(--aks-brand);
495
+ }
496
+
497
+ button.app-select-option.active:hover {
498
+ background: rgba(230, 126, 34, 0.16);
499
+ }
500
+
501
+ .app-select-dot {
502
+ width: 8px;
503
+ height: 8px;
504
+ border-radius: 50%;
505
+ flex: 0 0 auto;
506
+ background: #98a2b3;
507
+ }
508
+
509
+ .app-select-dot.ok { background: var(--aks-ok); }
510
+ .app-select-dot.warn { background: #d97706; }
511
+ .app-select-dot.danger { background: var(--aks-danger); }
512
+ .app-select-dot.accent { background: var(--aks-accent); }
513
+ .app-select-dot.neutral { background: #98a2b3; }
514
+
515
+ .app-select-check {
516
+ width: 16px;
517
+ height: 16px;
518
+ margin-left: auto;
519
+ color: var(--aks-accent);
520
+ }
521
+
522
+ .date-picker {
523
+ padding: 12px;
524
+ width: min(300px, calc(100vw - 24px));
525
+ }
526
+
527
+ .date-picker-head,
528
+ .date-picker-footer,
529
+ .date-picker-nav {
530
+ display: flex;
531
+ align-items: center;
532
+ justify-content: space-between;
533
+ gap: 8px;
534
+ }
535
+
536
+ .date-picker-head {
537
+ margin-bottom: 10px;
538
+ }
539
+
540
+ .date-picker-head strong {
541
+ color: var(--aks-brand);
542
+ font-size: 14px;
543
+ }
544
+
545
+ .date-picker-nav button.ghost {
546
+ width: 32px;
547
+ min-width: 32px;
548
+ height: 32px;
549
+ padding: 0;
550
+ font-size: 18px;
551
+ line-height: 1;
552
+ }
553
+
554
+ .date-picker-weekdays,
555
+ .date-picker-grid {
556
+ display: grid;
557
+ grid-template-columns: repeat(7, minmax(0, 1fr));
558
+ gap: 4px;
559
+ }
560
+
561
+ .date-picker-weekdays {
562
+ margin-bottom: 6px;
563
+ }
564
+
565
+ .date-picker-weekdays span {
566
+ text-align: center;
567
+ color: var(--aks-muted);
568
+ font-size: 11px;
569
+ font-weight: 700;
570
+ text-transform: uppercase;
571
+ }
572
+
573
+ button.date-picker-day {
574
+ aspect-ratio: 1;
575
+ min-width: 0;
576
+ padding: 0;
577
+ border-radius: 6px;
578
+ background: transparent;
579
+ color: var(--aks-brand);
580
+ font: inherit;
581
+ font-size: 13px;
582
+ font-weight: 500;
583
+ box-shadow: none;
584
+ }
585
+
586
+ button.date-picker-day:hover {
587
+ transform: none;
588
+ background: #f4f2ef;
589
+ box-shadow: none;
590
+ }
591
+
592
+ button.date-picker-day.outside {
593
+ color: #b0b7c3;
594
+ }
595
+
596
+ button.date-picker-day.today:not(.selected) {
597
+ box-shadow: inset 0 0 0 1px rgba(230, 126, 34, 0.55);
598
+ }
599
+
600
+ button.date-picker-day.selected,
601
+ button.date-picker-day.selected:hover {
602
+ background: var(--aks-accent);
603
+ color: #fff;
604
+ box-shadow: none;
605
+ }
606
+
607
+ .date-picker-footer {
608
+ margin-top: 10px;
609
+ padding-top: 8px;
610
+ border-top: 1px solid var(--aks-line);
611
+ }
612
+
613
+ .date-picker-footer button.ghost {
614
+ padding: 6px 10px;
615
+ color: var(--aks-accent);
616
+ font-size: 13px;
617
+ }
618
+
619
+ /* Dialog */
620
+ .dialog-backdrop {
621
+ position: fixed;
622
+ inset: 0;
623
+ z-index: 40;
624
+ display: grid;
625
+ place-items: center;
626
+ padding: 24px 16px;
627
+ background: rgba(30, 39, 53, 0.42);
628
+ }
629
+
630
+ .dialog {
631
+ width: min(480px, 100%);
632
+ display: grid;
633
+ gap: 16px;
634
+ padding: 20px;
635
+ border-radius: var(--aks-radius);
636
+ background: var(--aks-card);
637
+ box-shadow: 0 24px 60px rgba(30, 39, 53, 0.24);
638
+ }
639
+
640
+ .form-dialog {
641
+ width: min(760px, 100%);
642
+ max-height: calc(100vh - 48px);
643
+ overflow: auto;
644
+ }
645
+
646
+ .dialog-head {
647
+ display: flex;
648
+ align-items: center;
649
+ justify-content: space-between;
650
+ gap: 12px;
651
+ }
652
+
653
+ .dialog-head h2 {
654
+ margin: 0;
655
+ font-size: 18px;
656
+ color: var(--aks-brand);
657
+ }
658
+
659
+ .dialog .wide {
660
+ grid-column: 1 / -1;
661
+ }
662
+
663
+ /* Snackbar */
664
+ .snackbar-host {
665
+ position: fixed;
666
+ right: 24px;
667
+ bottom: 24px;
668
+ left: auto;
669
+ z-index: 60;
670
+ transform: none;
671
+ width: min(380px, calc(100% - 32px));
672
+ pointer-events: none;
673
+ }
674
+
675
+ .snackbar {
676
+ pointer-events: auto;
677
+ display: flex;
678
+ align-items: flex-start;
679
+ gap: 12px;
680
+ margin: 0;
681
+ padding: 12px 14px;
682
+ border-radius: var(--aks-radius);
683
+ background: #fff;
684
+ color: var(--aks-brand);
685
+ border: 1px solid var(--aks-line);
686
+ box-shadow:
687
+ 0 12px 28px rgba(30, 39, 53, 0.14),
688
+ 0 2px 8px rgba(30, 39, 53, 0.06);
689
+ animation: aks-snackbar-in 180ms ease-out;
690
+ }
691
+
692
+ .snackbar.success {
693
+ border-color: rgba(6, 118, 71, 0.22);
694
+ background: #f7fcf9;
695
+ }
696
+
697
+ .snackbar:not(.success) {
698
+ border-color: rgba(180, 35, 24, 0.22);
699
+ background: #fff8f7;
700
+ }
701
+
702
+ .snackbar p {
703
+ margin: 0;
704
+ flex: 1;
705
+ padding-top: 1px;
706
+ font-size: 14px;
707
+ font-weight: 500;
708
+ line-height: 1.4;
709
+ color: var(--aks-brand);
710
+ }
711
+
712
+ .snackbar-icon {
713
+ width: 20px;
714
+ height: 20px;
715
+ flex: 0 0 auto;
716
+ margin-top: 1px;
717
+ }
718
+
719
+ .snackbar.success .snackbar-icon {
720
+ color: var(--aks-ok);
721
+ }
722
+
723
+ .snackbar:not(.success) .snackbar-icon {
724
+ color: var(--aks-danger);
725
+ }
726
+
727
+ button.snackbar-close {
728
+ width: 28px;
729
+ height: 28px;
730
+ min-width: 28px;
731
+ padding: 0;
732
+ border-radius: 8px;
733
+ background: transparent;
734
+ color: var(--aks-muted);
735
+ box-shadow: none;
736
+ font-size: 18px;
737
+ line-height: 1;
738
+ }
739
+
740
+ button.snackbar-close:hover {
741
+ transform: none;
742
+ background: rgba(30, 39, 53, 0.06);
743
+ color: var(--aks-brand);
744
+ }
745
+
746
+ @keyframes aks-snackbar-in {
747
+ from {
748
+ opacity: 0;
749
+ transform: translateY(10px);
750
+ }
751
+ to {
752
+ opacity: 1;
753
+ transform: translateY(0);
754
+ }
755
+ }
756
+
757
+ /* Pagination */
758
+ .table-pagination {
759
+ display: flex;
760
+ flex-wrap: nowrap;
761
+ align-items: center;
762
+ justify-content: space-between;
763
+ gap: 10px;
764
+ height: var(--aks-table-header-height);
765
+ min-height: var(--aks-table-header-height);
766
+ padding: 0 12px;
767
+ border-top: 1px solid var(--aks-line);
768
+ background: #faf9f7;
769
+ overflow: hidden;
770
+ }
771
+
772
+ .page-size,
773
+ .page-buttons {
774
+ display: inline-flex;
775
+ align-items: center;
776
+ gap: 6px;
777
+ font-size: 12px;
778
+ color: var(--aks-muted);
779
+ }
780
+
781
+ .page-size .page-size-select {
782
+ width: 72px;
783
+ min-width: 72px;
784
+ }
785
+
786
+ .page-size .app-select-trigger {
787
+ min-height: 28px;
788
+ padding: 2px 8px;
789
+ font-size: 12px;
790
+ }
791
+
792
+ .page-summary,
793
+ .page-indicator {
794
+ margin: 0;
795
+ color: var(--aks-muted);
796
+ font-size: 12px;
797
+ white-space: nowrap;
798
+ }
799
+
800
+ .page-buttons .ghost {
801
+ min-height: 28px;
802
+ padding: 2px 8px;
803
+ font-size: 12px;
804
+ box-shadow: none;
805
+ }
806
+
807
+ /* src\theme\patterns.css */
808
+ @keyframes aks-fade-up {
809
+ from { opacity: 0; transform: translateY(8px); }
810
+ to { opacity: 1; transform: translateY(0); }
811
+ }
812
+
813
+ .hint {
814
+ color: var(--aks-muted);
815
+ font-size: 13px;
816
+ }
817
+
818
+ .workspace,
819
+ .list-workspace {
820
+ display: flex;
821
+ flex-direction: column;
822
+ gap: 0;
823
+ align-items: stretch;
824
+ }
825
+
826
+ .list-workspace {
827
+ width: 100%;
828
+ height: 100%;
829
+ min-height: 0;
830
+ }
831
+
832
+ .list-body {
833
+ display: flex;
834
+ gap: 12px;
835
+ min-height: 0;
836
+ flex: 1 1 auto;
837
+ align-items: stretch;
838
+ }
839
+
840
+ .list-main {
841
+ display: flex;
842
+ flex-direction: column;
843
+ min-width: 0;
844
+ min-height: 0;
845
+ flex: 1 1 auto;
846
+ }
847
+
848
+ .table-card {
849
+ display: flex;
850
+ flex-direction: column;
851
+ min-height: 0;
852
+ flex: 1 1 auto;
853
+ border: 1px solid var(--aks-line);
854
+ border-radius: var(--aks-radius);
855
+ background: #fff;
856
+ overflow: hidden;
857
+ }
858
+
859
+ .table-card-bar {
860
+ display: flex;
861
+ align-items: center;
862
+ gap: 10px;
863
+ flex: 0 0 auto;
864
+ min-height: 44px;
865
+ padding: 6px 10px;
866
+ border-bottom: 1px solid var(--aks-line);
867
+ background: #faf9f7;
868
+ }
869
+
870
+ .table-card-context {
871
+ flex: 1 1 auto;
872
+ min-width: 0;
873
+ }
874
+
875
+ .list-filter {
876
+ display: block;
877
+ max-width: none;
878
+ }
879
+
880
+ .preview-panel {
881
+ width: var(--aks-preview-panel-width);
882
+ flex: 0 0 var(--aks-preview-panel-width);
883
+ display: flex;
884
+ flex-direction: column;
885
+ gap: 0;
886
+ min-height: 0;
887
+ border: 1px solid var(--aks-line);
888
+ border-radius: var(--aks-radius);
889
+ background:
890
+ linear-gradient(180deg, #ffffff 0%, #fbfaf8 100%);
891
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
892
+ overflow: hidden;
893
+ animation: aks-fade-up 160ms ease-out;
894
+ }
895
+
896
+ .preview-panel-head {
897
+ flex: 0 0 auto;
898
+ display: flex;
899
+ align-items: flex-start;
900
+ justify-content: space-between;
901
+ gap: 10px;
902
+ padding: 14px 14px 12px;
903
+ border-bottom: 1px solid var(--aks-line);
904
+ background: #faf9f7;
905
+ }
906
+
907
+ .preview-panel-head h3 {
908
+ margin: 2px 0 0;
909
+ color: var(--aks-brand);
910
+ font-size: 15px;
911
+ font-weight: 700;
912
+ line-height: 1.3;
913
+ word-break: break-word;
914
+ }
915
+
916
+ .preview-panel-body {
917
+ flex: 1 1 auto;
918
+ min-height: 0;
919
+ padding: 14px;
920
+ overflow: auto;
921
+ }
922
+
923
+ .preview-kicker {
924
+ margin: 0;
925
+ color: var(--aks-accent);
926
+ font-size: 11px;
927
+ font-weight: 700;
928
+ letter-spacing: 0.06em;
929
+ text-transform: uppercase;
930
+ }
931
+
932
+ .preview-empty {
933
+ margin: 0;
934
+ color: var(--aks-muted);
935
+ font-size: 13px;
936
+ line-height: 1.45;
937
+ }
938
+
939
+ .preview-check:has(input:checked) {
940
+ color: var(--aks-accent);
941
+ }
942
+
943
+ .preview-check:has(input:checked) svg {
944
+ color: var(--aks-accent);
945
+ }
946
+
947
+ .record-detail-list {
948
+ display: grid;
949
+ gap: 10px;
950
+ margin: 0;
951
+ }
952
+
953
+ .record-detail-row {
954
+ display: grid;
955
+ gap: 2px;
956
+ padding-bottom: 10px;
957
+ border-bottom: 1px solid rgba(230, 228, 223, 0.9);
958
+ }
959
+
960
+ .record-detail-row:last-child {
961
+ border-bottom: 0;
962
+ padding-bottom: 0;
963
+ }
964
+
965
+ .record-detail-row dt {
966
+ color: var(--aks-muted);
967
+ font-size: 11px;
968
+ font-weight: 700;
969
+ letter-spacing: 0.04em;
970
+ text-transform: uppercase;
971
+ }
972
+
973
+ .record-detail-row dd {
974
+ margin: 0;
975
+ color: var(--aks-brand);
976
+ font-size: 13px;
977
+ font-weight: 500;
978
+ word-break: break-word;
979
+ }
980
+
981
+ .record-tooltip {
982
+ position: fixed;
983
+ z-index: 80;
984
+ width: min(280px, calc(100vw - 24px));
985
+ padding: 12px;
986
+ border: 1px solid var(--aks-line);
987
+ border-radius: var(--aks-radius);
988
+ background: #fff;
989
+ box-shadow:
990
+ 0 18px 40px rgba(30, 39, 53, 0.16),
991
+ 0 2px 8px rgba(30, 39, 53, 0.06);
992
+ pointer-events: none;
993
+ animation: aks-fade-up 120ms ease-out;
994
+ }
995
+
996
+ .record-tooltip-title {
997
+ margin: 0 0 10px;
998
+ color: var(--aks-brand);
999
+ font-size: 12px;
1000
+ font-weight: 700;
1001
+ letter-spacing: 0.04em;
1002
+ text-transform: uppercase;
1003
+ }
1004
+
1005
+ .data-table tbody tr.data-row {
1006
+ cursor: pointer;
1007
+ transition: background 120ms ease;
1008
+ }
1009
+
1010
+ .data-table tbody tr.data-row:hover td {
1011
+ background: rgba(30, 39, 53, 0.03);
1012
+ }
1013
+
1014
+ .data-table tbody tr.data-row.selected td {
1015
+ background: rgba(230, 126, 34, 0.1);
1016
+ }
1017
+
1018
+ .data-table tbody tr.data-row.selected:hover td {
1019
+ background: rgba(230, 126, 34, 0.14);
1020
+ }
1021
+
1022
+ .preview-check {
1023
+ display: flex;
1024
+ align-items: center;
1025
+ justify-content: flex-start;
1026
+ gap: 8px;
1027
+ margin: 0;
1028
+ padding: 4px 0;
1029
+ border: 0;
1030
+ background: transparent;
1031
+ color: var(--aks-brand);
1032
+ font-size: 12px;
1033
+ font-weight: 600;
1034
+ cursor: default;
1035
+ }
1036
+
1037
+ .preview-check input[type="checkbox"],
1038
+ .preview-check-icon input[type="checkbox"] {
1039
+ width: 15px;
1040
+ height: 15px;
1041
+ min-width: 15px;
1042
+ min-height: 15px;
1043
+ margin: 0;
1044
+ padding: 0;
1045
+ border: 0;
1046
+ border-radius: 3px;
1047
+ background: transparent;
1048
+ box-shadow: none;
1049
+ accent-color: var(--aks-accent);
1050
+ cursor: pointer;
1051
+ }
1052
+
1053
+ .preview-check input[type="checkbox"]:hover,
1054
+ .preview-check input[type="checkbox"]:focus,
1055
+ .preview-check-icon input[type="checkbox"]:hover,
1056
+ .preview-check-icon input[type="checkbox"]:focus {
1057
+ background: transparent;
1058
+ border: 0;
1059
+ box-shadow: none;
1060
+ }
1061
+
1062
+ .preview-check svg {
1063
+ width: 16px;
1064
+ height: 16px;
1065
+ color: var(--aks-muted);
1066
+ flex: 0 0 auto;
1067
+ pointer-events: none;
1068
+ }
1069
+
1070
+ .preview-check > span {
1071
+ pointer-events: none;
1072
+ }
1073
+
1074
+ label.preview-check-icon {
1075
+ position: relative;
1076
+ width: 36px;
1077
+ height: 36px;
1078
+ min-width: 36px;
1079
+ display: grid;
1080
+ place-items: center;
1081
+ margin: 0;
1082
+ border-radius: var(--aks-radius);
1083
+ color: var(--aks-brand);
1084
+ cursor: pointer;
1085
+ }
1086
+
1087
+ label.preview-check-icon svg {
1088
+ width: 18px;
1089
+ height: 18px;
1090
+ }
1091
+
1092
+ label.preview-check-icon:hover {
1093
+ background: #fff;
1094
+ }
1095
+
1096
+ label.preview-check-icon input {
1097
+ position: absolute;
1098
+ inset: 0;
1099
+ opacity: 0;
1100
+ cursor: pointer;
1101
+ }
1102
+
1103
+ label.preview-check-icon:has(input:checked) {
1104
+ background: rgba(230, 126, 34, 0.14);
1105
+ color: var(--aks-accent);
1106
+ }
1107
+
1108
+ .side-rail {
1109
+ width: var(--aks-side-rail-collapsed);
1110
+ flex: 0 0 var(--aks-side-rail-collapsed);
1111
+ display: flex;
1112
+ flex-direction: column;
1113
+ align-items: stretch;
1114
+ gap: 8px;
1115
+ min-height: 0;
1116
+ padding: 8px 6px;
1117
+ border: 1px solid var(--aks-line);
1118
+ border-radius: var(--aks-radius);
1119
+ background: #faf9f7;
1120
+ overflow: hidden;
1121
+ transition: width 160ms ease, flex-basis 160ms ease;
1122
+ }
1123
+
1124
+ .side-rail.open {
1125
+ width: var(--aks-side-rail-expanded);
1126
+ flex-basis: var(--aks-side-rail-expanded);
1127
+ }
1128
+
1129
+ button.side-rail-toggle {
1130
+ display: inline-flex;
1131
+ align-items: center;
1132
+ justify-content: center;
1133
+ gap: 8px;
1134
+ width: 100%;
1135
+ min-height: 36px;
1136
+ padding: 6px;
1137
+ color: var(--aks-brand);
1138
+ box-shadow: none;
1139
+ }
1140
+
1141
+ button.side-rail-toggle:hover {
1142
+ transform: none;
1143
+ background: #fff;
1144
+ }
1145
+
1146
+ .side-rail-chevron {
1147
+ width: 16px;
1148
+ height: 16px;
1149
+ flex: 0 0 auto;
1150
+ transform: rotate(180deg);
1151
+ transition: transform 160ms ease;
1152
+ }
1153
+
1154
+ .side-rail-chevron.open {
1155
+ transform: rotate(0deg);
1156
+ }
1157
+
1158
+ .side-rail-icons {
1159
+ display: grid;
1160
+ gap: 6px;
1161
+ justify-items: center;
1162
+ }
1163
+
1164
+ button.side-rail-icon {
1165
+ position: relative;
1166
+ width: 36px;
1167
+ height: 36px;
1168
+ min-width: 36px;
1169
+ padding: 0;
1170
+ display: grid;
1171
+ place-items: center;
1172
+ color: var(--aks-brand);
1173
+ box-shadow: none;
1174
+ }
1175
+
1176
+ button.side-rail-icon:hover {
1177
+ transform: none;
1178
+ background: #fff;
1179
+ }
1180
+
1181
+ button.side-rail-icon svg,
1182
+ .side-rail-add svg {
1183
+ width: 18px;
1184
+ height: 18px;
1185
+ }
1186
+
1187
+ .side-rail-body {
1188
+ display: flex;
1189
+ flex-direction: column;
1190
+ gap: 14px;
1191
+ min-height: 0;
1192
+ overflow: auto;
1193
+ padding: 2px;
1194
+ }
1195
+
1196
+ button.side-rail-add {
1197
+ display: inline-flex;
1198
+ align-items: center;
1199
+ justify-content: center;
1200
+ gap: 8px;
1201
+ width: 100%;
1202
+ padding: 10px 12px;
1203
+ border-radius: var(--aks-radius);
1204
+ background: var(--aks-brand);
1205
+ color: #fff;
1206
+ box-shadow: none;
1207
+ }
1208
+
1209
+ button.side-rail-add:hover {
1210
+ transform: none;
1211
+ background: #2a3546;
1212
+ }
1213
+
1214
+ .side-rail-filters {
1215
+ display: grid;
1216
+ gap: 12px;
1217
+ }
1218
+
1219
+ .filter-badge {
1220
+ position: absolute;
1221
+ top: -2px;
1222
+ right: -2px;
1223
+ min-width: 16px;
1224
+ height: 16px;
1225
+ padding: 0 4px;
1226
+ display: inline-grid;
1227
+ place-items: center;
1228
+ border-radius: 999px;
1229
+ background: var(--aks-accent);
1230
+ color: #fff;
1231
+ font-size: 10px;
1232
+ font-weight: 700;
1233
+ }
1234
+
1235
+ .filter-panel-head {
1236
+ display: flex;
1237
+ align-items: center;
1238
+ justify-content: space-between;
1239
+ gap: 8px;
1240
+ }
1241
+
1242
+ .filter-panel-head h3 {
1243
+ margin: 0;
1244
+ color: var(--aks-brand);
1245
+ font-size: 13px;
1246
+ font-weight: 700;
1247
+ text-transform: uppercase;
1248
+ letter-spacing: 0.03em;
1249
+ }
1250
+
1251
+ button.filter-clear {
1252
+ display: inline-flex;
1253
+ align-items: center;
1254
+ gap: 4px;
1255
+ padding: 4px 8px;
1256
+ font-size: 12px;
1257
+ box-shadow: none;
1258
+ }
1259
+
1260
+ button.filter-clear svg {
1261
+ width: 14px;
1262
+ height: 14px;
1263
+ }
1264
+
1265
+ button.side-rail-icon:disabled,
1266
+ button.filter-clear:disabled {
1267
+ opacity: 0.35;
1268
+ cursor: default;
1269
+ }
1270
+
1271
+ .filter-panel-stack {
1272
+ display: grid;
1273
+ gap: 12px;
1274
+ align-content: start;
1275
+ }
1276
+
1277
+ .filter-panel-stack label {
1278
+ gap: 4px;
1279
+ }
1280
+
1281
+ button.record-button {
1282
+ display: grid;
1283
+ gap: 2px;
1284
+ width: 100%;
1285
+ padding: 14px 16px;
1286
+ border: 0;
1287
+ text-align: left;
1288
+ background: transparent;
1289
+ color: var(--aks-brand);
1290
+ box-shadow: none;
1291
+ border-radius: 16px;
1292
+ }
1293
+
1294
+ button.record-button strong {
1295
+ font-size: 14px;
1296
+ }
1297
+
1298
+ button.record-button span {
1299
+ color: var(--aks-muted);
1300
+ font-size: 13px;
1301
+ font-weight: 400;
1302
+ }
1303
+
1304
+ .table-card > .table-wrap {
1305
+ width: 100%;
1306
+ min-height: 0;
1307
+ flex: 1 1 auto;
1308
+ height: auto;
1309
+ max-height: none;
1310
+ overflow: auto;
1311
+ border: 0;
1312
+ border-radius: 0;
1313
+ background: #fff;
1314
+ }
1315
+
1316
+ .table-card > .table-pagination {
1317
+ flex: 0 0 auto;
1318
+ height: var(--aks-table-header-height);
1319
+ min-height: var(--aks-table-header-height);
1320
+ padding: 0 12px;
1321
+ border-top: 1px solid var(--aks-line);
1322
+ background: #faf9f7;
1323
+ }
1324
+
1325
+ .data-table {
1326
+ width: 100%;
1327
+ border-collapse: collapse;
1328
+ min-width: 640px;
1329
+ }
1330
+
1331
+ .data-table th,
1332
+ .data-table td {
1333
+ padding: 6px 12px;
1334
+ height: var(--aks-row-height);
1335
+ text-align: left;
1336
+ border-bottom: 1px solid var(--aks-line);
1337
+ vertical-align: middle;
1338
+ font-size: 13px;
1339
+ }
1340
+
1341
+ .data-table th {
1342
+ position: sticky;
1343
+ top: 0;
1344
+ z-index: 1;
1345
+ height: var(--aks-table-header-height);
1346
+ background: #f6f5f3;
1347
+ color: var(--aks-brand);
1348
+ font-size: 12px;
1349
+ font-weight: 700;
1350
+ letter-spacing: 0.02em;
1351
+ text-transform: uppercase;
1352
+ white-space: nowrap;
1353
+ }
1354
+
1355
+ button.sort-header {
1356
+ display: inline-flex;
1357
+ align-items: center;
1358
+ gap: 6px;
1359
+ width: 100%;
1360
+ padding: 0;
1361
+ border: 0;
1362
+ background: transparent;
1363
+ color: inherit;
1364
+ font: inherit;
1365
+ font-weight: inherit;
1366
+ letter-spacing: inherit;
1367
+ text-transform: inherit;
1368
+ text-align: left;
1369
+ box-shadow: none;
1370
+ cursor: pointer;
1371
+ }
1372
+
1373
+ button.sort-header:hover {
1374
+ transform: none;
1375
+ color: var(--aks-accent);
1376
+ background: transparent;
1377
+ box-shadow: none;
1378
+ }
1379
+
1380
+ button.sort-header.active {
1381
+ color: var(--aks-accent);
1382
+ }
1383
+
1384
+ .sort-indicator {
1385
+ color: #b0b7c3;
1386
+ font-size: 10px;
1387
+ line-height: 1;
1388
+ }
1389
+
1390
+ button.sort-header.active .sort-indicator {
1391
+ color: var(--aks-accent);
1392
+ }
1393
+
1394
+ .data-table tbody tr:last-child td {
1395
+ border-bottom: 0;
1396
+ }
1397
+
1398
+ .data-table tbody tr:hover td {
1399
+ background: #fffcf8;
1400
+ }
1401
+
1402
+ .data-table .actions-col {
1403
+ width: 1%;
1404
+ white-space: nowrap;
1405
+ text-align: right;
1406
+ }
1407
+
1408
+ .row-actions {
1409
+ display: inline-flex;
1410
+ align-items: center;
1411
+ justify-content: flex-end;
1412
+ gap: 6px;
1413
+ }
1414
+
1415
+ button.row-action {
1416
+ padding: 4px 8px;
1417
+ font-size: 12px;
1418
+ box-shadow: none;
1419
+ }
1420
+
1421
+ button.row-action.danger:not(:disabled) {
1422
+ color: #a33b2b;
1423
+ }
1424
+
1425
+ .table-empty {
1426
+ margin: 0;
1427
+ padding: 28px 8px;
1428
+ text-align: center;
1429
+ }
1430
+
1431
+ .table-pagination {
1432
+ display: flex;
1433
+ flex-wrap: nowrap;
1434
+ align-items: center;
1435
+ justify-content: space-between;
1436
+ gap: 10px;
1437
+ overflow: hidden;
1438
+ }
1439
+
1440
+ .data-table thead button.sort-header,
1441
+ button.sort-header {
1442
+ display: inline-flex;
1443
+ align-items: center;
1444
+ justify-content: flex-start;
1445
+ gap: 6px;
1446
+ width: 100%;
1447
+ min-height: 0;
1448
+ padding: 0;
1449
+ border: 0;
1450
+ border-radius: 0;
1451
+ background: transparent;
1452
+ color: inherit;
1453
+ font: inherit;
1454
+ font-weight: inherit;
1455
+ letter-spacing: inherit;
1456
+ text-transform: inherit;
1457
+ text-align: left;
1458
+ box-shadow: none;
1459
+ cursor: pointer;
1460
+ }
1461
+
1462
+ .data-table thead button.sort-header:hover,
1463
+ button.sort-header:hover {
1464
+ transform: none;
1465
+ color: var(--aks-accent);
1466
+ background: transparent;
1467
+ box-shadow: none;
1468
+ }
1469
+
1470
+ .data-table thead button.sort-header.active,
1471
+ button.sort-header.active {
1472
+ color: var(--aks-accent);
1473
+ background: transparent;
1474
+ box-shadow: none;
1475
+ }
1476
+
1477
+ .data-table .row-actions button.row-action,
1478
+ button.row-action {
1479
+ min-height: 0;
1480
+ padding: 4px 8px;
1481
+ border-radius: var(--aks-radius);
1482
+ background: transparent;
1483
+ color: var(--aks-muted);
1484
+ font-size: 12px;
1485
+ font-weight: 600;
1486
+ box-shadow: none;
1487
+ }
1488
+
1489
+ .data-table .row-actions button.row-action:hover,
1490
+ button.row-action:hover {
1491
+ transform: none;
1492
+ background: #f4f2ef;
1493
+ color: var(--aks-brand);
1494
+ box-shadow: none;
1495
+ }
1496
+
1497
+ .data-table .row-actions button.row-action.danger:not(:disabled),
1498
+ button.row-action.danger:not(:disabled) {
1499
+ background: transparent;
1500
+ color: #a33b2b;
1501
+ box-shadow: none;
1502
+ }
1503
+
1504
+ .data-table .row-actions button.row-action.danger:not(:disabled):hover,
1505
+ button.row-action.danger:not(:disabled):hover {
1506
+ background: #fff1f0;
1507
+ color: #a33b2b;
1508
+ box-shadow: none;
1509
+ }
1510
+
1511
+ @media (max-width: 900px) {
1512
+ .list-body.side-open,
1513
+ .list-body.preview-open {
1514
+ flex-direction: column;
1515
+ }
1516
+
1517
+ .preview-panel,
1518
+ .side-rail,
1519
+ .side-rail.open {
1520
+ width: 100%;
1521
+ flex-basis: auto;
1522
+ }
1523
+
1524
+ .side-rail:not(.open) {
1525
+ flex-direction: row;
1526
+ align-items: center;
1527
+ width: 100%;
1528
+ flex-basis: auto;
1529
+ }
1530
+
1531
+ .side-rail:not(.open) .side-rail-icons {
1532
+ display: inline-flex;
1533
+ margin-left: auto;
1534
+ }
1535
+
1536
+ .table-card-bar {
1537
+ flex-wrap: wrap;
1538
+ }
1539
+ }
1540
+
1541
+ /* src\theme\shell.css */
1542
+ /* App shell — matches aksconfigurator_ui chrome */
1543
+
1544
+ .app-shell {
1545
+ width: 100%;
1546
+ min-height: 100dvh;
1547
+ display: grid;
1548
+ grid-template-rows: auto minmax(0, 1fr);
1549
+ background: #f3f2ef;
1550
+ }
1551
+
1552
+ .app-body {
1553
+ display: grid;
1554
+ grid-template-columns: 240px minmax(0, 1fr);
1555
+ min-width: 0;
1556
+ min-height: 0;
1557
+ width: 100%;
1558
+ }
1559
+
1560
+ .app-shell .screen {
1561
+ display: flex;
1562
+ flex-direction: column;
1563
+ min-height: 0;
1564
+ overflow: hidden;
1565
+ padding: 12px;
1566
+ }
1567
+
1568
+ .app-shell .screen > .list-workspace {
1569
+ flex: 1 1 auto;
1570
+ min-height: 0;
1571
+ }
1572
+
1573
+ .bottom-nav {
1574
+ display: none;
1575
+ }
1576
+
1577
+ @media (max-width: 900px) {
1578
+ .app-body {
1579
+ grid-template-columns: 1fr;
1580
+ }
1581
+
1582
+ .app-shell .side-nav {
1583
+ display: none;
1584
+ }
1585
+
1586
+ .app-shell .screen {
1587
+ padding: 10px 10px 88px;
1588
+ }
1589
+
1590
+ .bottom-nav {
1591
+ position: fixed;
1592
+ left: 0;
1593
+ right: 0;
1594
+ bottom: 0;
1595
+ z-index: 20;
1596
+ display: grid;
1597
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
1598
+ gap: 6px;
1599
+ padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
1600
+ border-radius: 20px 20px 0 0;
1601
+ background: var(--aks-brand);
1602
+ box-shadow: 0 -8px 24px rgba(30, 39, 53, 0.18);
1603
+ }
1604
+
1605
+ .bottom-nav button {
1606
+ display: flex;
1607
+ flex-direction: column;
1608
+ align-items: center;
1609
+ justify-content: center;
1610
+ gap: 4px;
1611
+ min-width: 0;
1612
+ padding: 10px 4px;
1613
+ background: transparent;
1614
+ color: rgba(255, 255, 255, 0.72);
1615
+ font-size: 10px;
1616
+ line-height: 1.1;
1617
+ white-space: nowrap;
1618
+ box-shadow: none;
1619
+ }
1620
+
1621
+ .bottom-nav button.active,
1622
+ .bottom-nav button:hover {
1623
+ transform: none;
1624
+ background: var(--aks-accent);
1625
+ color: #fff;
1626
+ box-shadow: none;
1627
+ }
1628
+
1629
+ .snackbar-host {
1630
+ right: 16px;
1631
+ bottom: calc(78px + env(safe-area-inset-bottom));
1632
+ }
1633
+ }