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