@svadmin/ui 0.38.0 → 0.38.2

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,1370 @@
1
+ /* Typography — Inter font for clean, modern look */
2
+
3
+ /* @svadmin/ui — Design Tokens (clean admin shell)
4
+ * Auto-imported by AdminApp. Can be overridden by consumer's CSS.
5
+ *
6
+ * Clean dashboard style: indigo primary, light glassmorphism,
7
+ * professional admin aesthetic with subtle depth.
8
+ */
9
+
10
+ @layer base {
11
+ /* Global border-color reset — ensures Tailwind border utilities
12
+ * (border-r, border-t, etc.) use the theme color instead of currentColor */
13
+ *,
14
+ ::after,
15
+ ::before {
16
+ border-color: var(--border);
17
+ }
18
+
19
+ :root {
20
+ --radius: 0.75rem;
21
+ --background: oklch(0.975 0.005 264);
22
+ --foreground: oklch(0.13 0.02 265);
23
+ --card: oklch(1 0 0);
24
+ --card-foreground: oklch(0.13 0.02 265);
25
+ --popover: oklch(1 0 0);
26
+ --popover-foreground: oklch(0.13 0.02 265);
27
+ --primary: oklch(0.488 0.243 264.376);
28
+ --primary-foreground: oklch(0.985 0 0);
29
+ --secondary: oklch(0.955 0.008 264);
30
+ --secondary-foreground: oklch(0.2 0.04 265);
31
+ --muted: oklch(0.955 0.005 264);
32
+ --muted-foreground: oklch(0.45 0.03 260);
33
+ --accent: oklch(0.955 0.008 264);
34
+ --accent-foreground: oklch(0.2 0.04 265);
35
+ --destructive: oklch(0.577 0.245 27.325);
36
+ --destructive-foreground: oklch(0.985 0 0);
37
+ --border: oklch(0.935 0.005 264);
38
+ --input: oklch(0.935 0.005 264);
39
+ --ring: oklch(0.488 0.243 264.376);
40
+ --chart-1: oklch(0.488 0.243 264.376);
41
+ --chart-2: oklch(0.6 0.118 184.704);
42
+ --chart-3: oklch(0.398 0.07 227.392);
43
+ --chart-4: oklch(0.828 0.189 84.429);
44
+ --chart-5: oklch(0.769 0.188 70.08);
45
+ --success: oklch(0.6 0.2 145);
46
+ --success-foreground: oklch(0.985 0 0);
47
+ --warning: oklch(0.75 0.18 85);
48
+ --warning-foreground: oklch(0.3 0.08 60);
49
+ --info: oklch(0.6 0.15 250);
50
+ --info-foreground: oklch(0.985 0 0);
51
+ --sidebar: oklch(0.985 0.002 264);
52
+ --sidebar-foreground: oklch(0.23 0.02 265);
53
+ --sidebar-primary: oklch(0.488 0.243 264.376);
54
+ --sidebar-primary-foreground: oklch(0.985 0 0);
55
+ --sidebar-accent: oklch(0.955 0.012 264);
56
+ --sidebar-accent-foreground: oklch(0.33 0.17 264);
57
+ --sidebar-border: oklch(0.935 0.005 264);
58
+ --sidebar-ring: oklch(0.488 0.243 264.376);
59
+ }
60
+
61
+ .dark {
62
+ --background: oklch(0.13 0.015 265);
63
+ --foreground: oklch(0.985 0 0);
64
+ --card: oklch(0.16 0.015 265);
65
+ --card-foreground: oklch(0.985 0 0);
66
+ --popover: oklch(0.16 0.015 265);
67
+ --popover-foreground: oklch(0.985 0 0);
68
+ --primary: oklch(0.585 0.233 264);
69
+ --primary-foreground: oklch(0.15 0.04 265);
70
+ --secondary: oklch(0.23 0.025 265);
71
+ --secondary-foreground: oklch(0.985 0 0);
72
+ --muted: oklch(0.23 0.025 265);
73
+ --muted-foreground: oklch(0.7 0.02 260);
74
+ --accent: oklch(0.23 0.025 265);
75
+ --accent-foreground: oklch(0.985 0 0);
76
+ --destructive: oklch(0.704 0.191 22.216);
77
+ --destructive-foreground: oklch(0.985 0 0);
78
+ --border: oklch(0.27 0.02 265);
79
+ --input: oklch(0.27 0.02 265);
80
+ --ring: oklch(0.55 0.18 264);
81
+ --chart-1: oklch(0.585 0.233 264);
82
+ --chart-2: oklch(0.696 0.17 162.48);
83
+ --chart-3: oklch(0.769 0.188 70.08);
84
+ --chart-4: oklch(0.627 0.265 303.9);
85
+ --chart-5: oklch(0.645 0.246 16.439);
86
+ --success: oklch(0.65 0.2 150);
87
+ --success-foreground: oklch(0.985 0 0);
88
+ --warning: oklch(0.8 0.15 85);
89
+ --warning-foreground: oklch(0.25 0.05 60);
90
+ --info: oklch(0.65 0.15 250);
91
+ --info-foreground: oklch(0.985 0 0);
92
+ --sidebar: oklch(0.17 0.015 265);
93
+ --sidebar-foreground: oklch(0.92 0.005 264);
94
+ --sidebar-primary: oklch(0.585 0.233 264);
95
+ --sidebar-primary-foreground: oklch(0.985 0 0);
96
+ --sidebar-accent: oklch(0.488 0.243 264.376 / 12%);
97
+ --sidebar-accent-foreground: oklch(0.7 0.15 264);
98
+ --sidebar-border: oklch(0.27 0.02 265);
99
+ --sidebar-ring: oklch(0.55 0.18 264);
100
+ }
101
+
102
+ /* ── Color Theme Overrides ──────────────────────────────
103
+ * Each [data-theme] selector overrides the primary-related
104
+ * CSS variables for both light and dark mode.
105
+ * Values match builtinPresets in @svadmin/core/theme.
106
+ * This CSS-level fallback prevents FOUC before JS inits.
107
+ */
108
+
109
+ /* Neutral */
110
+ [data-theme="neutral"] {
111
+ --primary: oklch(0.205 0.006 286);
112
+ --primary-foreground: oklch(0.985 0 0);
113
+ --ring: oklch(0.205 0.006 286);
114
+ --sidebar-primary: oklch(0.205 0.006 286);
115
+ --sidebar-primary-foreground: oklch(0.985 0 0);
116
+ --sidebar-ring: oklch(0.205 0.006 286);
117
+ --chart-1: oklch(0.488 0.243 264.376);
118
+ }
119
+ .dark[data-theme="neutral"],
120
+ .dark [data-theme="neutral"] {
121
+ --primary: oklch(0.922 0.004 286);
122
+ --primary-foreground: oklch(0.205 0.006 286);
123
+ --ring: oklch(0.556 0.004 286);
124
+ --sidebar-primary: oklch(0.922 0.004 286);
125
+ --sidebar-primary-foreground: oklch(0.205 0.006 286);
126
+ --sidebar-ring: oklch(0.556 0.004 286);
127
+ --chart-1: oklch(0.585 0.233 264);
128
+ }
129
+
130
+ /* Indigo (default) */
131
+ [data-theme="indigo"] {
132
+ --primary: oklch(0.488 0.243 264.376);
133
+ --primary-foreground: oklch(0.985 0 0);
134
+ --ring: oklch(0.488 0.243 264.376);
135
+ --sidebar-primary: oklch(0.488 0.243 264.376);
136
+ --sidebar-primary-foreground: oklch(0.985 0 0);
137
+ --sidebar-ring: oklch(0.488 0.243 264.376);
138
+ --chart-1: oklch(0.488 0.243 264.376);
139
+ }
140
+ .dark[data-theme="indigo"],
141
+ .dark [data-theme="indigo"] {
142
+ --primary: oklch(0.585 0.233 264);
143
+ --primary-foreground: oklch(0.15 0.04 265);
144
+ --ring: oklch(0.55 0.18 264);
145
+ --sidebar-primary: oklch(0.585 0.233 264);
146
+ --sidebar-primary-foreground: oklch(0.985 0 0);
147
+ --sidebar-ring: oklch(0.55 0.18 264);
148
+ --chart-1: oklch(0.585 0.233 264);
149
+ }
150
+
151
+ /* Blue */
152
+ [data-theme="blue"] {
153
+ --primary: oklch(0.546 0.245 262.881);
154
+ --primary-foreground: oklch(0.985 0 0);
155
+ --ring: oklch(0.546 0.245 262.881);
156
+ --sidebar-primary: oklch(0.546 0.245 262.881);
157
+ --sidebar-primary-foreground: oklch(0.985 0 0);
158
+ --sidebar-ring: oklch(0.546 0.245 262.881);
159
+ --chart-1: oklch(0.546 0.245 262.881);
160
+ }
161
+ .dark[data-theme="blue"],
162
+ .dark [data-theme="blue"] {
163
+ --primary: oklch(0.623 0.214 259.815);
164
+ --primary-foreground: oklch(0.15 0.04 265);
165
+ --ring: oklch(0.546 0.245 262.881);
166
+ --sidebar-primary: oklch(0.623 0.214 259.815);
167
+ --sidebar-primary-foreground: oklch(0.985 0 0);
168
+ --sidebar-ring: oklch(0.546 0.245 262.881);
169
+ --chart-1: oklch(0.623 0.214 259.815);
170
+ }
171
+
172
+ /* Green */
173
+ [data-theme="green"] {
174
+ --primary: oklch(0.527 0.185 150.069);
175
+ --primary-foreground: oklch(0.985 0 0);
176
+ --ring: oklch(0.527 0.185 150.069);
177
+ --sidebar-primary: oklch(0.527 0.185 150.069);
178
+ --sidebar-primary-foreground: oklch(0.985 0 0);
179
+ --sidebar-ring: oklch(0.527 0.185 150.069);
180
+ --chart-1: oklch(0.527 0.185 150.069);
181
+ }
182
+ .dark[data-theme="green"],
183
+ .dark [data-theme="green"] {
184
+ --primary: oklch(0.627 0.194 149.214);
185
+ --primary-foreground: oklch(0.15 0.05 150);
186
+ --ring: oklch(0.527 0.185 150.069);
187
+ --sidebar-primary: oklch(0.627 0.194 149.214);
188
+ --sidebar-primary-foreground: oklch(0.985 0 0);
189
+ --sidebar-ring: oklch(0.527 0.185 150.069);
190
+ --chart-1: oklch(0.627 0.194 149.214);
191
+ }
192
+
193
+ /* Rose */
194
+ [data-theme="rose"] {
195
+ --primary: oklch(0.577 0.245 27.325);
196
+ --primary-foreground: oklch(0.985 0 0);
197
+ --ring: oklch(0.577 0.245 27.325);
198
+ --sidebar-primary: oklch(0.577 0.245 27.325);
199
+ --sidebar-primary-foreground: oklch(0.985 0 0);
200
+ --sidebar-ring: oklch(0.577 0.245 27.325);
201
+ --chart-1: oklch(0.577 0.245 27.325);
202
+ }
203
+ .dark[data-theme="rose"],
204
+ .dark [data-theme="rose"] {
205
+ --primary: oklch(0.577 0.245 27.325);
206
+ --primary-foreground: oklch(0.985 0 0);
207
+ --ring: oklch(0.577 0.245 27.325);
208
+ --sidebar-primary: oklch(0.577 0.245 27.325);
209
+ --sidebar-primary-foreground: oklch(0.985 0 0);
210
+ --sidebar-ring: oklch(0.577 0.245 27.325);
211
+ --chart-1: oklch(0.577 0.245 27.325);
212
+ }
213
+
214
+ /* Orange */
215
+ [data-theme="orange"] {
216
+ --primary: oklch(0.646 0.222 41.116);
217
+ --primary-foreground: oklch(0.985 0 0);
218
+ --ring: oklch(0.646 0.222 41.116);
219
+ --sidebar-primary: oklch(0.646 0.222 41.116);
220
+ --sidebar-primary-foreground: oklch(0.985 0 0);
221
+ --sidebar-ring: oklch(0.646 0.222 41.116);
222
+ --chart-1: oklch(0.646 0.222 41.116);
223
+ }
224
+ .dark[data-theme="orange"],
225
+ .dark [data-theme="orange"] {
226
+ --primary: oklch(0.646 0.222 41.116);
227
+ --primary-foreground: oklch(0.985 0 0);
228
+ --ring: oklch(0.646 0.222 41.116);
229
+ --sidebar-primary: oklch(0.646 0.222 41.116);
230
+ --sidebar-primary-foreground: oklch(0.985 0 0);
231
+ --sidebar-ring: oklch(0.646 0.222 41.116);
232
+ --chart-1: oklch(0.646 0.222 41.116);
233
+ }
234
+
235
+ /* Violet */
236
+ [data-theme="violet"] {
237
+ --primary: oklch(0.541 0.281 293.009);
238
+ --primary-foreground: oklch(0.985 0 0);
239
+ --ring: oklch(0.541 0.281 293.009);
240
+ --sidebar-primary: oklch(0.541 0.281 293.009);
241
+ --sidebar-primary-foreground: oklch(0.985 0 0);
242
+ --sidebar-ring: oklch(0.541 0.281 293.009);
243
+ --chart-1: oklch(0.541 0.281 293.009);
244
+ }
245
+ .dark[data-theme="violet"],
246
+ .dark [data-theme="violet"] {
247
+ --primary: oklch(0.541 0.281 293.009);
248
+ --primary-foreground: oklch(0.985 0 0);
249
+ --ring: oklch(0.541 0.281 293.009);
250
+ --sidebar-primary: oklch(0.541 0.281 293.009);
251
+ --sidebar-primary-foreground: oklch(0.985 0 0);
252
+ --sidebar-ring: oklch(0.541 0.281 293.009);
253
+ --chart-1: oklch(0.541 0.281 293.009);
254
+ }
255
+
256
+ /* Soft shadows — premium, multi-layered depth */
257
+ [data-slot="button"],
258
+ [data-slot="input"],
259
+ [data-slot="select-trigger"],
260
+ [data-slot="select"],
261
+ [data-slot="textarea"] {
262
+ /* Subtle interaction shadow */
263
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.04), 0 0 0 1px rgb(0 0 0 / 0.02);
264
+ }
265
+
266
+ /* Form inputs use card background instead of transparent */
267
+ [data-slot="input"],
268
+ [data-slot="textarea"],
269
+ [data-slot="select"] {
270
+ background-color: var(--card);
271
+ }
272
+
273
+ [data-slot="card"] {
274
+ /* Classic soft shadow: faint ambient + directional drop */
275
+ box-shadow: 0 2px 5px -1px rgb(0 0 0 / 0.04), 0 1px 1px -1px rgb(0 0 0 / 0.04), 0 0 0 1px rgb(0 0 0 / 0.02);
276
+ }
277
+
278
+ [data-slot="dialog-content"],
279
+ [data-slot="sheet-content"] {
280
+ /* Deep floating layer for modals */
281
+ box-shadow: 0 10px 30px -5px rgb(0 0 0 / 0.08), 0 20px 40px -10px rgb(0 0 0 / 0.04);
282
+ }
283
+ }
284
+
285
+ body {
286
+ font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
287
+ -webkit-font-smoothing: antialiased;
288
+ -moz-osx-font-smoothing: grayscale;
289
+ }
290
+
291
+ /* Premium Typography Refinements */
292
+ h1, h2, h3 {
293
+ letter-spacing: -0.025em;
294
+ font-weight: 600;
295
+ }
296
+ h4, h5, h6 {
297
+ letter-spacing: -0.01em;
298
+ }
299
+
300
+ /* Micro-interactions: Linear/Apple ecosystem click scales */
301
+ [data-slot="button"],
302
+ button {
303
+ transition: transform 0.1s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.15s ease, box-shadow 0.15s ease;
304
+ }
305
+ [data-slot="button"]:active:not(:disabled),
306
+ button:active:not(:disabled) {
307
+ transform: scale(0.98);
308
+ }
309
+
310
+ /* Subtle glowing focus ring for inputs */
311
+ [data-slot="button"]:focus-visible,
312
+ [data-slot="input"]:focus-visible,
313
+ [data-slot="textarea"]:focus-visible,
314
+ [data-slot="select-trigger"]:focus-visible {
315
+ box-shadow: 0 0 0 1px var(--color-background), 0 0 0 3px color-mix(in oklch, var(--color-primary) 20%, transparent) !important;
316
+ border-color: var(--color-primary);
317
+ }
318
+
319
+ /* Base scrollbar styling (Firefox + Standard) */
320
+ * {
321
+ scrollbar-width: thin;
322
+ scrollbar-color: oklch(0.8 0 0) transparent;
323
+ }
324
+ .dark * {
325
+ scrollbar-color: oklch(0.35 0 0) transparent;
326
+ }
327
+
328
+ /* Scrollbar styling (Webkit) */
329
+ ::-webkit-scrollbar { width: 6px; height: 6px; }
330
+ ::-webkit-scrollbar-track { background: transparent; }
331
+ ::-webkit-scrollbar-thumb { background: oklch(0.8 0 0); border-radius: 3px; }
332
+ ::-webkit-scrollbar-thumb:hover { background: oklch(0.65 0 0); }
333
+ .dark ::-webkit-scrollbar-thumb { background: oklch(0.35 0 0); }
334
+ .dark ::-webkit-scrollbar-thumb:hover { background: oklch(0.45 0 0); }
335
+
336
+ /* Card Hover Elevation Lift — subtle float on hover */
337
+ [data-slot="card"] {
338
+ transition: box-shadow 0.2s ease, transform 0.2s ease;
339
+ }
340
+ @media (hover: hover) {
341
+ [data-slot="card"]:hover {
342
+ box-shadow: 0 6px 16px -4px rgb(0 0 0 / 0.06), 0 4px 8px -2px rgb(0 0 0 / 0.04), 0 0 0 1px rgb(0 0 0 / 0.02);
343
+ transform: translateY(-1px);
344
+ }
345
+ }
346
+
347
+ /* ② Table Row Hover — primary color tint instead of plain gray */
348
+ [data-slot="table-row"]:hover {
349
+ background-color: color-mix(in oklch, var(--primary) 4%, var(--background)) !important;
350
+ }
351
+ [data-slot="table-row"] {
352
+ transition: background-color 0.15s ease;
353
+ }
354
+
355
+
356
+ /* ④ Skeleton Shimmer — metallic light sweep instead of static pulse */
357
+ @keyframes svadmin-shimmer {
358
+ 0% { background-position: -200% 0; }
359
+ 100% { background-position: 200% 0; }
360
+ }
361
+ [data-slot="skeleton"] {
362
+ animation: svadmin-shimmer 1.5s ease-in-out infinite !important;
363
+ background: linear-gradient(90deg, var(--muted) 25%, color-mix(in oklch, var(--muted) 60%, white) 50%, var(--muted) 75%) !important;
364
+ background-size: 200% 100% !important;
365
+ }
366
+ .dark [data-slot="skeleton"] {
367
+ background: linear-gradient(90deg, var(--muted) 25%, color-mix(in oklch, var(--muted) 60%, var(--foreground)) 50%, var(--muted) 75%) !important;
368
+ }
369
+
370
+ /* ⑤ Route Page Transition — fade + subtle slide-up */
371
+ @keyframes svadmin-page-enter {
372
+ from {
373
+ opacity: 0;
374
+ transform: translateY(6px);
375
+ }
376
+ to {
377
+ opacity: 1;
378
+ transform: translateY(0);
379
+ }
380
+ }
381
+ .svadmin-page-enter {
382
+ animation: svadmin-page-enter 0.25s ease-out;
383
+ }
384
+
385
+ /* ⑥ Toast slide-in refinement (sonner-svelte) — tighter timing */
386
+ [data-sonner-toaster] [data-sonner-toast] {
387
+ transition-duration: 200ms !important;
388
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
389
+ }
390
+
391
+ /* ⑦ Gradient Top Border on Cards — Vercel dashboard style */
392
+ [data-slot="card"]::before {
393
+ content: '';
394
+ position: absolute;
395
+ top: 0;
396
+ left: 0;
397
+ right: 0;
398
+ height: 1px;
399
+ background: linear-gradient(90deg, transparent, color-mix(in oklch, var(--primary) 20%, transparent), transparent);
400
+ border-radius: inherit;
401
+ pointer-events: none;
402
+ }
403
+ [data-slot="card"] {
404
+ position: relative;
405
+ overflow: hidden;
406
+ }
407
+
408
+ /* ⑧ Dark Mode Primary Glow — Linear-style neon accents */
409
+ .dark [data-slot="button"][data-variant="default"],
410
+ .dark [data-slot="badge"][data-variant="default"] {
411
+ box-shadow: 0 0 12px -3px color-mix(in oklch, var(--primary) 40%, transparent);
412
+ }
413
+
414
+ /* ⑨ Form Validation Shake Animation */
415
+ @keyframes svadmin-shake {
416
+ 0%, 100% { transform: translateX(0); }
417
+ 20% { transform: translateX(-6px); }
418
+ 40% { transform: translateX(5px); }
419
+ 60% { transform: translateX(-4px); }
420
+ 80% { transform: translateX(2px); }
421
+ }
422
+ .svadmin-shake {
423
+ animation: svadmin-shake 0.4s ease-out;
424
+ }
425
+
426
+ /* ⑩ Table Row Staggered Entrance */
427
+ @keyframes svadmin-row-enter {
428
+ from {
429
+ opacity: 0;
430
+ transform: translateY(4px);
431
+ }
432
+ to {
433
+ opacity: 1;
434
+ transform: translateY(0);
435
+ }
436
+ }
437
+ [data-slot="table-body"] [data-slot="table-row"] {
438
+ animation: svadmin-row-enter 0.3s ease-out both;
439
+ }
440
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(1) { animation-delay: 0s; }
441
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(2) { animation-delay: 0.03s; }
442
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(3) { animation-delay: 0.06s; }
443
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(4) { animation-delay: 0.09s; }
444
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(5) { animation-delay: 0.12s; }
445
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(6) { animation-delay: 0.15s; }
446
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(7) { animation-delay: 0.18s; }
447
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(8) { animation-delay: 0.21s; }
448
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(9) { animation-delay: 0.24s; }
449
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(10) { animation-delay: 0.27s; }
450
+
451
+ /* ⑪ Accessibility: Respect reduced motion preferences */
452
+ @media (prefers-reduced-motion: reduce) {
453
+ *, *::before, *::after {
454
+ animation-duration: 0.01ms !important;
455
+ animation-iteration-count: 1 !important;
456
+ transition-duration: 0.01ms !important;
457
+ scroll-behavior: auto !important;
458
+ }
459
+ }
460
+
461
+ /* ⑫b Safe Area Inset — iPhone notch / Home Bar support */
462
+ @supports (padding-bottom: env(safe-area-inset-bottom)) {
463
+ main {
464
+ padding-bottom: env(safe-area-inset-bottom);
465
+ }
466
+ }
467
+
468
+ /* ⑫ Optimistic Delete — row fade-out visual feedback */
469
+ @keyframes svadmin-row-delete {
470
+ from {
471
+ opacity: 1;
472
+ transform: translateX(0);
473
+ }
474
+ to {
475
+ opacity: 0;
476
+ transform: translateX(20px);
477
+ height: 0;
478
+ padding: 0;
479
+ margin: 0;
480
+ }
481
+ }
482
+ .svadmin-deleting {
483
+ animation: svadmin-row-delete 0.3s ease-out forwards;
484
+ pointer-events: none;
485
+ }
486
+
487
+ /* ⑬ Popover & Dropdown — frosted glass backdrop + spring entrance */
488
+ [data-slot="popover-content"],
489
+ [data-slot="dropdown-menu-content"],
490
+ [data-slot="context-menu-content"] {
491
+ backdrop-filter: blur(8px);
492
+ -webkit-backdrop-filter: blur(8px);
493
+ }
494
+
495
+ /* ⑭ Tooltip spring entrance */
496
+ [data-slot="tooltip-content"] {
497
+ animation: svadmin-tooltip-enter 0.15s cubic-bezier(0.16, 1, 0.3, 1);
498
+ }
499
+ @keyframes svadmin-tooltip-enter {
500
+ from {
501
+ opacity: 0;
502
+ transform: scale(0.96);
503
+ }
504
+ to {
505
+ opacity: 1;
506
+ transform: scale(1);
507
+ }
508
+ }
509
+
510
+ /* ⑮ Smooth scrolling for content areas */
511
+ main {
512
+ scroll-behavior: smooth;
513
+ }
514
+
515
+ /* ⑯ RTL (Right-to-Left) Language Support */
516
+ [dir="rtl"] {
517
+ direction: rtl;
518
+ }
519
+ [dir="rtl"] aside {
520
+ left: auto;
521
+ right: 0;
522
+ }
523
+ /* Mirror sidebar margins for RTL */
524
+ [dir="rtl"] .sidebar-content-expanded {
525
+ margin-left: 0;
526
+ margin-right: 252px;
527
+ }
528
+ [dir="rtl"] .sidebar-content-collapsed {
529
+ margin-left: 0;
530
+ margin-right: 70px;
531
+ }
532
+
533
+ /* ── Sidebar Menu Item Styles ── */
534
+ .sidebar-menu-item {
535
+ position: relative;
536
+ cursor: pointer;
537
+ -webkit-tap-highlight-color: transparent;
538
+ }
539
+
540
+ .sidebar-menu-item-active {
541
+ position: relative;
542
+ }
543
+
544
+ .sidebar-scroll [data-radix-scroll-area-viewport] > div {
545
+ min-height: 100%;
546
+ display: flex;
547
+ flex-direction: column;
548
+ }
549
+
550
+ /* ⑰ Accessibility Minimum Touch Target — Apple HIG 44px minimum */
551
+ @media (max-width: 640px) and (pointer: coarse) {
552
+ [data-slot="button"] {
553
+ position: relative;
554
+ }
555
+ [data-slot="button"]::after {
556
+ content: '';
557
+ position: absolute;
558
+ top: 50%;
559
+ left: 50%;
560
+ transform: translate(-50%, -50%);
561
+ min-width: 44px;
562
+ min-height: 44px;
563
+ width: 100%;
564
+ height: 100%;
565
+ z-index: 1;
566
+ }
567
+ }
568
+
569
+ /* Tailwind CSS v4 — Map design tokens to utility classes */
570
+ @theme {
571
+ --color-background: var(--background);
572
+ --color-foreground: var(--foreground);
573
+ --color-card: var(--card);
574
+ --color-card-foreground: var(--card-foreground);
575
+ --color-popover: var(--popover);
576
+ --color-popover-foreground: var(--popover-foreground);
577
+ --color-primary: var(--primary);
578
+ --color-primary-foreground: var(--primary-foreground);
579
+ --color-secondary: var(--secondary);
580
+ --color-secondary-foreground: var(--secondary-foreground);
581
+ --color-muted: var(--muted);
582
+ --color-muted-foreground: var(--muted-foreground);
583
+ --color-accent: var(--accent);
584
+ --color-accent-foreground: var(--accent-foreground);
585
+ --color-destructive: var(--destructive);
586
+ --color-destructive-foreground: var(--destructive-foreground);
587
+ --color-border: var(--border);
588
+ --color-input: var(--input);
589
+ --color-ring: var(--ring);
590
+ --color-chart-1: var(--chart-1);
591
+ --color-chart-2: var(--chart-2);
592
+ --color-chart-3: var(--chart-3);
593
+ --color-chart-4: var(--chart-4);
594
+ --color-chart-5: var(--chart-5);
595
+ --color-sidebar: var(--sidebar);
596
+ --color-sidebar-foreground: var(--sidebar-foreground);
597
+ --color-sidebar-primary: var(--sidebar-primary);
598
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
599
+ --color-sidebar-accent: var(--sidebar-accent);
600
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
601
+ --color-sidebar-border: var(--sidebar-border);
602
+ --color-sidebar-ring: var(--sidebar-ring);
603
+ --color-success: var(--success);
604
+ --color-success-foreground: var(--success-foreground);
605
+ --color-warning: var(--warning);
606
+ --color-warning-foreground: var(--warning-foreground);
607
+ --color-info: var(--info);
608
+ --color-info-foreground: var(--info-foreground);
609
+ --radius-sm: calc(var(--radius) - 4px);
610
+ --radius-md: calc(var(--radius) - 2px);
611
+ --radius-lg: var(--radius);
612
+ --radius-xl: calc(var(--radius) + 4px);
613
+ }
614
+
615
+ /* ─── svadmin UI Components CSS ─────────────────────────────── */
616
+ /* These rules were moved from .svelte files to eliminate <style> tags */
617
+
618
+ /* MarkdownRenderer Styles */
619
+ .prose {
620
+ line-height: 1.6;
621
+ }
622
+ .prose p {
623
+ margin-top: 0.5em;
624
+ margin-bottom: 0.5em;
625
+ }
626
+
627
+ /* Streaming cursor effect */
628
+ .streaming > *:last-child::after {
629
+ content: '▋';
630
+ display: inline-block;
631
+ animation: svadmin-blink 1s step-start infinite;
632
+ margin-left: 2px;
633
+ vertical-align: baseline;
634
+ color: currentColor;
635
+ }
636
+
637
+ @keyframes svadmin-blink {
638
+ 50% { opacity: 0; }
639
+ }
640
+
641
+ /* Handle copied state for dynamically injected buttons */
642
+ .copy-btn[data-copied-id] {
643
+ color: #10b981; /* Tailwind emerald-500 */
644
+ }
645
+ .copy-btn[data-copied-id] svg {
646
+ /* Swap to Check icon */
647
+ content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%2310b981" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');
648
+ }
649
+
650
+ /* ChatDialog Styles */
651
+ .chat-markdown pre.chat-code-block {
652
+ background: var(--color-muted, hsl(var(--muted)));
653
+ border-radius: 0.5rem;
654
+ padding: 0.75rem;
655
+ margin: 0.5rem 0;
656
+ overflow-x: auto;
657
+ font-size: 0.75rem;
658
+ line-height: 1.5;
659
+ }
660
+ .chat-markdown code.chat-inline-code {
661
+ background: var(--color-muted, hsl(var(--muted)));
662
+ padding: 0.125rem 0.375rem;
663
+ border-radius: 0.25rem;
664
+ font-size: 0.8125em;
665
+ font-family: ui-monospace, monospace;
666
+ }
667
+ .chat-markdown strong {
668
+ font-weight: 600;
669
+ }
670
+
671
+ /* ─── High-Contrast Flat Layout Preset (clean-flat) ─── */
672
+ .layout-clean-flat {
673
+ --radius: 0.75rem;
674
+ }
675
+
676
+ /* Base card flat background overrides */
677
+ .layout-clean-flat .bg-card,
678
+ .layout-clean-flat [data-slot="card"] {
679
+ background: #ffffff !important;
680
+ border: 1px solid #f1f3f7 !important;
681
+ box-shadow: none !important;
682
+ border-radius: 0.5rem !important;
683
+ }
684
+ .dark.layout-clean-flat .bg-card,
685
+ .dark .layout-clean-flat .bg-card,
686
+ .dark.layout-clean-flat [data-slot="card"],
687
+ .dark .layout-clean-flat [data-slot="card"] {
688
+ background: #1e1e2d !important;
689
+ border: 1px solid #2b2b40 !important;
690
+ box-shadow: none !important;
691
+ }
692
+
693
+ /* Crisp table header styles */
694
+ .layout-clean-flat th {
695
+ background-color: #f9f9f9 !important;
696
+ border-bottom: 1px solid #f1f3f7 !important;
697
+ color: #181c32 !important;
698
+ font-weight: 600 !important;
699
+ font-size: 0.75rem !important;
700
+ text-transform: uppercase !important;
701
+ letter-spacing: 0.05em !important;
702
+ }
703
+ .dark.layout-clean-flat th,
704
+ .dark .layout-clean-flat th {
705
+ background-color: #1a1a27 !important;
706
+ border-bottom: 1px solid #2b2b40 !important;
707
+ color: #a1a5b7 !important;
708
+ }
709
+
710
+ /* Crisp table cell styles */
711
+ .layout-clean-flat td {
712
+ border-bottom: 1px solid #f1f3f7 !important;
713
+ color: #5e6278 !important;
714
+ font-size: 0.8125rem !important;
715
+ }
716
+ .dark.layout-clean-flat td,
717
+ .dark .layout-clean-flat td {
718
+ border-bottom: 1px solid rgba(43, 43, 64, 0.6) !important;
719
+ color: #a1a5b7 !important;
720
+ }
721
+
722
+ /* Table row hover state */
723
+ .layout-clean-flat tr:hover td {
724
+ background-color: #f9f9f9 !important;
725
+ }
726
+ .dark.layout-clean-flat tr:hover td,
727
+ .dark .layout-clean-flat tr:hover td {
728
+ background-color: rgba(43, 43, 64, 0.3) !important;
729
+ }
730
+
731
+ /* Sidebar layout adjustments for clean-flat theme */
732
+ .layout-clean-flat aside {
733
+ background: #fafbfc !important;
734
+ color: #181c32 !important;
735
+ border-right-color: #f1f3f7 !important;
736
+ box-shadow: none !important;
737
+ }
738
+ .dark.layout-clean-flat aside,
739
+ .dark .layout-clean-flat aside {
740
+ background: #1e1e2d !important;
741
+ color: #a1a5b7 !important;
742
+ border-right-color: #2b2b40 !important;
743
+ }
744
+
745
+ .layout-clean-flat .sidebar-menu-item {
746
+ color: #5e6278 !important;
747
+ border-radius: 0.5rem !important;
748
+ transition: color 0.15s ease, background-color 0.15s ease !important;
749
+ box-shadow: none !important;
750
+ }
751
+
752
+ .layout-clean-flat .sidebar-menu-item:hover {
753
+ background: transparent !important;
754
+ color: #181c32 !important;
755
+ }
756
+ .dark.layout-clean-flat .sidebar-menu-item:hover,
757
+ .dark .layout-clean-flat .sidebar-menu-item:hover {
758
+ background: transparent !important;
759
+ color: #f1f6ff !important;
760
+ }
761
+
762
+ .layout-clean-flat .sidebar-menu-item-active {
763
+ background: transparent !important;
764
+ color: #3e97ff !important;
765
+ font-weight: 600 !important;
766
+ box-shadow: none !important;
767
+ }
768
+ .dark.layout-clean-flat .sidebar-menu-item-active,
769
+ .dark .layout-clean-flat .sidebar-menu-item-active {
770
+ background: transparent !important;
771
+ color: #3e97ff !important;
772
+ }
773
+
774
+ .layout-clean-flat .sidebar-menu-item-active svg {
775
+ color: #3e97ff !important;
776
+ opacity: 1 !important;
777
+ }
778
+
779
+ /* Button & input styles override under clean-flat layout */
780
+ .layout-clean-flat [data-slot="button"][data-variant="default"] {
781
+ background: #3e97ff !important;
782
+ color: #ffffff !important;
783
+ box-shadow: none !important;
784
+ border-radius: 8px !important;
785
+ font-weight: 600 !important;
786
+ transition: all 0.15s ease !important;
787
+ }
788
+ .layout-clean-flat [data-slot="button"][data-variant="default"]:hover {
789
+ background: #1880ff !important;
790
+ }
791
+
792
+ .layout-clean-flat [data-slot="button"][data-variant="outline"] {
793
+ background: #ffffff !important;
794
+ color: #5e6278 !important;
795
+ border: 1px solid #e1e3ea !important;
796
+ box-shadow: none !important;
797
+ border-radius: 8px !important;
798
+ font-weight: 600 !important;
799
+ transition: all 0.15s ease !important;
800
+ }
801
+ .layout-clean-flat [data-slot="button"][data-variant="outline"]:hover {
802
+ background: #f5f8fa !important;
803
+ border-color: #cbd5e1 !important;
804
+ color: #181c32 !important;
805
+ }
806
+ .dark.layout-clean-flat [data-slot="button"][data-variant="outline"],
807
+ .dark .layout-clean-flat [data-slot="button"][data-variant="outline"] {
808
+ background: #1e1e2d !important;
809
+ color: #a1a5b7 !important;
810
+ border-color: #2b2b40 !important;
811
+ }
812
+ .dark.layout-clean-flat [data-slot="button"][data-variant="outline"]:hover,
813
+ .dark .layout-clean-flat [data-slot="button"][data-variant="outline"]:hover {
814
+ background: #2b2b40 !important;
815
+ color: #ffffff !important;
816
+ }
817
+
818
+ .layout-clean-flat [data-slot="input"] {
819
+ border: 1px solid #e1e3ea !important;
820
+ border-radius: 8px !important;
821
+ box-shadow: none !important;
822
+ outline: none !important;
823
+ transition: all 0.15s ease !important;
824
+ }
825
+ .layout-clean-flat [data-slot="input"]:focus {
826
+ border-color: #3e97ff !important;
827
+ box-shadow: 0 0 0 4px rgba(62,151,255,0.1) !important;
828
+ }
829
+ .dark.layout-clean-flat [data-slot="input"],
830
+ .dark .layout-clean-flat [data-slot="input"] {
831
+ border-color: #2b2b40 !important;
832
+ background: #151521 !important;
833
+ color: #f1f6ff !important;
834
+ }
835
+ .dark.layout-clean-flat [data-slot="input"]:focus,
836
+ .dark .layout-clean-flat [data-slot="input"]:focus {
837
+ border-color: #3e97ff !important;
838
+ }
839
+
840
+ /* svadmin flat list and edit surfaces */
841
+ [data-svadmin-list-header],
842
+ [data-svadmin-table-toolbar],
843
+ [data-svadmin-table-card],
844
+ [data-svadmin-form-header],
845
+ [data-svadmin-form-card],
846
+ [data-svadmin-form-actions] {
847
+ box-shadow: none !important;
848
+ }
849
+
850
+ .layout-clean-flat [data-svadmin-list-header],
851
+ .layout-clean-flat [data-svadmin-table-toolbar],
852
+ .layout-clean-flat [data-svadmin-table-card],
853
+ .layout-clean-flat [data-svadmin-form-header],
854
+ .layout-clean-flat [data-svadmin-form-card],
855
+ .layout-clean-flat [data-svadmin-form-actions] {
856
+ border-color: #f1f3f7 !important;
857
+ background: #ffffff !important;
858
+ border-radius: 0.5rem !important;
859
+ }
860
+
861
+ .layout-clean-flat [data-svadmin-list-actions] [data-slot="button"],
862
+ .layout-clean-flat [data-svadmin-table-toolbar] [data-slot="button"],
863
+ .layout-clean-flat [data-svadmin-form-actions] [data-slot="button"] {
864
+ height: 2.625rem !important;
865
+ border-radius: 0.5rem !important;
866
+ }
867
+
868
+ .layout-clean-flat [data-svadmin-table-toolbar] {
869
+ padding: 0.875rem !important;
870
+ }
871
+
872
+ .layout-clean-flat [data-svadmin-table-toolbar] [data-slot="input"] {
873
+ height: 2.75rem !important;
874
+ border-radius: 0.5rem !important;
875
+ background: #f9f9f9 !important;
876
+ }
877
+
878
+ [data-svadmin-datatable] {
879
+ border-collapse: separate !important;
880
+ border-spacing: 0 !important;
881
+ }
882
+
883
+ [data-svadmin-table-head] [data-slot="table-head"] {
884
+ height: 3.25rem !important;
885
+ border-bottom: 1px solid rgba(225, 227, 234, 0.78) !important;
886
+ background: #f9f9f9 !important;
887
+ color: #a1a5b7 !important;
888
+ font-size: 0.6875rem !important;
889
+ font-weight: 700 !important;
890
+ letter-spacing: 0.08em !important;
891
+ text-transform: uppercase !important;
892
+ }
893
+
894
+ [data-svadmin-table-row] {
895
+ border-bottom-color: rgba(241, 243, 247, 0.95) !important;
896
+ }
897
+
898
+ [data-svadmin-table-row] [data-slot="table-cell"] {
899
+ height: 3.625rem !important;
900
+ color: #5e6278 !important;
901
+ font-size: 0.8125rem !important;
902
+ }
903
+
904
+ [data-svadmin-table-row]:hover [data-slot="table-cell"] {
905
+ background: #fbfcfd !important;
906
+ }
907
+
908
+ [data-svadmin-pagination] {
909
+ border-radius: 0.5rem;
910
+ padding: 0.35rem 0.15rem;
911
+ }
912
+
913
+ [data-svadmin-form-content] {
914
+ padding-top: 0 !important;
915
+ padding-bottom: 0 !important;
916
+ }
917
+
918
+ [data-svadmin-form-row] {
919
+ border-bottom: 1px solid rgba(241, 243, 247, 0.95);
920
+ padding: 1.35rem 0;
921
+ }
922
+
923
+ [data-svadmin-form-row]:last-child {
924
+ border-bottom: 0;
925
+ }
926
+
927
+ [data-svadmin-field-label] {
928
+ color: #3f4254 !important;
929
+ font-weight: 600 !important;
930
+ }
931
+
932
+ [data-svadmin-form-settings] [data-slot="input"],
933
+ [data-svadmin-form-settings] textarea,
934
+ [data-svadmin-form-settings] [data-slot="select-trigger"] {
935
+ min-height: 2.75rem !important;
936
+ border-radius: 0.5rem !important;
937
+ background: #f9f9f9 !important;
938
+ }
939
+
940
+ [data-svadmin-form-actions] {
941
+ width: fit-content;
942
+ max-width: 100%;
943
+ }
944
+
945
+ @media (min-width: 768px) {
946
+ [data-svadmin-form-settings] [data-svadmin-field] {
947
+ display: grid !important;
948
+ grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr) !important;
949
+ align-items: start !important;
950
+ column-gap: 2rem !important;
951
+ row-gap: 0.35rem !important;
952
+ }
953
+
954
+ [data-svadmin-form-settings] [data-svadmin-field] > [data-svadmin-field-label] {
955
+ padding-top: 0.8rem !important;
956
+ }
957
+
958
+ [data-svadmin-form-settings] [data-svadmin-field] > :not([data-svadmin-field-label]) {
959
+ grid-column: 2 !important;
960
+ }
961
+ }
962
+
963
+ .dark [data-svadmin-table-head] [data-slot="table-head"] {
964
+ background: #1a1a27 !important;
965
+ border-bottom-color: #2b2b40 !important;
966
+ color: #a1a5b7 !important;
967
+ }
968
+
969
+ .dark [data-svadmin-table-row] {
970
+ border-bottom-color: rgba(43, 43, 64, 0.82) !important;
971
+ }
972
+
973
+ .dark [data-svadmin-table-row] [data-slot="table-cell"] {
974
+ color: #a1a5b7 !important;
975
+ }
976
+
977
+ .dark [data-svadmin-table-row]:hover [data-slot="table-cell"] {
978
+ background: rgba(43, 43, 64, 0.32) !important;
979
+ }
980
+
981
+ .dark [data-svadmin-form-row] {
982
+ border-bottom-color: rgba(43, 43, 64, 0.82);
983
+ }
984
+
985
+ /* ─── Flat workspace redesign pass: non-sidebar pages ─── */
986
+ .layout-clean-flat main {
987
+ background:
988
+ linear-gradient(180deg, color-mix(in oklch, var(--background) 86%, white) 0%, var(--background) 34rem),
989
+ var(--background) !important;
990
+ }
991
+
992
+ .layout-clean-flat main > div {
993
+ min-width: 0 !important;
994
+ }
995
+
996
+ .layout-clean-flat [data-svadmin-page-header],
997
+ .layout-clean-flat [data-svadmin-list-header],
998
+ .layout-clean-flat [data-svadmin-form-header] {
999
+ background: transparent !important;
1000
+ border-radius: 0 !important;
1001
+ border-left: 0 !important;
1002
+ border-right: 0 !important;
1003
+ border-top: 0 !important;
1004
+ padding-left: 0 !important;
1005
+ padding-right: 0 !important;
1006
+ }
1007
+
1008
+ .layout-clean-flat [data-svadmin-page-header] h1,
1009
+ .layout-clean-flat [data-svadmin-list-header] h1,
1010
+ .layout-clean-flat [data-svadmin-form-header] h1,
1011
+ .layout-clean-flat [data-svadmin-resource-operations] h1 {
1012
+ line-height: 1.12 !important;
1013
+ letter-spacing: 0 !important;
1014
+ }
1015
+
1016
+ .layout-clean-flat [data-slot="card"] {
1017
+ border-color: color-mix(in oklch, var(--border) 82%, transparent) !important;
1018
+ border-radius: 0.5rem !important;
1019
+ box-shadow: none !important;
1020
+ min-width: 0 !important;
1021
+ }
1022
+
1023
+ .layout-clean-flat main section,
1024
+ .layout-clean-flat main [class*="grid"],
1025
+ .layout-clean-flat main [class*="flex"],
1026
+ .layout-clean-flat main [data-slot="card-content"] {
1027
+ min-width: 0;
1028
+ }
1029
+
1030
+ .layout-clean-flat main h1,
1031
+ .layout-clean-flat main h2,
1032
+ .layout-clean-flat main h3,
1033
+ .layout-clean-flat main p,
1034
+ .layout-clean-flat main [data-slot="badge"] {
1035
+ max-width: 100%;
1036
+ }
1037
+
1038
+ .layout-clean-flat main h1,
1039
+ .layout-clean-flat main h2,
1040
+ .layout-clean-flat main h3,
1041
+ .layout-clean-flat main [data-slot="card-title"] {
1042
+ overflow-wrap: anywhere;
1043
+ }
1044
+
1045
+ .layout-clean-flat main p,
1046
+ .layout-clean-flat main [data-slot="card-description"] {
1047
+ overflow-wrap: break-word;
1048
+ }
1049
+
1050
+ .layout-clean-flat main > div[class*="space-y"] > section:first-child {
1051
+ border-radius: 0 !important;
1052
+ background: transparent !important;
1053
+ }
1054
+
1055
+ .layout-clean-flat main > div[class*="space-y"] > section:first-child [data-slot="card"],
1056
+ .layout-clean-flat main > div[class*="space-y"] > section:first-child + [class*="grid"] [data-slot="card"],
1057
+ .layout-clean-flat main [data-svadmin-ops-hero] [data-slot="card"] {
1058
+ background: transparent !important;
1059
+ border-color: color-mix(in oklch, var(--border) 72%, transparent) !important;
1060
+ box-shadow: none !important;
1061
+ }
1062
+
1063
+ .layout-clean-flat main > div[class*="space-y"] > section:first-child [data-slot="card"]:has([data-slot="card"]),
1064
+ .layout-clean-flat main [data-slot="card"]:has(> [data-slot="card-content"] [data-svadmin-table-card]) {
1065
+ border: 0 !important;
1066
+ background: transparent !important;
1067
+ padding: 0 !important;
1068
+ }
1069
+
1070
+ .layout-clean-flat main [data-slot="card"] [data-slot="card"] {
1071
+ background: color-mix(in oklch, var(--card) 88%, var(--background)) !important;
1072
+ border-color: color-mix(in oklch, var(--border) 70%, transparent) !important;
1073
+ }
1074
+
1075
+ .layout-clean-flat main [data-slot="card-content"] > .flex,
1076
+ .layout-clean-flat main [data-slot="card-content"] > .grid {
1077
+ min-width: 0;
1078
+ }
1079
+
1080
+ .layout-clean-flat main [data-slot="card-content"] span[class*="h-10"][class*="w-10"],
1081
+ .layout-clean-flat main [data-slot="card-content"] span[class*="h-11"][class*="w-11"],
1082
+ .layout-clean-flat main [data-slot="card-content"] span[class*="h-12"][class*="w-12"] {
1083
+ flex-shrink: 0;
1084
+ }
1085
+
1086
+ .layout-clean-flat main [data-slot="card-content"] [class*="text-2xl"],
1087
+ .layout-clean-flat main [data-slot="card-content"] [class*="text-3xl"] {
1088
+ line-height: 1.12;
1089
+ }
1090
+
1091
+ .layout-clean-flat main [data-slot="badge"] {
1092
+ overflow: hidden;
1093
+ text-overflow: ellipsis;
1094
+ white-space: nowrap;
1095
+ }
1096
+
1097
+ .layout-clean-flat main [data-slot="tabs-list"] {
1098
+ min-width: 0;
1099
+ border-radius: 0.5rem !important;
1100
+ }
1101
+
1102
+ .layout-clean-flat main [data-slot="tabs-trigger"] {
1103
+ min-width: 0;
1104
+ overflow: hidden;
1105
+ text-overflow: ellipsis;
1106
+ white-space: nowrap;
1107
+ }
1108
+
1109
+ .layout-clean-flat [data-svadmin-ops-hero] {
1110
+ align-items: stretch;
1111
+ }
1112
+
1113
+ .layout-clean-flat [data-svadmin-metric-card],
1114
+ .layout-clean-flat [data-svadmin-panel-card] {
1115
+ background: color-mix(in oklch, var(--card) 92%, var(--background)) !important;
1116
+ }
1117
+
1118
+ .layout-clean-flat [data-svadmin-metric-card] [data-slot="card-content"] {
1119
+ min-height: 8.25rem;
1120
+ }
1121
+
1122
+ .layout-clean-flat [data-svadmin-panel-card] [data-slot="card-content"] > * + * {
1123
+ border-top: 1px solid color-mix(in oklch, var(--border) 78%, transparent);
1124
+ }
1125
+
1126
+ .layout-clean-flat [data-svadmin-table-card],
1127
+ .layout-clean-flat [data-svadmin-show-card],
1128
+ .layout-clean-flat [data-svadmin-form-card] {
1129
+ border-left: 0 !important;
1130
+ border-right: 0 !important;
1131
+ border-radius: 0 !important;
1132
+ min-width: 0 !important;
1133
+ max-width: 100% !important;
1134
+ }
1135
+
1136
+ .layout-clean-flat [data-svadmin-table-toolbar] {
1137
+ background: transparent !important;
1138
+ border-left: 0 !important;
1139
+ border-right: 0 !important;
1140
+ border-top: 0 !important;
1141
+ border-radius: 0 !important;
1142
+ padding-left: 0 !important;
1143
+ padding-right: 0 !important;
1144
+ }
1145
+
1146
+ .layout-clean-flat [data-svadmin-table-scroll] {
1147
+ min-width: 0 !important;
1148
+ max-width: 100% !important;
1149
+ scrollbar-gutter: stable both-edges;
1150
+ }
1151
+
1152
+ .layout-clean-flat [data-svadmin-datatable] {
1153
+ min-width: 0 !important;
1154
+ table-layout: fixed !important;
1155
+ }
1156
+
1157
+ @media (min-width: 1024px) {
1158
+ .layout-clean-flat [data-svadmin-datatable] {
1159
+ min-width: 760px !important;
1160
+ }
1161
+ }
1162
+
1163
+ .layout-clean-flat [data-svadmin-table-head] [data-slot="table-head"],
1164
+ .layout-clean-flat [data-svadmin-table-row] [data-slot="table-cell"] {
1165
+ overflow: hidden !important;
1166
+ text-overflow: ellipsis !important;
1167
+ white-space: nowrap !important;
1168
+ }
1169
+
1170
+ .layout-clean-flat [data-svadmin-list-actions] [data-slot="button"],
1171
+ .layout-clean-flat [data-svadmin-table-toolbar] [data-slot="button"] {
1172
+ flex-shrink: 0 !important;
1173
+ }
1174
+
1175
+ .layout-clean-flat [data-svadmin-pagination] {
1176
+ border-top: 1px solid color-mix(in oklch, var(--border) 82%, transparent);
1177
+ border-radius: 0 !important;
1178
+ padding-top: 0.75rem !important;
1179
+ }
1180
+
1181
+ .layout-clean-flat [data-svadmin-pagination] [data-slot="pagination-content"] {
1182
+ flex-wrap: wrap !important;
1183
+ justify-content: center !important;
1184
+ }
1185
+
1186
+ .layout-clean-flat [data-svadmin-form-actions] {
1187
+ border-radius: 0.5rem !important;
1188
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08) !important;
1189
+ }
1190
+
1191
+ @media (max-width: 767px) {
1192
+ .layout-clean-flat main {
1193
+ padding-left: 1rem !important;
1194
+ padding-right: 1rem !important;
1195
+ }
1196
+
1197
+ .layout-clean-flat main h1 {
1198
+ font-size: clamp(1.75rem, 1.55rem + 1vw, 2.125rem) !important;
1199
+ }
1200
+
1201
+ .layout-clean-flat main [data-slot="card"] {
1202
+ border-left: 1px solid color-mix(in oklch, var(--border) 72%, transparent) !important;
1203
+ border-right: 1px solid color-mix(in oklch, var(--border) 72%, transparent) !important;
1204
+ border-radius: 0.5rem !important;
1205
+ }
1206
+
1207
+ .layout-clean-flat main [data-slot="card-header"],
1208
+ .layout-clean-flat main [data-slot="card-content"],
1209
+ .layout-clean-flat main [data-slot="card-footer"] {
1210
+ padding-left: 1rem !important;
1211
+ padding-right: 1rem !important;
1212
+ }
1213
+
1214
+ .layout-clean-flat main > div[class*="space-y"] > section:first-child {
1215
+ padding-bottom: 1rem !important;
1216
+ }
1217
+
1218
+ .layout-clean-flat [data-svadmin-list-actions] [data-slot="button"],
1219
+ .layout-clean-flat [data-svadmin-table-toolbar] [data-slot="button"],
1220
+ .layout-clean-flat [data-svadmin-form-actions] [data-slot="button"] {
1221
+ min-width: 0 !important;
1222
+ max-width: 100% !important;
1223
+ }
1224
+
1225
+ .layout-clean-flat [data-svadmin-table-toolbar] [data-slot="button"] {
1226
+ width: fit-content !important;
1227
+ }
1228
+
1229
+ .layout-clean-flat [data-svadmin-form-actions] {
1230
+ width: 100% !important;
1231
+ }
1232
+
1233
+ .layout-clean-flat [data-svadmin-table-card],
1234
+ .layout-clean-flat [data-svadmin-show-card],
1235
+ .layout-clean-flat [data-svadmin-form-card] {
1236
+ border-left: 1px solid color-mix(in oklch, var(--border) 72%, transparent) !important;
1237
+ border-right: 1px solid color-mix(in oklch, var(--border) 72%, transparent) !important;
1238
+ border-radius: 0.5rem !important;
1239
+ }
1240
+
1241
+ .layout-clean-flat [data-svadmin-table-card] [data-slot="card-header"],
1242
+ .layout-clean-flat [data-svadmin-table-card] [data-slot="card-content"],
1243
+ .layout-clean-flat [data-svadmin-show-card] [data-slot="card-header"],
1244
+ .layout-clean-flat [data-svadmin-show-card] [data-slot="card-content"],
1245
+ .layout-clean-flat [data-svadmin-form-card] [data-slot="card-header"],
1246
+ .layout-clean-flat [data-svadmin-form-card] [data-slot="card-content"] {
1247
+ padding-left: 1rem !important;
1248
+ padding-right: 1rem !important;
1249
+ }
1250
+ }
1251
+
1252
+ @media (min-width: 768px) and (max-width: 1023px) {
1253
+ .layout-clean-flat main [class*="md:grid-cols"],
1254
+ .layout-clean-flat main [class*="lg:grid-cols"],
1255
+ .layout-clean-flat main [class*="xl:grid-cols"] {
1256
+ grid-template-columns: minmax(0, 1fr) !important;
1257
+ }
1258
+
1259
+ .layout-clean-flat main [class*="lg:flex-row"],
1260
+ .layout-clean-flat main [class*="xl:flex-row"] {
1261
+ flex-direction: column !important;
1262
+ align-items: stretch !important;
1263
+ }
1264
+ }
1265
+
1266
+ /* svadmin content pages: profile/account/network/auth/error surfaces */
1267
+ .layout-clean-flat [data-svadmin-content-page] {
1268
+ --svadmin-content-border: color-mix(in oklch, var(--border) 78%, transparent);
1269
+ --svadmin-content-muted: color-mix(in oklch, var(--muted) 58%, var(--background));
1270
+ max-width: 1180px;
1271
+ margin-inline: auto;
1272
+ }
1273
+
1274
+ .layout-clean-flat [data-svadmin-content-page] > div:first-child:not([data-slot="card-content"]),
1275
+ .layout-clean-flat [data-svadmin-content-page] > .flex:first-child,
1276
+ .layout-clean-flat [data-svadmin-content-page] > .relative:first-child {
1277
+ min-width: 0;
1278
+ }
1279
+
1280
+ .layout-clean-flat [data-svadmin-content-page] > div:first-child:has(h2),
1281
+ .layout-clean-flat [data-svadmin-content-page] > .flex:first-child:has(h2) {
1282
+ border-bottom: 1px solid var(--svadmin-content-border);
1283
+ padding-bottom: 1rem;
1284
+ }
1285
+
1286
+ .layout-clean-flat [data-svadmin-content-page] h1,
1287
+ .layout-clean-flat [data-svadmin-content-page] h2 {
1288
+ line-height: 1.15 !important;
1289
+ letter-spacing: 0 !important;
1290
+ }
1291
+
1292
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card"] {
1293
+ border-color: var(--svadmin-content-border) !important;
1294
+ border-radius: 0.625rem !important;
1295
+ box-shadow: none !important;
1296
+ background: var(--card) !important;
1297
+ }
1298
+
1299
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card"]:hover {
1300
+ border-color: color-mix(in oklch, var(--border) 60%, var(--primary)) !important;
1301
+ }
1302
+
1303
+ .layout-clean-flat [data-svadmin-content-page] [class*="bg-gradient-to-r"] {
1304
+ background: linear-gradient(90deg, var(--svadmin-content-muted), color-mix(in oklch, var(--primary) 8%, var(--background))) !important;
1305
+ }
1306
+
1307
+ .layout-clean-flat [data-svadmin-content-page] [class*="shadow"],
1308
+ .layout-clean-flat [data-svadmin-content-page] [class*="ring-1"] {
1309
+ box-shadow: none !important;
1310
+ }
1311
+
1312
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="tabs-list"] {
1313
+ background: transparent !important;
1314
+ border-radius: 0 !important;
1315
+ border-bottom: 1px solid var(--svadmin-content-border);
1316
+ padding: 0 !important;
1317
+ }
1318
+
1319
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="tabs-trigger"] {
1320
+ border-radius: 0 !important;
1321
+ min-height: 2.5rem;
1322
+ }
1323
+
1324
+ .layout-clean-flat [data-svadmin-content-page] table {
1325
+ min-width: 0;
1326
+ }
1327
+
1328
+ .layout-clean-flat [data-svadmin-content-page] th,
1329
+ .layout-clean-flat [data-svadmin-content-page] td {
1330
+ overflow-wrap: break-word;
1331
+ }
1332
+
1333
+ .layout-clean-flat [data-svadmin-content-page="error"] [data-slot="card"],
1334
+ .layout-clean-flat [data-svadmin-content-page="auth-2fa"] [data-slot="card"] {
1335
+ max-width: 32rem;
1336
+ width: 100%;
1337
+ }
1338
+
1339
+ @media (max-width: 767px) {
1340
+ .layout-clean-flat [data-svadmin-content-page] {
1341
+ max-width: 100%;
1342
+ }
1343
+
1344
+ .layout-clean-flat [data-svadmin-content-page] > .flex:first-child:has(h2) {
1345
+ flex-direction: column;
1346
+ align-items: stretch;
1347
+ }
1348
+
1349
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card"] {
1350
+ border-left: 1px solid var(--svadmin-content-border) !important;
1351
+ border-right: 1px solid var(--svadmin-content-border) !important;
1352
+ border-radius: 0.5rem !important;
1353
+ }
1354
+
1355
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card-content"],
1356
+ .layout-clean-flat [data-svadmin-content-page] [data-slot="card-header"] {
1357
+ padding-left: 1rem !important;
1358
+ padding-right: 1rem !important;
1359
+ }
1360
+
1361
+ .layout-clean-flat [data-svadmin-content-page] [class*="grid-cols-3"] {
1362
+ grid-template-columns: minmax(0, 1fr) !important;
1363
+ }
1364
+
1365
+ .layout-clean-flat [data-svadmin-content-page="auth-2fa"] [data-slot="card-content"],
1366
+ .layout-clean-flat [data-svadmin-content-page="error"] [data-slot="card-content"] {
1367
+ padding-left: 1rem !important;
1368
+ padding-right: 1rem !important;
1369
+ }
1370
+ }