@pallasoft/ps-design-system 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1424 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
2
+
3
+ :root,
4
+ .ps-theme-light {
5
+ --ps-color-background: #f5f7fb;
6
+ --ps-color-background-rgb: 245 247 251;
7
+ --ps-color-foreground: #0f172a;
8
+ --ps-color-muted: #64748b;
9
+ --ps-color-panel: #ffffff;
10
+ --ps-color-panel-border: #e2e8f0;
11
+ --ps-color-muted-rgb: 100 116 139;
12
+ --ps-color-subtle-rgb: 148 163 184;
13
+ --ps-color-panel-rgb: 255 255 255;
14
+ --ps-color-panel-muted-rgb: 248 250 252;
15
+ --ps-liquid-highlight-rgb: 255 255 255;
16
+ --ps-liquid-shadow-rgb: 15 23 42;
17
+ --ps-liquid-depth-opacity: 0.08;
18
+ --ps-liquid-fill-a: 0.82;
19
+ --ps-liquid-fill-b: 0.56;
20
+ --ps-liquid-line-opacity: 0.68;
21
+ --ps-privacy-shimmer-a: #e2e8f0;
22
+ --ps-privacy-shimmer-b: #f8fafc;
23
+ --ps-privacy-shimmer-c: #dbe3ee;
24
+ --ps-color-danger-rgb: 220 38 38;
25
+ --ps-color-danger-soft-rgb: 254 242 242;
26
+ --ps-color-accent-rgb: 37 99 235;
27
+ --ps-color-accent-soft-rgb: 239 246 255;
28
+ --ps-color-ink-rgb: 15 23 42;
29
+ --ps-color-line-rgb: 226 232 240;
30
+ --ps-color-mist-rgb: 239 246 255;
31
+ --ps-color-success-rgb: 22 163 74;
32
+ --ps-color-success-soft-rgb: 240 253 244;
33
+ --ps-color-surface-rgb: 255 255 255;
34
+ --ps-color-warning-rgb: 217 119 6;
35
+ --ps-color-warning-soft-rgb: 255 247 237;
36
+ --ps-color-primary-contrast: #ffffff;
37
+ --ps-chart-1: rgb(71 85 105);
38
+ --ps-chart-1-rgb: 71 85 105;
39
+ --ps-chart-2: rgb(15 159 110);
40
+ --ps-chart-2-rgb: 15 159 110;
41
+ --ps-chart-3: rgb(37 99 235);
42
+ --ps-chart-3-rgb: 37 99 235;
43
+ --ps-chart-4: rgb(217 119 6);
44
+ --ps-chart-4-rgb: 217 119 6;
45
+ --ps-chart-5: rgb(124 58 237);
46
+ --ps-chart-5-rgb: 124 58 237;
47
+ --ps-chart-inflow: rgb(15 159 110);
48
+ --ps-chart-inflow-rgb: 15 159 110;
49
+ --ps-chart-outflow: rgb(71 85 105);
50
+ --ps-chart-outflow-rgb: 71 85 105;
51
+ color-scheme: light;
52
+ }
53
+
54
+ .ps-theme-dark {
55
+ --ps-color-background: #0f172a;
56
+ --ps-color-background-rgb: 15 23 42;
57
+ --ps-color-foreground: #f8fafc;
58
+ --ps-color-muted: #94a3b8;
59
+ --ps-color-panel: #111c34;
60
+ --ps-color-panel-border: #23314d;
61
+ --ps-color-muted-rgb: 174 187 206;
62
+ --ps-color-subtle-rgb: 151 164 184;
63
+ --ps-color-panel-rgb: 17 28 52;
64
+ --ps-color-panel-muted-rgb: 15 23 42;
65
+ --ps-liquid-highlight-rgb: 255 255 255;
66
+ --ps-liquid-shadow-rgb: 0 0 0;
67
+ --ps-liquid-depth-opacity: 0;
68
+ --ps-liquid-fill-a: 0.034;
69
+ --ps-liquid-fill-b: 0.014;
70
+ --ps-liquid-line-opacity: 0.07;
71
+ --ps-privacy-shimmer-a: #1e293b;
72
+ --ps-privacy-shimmer-b: #273449;
73
+ --ps-privacy-shimmer-c: #162033;
74
+ --ps-color-danger-rgb: 248 113 113;
75
+ --ps-color-danger-soft-rgb: 69 10 10;
76
+ --ps-color-accent-rgb: 96 165 250;
77
+ --ps-color-accent-soft-rgb: 30 41 59;
78
+ --ps-color-ink-rgb: 248 250 252;
79
+ --ps-color-line-rgb: 51 65 85;
80
+ --ps-color-mist-rgb: 15 23 42;
81
+ --ps-color-success-rgb: 74 222 128;
82
+ --ps-color-success-soft-rgb: 20 83 45;
83
+ --ps-color-surface-rgb: 17 28 52;
84
+ --ps-color-warning-rgb: 251 191 36;
85
+ --ps-color-warning-soft-rgb: 69 26 3;
86
+ --ps-color-primary-contrast: #ffffff;
87
+ --ps-chart-1: rgb(148 163 184);
88
+ --ps-chart-1-rgb: 148 163 184;
89
+ --ps-chart-2: rgb(52 211 153);
90
+ --ps-chart-2-rgb: 52 211 153;
91
+ --ps-chart-3: rgb(96 165 250);
92
+ --ps-chart-3-rgb: 96 165 250;
93
+ --ps-chart-4: rgb(251 191 36);
94
+ --ps-chart-4-rgb: 251 191 36;
95
+ --ps-chart-5: rgb(196 181 253);
96
+ --ps-chart-5-rgb: 196 181 253;
97
+ --ps-chart-inflow: rgb(52 211 153);
98
+ --ps-chart-inflow-rgb: 52 211 153;
99
+ --ps-chart-outflow: rgb(148 163 184);
100
+ --ps-chart-outflow-rgb: 148 163 184;
101
+ color-scheme: dark;
102
+ }
103
+
104
+ .ps-theme-dark input,
105
+ .ps-theme-dark select,
106
+ .ps-theme-dark textarea {
107
+ color-scheme: dark;
108
+ }
109
+
110
+ .ps-theme-dark input::placeholder,
111
+ .ps-theme-dark textarea::placeholder {
112
+ color: rgb(100 116 139);
113
+ }
114
+
115
+ .ps-theme-dark option {
116
+ background-color: rgb(var(--ps-color-surface-rgb, 17 28 52));
117
+ color: rgb(var(--ps-color-ink-rgb, 248 250 252));
118
+ }
119
+
120
+ .ps-theme-dark .bg-white,
121
+ .ps-theme-dark .bg-white\/20,
122
+ .ps-theme-dark .bg-white\/24,
123
+ .ps-theme-dark .bg-white\/28,
124
+ .ps-theme-dark .bg-white\/30,
125
+ .ps-theme-dark .bg-white\/35,
126
+ .ps-theme-dark .bg-white\/36,
127
+ .ps-theme-dark .bg-white\/40,
128
+ .ps-theme-dark .bg-white\/44,
129
+ .ps-theme-dark .bg-white\/45,
130
+ .ps-theme-dark .bg-white\/48,
131
+ .ps-theme-dark .bg-white\/50,
132
+ .ps-theme-dark .bg-white\/58,
133
+ .ps-theme-dark .bg-white\/60,
134
+ .ps-theme-dark .bg-white\/62,
135
+ .ps-theme-dark .bg-white\/65,
136
+ .ps-theme-dark .bg-white\/70,
137
+ .ps-theme-dark .bg-white\/72,
138
+ .ps-theme-dark .bg-white\/76,
139
+ .ps-theme-dark .bg-white\/78,
140
+ .ps-theme-dark .bg-white\/80,
141
+ .ps-theme-dark .bg-white\/85,
142
+ .ps-theme-dark .bg-white\/90,
143
+ .ps-theme-dark .bg-white\/92,
144
+ .ps-theme-dark .bg-white\/95,
145
+ .ps-theme-dark .bg-white\/96 {
146
+ background-color: rgb(var(--ps-color-surface-rgb, 17 28 52) / 0.82);
147
+ }
148
+
149
+ .ps-theme-dark .bg-slate-50,
150
+ .ps-theme-dark .bg-slate-50\/40,
151
+ .ps-theme-dark .bg-slate-50\/70,
152
+ .ps-theme-dark .bg-slate-50\/80,
153
+ .ps-theme-dark .bg-slate-50\/85,
154
+ .ps-theme-dark .bg-slate-100,
155
+ .ps-theme-dark .bg-slate-100\/70,
156
+ .ps-theme-dark .bg-slate-200 {
157
+ background-color: rgb(var(--ps-color-panel-muted-rgb, 15 23 42) / 0.78);
158
+ }
159
+
160
+ .ps-theme-dark .bg-amber-50,
161
+ .ps-theme-dark .bg-amber-100 {
162
+ background-color: rgb(var(--ps-color-warning-rgb) / 0.13);
163
+ }
164
+
165
+ .ps-theme-dark .bg-emerald-50,
166
+ .ps-theme-dark .bg-emerald-100 {
167
+ background-color: rgb(var(--ps-color-success-rgb) / 0.13);
168
+ }
169
+
170
+ .ps-theme-dark .bg-rose-50,
171
+ .ps-theme-dark .bg-rose-100 {
172
+ background-color: rgb(var(--ps-color-danger-rgb) / 0.13);
173
+ }
174
+
175
+ .ps-theme-dark .bg-primary-soft,
176
+ .ps-theme-dark .bg-primary-soft\/30,
177
+ .ps-theme-dark .bg-primary-soft\/40,
178
+ .ps-theme-dark .bg-primary-soft\/50,
179
+ .ps-theme-dark .bg-primary-soft\/60 {
180
+ background-color: rgb(var(--ps-color-primary-rgb) / 0.14);
181
+ }
182
+
183
+ .ps-theme-dark .text-ink {
184
+ color: rgb(var(--ps-color-ink-rgb, 248 250 252));
185
+ }
186
+
187
+ .ps-theme-dark .text-primary {
188
+ color: rgb(var(--ps-color-primary-rgb));
189
+ }
190
+
191
+ .ps-theme-dark .text-slate-300,
192
+ .ps-theme-dark .text-slate-400 {
193
+ color: rgb(var(--ps-color-subtle-rgb, 151 164 184));
194
+ }
195
+
196
+ .ps-theme-dark .text-slate-500,
197
+ .ps-theme-dark .text-slate-600,
198
+ .ps-theme-dark .text-slate-700 {
199
+ color: rgb(var(--ps-color-muted-rgb, 174 187 206));
200
+ }
201
+
202
+ .ps-theme-dark .text-amber-700 {
203
+ color: rgb(252 211 77);
204
+ }
205
+
206
+ .ps-theme-dark .text-emerald-700 {
207
+ color: rgb(134 239 172);
208
+ }
209
+
210
+ .ps-theme-dark .text-rose-700 {
211
+ color: rgb(254 202 202);
212
+ }
213
+
214
+ .ps-theme-dark .border-line,
215
+ .ps-theme-dark .border-line\/60,
216
+ .ps-theme-dark .border-line\/70,
217
+ .ps-theme-dark .border-line\/80,
218
+ .ps-theme-dark .border-white,
219
+ .ps-theme-dark .border-white\/40 {
220
+ border-color: rgb(var(--ps-color-line-rgb, 51 65 85) / 0.78);
221
+ }
222
+
223
+ .ps-theme-dark .hover\:border-primary\/20:hover,
224
+ .ps-theme-dark .hover\:border-primary\/25:hover,
225
+ .ps-theme-dark .hover\:border-primary\/30:hover,
226
+ .ps-theme-dark .hover\:border-primary\/40:hover {
227
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.5);
228
+ }
229
+
230
+ .ps-theme-dark .hover\:bg-slate-50:hover,
231
+ .ps-theme-dark .hover\:bg-slate-50\/70:hover,
232
+ .ps-theme-dark .hover\:bg-white:hover,
233
+ .ps-theme-dark .hover\:bg-white\/50:hover,
234
+ .ps-theme-dark .hover\:bg-white\/92:hover,
235
+ .ps-theme-dark .hover\:bg-primary-soft:hover,
236
+ .ps-theme-dark .hover\:bg-primary-soft\/30:hover,
237
+ .ps-theme-dark .hover\:bg-primary-soft\/40:hover,
238
+ .ps-theme-dark .hover\:bg-primary-soft\/60:hover {
239
+ background-color: rgb(30 41 59 / 0.82);
240
+ }
241
+
242
+ .ps-theme-dark .disabled\:bg-slate-50:disabled {
243
+ background-color: rgb(15 23 42 / 0.62);
244
+ }
245
+
246
+ .ps-theme-dark .disabled\:text-slate-400:disabled {
247
+ color: rgb(100 116 139);
248
+ }
249
+
250
+ .ps-app-surface {
251
+ background:
252
+ linear-gradient(180deg, rgb(var(--ps-color-mist-rgb, 239 246 255) / 0.38), transparent 18rem),
253
+ var(--ps-color-background);
254
+ color: var(--ps-color-foreground);
255
+ }
256
+
257
+ html,
258
+ body {
259
+ min-height: 100%;
260
+ }
261
+
262
+ body {
263
+ -webkit-font-smoothing: antialiased;
264
+ -moz-osx-font-smoothing: grayscale;
265
+ }
266
+
267
+ body,
268
+ button,
269
+ input,
270
+ select,
271
+ textarea {
272
+ font-family: Manrope, ui-sans-serif, system-ui, sans-serif;
273
+ }
274
+
275
+ a {
276
+ text-decoration: none;
277
+ }
278
+
279
+ .ps-card {
280
+ background:
281
+ linear-gradient(
282
+ 145deg,
283
+ rgb(var(--ps-liquid-highlight-rgb) / 0.94),
284
+ rgb(var(--ps-liquid-highlight-rgb) / 0.76)
285
+ ),
286
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.9);
287
+ backdrop-filter: blur(24px) saturate(1.2);
288
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.72);
289
+ border-radius: 1rem;
290
+ box-shadow: none;
291
+ }
292
+
293
+ .ps-card-muted {
294
+ background:
295
+ linear-gradient(
296
+ 145deg,
297
+ rgb(var(--ps-liquid-highlight-rgb) / 0.72),
298
+ rgb(var(--ps-liquid-highlight-rgb) / 0.5)
299
+ ),
300
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.7);
301
+ backdrop-filter: blur(18px) saturate(1.1);
302
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.78);
303
+ border-radius: 0.875rem;
304
+ box-shadow: none;
305
+ }
306
+
307
+ .ps-surface {
308
+ position: relative;
309
+ overflow: hidden;
310
+ background:
311
+ linear-gradient(
312
+ 145deg,
313
+ rgb(var(--ps-liquid-highlight-rgb) / calc(var(--ps-liquid-fill-a) * 0.46)),
314
+ rgb(var(--ps-liquid-highlight-rgb) / calc(var(--ps-liquid-fill-b) * 0.36))
315
+ ),
316
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.82);
317
+ -webkit-backdrop-filter: blur(24px) saturate(1.16);
318
+ backdrop-filter: blur(24px) saturate(1.16);
319
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.76);
320
+ border-radius: 0.875rem;
321
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
322
+ }
323
+
324
+ .ps-surface-muted {
325
+ position: relative;
326
+ overflow: hidden;
327
+ background:
328
+ linear-gradient(
329
+ 145deg,
330
+ rgb(var(--ps-liquid-highlight-rgb) / calc(var(--ps-liquid-fill-a) * 0.34)),
331
+ rgb(var(--ps-liquid-highlight-rgb) / calc(var(--ps-liquid-fill-b) * 0.28))
332
+ ),
333
+ rgb(var(--ps-color-panel-muted-rgb, 248 250 252) / 0.74);
334
+ -webkit-backdrop-filter: blur(18px) saturate(1.1);
335
+ backdrop-filter: blur(18px) saturate(1.1);
336
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.68);
337
+ border-radius: 0.75rem;
338
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
339
+ }
340
+
341
+ .ps-surface::before,
342
+ .ps-surface-muted::before {
343
+ background: linear-gradient(
344
+ 120deg,
345
+ rgb(var(--ps-liquid-highlight-rgb) / 0.24),
346
+ transparent 34%,
347
+ rgb(var(--ps-color-primary-rgb) / 0.045) 70%,
348
+ transparent
349
+ );
350
+ border-radius: inherit;
351
+ content: '';
352
+ inset: 0;
353
+ pointer-events: none;
354
+ position: absolute;
355
+ }
356
+
357
+ .ps-surface > *,
358
+ .ps-surface-muted > * {
359
+ position: relative;
360
+ }
361
+
362
+ .ps-app-reflection {
363
+ background:
364
+ radial-gradient(
365
+ circle at 18% 0%,
366
+ rgb(var(--ps-liquid-highlight-rgb) / calc(var(--ps-liquid-fill-a) * 0.66)),
367
+ transparent 30rem
368
+ ),
369
+ linear-gradient(
370
+ 145deg,
371
+ rgb(var(--ps-color-mist-rgb, 239 246 255) / 0.46),
372
+ rgb(var(--ps-color-background-rgb, 245 247 251) / 1)
373
+ );
374
+ }
375
+
376
+ .ps-theme-dark .ps-surface::before,
377
+ .ps-theme-dark .ps-surface-muted::before {
378
+ background: linear-gradient(
379
+ 120deg,
380
+ rgb(var(--ps-liquid-highlight-rgb) / 0.035),
381
+ transparent 36%,
382
+ rgb(var(--ps-color-primary-rgb) / 0.018) 72%,
383
+ transparent
384
+ );
385
+ }
386
+
387
+ .ps-theme-dark .ps-liquid::before,
388
+ .ps-theme-dark .ps-liquid-strong::before,
389
+ .ps-theme-dark .ps-glass::before,
390
+ .ps-theme-dark .ps-glass-strong::before {
391
+ background: linear-gradient(
392
+ 120deg,
393
+ rgb(var(--ps-liquid-highlight-rgb) / 0.045),
394
+ transparent 36%,
395
+ rgb(var(--ps-color-primary-rgb) / 0.018) 72%,
396
+ transparent
397
+ );
398
+ }
399
+
400
+ .ps-theme-dark .ps-app-reflection {
401
+ background:
402
+ radial-gradient(circle at 18% 0%, rgb(255 255 255 / 0.035), transparent 28rem),
403
+ linear-gradient(145deg, rgb(var(--ps-color-background-rgb) / 1), rgb(7 13 28 / 1));
404
+ }
405
+
406
+ .ps-surface-compact {
407
+ padding: 0.875rem;
408
+ }
409
+
410
+ .ps-surface-normal {
411
+ padding: 1rem;
412
+ }
413
+
414
+ .ps-surface-spacious {
415
+ padding: 1.25rem;
416
+ }
417
+
418
+ .ps-text-muted {
419
+ color: rgb(var(--ps-color-muted-rgb, 100 116 139));
420
+ }
421
+
422
+ .ps-text-subtle {
423
+ color: rgb(var(--ps-color-subtle-rgb, 148 163 184));
424
+ }
425
+
426
+ .ps-eyebrow {
427
+ color: rgb(var(--ps-color-subtle-rgb, 148 163 184));
428
+ font-size: 0.7rem;
429
+ font-weight: 800;
430
+ letter-spacing: 0.14em;
431
+ text-transform: uppercase;
432
+ }
433
+
434
+ .ps-chip {
435
+ align-items: center;
436
+ background: rgb(var(--ps-color-panel-muted-rgb, 248 250 252) / 0.78);
437
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.62);
438
+ border-radius: 999px;
439
+ color: rgb(var(--ps-color-muted-rgb, 100 116 139));
440
+ display: inline-flex;
441
+ font-size: 0.72rem;
442
+ font-weight: 800;
443
+ gap: 0.35rem;
444
+ line-height: 1;
445
+ min-height: 1.75rem;
446
+ padding: 0.35rem 0.7rem;
447
+ }
448
+
449
+ .ps-pressable {
450
+ transition:
451
+ background 160ms ease,
452
+ border-color 160ms ease,
453
+ color 160ms ease,
454
+ transform 160ms ease;
455
+ }
456
+
457
+ .ps-pressable:hover {
458
+ transform: translateY(-1px);
459
+ }
460
+
461
+ .ps-pressable:active {
462
+ box-shadow: none;
463
+ transform: translateY(0);
464
+ }
465
+
466
+ .ps-icon-surface {
467
+ align-items: center;
468
+ background: rgb(var(--ps-color-primary-rgb) / 0.1);
469
+ border: 1px solid rgb(var(--ps-color-primary-rgb) / 0.12);
470
+ border-radius: 0.875rem;
471
+ color: rgb(var(--ps-color-primary-rgb));
472
+ display: inline-flex;
473
+ flex-shrink: 0;
474
+ justify-content: center;
475
+ }
476
+
477
+ .ps-status-dot {
478
+ border-radius: 999px;
479
+ display: inline-block;
480
+ height: 0.55rem;
481
+ width: 0.55rem;
482
+ }
483
+
484
+ .ps-status-dot-success {
485
+ background: rgb(var(--ps-color-success-rgb));
486
+ }
487
+
488
+ .ps-status-dot-warning {
489
+ background: rgb(var(--ps-color-warning-rgb));
490
+ }
491
+
492
+ .ps-status-dot-danger {
493
+ background: rgb(var(--ps-color-danger-rgb));
494
+ }
495
+
496
+ .ps-status-dot-muted {
497
+ background: rgb(var(--ps-color-subtle-rgb));
498
+ }
499
+
500
+ .ps-liquid,
501
+ .ps-glass {
502
+ position: relative;
503
+ background:
504
+ linear-gradient(
505
+ 145deg,
506
+ rgb(var(--ps-liquid-highlight-rgb) / var(--ps-liquid-fill-a)),
507
+ rgb(var(--ps-liquid-highlight-rgb) / var(--ps-liquid-fill-b))
508
+ ),
509
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.78);
510
+ -webkit-backdrop-filter: blur(24px) saturate(1.22);
511
+ backdrop-filter: blur(24px) saturate(1.22);
512
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / var(--ps-liquid-line-opacity));
513
+ box-shadow: none;
514
+ }
515
+
516
+ .ps-liquid-strong,
517
+ .ps-glass-strong {
518
+ position: relative;
519
+ background:
520
+ linear-gradient(
521
+ 145deg,
522
+ rgb(var(--ps-liquid-highlight-rgb) / 0.9),
523
+ rgb(var(--ps-liquid-highlight-rgb) / 0.64)
524
+ ),
525
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.86);
526
+ -webkit-backdrop-filter: blur(32px) saturate(1.28);
527
+ backdrop-filter: blur(32px) saturate(1.28);
528
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.78);
529
+ box-shadow: none;
530
+ }
531
+
532
+ .ps-liquid::before,
533
+ .ps-liquid-strong::before,
534
+ .ps-glass::before,
535
+ .ps-glass-strong::before {
536
+ background: linear-gradient(
537
+ 120deg,
538
+ rgb(255 255 255 / 0.28),
539
+ transparent 32%,
540
+ rgb(var(--ps-color-primary-rgb) / 0.06) 68%,
541
+ transparent
542
+ );
543
+ border-radius: inherit;
544
+ content: '';
545
+ inset: 0;
546
+ pointer-events: none;
547
+ position: absolute;
548
+ }
549
+
550
+ .ps-liquid-panel {
551
+ border-radius: 1rem;
552
+ overflow: hidden;
553
+ }
554
+
555
+ .ps-liquid-control {
556
+ border-radius: 999px;
557
+ -webkit-backdrop-filter: blur(18px) saturate(1.18);
558
+ backdrop-filter: blur(18px) saturate(1.18);
559
+ box-shadow: none;
560
+ }
561
+
562
+ .ps-reflective-frame {
563
+ background: linear-gradient(
564
+ 135deg,
565
+ rgb(var(--ps-color-background-rgb, 245 247 251) / 0.98),
566
+ rgb(var(--ps-color-mist-rgb, 239 246 255) / 0.74)
567
+ );
568
+ }
569
+
570
+ .ps-theme-dark .ps-card,
571
+ .ps-theme-dark .ps-card-muted,
572
+ .ps-theme-dark .ps-glass,
573
+ .ps-theme-dark .ps-glass-strong,
574
+ .ps-theme-dark .ps-liquid,
575
+ .ps-theme-dark .ps-liquid-strong {
576
+ background:
577
+ linear-gradient(145deg, rgb(255 255 255 / 0.04), rgb(255 255 255 / 0.016)),
578
+ rgb(var(--ps-color-surface-rgb, 15 23 42) / 0.9);
579
+ border-color: rgb(255 255 255 / 0.08);
580
+ box-shadow: none;
581
+ }
582
+
583
+ .ps-theme-dark .ps-liquid::before,
584
+ .ps-theme-dark .ps-liquid-strong::before,
585
+ .ps-theme-dark .ps-glass::before,
586
+ .ps-theme-dark .ps-glass-strong::before {
587
+ background: linear-gradient(
588
+ 125deg,
589
+ rgb(255 255 255 / 0.034),
590
+ transparent 34%,
591
+ rgb(var(--ps-color-primary-rgb) / 0.026) 72%,
592
+ transparent
593
+ );
594
+ }
595
+
596
+ .ps-app-frame {
597
+ background:
598
+ radial-gradient(circle at top left, rgb(var(--ps-color-primary-rgb) / 0.08), transparent 30rem),
599
+ radial-gradient(
600
+ circle at right top,
601
+ rgb(var(--ps-color-secondary-rgb) / 0.06),
602
+ transparent 28rem
603
+ ),
604
+ linear-gradient(
605
+ 180deg,
606
+ rgb(var(--ps-color-mist-rgb, 239 246 255) / 0.75),
607
+ rgb(255 255 255 / 0.94)
608
+ );
609
+ color: var(--ps-color-foreground);
610
+ min-height: 100vh;
611
+ }
612
+
613
+ .ps-theme-dark .ps-app-frame,
614
+ .ps-theme-dark .ps-reflective-frame {
615
+ background: linear-gradient(
616
+ 180deg,
617
+ rgb(var(--ps-color-surface-rgb, 2 6 23)),
618
+ rgb(var(--ps-color-background-rgb, 15 23 42))
619
+ );
620
+ }
621
+
622
+ .ps-app-grid {
623
+ display: grid;
624
+ grid-template-columns: minmax(15rem, 17.5rem) minmax(0, 1fr);
625
+ min-height: 100vh;
626
+ }
627
+
628
+ .ps-app-sidebar {
629
+ background: rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.92);
630
+ border-right: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.86);
631
+ position: sticky;
632
+ top: 0;
633
+ height: 100vh;
634
+ }
635
+
636
+ .ps-app-main {
637
+ min-width: 0;
638
+ padding: clamp(1rem, 2vw, 1.5rem);
639
+ }
640
+
641
+ .ps-page-stack {
642
+ display: grid;
643
+ gap: 1rem;
644
+ }
645
+
646
+ .ps-page-header {
647
+ display: flex;
648
+ align-items: flex-start;
649
+ justify-content: space-between;
650
+ gap: 1rem;
651
+ margin-bottom: 1rem;
652
+ }
653
+
654
+ .ps-page-kicker {
655
+ color: rgb(148 163 184);
656
+ font-size: 0.72rem;
657
+ font-weight: 700;
658
+ letter-spacing: 0.18em;
659
+ text-transform: uppercase;
660
+ }
661
+
662
+ .ps-page-title {
663
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
664
+ font-size: clamp(1.75rem, 3vw, 2.5rem);
665
+ font-weight: 800;
666
+ letter-spacing: -0.04em;
667
+ line-height: 1.05;
668
+ }
669
+
670
+ .ps-page-description {
671
+ color: rgb(100 116 139);
672
+ font-size: 0.95rem;
673
+ line-height: 1.7;
674
+ margin-top: 0.35rem;
675
+ max-width: 48rem;
676
+ }
677
+
678
+ .ps-section-grid {
679
+ display: grid;
680
+ gap: 1rem;
681
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
682
+ }
683
+
684
+ .ps-action-grid {
685
+ display: grid;
686
+ gap: 0.75rem;
687
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
688
+ }
689
+
690
+ .ps-action-tile {
691
+ align-items: center;
692
+ background:
693
+ linear-gradient(
694
+ 145deg,
695
+ rgb(var(--ps-liquid-highlight-rgb) / 0.76),
696
+ rgb(var(--ps-liquid-highlight-rgb) / 0.46)
697
+ ),
698
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.78);
699
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.72);
700
+ border-radius: 0.75rem;
701
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
702
+ display: flex;
703
+ font-size: 0.9rem;
704
+ font-weight: 700;
705
+ gap: 0.75rem;
706
+ justify-content: space-between;
707
+ min-height: 3.5rem;
708
+ padding: 0.75rem 0.9rem;
709
+ text-align: left;
710
+ -webkit-backdrop-filter: blur(18px) saturate(1.12);
711
+ backdrop-filter: blur(18px) saturate(1.12);
712
+ }
713
+
714
+ .ps-action-tile:hover {
715
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.32);
716
+ }
717
+
718
+ .ps-theme-dark .ps-action-tile {
719
+ background:
720
+ linear-gradient(145deg, rgb(255 255 255 / 0.04), rgb(255 255 255 / 0.016)),
721
+ rgb(var(--ps-color-surface-rgb, 15 23 42) / 0.9);
722
+ border-color: rgb(255 255 255 / 0.08);
723
+ color: rgb(var(--ps-color-ink-rgb, 248 250 252));
724
+ }
725
+
726
+ .ps-theme-dark .ps-action-tile:hover {
727
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.4);
728
+ }
729
+
730
+ .ps-action-tile-primary {
731
+ background: linear-gradient(
732
+ 135deg,
733
+ rgb(var(--ps-color-primary-rgb)),
734
+ rgb(var(--ps-color-primary-dark-rgb))
735
+ );
736
+ border-color: rgb(var(--ps-color-primary-rgb));
737
+ color: #ffffff;
738
+ }
739
+
740
+ .ps-tabs-grid {
741
+ display: grid;
742
+ gap: 0.75rem;
743
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
744
+ }
745
+
746
+ .ps-tab-button {
747
+ align-items: center;
748
+ background:
749
+ linear-gradient(145deg, rgb(255 255 255 / 0.92), rgb(255 255 255 / 0.68)),
750
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.82);
751
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.78);
752
+ border-radius: 999px;
753
+ color: rgb(71 85 105);
754
+ display: flex;
755
+ font-size: 0.875rem;
756
+ font-weight: 800;
757
+ gap: 0.65rem;
758
+ min-height: 3.25rem;
759
+ padding: 0.55rem 0.95rem;
760
+ text-align: left;
761
+ box-shadow: none;
762
+ transition:
763
+ background 160ms ease,
764
+ border-color 160ms ease,
765
+ color 160ms ease,
766
+ transform 160ms ease;
767
+ }
768
+
769
+ .ps-theme-dark .ps-tab-button {
770
+ background:
771
+ linear-gradient(145deg, rgb(255 255 255 / 0.04), rgb(255 255 255 / 0.016)),
772
+ rgb(255 255 255 / 0.028);
773
+ border-color: rgb(255 255 255 / 0.075);
774
+ color: rgb(203 213 225);
775
+ box-shadow: none;
776
+ }
777
+
778
+ .ps-tab-button-active {
779
+ background:
780
+ linear-gradient(
781
+ 145deg,
782
+ rgb(var(--ps-color-primary-rgb) / 0.16),
783
+ rgb(var(--ps-color-primary-rgb) / 0.07)
784
+ ),
785
+ rgb(var(--ps-color-primary-soft-rgb) / 0.84);
786
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.72);
787
+ box-shadow: none;
788
+ color: rgb(var(--ps-color-primary-rgb));
789
+ }
790
+
791
+ .ps-theme-dark .ps-tab-button-active {
792
+ background:
793
+ linear-gradient(
794
+ 145deg,
795
+ rgb(var(--ps-color-primary-rgb) / 0.25),
796
+ rgb(var(--ps-color-primary-rgb) / 0.1)
797
+ ),
798
+ rgb(255 255 255 / 0.035);
799
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.56);
800
+ box-shadow: none;
801
+ color: rgb(255 255 255);
802
+ }
803
+
804
+ .ps-tab-button:active {
805
+ transform: scale(0.98);
806
+ }
807
+
808
+ .ps-data-table {
809
+ background:
810
+ linear-gradient(
811
+ 145deg,
812
+ rgb(var(--ps-liquid-highlight-rgb) / 0.74),
813
+ rgb(var(--ps-liquid-highlight-rgb) / 0.48)
814
+ ),
815
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.74);
816
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.72);
817
+ border-radius: 0.875rem;
818
+ -webkit-backdrop-filter: blur(18px) saturate(1.14);
819
+ backdrop-filter: blur(18px) saturate(1.14);
820
+ overflow: hidden;
821
+ }
822
+
823
+ .ps-data-table-header {
824
+ background: rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.44);
825
+ color: rgb(148 163 184);
826
+ font-size: 0.7rem;
827
+ font-weight: 900;
828
+ letter-spacing: 0.16em;
829
+ text-transform: uppercase;
830
+ }
831
+
832
+ .ps-data-table-row {
833
+ border-color: rgb(var(--ps-color-line-rgb, 226 232 240) / 0.72);
834
+ }
835
+
836
+ .ps-data-table-row:hover {
837
+ background: rgb(var(--ps-color-primary-soft-rgb, 238 238 255) / 0.28);
838
+ }
839
+
840
+ .ps-table-action {
841
+ align-items: center;
842
+ background: rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.58);
843
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.72);
844
+ border-radius: 999px;
845
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
846
+ display: inline-flex;
847
+ font-size: 0.75rem;
848
+ font-weight: 800;
849
+ justify-content: center;
850
+ min-height: 2rem;
851
+ padding: 0.4rem 0.8rem;
852
+ -webkit-backdrop-filter: blur(14px) saturate(1.12);
853
+ backdrop-filter: blur(14px) saturate(1.12);
854
+ }
855
+
856
+ .ps-table-action-primary {
857
+ background: rgb(var(--ps-color-primary-rgb) / 0.92);
858
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.72);
859
+ color: var(--ps-color-primary-contrast);
860
+ }
861
+
862
+ .ps-theme-dark .ps-data-table,
863
+ .ps-theme-dark .ps-table-action {
864
+ background: rgb(255 255 255 / 0.045);
865
+ border-color: rgb(255 255 255 / 0.12);
866
+ }
867
+
868
+ .ps-theme-dark .ps-table-action {
869
+ color: rgb(var(--ps-color-ink-rgb, 241 245 249));
870
+ }
871
+
872
+ .ps-theme-dark .ps-table-action-primary {
873
+ background: rgb(var(--ps-color-primary-rgb) / 0.82);
874
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.68);
875
+ color: var(--ps-color-primary-contrast);
876
+ }
877
+
878
+ .ps-theme-dark .ps-data-table-header {
879
+ background: rgb(255 255 255 / 0.035);
880
+ color: rgb(148 163 184);
881
+ }
882
+
883
+ .ps-theme-dark .ps-data-table-row:hover {
884
+ background: rgb(255 255 255 / 0.045);
885
+ }
886
+
887
+ .ps-theme-dark .ps-surface,
888
+ .ps-theme-dark .ps-surface-muted {
889
+ background:
890
+ linear-gradient(145deg, rgb(255 255 255 / 0.038), rgb(255 255 255 / 0.016)),
891
+ rgb(var(--ps-color-surface-rgb, 15 23 42) / 0.72);
892
+ border-color: rgb(255 255 255 / 0.1);
893
+ }
894
+
895
+ .ps-scrollbar {
896
+ scrollbar-color: rgb(var(--ps-color-primary-rgb) / 0.46) transparent;
897
+ scrollbar-width: thin;
898
+ }
899
+
900
+ .ps-scrollbar::-webkit-scrollbar {
901
+ height: 0.65rem;
902
+ width: 0.65rem;
903
+ }
904
+
905
+ .ps-scrollbar::-webkit-scrollbar-track {
906
+ background: transparent;
907
+ }
908
+
909
+ .ps-scrollbar::-webkit-scrollbar-thumb {
910
+ background: rgb(var(--ps-color-primary-rgb) / 0.34);
911
+ border: 2px solid transparent;
912
+ border-radius: 999px;
913
+ background-clip: padding-box;
914
+ }
915
+
916
+ .ps-scrollbar::-webkit-scrollbar-thumb:hover {
917
+ background: rgb(var(--ps-color-primary-rgb) / 0.52);
918
+ background-clip: padding-box;
919
+ }
920
+
921
+ .ps-scrollbar-hidden {
922
+ -ms-overflow-style: none;
923
+ scrollbar-width: none;
924
+ }
925
+
926
+ .ps-scrollbar-hidden::-webkit-scrollbar {
927
+ display: none;
928
+ height: 0;
929
+ width: 0;
930
+ }
931
+
932
+ .ps-form-label {
933
+ color: rgb(148 163 184);
934
+ display: block;
935
+ font-size: 0.72rem;
936
+ font-weight: 700;
937
+ letter-spacing: 0.16em;
938
+ text-transform: uppercase;
939
+ }
940
+
941
+ .ps-input-label {
942
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
943
+ display: block;
944
+ font-size: 0.875rem;
945
+ font-weight: 700;
946
+ }
947
+
948
+ .ps-input-label-compact {
949
+ color: rgb(148 163 184);
950
+ display: block;
951
+ font-size: 0.75rem;
952
+ font-weight: 700;
953
+ letter-spacing: 0.18em;
954
+ text-transform: uppercase;
955
+ }
956
+
957
+ .ps-input-control {
958
+ background:
959
+ linear-gradient(
960
+ 145deg,
961
+ rgb(var(--ps-liquid-highlight-rgb) / 0.82),
962
+ rgb(var(--ps-liquid-highlight-rgb) / 0.62)
963
+ ),
964
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.82);
965
+ backdrop-filter: blur(18px) saturate(1.12);
966
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.78);
967
+ border-radius: 0.75rem;
968
+ color: rgb(var(--ps-color-ink-rgb, 15 23 42));
969
+ font-size: 0.875rem;
970
+ padding: 0.68rem 0.85rem;
971
+ transition:
972
+ background 160ms ease,
973
+ border-color 160ms ease,
974
+ color 160ms ease;
975
+ width: 100%;
976
+ }
977
+
978
+ .ps-liquid-popover {
979
+ overflow: hidden;
980
+ padding: 0.75rem;
981
+ }
982
+
983
+ .ps-liquid-modal {
984
+ background:
985
+ linear-gradient(
986
+ 145deg,
987
+ rgb(var(--ps-liquid-highlight-rgb) / 0.92),
988
+ rgb(var(--ps-liquid-highlight-rgb) / 0.66)
989
+ ),
990
+ rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.9);
991
+ -webkit-backdrop-filter: blur(34px) saturate(1.28);
992
+ backdrop-filter: blur(34px) saturate(1.28);
993
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.76);
994
+ box-shadow: none;
995
+ }
996
+
997
+ .ps-theme-dark .ps-liquid-modal {
998
+ background:
999
+ linear-gradient(145deg, rgb(255 255 255 / 0.035), rgb(255 255 255 / 0.014)),
1000
+ rgb(var(--ps-color-surface-rgb, 2 6 23) / 0.92);
1001
+ border-color: rgb(255 255 255 / 0.075);
1002
+ }
1003
+
1004
+ .ps-input-control:hover:not(:disabled) {
1005
+ border-color: rgb(var(--ps-color-primary-rgb) / 0.4);
1006
+ }
1007
+
1008
+ .ps-input-control:focus,
1009
+ .ps-input-control:focus-visible {
1010
+ border-color: rgb(var(--ps-color-primary-rgb));
1011
+ box-shadow: none;
1012
+ outline: 3px solid rgb(var(--ps-color-primary-rgb) / 0.1);
1013
+ outline-offset: 0;
1014
+ }
1015
+
1016
+ .ps-input-control::placeholder {
1017
+ color: rgb(148 163 184);
1018
+ }
1019
+
1020
+ .ps-input-control:disabled {
1021
+ background: rgb(241 245 249 / 0.78);
1022
+ color: rgb(148 163 184);
1023
+ cursor: not-allowed;
1024
+ }
1025
+
1026
+ .ps-theme-dark .ps-input-control:disabled {
1027
+ background: rgb(var(--ps-color-surface-rgb, 15 23 42) / 0.62);
1028
+ color: rgb(100 116 139);
1029
+ }
1030
+
1031
+ .ps-theme-dark .ps-input-control {
1032
+ background:
1033
+ linear-gradient(145deg, rgb(255 255 255 / 0.045), rgb(255 255 255 / 0.02)),
1034
+ rgb(var(--ps-color-surface-rgb, 15 23 42) / 0.9);
1035
+ border-color: rgb(255 255 255 / 0.09);
1036
+ }
1037
+
1038
+ .ps-input-helper {
1039
+ color: rgb(100 116 139);
1040
+ display: block;
1041
+ font-size: 0.75rem;
1042
+ line-height: 1.5;
1043
+ margin-top: 0.25rem;
1044
+ }
1045
+
1046
+ .ps-theme-dark .ps-input-helper {
1047
+ color: rgb(148 163 184);
1048
+ }
1049
+
1050
+ .ps-soft-divider {
1051
+ background: rgb(var(--ps-color-line-rgb, 226 232 240));
1052
+ height: 1px;
1053
+ width: 100%;
1054
+ }
1055
+
1056
+ .ps-dashboard-shell {
1057
+ background: rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.78);
1058
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.72);
1059
+ border-radius: 1rem;
1060
+ backdrop-filter: blur(20px);
1061
+ }
1062
+
1063
+ .ps-topbar-surface {
1064
+ background: rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.92);
1065
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.9);
1066
+ border-radius: 999px;
1067
+ box-shadow: none;
1068
+ }
1069
+
1070
+ .ps-metric-card {
1071
+ background: linear-gradient(
1072
+ 180deg,
1073
+ rgb(var(--ps-color-surface-rgb, 255 255 255)),
1074
+ rgb(248 250 252 / 0.92)
1075
+ );
1076
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.88);
1077
+ border-radius: 1.25rem;
1078
+ box-shadow: none;
1079
+ }
1080
+
1081
+ .ps-rail-stack {
1082
+ display: grid;
1083
+ gap: 1rem;
1084
+ }
1085
+
1086
+ .ps-auth-card {
1087
+ background: rgb(var(--ps-color-surface-rgb, 255 255 255) / 0.95);
1088
+ border: 1px solid rgb(var(--ps-color-line-rgb, 226 232 240) / 0.9);
1089
+ border-radius: 1rem;
1090
+ }
1091
+
1092
+ .ps-focus-ring:focus-visible {
1093
+ outline: 2px solid var(--ps-color-primary);
1094
+ outline-offset: 2px;
1095
+ }
1096
+
1097
+ .ps-header-scroll {
1098
+ transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
1099
+ }
1100
+
1101
+ .ps-header-scroll-hidden {
1102
+ transform: translateY(-100%);
1103
+ }
1104
+
1105
+ @keyframes ps-accordion-down {
1106
+ from {
1107
+ height: 0;
1108
+ }
1109
+ to {
1110
+ height: var(--radix-accordion-content-height);
1111
+ }
1112
+ }
1113
+
1114
+ @keyframes ps-accordion-up {
1115
+ from {
1116
+ height: var(--radix-accordion-content-height);
1117
+ }
1118
+ to {
1119
+ height: 0;
1120
+ }
1121
+ }
1122
+
1123
+ .ps-accordion-content {
1124
+ overflow: hidden;
1125
+ }
1126
+
1127
+ .ps-accordion-content[data-state='open'] {
1128
+ animation: ps-accordion-down 200ms cubic-bezier(0.4, 0, 0.2, 1);
1129
+ }
1130
+
1131
+ .ps-accordion-content[data-state='closed'] {
1132
+ animation: ps-accordion-up 200ms cubic-bezier(0.4, 0, 0.2, 1);
1133
+ }
1134
+
1135
+ .ps-page-enter {
1136
+ animation: ps-page-enter 240ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1137
+ }
1138
+
1139
+ .ps-panel-enter {
1140
+ animation: ps-panel-enter 240ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1141
+ }
1142
+
1143
+ .ps-panel-exit {
1144
+ animation: ps-panel-exit 180ms cubic-bezier(0.4, 0, 1, 1) both;
1145
+ }
1146
+
1147
+ .ps-popover-enter {
1148
+ animation: ps-popover-enter 160ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1149
+ transform-origin: top right;
1150
+ }
1151
+
1152
+ .ps-popover-exit {
1153
+ animation: ps-popover-exit 140ms cubic-bezier(0.4, 0, 1, 1) both;
1154
+ transform-origin: top right;
1155
+ }
1156
+
1157
+ .animate-ps-mobile-menu-in {
1158
+ animation: ps-mobile-menu-in 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1159
+ }
1160
+
1161
+ .animate-ps-mobile-menu-out {
1162
+ animation: ps-mobile-menu-out 180ms cubic-bezier(0.4, 0, 1, 1) both;
1163
+ }
1164
+
1165
+ .animate-ps-fade-out {
1166
+ animation: ps-fade-out 140ms ease-in both;
1167
+ }
1168
+
1169
+ .animate-ps-slide-down {
1170
+ animation: ps-slide-down 180ms ease-in both;
1171
+ }
1172
+
1173
+ .ps-chart-enter {
1174
+ animation: ps-chart-enter 380ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1175
+ transform-origin: center;
1176
+ }
1177
+
1178
+ .ps-chart-line-enter {
1179
+ animation: ps-chart-line-enter 520ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1180
+ stroke-dasharray: 1200;
1181
+ stroke-dashoffset: 1200;
1182
+ }
1183
+
1184
+ .ps-chart-area-enter {
1185
+ animation: ps-chart-area-enter 420ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
1186
+ transform-origin: bottom;
1187
+ }
1188
+
1189
+ .ps-chart-marker-1 {
1190
+ background: var(--ps-chart-1);
1191
+ }
1192
+
1193
+ .ps-chart-marker-2 {
1194
+ background: var(--ps-chart-2);
1195
+ }
1196
+
1197
+ .ps-chart-marker-3 {
1198
+ background: var(--ps-chart-3);
1199
+ }
1200
+
1201
+ .ps-chart-marker-4 {
1202
+ background: var(--ps-chart-4);
1203
+ }
1204
+
1205
+ .ps-chart-marker-5 {
1206
+ background: var(--ps-chart-5);
1207
+ }
1208
+
1209
+ .ps-privacy-hidden .private-number {
1210
+ animation: ps-privacy-shimmer 1.35s ease-in-out infinite;
1211
+ background: linear-gradient(
1212
+ 100deg,
1213
+ var(--ps-privacy-shimmer-a) 0%,
1214
+ var(--ps-privacy-shimmer-b) 44%,
1215
+ var(--ps-privacy-shimmer-c) 88%
1216
+ );
1217
+ background-size: 220% 100%;
1218
+ border-radius: 0.6rem;
1219
+ color: transparent;
1220
+ display: inline-block;
1221
+ min-height: 1.15em;
1222
+ min-width: min(9rem, 100%);
1223
+ text-shadow: none;
1224
+ user-select: none;
1225
+ }
1226
+
1227
+ .ps-privacy-hidden .private-number * {
1228
+ color: transparent;
1229
+ }
1230
+
1231
+ .ps-theme-dark .ps-privacy-hidden .private-number {
1232
+ background: linear-gradient(
1233
+ 100deg,
1234
+ rgb(255 255 255 / 0.034) 0%,
1235
+ rgb(var(--ps-color-primary-rgb) / 0.08) 44%,
1236
+ rgb(255 255 255 / 0.026) 88%
1237
+ );
1238
+ background-size: 180% 100%;
1239
+ opacity: 0.92;
1240
+ }
1241
+
1242
+ @keyframes ps-page-enter {
1243
+ 0% {
1244
+ opacity: 0;
1245
+ transform: translateY(6px);
1246
+ }
1247
+
1248
+ 100% {
1249
+ opacity: 1;
1250
+ transform: translateY(0);
1251
+ }
1252
+ }
1253
+
1254
+ @keyframes ps-popover-enter {
1255
+ 0% {
1256
+ opacity: 0;
1257
+ transform: translateY(-4px) scale(0.985);
1258
+ }
1259
+
1260
+ 100% {
1261
+ opacity: 1;
1262
+ transform: translateY(0) scale(1);
1263
+ }
1264
+ }
1265
+
1266
+ @keyframes ps-popover-exit {
1267
+ 0% {
1268
+ opacity: 1;
1269
+ transform: translateY(0) scale(1);
1270
+ }
1271
+
1272
+ 100% {
1273
+ opacity: 0;
1274
+ transform: translateY(-4px) scale(0.985);
1275
+ }
1276
+ }
1277
+
1278
+ @keyframes ps-panel-enter {
1279
+ 0% {
1280
+ opacity: 0.85;
1281
+ transform: translateX(1rem);
1282
+ }
1283
+
1284
+ 100% {
1285
+ opacity: 1;
1286
+ transform: translateX(0);
1287
+ }
1288
+ }
1289
+
1290
+ @keyframes ps-panel-exit {
1291
+ 0% {
1292
+ opacity: 1;
1293
+ transform: translateX(0);
1294
+ }
1295
+
1296
+ 100% {
1297
+ opacity: 0.8;
1298
+ transform: translateX(1rem);
1299
+ }
1300
+ }
1301
+
1302
+ @keyframes ps-fade-out {
1303
+ 0% {
1304
+ opacity: 1;
1305
+ }
1306
+
1307
+ 100% {
1308
+ opacity: 0;
1309
+ }
1310
+ }
1311
+
1312
+ @keyframes ps-slide-down {
1313
+ 0% {
1314
+ opacity: 1;
1315
+ transform: translateY(0);
1316
+ }
1317
+
1318
+ 100% {
1319
+ opacity: 0;
1320
+ transform: translateY(8px);
1321
+ }
1322
+ }
1323
+
1324
+ @keyframes ps-chart-enter {
1325
+ 0% {
1326
+ opacity: 0;
1327
+ transform: translateY(6px);
1328
+ }
1329
+
1330
+ 100% {
1331
+ opacity: 1;
1332
+ transform: translateY(0);
1333
+ }
1334
+ }
1335
+
1336
+ @keyframes ps-chart-line-enter {
1337
+ 0% {
1338
+ opacity: 0.72;
1339
+ stroke-dashoffset: 1200;
1340
+ }
1341
+
1342
+ 100% {
1343
+ opacity: 1;
1344
+ stroke-dashoffset: 0;
1345
+ }
1346
+ }
1347
+
1348
+ @keyframes ps-chart-area-enter {
1349
+ 0% {
1350
+ opacity: 0;
1351
+ transform: scaleY(0.92);
1352
+ }
1353
+
1354
+ 100% {
1355
+ opacity: 1;
1356
+ transform: scaleY(1);
1357
+ }
1358
+ }
1359
+
1360
+ @keyframes ps-privacy-shimmer {
1361
+ 0% {
1362
+ background-position: 120% 0;
1363
+ }
1364
+
1365
+ 100% {
1366
+ background-position: -120% 0;
1367
+ }
1368
+ }
1369
+
1370
+ @media (prefers-reduced-motion: reduce) {
1371
+ *,
1372
+ ::before,
1373
+ ::after {
1374
+ animation-duration: 1ms !important;
1375
+ animation-iteration-count: 1 !important;
1376
+ scroll-behavior: auto !important;
1377
+ transition-duration: 1ms !important;
1378
+ }
1379
+
1380
+ .ps-pressable:hover {
1381
+ transform: none;
1382
+ }
1383
+ }
1384
+
1385
+ @keyframes ps-mobile-menu-in {
1386
+ 0% {
1387
+ opacity: 0.75;
1388
+ transform: translateX(-100%);
1389
+ }
1390
+
1391
+ 100% {
1392
+ opacity: 1;
1393
+ transform: translateX(0);
1394
+ }
1395
+ }
1396
+
1397
+ @keyframes ps-mobile-menu-out {
1398
+ 0% {
1399
+ opacity: 1;
1400
+ transform: translateX(0);
1401
+ }
1402
+
1403
+ 100% {
1404
+ opacity: 0.75;
1405
+ transform: translateX(-100%);
1406
+ }
1407
+ }
1408
+
1409
+ @media (max-width: 1023px) {
1410
+ .ps-app-grid {
1411
+ grid-template-columns: 1fr;
1412
+ }
1413
+
1414
+ .ps-app-sidebar {
1415
+ border-bottom: 1px solid rgb(var(--ps-color-line-rgb, 231 223 249) / 0.86);
1416
+ border-right: 0;
1417
+ height: auto;
1418
+ position: relative;
1419
+ }
1420
+
1421
+ .ps-page-header {
1422
+ flex-direction: column;
1423
+ }
1424
+ }