@mila_studios/mycelia-design-system 0.1.1

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 (149) hide show
  1. package/README.md +187 -0
  2. package/mycelia-ui.css +5545 -0
  3. package/package.json +127 -0
  4. package/packages/ui/dist/components/accordion.d.mts +9 -0
  5. package/packages/ui/dist/components/accordion.js +74 -0
  6. package/packages/ui/dist/components/accordion.js.map +1 -0
  7. package/packages/ui/dist/components/alert-dialog.d.mts +22 -0
  8. package/packages/ui/dist/components/alert-dialog.js +117 -0
  9. package/packages/ui/dist/components/alert-dialog.js.map +1 -0
  10. package/packages/ui/dist/components/alert.d.mts +28 -0
  11. package/packages/ui/dist/components/alert.js +140 -0
  12. package/packages/ui/dist/components/alert.js.map +1 -0
  13. package/packages/ui/dist/components/aspect-ratio.d.mts +7 -0
  14. package/packages/ui/dist/components/aspect-ratio.js +28 -0
  15. package/packages/ui/dist/components/aspect-ratio.js.map +1 -0
  16. package/packages/ui/dist/components/avatar-stack.d.mts +16 -0
  17. package/packages/ui/dist/components/avatar-stack.js +57 -0
  18. package/packages/ui/dist/components/avatar-stack.js.map +1 -0
  19. package/packages/ui/dist/components/avatar.d.mts +16 -0
  20. package/packages/ui/dist/components/avatar.js +108 -0
  21. package/packages/ui/dist/components/avatar.js.map +1 -0
  22. package/packages/ui/dist/components/badge.d.mts +16 -0
  23. package/packages/ui/dist/components/badge.js +61 -0
  24. package/packages/ui/dist/components/badge.js.map +1 -0
  25. package/packages/ui/dist/components/breadcrumb.d.mts +22 -0
  26. package/packages/ui/dist/components/breadcrumb.js +118 -0
  27. package/packages/ui/dist/components/breadcrumb.js.map +1 -0
  28. package/packages/ui/dist/components/button.d.mts +36 -0
  29. package/packages/ui/dist/components/button.js +204 -0
  30. package/packages/ui/dist/components/button.js.map +1 -0
  31. package/packages/ui/dist/components/calendar.d.mts +11 -0
  32. package/packages/ui/dist/components/calendar.js +27 -0
  33. package/packages/ui/dist/components/calendar.js.map +1 -0
  34. package/packages/ui/dist/components/card.d.mts +10 -0
  35. package/packages/ui/dist/components/card.js +84 -0
  36. package/packages/ui/dist/components/card.js.map +1 -0
  37. package/packages/ui/dist/components/carousel.d.mts +35 -0
  38. package/packages/ui/dist/components/carousel.js +362 -0
  39. package/packages/ui/dist/components/carousel.js.map +1 -0
  40. package/packages/ui/dist/components/chart.d.mts +88 -0
  41. package/packages/ui/dist/components/chart.js +249 -0
  42. package/packages/ui/dist/components/chart.js.map +1 -0
  43. package/packages/ui/dist/components/checkbox.d.mts +44 -0
  44. package/packages/ui/dist/components/checkbox.js +161 -0
  45. package/packages/ui/dist/components/checkbox.js.map +1 -0
  46. package/packages/ui/dist/components/combobox.d.mts +45 -0
  47. package/packages/ui/dist/components/combobox.js +148 -0
  48. package/packages/ui/dist/components/combobox.js.map +1 -0
  49. package/packages/ui/dist/components/command-menu.d.mts +88 -0
  50. package/packages/ui/dist/components/command-menu.js +414 -0
  51. package/packages/ui/dist/components/command-menu.js.map +1 -0
  52. package/packages/ui/dist/components/command.d.mts +84 -0
  53. package/packages/ui/dist/components/command.js +125 -0
  54. package/packages/ui/dist/components/command.js.map +1 -0
  55. package/packages/ui/dist/components/data-table.d.mts +23 -0
  56. package/packages/ui/dist/components/data-table.js +377 -0
  57. package/packages/ui/dist/components/data-table.js.map +1 -0
  58. package/packages/ui/dist/components/date-picker.d.mts +28 -0
  59. package/packages/ui/dist/components/date-picker.js +217 -0
  60. package/packages/ui/dist/components/date-picker.js.map +1 -0
  61. package/packages/ui/dist/components/dialog.d.mts +19 -0
  62. package/packages/ui/dist/components/dialog.js +146 -0
  63. package/packages/ui/dist/components/dialog.js.map +1 -0
  64. package/packages/ui/dist/components/drawer.d.mts +20 -0
  65. package/packages/ui/dist/components/drawer.js +159 -0
  66. package/packages/ui/dist/components/drawer.js.map +1 -0
  67. package/packages/ui/dist/components/hover-card.d.mts +9 -0
  68. package/packages/ui/dist/components/hover-card.js +35 -0
  69. package/packages/ui/dist/components/hover-card.js.map +1 -0
  70. package/packages/ui/dist/components/icon-button.d.mts +22 -0
  71. package/packages/ui/dist/components/icon-button.js +169 -0
  72. package/packages/ui/dist/components/icon-button.js.map +1 -0
  73. package/packages/ui/dist/components/input-file.d.mts +12 -0
  74. package/packages/ui/dist/components/input-file.js +209 -0
  75. package/packages/ui/dist/components/input-file.js.map +1 -0
  76. package/packages/ui/dist/components/input-otp.d.mts +85 -0
  77. package/packages/ui/dist/components/input-otp.js +254 -0
  78. package/packages/ui/dist/components/input-otp.js.map +1 -0
  79. package/packages/ui/dist/components/input.d.mts +17 -0
  80. package/packages/ui/dist/components/input.js +116 -0
  81. package/packages/ui/dist/components/input.js.map +1 -0
  82. package/packages/ui/dist/components/label.d.mts +14 -0
  83. package/packages/ui/dist/components/label.js +40 -0
  84. package/packages/ui/dist/components/label.js.map +1 -0
  85. package/packages/ui/dist/components/navigation-menu.d.mts +20 -0
  86. package/packages/ui/dist/components/navigation-menu.js +136 -0
  87. package/packages/ui/dist/components/navigation-menu.js.map +1 -0
  88. package/packages/ui/dist/components/pagination.d.mts +27 -0
  89. package/packages/ui/dist/components/pagination.js +159 -0
  90. package/packages/ui/dist/components/pagination.js.map +1 -0
  91. package/packages/ui/dist/components/popover.d.mts +9 -0
  92. package/packages/ui/dist/components/popover.js +34 -0
  93. package/packages/ui/dist/components/popover.js.map +1 -0
  94. package/packages/ui/dist/components/progress.d.mts +13 -0
  95. package/packages/ui/dist/components/progress.js +44 -0
  96. package/packages/ui/dist/components/progress.js.map +1 -0
  97. package/packages/ui/dist/components/radio-group.d.mts +42 -0
  98. package/packages/ui/dist/components/radio-group.js +125 -0
  99. package/packages/ui/dist/components/radio-group.js.map +1 -0
  100. package/packages/ui/dist/components/resizable.d.mts +9 -0
  101. package/packages/ui/dist/components/resizable.js +70 -0
  102. package/packages/ui/dist/components/resizable.js.map +1 -0
  103. package/packages/ui/dist/components/scroll-area.d.mts +15 -0
  104. package/packages/ui/dist/components/scroll-area.js +70 -0
  105. package/packages/ui/dist/components/scroll-area.js.map +1 -0
  106. package/packages/ui/dist/components/separator.d.mts +27 -0
  107. package/packages/ui/dist/components/separator.js +81 -0
  108. package/packages/ui/dist/components/separator.js.map +1 -0
  109. package/packages/ui/dist/components/sheet.d.mts +26 -0
  110. package/packages/ui/dist/components/sheet.js +158 -0
  111. package/packages/ui/dist/components/sheet.js.map +1 -0
  112. package/packages/ui/dist/components/sidebar.d.mts +63 -0
  113. package/packages/ui/dist/components/sidebar.js +271 -0
  114. package/packages/ui/dist/components/sidebar.js.map +1 -0
  115. package/packages/ui/dist/components/skeleton.d.mts +13 -0
  116. package/packages/ui/dist/components/skeleton.js +34 -0
  117. package/packages/ui/dist/components/skeleton.js.map +1 -0
  118. package/packages/ui/dist/components/slider.d.mts +7 -0
  119. package/packages/ui/dist/components/slider.js +70 -0
  120. package/packages/ui/dist/components/slider.js.map +1 -0
  121. package/packages/ui/dist/components/sonner.d.mts +8 -0
  122. package/packages/ui/dist/components/sonner.js +112 -0
  123. package/packages/ui/dist/components/sonner.js.map +1 -0
  124. package/packages/ui/dist/components/spinner.d.mts +6 -0
  125. package/packages/ui/dist/components/spinner.js +44 -0
  126. package/packages/ui/dist/components/spinner.js.map +1 -0
  127. package/packages/ui/dist/components/switch.d.mts +43 -0
  128. package/packages/ui/dist/components/switch.js +136 -0
  129. package/packages/ui/dist/components/switch.js.map +1 -0
  130. package/packages/ui/dist/components/table.d.mts +16 -0
  131. package/packages/ui/dist/components/table.js +115 -0
  132. package/packages/ui/dist/components/table.js.map +1 -0
  133. package/packages/ui/dist/components/tabs.d.mts +17 -0
  134. package/packages/ui/dist/components/tabs.js +104 -0
  135. package/packages/ui/dist/components/tabs.js.map +1 -0
  136. package/packages/ui/dist/components/textarea.d.mts +12 -0
  137. package/packages/ui/dist/components/textarea.js +76 -0
  138. package/packages/ui/dist/components/textarea.js.map +1 -0
  139. package/packages/ui/dist/components/tooltip.d.mts +17 -0
  140. package/packages/ui/dist/components/tooltip.js +46 -0
  141. package/packages/ui/dist/components/tooltip.js.map +1 -0
  142. package/packages/ui/dist/lib/utils.d.mts +5 -0
  143. package/packages/ui/dist/lib/utils.js +11 -0
  144. package/packages/ui/dist/lib/utils.js.map +1 -0
  145. package/packages/ui/dist/mycelia-ui.css +5545 -0
  146. package/packages/ui/postcss.config.mjs +6 -0
  147. package/packages/ui/src/styles/bundle-entry.css +2 -0
  148. package/packages/ui/src/styles/globals.css +651 -0
  149. package/scripts/prepare-build.mjs +32 -0
@@ -0,0 +1,6 @@
1
+ /** @type {import('postcss-load-config').Config} */
2
+ const config = {
3
+ plugins: { "@tailwindcss/postcss": {} },
4
+ };
5
+
6
+ export default config;
@@ -0,0 +1,2 @@
1
+ /* Built to dist/mila-ui.css — single-file stylesheet for apps that only need MILA components (no local Tailwind). */
2
+ @import "./globals.css";
@@ -0,0 +1,651 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+ @import "shadcn/tailwind.css";
4
+ @import "react-day-picker/style.css";
5
+
6
+ @keyframes mila-accordion-down {
7
+ from {
8
+ height: 0;
9
+ }
10
+ to {
11
+ height: var(--radix-collapsible-content-height);
12
+ }
13
+ }
14
+
15
+ @keyframes mila-accordion-up {
16
+ from {
17
+ height: var(--radix-collapsible-content-height);
18
+ }
19
+ to {
20
+ height: 0;
21
+ }
22
+ }
23
+
24
+ @custom-variant dark (&:is(.dark *));
25
+ @source "../**/*.{ts,tsx}";
26
+
27
+ @theme inline {
28
+ --font-heading: var(--font-sans);
29
+ --color-sidebar-ring: var(--sidebar-ring);
30
+ --color-sidebar-border: var(--sidebar-border);
31
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
32
+ --color-sidebar-accent: var(--sidebar-accent);
33
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
34
+ --color-sidebar-primary: var(--sidebar-primary);
35
+ --color-sidebar-foreground: var(--sidebar-foreground);
36
+ --color-sidebar: var(--sidebar);
37
+ --color-chart-5: var(--chart-5);
38
+ --color-chart-4: var(--chart-4);
39
+ --color-chart-3: var(--chart-3);
40
+ --color-chart-2: var(--chart-2);
41
+ --color-chart-1: var(--chart-1);
42
+ --color-ring: var(--ring);
43
+ --color-input: var(--input);
44
+ --color-border: var(--border);
45
+ --color-destructive: var(--destructive);
46
+ --color-accent-foreground: var(--accent-foreground);
47
+ --color-accent: var(--accent);
48
+ --color-muted-foreground: var(--muted-foreground);
49
+ --color-muted: var(--muted);
50
+ --color-secondary-foreground: var(--secondary-foreground);
51
+ --color-secondary: var(--secondary);
52
+ --color-primary-foreground: var(--primary-foreground);
53
+ --color-primary: var(--primary);
54
+ --color-popover-foreground: var(--popover-foreground);
55
+ --color-popover: var(--popover);
56
+ --color-card-foreground: var(--card-foreground);
57
+ --color-card: var(--card);
58
+ --color-foreground: var(--foreground);
59
+ --color-background: var(--background);
60
+ --radius-sm: calc(var(--radius) * 0.6);
61
+ --radius-md: calc(var(--radius) * 0.8);
62
+ --radius-lg: var(--radius);
63
+ --radius-xl: calc(var(--radius) * 1.4);
64
+ --radius-2xl: calc(var(--radius) * 1.8);
65
+ --radius-3xl: calc(var(--radius) * 2.2);
66
+ --radius-4xl: calc(var(--radius) * 2.6);
67
+ --font-sans: var(--font-sans);
68
+ --animate-mila-accordion-down: mila-accordion-down 0.2s ease-out;
69
+ --animate-mila-accordion-up: mila-accordion-up 0.2s ease-out;
70
+ }
71
+
72
+ :root {
73
+ --background: oklch(1 0 0);
74
+ --foreground: oklch(0.145 0 0);
75
+ --card: oklch(1 0 0);
76
+ --card-foreground: oklch(0.145 0 0);
77
+ --popover: oklch(1 0 0);
78
+ --popover-foreground: oklch(0.145 0 0);
79
+ --primary: oklch(0.205 0 0);
80
+ --primary-foreground: oklch(0.985 0 0);
81
+ --secondary: oklch(0.97 0 0);
82
+ --secondary-foreground: oklch(0.205 0 0);
83
+ --muted: oklch(0.97 0 0);
84
+ --muted-foreground: oklch(0.556 0 0);
85
+ --accent: oklch(0.97 0 0);
86
+ --accent-foreground: oklch(0.205 0 0);
87
+ --destructive: oklch(0.577 0.245 27.325);
88
+ --border: oklch(0.922 0 0);
89
+ --input: oklch(0.922 0 0);
90
+ --ring: oklch(0.708 0 0);
91
+ --chart-1: oklch(0.87 0 0);
92
+ --chart-2: oklch(0.556 0 0);
93
+ --chart-3: oklch(0.439 0 0);
94
+ --chart-4: oklch(0.371 0 0);
95
+ --chart-5: oklch(0.269 0 0);
96
+ --radius: 0.625rem;
97
+ /* MILA / Obra input (Figma Obra shadcn — node 16:1738) */
98
+ --mila-input-border: #8690a5;
99
+ --mila-input-border-focus: #662e7d;
100
+ --mila-input-ring-focus: #e0cee4;
101
+ --mila-input-border-error: #cf0c0d;
102
+ --mila-input-ring-error: #ff9c9d;
103
+ --mila-input-bg-disabled: #dde3e8;
104
+ --mila-input-placeholder: #50565f;
105
+ --mila-input-text-value: #662e7d;
106
+ --mila-input-text-focus: #3b1849;
107
+ --mila-input-text-error: #1c0825;
108
+ --mila-input-text-disabled: #171717;
109
+ --mila-input-border-with-value: #d4d4d4;
110
+ /* MILA / Obra label (Figma Obra shadcn — node 279:98209) */
111
+ --mila-label-fg: #1c0825;
112
+ /* MILA / Obra accordion (Figma Obra shadcn — node 288:122452) */
113
+ --mila-accordion-border: #e5e5e5;
114
+ --mila-accordion-trigger-fg: #171717;
115
+ --mila-accordion-content-fg: #171717;
116
+ --mila-accordion-trigger-focus-border: #d4d4d4;
117
+ /* MILA / Obra card (Figma Obra shadcn — node 288:122714) */
118
+ --mila-card-bg: #ffffff;
119
+ --mila-card-border: #e5e5e5;
120
+ --mila-card-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px 0 rgb(0 0 0 / 0.1);
121
+ --mila-card-title-fg: #171717;
122
+ --mila-card-description-fg: #737373;
123
+ /* MILA / Obra tabs (Figma Obra shadcn — node 288:173625) */
124
+ --mila-tabs-list-bg: #f5f5f5;
125
+ --mila-tabs-trigger-active-bg: #ffffff;
126
+ --mila-tabs-trigger-active-shadow: var(--mila-card-shadow);
127
+ --mila-tabs-trigger-fg: #171717;
128
+ --mila-tabs-trigger-inactive-hover-bg: #ebebeb;
129
+ --mila-tabs-trigger-focus-ring: #e0cee4;
130
+ --mila-tabs-content-fg: #171717;
131
+ /* MILA / Obra sidebar (Figma Obra shadcn — node 288:180690) */
132
+ --mila-sidebar-item-fg: #404040;
133
+ --mila-sidebar-item-active-bg: #f5f5f5;
134
+ --mila-sidebar-item-hover-bg: #fafafa;
135
+ --mila-sidebar-item-focus-ring: #e0cee4;
136
+ --mila-sidebar-group-label-fg: #737373;
137
+ --mila-sidebar-sub-rail: #d4d4d4;
138
+ /* MILA sidebar workspace switch (Figma node 288:180690 — Menu Item 59px) */
139
+ --mila-sidebar-workspace-bg: #ffffff;
140
+ --mila-sidebar-workspace-border: #e5e5e5;
141
+ --mila-sidebar-workspace-title-fg: #171717;
142
+ --mila-sidebar-workspace-subtitle-fg: #737373;
143
+ --mila-sidebar-workspace-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
144
+ /* MILA / Obra navigation menu (Figma Obra shadcn — node 288:184487) */
145
+ --mila-nav-menu-trigger-fg: #783596;
146
+ --mila-nav-menu-trigger-fg-open: #3b1849;
147
+ --mila-nav-menu-trigger-focus-ring: #e0cee4;
148
+ --mila-nav-menu-content-bg: #ffffff;
149
+ --mila-nav-menu-content-border: #d4d4d4;
150
+ --mila-nav-menu-content-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
151
+ --mila-nav-menu-item-title: #171717;
152
+ --mila-nav-menu-item-description: #737373;
153
+ --mila-nav-menu-item-hover-bg: #fafafa;
154
+ /* MILA / Obra pagination (Figma Obra shadcn — node 294:233630) */
155
+ --mila-pagination-fg: #783596;
156
+ --mila-pagination-active-border: #783596;
157
+ --mila-pagination-active-bg: #ffffff;
158
+ --mila-pagination-active-shadow: var(--mila-card-shadow);
159
+ --mila-pagination-page-hover-bg: #fafafa;
160
+ --mila-pagination-ellipsis-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
161
+ /* MILA / Obra dialog (Figma Obra shadcn — node 294:236106) */
162
+ --mila-dialog-overlay-bg: rgb(0 0 0 / 0.5);
163
+ --mila-dialog-bg: #ffffff;
164
+ --mila-dialog-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
165
+ --mila-dialog-title-fg: #171717;
166
+ --mila-dialog-description-fg: #737373;
167
+ --mila-dialog-close-fg: #171717;
168
+ --mila-dialog-close-focus-ring: #e0cee4;
169
+ --mila-dialog-content-focus-ring: #e0cee4;
170
+ /* MILA / Obra drawer handle (Figma Obra shadcn — node 301:245123) */
171
+ --mila-drawer-handle-bg: #f5f5f5;
172
+ /* MILA / Obra alert dialog (Figma Obra shadcn — node 295:239548) */
173
+ --mila-alert-dialog-bg: #ffffff;
174
+ --mila-alert-dialog-border: #e5e5e5;
175
+ --mila-alert-dialog-shadow: 0 10px 15px 0 rgb(0 0 0 / 0.1), 0 4px 6px 0 rgb(0 0 0 / 0.1);
176
+ --mila-alert-dialog-title-fg: #171717;
177
+ --mila-alert-dialog-description-fg: #737373;
178
+ --mila-alert-dialog-content-focus-ring: #e0cee4;
179
+ /* MILA / Obra sonner (Figma Obra shadcn — node 295:240815) */
180
+ --mila-sonner-bg: #ffffff;
181
+ --mila-sonner-border: #e5e5e5;
182
+ --mila-sonner-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px 0 rgb(0 0 0 / 0.1);
183
+ --mila-sonner-title-fg: #171717;
184
+ --mila-sonner-description-fg: #404040;
185
+ --mila-sonner-icon-fg: #171717;
186
+ --mila-sonner-action-bg: #f5f0f7;
187
+ --mila-sonner-action-border: #e0cee4;
188
+ --mila-sonner-action-fg: #662e7d;
189
+ --mila-sonner-action-focus-ring: #e0cee4;
190
+ --mila-sonner-close-border: #e5e5e5;
191
+ --mila-sonner-close-bg: #ffffff;
192
+ --mila-sonner-close-fg: #171717;
193
+ --mila-sonner-progress-caption-fg: #737373;
194
+ /* MILA / Obra hover card (Figma Obra shadcn — node 302:245663) */
195
+ --mila-hover-card-bg: #ffffff;
196
+ --mila-hover-card-border: #d4d4d4;
197
+ --mila-hover-card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
198
+ --mila-hover-card-title-fg: #171717;
199
+ --mila-hover-card-body-fg: #171717;
200
+ --mila-hover-card-meta-fg: #737373;
201
+ /* MILA / Obra skeleton (Figma Obra shadcn — node 303:246601) */
202
+ --mila-skeleton-bg: #fafafa;
203
+ /* MILA / Obra resizable (Figma Obra shadcn — node 304:252713) */
204
+ --mila-resizable-divider: #e5e5e5;
205
+ --mila-resizable-handle-bg: #d9d9d9;
206
+ --mila-resizable-grip-fg: #404040;
207
+ /* MILA / Obra scroll area (Figma Obra shadcn — node 304:252561) */
208
+ --mila-scroll-area-border: #e5e5e5;
209
+ --mila-scroll-area-bg: #ffffff;
210
+ --mila-scroll-area-thumb: #d4d4d4;
211
+ --mila-scroll-area-thumb-hover: #a3a3a3;
212
+ /* MILA / Obra breadcrumb (Figma Obra shadcn — node 294:234945) */
213
+ --mila-breadcrumb-muted-fg: #737373;
214
+ --mila-breadcrumb-current-fg: #171717;
215
+ --mila-breadcrumb-separator-fg: #737373;
216
+ --mila-breadcrumb-trigger-shadow: var(--mila-pagination-ellipsis-shadow);
217
+ /* MILA / Obra table (Figma Obra shadcn — node 288:169218) */
218
+ --mila-table-border: #e5e5e5;
219
+ --mila-table-header-bg: #ffffff;
220
+ --mila-table-header-fg: #171717;
221
+ --mila-table-cell-fg: #171717;
222
+ --mila-table-row-odd-bg: #ffffff;
223
+ --mila-table-row-even-bg: #fafafa;
224
+ --mila-table-footer-bg: #fafafa;
225
+ /* MILA / Obra data table (Figma Obra shadcn — node 288:172340) */
226
+ --mila-data-table-header-hover-bg: #f5f5f5;
227
+ --mila-data-table-row-hover-bg: #f5f5f5;
228
+ --mila-data-table-row-selected-bg: #e5e5e5;
229
+ /* MILA / Obra textarea (Figma Obra shadcn — node 279:99100) */
230
+ --mila-textarea-terms-bg: #edf0f2;
231
+ --mila-textarea-terms-fg: #191a1e;
232
+ --mila-textarea-scrollbar-thumb: #777f92;
233
+ /* MILA / Obra input OTP (Figma Obra shadcn — node 280:101027) */
234
+ --mila-otp-slot-border: #d4d4d4;
235
+ --mila-otp-fg: #171717;
236
+ --mila-otp-separator-bar: #171717;
237
+ /* MILA / Obra radio (Figma Obra shadcn — node 280:103567) */
238
+ --mila-radio-border: #d4d4d4;
239
+ --mila-radio-border-checked: #a3a3a3;
240
+ --mila-radio-indicator: #171717;
241
+ --mila-radio-border-disabled: #e5e5e5;
242
+ --mila-radio-rich-border: #e5e5e5;
243
+ --mila-radio-rich-border-checked: #a3a3a3;
244
+ --mila-radio-rich-bg-checked: #f5f5f5;
245
+ --mila-radio-rich-description: #737373;
246
+ /* MILA / Obra checkbox (Figma Obra shadcn — node 280:104271) */
247
+ --mila-checkbox-border: #8690a5;
248
+ --mila-checkbox-fill: #171717;
249
+ --mila-checkbox-icon: #ffffff;
250
+ --mila-checkbox-disabled-unchecked-bg: #8690a5;
251
+ --mila-checkbox-disabled-unchecked-border: #191a1e;
252
+ --mila-checkbox-disabled-checked-bg: #171717;
253
+ --mila-checkbox-disabled-checked-border: #191a1e;
254
+ /* MILA / Obra switch (Figma Obra shadcn — node 280:104497) */
255
+ --mila-switch-track-off: #e5e5e5;
256
+ --mila-switch-track-on: #3b82f6;
257
+ --mila-switch-thumb: #ffffff;
258
+ /* MILA / Obra avatar (Figma Obra shadcn — node 273:27988) */
259
+ --mila-avatar-fallback-bg: #f5f5f5;
260
+ --mila-avatar-fallback-fg: #404040;
261
+ /* MILA / Obra badge (Figma Obra shadcn — node 273:30617) */
262
+ --mila-badge-primary-bg: #171717;
263
+ --mila-badge-primary-fg: #ffffff;
264
+ --mila-badge-secondary-bg: #fafafa;
265
+ --mila-badge-secondary-fg: #171717;
266
+ --mila-badge-outline-border: #e5e5e5;
267
+ --mila-badge-destructive-bg: #ef4444;
268
+ --mila-badge-destructive-fg: #ffffff;
269
+ --mila-badge-error-number-bg: #ffdfdf;
270
+ --mila-badge-error-number-border: #ffc5c5;
271
+ --mila-badge-error-number-fg: #891314;
272
+ --mila-badge-error-number-fg-focus: #a60e0f;
273
+ --mila-badge-info-bg: #3b82f6;
274
+ --mila-badge-info-fg: #ffffff;
275
+ /* MILA / Obra button (Figma Obra shadcn — node 273:30945) */
276
+ --mila-button-primary-bg: #783596;
277
+ --mila-button-primary-hover: #3b1849;
278
+ --mila-button-primary-fg: #ffffff;
279
+ --mila-button-destructive-bg: #cf0c0d;
280
+ --mila-button-destructive-hover: #4b0404;
281
+ --mila-button-destructive-fg: #ffffff;
282
+ --mila-button-secondary-bg: #f5f0f7;
283
+ --mila-button-secondary-border: #e0cee4;
284
+ --mila-button-secondary-fg: #662e7d;
285
+ --mila-button-secondary-hover-bg: #e0cee4;
286
+ --mila-button-secondary-hover-border: #b286ba;
287
+ --mila-button-secondary-hover-fg: #1c0825;
288
+ --mila-button-outline-border: #783596;
289
+ --mila-button-outline-fg: #783596;
290
+ --mila-button-outline-hover-bg: #f5ecfb;
291
+ --mila-button-outline-hover-border: #3b1849;
292
+ --mila-button-outline-hover-fg: #3b1849;
293
+ --mila-button-outline-disabled-bg: #dde3e8;
294
+ --mila-button-outline-disabled-border: #9ca7b8;
295
+ --mila-button-outline-disabled-fg: #5f6674;
296
+ --mila-button-ghost-fg: #783596;
297
+ --mila-button-ghost-hover-bg: #f5ecfb;
298
+ --mila-button-ghost-hover-fg: #3b1849;
299
+ --mila-button-disabled-bg: #dde3e8;
300
+ --mila-button-disabled-fg: #50565f;
301
+ /* MILA / Obra link button (Figma Obra shadcn — node 274:52937) */
302
+ --mila-link-button-fg: #171717;
303
+ /* MILA / Obra tooltip (Figma Obra shadcn — node 274:57607) */
304
+ --mila-tooltip-bg: #171717;
305
+ --mila-tooltip-fg: #ffffff;
306
+ /* MILA / Obra combobox & menu (Figma Obra shadcn — node 281:104714) */
307
+ --mila-combobox-menu-bg: #ffffff;
308
+ --mila-combobox-menu-border: #e5e5e5;
309
+ --mila-combobox-menu-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px 0 rgb(0 0 0 / 0.1);
310
+ --mila-combobox-item-hover-bg: #f5f5f5;
311
+ --mila-combobox-item-selected-bg: #f5f5f5;
312
+ --mila-combobox-item-text: #171717;
313
+ --mila-combobox-item-muted: #737373;
314
+ --mila-combobox-item-destructive: #ef4444;
315
+ --mila-combobox-group-label: #737373;
316
+ --mila-combobox-search-border: #d4d4d4;
317
+ /* MILA / Obra command menu (Figma Obra shadcn — node 301:242527) */
318
+ --mila-command-menu-bg: #ffffff;
319
+ --mila-command-menu-border: #d4d4d4;
320
+ --mila-command-menu-shadow: 0 4px 6px 0 rgb(0 0 0 / 0.1), 0 2px 4px 0 rgb(0 0 0 / 0.1);
321
+ --mila-command-input-slot-bg: #ffffff;
322
+ --mila-command-input-icon: #737373;
323
+ --mila-command-item-hover-bg: #fafafa;
324
+ --mila-command-item-text: #171717;
325
+ --mila-command-separator: #d4d4d4;
326
+ --mila-command-group-heading: #737373;
327
+ --mila-command-close-fg: #171717;
328
+ --mila-command-close-focus-ring: #e0cee4;
329
+ /* MILA calendar (react-day-picker; pairs with input / combobox — Figma Date Picker) */
330
+ --mila-calendar-accent: #662e7d;
331
+ --mila-calendar-accent-bg: #e0cee4;
332
+ /* MILA / Obra progress (Figma Obra shadcn — node 438:64977) */
333
+ --mila-progress-track-bg: #edf0f2;
334
+ --mila-progress-track-border: #c8d1d9;
335
+ --mila-progress-indicator: #783596;
336
+ /* MILA / Obra slider (Figma Obra shadcn — node 288:121670) */
337
+ --mila-slider-track-bg: #f0f1f3;
338
+ --mila-slider-track-border: #c7cbd4;
339
+ --mila-slider-range: #783596;
340
+ --mila-slider-thumb-bg: #ffffff;
341
+ --mila-slider-thumb-border: #783596;
342
+ --mila-slider-thumb-ring-focus: #e0cee4;
343
+ /* MILA / Obra separator (Figma Obra shadcn — node 274:59598) */
344
+ --mila-separator: #c7cbd4;
345
+ /* MILA / Obra charts (Figma Obra shadcn — node 304:252980 · Recharts) */
346
+ --mila-chart-grid: #f5f5f5;
347
+ --mila-chart-axis-fg: #737373;
348
+ --mila-chart-tooltip-bg: #ffffff;
349
+ --mila-chart-tooltip-border: #e5e5e5;
350
+ --mila-chart-tooltip-label-fg: #09090b;
351
+ --mila-chart-tooltip-muted-fg: #737373;
352
+ --mila-chart-tooltip-value-fg: #09090b;
353
+ /* MILA / Obra alert (Figma Obra shadcn — node 8:283) */
354
+ --mila-alert-border: #e5e5e5;
355
+ --mila-alert-neutral-title: #171717;
356
+ --mila-alert-neutral-description: #737373;
357
+ --mila-alert-error-fg: #ef4444;
358
+ /* MILA / Obra icon button (Figma Obra shadcn — node 274:37817) */
359
+ --mila-icon-button-primary-bg: #171717;
360
+ --mila-icon-button-primary-hover: #404040;
361
+ --mila-icon-button-primary-fg: #ffffff;
362
+ --mila-icon-button-secondary-bg: #f5f5f5;
363
+ --mila-icon-button-secondary-hover: #fafafa;
364
+ --mila-icon-button-secondary-fg: #171717;
365
+ --mila-icon-button-outline-border: #e5e5e5;
366
+ --mila-icon-button-outline-hover-bg: #fafafa;
367
+ --mila-icon-button-ghost-hover-bg: #fafafa;
368
+ --mila-icon-button-destructive-bg: #ef4444;
369
+ --mila-icon-button-destructive-hover: #dc2626;
370
+ --mila-icon-button-destructive-fg: #ffffff;
371
+ --sidebar: oklch(0.985 0 0);
372
+ --sidebar-foreground: oklch(0.145 0 0);
373
+ --sidebar-primary: oklch(0.205 0 0);
374
+ --sidebar-primary-foreground: oklch(0.985 0 0);
375
+ --sidebar-accent: oklch(0.97 0 0);
376
+ --sidebar-accent-foreground: oklch(0.205 0 0);
377
+ --sidebar-border: oklch(0.922 0 0);
378
+ --sidebar-ring: oklch(0.708 0 0);
379
+ }
380
+
381
+ .dark {
382
+ --background: oklch(0.145 0 0);
383
+ --foreground: oklch(0.985 0 0);
384
+ --card: oklch(0.205 0 0);
385
+ --card-foreground: oklch(0.985 0 0);
386
+ --popover: oklch(0.205 0 0);
387
+ --popover-foreground: oklch(0.985 0 0);
388
+ --primary: oklch(0.922 0 0);
389
+ --primary-foreground: oklch(0.205 0 0);
390
+ --secondary: oklch(0.269 0 0);
391
+ --secondary-foreground: oklch(0.985 0 0);
392
+ --muted: oklch(0.269 0 0);
393
+ --muted-foreground: oklch(0.708 0 0);
394
+ --accent: oklch(0.269 0 0);
395
+ --accent-foreground: oklch(0.985 0 0);
396
+ --destructive: oklch(0.704 0.191 22.216);
397
+ --border: oklch(1 0 0 / 10%);
398
+ --input: oklch(1 0 0 / 15%);
399
+ --ring: oklch(0.556 0 0);
400
+ --chart-1: oklch(0.87 0 0);
401
+ --chart-2: oklch(0.556 0 0);
402
+ --chart-3: oklch(0.439 0 0);
403
+ --chart-4: oklch(0.371 0 0);
404
+ --chart-5: oklch(0.269 0 0);
405
+ --sidebar: oklch(0.205 0 0);
406
+ --sidebar-foreground: oklch(0.985 0 0);
407
+ --sidebar-primary: oklch(0.488 0.243 264.376);
408
+ --sidebar-primary-foreground: oklch(0.985 0 0);
409
+ --sidebar-accent: oklch(0.269 0 0);
410
+ --sidebar-accent-foreground: oklch(0.985 0 0);
411
+ --sidebar-border: oklch(1 0 0 / 10%);
412
+ --sidebar-ring: oklch(0.556 0 0);
413
+ --mila-input-border: oklch(0.55 0.02 260);
414
+ --mila-input-border-focus: oklch(0.62 0.14 300);
415
+ --mila-input-ring-focus: oklch(0.45 0.08 300 / 0.45);
416
+ --mila-input-border-error: oklch(0.55 0.22 25);
417
+ --mila-input-ring-error: oklch(0.5 0.2 25 / 0.4);
418
+ --mila-input-bg-disabled: oklch(0.22 0.02 260);
419
+ --mila-input-placeholder: oklch(0.65 0.02 260);
420
+ --mila-input-text-value: oklch(0.75 0.12 300);
421
+ --mila-input-text-focus: oklch(0.82 0.1 300);
422
+ --mila-input-text-error: oklch(0.88 0.05 300);
423
+ --mila-input-text-disabled: oklch(0.55 0.02 260);
424
+ --mila-input-border-with-value: oklch(0.45 0.02 260);
425
+ --mila-label-fg: oklch(0.95 0.02 310);
426
+ --mila-accordion-border: oklch(1 0 0 / 12%);
427
+ --mila-accordion-trigger-fg: oklch(0.95 0 0);
428
+ --mila-accordion-content-fg: oklch(0.95 0 0);
429
+ --mila-accordion-trigger-focus-border: oklch(0.55 0.02 260);
430
+ --mila-card-bg: oklch(0.205 0 0);
431
+ --mila-card-border: oklch(1 0 0 / 12%);
432
+ --mila-card-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.25), 0 1px 2px 0 rgb(0 0 0 / 0.2);
433
+ --mila-card-title-fg: oklch(0.985 0 0);
434
+ --mila-card-description-fg: oklch(0.65 0.02 260);
435
+ --mila-tabs-list-bg: oklch(0.28 0.02 260);
436
+ --mila-tabs-trigger-active-bg: oklch(0.205 0 0);
437
+ --mila-tabs-trigger-active-shadow: var(--mila-card-shadow);
438
+ --mila-tabs-trigger-fg: oklch(0.985 0 0);
439
+ --mila-tabs-trigger-inactive-hover-bg: oklch(0.33 0.02 260);
440
+ --mila-tabs-trigger-focus-ring: oklch(0.45 0.08 300 / 0.45);
441
+ --mila-tabs-content-fg: oklch(0.985 0 0);
442
+ --mila-sidebar-item-fg: oklch(0.82 0.02 260);
443
+ --mila-sidebar-item-active-bg: oklch(0.28 0.02 260);
444
+ --mila-sidebar-item-hover-bg: oklch(0.3 0.02 260);
445
+ --mila-sidebar-item-focus-ring: oklch(0.45 0.08 300 / 0.45);
446
+ --mila-sidebar-group-label-fg: oklch(0.62 0.02 260);
447
+ --mila-sidebar-sub-rail: oklch(0.45 0.02 260);
448
+ --mila-sidebar-workspace-bg: oklch(0.22 0.01 260);
449
+ --mila-sidebar-workspace-border: oklch(1 0 0 / 12%);
450
+ --mila-sidebar-workspace-title-fg: oklch(0.985 0 0);
451
+ --mila-sidebar-workspace-subtitle-fg: oklch(0.65 0.02 260);
452
+ --mila-sidebar-workspace-shadow: var(--mila-card-shadow);
453
+ --mila-nav-menu-trigger-fg: oklch(0.62 0.14 310);
454
+ --mila-nav-menu-trigger-fg-open: oklch(0.82 0.1 300);
455
+ --mila-nav-menu-trigger-focus-ring: oklch(0.45 0.08 300 / 0.45);
456
+ --mila-nav-menu-content-bg: oklch(0.205 0 0);
457
+ --mila-nav-menu-content-border: oklch(0.45 0.02 260);
458
+ --mila-nav-menu-content-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.25), 0 2px 4px -2px rgb(0 0 0 / 0.2);
459
+ --mila-nav-menu-item-title: oklch(0.985 0 0);
460
+ --mila-nav-menu-item-description: oklch(0.65 0.02 260);
461
+ --mila-nav-menu-item-hover-bg: oklch(0.28 0.02 260);
462
+ --mila-pagination-fg: oklch(0.62 0.14 310);
463
+ --mila-pagination-active-border: oklch(0.62 0.14 310);
464
+ --mila-pagination-active-bg: oklch(0.205 0 0);
465
+ --mila-pagination-active-shadow: var(--mila-card-shadow);
466
+ --mila-pagination-page-hover-bg: oklch(0.28 0.02 260);
467
+ --mila-pagination-ellipsis-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.25), 0 1px 2px -1px rgb(0 0 0 / 0.2);
468
+ --mila-dialog-overlay-bg: rgb(0 0 0 / 0.65);
469
+ --mila-dialog-bg: oklch(0.205 0 0);
470
+ --mila-dialog-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.35), 0 4px 6px -4px rgb(0 0 0 / 0.25);
471
+ --mila-dialog-title-fg: oklch(0.985 0 0);
472
+ --mila-dialog-description-fg: oklch(0.65 0.02 260);
473
+ --mila-dialog-close-fg: oklch(0.985 0 0);
474
+ --mila-dialog-close-focus-ring: oklch(0.45 0.08 300 / 0.45);
475
+ --mila-dialog-content-focus-ring: oklch(0.45 0.08 300 / 0.45);
476
+ --mila-drawer-handle-bg: oklch(0.28 0.01 260);
477
+ --mila-alert-dialog-bg: oklch(0.205 0 0);
478
+ --mila-alert-dialog-border: oklch(1 0 0 / 12%);
479
+ --mila-alert-dialog-shadow: 0 10px 15px 0 rgb(0 0 0 / 0.35), 0 4px 6px 0 rgb(0 0 0 / 0.25);
480
+ --mila-alert-dialog-title-fg: oklch(0.985 0 0);
481
+ --mila-alert-dialog-description-fg: oklch(0.65 0.02 260);
482
+ --mila-alert-dialog-content-focus-ring: oklch(0.45 0.08 300 / 0.45);
483
+ --mila-sonner-bg: oklch(0.205 0 0);
484
+ --mila-sonner-border: oklch(1 0 0 / 12%);
485
+ --mila-sonner-shadow: var(--mila-card-shadow);
486
+ --mila-sonner-title-fg: oklch(0.985 0 0);
487
+ --mila-sonner-description-fg: oklch(0.75 0.02 260);
488
+ --mila-sonner-icon-fg: oklch(0.985 0 0);
489
+ --mila-sonner-action-bg: oklch(0.28 0.06 300);
490
+ --mila-sonner-action-border: oklch(0.45 0.08 300 / 0.45);
491
+ --mila-sonner-action-fg: oklch(0.88 0.08 300);
492
+ --mila-sonner-action-focus-ring: oklch(0.45 0.08 300 / 0.45);
493
+ --mila-sonner-close-border: oklch(1 0 0 / 12%);
494
+ --mila-sonner-close-bg: oklch(0.205 0 0);
495
+ --mila-sonner-close-fg: oklch(0.985 0 0);
496
+ --mila-sonner-progress-caption-fg: oklch(0.62 0.02 260);
497
+ --mila-hover-card-bg: oklch(0.205 0 0);
498
+ --mila-hover-card-border: oklch(0.45 0.02 260);
499
+ --mila-hover-card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.35), 0 2px 4px -2px rgb(0 0 0 / 0.25);
500
+ --mila-hover-card-title-fg: oklch(0.985 0 0);
501
+ --mila-hover-card-body-fg: oklch(0.985 0 0);
502
+ --mila-hover-card-meta-fg: oklch(0.62 0.02 260);
503
+ --mila-skeleton-bg: oklch(0.28 0 0);
504
+ --mila-resizable-divider: oklch(0.42 0.02 260);
505
+ --mila-resizable-handle-bg: oklch(0.35 0.01 260);
506
+ --mila-resizable-grip-fg: oklch(0.72 0 0);
507
+ --mila-scroll-area-border: oklch(1 0 0 / 12%);
508
+ --mila-scroll-area-bg: oklch(0.205 0 0);
509
+ --mila-scroll-area-thumb: oklch(0.45 0.02 260);
510
+ --mila-scroll-area-thumb-hover: oklch(0.55 0.02 260);
511
+ --mila-command-menu-bg: oklch(0.205 0 0);
512
+ --mila-command-menu-border: oklch(0.45 0.02 260);
513
+ --mila-command-menu-shadow: 0 4px 6px 0 rgb(0 0 0 / 0.35), 0 2px 4px 0 rgb(0 0 0 / 0.25);
514
+ --mila-command-input-slot-bg: oklch(0.22 0.01 260);
515
+ --mila-command-input-icon: oklch(0.65 0.02 260);
516
+ --mila-command-item-hover-bg: oklch(0.28 0.02 260);
517
+ --mila-command-item-text: oklch(0.985 0 0);
518
+ --mila-command-separator: oklch(0.45 0.02 260);
519
+ --mila-command-group-heading: oklch(0.62 0.02 260);
520
+ --mila-command-close-fg: oklch(0.985 0 0);
521
+ --mila-command-close-focus-ring: oklch(0.45 0.08 300 / 0.45);
522
+ --mila-breadcrumb-muted-fg: oklch(0.65 0.02 260);
523
+ --mila-breadcrumb-current-fg: oklch(0.985 0 0);
524
+ --mila-breadcrumb-separator-fg: oklch(0.55 0.02 260);
525
+ --mila-breadcrumb-trigger-shadow: var(--mila-pagination-ellipsis-shadow);
526
+ --mila-table-border: oklch(1 0 0 / 12%);
527
+ --mila-table-header-bg: oklch(0.22 0.01 260);
528
+ --mila-table-header-fg: oklch(0.985 0 0);
529
+ --mila-table-cell-fg: oklch(0.985 0 0);
530
+ --mila-table-row-odd-bg: oklch(0.205 0 0);
531
+ --mila-table-row-even-bg: oklch(0.24 0.01 260);
532
+ --mila-table-footer-bg: oklch(0.24 0.01 260);
533
+ --mila-data-table-header-hover-bg: oklch(0.28 0.02 260);
534
+ --mila-data-table-row-hover-bg: oklch(0.28 0.02 260);
535
+ --mila-data-table-row-selected-bg: oklch(0.35 0.02 260);
536
+ --mila-avatar-fallback-bg: oklch(0.28 0.01 260);
537
+ --mila-avatar-fallback-fg: oklch(0.88 0.02 260);
538
+ --mila-badge-primary-bg: oklch(0.92 0 0);
539
+ --mila-badge-primary-fg: oklch(0.145 0 0);
540
+ --mila-badge-secondary-bg: oklch(0.269 0 0);
541
+ --mila-badge-secondary-fg: oklch(0.985 0 0);
542
+ --mila-badge-outline-border: oklch(1 0 0 / 14%);
543
+ --mila-badge-destructive-bg: oklch(0.55 0.22 25);
544
+ --mila-badge-destructive-fg: oklch(0.985 0 0);
545
+ --mila-badge-error-number-bg: oklch(0.25 0.08 25);
546
+ --mila-badge-error-number-border: oklch(0.35 0.12 25);
547
+ --mila-badge-error-number-fg: oklch(0.85 0.12 20);
548
+ --mila-badge-error-number-fg-focus: oklch(0.92 0.08 20);
549
+ --mila-badge-info-bg: oklch(0.55 0.2 260);
550
+ --mila-badge-info-fg: oklch(0.985 0 0);
551
+ --mila-button-primary-bg: oklch(0.55 0.14 310);
552
+ --mila-button-primary-hover: oklch(0.32 0.12 310);
553
+ --mila-button-primary-fg: oklch(0.985 0 0);
554
+ --mila-button-destructive-bg: oklch(0.55 0.22 25);
555
+ --mila-button-destructive-hover: oklch(0.35 0.15 25);
556
+ --mila-button-destructive-fg: oklch(0.985 0 0);
557
+ --mila-button-secondary-bg: oklch(0.28 0.04 310);
558
+ --mila-button-secondary-border: oklch(0.45 0.08 310);
559
+ --mila-button-secondary-fg: oklch(0.82 0.1 310);
560
+ --mila-button-secondary-hover-bg: oklch(0.38 0.08 310);
561
+ --mila-button-secondary-hover-border: oklch(0.5 0.1 310);
562
+ --mila-button-secondary-hover-fg: oklch(0.95 0.02 310);
563
+ --mila-button-outline-border: oklch(0.65 0.14 310);
564
+ --mila-button-outline-fg: oklch(0.75 0.12 300);
565
+ --mila-button-outline-hover-bg: oklch(0.3 0.06 310);
566
+ --mila-button-outline-hover-border: oklch(0.82 0.1 300);
567
+ --mila-button-outline-hover-fg: oklch(0.92 0.05 300);
568
+ --mila-button-outline-disabled-bg: oklch(0.25 0.02 260);
569
+ --mila-button-outline-disabled-border: oklch(0.4 0.02 260);
570
+ --mila-button-outline-disabled-fg: oklch(0.6 0.02 260);
571
+ --mila-button-ghost-fg: oklch(0.75 0.12 300);
572
+ --mila-button-ghost-hover-bg: oklch(0.3 0.06 310);
573
+ --mila-button-ghost-hover-fg: oklch(0.92 0.05 300);
574
+ --mila-button-disabled-bg: oklch(0.28 0.02 260);
575
+ --mila-button-disabled-fg: oklch(0.55 0.02 260);
576
+ --mila-alert-border: oklch(1 0 0 / 12%);
577
+ --mila-alert-neutral-title: oklch(0.95 0 0);
578
+ --mila-alert-neutral-description: oklch(0.65 0.02 260);
579
+ --mila-alert-error-fg: oklch(0.65 0.2 25);
580
+ --mila-icon-button-primary-bg: oklch(0.92 0 0);
581
+ --mila-icon-button-primary-hover: oklch(0.82 0 0);
582
+ --mila-icon-button-primary-fg: oklch(0.145 0 0);
583
+ --mila-icon-button-secondary-bg: oklch(0.28 0.01 260);
584
+ --mila-icon-button-secondary-hover: oklch(0.32 0.02 260);
585
+ --mila-icon-button-secondary-fg: oklch(0.95 0 0);
586
+ --mila-icon-button-outline-border: oklch(1 0 0 / 14%);
587
+ --mila-icon-button-outline-hover-bg: oklch(0.28 0.02 260);
588
+ --mila-icon-button-ghost-hover-bg: oklch(0.28 0.02 260);
589
+ --mila-icon-button-destructive-bg: oklch(0.55 0.22 25);
590
+ --mila-icon-button-destructive-hover: oklch(0.48 0.2 25);
591
+ --mila-icon-button-destructive-fg: oklch(0.985 0 0);
592
+ --mila-link-button-fg: oklch(0.95 0 0);
593
+ --mila-tooltip-bg: oklch(0.22 0 0);
594
+ --mila-tooltip-fg: oklch(0.985 0 0);
595
+ --mila-separator: oklch(0.42 0.02 260);
596
+ --mila-chart-grid: oklch(0.32 0.02 260);
597
+ --mila-chart-axis-fg: oklch(0.65 0.02 260);
598
+ --mila-chart-tooltip-bg: oklch(0.205 0 0);
599
+ --mila-chart-tooltip-border: oklch(1 0 0 / 12%);
600
+ --mila-chart-tooltip-label-fg: oklch(0.985 0 0);
601
+ --mila-chart-tooltip-muted-fg: oklch(0.65 0.02 260);
602
+ --mila-chart-tooltip-value-fg: oklch(0.985 0 0);
603
+ --mila-otp-slot-border: oklch(1 0 0 / 18%);
604
+ --mila-otp-fg: oklch(0.95 0 0);
605
+ --mila-otp-separator-bar: oklch(0.95 0 0);
606
+ --mila-slider-track-bg: oklch(0.28 0.01 260);
607
+ --mila-slider-track-border: oklch(0.42 0.02 260);
608
+ --mila-slider-range: oklch(0.55 0.14 310);
609
+ --mila-slider-thumb-bg: oklch(0.98 0 0);
610
+ --mila-slider-thumb-border: oklch(0.65 0.14 310);
611
+ --mila-slider-thumb-ring-focus: oklch(0.45 0.08 300 / 0.45);
612
+ }
613
+
614
+ /*
615
+ * Sonner default (top): older toasts translate down — peek from the bottom.
616
+ * MILA / Figma (node 295:240815): older toasts sit behind with a strip visible above — negate Y offset.
617
+ */
618
+ [data-sonner-toaster][data-y-position="top"] [data-sonner-toast][data-mounted="true"][data-expanded="true"] {
619
+ --y: translateY(calc(-1 * var(--offset)));
620
+ }
621
+ [data-sonner-toaster][data-y-position="top"] [data-sonner-toast][data-expanded="false"][data-front="false"] {
622
+ --y: translateY(calc(-1 * var(--lift-amount) * var(--toasts-before)))
623
+ scale(calc(-1 * var(--scale)));
624
+ }
625
+ [data-sonner-toaster][data-y-position="top"]
626
+ [data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"] {
627
+ --y: translateY(calc((-1 * var(--offset)) - 100%));
628
+ }
629
+
630
+ /* react-day-picker — MILA accent (see Figma Date Picker in Obra shadcn — MILA) */
631
+ .mila-daypicker.rdp-root {
632
+ --rdp-accent-color: var(--mila-calendar-accent);
633
+ --rdp-accent-background-color: var(--mila-calendar-accent-bg);
634
+ --rdp-today-color: var(--mila-calendar-accent);
635
+ --rdp-day_button-border-radius: 0.5rem;
636
+ --rdp-day-height: 2.25rem;
637
+ --rdp-day-width: 2.25rem;
638
+ --rdp-day_button-height: 2rem;
639
+ --rdp-day_button-width: 2rem;
640
+ --rdp-nav_button-height: 2.25rem;
641
+ --rdp-nav_button-width: 2.25rem;
642
+ }
643
+
644
+ @layer base {
645
+ * {
646
+ @apply border-border outline-ring/50;
647
+ }
648
+ body {
649
+ @apply bg-background text-foreground;
650
+ }
651
+ }